/*

This file is part of Ext JS 4

Copyright (c) 2011 Sencha Inc

Contact:  http://www.sencha.com/contact

GNU General Public License Usage
This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file.  Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html.

If you are unsure which license is appropriate for your use, please contact the sales department at http://www.sencha.com/contact.

*/
(function(Ext){if(typeof Ext==="undefined"){this.Ext={}}Ext.buildSettings={baseCSSPrefix:"x4-",scopeResetCSS:true};Ext.isSandboxed=true;(function(){var global=this,objectPrototype=Object.prototype,toString=objectPrototype.toString,enumerables=true,enumerablesTest={toString:1},i;if(typeof Ext==="undefined"){global.Ext={}}Ext.global=global;for(i in enumerablesTest){enumerables=null}if(enumerables){enumerables=["hasOwnProperty","valueOf","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","constructor"]}Ext.enumerables=enumerables;Ext.apply=function(object,config,defaults){if(defaults){Ext.apply(object,defaults)}if(object&&config&&typeof config==="object"){var i,j,k;for(i in config){object[i]=config[i]}if(enumerables){for(j=enumerables.length;j--;){k=enumerables[j];if(config.hasOwnProperty(k)){object[k]=config[k]}}}}return object};Ext.buildSettings=Ext.apply({baseCSSPrefix:"x-",scopeResetCSS:false},Ext.buildSettings||{});Ext.apply(Ext,{emptyFn:function(){},baseCSSPrefix:Ext.buildSettings.baseCSSPrefix,applyIf:function(object,config){var property;if(object){for(property in config){if(object[property]===undefined){object[property]=config[property]}}}return object},iterate:function(object,fn,scope){if(Ext.isEmpty(object)){return}if(scope===undefined){scope=object}if(Ext.isIterable(object)){Ext.Array.each.call(Ext.Array,object,fn,scope)}else{Ext.Object.each.call(Ext.Object,object,fn,scope)}}});Ext.apply(Ext,{extend:function(){var objectConstructor=objectPrototype.constructor,inlineOverrides=function(o){for(var m in o){if(!o.hasOwnProperty(m)){continue}this[m]=o[m]}};return function(subclass,superclass,overrides){if(Ext.isObject(superclass)){overrides=superclass;superclass=subclass;subclass=overrides.constructor!==objectConstructor?overrides.constructor:function(){superclass.apply(this,arguments)}}var F=function(){},subclassProto,superclassProto=superclass.prototype;F.prototype=superclassProto;subclassProto=subclass.prototype=new F();subclassProto.constructor=subclass;subclass.superclass=superclassProto;if(superclassProto.constructor===objectConstructor){superclassProto.constructor=superclass}subclass.override=function(overrides){Ext.override(subclass,overrides)};subclassProto.override=inlineOverrides;subclassProto.proto=subclassProto;subclass.override(overrides);subclass.extend=function(o){return Ext.extend(subclass,o)};return subclass}}(),override:function(cls,overrides){if(cls.prototype.$className){return cls.override(overrides)}else{Ext.apply(cls.prototype,overrides)}}});Ext.apply(Ext,{valueFrom:function(value,defaultValue,allowBlank){return Ext.isEmpty(value,allowBlank)?defaultValue:value},typeOf:function(value){if(value===null){return"null"}var type=typeof value;if(type==="undefined"||type==="string"||type==="number"||type==="boolean"){return type}var typeToString=toString.call(value);switch(typeToString){case"[object Array]":return"array";case"[object Date]":return"date";case"[object Boolean]":return"boolean";case"[object Number]":return"number";case"[object RegExp]":return"regexp"}if(type==="function"){return"function"}if(type==="object"){if(value.nodeType!==undefined){if(value.nodeType===3){return(/\S/).test(value.nodeValue)?"textnode":"whitespace"}else{return"element"}}return"object"}},isEmpty:function(value,allowEmptyString){return(value===null)||(value===undefined)||(!allowEmptyString?value==="":false)||(Ext.isArray(value)&&value.length===0)},isArray:("isArray" in Array)?Array.isArray:function(value){return toString.call(value)==="[object Array]"},isDate:function(value){return toString.call(value)==="[object Date]"},isObject:(toString.call(null)==="[object Object]")?function(value){return value!==null&&value!==undefined&&toString.call(value)==="[object Object]"&&value.ownerDocument===undefined}:function(value){return toString.call(value)==="[object Object]"},isPrimitive:function(value){var type=typeof value;return type==="string"||type==="number"||type==="boolean"},isFunction:(typeof document!=="undefined"&&typeof document.getElementsByTagName("body")==="function")?function(value){return toString.call(value)==="[object Function]"}:function(value){return typeof value==="function"},isNumber:function(value){return typeof value==="number"&&isFinite(value)},isNumeric:function(value){return !isNaN(parseFloat(value))&&isFinite(value)},isString:function(value){return typeof value==="string"},isBoolean:function(value){return typeof value==="boolean"},isElement:function(value){return value?value.nodeType===1:false},isTextNode:function(value){return value?value.nodeName==="#text":false},isDefined:function(value){return typeof value!=="undefined"},isIterable:function(value){return(value&&typeof value!=="string")?value.length!==undefined:false}});Ext.apply(Ext,{clone:function(item){if(item===null||item===undefined){return item}if(item.nodeType&&item.cloneNode){return item.cloneNode(true)}var type=toString.call(item);if(type==="[object Date]"){return new Date(item.getTime())}var i,j,k,clone,key;if(type==="[object Array]"){i=item.length;clone=[];while(i--){clone[i]=Ext.clone(item[i])}}else{if(type==="[object Object]"&&item.constructor===Object){clone={};for(key in item){clone[key]=Ext.clone(item[key])}if(enumerables){for(j=enumerables.length;j--;){k=enumerables[j];clone[k]=item[k]}}}}return clone||item},getUniqueGlobalNamespace:function(){var uniqueGlobalNamespace=this.uniqueGlobalNamespace;if(uniqueGlobalNamespace===undefined){var i=0;do{uniqueGlobalNamespace="ExtBox"+(++i)}while(Ext.global[uniqueGlobalNamespace]!==undefined);Ext.global[uniqueGlobalNamespace]=Ext;this.uniqueGlobalNamespace=uniqueGlobalNamespace}return uniqueGlobalNamespace},functionFactory:function(){var args=Array.prototype.slice.call(arguments);if(args.length>0){args[args.length-1]="var Ext=window."+this.getUniqueGlobalNamespace()+";"+args[args.length-1]}return Function.prototype.constructor.apply(Function.prototype,args)}});Ext.type=Ext.typeOf})();(function(){var version="4.0.7",Version;Ext.Version=Version=Ext.extend(Object,{constructor:function(version){var parts,releaseStartIndex;if(version instanceof Version){return version}this.version=this.shortVersion=String(version).toLowerCase().replace(/_/g,".").replace(/[\-+]/g,"");releaseStartIndex=this.version.search(/([^\d\.])/);if(releaseStartIndex!==-1){this.release=this.version.substr(releaseStartIndex,version.length);this.shortVersion=this.version.substr(0,releaseStartIndex)}this.shortVersion=this.shortVersion.replace(/[^\d]/g,"");parts=this.version.split(".");this.major=parseInt(parts.shift()||0,10);this.minor=parseInt(parts.shift()||0,10);this.patch=parseInt(parts.shift()||0,10);this.build=parseInt(parts.shift()||0,10);return this},toString:function(){return this.version},valueOf:function(){return this.version},getMajor:function(){return this.major||0},getMinor:function(){return this.minor||0},getPatch:function(){return this.patch||0},getBuild:function(){return this.build||0},getRelease:function(){return this.release||""},isGreaterThan:function(target){return Version.compare(this.version,target)===1},isLessThan:function(target){return Version.compare(this.version,target)===-1},equals:function(target){return Version.compare(this.version,target)===0},match:function(target){target=String(target);return this.version.substr(0,target.length)===target},toArray:function(){return[this.getMajor(),this.getMinor(),this.getPatch(),this.getBuild(),this.getRelease()]},getShortVersion:function(){return this.shortVersion}});Ext.apply(Version,{releaseValueMap:{dev:-6,alpha:-5,a:-5,beta:-4,b:-4,rc:-3,"#":-2,p:-1,pl:-1},getComponentValue:function(value){return !value?0:(isNaN(value)?this.releaseValueMap[value]||value:parseInt(value,10))},compare:function(current,target){var currentValue,targetValue,i;current=new Version(current).toArray();target=new Version(target).toArray();for(i=0;i<Math.max(current.length,target.length);i++){currentValue=this.getComponentValue(current[i]);targetValue=this.getComponentValue(target[i]);if(currentValue<targetValue){return -1}else{if(currentValue>targetValue){return 1}}}return 0}});Ext.apply(Ext,{versions:{},lastRegisteredVersion:null,setVersion:function(packageName,version){Ext.versions[packageName]=new Version(version);Ext.lastRegisteredVersion=Ext.versions[packageName];return this},getVersion:function(packageName){if(packageName===undefined){return Ext.lastRegisteredVersion}return Ext.versions[packageName]},deprecate:function(packageName,since,closure,scope){if(Version.compare(Ext.getVersion(packageName),since)<1){closure.call(scope)}}});Ext.setVersion("core",version)})();Ext.String={trimRegex:/^[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000]+|[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000]+$/g,escapeRe:/('|\\)/g,formatRe:/\{(\d+)\}/g,escapeRegexRe:/([-.*+?^${}()|[\]\/\\])/g,htmlEncode:(function(){var entities={"&":"&amp;",">":"&gt;","<":"&lt;",'"':"&quot;"},keys=[],p,regex;for(p in entities){keys.push(p)}regex=new RegExp("("+keys.join("|")+")","g");return function(value){return(!value)?value:String(value).replace(regex,function(match,capture){return entities[capture]})}})(),htmlDecode:(function(){var entities={"&amp;":"&","&gt;":">","&lt;":"<","&quot;":'"'},keys=[],p,regex;for(p in entities){keys.push(p)}regex=new RegExp("("+keys.join("|")+"|&#[0-9]{1,5};)","g");return function(value){return(!value)?value:String(value).replace(regex,function(match,capture){if(capture in entities){return entities[capture]}else{return String.fromCharCode(parseInt(capture.substr(2),10))}})}})(),urlAppend:function(url,string){if(!Ext.isEmpty(string)){return url+(url.indexOf("?")===-1?"?":"&")+string}return url},trim:function(string){return string.replace(Ext.String.trimRegex,"")},capitalize:function(string){return string.charAt(0).toUpperCase()+string.substr(1)},ellipsis:function(value,len,word){if(value&&value.length>len){if(word){var vs=value.substr(0,len-2),index=Math.max(vs.lastIndexOf(" "),vs.lastIndexOf("."),vs.lastIndexOf("!"),vs.lastIndexOf("?"));if(index!==-1&&index>=(len-15)){return vs.substr(0,index)+"..."}}return value.substr(0,len-3)+"..."}return value},escapeRegex:function(string){return string.replace(Ext.String.escapeRegexRe,"\\$1")},escape:function(string){return string.replace(Ext.String.escapeRe,"\\$1")},toggle:function(string,value,other){return string===value?other:value},leftPad:function(string,size,character){var result=String(string);character=character||" ";while(result.length<size){result=character+result}return result},format:function(format){var args=Ext.Array.toArray(arguments,1);return format.replace(Ext.String.formatRe,function(m,i){return args[i]})},repeat:function(pattern,count,sep){for(var buf=[],i=count;i--;){buf.push(pattern)}return buf.join(sep||"")}};(function(){var isToFixedBroken=(0.9).toFixed()!=="1";Ext.Number={constrain:function(number,min,max){number=parseFloat(number);if(!isNaN(min)){number=Math.max(number,min)}if(!isNaN(max)){number=Math.min(number,max)}return number},snap:function(value,increment,minValue,maxValue){var newValue=value,m;if(!(increment&&value)){return value}m=value%increment;if(m!==0){newValue-=m;if(m*2>=increment){newValue+=increment}else{if(m*2<-increment){newValue-=increment}}}return Ext.Number.constrain(newValue,minValue,maxValue)},toFixed:function(value,precision){if(isToFixedBroken){precision=precision||0;var pow=Math.pow(10,precision);return(Math.round(value*pow)/pow).toFixed(precision)}return value.toFixed(precision)},from:function(value,defaultValue){if(isFinite(value)){value=parseFloat(value)}return !isNaN(value)?value:defaultValue}}})();Ext.num=function(){return Ext.Number.from.apply(this,arguments)};(function(){var arrayPrototype=Array.prototype,slice=arrayPrototype.slice,supportsSplice=function(){var array=[],lengthBefore,j=20;if(!array.splice){return false}while(j--){array.push("A")}array.splice(15,0,"F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F");lengthBefore=array.length;array.splice(13,0,"XXX");if(lengthBefore+1!=array.length){return false}return true}(),supportsForEach="forEach" in arrayPrototype,supportsMap="map" in arrayPrototype,supportsIndexOf="indexOf" in arrayPrototype,supportsEvery="every" in arrayPrototype,supportsSome="some" in arrayPrototype,supportsFilter="filter" in arrayPrototype,supportsSort=function(){var a=[1,2,3,4,5].sort(function(){return 0});return a[0]===1&&a[1]===2&&a[2]===3&&a[3]===4&&a[4]===5}(),supportsSliceOnNodeList=true,ExtArray;try{if(typeof document!=="undefined"){slice.call(document.getElementsByTagName("body"))}}catch(e){supportsSliceOnNodeList=false}function fixArrayIndex(array,index){return(index<0)?Math.max(0,array.length+index):Math.min(array.length,index)}function replaceSim(array,index,removeCount,insert){var add=insert?insert.length:0,length=array.length,pos=fixArrayIndex(array,index);if(pos===length){if(add){array.push.apply(array,insert)}}else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove,i;if(tailNewPos<tailOldPos){for(i=0;i<tailCount;++i){array[tailNewPos+i]=array[tailOldPos+i]}}else{if(tailNewPos>tailOldPos){for(i=tailCount;i--;){array[tailNewPos+i]=array[tailOldPos+i]}}}if(add&&pos===lengthAfterRemove){array.length=lengthAfterRemove;array.push.apply(array,insert)}else{array.length=lengthAfterRemove+add;for(i=0;i<add;++i){array[pos+i]=insert[i]}}}return array}function replaceNative(array,index,removeCount,insert){if(insert&&insert.length){if(index<array.length){array.splice.apply(array,[index,removeCount].concat(insert))}else{array.push.apply(array,insert)}}else{array.splice(index,removeCount)}return array}function eraseSim(array,index,removeCount){return replaceSim(array,index,removeCount)}function eraseNative(array,index,removeCount){array.splice(index,removeCount);return array}function spliceSim(array,index,removeCount){var pos=fixArrayIndex(array,index),removed=array.slice(index,fixArrayIndex(array,pos+removeCount));if(arguments.length<4){replaceSim(array,pos,removeCount)}else{replaceSim(array,pos,removeCount,slice.call(arguments,3))}return removed}function spliceNative(array){return array.splice.apply(array,slice.call(arguments,1))}var erase=supportsSplice?eraseNative:eraseSim,replace=supportsSplice?replaceNative:replaceSim,splice=supportsSplice?spliceNative:spliceSim;ExtArray=Ext.Array={each:function(array,fn,scope,reverse){array=ExtArray.from(array);var i,ln=array.length;if(reverse!==true){for(i=0;i<ln;i++){if(fn.call(scope||array[i],array[i],i,array)===false){return i}}}else{for(i=ln-1;i>-1;i--){if(fn.call(scope||array[i],array[i],i,array)===false){return i}}}return true},forEach:function(array,fn,scope){if(supportsForEach){return array.forEach(fn,scope)}var i=0,ln=array.length;for(;i<ln;i++){fn.call(scope,array[i],i,array)}},indexOf:function(array,item,from){if(supportsIndexOf){return array.indexOf(item,from)}var i,length=array.length;for(i=(from<0)?Math.max(0,length+from):from||0;i<length;i++){if(array[i]===item){return i}}return -1},contains:function(array,item){if(supportsIndexOf){return array.indexOf(item)!==-1}var i,ln;for(i=0,ln=array.length;i<ln;i++){if(array[i]===item){return true}}return false},toArray:function(iterable,start,end){if(!iterable||!iterable.length){return[]}if(typeof iterable==="string"){iterable=iterable.split("")}if(supportsSliceOnNodeList){return slice.call(iterable,start||0,end||iterable.length)}var array=[],i;start=start||0;end=end?((end<0)?iterable.length+end:end):iterable.length;for(i=start;i<end;i++){array.push(iterable[i])}return array},pluck:function(array,propertyName){var ret=[],i,ln,item;for(i=0,ln=array.length;i<ln;i++){item=array[i];ret.push(item[propertyName])}return ret},map:function(array,fn,scope){if(supportsMap){return array.map(fn,scope)}var results=[],i=0,len=array.length;for(;i<len;i++){results[i]=fn.call(scope,array[i],i,array)}return results},every:function(array,fn,scope){if(supportsEvery){return array.every(fn,scope)}var i=0,ln=array.length;for(;i<ln;++i){if(!fn.call(scope,array[i],i,array)){return false}}return true},some:function(array,fn,scope){if(supportsSome){return array.some(fn,scope)}var i=0,ln=array.length;for(;i<ln;++i){if(fn.call(scope,array[i],i,array)){return true}}return false},clean:function(array){var results=[],i=0,ln=array.length,item;for(;i<ln;i++){item=array[i];if(!Ext.isEmpty(item)){results.push(item)}}return results},unique:function(array){var clone=[],i=0,ln=array.length,item;for(;i<ln;i++){item=array[i];if(ExtArray.indexOf(clone,item)===-1){clone.push(item)}}return clone},filter:function(array,fn,scope){if(supportsFilter){return array.filter(fn,scope)}var results=[],i=0,ln=array.length;for(;i<ln;i++){if(fn.call(scope,array[i],i,array)){results.push(array[i])}}return results},from:function(value,newReference){if(value===undefined||value===null){return[]}if(Ext.isArray(value)){return(newReference)?slice.call(value):value}if(value&&value.length!==undefined&&typeof value!=="string"){return Ext.toArray(value)}return[value]},remove:function(array,item){var index=ExtArray.indexOf(array,item);if(index!==-1){erase(array,index,1)}return array},include:function(array,item){if(!ExtArray.contains(array,item)){array.push(item)}},clone:function(array){return slice.call(array)},merge:function(){var args=slice.call(arguments),array=[],i,ln;for(i=0,ln=args.length;i<ln;i++){array=array.concat(args[i])}return ExtArray.unique(array)},intersect:function(){var intersect=[],arrays=slice.call(arguments),i,j,k,minArray,array,x,y,ln,arraysLn,arrayLn;if(!arrays.length){return intersect}for(i=x=0,ln=arrays.length;i<ln,array=arrays[i];i++){if(!minArray||array.length<minArray.length){minArray=array;x=i}}minArray=ExtArray.unique(minArray);erase(arrays,x,1);for(i=0,ln=minArray.length;i<ln,x=minArray[i];i++){var count=0;for(j=0,arraysLn=arrays.length;j<arraysLn,array=arrays[j];j++){for(k=0,arrayLn=array.length;k<arrayLn,y=array[k];k++){if(x===y){count++;break}}}if(count===arraysLn){intersect.push(x)}}return intersect},difference:function(arrayA,arrayB){var clone=slice.call(arrayA),ln=clone.length,i,j,lnB;for(i=0,lnB=arrayB.length;i<lnB;i++){for(j=0;j<ln;j++){if(clone[j]===arrayB[i]){erase(clone,j,1);j--;ln--}}}return clone},slice:([1,2].slice(1,undefined).length?function(array,begin,end){return slice.call(array,begin,end)}:function(array,begin,end){if(typeof begin==="undefined"){return slice.call(array)}if(typeof end==="undefined"){return slice.call(array,begin)}return slice.call(array,begin,end)}),sort:function(array,sortFn){if(supportsSort){if(sortFn){return array.sort(sortFn)}else{return array.sort()}}var length=array.length,i=0,comparison,j,min,tmp;for(;i<length;i++){min=i;for(j=i+1;j<length;j++){if(sortFn){comparison=sortFn(array[j],array[min]);if(comparison<0){min=j}}else{if(array[j]<array[min]){min=j}}}if(min!==i){tmp=array[i];array[i]=array[min];array[min]=tmp}}return array},flatten:function(array){var worker=[];function rFlatten(a){var i,ln,v;for(i=0,ln=a.length;i<ln;i++){v=a[i];if(Ext.isArray(v)){rFlatten(v)}else{worker.push(v)}}return worker}return rFlatten(array)},min:function(array,comparisonFn){var min=array[0],i,ln,item;for(i=0,ln=array.length;i<ln;i++){item=array[i];if(comparisonFn){if(comparisonFn(min,item)===1){min=item}}else{if(item<min){min=item}}}return min},max:function(array,comparisonFn){var max=array[0],i,ln,item;for(i=0,ln=array.length;i<ln;i++){item=array[i];if(comparisonFn){if(comparisonFn(max,item)===-1){max=item}}else{if(item>max){max=item}}}return max},mean:function(array){return array.length>0?ExtArray.sum(array)/array.length:undefined},sum:function(array){var sum=0,i,ln,item;for(i=0,ln=array.length;i<ln;i++){item=array[i];sum+=item}return sum},erase:erase,insert:function(array,index,items){return replace(array,index,0,items)},replace:replace,splice:splice};Ext.each=ExtArray.each;ExtArray.union=ExtArray.merge;Ext.min=ExtArray.min;Ext.max=ExtArray.max;Ext.sum=ExtArray.sum;Ext.mean=ExtArray.mean;Ext.flatten=ExtArray.flatten;Ext.clean=ExtArray.clean;Ext.unique=ExtArray.unique;Ext.pluck=ExtArray.pluck;Ext.toArray=function(){return ExtArray.toArray.apply(ExtArray,arguments)}})();Ext.Function={flexSetter:function(fn){return function(a,b){var k,i;if(a===null){return this}if(typeof a!=="string"){for(k in a){if(a.hasOwnProperty(k)){fn.call(this,k,a[k])}}if(Ext.enumerables){for(i=Ext.enumerables.length;i--;){k=Ext.enumerables[i];if(a.hasOwnProperty(k)){fn.call(this,k,a[k])}}}}else{fn.call(this,a,b)}return this}},bind:function(fn,scope,args,appendArgs){if(arguments.length===2){return function(){return fn.apply(scope,arguments)}}var method=fn,slice=Array.prototype.slice;return function(){var callArgs=args||arguments;if(appendArgs===true){callArgs=slice.call(arguments,0);callArgs=callArgs.concat(args)}else{if(typeof appendArgs=="number"){callArgs=slice.call(arguments,0);Ext.Array.insert(callArgs,appendArgs,args)}}return method.apply(scope||window,callArgs)}},pass:function(fn,args,scope){if(args){args=Ext.Array.from(args)}return function(){return fn.apply(scope,args.concat(Ext.Array.toArray(arguments)))}},alias:function(object,methodName){return function(){return object[methodName].apply(object,arguments)}},createInterceptor:function(origFn,newFn,scope,returnValue){var method=origFn;if(!Ext.isFunction(newFn)){return origFn}else{return function(){var me=this,args=arguments;newFn.target=me;newFn.method=origFn;return(newFn.apply(scope||me||window,args)!==false)?origFn.apply(me||window,args):returnValue||null}}},createDelayed:function(fn,delay,scope,args,appendArgs){if(scope||args){fn=Ext.Function.bind(fn,scope,args,appendArgs)}return function(){var me=this;setTimeout(function(){fn.apply(me,arguments)},delay)}},defer:function(fn,millis,obj,args,appendArgs){fn=Ext.Function.bind(fn,obj,args,appendArgs);if(millis>0){return setTimeout(fn,millis)}fn();return 0},createSequence:function(origFn,newFn,scope){if(!Ext.isFunction(newFn)){return origFn}else{return function(){var retval=origFn.apply(this||window,arguments);newFn.apply(scope||this||window,arguments);return retval}}},createBuffered:function(fn,buffer,scope,args){return function(){var timerId;return function(){var me=this;if(timerId){clearTimeout(timerId);timerId=null}timerId=setTimeout(function(){fn.apply(scope||me,args||arguments)},buffer)}}()},createThrottled:function(fn,interval,scope){var lastCallTime,elapsed,lastArgs,timer,execute=function(){fn.apply(scope||this,lastArgs);lastCallTime=new Date().getTime()};return function(){elapsed=new Date().getTime()-lastCallTime;lastArgs=arguments;clearTimeout(timer);if(!lastCallTime||(elapsed>=interval)){execute()}else{timer=setTimeout(execute,interval-elapsed)}}},interceptBefore:function(object,methodName,fn){var method=object[methodName]||Ext.emptyFn;return object[methodName]=function(){var ret=fn.apply(this,arguments);method.apply(this,arguments);return ret}},interceptAfter:function(object,methodName,fn){var method=object[methodName]||Ext.emptyFn;return object[methodName]=function(){method.apply(this,arguments);return fn.apply(this,arguments)}}};Ext.defer=Ext.Function.alias(Ext.Function,"defer");Ext.pass=Ext.Function.alias(Ext.Function,"pass");Ext.bind=Ext.Function.alias(Ext.Function,"bind");(function(){var ExtObject=Ext.Object={toQueryObjects:function(name,value,recursive){var self=ExtObject.toQueryObjects,objects=[],i,ln;if(Ext.isArray(value)){for(i=0,ln=value.length;i<ln;i++){if(recursive){objects=objects.concat(self(name+"["+i+"]",value[i],true))}else{objects.push({name:name,value:value[i]})}}}else{if(Ext.isObject(value)){for(i in value){if(value.hasOwnProperty(i)){if(recursive){objects=objects.concat(self(name+"["+i+"]",value[i],true))}else{objects.push({name:name,value:value[i]})}}}}else{objects.push({name:name,value:value})}}return objects},toQueryString:function(object,recursive){var paramObjects=[],params=[],i,j,ln,paramObject,value;for(i in object){if(object.hasOwnProperty(i)){paramObjects=paramObjects.concat(ExtObject.toQueryObjects(i,object[i],recursive))}}for(j=0,ln=paramObjects.length;j<ln;j++){paramObject=paramObjects[j];value=paramObject.value;if(Ext.isEmpty(value)){value=""}else{if(Ext.isDate(value)){value=Ext.Date.toString(value)}}params.push(encodeURIComponent(paramObject.name)+"="+encodeURIComponent(String(value)))}return params.join("&")},fromQueryString:function(queryString,recursive){var parts=queryString.replace(/^\?/,"").split("&"),object={},temp,components,name,value,i,ln,part,j,subLn,matchedKeys,matchedName,keys,key,nextKey;for(i=0,ln=parts.length;i<ln;i++){part=parts[i];if(part.length>0){components=part.split("=");name=decodeURIComponent(components[0]);value=(components[1]!==undefined)?decodeURIComponent(components[1]):"";if(!recursive){if(object.hasOwnProperty(name)){if(!Ext.isArray(object[name])){object[name]=[object[name]]}object[name].push(value)}else{object[name]=value}}else{matchedKeys=name.match(/(\[):?([^\]]*)\]/g);matchedName=name.match(/^([^\[]+)/);name=matchedName[0];keys=[];if(matchedKeys===null){object[name]=value;continue}for(j=0,subLn=matchedKeys.length;j<subLn;j++){key=matchedKeys[j];key=(key.length===2)?"":key.substring(1,key.length-1);keys.push(key)}keys.unshift(name);temp=object;for(j=0,subLn=keys.length;j<subLn;j++){key=keys[j];if(j===subLn-1){if(Ext.isArray(temp)&&key===""){temp.push(value)}else{temp[key]=value}}else{if(temp[key]===undefined||typeof temp[key]==="string"){nextKey=keys[j+1];temp[key]=(Ext.isNumeric(nextKey)||nextKey==="")?[]:{}}temp=temp[key]}}}}}return object},each:function(object,fn,scope){for(var property in object){if(object.hasOwnProperty(property)){if(fn.call(scope||object,property,object[property],object)===false){return}}}},merge:function(source,key,value){if(typeof key==="string"){if(value&&value.constructor===Object){if(source[key]&&source[key].constructor===Object){ExtObject.merge(source[key],value)}else{source[key]=Ext.clone(value)}}else{source[key]=value}return source}var i=1,ln=arguments.length,object,property;for(;i<ln;i++){object=arguments[i];for(property in object){if(object.hasOwnProperty(property)){ExtObject.merge(source,property,object[property])}}}return source},getKey:function(object,value){for(var property in object){if(object.hasOwnProperty(property)&&object[property]===value){return property}}return null},getValues:function(object){var values=[],property;for(property in object){if(object.hasOwnProperty(property)){values.push(object[property])}}return values},getKeys:("keys" in Object.prototype)?Object.keys:function(object){var keys=[],property;for(property in object){if(object.hasOwnProperty(property)){keys.push(property)}}return keys},getSize:function(object){var size=0,property;for(property in object){if(object.hasOwnProperty(property)){size++}}return size}};Ext.merge=Ext.Object.merge;Ext.urlEncode=function(){var args=Ext.Array.from(arguments),prefix="";if((typeof args[1]==="string")){prefix=args[1]+"&";args[1]=false}return prefix+Ext.Object.toQueryString.apply(Ext.Object,args)};Ext.urlDecode=function(){return Ext.Object.fromQueryString.apply(Ext.Object,arguments)}})();(function(){function xf(format){var args=Array.prototype.slice.call(arguments,1);return format.replace(/\{(\d+)\}/g,function(m,i){return args[i]})}Ext.Date={now:Date.now||function(){return +new Date()},toString:function(date){var pad=Ext.String.leftPad;return date.getFullYear()+"-"+pad(date.getMonth()+1,2,"0")+"-"+pad(date.getDate(),2,"0")+"T"+pad(date.getHours(),2,"0")+":"+pad(date.getMinutes(),2,"0")+":"+pad(date.getSeconds(),2,"0")},getElapsed:function(dateA,dateB){return Math.abs(dateA-(dateB||new Date()))},useStrict:false,formatCodeToRegex:function(character,currentGroup){var p=utilDate.parseCodes[character];if(p){p=typeof p=="function"?p():p;utilDate.parseCodes[character]=p}return p?Ext.applyIf({c:p.c?xf(p.c,currentGroup||"{0}"):p.c},p):{g:0,c:null,s:Ext.String.escapeRegex(character)}},parseFunctions:{MS:function(input,strict){var re=new RegExp("\\/Date\\(([-+])?(\\d+)(?:[+-]\\d{4})?\\)\\/");var r=(input||"").match(re);return r?new Date(((r[1]||"")+r[2])*1):null}},parseRegexes:[],formatFunctions:{MS:function(){return"\\/Date("+this.getTime()+")\\/"}},y2kYear:50,MILLI:"ms",SECOND:"s",MINUTE:"mi",HOUR:"h",DAY:"d",MONTH:"mo",YEAR:"y",defaults:{},dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNumbers:{Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11},defaultFormat:"m/d/Y",getShortMonthName:function(month){return utilDate.monthNames[month].substring(0,3)},getShortDayName:function(day){return utilDate.dayNames[day].substring(0,3)},getMonthNumber:function(name){return utilDate.monthNumbers[name.substring(0,1).toUpperCase()+name.substring(1,3).toLowerCase()]},formatContainsHourInfo:(function(){var stripEscapeRe=/(\\.)/g,hourInfoRe=/([gGhHisucUOPZ]|MS)/;return function(format){return hourInfoRe.test(format.replace(stripEscapeRe,""))}})(),formatContainsDateInfo:(function(){var stripEscapeRe=/(\\.)/g,dateInfoRe=/([djzmnYycU]|MS)/;return function(format){return dateInfoRe.test(format.replace(stripEscapeRe,""))}})(),formatCodes:{d:"Ext.String.leftPad(this.getDate(), 2, '0')",D:"Ext.Date.getShortDayName(this.getDay())",j:"this.getDate()",l:"Ext.Date.dayNames[this.getDay()]",N:"(this.getDay() ? this.getDay() : 7)",S:"Ext.Date.getSuffix(this)",w:"this.getDay()",z:"Ext.Date.getDayOfYear(this)",W:"Ext.String.leftPad(Ext.Date.getWeekOfYear(this), 2, '0')",F:"Ext.Date.monthNames[this.getMonth()]",m:"Ext.String.leftPad(this.getMonth() + 1, 2, '0')",M:"Ext.Date.getShortMonthName(this.getMonth())",n:"(this.getMonth() + 1)",t:"Ext.Date.getDaysInMonth(this)",L:"(Ext.Date.isLeapYear(this) ? 1 : 0)",o:"(this.getFullYear() + (Ext.Date.getWeekOfYear(this) == 1 && this.getMonth() > 0 ? +1 : (Ext.Date.getWeekOfYear(this) >= 52 && this.getMonth() < 11 ? -1 : 0)))",Y:"Ext.String.leftPad(this.getFullYear(), 4, '0')",y:"('' + this.getFullYear()).substring(2, 4)",a:"(this.getHours() < 12 ? 'am' : 'pm')",A:"(this.getHours() < 12 ? 'AM' : 'PM')",g:"((this.getHours() % 12) ? this.getHours() % 12 : 12)",G:"this.getHours()",h:"Ext.String.leftPad((this.getHours() % 12) ? this.getHours() % 12 : 12, 2, '0')",H:"Ext.String.leftPad(this.getHours(), 2, '0')",i:"Ext.String.leftPad(this.getMinutes(), 2, '0')",s:"Ext.String.leftPad(this.getSeconds(), 2, '0')",u:"Ext.String.leftPad(this.getMilliseconds(), 3, '0')",O:"Ext.Date.getGMTOffset(this)",P:"Ext.Date.getGMTOffset(this, true)",T:"Ext.Date.getTimezone(this)",Z:"(this.getTimezoneOffset() * -60)",c:function(){for(var c="Y-m-dTH:i:sP",code=[],i=0,l=c.length;i<l;++i){var e=c.charAt(i);code.push(e=="T"?"'T'":utilDate.getFormatCode(e))}return code.join(" + ")},U:"Math.round(this.getTime() / 1000)"},isValid:function(y,m,d,h,i,s,ms){h=h||0;i=i||0;s=s||0;ms=ms||0;var dt=utilDate.add(new Date(y<100?100:y,m-1,d,h,i,s,ms),utilDate.YEAR,y<100?y-100:0);return y==dt.getFullYear()&&m==dt.getMonth()+1&&d==dt.getDate()&&h==dt.getHours()&&i==dt.getMinutes()&&s==dt.getSeconds()&&ms==dt.getMilliseconds()},parse:function(input,format,strict){var p=utilDate.parseFunctions;if(p[format]==null){utilDate.createParser(format)}return p[format](input,Ext.isDefined(strict)?strict:utilDate.useStrict)},parseDate:function(input,format,strict){return utilDate.parse(input,format,strict)},getFormatCode:function(character){var f=utilDate.formatCodes[character];if(f){f=typeof f=="function"?f():f;utilDate.formatCodes[character]=f}return f||("'"+Ext.String.escape(character)+"'")},createFormat:function(format){var code=[],special=false,ch="";for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true}else{if(special){special=false;code.push("'"+Ext.String.escape(ch)+"'")}else{code.push(utilDate.getFormatCode(ch))}}}utilDate.formatFunctions[format]=Ext.functionFactory("return "+code.join("+"))},createParser:(function(){var code=["var dt, y, m, d, h, i, s, ms, o, z, zz, u, v,","def = Ext.Date.defaults,","results = String(input).match(Ext.Date.parseRegexes[{0}]);","if(results){","{1}","if(u != null){","v = new Date(u * 1000);","}else{","dt = Ext.Date.clearTime(new Date);","y = Ext.Number.from(y, Ext.Number.from(def.y, dt.getFullYear()));","m = Ext.Number.from(m, Ext.Number.from(def.m - 1, dt.getMonth()));","d = Ext.Number.from(d, Ext.Number.from(def.d, dt.getDate()));","h  = Ext.Number.from(h, Ext.Number.from(def.h, dt.getHours()));","i  = Ext.Number.from(i, Ext.Number.from(def.i, dt.getMinutes()));","s  = Ext.Number.from(s, Ext.Number.from(def.s, dt.getSeconds()));","ms = Ext.Number.from(ms, Ext.Number.from(def.ms, dt.getMilliseconds()));","if(z >= 0 && y >= 0){","v = Ext.Date.add(new Date(y < 100 ? 100 : y, 0, 1, h, i, s, ms), Ext.Date.YEAR, y < 100 ? y - 100 : 0);","v = !strict? v : (strict === true && (z <= 364 || (Ext.Date.isLeapYear(v) && z <= 365))? Ext.Date.add(v, Ext.Date.DAY, z) : null);","}else if(strict === true && !Ext.Date.isValid(y, m + 1, d, h, i, s, ms)){","v = null;","}else{","v = Ext.Date.add(new Date(y < 100 ? 100 : y, m, d, h, i, s, ms), Ext.Date.YEAR, y < 100 ? y - 100 : 0);","}","}","}","if(v){","if(zz != null){","v = Ext.Date.add(v, Ext.Date.SECOND, -v.getTimezoneOffset() * 60 - zz);","}else if(o){","v = Ext.Date.add(v, Ext.Date.MINUTE, -v.getTimezoneOffset() + (sn == '+'? -1 : 1) * (hr * 60 + mn));","}","}","return v;"].join("\n");return function(format){var regexNum=utilDate.parseRegexes.length,currentGroup=1,calc=[],regex=[],special=false,ch="";for(var i=0;i<format.length;++i){ch=format.charAt(i);if(!special&&ch=="\\"){special=true}else{if(special){special=false;regex.push(Ext.String.escape(ch))}else{var obj=utilDate.formatCodeToRegex(ch,currentGroup);currentGroup+=obj.g;regex.push(obj.s);if(obj.g&&obj.c){calc.push(obj.c)}}}}utilDate.parseRegexes[regexNum]=new RegExp("^"+regex.join("")+"$","i");utilDate.parseFunctions[format]=Ext.functionFactory("input","strict",xf(code,regexNum,calc.join("")))}})(),parseCodes:{d:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},j:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(\\d{1,2})"},D:function(){for(var a=[],i=0;i<7;a.push(utilDate.getShortDayName(i)),++i){}return{g:0,c:null,s:"(?:"+a.join("|")+")"}},l:function(){return{g:0,c:null,s:"(?:"+utilDate.dayNames.join("|")+")"}},N:{g:0,c:null,s:"[1-7]"},S:{g:0,c:null,s:"(?:st|nd|rd|th)"},w:{g:0,c:null,s:"[0-6]"},z:{g:1,c:"z = parseInt(results[{0}], 10);\n",s:"(\\d{1,3})"},W:{g:0,c:null,s:"(?:\\d{2})"},F:function(){return{g:1,c:"m = parseInt(Ext.Date.getMonthNumber(results[{0}]), 10);\n",s:"("+utilDate.monthNames.join("|")+")"}},M:function(){for(var a=[],i=0;i<12;a.push(utilDate.getShortMonthName(i)),++i){}return Ext.applyIf({s:"("+a.join("|")+")"},utilDate.formatCodeToRegex("F"))},m:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(\\d{2})"},n:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(\\d{1,2})"},t:{g:0,c:null,s:"(?:\\d{2})"},L:{g:0,c:null,s:"(?:1|0)"},o:function(){return utilDate.formatCodeToRegex("Y")},Y:{g:1,c:"y = parseInt(results[{0}], 10);\n",s:"(\\d{4})"},y:{g:1,c:"var ty = parseInt(results[{0}], 10);\ny = ty > Ext.Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"},a:{g:1,c:"if (/(am)/i.test(results[{0}])) {\nif (!h || h == 12) { h = 0; }\n} else { if (!h || h < 12) { h = (h || 0) + 12; }}",s:"(am|pm|AM|PM)"},A:{g:1,c:"if (/(am)/i.test(results[{0}])) {\nif (!h || h == 12) { h = 0; }\n} else { if (!h || h < 12) { h = (h || 0) + 12; }}",s:"(AM|PM|am|pm)"},g:function(){return utilDate.formatCodeToRegex("G")},G:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(\\d{1,2})"},h:function(){return utilDate.formatCodeToRegex("H")},H:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},i:{g:1,c:"i = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},s:{g:1,c:"s = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},u:{g:1,c:"ms = results[{0}]; ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n",s:"(\\d+)"},O:{g:1,c:["o = results[{0}];","var sn = o.substring(0,1),","hr = o.substring(1,3)*1 + Math.floor(o.substring(3,5) / 60),","mn = o.substring(3,5) % 60;","o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + Ext.String.leftPad(hr, 2, '0') + Ext.String.leftPad(mn, 2, '0')) : null;\n"].join("\n"),s:"([+-]\\d{4})"},P:{g:1,c:["o = results[{0}];","var sn = o.substring(0,1),","hr = o.substring(1,3)*1 + Math.floor(o.substring(4,6) / 60),","mn = o.substring(4,6) % 60;","o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + Ext.String.leftPad(hr, 2, '0') + Ext.String.leftPad(mn, 2, '0')) : null;\n"].join("\n"),s:"([+-]\\d{2}:\\d{2})"},T:{g:0,c:null,s:"[A-Z]{1,4}"},Z:{g:1,c:"zz = results[{0}] * 1;\nzz = (-43200 <= zz && zz <= 50400)? zz : null;\n",s:"([+-]?\\d{1,5})"},c:function(){var calc=[],arr=[utilDate.formatCodeToRegex("Y",1),utilDate.formatCodeToRegex("m",2),utilDate.formatCodeToRegex("d",3),utilDate.formatCodeToRegex("h",4),utilDate.formatCodeToRegex("i",5),utilDate.formatCodeToRegex("s",6),{c:"ms = results[7] || '0'; ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n"},{c:["if(results[8]) {","if(results[8] == 'Z'){","zz = 0;","}else if (results[8].indexOf(':') > -1){",utilDate.formatCodeToRegex("P",8).c,"}else{",utilDate.formatCodeToRegex("O",8).c,"}","}"].join("\n")}];for(var i=0,l=arr.length;i<l;++i){calc.push(arr[i].c)}return{g:1,c:calc.join(""),s:[arr[0].s,"(?:","-",arr[1].s,"(?:","-",arr[2].s,"(?:","(?:T| )?",arr[3].s,":",arr[4].s,"(?::",arr[5].s,")?","(?:(?:\\.|,)(\\d+))?","(Z|(?:[-+]\\d{2}(?::)?\\d{2}))?",")?",")?",")?"].join("")}},U:{g:1,c:"u = parseInt(results[{0}], 10);\n",s:"(-?\\d+)"}},dateFormat:function(date,format){return utilDate.format(date,format)},format:function(date,format){if(utilDate.formatFunctions[format]==null){utilDate.createFormat(format)}var result=utilDate.formatFunctions[format].call(date);return result+""},getTimezone:function(date){return date.toString().replace(/^.* (?:\((.*)\)|([A-Z]{1,4})(?:[\-+][0-9]{4})?(?: -?\d+)?)$/,"$1$2").replace(/[^A-Z]/g,"")},getGMTOffset:function(date,colon){var offset=date.getTimezoneOffset();return(offset>0?"-":"+")+Ext.String.leftPad(Math.floor(Math.abs(offset)/60),2,"0")+(colon?":":"")+Ext.String.leftPad(Math.abs(offset%60),2,"0")},getDayOfYear:function(date){var num=0,d=Ext.Date.clone(date),m=date.getMonth(),i;for(i=0,d.setDate(1),d.setMonth(0);i<m;d.setMonth(++i)){num+=utilDate.getDaysInMonth(d)}return num+date.getDate()-1},getWeekOfYear:(function(){var ms1d=86400000,ms7d=7*ms1d;return function(date){var DC3=Date.UTC(date.getFullYear(),date.getMonth(),date.getDate()+3)/ms1d,AWN=Math.floor(DC3/7),Wyr=new Date(AWN*ms7d).getUTCFullYear();return AWN-Math.floor(Date.UTC(Wyr,0,7)/ms7d)+1}})(),isLeapYear:function(date){var year=date.getFullYear();return !!((year&3)==0&&(year%100||(year%400==0&&year)))},getFirstDayOfMonth:function(date){var day=(date.getDay()-(date.getDate()-1))%7;return(day<0)?(day+7):day},getLastDayOfMonth:function(date){return utilDate.getLastDateOfMonth(date).getDay()},getFirstDateOfMonth:function(date){return new Date(date.getFullYear(),date.getMonth(),1)},getLastDateOfMonth:function(date){return new Date(date.getFullYear(),date.getMonth(),utilDate.getDaysInMonth(date))},getDaysInMonth:(function(){var daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31];return function(date){var m=date.getMonth();return m==1&&utilDate.isLeapYear(date)?29:daysInMonth[m]}})(),getSuffix:function(date){switch(date.getDate()){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th"}},clone:function(date){return new Date(date.getTime())},isDST:function(date){return new Date(date.getFullYear(),0,1).getTimezoneOffset()!=date.getTimezoneOffset()},clearTime:function(date,clone){if(clone){return Ext.Date.clearTime(Ext.Date.clone(date))}var d=date.getDate();date.setHours(0);date.setMinutes(0);date.setSeconds(0);date.setMilliseconds(0);if(date.getDate()!=d){for(var hr=1,c=utilDate.add(date,Ext.Date.HOUR,hr);c.getDate()!=d;hr++,c=utilDate.add(date,Ext.Date.HOUR,hr)){}date.setDate(d);date.setHours(c.getHours())}return date},add:function(date,interval,value){var d=Ext.Date.clone(date),Date=Ext.Date;if(!interval||value===0){return d}switch(interval.toLowerCase()){case Ext.Date.MILLI:d.setMilliseconds(d.getMilliseconds()+value);break;case Ext.Date.SECOND:d.setSeconds(d.getSeconds()+value);break;case Ext.Date.MINUTE:d.setMinutes(d.getMinutes()+value);break;case Ext.Date.HOUR:d.setHours(d.getHours()+value);break;case Ext.Date.DAY:d.setDate(d.getDate()+value);break;case Ext.Date.MONTH:var day=date.getDate();if(day>28){day=Math.min(day,Ext.Date.getLastDateOfMonth(Ext.Date.add(Ext.Date.getFirstDateOfMonth(date),"mo",value)).getDate())}d.setDate(day);d.setMonth(date.getMonth()+value);break;case Ext.Date.YEAR:d.setFullYear(date.getFullYear()+value);break}return d},between:function(date,start,end){var t=date.getTime();return start.getTime()<=t&&t<=end.getTime()},compat:function(){var nativeDate=window.Date,p,u,statics=["useStrict","formatCodeToRegex","parseFunctions","parseRegexes","formatFunctions","y2kYear","MILLI","SECOND","MINUTE","HOUR","DAY","MONTH","YEAR","defaults","dayNames","monthNames","monthNumbers","getShortMonthName","getShortDayName","getMonthNumber","formatCodes","isValid","parseDate","getFormatCode","createFormat","createParser","parseCodes"],proto=["dateFormat","format","getTimezone","getGMTOffset","getDayOfYear","getWeekOfYear","isLeapYear","getFirstDayOfMonth","getLastDayOfMonth","getDaysInMonth","getSuffix","clone","isDST","clearTime","add","between"];Ext.Array.forEach(statics,function(s){nativeDate[s]=utilDate[s]});Ext.Array.forEach(proto,function(s){nativeDate.prototype[s]=function(){var args=Array.prototype.slice.call(arguments);args.unshift(this);return utilDate[s].apply(utilDate,args)}})}};var utilDate=Ext.Date})();(function(flexSetter){var Base=Ext.Base=function(){};Base.prototype={$className:"Ext.Base",$class:Base,self:Base,constructor:function(){return this},initConfig:function(config){if(!this.$configInited){this.config=Ext.Object.merge({},this.config||{},config||{});this.applyConfig(this.config);this.$configInited=true}return this},setConfig:function(config){this.applyConfig(config||{});return this},applyConfig:flexSetter(function(name,value){var setter="set"+Ext.String.capitalize(name);if(typeof this[setter]==="function"){this[setter].call(this,value)}return this}),callParent:function(args){var method=this.callParent.caller,parentClass,methodName;if(!method.$owner){method=method.caller}parentClass=method.$owner.superclass;methodName=method.$name;return parentClass[methodName].apply(this,args||[])},statics:function(){var method=this.statics.caller,self=this.self;if(!method){return self}return method.$owner},callOverridden:function(args){var method=this.callOverridden.caller;return method.$previous.apply(this,args||[])},destroy:function(){}};Ext.apply(Ext.Base,{create:function(){return Ext.create.apply(Ext,[this].concat(Array.prototype.slice.call(arguments,0)))},own:function(name,value){if(typeof value=="function"){this.ownMethod(name,value)}else{this.prototype[name]=value}},ownMethod:function(name,fn){var originalFn;if(typeof fn.$owner!=="undefined"&&fn!==Ext.emptyFn){originalFn=fn;fn=function(){return originalFn.apply(this,arguments)}}fn.$owner=this;fn.$name=name;this.prototype[name]=fn},addStatics:function(members){for(var name in members){if(members.hasOwnProperty(name)){this[name]=members[name]}}return this},addInheritableStatics:function(members){var inheritableStatics,hasInheritableStatics,prototype=this.prototype,name,member;inheritableStatics=prototype.$inheritableStatics;hasInheritableStatics=prototype.$hasInheritableStatics;if(!inheritableStatics){inheritableStatics=prototype.$inheritableStatics=[];hasInheritableStatics=prototype.$hasInheritableStatics={}}for(name in members){if(members.hasOwnProperty(name)){member=members[name];this[name]=member;if(!hasInheritableStatics[name]){hasInheritableStatics[name]=true;inheritableStatics.push(name)}}}return this},implement:function(members){var prototype=this.prototype,enumerables=Ext.enumerables,name,i,member;for(name in members){if(members.hasOwnProperty(name)){member=members[name];if(typeof member==="function"){member.$owner=this;member.$name=name}prototype[name]=member}}if(enumerables){for(i=enumerables.length;i--;){name=enumerables[i];if(members.hasOwnProperty(name)){member=members[name];member.$owner=this;member.$name=name;prototype[name]=member}}}},borrow:function(fromClass,members){var fromPrototype=fromClass.prototype,i,ln,member;members=Ext.Array.from(members);for(i=0,ln=members.length;i<ln;i++){member=members[i];this.own(member,fromPrototype[member])}return this},override:function(members){var prototype=this.prototype,enumerables=Ext.enumerables,name,i,member,previous;if(arguments.length===2){name=members;member=arguments[1];if(typeof member=="function"){if(typeof prototype[name]=="function"){previous=prototype[name];member.$previous=previous}this.ownMethod(name,member)}else{prototype[name]=member}return this}for(name in members){if(members.hasOwnProperty(name)){member=members[name];if(typeof member==="function"){if(typeof prototype[name]==="function"){previous=prototype[name];member.$previous=previous}this.ownMethod(name,member)}else{prototype[name]=member}}}if(enumerables){for(i=enumerables.length;i--;){name=enumerables[i];if(members.hasOwnProperty(name)){if(typeof prototype[name]!=="undefined"){previous=prototype[name];members[name].$previous=previous}this.ownMethod(name,members[name])}}}return this},mixin:function(name,cls){var mixin=cls.prototype,my=this.prototype,key,fn;for(key in mixin){if(mixin.hasOwnProperty(key)){if(typeof my[key]==="undefined"&&key!=="mixins"&&key!=="mixinId"){if(typeof mixin[key]==="function"){fn=mixin[key];if(typeof fn.$owner==="undefined"){this.ownMethod(key,fn)}else{my[key]=fn}}else{my[key]=mixin[key]}}else{if(key==="config"&&my.config&&mixin.config){Ext.Object.merge(my.config,mixin.config)}}}}if(typeof mixin.onClassMixedIn!=="undefined"){mixin.onClassMixedIn.call(cls,this)}if(!my.hasOwnProperty("mixins")){if("mixins" in my){my.mixins=Ext.Object.merge({},my.mixins)}else{my.mixins={}}}my.mixins[name]=mixin},getName:function(){return Ext.getClassName(this)},createAlias:flexSetter(function(alias,origin){this.prototype[alias]=function(){return this[origin].apply(this,arguments)}})})})(Ext.Function.flexSetter);(function(){var Class,Base=Ext.Base,baseStaticProperties=[],baseStaticProperty;for(baseStaticProperty in Base){if(Base.hasOwnProperty(baseStaticProperty)){baseStaticProperties.push(baseStaticProperty)}}Ext.Class=Class=function(newClass,classData,onClassCreated){if(typeof newClass!="function"){onClassCreated=classData;classData=newClass;newClass=function(){return this.constructor.apply(this,arguments)}}if(!classData){classData={}}var preprocessorStack=classData.preprocessors||Class.getDefaultPreprocessors(),registeredPreprocessors=Class.getPreprocessors(),index=0,preprocessors=[],preprocessor,staticPropertyName,process,i,j,ln;for(i=0,ln=baseStaticProperties.length;i<ln;i++){staticPropertyName=baseStaticProperties[i];newClass[staticPropertyName]=Base[staticPropertyName]}delete classData.preprocessors;for(j=0,ln=preprocessorStack.length;j<ln;j++){preprocessor=preprocessorStack[j];if(typeof preprocessor=="string"){preprocessor=registeredPreprocessors[preprocessor];if(!preprocessor.always){if(classData.hasOwnProperty(preprocessor.name)){preprocessors.push(preprocessor.fn)}}else{preprocessors.push(preprocessor.fn)}}else{preprocessors.push(preprocessor)}}classData.onClassCreated=onClassCreated||Ext.emptyFn;classData.onBeforeClassCreated=function(cls,data){onClassCreated=data.onClassCreated;delete data.onBeforeClassCreated;delete data.onClassCreated;cls.implement(data);onClassCreated.call(cls,cls)};process=function(cls,data){preprocessor=preprocessors[index++];if(!preprocessor){data.onBeforeClassCreated.apply(this,arguments);return}if(preprocessor.call(this,cls,data,process)!==false){process.apply(this,arguments)}};process.call(Class,newClass,classData);return newClass};Ext.apply(Class,{preprocessors:{},registerPreprocessor:function(name,fn,always){this.preprocessors[name]={name:name,always:always||false,fn:fn};return this},getPreprocessor:function(name){return this.preprocessors[name]},getPreprocessors:function(){return this.preprocessors},getDefaultPreprocessors:function(){return this.defaultPreprocessors||[]},setDefaultPreprocessors:function(preprocessors){this.defaultPreprocessors=Ext.Array.from(preprocessors);return this},setDefaultPreprocessorPosition:function(name,offset,relativeName){var defaultPreprocessors=this.defaultPreprocessors,index;if(typeof offset=="string"){if(offset==="first"){defaultPreprocessors.unshift(name);return this}else{if(offset==="last"){defaultPreprocessors.push(name);return this}}offset=(offset==="after")?1:-1}index=Ext.Array.indexOf(defaultPreprocessors,relativeName);if(index!==-1){Ext.Array.splice(defaultPreprocessors,Math.max(0,index+offset),0,name)}return this}});Class.registerPreprocessor("extend",function(cls,data){var extend=data.extend,base=Ext.Base,basePrototype=base.prototype,prototype=function(){},parent,i,k,ln,staticName,parentStatics,parentPrototype,clsPrototype;if(extend&&extend!==Object){parent=extend}else{parent=base}parentPrototype=parent.prototype;prototype.prototype=parentPrototype;clsPrototype=cls.prototype=new prototype();if(!("$class" in parent)){for(i in basePrototype){if(!parentPrototype[i]){parentPrototype[i]=basePrototype[i]}}}clsPrototype.self=cls;cls.superclass=clsPrototype.superclass=parentPrototype;delete data.extend;parentStatics=parentPrototype.$inheritableStatics;if(parentStatics){for(k=0,ln=parentStatics.length;k<ln;k++){staticName=parentStatics[k];if(!cls.hasOwnProperty(staticName)){cls[staticName]=parent[staticName]}}}if(parentPrototype.config){clsPrototype.config=Ext.Object.merge({},parentPrototype.config)}else{clsPrototype.config={}}if(clsPrototype.$onExtended){clsPrototype.$onExtended.call(cls,cls,data)}if(data.onClassExtended){clsPrototype.$onExtended=data.onClassExtended;delete data.onClassExtended}},true);Class.registerPreprocessor("statics",function(cls,data){cls.addStatics(data.statics);delete data.statics});Class.registerPreprocessor("inheritableStatics",function(cls,data){cls.addInheritableStatics(data.inheritableStatics);delete data.inheritableStatics});Class.registerPreprocessor("config",function(cls,data){var prototype=cls.prototype;Ext.Object.each(data.config,function(name){var cName=name.charAt(0).toUpperCase()+name.substr(1),pName=name,apply="apply"+cName,setter="set"+cName,getter="get"+cName;if(!(apply in prototype)&&!data.hasOwnProperty(apply)){data[apply]=function(val){return val}}if(!(setter in prototype)&&!data.hasOwnProperty(setter)){data[setter]=function(val){var ret=this[apply].call(this,val,this[pName]);if(typeof ret!="undefined"){this[pName]=ret}return this}}if(!(getter in prototype)&&!data.hasOwnProperty(getter)){data[getter]=function(){return this[pName]}}});Ext.Object.merge(prototype.config,data.config);delete data.config});Class.registerPreprocessor("mixins",function(cls,data){var mixins=data.mixins,name,mixin,i,ln;delete data.mixins;Ext.Function.interceptBefore(data,"onClassCreated",function(cls){if(mixins instanceof Array){for(i=0,ln=mixins.length;i<ln;i++){mixin=mixins[i];name=mixin.prototype.mixinId||mixin.$className;cls.mixin(name,mixin)}}else{for(name in mixins){if(mixins.hasOwnProperty(name)){cls.mixin(name,mixins[name])}}}})});Class.setDefaultPreprocessors(["extend","statics","inheritableStatics","config","mixins"]);Ext.extend=function(subclass,superclass,members){if(arguments.length===2&&Ext.isObject(superclass)){members=superclass;superclass=subclass;subclass=null}var cls;if(!superclass){Ext.Error.raise("Attempting to extend from a class which has not been loaded on the page.")}members.extend=superclass;members.preprocessors=["extend","statics","inheritableStatics","mixins","config"];if(subclass){cls=new Class(subclass,members)}else{cls=new Class(members)}cls.prototype.override=function(o){for(var m in o){if(o.hasOwnProperty(m)){this[m]=o[m]}}};return cls}})();(function(Class,alias){var slice=Array.prototype.slice;var Manager=Ext.ClassManager={classes:{},existCache:{},namespaceRewrites:[{from:"Ext.",to:Ext}],maps:{alternateToName:{},aliasToName:{},nameToAliases:{}},enableNamespaceParseCache:true,namespaceParseCache:{},instantiators:[],isCreated:function(className){var i,ln,part,root,parts;if(this.classes.hasOwnProperty(className)||this.existCache.hasOwnProperty(className)){return true}root=Ext.global;parts=this.parseNamespace(className);for(i=0,ln=parts.length;i<ln;i++){part=parts[i];if(typeof part!=="string"){root=part}else{if(!root||!root[part]){return false}root=root[part]}}Ext.Loader.historyPush(className);this.existCache[className]=true;return true},parseNamespace:function(namespace){var cache=this.namespaceParseCache;if(this.enableNamespaceParseCache){if(cache.hasOwnProperty(namespace)){return cache[namespace]}}var parts=[],rewrites=this.namespaceRewrites,rewrite,from,to,i,ln,root=Ext.global;for(i=0,ln=rewrites.length;i<ln;i++){rewrite=rewrites[i];from=rewrite.from;to=rewrite.to;if(namespace===from||namespace.substring(0,from.length)===from){namespace=namespace.substring(from.length);if(typeof to!=="string"){root=to}else{parts=parts.concat(to.split("."))}break}}parts.push(root);parts=parts.concat(namespace.split("."));if(this.enableNamespaceParseCache){cache[namespace]=parts}return parts},setNamespace:function(name,value){var root=Ext.global,parts=this.parseNamespace(name),ln=parts.length-1,leaf=parts[ln],i,part;for(i=0;i<ln;i++){part=parts[i];if(typeof part!=="string"){root=part}else{if(!root[part]){root[part]={}}root=root[part]}}root[leaf]=value;return root[leaf]},createNamespaces:function(){var root=Ext.global,parts,part,i,j,ln,subLn;for(i=0,ln=arguments.length;i<ln;i++){parts=this.parseNamespace(arguments[i]);for(j=0,subLn=parts.length;j<subLn;j++){part=parts[j];if(typeof part!=="string"){root=part}else{if(!root[part]){root[part]={}}root=root[part]}}}return root},set:function(name,value){var targetName=this.getName(value);this.classes[name]=this.setNamespace(name,value);if(targetName&&targetName!==name){this.maps.alternateToName[name]=targetName}return this},get:function(name){if(this.classes.hasOwnProperty(name)){return this.classes[name]}var root=Ext.global,parts=this.parseNamespace(name),part,i,ln;for(i=0,ln=parts.length;i<ln;i++){part=parts[i];if(typeof part!=="string"){root=part}else{if(!root||!root[part]){return null}root=root[part]}}return root},setAlias:function(cls,alias){var aliasToNameMap=this.maps.aliasToName,nameToAliasesMap=this.maps.nameToAliases,className;if(typeof cls==="string"){className=cls}else{className=this.getName(cls)}if(alias&&aliasToNameMap[alias]!==className){aliasToNameMap[alias]=className}if(!nameToAliasesMap[className]){nameToAliasesMap[className]=[]}if(alias){Ext.Array.include(nameToAliasesMap[className],alias)}return this},getByAlias:function(alias){return this.get(this.getNameByAlias(alias))},getNameByAlias:function(alias){return this.maps.aliasToName[alias]||""},getNameByAlternate:function(alternate){return this.maps.alternateToName[alternate]||""},getAliasesByName:function(name){return this.maps.nameToAliases[name]||[]},getName:function(object){return object&&object.$className||""},getClass:function(object){return object&&object.self||null},create:function(className,data,createdFn){var manager=this;data.$className=className;return new Class(data,function(){var postprocessorStack=data.postprocessors||manager.defaultPostprocessors,registeredPostprocessors=manager.postprocessors,index=0,postprocessors=[],postprocessor,process,i,ln;delete data.postprocessors;for(i=0,ln=postprocessorStack.length;i<ln;i++){postprocessor=postprocessorStack[i];if(typeof postprocessor==="string"){postprocessor=registeredPostprocessors[postprocessor];if(!postprocessor.always){if(data[postprocessor.name]!==undefined){postprocessors.push(postprocessor.fn)}}else{postprocessors.push(postprocessor.fn)}}else{postprocessors.push(postprocessor)}}process=function(clsName,cls,clsData){postprocessor=postprocessors[index++];if(!postprocessor){manager.set(className,cls);Ext.Loader.historyPush(className);if(createdFn){createdFn.call(cls,cls)}return}if(postprocessor.call(this,clsName,cls,clsData,process)!==false){process.apply(this,arguments)}};process.call(manager,className,this,data)})},instantiateByAlias:function(){var alias=arguments[0],args=slice.call(arguments),className=this.getNameByAlias(alias);if(!className){className=this.maps.aliasToName[alias];Ext.syncRequire(className)}args[0]=className;return this.instantiate.apply(this,args)},instantiate:function(){var name=arguments[0],args=slice.call(arguments,1),alias=name,possibleName,cls;if(typeof name!=="function"){cls=this.get(name)}else{cls=name}if(!cls){possibleName=this.getNameByAlias(name);if(possibleName){name=possibleName;cls=this.get(name)}}if(!cls){possibleName=this.getNameByAlternate(name);if(possibleName){name=possibleName;cls=this.get(name)}}if(!cls){Ext.syncRequire(name);cls=this.get(name)}return this.getInstantiator(args.length)(cls,args)},dynInstantiate:function(name,args){args=Ext.Array.from(args,true);args.unshift(name);return this.instantiate.apply(this,args)},getInstantiator:function(length){if(!this.instantiators[length]){var i=length,args=[];for(i=0;i<length;i++){args.push("a["+i+"]")}this.instantiators[length]=new Function("c","a","return new c("+args.join(",")+")")}return this.instantiators[length]},postprocessors:{},defaultPostprocessors:[],registerPostprocessor:function(name,fn,always){this.postprocessors[name]={name:name,always:always||false,fn:fn};return this},setDefaultPostprocessors:function(postprocessors){this.defaultPostprocessors=Ext.Array.from(postprocessors);return this},setDefaultPostprocessorPosition:function(name,offset,relativeName){var defaultPostprocessors=this.defaultPostprocessors,index;if(typeof offset==="string"){if(offset==="first"){defaultPostprocessors.unshift(name);return this}else{if(offset==="last"){defaultPostprocessors.push(name);return this}}offset=(offset==="after")?1:-1}index=Ext.Array.indexOf(defaultPostprocessors,relativeName);if(index!==-1){Ext.Array.splice(defaultPostprocessors,Math.max(0,index+offset),0,name)}return this},getNamesByExpression:function(expression){var nameToAliasesMap=this.maps.nameToAliases,names=[],name,alias,aliases,possibleName,regex,i,ln;if(expression.indexOf("*")!==-1){expression=expression.replace(/\*/g,"(.*?)");regex=new RegExp("^"+expression+"$");for(name in nameToAliasesMap){if(nameToAliasesMap.hasOwnProperty(name)){aliases=nameToAliasesMap[name];if(name.search(regex)!==-1){names.push(name)}else{for(i=0,ln=aliases.length;i<ln;i++){alias=aliases[i];if(alias.search(regex)!==-1){names.push(name);break}}}}}}else{possibleName=this.getNameByAlias(expression);if(possibleName){names.push(possibleName)}else{possibleName=this.getNameByAlternate(expression);if(possibleName){names.push(possibleName)}else{names.push(expression)}}}return names}};var defaultPostprocessors=Manager.defaultPostprocessors;Manager.registerPostprocessor("alias",function(name,cls,data){var aliases=data.alias,i,ln;delete data.alias;for(i=0,ln=aliases.length;i<ln;i++){alias=aliases[i];this.setAlias(cls,alias)}});Manager.registerPostprocessor("singleton",function(name,cls,data,fn){fn.call(this,name,new cls(),data);return false});Manager.registerPostprocessor("alternateClassName",function(name,cls,data){var alternates=data.alternateClassName,i,ln,alternate;if(!(alternates instanceof Array)){alternates=[alternates]}for(i=0,ln=alternates.length;i<ln;i++){alternate=alternates[i];this.set(alternate,cls)}});Manager.setDefaultPostprocessors(["alias","singleton","alternateClassName"]);Ext.apply(Ext,{create:alias(Manager,"instantiate"),factory:function(item,namespace){if(item instanceof Array){var i,ln;for(i=0,ln=item.length;i<ln;i++){item[i]=Ext.factory(item[i],namespace)}return item}var isString=(typeof item==="string");if(isString||(item instanceof Object&&item.constructor===Object)){var name,config={};if(isString){name=item}else{name=item.className;config=item;delete config.className}if(namespace!==undefined&&name.indexOf(namespace)===-1){name=namespace+"."+Ext.String.capitalize(name)}return Ext.create(name,config)}if(typeof item==="function"){return Ext.create(item)}return item},widget:function(name){var args=slice.call(arguments);args[0]="widget."+name;return Manager.instantiateByAlias.apply(Manager,args)},createByAlias:alias(Manager,"instantiateByAlias"),define:function(className,data,createdFn){if(!data.override){return Manager.create.apply(Manager,arguments)}var requires=data.requires,uses=data.uses,overrideName=className;className=data.override;data=Ext.apply({},data);delete data.requires;delete data.uses;delete data.override;if(typeof requires=="string"){requires=[className,requires]}else{if(requires){requires=requires.slice(0);requires.unshift(className)}else{requires=[className]}}return Manager.create(overrideName,{requires:requires,uses:uses,isPartial:true,constructor:function(){}},function(){var cls=Manager.get(className);if(cls.override){cls.override(data)}else{cls.self.override(data)}if(createdFn){createdFn.call(cls)}})},getClassName:alias(Manager,"getName"),getDisplayName:function(object){if(object.displayName){return object.displayName}if(object.$name&&object.$class){return Ext.getClassName(object.$class)+"#"+object.$name}if(object.$className){return object.$className}return"Anonymous"},getClass:alias(Manager,"getClass"),namespace:alias(Manager,"createNamespaces")});Ext.createWidget=Ext.widget;Ext.ns=Ext.namespace;Class.registerPreprocessor("className",function(cls,data){if(data.$className){cls.$className=data.$className}},true);Class.setDefaultPreprocessorPosition("className","first");Class.registerPreprocessor("xtype",function(cls,data){var xtypes=Ext.Array.from(data.xtype),widgetPrefix="widget.",aliases=Ext.Array.from(data.alias),i,ln,xtype;data.xtype=xtypes[0];data.xtypes=xtypes;aliases=data.alias=Ext.Array.from(data.alias);for(i=0,ln=xtypes.length;i<ln;i++){xtype=xtypes[i];aliases.push(widgetPrefix+xtype)}data.alias=aliases});Class.setDefaultPreprocessorPosition("xtype","last");Class.registerPreprocessor("alias",function(cls,data){var aliases=Ext.Array.from(data.alias),xtypes=Ext.Array.from(data.xtypes),widgetPrefix="widget.",widgetPrefixLength=widgetPrefix.length,i,ln,alias,xtype;for(i=0,ln=aliases.length;i<ln;i++){alias=aliases[i];if(alias.substring(0,widgetPrefixLength)===widgetPrefix){xtype=alias.substring(widgetPrefixLength);Ext.Array.include(xtypes,xtype);if(!cls.xtype){cls.xtype=data.xtype=xtype}}}data.alias=aliases;data.xtypes=xtypes});Class.setDefaultPreprocessorPosition("alias","last")})(Ext.Class,Ext.Function.alias);(function(Manager,Class,flexSetter,alias){var dependencyProperties=["extend","mixins","requires"],Loader;Loader=Ext.Loader={documentHead:typeof document!=="undefined"&&(document.head||document.getElementsByTagName("head")[0]),isLoading:false,queue:[],isFileLoaded:{},readyListeners:[],optionalRequires:[],requiresMap:{},numPendingFiles:0,numLoadedFiles:0,hasFileLoadError:false,classNameToFilePathMap:{},history:[],config:{enabled:false,disableCaching:true,disableCachingParam:"_dc",paths:{Ext:"."}},setConfig:function(name,value){if(Ext.isObject(name)&&arguments.length===1){Ext.Object.merge(this.config,name)}else{this.config[name]=(Ext.isObject(value))?Ext.Object.merge(this.config[name],value):value}return this},getConfig:function(name){if(name){return this.config[name]}return this.config},setPath:flexSetter(function(name,path){this.config.paths[name]=path;return this}),getPath:function(className){var path="",paths=this.config.paths,prefix=this.getPrefix(className);if(prefix.length>0){if(prefix===className){return paths[prefix]}path=paths[prefix];className=className.substring(prefix.length+1)}if(path.length>0){path+="/"}return path.replace(/\/\.\//g,"/")+className.replace(/\./g,"/")+".js"},getPrefix:function(className){var paths=this.config.paths,prefix,deepestPrefix="";if(paths.hasOwnProperty(className)){return className}for(prefix in paths){if(paths.hasOwnProperty(prefix)&&prefix+"."===className.substring(0,prefix.length+1)){if(prefix.length>deepestPrefix.length){deepestPrefix=prefix}}}return deepestPrefix},refreshQueue:function(){var ln=this.queue.length,i,item,j,requires;if(ln===0){this.triggerReady();return}for(i=0;i<ln;i++){item=this.queue[i];if(item){requires=item.requires;if(requires.length>this.numLoadedFiles){continue}j=0;do{if(Manager.isCreated(requires[j])){Ext.Array.erase(requires,j,1)}else{j++}}while(j<requires.length);if(item.requires.length===0){Ext.Array.erase(this.queue,i,1);item.callback.call(item.scope);this.refreshQueue();break}}}return this},injectScriptElement:function(url,onLoad,onError,scope){var script=document.createElement("script"),me=this,onLoadFn=function(){me.cleanupScriptElement(script);onLoad.call(scope)},onErrorFn=function(){me.cleanupScriptElement(script);onError.call(scope)};script.type="text/javascript";script.src=url;script.onload=onLoadFn;script.onerror=onErrorFn;script.onreadystatechange=function(){if(this.readyState==="loaded"||this.readyState==="complete"){onLoadFn()}};this.documentHead.appendChild(script);return script},cleanupScriptElement:function(script){script.onload=null;script.onreadystatechange=null;script.onerror=null;return this},loadScriptFile:function(url,onLoad,onError,scope,synchronous){var me=this,noCacheUrl=url+(this.getConfig("disableCaching")?("?"+this.getConfig("disableCachingParam")+"="+Ext.Date.now()):""),fileName=url.split("/").pop(),isCrossOriginRestricted=false,xhr,status,onScriptError;scope=scope||this;this.isLoading=true;if(!synchronous){onScriptError=function(){onError.call(scope,"Failed loading '"+url+"', please verify that the file exists",synchronous)};if(!Ext.isReady&&Ext.onDocumentReady){Ext.onDocumentReady(function(){me.injectScriptElement(noCacheUrl,onLoad,onScriptError,scope)})}else{this.injectScriptElement(noCacheUrl,onLoad,onScriptError,scope)}}else{if(typeof XMLHttpRequest!=="undefined"){xhr=new XMLHttpRequest()}else{xhr=new ActiveXObject("Microsoft.XMLHTTP")}try{xhr.open("GET",noCacheUrl,false);xhr.send(null)}catch(e){isCrossOriginRestricted=true}status=(xhr.status===1223)?204:xhr.status;if(!isCrossOriginRestricted){isCrossOriginRestricted=(status===0)}if(isCrossOriginRestricted){onError.call(this,"Failed loading synchronously via XHR: '"+url+"'; It's likely that the file is either being loaded from a different domain or from the local file system whereby cross origin requests are not allowed due to security reasons. Use asynchronous loading with Ext.require instead.",synchronous)}else{if(status>=200&&status<300){new Function(xhr.responseText+"\n//@ sourceURL="+fileName)();onLoad.call(scope)}else{onError.call(this,"Failed loading synchronously via XHR: '"+url+"'; please verify that the file exists. XHR status code: "+status,synchronous)}}xhr=null}},exclude:function(excludes){var me=this;return{require:function(expressions,fn,scope){return me.require(expressions,fn,scope,excludes)},syncRequire:function(expressions,fn,scope){return me.syncRequire(expressions,fn,scope,excludes)}}},syncRequire:function(){this.syncModeEnabled=true;this.require.apply(this,arguments);this.refreshQueue();this.syncModeEnabled=false},require:function(expressions,fn,scope,excludes){var filePath,expression,exclude,className,excluded={},excludedClassNames=[],possibleClassNames=[],possibleClassName,classNames=[],i,j,ln,subLn;expressions=Ext.Array.from(expressions);excludes=Ext.Array.from(excludes);fn=fn||Ext.emptyFn;scope=scope||Ext.global;for(i=0,ln=excludes.length;i<ln;i++){exclude=excludes[i];if(typeof exclude==="string"&&exclude.length>0){excludedClassNames=Manager.getNamesByExpression(exclude);for(j=0,subLn=excludedClassNames.length;j<subLn;j++){excluded[excludedClassNames[j]]=true}}}for(i=0,ln=expressions.length;i<ln;i++){expression=expressions[i];if(typeof expression==="string"&&expression.length>0){possibleClassNames=Manager.getNamesByExpression(expression);for(j=0,subLn=possibleClassNames.length;j<subLn;j++){possibleClassName=possibleClassNames[j];if(!excluded.hasOwnProperty(possibleClassName)&&!Manager.isCreated(possibleClassName)){Ext.Array.include(classNames,possibleClassName)}}}}if(!this.config.enabled){if(classNames.length>0){Ext.Error.raise({sourceClass:"Ext.Loader",sourceMethod:"require",msg:"Ext.Loader is not enabled, so dependencies cannot be resolved dynamically. Missing required class"+((classNames.length>1)?"es":"")+": "+classNames.join(", ")})}}if(classNames.length===0){fn.call(scope);return this}this.queue.push({requires:classNames,callback:fn,scope:scope});classNames=classNames.slice();for(i=0,ln=classNames.length;i<ln;i++){className=classNames[i];if(!this.isFileLoaded.hasOwnProperty(className)){this.isFileLoaded[className]=false;filePath=this.getPath(className);this.classNameToFilePathMap[className]=filePath;this.numPendingFiles++;this.loadScriptFile(filePath,Ext.Function.pass(this.onFileLoaded,[className,filePath],this),Ext.Function.pass(this.onFileLoadError,[className,filePath]),this,this.syncModeEnabled)}}return this},onFileLoaded:function(className,filePath){this.numLoadedFiles++;this.isFileLoaded[className]=true;this.numPendingFiles--;if(this.numPendingFiles===0){this.refreshQueue()}},onFileLoadError:function(className,filePath,errorMessage,isSynchronous){this.numPendingFiles--;this.hasFileLoadError=true},addOptionalRequires:function(requires){var optionalRequires=this.optionalRequires,i,ln,require;requires=Ext.Array.from(requires);for(i=0,ln=requires.length;i<ln;i++){require=requires[i];Ext.Array.include(optionalRequires,require)}return this},triggerReady:function(force){var readyListeners=this.readyListeners,optionalRequires,listener;if(this.isLoading||force){this.isLoading=false;if(this.optionalRequires.length){optionalRequires=Ext.Array.clone(this.optionalRequires);this.optionalRequires.length=0;this.require(optionalRequires,Ext.Function.pass(this.triggerReady,[true],this),this);return this}while(readyListeners.length){listener=readyListeners.shift();listener.fn.call(listener.scope);if(this.isLoading){return this}}}return this},onReady:function(fn,scope,withDomReady,options){var oldFn;if(withDomReady!==false&&Ext.onDocumentReady){oldFn=fn;fn=function(){Ext.onDocumentReady(oldFn,scope,options)}}if(!this.isLoading){fn.call(scope)}else{this.readyListeners.push({fn:fn,scope:scope})}},historyPush:function(className){if(className&&this.isFileLoaded.hasOwnProperty(className)){Ext.Array.include(this.history,className)}return this}};Ext.require=alias(Loader,"require");Ext.syncRequire=alias(Loader,"syncRequire");Ext.exclude=alias(Loader,"exclude");Ext.onReady=function(fn,scope,options){Loader.onReady(fn,scope,true,options)};Class.registerPreprocessor("loader",function(cls,data,continueFn){var me=this,dependencies=[],className=Manager.getName(cls),i,j,ln,subLn,value,propertyName,propertyValue;for(i=0,ln=dependencyProperties.length;i<ln;i++){propertyName=dependencyProperties[i];if(data.hasOwnProperty(propertyName)){propertyValue=data[propertyName];if(typeof propertyValue==="string"){dependencies.push(propertyValue)}else{if(propertyValue instanceof Array){for(j=0,subLn=propertyValue.length;j<subLn;j++){value=propertyValue[j];if(typeof value==="string"){dependencies.push(value)}}}else{if(typeof propertyValue!="function"){for(j in propertyValue){if(propertyValue.hasOwnProperty(j)){value=propertyValue[j];if(typeof value==="string"){dependencies.push(value)}}}}}}}}if(dependencies.length===0){return}Loader.require(dependencies,function(){for(i=0,ln=dependencyProperties.length;i<ln;i++){propertyName=dependencyProperties[i];if(data.hasOwnProperty(propertyName)){propertyValue=data[propertyName];if(typeof propertyValue==="string"){data[propertyName]=Manager.get(propertyValue)}else{if(propertyValue instanceof Array){for(j=0,subLn=propertyValue.length;j<subLn;j++){value=propertyValue[j];if(typeof value==="string"){data[propertyName][j]=Manager.get(value)}}}else{if(typeof propertyValue!="function"){for(var k in propertyValue){if(propertyValue.hasOwnProperty(k)){value=propertyValue[k];if(typeof value==="string"){data[propertyName][k]=Manager.get(value)}}}}}}}}continueFn.call(me,cls,data)});return false},true);Class.setDefaultPreprocessorPosition("loader","after","className");Manager.registerPostprocessor("uses",function(name,cls,data){var uses=Ext.Array.from(data.uses),items=[],i,ln,item;for(i=0,ln=uses.length;i<ln;i++){item=uses[i];if(typeof item==="string"){items.push(item)}}Loader.addOptionalRequires(items)});Manager.setDefaultPostprocessorPosition("uses","last")})(Ext.ClassManager,Ext.Class,Ext.Function.flexSetter,Ext.Function.alias);Ext.Error=Ext.extend(Error,{statics:{ignore:false,raise:function(err){err=err||{};if(Ext.isString(err)){err={msg:err}}var method=this.raise.caller;if(method){if(method.$name){err.sourceMethod=method.$name}if(method.$owner){err.sourceClass=method.$owner.$className}}if(Ext.Error.handle(err)!==true){var msg=Ext.Error.prototype.toString.call(err);Ext.log({msg:msg,level:"error",dump:err,stack:true});throw new Ext.Error(err)}},handle:function(){return Ext.Error.ignore}},name:"Ext.Error",constructor:function(config){if(Ext.isString(config)){config={msg:config}}var me=this;Ext.apply(me,config);me.message=me.message||me.msg},toString:function(){var me=this,className=me.className?me.className:"",methodName=me.methodName?"."+me.methodName+"(): ":"",msg=me.msg||"(No description provided)";return className+methodName+msg}});Ext.JSON=new (function(){var useHasOwn=!!{}.hasOwnProperty,isNative=function(){var useNative=null;return function(){if(useNative===null){useNative=Ext.USE_NATIVE_JSON&&window.JSON&&JSON.toString()=="[object JSON]"}return useNative}}(),pad=function(n){return n<10?"0"+n:n},doDecode=function(json){return eval("("+json+")")},doEncode=function(o){if(!Ext.isDefined(o)||o===null){return"null"}else{if(Ext.isArray(o)){return encodeArray(o)}else{if(Ext.isDate(o)){return Ext.JSON.encodeDate(o)}else{if(Ext.isString(o)){return encodeString(o)}else{if(typeof o=="number"){return isFinite(o)?String(o):"null"}else{if(Ext.isBoolean(o)){return String(o)}else{if(Ext.isObject(o)){return encodeObject(o)}else{if(typeof o==="function"){return"null"}}}}}}}}return"undefined"},m={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\","\x0b":"\\u000b"},charToReplace=/[\\\"\x00-\x1f\x7f-\uffff]/g,encodeString=function(s){return'"'+s.replace(charToReplace,function(a){var c=m[a];return typeof c==="string"?c:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"'},encodeArray=function(o){var a=["[",""],len=o.length,i;for(i=0;i<len;i+=1){a.push(doEncode(o[i]),",")}a[a.length-1]="]";return a.join("")},encodeObject=function(o){var a=["{",""],i;for(i in o){if(!useHasOwn||o.hasOwnProperty(i)){a.push(doEncode(i),":",doEncode(o[i]),",")}}a[a.length-1]="}";return a.join("")};this.encodeDate=function(o){return'"'+o.getFullYear()+"-"+pad(o.getMonth()+1)+"-"+pad(o.getDate())+"T"+pad(o.getHours())+":"+pad(o.getMinutes())+":"+pad(o.getSeconds())+'"'};this.encode=function(){var ec;return function(o){if(!ec){ec=isNative()?JSON.stringify:doEncode}return ec(o)}}();this.decode=function(){var dc;return function(json,safe){if(!dc){dc=isNative()?JSON.parse:doDecode}try{return dc(json)}catch(e){if(safe===true){return null}Ext.Error.raise({sourceClass:"Ext.JSON",sourceMethod:"decode",msg:"You're trying to decode an invalid JSON String: "+json})}}}()})();Ext.encode=Ext.JSON.encode;Ext.decode=Ext.JSON.decode;Ext.apply(Ext,{userAgent:navigator.userAgent.toLowerCase(),cache:{},idSeed:1000,windowId:"ext-window",documentId:"ext-document",isReady:false,enableGarbageCollector:true,enableListenerCollection:true,id:function(el,prefix){var me=this,sandboxPrefix="";el=Ext.getDom(el,true)||{};if(el===document){el.id=me.documentId}else{if(el===window){el.id=me.windowId}}if(!el.id){if(me.isSandboxed){if(!me.uniqueGlobalNamespace){me.getUniqueGlobalNamespace()}sandboxPrefix=me.uniqueGlobalNamespace+"-"}el.id=sandboxPrefix+(prefix||"ext-gen")+(++Ext.idSeed)}return el.id},getBody:function(){return Ext.get(document.body||false)},getHead:function(){var head;return function(){if(head==undefined){head=Ext.get(document.getElementsByTagName("head")[0])}return head}}(),getDoc:function(){return Ext.get(document)},getCmp:function(id){return Ext.ComponentManager.get(id)},getOrientation:function(){return window.innerHeight>window.innerWidth?"portrait":"landscape"},destroy:function(){var ln=arguments.length,i,arg;for(i=0;i<ln;i++){arg=arguments[i];if(arg){if(Ext.isArray(arg)){this.destroy.apply(this,arg)}else{if(Ext.isFunction(arg.destroy)){arg.destroy()}else{if(arg.dom){arg.remove()}}}}}},callback:function(callback,scope,args,delay){if(Ext.isFunction(callback)){args=args||[];scope=scope||window;if(delay){Ext.defer(callback,delay,scope,args)}else{callback.apply(scope,args)}}},htmlEncode:function(value){return Ext.String.htmlEncode(value)},htmlDecode:function(value){return Ext.String.htmlDecode(value)},urlAppend:function(url,s){if(!Ext.isEmpty(s)){return url+(url.indexOf("?")===-1?"?":"&")+s}return url}});Ext.ns=Ext.namespace;window.undefined=window.undefined;(function(){var check=function(regex){return regex.test(Ext.userAgent)},isStrict=document.compatMode=="CSS1Compat",version=function(is,regex){var m;return(is&&(m=regex.exec(Ext.userAgent)))?parseFloat(m[1]):0},docMode=document.documentMode,isOpera=check(/opera/),isOpera10_5=isOpera&&check(/version\/10\.5/),isChrome=check(/\bchrome\b/),isWebKit=check(/webkit/),isSafari=!isChrome&&check(/safari/),isSafari2=isSafari&&check(/applewebkit\/4/),isSafari3=isSafari&&check(/version\/3/),isSafari4=isSafari&&check(/version\/4/),isSafari5=isSafari&&check(/version\/5/),isIE=!isOpera&&check(/msie/),isIE7=isIE&&(check(/msie 7/)||docMode==7),isIE8=isIE&&(check(/msie 8/)&&docMode!=7&&docMode!=9||docMode==8),isIE9=isIE&&(check(/msie 9/)&&docMode!=7&&docMode!=8||docMode==9),isIE6=isIE&&check(/msie 6/),isGecko=!isWebKit&&check(/gecko/),isGecko3=isGecko&&check(/rv:1\.9/),isGecko4=isGecko&&check(/rv:2\.0/),isGecko5=isGecko&&check(/rv:5\./),isFF3_0=isGecko3&&check(/rv:1\.9\.0/),isFF3_5=isGecko3&&check(/rv:1\.9\.1/),isFF3_6=isGecko3&&check(/rv:1\.9\.2/),isWindows=check(/windows|win32/),isMac=check(/macintosh|mac os x/),isLinux=check(/linux/),scrollbarSize=null,chromeVersion=version(true,/\bchrome\/(\d+\.\d+)/),firefoxVersion=version(true,/\bfirefox\/(\d+\.\d+)/),ieVersion=version(isIE,/msie (\d+\.\d+)/),operaVersion=version(isOpera,/version\/(\d+\.\d+)/),safariVersion=version(isSafari,/version\/(\d+\.\d+)/),webKitVersion=version(isWebKit,/webkit\/(\d+\.\d+)/),isSecure=/^https/i.test(window.location.protocol);try{document.execCommand("BackgroundImageCache",false,true)}catch(e){}Ext.setVersion("extjs","4.0.7");Ext.apply(Ext,{SSL_SECURE_URL:isSecure&&isIE?'javascript:""':"about:blank",scopeResetCSS:Ext.buildSettings.scopeResetCSS,enableNestedListenerRemoval:false,USE_NATIVE_JSON:false,getDom:function(el,strict){if(!el||!document){return null}if(el.dom){return el.dom}else{if(typeof el=="string"){var e=document.getElementById(el);if(e&&isIE&&strict){if(el==e.getAttribute("id")){return e}else{return null}}return e}else{return el}}},removeNode:isIE6||isIE7?function(){var d;return function(n){if(n&&n.tagName!="BODY"){(Ext.enableNestedListenerRemoval)?Ext.EventManager.purgeElement(n):Ext.EventManager.removeAll(n);d=d||document.createElement("div");d.appendChild(n);d.innerHTML="";delete Ext.cache[n.id]}}}():function(n){if(n&&n.parentNode&&n.tagName!="BODY"){(Ext.enableNestedListenerRemoval)?Ext.EventManager.purgeElement(n):Ext.EventManager.removeAll(n);n.parentNode.removeChild(n);delete Ext.cache[n.id]}},isStrict:isStrict,isIEQuirks:isIE&&!isStrict,isOpera:isOpera,isOpera10_5:isOpera10_5,isWebKit:isWebKit,isChrome:isChrome,isSafari:isSafari,isSafari3:isSafari3,isSafari4:isSafari4,isSafari5:isSafari5,isSafari2:isSafari2,isIE:isIE,isIE6:isIE6,isIE7:isIE7,isIE8:isIE8,isIE9:isIE9,isGecko:isGecko,isGecko3:isGecko3,isGecko4:isGecko4,isGecko5:isGecko5,isFF3_0:isFF3_0,isFF3_5:isFF3_5,isFF3_6:isFF3_6,isFF4:4<=firefoxVersion&&firefoxVersion<5,isFF5:5<=firefoxVersion&&firefoxVersion<6,isLinux:isLinux,isWindows:isWindows,isMac:isMac,chromeVersion:chromeVersion,firefoxVersion:firefoxVersion,ieVersion:ieVersion,operaVersion:operaVersion,safariVersion:safariVersion,webKitVersion:webKitVersion,isSecure:isSecure,BLANK_IMAGE_URL:(isIE6||isIE7)?"//www.sencha.com/s.gif":"data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==",value:function(v,defaultValue,allowBlank){return Ext.isEmpty(v,allowBlank)?defaultValue:v},escapeRe:function(s){return s.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1")},addBehaviors:function(o){if(!Ext.isReady){Ext.onReady(function(){Ext.addBehaviors(o)})}else{var cache={},parts,b,s;for(b in o){if((parts=b.split("@"))[1]){s=parts[0];if(!cache[s]){cache[s]=Ext.select(s)}cache[s].on(parts[1],o[b])}}cache=null}},getScrollbarSize:function(force){if(!Ext.isReady){return 0}if(force===true||scrollbarSize===null){var cssClass=Ext.isIE9?"":Ext.baseCSSPrefix+"hide-offsets",div=Ext.getBody().createChild('<div class="'+cssClass+'" style="width:100px;height:50px;overflow:hidden;"><div style="height:200px;"></div></div>'),child=div.child("div",true),w1=child.offsetWidth;div.setStyle("overflow",(Ext.isWebKit||Ext.isGecko)?"auto":"scroll");var w2=child.offsetWidth,width=w1-w2;div.remove();scrollbarSize={width:width,height:width}}return scrollbarSize},getScrollBarWidth:function(force){var size=Ext.getScrollbarSize(force);return size.width+2},copyTo:function(dest,source,names,usePrototypeKeys){if(typeof names=="string"){names=names.split(/[,;\s]/)}Ext.each(names,function(name){if(usePrototypeKeys||source.hasOwnProperty(name)){dest[name]=source[name]}},this);return dest},destroyMembers:function(o){for(var i=1,a=arguments,len=a.length;i<len;i++){Ext.destroy(o[a[i]]);delete o[a[i]]}},log:Ext.emptyFn,partition:function(arr,truth){var ret=[[],[]];Ext.each(arr,function(v,i,a){ret[(truth&&truth(v,i,a))||(!truth&&v)?0:1].push(v)});return ret},invoke:function(arr,methodName){var ret=[],args=Array.prototype.slice.call(arguments,2);Ext.each(arr,function(v,i){if(v&&typeof v[methodName]=="function"){ret.push(v[methodName].apply(v,args))}else{ret.push(undefined)}});return ret},zip:function(){var parts=Ext.partition(arguments,function(val){return typeof val!="function"}),arrs=parts[0],fn=parts[1][0],len=Ext.max(Ext.pluck(arrs,"length")),ret=[];for(var i=0;i<len;i++){ret[i]=[];if(fn){ret[i]=fn.apply(fn,Ext.pluck(arrs,i))}else{for(var j=0,aLen=arrs.length;j<aLen;j++){ret[i].push(arrs[j][i])}}}return ret},toSentence:function(items,connector){var length=items.length;if(length<=1){return items[0]}else{var head=items.slice(0,length-1),tail=items[length-1];return Ext.util.Format.format("{0} {1} {2}",head.join(", "),connector||"and",tail)}},useShims:isIE6})})();Ext.application=function(config){Ext.require("Ext.app.Application");Ext.onReady(function(){Ext.create("Ext.app.Application",config)})};(function(){Ext.ns("Ext.util");Ext.util.Format={};var UtilFormat=Ext.util.Format,stripTagsRE=/<\/?[^>]+>/gi,stripScriptsRe=/(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/ig,nl2brRe=/\r?\n/g,formatCleanRe=/[^\d\.]/g,I18NFormatCleanRe;Ext.apply(UtilFormat,{thousandSeparator:",",decimalSeparator:".",currencyPrecision:2,currencySign:"$",currencyAtEnd:false,undef:function(value){return value!==undefined?value:""},defaultValue:function(value,defaultValue){return value!==undefined&&value!==""?value:defaultValue},substr:function(value,start,length){return String(value).substr(start,length)},lowercase:function(value){return String(value).toLowerCase()},uppercase:function(value){return String(value).toUpperCase()},usMoney:function(v){return UtilFormat.currency(v,"$",2)},currency:function(v,currencySign,decimals,end){var negativeSign="",format=",0",i=0;v=v-0;if(v<0){v=-v;negativeSign="-"}decimals=decimals||UtilFormat.currencyPrecision;format+=format+(decimals>0?".":"");for(;i<decimals;i++){format+="0"}v=UtilFormat.number(v,format);if((end||UtilFormat.currencyAtEnd)===true){return Ext.String.format("{0}{1}{2}",negativeSign,v,currencySign||UtilFormat.currencySign)}else{return Ext.String.format("{0}{1}{2}",negativeSign,currencySign||UtilFormat.currencySign,v)}},date:function(v,format){if(!v){return""}if(!Ext.isDate(v)){v=new Date(Date.parse(v))}return Ext.Date.dateFormat(v,format||Ext.Date.defaultFormat)},dateRenderer:function(format){return function(v){return UtilFormat.date(v,format)}},stripTags:function(v){return !v?v:String(v).replace(stripTagsRE,"")},stripScripts:function(v){return !v?v:String(v).replace(stripScriptsRe,"")},fileSize:function(size){if(size<1024){return size+" bytes"}else{if(size<1048576){return(Math.round(((size*10)/1024))/10)+" KB"}else{return(Math.round(((size*10)/1048576))/10)+" MB"}}},math:function(){var fns={};return function(v,a){if(!fns[a]){fns[a]=Ext.functionFactory("v","return v "+a+";")}return fns[a](v)}}(),round:function(value,precision){var result=Number(value);if(typeof precision=="number"){precision=Math.pow(10,precision);result=Math.round(value*precision)/precision}return result},number:function(v,formatString){if(!formatString){return v}v=Ext.Number.from(v,NaN);if(isNaN(v)){return""}var comma=UtilFormat.thousandSeparator,dec=UtilFormat.decimalSeparator,i18n=false,neg=v<0,hasComma,psplit;v=Math.abs(v);if(formatString.substr(formatString.length-2)=="/i"){if(!I18NFormatCleanRe){I18NFormatCleanRe=new RegExp("[^\\d\\"+UtilFormat.decimalSeparator+"]","g")}formatString=formatString.substr(0,formatString.length-2);i18n=true;hasComma=formatString.indexOf(comma)!=-1;psplit=formatString.replace(I18NFormatCleanRe,"").split(dec)}else{hasComma=formatString.indexOf(",")!=-1;psplit=formatString.replace(formatCleanRe,"").split(".")}if(1<psplit.length){v=v.toFixed(psplit[1].length)}else{if(2<psplit.length){}else{v=v.toFixed(0)}}var fnum=v.toString();psplit=fnum.split(".");if(hasComma){var cnum=psplit[0],parr=[],j=cnum.length,m=Math.floor(j/3),n=cnum.length%3||3,i;for(i=0;i<j;i+=n){if(i!==0){n=3}parr[parr.length]=cnum.substr(i,n);m-=1}fnum=parr.join(comma);if(psplit[1]){fnum+=dec+psplit[1]}}else{if(psplit[1]){fnum=psplit[0]+dec+psplit[1]}}if(neg){neg=fnum.replace(/[^1-9]/g,"")!==""}return(neg?"-":"")+formatString.replace(/[\d,?\.?]+/,fnum)},numberRenderer:function(format){return function(v){return UtilFormat.number(v,format)}},plural:function(v,s,p){return v+" "+(v==1?s:(p?p:s+"s"))},nl2br:function(v){return Ext.isEmpty(v)?"":v.replace(nl2brRe,"<br/>")},capitalize:Ext.String.capitalize,ellipsis:Ext.String.ellipsis,format:Ext.String.format,htmlDecode:Ext.String.htmlDecode,htmlEncode:Ext.String.htmlEncode,leftPad:Ext.String.leftPad,trim:Ext.String.trim,parseBox:function(box){if(Ext.isNumber(box)){box=box.toString()}var parts=box.split(" "),ln=parts.length;if(ln==1){parts[1]=parts[2]=parts[3]=parts[0]}else{if(ln==2){parts[2]=parts[0];parts[3]=parts[1]}else{if(ln==3){parts[3]=parts[1]}}}return{top:parseInt(parts[0],10)||0,right:parseInt(parts[1],10)||0,bottom:parseInt(parts[2],10)||0,left:parseInt(parts[3],10)||0}},escapeRegex:function(s){return s.replace(/([\-.*+?\^${}()|\[\]\/\\])/g,"\\$1")}})})();Ext.ns("Ext.util");Ext.util.TaskRunner=function(interval){interval=interval||10;var tasks=[],removeQueue=[],id=0,running=false,stopThread=function(){running=false;clearInterval(id);id=0},startThread=function(){if(!running){running=true;id=setInterval(runTasks,interval)}},removeTask=function(t){removeQueue.push(t);if(t.onStop){t.onStop.apply(t.scope||t)}},runTasks=function(){var rqLen=removeQueue.length,now=new Date().getTime(),i;if(rqLen>0){for(i=0;i<rqLen;i++){Ext.Array.remove(tasks,removeQueue[i])}removeQueue=[];if(tasks.length<1){stopThread();return}}i=0;var t,itime,rt,len=tasks.length;for(;i<len;++i){t=tasks[i];itime=now-t.taskRunTime;if(t.interval<=itime){rt=t.run.apply(t.scope||t,t.args||[++t.taskRunCount]);t.taskRunTime=now;if(rt===false||t.taskRunCount===t.repeat){removeTask(t);return}}if(t.duration&&t.duration<=(now-t.taskStartTime)){removeTask(t)}}};this.start=function(task){tasks.push(task);task.taskStartTime=new Date().getTime();task.taskRunTime=0;task.taskRunCount=0;startThread();return task};this.stop=function(task){removeTask(task);return task};this.stopAll=function(){stopThread();for(var i=0,len=tasks.length;i<len;i++){if(tasks[i].onStop){tasks[i].onStop()}}tasks=[];removeQueue=[]}};Ext.TaskManager=Ext.create("Ext.util.TaskRunner");Ext.is={init:function(navigator){var platforms=this.platforms,ln=platforms.length,i,platform;navigator=navigator||window.navigator;for(i=0;i<ln;i++){platform=platforms[i];this[platform.identity]=platform.regex.test(navigator[platform.property])}this.Desktop=this.Mac||this.Windows||(this.Linux&&!this.Android);this.Tablet=this.iPad;this.Phone=!this.Desktop&&!this.Tablet;this.iOS=this.iPhone||this.iPad||this.iPod;this.Standalone=!!window.navigator.standalone},platforms:[{property:"platform",regex:/iPhone/i,identity:"iPhone"},{property:"platform",regex:/iPod/i,identity:"iPod"},{property:"userAgent",regex:/iPad/i,identity:"iPad"},{property:"userAgent",regex:/Blackberry/i,identity:"Blackberry"},{property:"userAgent",regex:/Android/i,identity:"Android"},{property:"platform",regex:/Mac/i,identity:"Mac"},{property:"platform",regex:/Win/i,identity:"Windows"},{property:"platform",regex:/Linux/i,identity:"Linux"}]};Ext.is.init();Ext.supports={init:function(){var doc=document,div=doc.createElement("div"),tests=this.tests,ln=tests.length,i,test;div.innerHTML=['<div style="height:30px;width:50px;">','<div style="height:20px;width:20px;"></div>',"</div>",'<div style="width: 200px; height: 200px; position: relative; padding: 5px;">','<div style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></div>',"</div>",'<div style="float:left; background-color:transparent;"></div>'].join("");doc.body.appendChild(div);for(i=0;i<ln;i++){test=tests[i];this[test.identity]=test.fn.call(this,doc,div)}doc.body.removeChild(div)},CSS3BoxShadow:Ext.isDefined(document.documentElement.style.boxShadow),ClassList:!!document.documentElement.classList,OrientationChange:((typeof window.orientation!="undefined")&&("onorientationchange" in window)),DeviceMotion:("ondevicemotion" in window),Touch:("ontouchstart" in window)&&(!Ext.is.Desktop),tests:[{identity:"Transitions",fn:function(doc,div){var prefix=["webkit","Moz","o","ms","khtml"],TE="TransitionEnd",transitionEndName=[prefix[0]+TE,"transitionend",prefix[2]+TE,prefix[3]+TE,prefix[4]+TE],ln=prefix.length,i=0,out=false;div=Ext.get(div);for(;i<ln;i++){if(div.getStyle(prefix[i]+"TransitionProperty")){Ext.supports.CSS3Prefix=prefix[i];Ext.supports.CSS3TransitionEnd=transitionEndName[i];out=true;break}}return out}},{identity:"RightMargin",fn:function(doc,div){var view=doc.defaultView;return !(view&&view.getComputedStyle(div.firstChild.firstChild,null).marginRight!="0px")}},{identity:"DisplayChangeInputSelectionBug",fn:function(){var webKitVersion=Ext.webKitVersion;return 0<webKitVersion&&webKitVersion<533}},{identity:"DisplayChangeTextAreaSelectionBug",fn:function(){var webKitVersion=Ext.webKitVersion;return 0<webKitVersion&&webKitVersion<534.24}},{identity:"TransparentColor",fn:function(doc,div,view){view=doc.defaultView;return !(view&&view.getComputedStyle(div.lastChild,null).backgroundColor!="transparent")}},{identity:"ComputedStyle",fn:function(doc,div,view){view=doc.defaultView;return view&&view.getComputedStyle}},{identity:"Svg",fn:function(doc){return !!doc.createElementNS&&!!doc.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect}},{identity:"Canvas",fn:function(doc){return !!doc.createElement("canvas").getContext}},{identity:"Vml",fn:function(doc){var d=doc.createElement("div");d.innerHTML="<!--[if vml]><br><br><![endif]-->";return(d.childNodes.length==2)}},{identity:"Float",fn:function(doc,div){return !!div.lastChild.style.cssFloat}},{identity:"AudioTag",fn:function(doc){return !!doc.createElement("audio").canPlayType}},{identity:"History",fn:function(){return !!(window.history&&history.pushState)}},{identity:"CSS3DTransform",fn:function(){return(typeof WebKitCSSMatrix!="undefined"&&new WebKitCSSMatrix().hasOwnProperty("m41"))}},{identity:"CSS3LinearGradient",fn:function(doc,div){var property="background-image:",webkit="-webkit-gradient(linear, left top, right bottom, from(black), to(white))",w3c="linear-gradient(left top, black, white)",moz="-moz-"+w3c,options=[property+webkit,property+w3c,property+moz];div.style.cssText=options.join(";");return(""+div.style.backgroundImage).indexOf("gradient")!==-1}},{identity:"CSS3BorderRadius",fn:function(doc,div){var domPrefixes=["borderRadius","BorderRadius","MozBorderRadius","WebkitBorderRadius","OBorderRadius","KhtmlBorderRadius"],pass=false,i;for(i=0;i<domPrefixes.length;i++){if(document.body.style[domPrefixes[i]]!==undefined){return true}}return pass}},{identity:"GeoLocation",fn:function(){return(typeof navigator!="undefined"&&typeof navigator.geolocation!="undefined")||(typeof google!="undefined"&&typeof google.gears!="undefined")}},{identity:"MouseEnterLeave",fn:function(doc,div){return("onmouseenter" in div&&"onmouseleave" in div)}},{identity:"MouseWheel",fn:function(doc,div){return("onmousewheel" in div)}},{identity:"Opacity",fn:function(doc,div){if(Ext.isIE6||Ext.isIE7||Ext.isIE8){return false}div.firstChild.style.cssText="opacity:0.73";return div.firstChild.style.opacity=="0.73"}},{identity:"Placeholder",fn:function(doc){return"placeholder" in doc.createElement("input")}},{identity:"Direct2DBug",fn:function(){return Ext.isString(document.body.style.msTransformOrigin)}},{identity:"BoundingClientRect",fn:function(doc,div){return Ext.isFunction(div.getBoundingClientRect)}},{identity:"IncludePaddingInWidthCalculation",fn:function(doc,div){var el=Ext.get(div.childNodes[1].firstChild);return el.getWidth()==210}},{identity:"IncludePaddingInHeightCalculation",fn:function(doc,div){var el=Ext.get(div.childNodes[1].firstChild);return el.getHeight()==210}},{identity:"ArraySort",fn:function(){var a=[1,2,3,4,5].sort(function(){return 0});return a[0]===1&&a[1]===2&&a[2]===3&&a[3]===4&&a[4]===5}},{identity:"Range",fn:function(){return !!document.createRange}},{identity:"CreateContextualFragment",fn:function(){var range=Ext.supports.Range?document.createRange():false;return range&&!!range.createContextualFragment}},{identity:"WindowOnError",fn:function(){return Ext.isIE||Ext.isGecko||Ext.webKitVersion>=534.16}}]};Ext.ns("Ext.core");Ext.core.DomHelper=Ext.DomHelper=function(){var tempTableEl=null,emptyTags=/^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i,tableRe=/^table|tbody|tr|td$/i,confRe=/tag|children|cn|html$/i,tableElRe=/td|tr|tbody/i,endRe=/end/i,pub,afterbegin="afterbegin",afterend="afterend",beforebegin="beforebegin",beforeend="beforeend",ts="<table>",te="</table>",tbs=ts+"<tbody>",tbe="</tbody>"+te,trs=tbs+"<tr>",tre="</tr>"+tbe;function doInsert(el,o,returnElement,pos,sibling,append){el=Ext.getDom(el);var newNode;if(pub.useDom){newNode=createDom(o,null);if(append){el.appendChild(newNode)}else{(sibling=="firstChild"?el:el.parentNode).insertBefore(newNode,el[sibling]||el)}}else{newNode=Ext.DomHelper.insertHtml(pos,el,Ext.DomHelper.createHtml(o))}return returnElement?Ext.get(newNode,true):newNode}function createDom(o,parentNode){var el,doc=document,useSet,attr,val,cn;if(Ext.isArray(o)){el=doc.createDocumentFragment();for(var i=0,l=o.length;i<l;i++){createDom(o[i],el)}}else{if(typeof o=="string"){el=doc.createTextNode(o)}else{el=doc.createElement(o.tag||"div");useSet=!!el.setAttribute;for(attr in o){if(!confRe.test(attr)){val=o[attr];if(attr=="cls"){el.className=val}else{if(useSet){el.setAttribute(attr,val)}else{el[attr]=val}}}}Ext.DomHelper.applyStyles(el,o.style);if((cn=o.children||o.cn)){createDom(cn,el)}else{if(o.html){el.innerHTML=o.html}}}}if(parentNode){parentNode.appendChild(el)}return el}function createHtml(o){var b="",attr,val,key,cn,i;if(typeof o=="string"){b=o}else{if(Ext.isArray(o)){for(i=0;i<o.length;i++){if(o[i]){b+=createHtml(o[i])}}}else{b+="<"+(o.tag=o.tag||"div");for(attr in o){val=o[attr];if(!confRe.test(attr)){if(typeof val=="object"){b+=" "+attr+'="';for(key in val){b+=key+":"+val[key]+";"}b+='"'}else{b+=" "+({cls:"class",htmlFor:"for"}[attr]||attr)+'="'+val+'"'}}}if(emptyTags.test(o.tag)){b+="/>"}else{b+=">";if((cn=o.children||o.cn)){b+=createHtml(cn)}else{if(o.html){b+=o.html}}b+="</"+o.tag+">"}}}return b}function ieTable(depth,s,h,e){tempTableEl.innerHTML=[s,h,e].join("");var i=-1,el=tempTableEl,ns;while(++i<depth){el=el.firstChild}ns=el.nextSibling;if(ns){var df=document.createDocumentFragment();while(el){ns=el.nextSibling;df.appendChild(el);el=ns}el=df}return el}function insertIntoTable(tag,where,el,html){var node,before;tempTableEl=tempTableEl||document.createElement("div");if(tag=="td"&&(where==afterbegin||where==beforeend)||!tableElRe.test(tag)&&(where==beforebegin||where==afterend)){return null}before=where==beforebegin?el:where==afterend?el.nextSibling:where==afterbegin?el.firstChild:null;if(where==beforebegin||where==afterend){el=el.parentNode}if(tag=="td"||(tag=="tr"&&(where==beforeend||where==afterbegin))){node=ieTable(4,trs,html,tre)}else{if((tag=="tbody"&&(where==beforeend||where==afterbegin))||(tag=="tr"&&(where==beforebegin||where==afterend))){node=ieTable(3,tbs,html,tbe)}else{node=ieTable(2,ts,html,te)}}el.insertBefore(node,before);return node}function createContextualFragment(html){var div=document.createElement("div"),fragment=document.createDocumentFragment(),i=0,length,childNodes;div.innerHTML=html;childNodes=div.childNodes;length=childNodes.length;for(;i<length;i++){fragment.appendChild(childNodes[i].cloneNode(true))}return fragment}pub={markup:function(o){return createHtml(o)},applyStyles:function(el,styles){if(styles){el=Ext.fly(el);if(typeof styles=="function"){styles=styles.call()}if(typeof styles=="string"){styles=Ext.Element.parseStyles(styles)}if(typeof styles=="object"){el.setStyle(styles)}}},insertHtml:function(where,el,html){var hash={},hashVal,range,rangeEl,setStart,frag,rs;where=where.toLowerCase();hash[beforebegin]=["BeforeBegin","previousSibling"];hash[afterend]=["AfterEnd","nextSibling"];if(el.insertAdjacentHTML){if(tableRe.test(el.tagName)&&(rs=insertIntoTable(el.tagName.toLowerCase(),where,el,html))){return rs}hash[afterbegin]=["AfterBegin","firstChild"];hash[beforeend]=["BeforeEnd","lastChild"];if((hashVal=hash[where])){el.insertAdjacentHTML(hashVal[0],html);return el[hashVal[1]]}}else{if(Ext.isTextNode(el)){where=where==="afterbegin"?"beforebegin":where;where=where==="beforeend"?"afterend":where}range=Ext.supports.CreateContextualFragment?el.ownerDocument.createRange():undefined;setStart="setStart"+(endRe.test(where)?"After":"Before");if(hash[where]){if(range){range[setStart](el);frag=range.createContextualFragment(html)}else{frag=createContextualFragment(html)}el.parentNode.insertBefore(frag,where==beforebegin?el:el.nextSibling);return el[(where==beforebegin?"previous":"next")+"Sibling"]}else{rangeEl=(where==afterbegin?"first":"last")+"Child";if(el.firstChild){if(range){range[setStart](el[rangeEl]);frag=range.createContextualFragment(html)}else{frag=createContextualFragment(html)}if(where==afterbegin){el.insertBefore(frag,el.firstChild)}else{el.appendChild(frag)}}else{el.innerHTML=html}return el[rangeEl]}}},insertBefore:function(el,o,returnElement){return doInsert(el,o,returnElement,beforebegin)},insertAfter:function(el,o,returnElement){return doInsert(el,o,returnElement,afterend,"nextSibling")},insertFirst:function(el,o,returnElement){return doInsert(el,o,returnElement,afterbegin,"firstChild")},append:function(el,o,returnElement){return doInsert(el,o,returnElement,beforeend,"",true)},overwrite:function(el,o,returnElement){el=Ext.getDom(el);el.innerHTML=createHtml(o);return returnElement?Ext.get(el.firstChild):el.firstChild},createHtml:createHtml,createDom:createDom,useDom:false,createTemplate:function(o){var html=Ext.DomHelper.createHtml(o);return Ext.create("Ext.Template",html)}};return pub}();Ext.ns("Ext.core");Ext.core.DomQuery=Ext.DomQuery=function(){var cache={},simpleCache={},valueCache={},nonSpace=/\S/,trimRe=/^\s+|\s+$/g,tplRe=/\{(\d+)\}/g,modeRe=/^(\s?[\/>+~]\s?|\s|$)/,tagTokenRe=/^(#)?([\w-\*]+)/,nthRe=/(\d*)n\+?(\d*)/,nthRe2=/\D/,startIdRe=/^\s*\#/,isIE=window.ActiveXObject?true:false,key=30803;eval("var batch = 30803;");function child(parent,index){var i=0,n=parent.firstChild;while(n){if(n.nodeType==1){if(++i==index){return n}}n=n.nextSibling}return null}function next(n){while((n=n.nextSibling)&&n.nodeType!=1){}return n}function prev(n){while((n=n.previousSibling)&&n.nodeType!=1){}return n}function children(parent){var n=parent.firstChild,nodeIndex=-1,nextNode;while(n){nextNode=n.nextSibling;if(n.nodeType==3&&!nonSpace.test(n.nodeValue)){parent.removeChild(n)}else{n.nodeIndex=++nodeIndex}n=nextNode}return this}function byClassName(nodeSet,cls){if(!cls){return nodeSet}var result=[],ri=-1;for(var i=0,ci;ci=nodeSet[i];i++){if((" "+ci.className+" ").indexOf(cls)!=-1){result[++ri]=ci}}return result}function attrValue(n,attr){if(!n.tagName&&typeof n.length!="undefined"){n=n[0]}if(!n){return null}if(attr=="for"){return n.htmlFor}if(attr=="class"||attr=="className"){return n.className}return n.getAttribute(attr)||n[attr]}function getNodes(ns,mode,tagName){var result=[],ri=-1,cs;if(!ns){return result}tagName=tagName||"*";if(typeof ns.getElementsByTagName!="undefined"){ns=[ns]}if(!mode){for(var i=0,ni;ni=ns[i];i++){cs=ni.getElementsByTagName(tagName);for(var j=0,ci;ci=cs[j];j++){result[++ri]=ci}}}else{if(mode=="/"||mode==">"){var utag=tagName.toUpperCase();for(var i=0,ni,cn;ni=ns[i];i++){cn=ni.childNodes;for(var j=0,cj;cj=cn[j];j++){if(cj.nodeName==utag||cj.nodeName==tagName||tagName=="*"){result[++ri]=cj}}}}else{if(mode=="+"){var utag=tagName.toUpperCase();for(var i=0,n;n=ns[i];i++){while((n=n.nextSibling)&&n.nodeType!=1){}if(n&&(n.nodeName==utag||n.nodeName==tagName||tagName=="*")){result[++ri]=n}}}else{if(mode=="~"){var utag=tagName.toUpperCase();for(var i=0,n;n=ns[i];i++){while((n=n.nextSibling)){if(n.nodeName==utag||n.nodeName==tagName||tagName=="*"){result[++ri]=n}}}}}}}return result}function concat(a,b){if(b.slice){return a.concat(b)}for(var i=0,l=b.length;i<l;i++){a[a.length]=b[i]}return a}function byTag(cs,tagName){if(cs.tagName||cs==document){cs=[cs]}if(!tagName){return cs}var result=[],ri=-1;tagName=tagName.toLowerCase();for(var i=0,ci;ci=cs[i];i++){if(ci.nodeType==1&&ci.tagName.toLowerCase()==tagName){result[++ri]=ci}}return result}function byId(cs,id){if(cs.tagName||cs==document){cs=[cs]}if(!id){return cs}var result=[],ri=-1;for(var i=0,ci;ci=cs[i];i++){if(ci&&ci.id==id){result[++ri]=ci;return result}}return result}function byAttribute(cs,attr,value,op,custom){var result=[],ri=-1,useGetStyle=custom=="{",fn=Ext.DomQuery.operators[op],a,xml,hasXml;for(var i=0,ci;ci=cs[i];i++){if(ci.nodeType!=1){continue}if(!hasXml){xml=Ext.DomQuery.isXml(ci);hasXml=true}if(!xml){if(useGetStyle){a=Ext.DomQuery.getStyle(ci,attr)}else{if(attr=="class"||attr=="className"){a=ci.className}else{if(attr=="for"){a=ci.htmlFor}else{if(attr=="href"){a=ci.getAttribute("href",2)}else{a=ci.getAttribute(attr)}}}}}else{a=ci.getAttribute(attr)}if((fn&&fn(a,value))||(!fn&&a)){result[++ri]=ci}}return result}function byPseudo(cs,name,value){return Ext.DomQuery.pseudos[name](cs,value)}function nodupIEXml(cs){var d=++key,r;cs[0].setAttribute("_nodup",d);r=[cs[0]];for(var i=1,len=cs.length;i<len;i++){var c=cs[i];if(!c.getAttribute("_nodup")!=d){c.setAttribute("_nodup",d);r[r.length]=c}}for(var i=0,len=cs.length;i<len;i++){cs[i].removeAttribute("_nodup")}return r}function nodup(cs){if(!cs){return[]}var len=cs.length,c,i,r=cs,cj,ri=-1;if(!len||typeof cs.nodeType!="undefined"||len==1){return cs}if(isIE&&typeof cs[0].selectSingleNode!="undefined"){return nodupIEXml(cs)}var d=++key;cs[0]._nodup=d;for(i=1;c=cs[i];i++){if(c._nodup!=d){c._nodup=d}else{r=[];for(var j=0;j<i;j++){r[++ri]=cs[j]}for(j=i+1;cj=cs[j];j++){if(cj._nodup!=d){cj._nodup=d;r[++ri]=cj}}return r}}return r}function quickDiffIEXml(c1,c2){var d=++key,r=[];for(var i=0,len=c1.length;i<len;i++){c1[i].setAttribute("_qdiff",d)}for(var i=0,len=c2.length;i<len;i++){if(c2[i].getAttribute("_qdiff")!=d){r[r.length]=c2[i]}}for(var i=0,len=c1.length;i<len;i++){c1[i].removeAttribute("_qdiff")}return r}function quickDiff(c1,c2){var len1=c1.length,d=++key,r=[];if(!len1){return c2}if(isIE&&typeof c1[0].selectSingleNode!="undefined"){return quickDiffIEXml(c1,c2)}for(var i=0;i<len1;i++){c1[i]._qdiff=d}for(var i=0,len=c2.length;i<len;i++){if(c2[i]._qdiff!=d){r[r.length]=c2[i]}}return r}function quickId(ns,mode,root,id){if(ns==root){var d=root.ownerDocument||root;return d.getElementById(id)}ns=getNodes(ns,mode,"*");return byId(ns,id)}return{getStyle:function(el,name){return Ext.fly(el).getStyle(name)},compile:function(path,type){type=type||"select";var fn=["var f = function(root){\n var mode; ++batch; var n = root || document;\n"],mode,lastPath,matchers=Ext.DomQuery.matchers,matchersLn=matchers.length,modeMatch,lmode=path.match(modeRe);if(lmode&&lmode[1]){fn[fn.length]='mode="'+lmode[1].replace(trimRe,"")+'";';path=path.replace(lmode[1],"")}while(path.substr(0,1)=="/"){path=path.substr(1)}while(path&&lastPath!=path){lastPath=path;var tokenMatch=path.match(tagTokenRe);if(type=="select"){if(tokenMatch){if(tokenMatch[1]=="#"){fn[fn.length]='n = quickId(n, mode, root, "'+tokenMatch[2]+'");'}else{fn[fn.length]='n = getNodes(n, mode, "'+tokenMatch[2]+'");'}path=path.replace(tokenMatch[0],"")}else{if(path.substr(0,1)!="@"){fn[fn.length]='n = getNodes(n, mode, "*");'}}}else{if(tokenMatch){if(tokenMatch[1]=="#"){fn[fn.length]='n = byId(n, "'+tokenMatch[2]+'");'}else{fn[fn.length]='n = byTag(n, "'+tokenMatch[2]+'");'}path=path.replace(tokenMatch[0],"")}}while(!(modeMatch=path.match(modeRe))){var matched=false;for(var j=0;j<matchersLn;j++){var t=matchers[j];var m=path.match(t.re);if(m){fn[fn.length]=t.select.replace(tplRe,function(x,i){return m[i]});path=path.replace(m[0],"");matched=true;break}}if(!matched){}}if(modeMatch[1]){fn[fn.length]='mode="'+modeMatch[1].replace(trimRe,"")+'";';path=path.replace(modeMatch[1],"")}}fn[fn.length]="return nodup(n);\n}";eval(fn.join(""));return f},jsSelect:function(path,root,type){root=root||document;if(typeof root=="string"){root=document.getElementById(root)}var paths=path.split(","),results=[];for(var i=0,len=paths.length;i<len;i++){var subPath=paths[i].replace(trimRe,"");if(!cache[subPath]){cache[subPath]=Ext.DomQuery.compile(subPath);if(!cache[subPath]){}}var result=cache[subPath](root);if(result&&result!=document){results=results.concat(result)}}if(paths.length>1){return nodup(results)}return results},isXml:function(el){var docEl=(el?el.ownerDocument||el:0).documentElement;return docEl?docEl.nodeName!=="HTML":false},select:document.querySelectorAll?function(path,root,type){root=root||document;if(!Ext.DomQuery.isXml(root)&&!(Ext.isSafari3&&!Ext.isStrict)){try{var isDocumentRoot=root.nodeType===9,_path=path,_root=root;if(!isDocumentRoot&&path.indexOf(",")===-1&&!startIdRe.test(path)){_path="#"+Ext.id(root)+" "+path;_root=root.parentNode}return Ext.Array.toArray(_root.querySelectorAll(_path))}catch(e){}}return Ext.DomQuery.jsSelect.call(this,path,root,type)}:function(path,root,type){return Ext.DomQuery.jsSelect.call(this,path,root,type)},selectNode:function(path,root){return Ext.DomQuery.select(path,root)[0]},selectValue:function(path,root,defaultValue){path=path.replace(trimRe,"");if(!valueCache[path]){valueCache[path]=Ext.DomQuery.compile(path,"select")}var n=valueCache[path](root),v;n=n[0]?n[0]:n;if(typeof n.normalize=="function"){n.normalize()}v=(n&&n.firstChild?n.firstChild.nodeValue:null);return((v===null||v===undefined||v==="")?defaultValue:v)},selectNumber:function(path,root,defaultValue){var v=Ext.DomQuery.selectValue(path,root,defaultValue||0);return parseFloat(v)},is:function(el,ss){if(typeof el=="string"){el=document.getElementById(el)}var isArray=Ext.isArray(el),result=Ext.DomQuery.filter(isArray?el:[el],ss);return isArray?(result.length==el.length):(result.length>0)},filter:function(els,ss,nonMatches){ss=ss.replace(trimRe,"");if(!simpleCache[ss]){simpleCache[ss]=Ext.DomQuery.compile(ss,"simple")}var result=simpleCache[ss](els);return nonMatches?quickDiff(result,els):result},matchers:[{re:/^\.([\w-]+)/,select:'n = byClassName(n, " {1} ");'},{re:/^\:([\w-]+)(?:\(((?:[^\s>\/]*|.*?))\))?/,select:'n = byPseudo(n, "{1}", "{2}");'},{re:/^(?:([\[\{])(?:@)?([\w-]+)\s?(?:(=|.=)\s?['"]?(.*?)["']?)?[\]\}])/,select:'n = byAttribute(n, "{2}", "{4}", "{3}", "{1}");'},{re:/^#([\w-]+)/,select:'n = byId(n, "{1}");'},{re:/^@([\w-]+)/,select:'return {firstChild:{nodeValue:attrValue(n, "{1}")}};'}],operators:{"=":function(a,v){return a==v},"!=":function(a,v){return a!=v},"^=":function(a,v){return a&&a.substr(0,v.length)==v},"$=":function(a,v){return a&&a.substr(a.length-v.length)==v},"*=":function(a,v){return a&&a.indexOf(v)!==-1},"%=":function(a,v){return(a%v)==0},"|=":function(a,v){return a&&(a==v||a.substr(0,v.length+1)==v+"-")},"~=":function(a,v){return a&&(" "+a+" ").indexOf(" "+v+" ")!=-1}},pseudos:{"first-child":function(c){var r=[],ri=-1,n;for(var i=0,ci;ci=n=c[i];i++){while((n=n.previousSibling)&&n.nodeType!=1){}if(!n){r[++ri]=ci}}return r},"last-child":function(c){var r=[],ri=-1,n;for(var i=0,ci;ci=n=c[i];i++){while((n=n.nextSibling)&&n.nodeType!=1){}if(!n){r[++ri]=ci}}return r},"nth-child":function(c,a){var r=[],ri=-1,m=nthRe.exec(a=="even"&&"2n"||a=="odd"&&"2n+1"||!nthRe2.test(a)&&"n+"+a||a),f=(m[1]||1)-0,l=m[2]-0;for(var i=0,n;n=c[i];i++){var pn=n.parentNode;if(batch!=pn._batch){var j=0;for(var cn=pn.firstChild;cn;cn=cn.nextSibling){if(cn.nodeType==1){cn.nodeIndex=++j}}pn._batch=batch}if(f==1){if(l==0||n.nodeIndex==l){r[++ri]=n}}else{if((n.nodeIndex+l)%f==0){r[++ri]=n}}}return r},"only-child":function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(!prev(ci)&&!next(ci)){r[++ri]=ci}}return r},empty:function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var cns=ci.childNodes,j=0,cn,empty=true;while(cn=cns[j]){++j;if(cn.nodeType==1||cn.nodeType==3){empty=false;break}}if(empty){r[++ri]=ci}}return r},contains:function(c,v){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if((ci.textContent||ci.innerText||"").indexOf(v)!=-1){r[++ri]=ci}}return r},nodeValue:function(c,v){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(ci.firstChild&&ci.firstChild.nodeValue==v){r[++ri]=ci}}return r},checked:function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(ci.checked==true){r[++ri]=ci}}return r},not:function(c,ss){return Ext.DomQuery.filter(c,ss,true)},any:function(c,selectors){var ss=selectors.split("|"),r=[],ri=-1,s;for(var i=0,ci;ci=c[i];i++){for(var j=0;s=ss[j];j++){if(Ext.DomQuery.is(ci,s)){r[++ri]=ci;break}}}return r},odd:function(c){return this["nth-child"](c,"odd")},even:function(c){return this["nth-child"](c,"even")},nth:function(c,a){return c[a-1]||[]},first:function(c){return c[0]||[]},last:function(c){return c[c.length-1]||[]},has:function(c,ss){var s=Ext.DomQuery.select,r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(s(ss,ci).length>0){r[++ri]=ci}}return r},next:function(c,ss){var is=Ext.DomQuery.is,r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var n=next(ci);if(n&&is(n,ss)){r[++ri]=ci}}return r},prev:function(c,ss){var is=Ext.DomQuery.is,r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var n=prev(ci);if(n&&is(n,ss)){r[++ri]=ci}}return r}}}}();Ext.query=Ext.DomQuery.select;(function(){var DOC=document,EC=Ext.cache;Ext.Element=Ext.core.Element=function(element,forceNew){var dom=typeof element=="string"?DOC.getElementById(element):element,id;if(!dom){return null}id=dom.id;if(!forceNew&&id&&EC[id]){return EC[id].el}this.dom=dom;this.id=id||Ext.id(dom)};var DH=Ext.DomHelper,El=Ext.Element;El.prototype={set:function(o,useSet){var el=this.dom,attr,val;useSet=(useSet!==false)&&!!el.setAttribute;for(attr in o){if(o.hasOwnProperty(attr)){val=o[attr];if(attr=="style"){DH.applyStyles(el,val)}else{if(attr=="cls"){el.className=val}else{if(useSet){el.setAttribute(attr,val)}else{el[attr]=val}}}}}return this},defaultUnit:"px",is:function(simpleSelector){return Ext.DomQuery.is(this.dom,simpleSelector)},focus:function(defer,dom){var me=this;dom=dom||me.dom;try{if(Number(defer)){Ext.defer(me.focus,defer,null,[null,dom])}else{dom.focus()}}catch(e){}return me},blur:function(){try{this.dom.blur()}catch(e){}return this},getValue:function(asNumber){var val=this.dom.value;return asNumber?parseInt(val,10):val},addListener:function(eventName,fn,scope,options){Ext.EventManager.on(this.dom,eventName,fn,scope||this,options);return this},removeListener:function(eventName,fn,scope){Ext.EventManager.un(this.dom,eventName,fn,scope||this);return this},removeAllListeners:function(){Ext.EventManager.removeAll(this.dom);return this},purgeAllListeners:function(){Ext.EventManager.purgeElement(this);return this},addUnits:function(size,units){if(Ext.isNumber(size)){return size+(units||this.defaultUnit||"px")}if(size===""||size=="auto"||size==null){return size||""}if(!unitPattern.test(size)){return size||""}return size},isBorderBox:function(){return Ext.isBorderBox||noBoxAdjust[(this.dom.tagName||"").toLowerCase()]},remove:function(){var me=this,dom=me.dom;if(dom){delete me.dom;Ext.removeNode(dom)}},hover:function(overFn,outFn,scope,options){var me=this;me.on("mouseenter",overFn,scope||me.dom,options);me.on("mouseleave",outFn,scope||me.dom,options);return me},contains:function(el){return !el?false:Ext.Element.isAncestor(this.dom,el.dom?el.dom:el)},getAttributeNS:function(ns,name){return this.getAttribute(name,ns)},getAttribute:(Ext.isIE&&!(Ext.isIE9&&document.documentMode===9))?function(name,ns){var d=this.dom,type;if(ns){type=typeof d[ns+":"+name];if(type!="undefined"&&type!="unknown"){return d[ns+":"+name]||null}return null}if(name==="for"){name="htmlFor"}return d[name]||null}:function(name,ns){var d=this.dom;if(ns){return d.getAttributeNS(ns,name)||d.getAttribute(ns+":"+name)}return d.getAttribute(name)||d[name]||null},update:function(html){if(this.dom){this.dom.innerHTML=html}return this}};var ep=El.prototype;El.addMethods=function(o){Ext.apply(ep,o)};ep.on=ep.addListener;ep.un=ep.removeListener;ep.clearListeners=ep.removeAllListeners;ep.destroy=ep.remove;ep.autoBoxAdjust=true;var unitPattern=/\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i,docEl;El.get=function(el){var ex,elm,id;if(!el){return null}if(typeof el=="string"){if(!(elm=DOC.getElementById(el))){return null}if(EC[el]&&EC[el].el){ex=EC[el].el;ex.dom=elm}else{ex=El.addToCache(new El(elm))}return ex}else{if(el.tagName){if(!(id=el.id)){id=Ext.id(el)}if(EC[id]&&EC[id].el){ex=EC[id].el;ex.dom=el}else{ex=El.addToCache(new El(el))}return ex}else{if(el instanceof El){if(el!=docEl){if(Ext.isIE&&(el.id==undefined||el.id=="")){el.dom=el.dom}else{el.dom=DOC.getElementById(el.id)||el.dom}}return el}else{if(el.isComposite){return el}else{if(Ext.isArray(el)){return El.select(el)}else{if(el==DOC){if(!docEl){var f=function(){};f.prototype=El.prototype;docEl=new f();docEl.dom=DOC}return docEl}}}}}}return null};ep.getById=(!Ext.isIE6&&!Ext.isIE7&&!Ext.isIE8)?El.get:function(id){var dom=this.dom,cached,el,ret;if(dom){el=dom.all[id];if(el){cached=EC[id];if(cached&&cached.el){ret=cached.el;ret.dom=el}else{ret=El.addToCache(new El(el))}return ret}}return El.get(id)};El.addToCache=function(el,id){if(el){id=id||el.id;EC[id]={el:el,data:{},events:{}}}return el};El.data=function(el,key,value){el=El.get(el);if(!el){return null}var c=EC[el.id].data;if(arguments.length==2){return c[key]}else{return(c[key]=value)}};function garbageCollect(){if(!Ext.enableGarbageCollector){clearInterval(El.collectorThreadId)}else{var eid,el,d,o;for(eid in EC){if(!EC.hasOwnProperty(eid)){continue}o=EC[eid];if(o.skipGarbageCollection){continue}el=o.el;d=el.dom;if(!d||!d.parentNode||(!d.offsetParent&&!DOC.getElementById(eid))){if(d&&Ext.enableListenerCollection){Ext.EventManager.removeAll(d)}delete EC[eid]}}if(Ext.isIE){var t={};for(eid in EC){if(!EC.hasOwnProperty(eid)){continue}t[eid]=EC[eid]}EC=Ext.cache=t}}}El.collectorThreadId=setInterval(garbageCollect,30000);var flyFn=function(){};flyFn.prototype=El.prototype;El.Flyweight=function(dom){this.dom=dom};El.Flyweight.prototype=new flyFn();El.Flyweight.prototype.isFlyweight=true;El._flyweights={};El.fly=function(el,named){var ret=null;named=named||"_global";el=Ext.getDom(el);if(el){(El._flyweights[named]=El._flyweights[named]||new El.Flyweight()).dom=el;ret=El._flyweights[named]}return ret};Ext.get=El.get;Ext.fly=El.fly;var noBoxAdjust=Ext.isStrict?{select:1}:{input:1,select:1,textarea:1};if(Ext.isIE||Ext.isGecko){noBoxAdjust.button=1}})();Ext.Element.addMethods({findParent:function(simpleSelector,maxDepth,returnEl){var p=this.dom,b=document.body,depth=0,stopEl;maxDepth=maxDepth||50;if(isNaN(maxDepth)){stopEl=Ext.getDom(maxDepth);maxDepth=Number.MAX_VALUE}while(p&&p.nodeType==1&&depth<maxDepth&&p!=b&&p!=stopEl){if(Ext.DomQuery.is(p,simpleSelector)){return returnEl?Ext.get(p):p}depth++;p=p.parentNode}return null},findParentNode:function(simpleSelector,maxDepth,returnEl){var p=Ext.fly(this.dom.parentNode,"_internal");return p?p.findParent(simpleSelector,maxDepth,returnEl):null},up:function(simpleSelector,maxDepth){return this.findParentNode(simpleSelector,maxDepth,true)},select:function(selector){return Ext.Element.select(selector,false,this.dom)},query:function(selector){return Ext.DomQuery.select(selector,this.dom)},down:function(selector,returnDom){var n=Ext.DomQuery.selectNode(selector,this.dom);return returnDom?n:Ext.get(n)},child:function(selector,returnDom){var node,me=this,id;id=Ext.get(me).id;id=id.replace(/[\.:]/g,"\\$0");node=Ext.DomQuery.selectNode("#"+id+" > "+selector,me.dom);return returnDom?node:Ext.get(node)},parent:function(selector,returnDom){return this.matchNode("parentNode","parentNode",selector,returnDom)},next:function(selector,returnDom){return this.matchNode("nextSibling","nextSibling",selector,returnDom)},prev:function(selector,returnDom){return this.matchNode("previousSibling","previousSibling",selector,returnDom)},first:function(selector,returnDom){return this.matchNode("nextSibling","firstChild",selector,returnDom)},last:function(selector,returnDom){return this.matchNode("previousSibling","lastChild",selector,returnDom)},matchNode:function(dir,start,selector,returnDom){if(!this.dom){return null}var n=this.dom[start];while(n){if(n.nodeType==1&&(!selector||Ext.DomQuery.is(n,selector))){return !returnDom?Ext.get(n):n}n=n[dir]}return null}});Ext.Element.addMethods({appendChild:function(el){return Ext.get(el).appendTo(this)},appendTo:function(el){Ext.getDom(el).appendChild(this.dom);return this},insertBefore:function(el){el=Ext.getDom(el);el.parentNode.insertBefore(this.dom,el);return this},insertAfter:function(el){el=Ext.getDom(el);el.parentNode.insertBefore(this.dom,el.nextSibling);return this},insertFirst:function(el,returnDom){el=el||{};if(el.nodeType||el.dom||typeof el=="string"){el=Ext.getDom(el);this.dom.insertBefore(el,this.dom.firstChild);return !returnDom?Ext.get(el):el}else{return this.createChild(el,this.dom.firstChild,returnDom)}},insertSibling:function(el,where,returnDom){var me=this,rt,isAfter=(where||"before").toLowerCase()=="after",insertEl;if(Ext.isArray(el)){insertEl=me;Ext.each(el,function(e){rt=Ext.fly(insertEl,"_internal").insertSibling(e,where,returnDom);if(isAfter){insertEl=rt}});return rt}el=el||{};if(el.nodeType||el.dom){rt=me.dom.parentNode.insertBefore(Ext.getDom(el),isAfter?me.dom.nextSibling:me.dom);if(!returnDom){rt=Ext.get(rt)}}else{if(isAfter&&!me.dom.nextSibling){rt=Ext.DomHelper.append(me.dom.parentNode,el,!returnDom)}else{rt=Ext.DomHelper[isAfter?"insertAfter":"insertBefore"](me.dom,el,!returnDom)}}return rt},replace:function(el){el=Ext.get(el);this.insertBefore(el);el.remove();return this},replaceWith:function(el){var me=this;if(el.nodeType||el.dom||typeof el=="string"){el=Ext.get(el);me.dom.parentNode.insertBefore(el,me.dom)}else{el=Ext.DomHelper.insertBefore(me.dom,el)}delete Ext.cache[me.id];Ext.removeNode(me.dom);me.id=Ext.id(me.dom=el);Ext.Element.addToCache(me.isFlyweight?new Ext.Element(me.dom):me);return me},createChild:function(config,insertBefore,returnDom){config=config||{tag:"div"};if(insertBefore){return Ext.DomHelper.insertBefore(insertBefore,config,returnDom!==true)}else{return Ext.DomHelper[!this.dom.firstChild?"insertFirst":"append"](this.dom,config,returnDom!==true)}},wrap:function(config,returnDom){var newEl=Ext.DomHelper.insertBefore(this.dom,config||{tag:"div"},!returnDom),d=newEl.dom||newEl;d.appendChild(this.dom);return newEl},insertHtml:function(where,html,returnEl){var el=Ext.DomHelper.insertHtml(where,this.dom,html);return returnEl?Ext.get(el):el}});(function(){var ELEMENT=Ext.Element,supports=Ext.supports,view=document.defaultView,opacityRe=/alpha\(opacity=(.*)\)/i,trimRe=/^\s+|\s+$/g,spacesRe=/\s+/,wordsRe=/\w/g,adjustDirect2DTableRe=/table-row|table-.*-group/,INTERNAL="_internal",PADDING="padding",MARGIN="margin",BORDER="border",LEFT="-left",RIGHT="-right",TOP="-top",BOTTOM="-bottom",WIDTH="-width",MATH=Math,HIDDEN="hidden",ISCLIPPED="isClipped",OVERFLOW="overflow",OVERFLOWX="overflow-x",OVERFLOWY="overflow-y",ORIGINALCLIP="originalClip",borders={l:BORDER+LEFT+WIDTH,r:BORDER+RIGHT+WIDTH,t:BORDER+TOP+WIDTH,b:BORDER+BOTTOM+WIDTH},paddings={l:PADDING+LEFT,r:PADDING+RIGHT,t:PADDING+TOP,b:PADDING+BOTTOM},margins={l:MARGIN+LEFT,r:MARGIN+RIGHT,t:MARGIN+TOP,b:MARGIN+BOTTOM},data=ELEMENT.data;ELEMENT.boxMarkup='<div class="{0}-tl"><div class="{0}-tr"><div class="{0}-tc"></div></div></div><div class="{0}-ml"><div class="{0}-mr"><div class="{0}-mc"></div></div></div><div class="{0}-bl"><div class="{0}-br"><div class="{0}-bc"></div></div></div>';ELEMENT.inheritedProps={fontSize:1,fontStyle:1,opacity:1};Ext.override(ELEMENT,{adjustWidth:function(width){var me=this,isNum=(typeof width=="number");if(isNum&&me.autoBoxAdjust&&!me.isBorderBox()){width-=(me.getBorderWidth("lr")+me.getPadding("lr"))}return(isNum&&width<0)?0:width},adjustHeight:function(height){var me=this,isNum=(typeof height=="number");if(isNum&&me.autoBoxAdjust&&!me.isBorderBox()){height-=(me.getBorderWidth("tb")+me.getPadding("tb"))}return(isNum&&height<0)?0:height},addCls:function(className){var me=this,cls=[],space=((me.dom.className.replace(trimRe,"")=="")?"":" "),i,len,v;if(className===undefined){return me}if(Object.prototype.toString.call(className)!=="[object Array]"){if(typeof className==="string"){className=className.replace(trimRe,"").split(spacesRe);if(className.length===1){className=className[0];if(!me.hasCls(className)){me.dom.className+=space+className}}else{this.addCls(className)}}}else{for(i=0,len=className.length;i<len;i++){v=className[i];if(typeof v=="string"&&(" "+me.dom.className+" ").indexOf(" "+v+" ")==-1){cls.push(v)}}if(cls.length){me.dom.className+=space+cls.join(" ")}}return me},removeCls:function(className){var me=this,i,idx,len,cls,elClasses;if(className===undefined){return me}if(Object.prototype.toString.call(className)!=="[object Array]"){className=className.replace(trimRe,"").split(spacesRe)}if(me.dom&&me.dom.className){elClasses=me.dom.className.replace(trimRe,"").split(spacesRe);for(i=0,len=className.length;i<len;i++){cls=className[i];if(typeof cls=="string"){cls=cls.replace(trimRe,"");idx=Ext.Array.indexOf(elClasses,cls);if(idx!=-1){Ext.Array.erase(elClasses,idx,1)}}}me.dom.className=elClasses.join(" ")}return me},radioCls:function(className){var cn=this.dom.parentNode.childNodes,v,i,len;className=Ext.isArray(className)?className:[className];for(i=0,len=cn.length;i<len;i++){v=cn[i];if(v&&v.nodeType==1){Ext.fly(v,"_internal").removeCls(className)}}return this.addCls(className)},toggleCls:Ext.supports.ClassList?function(className){this.dom.classList.toggle(Ext.String.trim(className));return this}:function(className){return this.hasCls(className)?this.removeCls(className):this.addCls(className)},hasCls:Ext.supports.ClassList?function(className){if(!className){return false}className=className.split(spacesRe);var ln=className.length,i=0;for(;i<ln;i++){if(className[i]&&this.dom.classList.contains(className[i])){return true}}return false}:function(className){return className&&(" "+this.dom.className+" ").indexOf(" "+className+" ")!=-1},replaceCls:function(oldClassName,newClassName){return this.removeCls(oldClassName).addCls(newClassName)},isStyle:function(style,val){return this.getStyle(style)==val},getStyle:function(){return view&&view.getComputedStyle?function(prop){var el=this.dom,v,cs,out,display,cleaner;if(el==document){return null}prop=ELEMENT.normalize(prop);out=(v=el.style[prop])?v:(cs=view.getComputedStyle(el,""))?cs[prop]:null;if(prop=="marginRight"&&out!="0px"&&!supports.RightMargin){cleaner=ELEMENT.getRightMarginFixCleaner(el);display=this.getStyle("display");el.style.display="inline-block";out=view.getComputedStyle(el,"").marginRight;el.style.display=display;cleaner()}if(prop=="backgroundColor"&&out=="rgba(0, 0, 0, 0)"&&!supports.TransparentColor){out="transparent"}return out}:function(prop){var el=this.dom,m,cs;if(el==document){return null}prop=ELEMENT.normalize(prop);do{if(prop=="opacity"){if(el.style.filter.match){m=el.style.filter.match(opacityRe);if(m){var fv=parseFloat(m[1]);if(!isNaN(fv)){return fv?fv/100:0}}}return 1}if(!Ext.isIE6){return el.style[prop]||((cs=el.currentStyle)?cs[prop]:null)}try{return el.style[prop]||((cs=el.currentStyle)?cs[prop]:null)}catch(e){}if(!ELEMENT.inheritedProps[prop]){break}el=el.parentNode}while(el);return null}}(),getColor:function(attr,defaultValue,prefix){var v=this.getStyle(attr),color=prefix||prefix===""?prefix:"#",h;if(!v||(/transparent|inherit/.test(v))){return defaultValue}if(/^r/.test(v)){Ext.each(v.slice(4,v.length-1).split(","),function(s){h=parseInt(s,10);color+=(h<16?"0":"")+h.toString(16)})}else{v=v.replace("#","");color+=v.length==3?v.replace(/^(\w)(\w)(\w)$/,"$1$1$2$2$3$3"):v}return(color.length>5?color.toLowerCase():defaultValue)},setStyle:function(prop,value){var me=this,tmp,style;if(!me.dom){return me}if(typeof prop==="string"){tmp={};tmp[prop]=value;prop=tmp}for(style in prop){if(prop.hasOwnProperty(style)){value=Ext.value(prop[style],"");if(style=="opacity"){me.setOpacity(value)}else{me.dom.style[ELEMENT.normalize(style)]=value}}}return me},setOpacity:function(opacity,animate){var me=this,dom=me.dom,val,style;if(!me.dom){return me}style=me.dom.style;if(!animate||!me.anim){if(!Ext.supports.Opacity){opacity=opacity<1?"alpha(opacity="+opacity*100+")":"";val=style.filter.replace(opacityRe,"").replace(trimRe,"");style.zoom=1;style.filter=val+(val.length>0?" ":"")+opacity}else{style.opacity=opacity}}else{if(!Ext.isObject(animate)){animate={duration:350,easing:"ease-in"}}me.animate(Ext.applyIf({to:{opacity:opacity}},animate))}return me},clearOpacity:function(){var style=this.dom.style;if(!Ext.supports.Opacity){if(!Ext.isEmpty(style.filter)){style.filter=style.filter.replace(opacityRe,"").replace(trimRe,"")}}else{style.opacity=style["-moz-opacity"]=style["-khtml-opacity"]=""}return this},adjustDirect2DDimension:function(dimension){var me=this,dom=me.dom,display=me.getStyle("display"),inlineDisplay=dom.style.display,inlinePosition=dom.style.position,originIndex=dimension==="width"?0:1,floating;if(display==="inline"){dom.style.display="inline-block"}dom.style.position=display.match(adjustDirect2DTableRe)?"absolute":"static";floating=(parseFloat(me.getStyle(dimension))||parseFloat(dom.currentStyle.msTransformOrigin.split(" ")[originIndex])*2)%1;dom.style.position=inlinePosition;if(display==="inline"){dom.style.display=inlineDisplay}return floating},getHeight:function(contentHeight,preciseHeight){var me=this,dom=me.dom,hidden=Ext.isIE&&me.isStyle("display","none"),height,overflow,style,floating;if(Ext.isIEQuirks){style=dom.style;overflow=style.overflow;me.setStyle({overflow:"hidden"})}height=dom.offsetHeight;height=MATH.max(height,hidden?0:dom.clientHeight)||0;if(!hidden&&Ext.supports.Direct2DBug){floating=me.adjustDirect2DDimension("height");if(preciseHeight){height+=floating}else{if(floating>0&&floating<0.5){height++}}}if(contentHeight){height-=(me.getBorderWidth("tb")+me.getPadding("tb"))}if(Ext.isIEQuirks){me.setStyle({overflow:overflow})}if(height<0){height=0}return height},getWidth:function(contentWidth,preciseWidth){var me=this,dom=me.dom,hidden=Ext.isIE&&me.isStyle("display","none"),rect,width,overflow,style,floating,parentPosition;if(Ext.isIEQuirks){style=dom.style;overflow=style.overflow;me.setStyle({overflow:"hidden"})}if(Ext.isOpera10_5){if(dom.parentNode.currentStyle.position==="relative"){parentPosition=dom.parentNode.style.position;dom.parentNode.style.position="static";width=dom.offsetWidth;dom.parentNode.style.position=parentPosition}width=Math.max(width||0,dom.offsetWidth)}else{if(Ext.supports.BoundingClientRect){rect=dom.getBoundingClientRect();width=rect.right-rect.left;width=preciseWidth?width:Math.ceil(width)}else{width=dom.offsetWidth}}width=MATH.max(width,hidden?0:dom.clientWidth)||0;if(!hidden&&Ext.supports.Direct2DBug){floating=me.adjustDirect2DDimension("width");if(preciseWidth){width+=floating}else{if(floating>0&&floating<0.5){width++}}}if(contentWidth){width-=(me.getBorderWidth("lr")+me.getPadding("lr"))}if(Ext.isIEQuirks){me.setStyle({overflow:overflow})}if(width<0){width=0}return width},setWidth:function(width,animate){var me=this;width=me.adjustWidth(width);if(!animate||!me.anim){me.dom.style.width=me.addUnits(width)}else{if(!Ext.isObject(animate)){animate={}}me.animate(Ext.applyIf({to:{width:width}},animate))}return me},setHeight:function(height,animate){var me=this;height=me.adjustHeight(height);if(!animate||!me.anim){me.dom.style.height=me.addUnits(height)}else{if(!Ext.isObject(animate)){animate={}}me.animate(Ext.applyIf({to:{height:height}},animate))}return me},getBorderWidth:function(side){return this.addStyles(side,borders)},getPadding:function(side){return this.addStyles(side,paddings)},clip:function(){var me=this,dom=me.dom;if(!data(dom,ISCLIPPED)){data(dom,ISCLIPPED,true);data(dom,ORIGINALCLIP,{o:me.getStyle(OVERFLOW),x:me.getStyle(OVERFLOWX),y:me.getStyle(OVERFLOWY)});me.setStyle(OVERFLOW,HIDDEN);me.setStyle(OVERFLOWX,HIDDEN);me.setStyle(OVERFLOWY,HIDDEN)}return me},unclip:function(){var me=this,dom=me.dom,clip;if(data(dom,ISCLIPPED)){data(dom,ISCLIPPED,false);clip=data(dom,ORIGINALCLIP);if(clip.o){me.setStyle(OVERFLOW,clip.o)}if(clip.x){me.setStyle(OVERFLOWX,clip.x)}if(clip.y){me.setStyle(OVERFLOWY,clip.y)}}return me},addStyles:function(sides,styles){var totalSize=0,sidesArr=sides.match(wordsRe),i=0,len=sidesArr.length,side,size;for(;i<len;i++){side=sidesArr[i];size=side&&parseInt(this.getStyle(styles[side]),10);if(size){totalSize+=MATH.abs(size)}}return totalSize},margins:margins,applyStyles:function(style){Ext.DomHelper.applyStyles(this.dom,style);return this},getStyles:function(){var styles={},len=arguments.length,i=0,style;for(;i<len;++i){style=arguments[i];styles[style]=this.getStyle(style)}return styles},boxWrap:function(cls){cls=cls||Ext.baseCSSPrefix+"box";var el=Ext.get(this.insertHtml("beforeBegin","<div class='"+cls+"'>"+Ext.String.format(ELEMENT.boxMarkup,cls)+"</div>"));Ext.DomQuery.selectNode("."+cls+"-mc",el.dom).appendChild(this.dom);return el},setSize:function(width,height,animate){var me=this;if(Ext.isObject(width)){animate=height;height=width.height;width=width.width}width=me.adjustWidth(width);height=me.adjustHeight(height);if(!animate||!me.anim){if(!Ext.isIEQuirks&&(Ext.isIE6||Ext.isIE7)){me.dom.offsetTop}me.dom.style.width=me.addUnits(width);me.dom.style.height=me.addUnits(height)}else{if(animate===true){animate={}}me.animate(Ext.applyIf({to:{width:width,height:height}},animate))}return me},getComputedHeight:function(){var me=this,h=Math.max(me.dom.offsetHeight,me.dom.clientHeight);if(!h){h=parseFloat(me.getStyle("height"))||0;if(!me.isBorderBox()){h+=me.getFrameWidth("tb")}}return h},getComputedWidth:function(){var me=this,w=Math.max(me.dom.offsetWidth,me.dom.clientWidth);if(!w){w=parseFloat(me.getStyle("width"))||0;if(!me.isBorderBox()){w+=me.getFrameWidth("lr")}}return w},getFrameWidth:function(sides,onlyContentBox){return onlyContentBox&&this.isBorderBox()?0:(this.getPadding(sides)+this.getBorderWidth(sides))},addClsOnOver:function(className){var dom=this.dom;this.hover(function(){Ext.fly(dom,INTERNAL).addCls(className)},function(){Ext.fly(dom,INTERNAL).removeCls(className)});return this},addClsOnFocus:function(className){var me=this,dom=me.dom;me.on("focus",function(){Ext.fly(dom,INTERNAL).addCls(className)});me.on("blur",function(){Ext.fly(dom,INTERNAL).removeCls(className)});return me},addClsOnClick:function(className){var dom=this.dom;this.on("mousedown",function(){Ext.fly(dom,INTERNAL).addCls(className);var d=Ext.getDoc(),fn=function(){Ext.fly(dom,INTERNAL).removeCls(className);d.removeListener("mouseup",fn)};d.on("mouseup",fn)});return this},getViewSize:function(){var me=this,dom=me.dom,isDoc=(dom==Ext.getDoc().dom||dom==Ext.getBody().dom),style,overflow,ret;if(isDoc){ret={width:ELEMENT.getViewWidth(),height:ELEMENT.getViewHeight()}}else{if(Ext.isIE6||Ext.isIEQuirks){style=dom.style;overflow=style.overflow;me.setStyle({overflow:"hidden"})}ret={width:dom.clientWidth,height:dom.clientHeight};if(Ext.isIE6||Ext.isIEQuirks){me.setStyle({overflow:overflow})}}return ret},getStyleSize:function(){var me=this,doc=document,d=this.dom,isDoc=(d==doc||d==doc.body),s=d.style,w,h;if(isDoc){return{width:ELEMENT.getViewWidth(),height:ELEMENT.getViewHeight()}}if(s.width&&s.width!="auto"){w=parseFloat(s.width);if(me.isBorderBox()){w-=me.getFrameWidth("lr")}}if(s.height&&s.height!="auto"){h=parseFloat(s.height);if(me.isBorderBox()){h-=me.getFrameWidth("tb")}}return{width:w||me.getWidth(true),height:h||me.getHeight(true)}},getSize:function(contentSize){return{width:this.getWidth(contentSize),height:this.getHeight(contentSize)}},repaint:function(){var dom=this.dom;this.addCls(Ext.baseCSSPrefix+"repaint");setTimeout(function(){Ext.fly(dom).removeCls(Ext.baseCSSPrefix+"repaint")},1);return this},selectable:function(){var me=this;me.dom.unselectable="off";me.on("selectstart",function(e){e.stopPropagation();return true});me.applyStyles("-moz-user-select: text; -khtml-user-select: text;");me.removeCls(Ext.baseCSSPrefix+"unselectable");return me},unselectable:function(){var me=this;me.dom.unselectable="on";me.swallowEvent("selectstart",true);me.applyStyles("-moz-user-select:-moz-none;-khtml-user-select:none;");me.addCls(Ext.baseCSSPrefix+"unselectable");return me},getMargin:function(side){var me=this,hash={t:"top",l:"left",r:"right",b:"bottom"},o={},key;if(!side){for(key in me.margins){o[hash[key]]=parseFloat(me.getStyle(me.margins[key]))||0}return o}else{return me.addStyles.call(me,side,me.margins)}}})})();Ext.Element.VISIBILITY=1;Ext.Element.DISPLAY=2;Ext.Element.OFFSETS=3;Ext.Element.ASCLASS=4;Ext.Element.visibilityCls=Ext.baseCSSPrefix+"hide-nosize";Ext.Element.addMethods(function(){var El=Ext.Element,OPACITY="opacity",VISIBILITY="visibility",DISPLAY="display",HIDDEN="hidden",OFFSETS="offsets",ASCLASS="asclass",NONE="none",NOSIZE="nosize",ORIGINALDISPLAY="originalDisplay",VISMODE="visibilityMode",ISVISIBLE="isVisible",data=El.data,getDisplay=function(dom){var d=data(dom,ORIGINALDISPLAY);if(d===undefined){data(dom,ORIGINALDISPLAY,d="")}return d},getVisMode=function(dom){var m=data(dom,VISMODE);if(m===undefined){data(dom,VISMODE,m=1)}return m};return{originalDisplay:"",visibilityMode:1,setVisibilityMode:function(visMode){data(this.dom,VISMODE,visMode);return this},isVisible:function(){var me=this,dom=me.dom,visible=data(dom,ISVISIBLE);if(typeof visible=="boolean"){return visible}visible=!me.isStyle(VISIBILITY,HIDDEN)&&!me.isStyle(DISPLAY,NONE)&&!((getVisMode(dom)==El.ASCLASS)&&me.hasCls(me.visibilityCls||El.visibilityCls));data(dom,ISVISIBLE,visible);return visible},setVisible:function(visible,animate){var me=this,isDisplay,isVisibility,isOffsets,isNosize,dom=me.dom,visMode=getVisMode(dom);if(typeof animate=="string"){switch(animate){case DISPLAY:visMode=El.DISPLAY;break;case VISIBILITY:visMode=El.VISIBILITY;break;case OFFSETS:visMode=El.OFFSETS;break;case NOSIZE:case ASCLASS:visMode=El.ASCLASS;break}me.setVisibilityMode(visMode);animate=false}if(!animate||!me.anim){if(visMode==El.ASCLASS){me[visible?"removeCls":"addCls"](me.visibilityCls||El.visibilityCls)}else{if(visMode==El.DISPLAY){return me.setDisplayed(visible)}else{if(visMode==El.OFFSETS){if(!visible){if(!me.hideModeStyles){me.hideModeStyles={position:me.getStyle("position"),top:me.getStyle("top"),left:me.getStyle("left")}}me.applyStyles({position:"absolute",top:"-10000px",left:"-10000px"})}else{if(me.hideModeStyles){me.applyStyles(me.hideModeStyles||{position:"",top:"",left:""});delete me.hideModeStyles}}}else{me.fixDisplay();dom.style.visibility=visible?"":HIDDEN}}}}else{if(visible){me.setOpacity(0.01);me.setVisible(true)}if(!Ext.isObject(animate)){animate={duration:350,easing:"ease-in"}}me.animate(Ext.applyIf({callback:function(){visible||me.setVisible(false).setOpacity(1)},to:{opacity:(visible)?1:0}},animate))}data(dom,ISVISIBLE,visible);return me},hasMetrics:function(){var dom=this.dom;return this.isVisible()||(getVisMode(dom)==El.OFFSETS)||(getVisMode(dom)==El.VISIBILITY)},toggle:function(animate){var me=this;me.setVisible(!me.isVisible(),me.anim(animate));return me},setDisplayed:function(value){if(typeof value=="boolean"){value=value?getDisplay(this.dom):NONE}this.setStyle(DISPLAY,value);return this},fixDisplay:function(){var me=this;if(me.isStyle(DISPLAY,NONE)){me.setStyle(VISIBILITY,HIDDEN);me.setStyle(DISPLAY,getDisplay(this.dom));if(me.isStyle(DISPLAY,NONE)){me.setStyle(DISPLAY,"block")}}},hide:function(animate){if(typeof animate=="string"){this.setVisible(false,animate);return this}this.setVisible(false,this.anim(animate));return this},show:function(animate){if(typeof animate=="string"){this.setVisible(true,animate);return this}this.setVisible(true,this.anim(animate));return this}}}());Ext.applyIf(Ext.Element.prototype,{animate:function(config){var me=this;if(!me.id){me=Ext.get(me.dom)}if(Ext.fx.Manager.hasFxBlock(me.id)){return me}Ext.fx.Manager.queueFx(Ext.create("Ext.fx.Anim",me.anim(config)));return this},anim:function(config){if(!Ext.isObject(config)){return(config)?{}:false}var me=this,duration=config.duration||Ext.fx.Anim.prototype.duration,easing=config.easing||"ease",animConfig;if(config.stopAnimation){me.stopAnimation()}Ext.applyIf(config,Ext.fx.Manager.getFxDefaults(me.id));Ext.fx.Manager.setFxDefaults(me.id,{delay:0});animConfig={target:me,remove:config.remove,alternate:config.alternate||false,duration:duration,easing:easing,callback:config.callback,listeners:config.listeners,iterations:config.iterations||1,scope:config.scope,block:config.block,concurrent:config.concurrent,delay:config.delay||0,paused:true,keyframes:config.keyframes,from:config.from||{},to:Ext.apply({},config)};Ext.apply(animConfig.to,config.to);delete animConfig.to.to;delete animConfig.to.from;delete animConfig.to.remove;delete animConfig.to.alternate;delete animConfig.to.keyframes;delete animConfig.to.iterations;delete animConfig.to.listeners;delete animConfig.to.target;delete animConfig.to.paused;delete animConfig.to.callback;delete animConfig.to.scope;delete animConfig.to.duration;delete animConfig.to.easing;delete animConfig.to.concurrent;delete animConfig.to.block;delete animConfig.to.stopAnimation;delete animConfig.to.delay;return animConfig},slideIn:function(anchor,obj,slideOut){var me=this,elStyle=me.dom.style,beforeAnim,wrapAnim;anchor=anchor||"t";obj=obj||{};beforeAnim=function(){var animScope=this,listeners=obj.listeners,box,position,restoreSize,wrap,anim;if(!slideOut){me.fixDisplay()}box=me.getBox();if((anchor=="t"||anchor=="b")&&box.height===0){box.height=me.dom.scrollHeight}else{if((anchor=="l"||anchor=="r")&&box.width===0){box.width=me.dom.scrollWidth}}position=me.getPositioning();me.setSize(box.width,box.height);wrap=me.wrap({style:{visibility:slideOut?"visible":"hidden"}});wrap.setPositioning(position);if(wrap.isStyle("position","static")){wrap.position("relative")}me.clearPositioning("auto");wrap.clip();me.setStyle({visibility:"",position:"absolute"});if(slideOut){wrap.setSize(box.width,box.height)}switch(anchor){case"t":anim={from:{width:box.width+"px",height:"0px"},to:{width:box.width+"px",height:box.height+"px"}};elStyle.bottom="0px";break;case"l":anim={from:{width:"0px",height:box.height+"px"},to:{width:box.width+"px",height:box.height+"px"}};elStyle.right="0px";break;case"r":anim={from:{x:box.x+box.width,width:"0px",height:box.height+"px"},to:{x:box.x,width:box.width+"px",height:box.height+"px"}};break;case"b":anim={from:{y:box.y+box.height,width:box.width+"px",height:"0px"},to:{y:box.y,width:box.width+"px",height:box.height+"px"}};break;case"tl":anim={from:{x:box.x,y:box.y,width:"0px",height:"0px"},to:{width:box.width+"px",height:box.height+"px"}};elStyle.bottom="0px";elStyle.right="0px";break;case"bl":anim={from:{x:box.x+box.width,width:"0px",height:"0px"},to:{x:box.x,width:box.width+"px",height:box.height+"px"}};elStyle.right="0px";break;case"br":anim={from:{x:box.x+box.width,y:box.y+box.height,width:"0px",height:"0px"},to:{x:box.x,y:box.y,width:box.width+"px",height:box.height+"px"}};break;case"tr":anim={from:{y:box.y+box.height,width:"0px",height:"0px"},to:{y:box.y,width:box.width+"px",height:box.height+"px"}};elStyle.bottom="0px";break}wrap.show();wrapAnim=Ext.apply({},obj);delete wrapAnim.listeners;wrapAnim=Ext.create("Ext.fx.Anim",Ext.applyIf(wrapAnim,{target:wrap,duration:500,easing:"ease-out",from:slideOut?anim.to:anim.from,to:slideOut?anim.from:anim.to}));wrapAnim.on("afteranimate",function(){if(slideOut){me.setPositioning(position);if(obj.useDisplay){me.setDisplayed(false)}else{me.hide()}}else{me.clearPositioning();me.setPositioning(position)}if(wrap.dom){wrap.dom.parentNode.insertBefore(me.dom,wrap.dom);wrap.remove()}me.setSize(box.width,box.height);animScope.end()});if(listeners){wrapAnim.on(listeners)}};me.animate({duration:obj.duration?obj.duration*2:1000,listeners:{beforeanimate:{fn:beforeAnim},afteranimate:{fn:function(){if(wrapAnim&&wrapAnim.running){wrapAnim.end()}}}}});return me},slideOut:function(anchor,o){return this.slideIn(anchor,o,true)},puff:function(obj){var me=this,beforeAnim;obj=Ext.applyIf(obj||{},{easing:"ease-out",duration:500,useDisplay:false});beforeAnim=function(){me.clearOpacity();me.show();var box=me.getBox(),fontSize=me.getStyle("fontSize"),position=me.getPositioning();this.to={width:box.width*2,height:box.height*2,x:box.x-(box.width/2),y:box.y-(box.height/2),opacity:0,fontSize:"200%"};this.on("afteranimate",function(){if(me.dom){if(obj.useDisplay){me.setDisplayed(false)}else{me.hide()}me.clearOpacity();me.setPositioning(position);me.setStyle({fontSize:fontSize})}})};me.animate({duration:obj.duration,easing:obj.easing,listeners:{beforeanimate:{fn:beforeAnim}}});return me},switchOff:function(obj){var me=this,beforeAnim;obj=Ext.applyIf(obj||{},{easing:"ease-in",duration:500,remove:false,useDisplay:false});beforeAnim=function(){var animScope=this,size=me.getSize(),xy=me.getXY(),keyframe,position;me.clearOpacity();me.clip();position=me.getPositioning();keyframe=Ext.create("Ext.fx.Animator",{target:me,duration:obj.duration,easing:obj.easing,keyframes:{33:{opacity:0.3},66:{height:1,y:xy[1]+size.height/2},100:{width:1,x:xy[0]+size.width/2}}});keyframe.on("afteranimate",function(){if(obj.useDisplay){me.setDisplayed(false)}else{me.hide()}me.clearOpacity();me.setPositioning(position);me.setSize(size);animScope.end()})};me.animate({duration:(obj.duration*2),listeners:{beforeanimate:{fn:beforeAnim}}});return me},frame:function(color,count,obj){var me=this,beforeAnim;color=color||"#C3DAF9";count=count||1;obj=obj||{};beforeAnim=function(){me.show();var animScope=this,box=me.getBox(),proxy=Ext.getBody().createChild({style:{position:"absolute","pointer-events":"none","z-index":35000,border:"0px solid "+color}}),proxyAnim;proxyAnim=Ext.create("Ext.fx.Anim",{target:proxy,duration:obj.duration||1000,iterations:count,from:{top:box.y,left:box.x,borderWidth:0,opacity:1,height:box.height,width:box.width},to:{top:box.y-20,left:box.x-20,borderWidth:10,opacity:0,height:box.height+40,width:box.width+40}});proxyAnim.on("afteranimate",function(){proxy.remove();animScope.end()})};me.animate({duration:(obj.duration*2)||2000,listeners:{beforeanimate:{fn:beforeAnim}}});return me},ghost:function(anchor,obj){var me=this,beforeAnim;anchor=anchor||"b";beforeAnim=function(){var width=me.getWidth(),height=me.getHeight(),xy=me.getXY(),position=me.getPositioning(),to={opacity:0};switch(anchor){case"t":to.y=xy[1]-height;break;case"l":to.x=xy[0]-width;break;case"r":to.x=xy[0]+width;break;case"b":to.y=xy[1]+height;break;case"tl":to.x=xy[0]-width;to.y=xy[1]-height;break;case"bl":to.x=xy[0]-width;to.y=xy[1]+height;break;case"br":to.x=xy[0]+width;to.y=xy[1]+height;break;case"tr":to.x=xy[0]+width;to.y=xy[1]-height;break}this.to=to;this.on("afteranimate",function(){if(me.dom){me.hide();me.clearOpacity();me.setPositioning(position)}})};me.animate(Ext.applyIf(obj||{},{duration:500,easing:"ease-out",listeners:{beforeanimate:{fn:beforeAnim}}}));return me},highlight:function(color,o){var me=this,dom=me.dom,from={},restore,to,attr,lns,event,fn;o=o||{};lns=o.listeners||{};attr=o.attr||"backgroundColor";from[attr]=color||"ffff9c";if(!o.to){to={};to[attr]=o.endColor||me.getColor(attr,"ffffff","")}else{to=o.to}o.listeners=Ext.apply(Ext.apply({},lns),{beforeanimate:function(){restore=dom.style[attr];me.clearOpacity();me.show();event=lns.beforeanimate;if(event){fn=event.fn||event;return fn.apply(event.scope||lns.scope||window,arguments)}},afteranimate:function(){if(dom){dom.style[attr]=restore}event=lns.afteranimate;if(event){fn=event.fn||event;fn.apply(event.scope||lns.scope||window,arguments)}}});me.animate(Ext.apply({},o,{duration:1000,easing:"ease-in",from:from,to:to}));return me},pause:function(ms){var me=this;Ext.fx.Manager.setFxDefaults(me.id,{delay:ms});return me},fadeIn:function(o){this.animate(Ext.apply({},o,{opacity:1}));return this},fadeOut:function(o){this.animate(Ext.apply({},o,{opacity:0}));return this},scale:function(w,h,o){this.animate(Ext.apply({},o,{width:w,height:h}));return this},shift:function(config){this.animate(config);return this}});Ext.applyIf(Ext.Element,{unitRe:/\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i,camelRe:/(-[a-z])/gi,opacityRe:/alpha\(opacity=(.*)\)/i,cssRe:/([a-z0-9-]+)\s*:\s*([^;\s]+(?:\s*[^;\s]+)*);?/gi,propertyCache:{},defaultUnit:"px",borders:{l:"border-left-width",r:"border-right-width",t:"border-top-width",b:"border-bottom-width"},paddings:{l:"padding-left",r:"padding-right",t:"padding-top",b:"padding-bottom"},margins:{l:"margin-left",r:"margin-right",t:"margin-top",b:"margin-bottom"},addUnits:Ext.Element.prototype.addUnits,parseBox:function(box){if(Ext.isObject(box)){return{top:box.top||0,right:box.right||0,bottom:box.bottom||0,left:box.left||0}}else{if(typeof box!="string"){box=box.toString()}var parts=box.split(" "),ln=parts.length;if(ln==1){parts[1]=parts[2]=parts[3]=parts[0]}else{if(ln==2){parts[2]=parts[0];parts[3]=parts[1]}else{if(ln==3){parts[3]=parts[1]}}}return{top:parseFloat(parts[0])||0,right:parseFloat(parts[1])||0,bottom:parseFloat(parts[2])||0,left:parseFloat(parts[3])||0}}},unitizeBox:function(box,units){var A=this.addUnits,B=this.parseBox(box);return A(B.top,units)+" "+A(B.right,units)+" "+A(B.bottom,units)+" "+A(B.left,units)},camelReplaceFn:function(m,a){return a.charAt(1).toUpperCase()},normalize:function(prop){if(prop=="float"){prop=Ext.supports.Float?"cssFloat":"styleFloat"}return this.propertyCache[prop]||(this.propertyCache[prop]=prop.replace(this.camelRe,this.camelReplaceFn))},getDocumentHeight:function(){return Math.max(!Ext.isStrict?document.body.scrollHeight:document.documentElement.scrollHeight,this.getViewportHeight())},getDocumentWidth:function(){return Math.max(!Ext.isStrict?document.body.scrollWidth:document.documentElement.scrollWidth,this.getViewportWidth())},getViewportHeight:function(){return window.innerHeight},getViewportWidth:function(){return window.innerWidth},getViewSize:function(){return{width:window.innerWidth,height:window.innerHeight}},getOrientation:function(){if(Ext.supports.OrientationChange){return(window.orientation==0)?"portrait":"landscape"}return(window.innerHeight>window.innerWidth)?"portrait":"landscape"},fromPoint:function(x,y){return Ext.get(document.elementFromPoint(x,y))},parseStyles:function(styles){var out={},cssRe=this.cssRe,matches;if(styles){cssRe.lastIndex=0;while((matches=cssRe.exec(styles))){out[matches[1]]=matches[2]}}return out}});Ext.CompositeElementLite=function(els,root){this.elements=[];this.add(els,root);this.el=new Ext.Element.Flyweight()};Ext.CompositeElementLite.prototype={isComposite:true,getElement:function(el){var e=this.el;e.dom=el;e.id=el.id;return e},transformElement:function(el){return Ext.getDom(el)},getCount:function(){return this.elements.length},add:function(els,root){var me=this,elements=me.elements;if(!els){return this}if(typeof els=="string"){els=Ext.Element.selectorFunction(els,root)}else{if(els.isComposite){els=els.elements}else{if(!Ext.isIterable(els)){els=[els]}}}for(var i=0,len=els.length;i<len;++i){elements.push(me.transformElement(els[i]))}return me},invoke:function(fn,args){var me=this,els=me.elements,len=els.length,e,i;for(i=0;i<len;i++){e=els[i];if(e){Ext.Element.prototype[fn].apply(me.getElement(e),args)}}return me},item:function(index){var me=this,el=me.elements[index],out=null;if(el){out=me.getElement(el)}return out},addListener:function(eventName,handler,scope,opt){var els=this.elements,len=els.length,i,e;for(i=0;i<len;i++){e=els[i];if(e){Ext.EventManager.on(e,eventName,handler,scope||e,opt)}}return this},each:function(fn,scope){var me=this,els=me.elements,len=els.length,i,e;for(i=0;i<len;i++){e=els[i];if(e){e=this.getElement(e);if(fn.call(scope||e,e,me,i)===false){break}}}return me},fill:function(els){var me=this;me.elements=[];me.add(els);return me},filter:function(selector){var els=[],me=this,fn=Ext.isFunction(selector)?selector:function(el){return el.is(selector)};me.each(function(el,self,i){if(fn(el,i)!==false){els[els.length]=me.transformElement(el)}});me.elements=els;return me},indexOf:function(el){return Ext.Array.indexOf(this.elements,this.transformElement(el))},replaceElement:function(el,replacement,domReplace){var index=!isNaN(el)?el:this.indexOf(el),d;if(index>-1){replacement=Ext.getDom(replacement);if(domReplace){d=this.elements[index];d.parentNode.insertBefore(replacement,d);Ext.removeNode(d)}Ext.Array.splice(this.elements,index,1,replacement)}return this},clear:function(){this.elements=[]}};Ext.CompositeElementLite.prototype.on=Ext.CompositeElementLite.prototype.addListener;Ext.CompositeElementLite.importElementMethods=function(){var fnName,ElProto=Ext.Element.prototype,CelProto=Ext.CompositeElementLite.prototype;for(fnName in ElProto){if(typeof ElProto[fnName]=="function"){(function(fnName){CelProto[fnName]=CelProto[fnName]||function(){return this.invoke(fnName,arguments)}}).call(CelProto,fnName)}}};Ext.CompositeElementLite.importElementMethods();if(Ext.DomQuery){Ext.Element.selectorFunction=Ext.DomQuery.select}Ext.Element.select=function(selector,root){var els;if(typeof selector=="string"){els=Ext.Element.selectorFunction(selector,root)}else{if(selector.length!==undefined){els=selector}else{}}return new Ext.CompositeElementLite(els)};Ext.select=Ext.Element.select;Ext.util.DelayedTask=function(fn,scope,args){var me=this,id,call=function(){clearInterval(id);id=null;fn.apply(scope,args||[])};this.delay=function(delay,newFn,newScope,newArgs){me.cancel();fn=newFn||fn;scope=newScope||scope;args=newArgs||args;id=setInterval(call,delay)};this.cancel=function(){if(id){clearInterval(id);id=null}}};Ext.require("Ext.util.DelayedTask",function(){Ext.util.Event=Ext.extend(Object,(function(){function createBuffered(handler,listener,o,scope){listener.task=new Ext.util.DelayedTask();return function(){listener.task.delay(o.buffer,handler,scope,Ext.Array.toArray(arguments))}}function createDelayed(handler,listener,o,scope){return function(){var task=new Ext.util.DelayedTask();if(!listener.tasks){listener.tasks=[]}listener.tasks.push(task);task.delay(o.delay||10,handler,scope,Ext.Array.toArray(arguments))}}function createSingle(handler,listener,o,scope){return function(){listener.ev.removeListener(listener.fn,scope);return handler.apply(scope,arguments)}}return{isEvent:true,constructor:function(observable,name){this.name=name;this.observable=observable;this.listeners=[]},addListener:function(fn,scope,options){var me=this,listener;scope=scope||me.observable;if(!me.isListening(fn,scope)){listener=me.createListener(fn,scope,options);if(me.firing){me.listeners=me.listeners.slice(0)}me.listeners.push(listener)}},createListener:function(fn,scope,o){o=o||{};scope=scope||this.observable;var listener={fn:fn,scope:scope,o:o,ev:this},handler=fn;if(o.single){handler=createSingle(handler,listener,o,scope)}if(o.delay){handler=createDelayed(handler,listener,o,scope)}if(o.buffer){handler=createBuffered(handler,listener,o,scope)}listener.fireFn=handler;return listener},findListener:function(fn,scope){var listeners=this.listeners,i=listeners.length,listener,s;while(i--){listener=listeners[i];if(listener){s=listener.scope;if(listener.fn==fn&&(s==scope||s==this.observable)){return i}}}return -1},isListening:function(fn,scope){return this.findListener(fn,scope)!==-1},removeListener:function(fn,scope){var me=this,index,listener,k;index=me.findListener(fn,scope);if(index!=-1){listener=me.listeners[index];if(me.firing){me.listeners=me.listeners.slice(0)}if(listener.task){listener.task.cancel();delete listener.task}k=listener.tasks&&listener.tasks.length;if(k){while(k--){listener.tasks[k].cancel()}delete listener.tasks}Ext.Array.erase(me.listeners,index,1);return true}return false},clearListeners:function(){var listeners=this.listeners,i=listeners.length;while(i--){this.removeListener(listeners[i].fn,listeners[i].scope)}},fire:function(){var me=this,listeners=me.listeners,count=listeners.length,i,args,listener;if(count>0){me.firing=true;for(i=0;i<count;i++){listener=listeners[i];args=arguments.length?Array.prototype.slice.call(arguments,0):[];if(listener.o){args.push(listener.o)}if(listener&&listener.fireFn.apply(listener.scope||me.observable,args)===false){return(me.firing=false)}}}me.firing=false;return true}}})())});Ext.EventManager={hasBoundOnReady:false,hasFiredReady:false,readyTimeout:null,hasOnReadyStateChange:false,readyEvent:new Ext.util.Event(),checkReadyState:function(){var me=Ext.EventManager;if(window.attachEvent){if(window!=top){return false}try{document.documentElement.doScroll("left")}catch(e){return false}me.fireDocReady();return true}if(document.readyState=="complete"){me.fireDocReady();return true}me.readyTimeout=setTimeout(arguments.callee,2);return false},bindReadyEvent:function(){var me=Ext.EventManager;if(me.hasBoundOnReady){return}if(document.addEventListener){document.addEventListener("DOMContentLoaded",me.fireDocReady,false);window.addEventListener("load",me.fireDocReady,false)}else{if(!me.checkReadyState()){document.attachEvent("onreadystatechange",me.checkReadyState);me.hasOnReadyStateChange=true}window.attachEvent("onload",me.fireDocReady,false)}me.hasBoundOnReady=true},fireDocReady:function(){var me=Ext.EventManager;if(!me.hasFiredReady){me.hasFiredReady=true;if(document.addEventListener){document.removeEventListener("DOMContentLoaded",me.fireDocReady,false);window.removeEventListener("load",me.fireDocReady,false)}else{if(me.readyTimeout!==null){clearTimeout(me.readyTimeout)}if(me.hasOnReadyStateChange){document.detachEvent("onreadystatechange",me.checkReadyState)}window.detachEvent("onload",me.fireDocReady)}Ext.supports.init()}if(!Ext.isReady){Ext.isReady=true;me.onWindowUnload();me.readyEvent.fire()}},onDocumentReady:function(fn,scope,options){options=options||{};var me=Ext.EventManager,readyEvent=me.readyEvent;options.single=true;if(Ext.isReady){readyEvent.addListener(fn,scope,options);readyEvent.fire()}else{options.delay=options.delay||1;readyEvent.addListener(fn,scope,options);me.bindReadyEvent()}},stoppedMouseDownEvent:new Ext.util.Event(),propRe:/^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate|freezeEvent)$/,getId:function(element){var skipGarbageCollection=false,id;element=Ext.getDom(element);if(element===document||element===window){id=element===document?Ext.documentId:Ext.windowId}else{id=Ext.id(element)}if(element&&(element.getElementById||element.navigator)){skipGarbageCollection=true}if(!Ext.cache[id]){Ext.Element.addToCache(new Ext.Element(element),id);if(skipGarbageCollection){Ext.cache[id].skipGarbageCollection=true}}return id},prepareListenerConfig:function(element,config,isRemove){var me=this,propRe=me.propRe,key,value,args;for(key in config){if(config.hasOwnProperty(key)){if(!propRe.test(key)){value=config[key];if(Ext.isFunction(value)){args=[element,key,value,config.scope,config]}else{args=[element,key,value.fn,value.scope,value]}if(isRemove===true){me.removeListener.apply(this,args)}else{me.addListener.apply(me,args)}}}}},normalizeEvent:function(eventName,fn){if(/mouseenter|mouseleave/.test(eventName)&&!Ext.supports.MouseEnterLeave){if(fn){fn=Ext.Function.createInterceptor(fn,this.contains,this)}eventName=eventName=="mouseenter"?"mouseover":"mouseout"}else{if(eventName=="mousewheel"&&!Ext.supports.MouseWheel&&!Ext.isOpera){eventName="DOMMouseScroll"}}return{eventName:eventName,fn:fn}},contains:function(event){var parent=event.browserEvent.currentTarget,child=this.getRelatedTarget(event);if(parent&&parent.firstChild){while(child){if(child===parent){return false}child=child.parentNode;if(child&&(child.nodeType!=1)){child=null}}}return true},addListener:function(element,eventName,fn,scope,options){if(typeof eventName!=="string"){this.prepareListenerConfig(element,eventName);return}var dom=Ext.getDom(element),bind,wrap;options=options||{};bind=this.normalizeEvent(eventName,fn);wrap=this.createListenerWrap(dom,eventName,bind.fn,scope,options);if(dom.attachEvent){dom.attachEvent("on"+bind.eventName,wrap)}else{dom.addEventListener(bind.eventName,wrap,options.capture||false)}if(dom==document&&eventName=="mousedown"){this.stoppedMouseDownEvent.addListener(wrap)}this.getEventListenerCache(dom,eventName).push({fn:fn,wrap:wrap,scope:scope})},removeListener:function(element,eventName,fn,scope){if(typeof eventName!=="string"){this.prepareListenerConfig(element,eventName,true);return}var dom=Ext.getDom(element),cache=this.getEventListenerCache(dom,eventName),bindName=this.normalizeEvent(eventName).eventName,i=cache.length,j,listener,wrap,tasks;while(i--){listener=cache[i];if(listener&&(!fn||listener.fn==fn)&&(!scope||listener.scope===scope)){wrap=listener.wrap;if(wrap.task){clearTimeout(wrap.task);delete wrap.task}j=wrap.tasks&&wrap.tasks.length;if(j){while(j--){clearTimeout(wrap.tasks[j])}delete wrap.tasks}if(dom.detachEvent){dom.detachEvent("on"+bindName,wrap)}else{dom.removeEventListener(bindName,wrap,false)}if(wrap&&dom==document&&eventName=="mousedown"){this.stoppedMouseDownEvent.removeListener(wrap)}Ext.Array.erase(cache,i,1)}}},removeAll:function(element){var dom=Ext.getDom(element),cache,ev;if(!dom){return}cache=this.getElementEventCache(dom);for(ev in cache){if(cache.hasOwnProperty(ev)){this.removeListener(dom,ev)}}Ext.cache[dom.id].events={}},purgeElement:function(element,eventName){var dom=Ext.getDom(element),i=0,len;if(eventName){this.removeListener(dom,eventName)}else{this.removeAll(dom)}if(dom&&dom.childNodes){for(len=element.childNodes.length;i<len;i++){this.purgeElement(element.childNodes[i],eventName)}}},createListenerWrap:function(dom,ename,fn,scope,options){options=options||{};var f,gen;return function wrap(e,args){if(!gen){f=["if(!Ext) {return;}"];if(options.buffer||options.delay||options.freezeEvent){f.push("e = new Ext.EventObjectImpl(e, "+(options.freezeEvent?"true":"false")+");")}else{f.push("e = Ext.EventObject.setEvent(e);")}if(options.delegate){f.push('var t = e.getTarget("'+options.delegate+'", this);');f.push("if(!t) {return;}")}else{f.push("var t = e.target;")}if(options.target){f.push("if(e.target !== options.target) {return;}")}if(options.stopEvent){f.push("e.stopEvent();")}else{if(options.preventDefault){f.push("e.preventDefault();")}if(options.stopPropagation){f.push("e.stopPropagation();")}}if(options.normalized===false){f.push("e = e.browserEvent;")}if(options.buffer){f.push("(wrap.task && clearTimeout(wrap.task));");f.push("wrap.task = setTimeout(function(){")}if(options.delay){f.push("wrap.tasks = wrap.tasks || [];");f.push("wrap.tasks.push(setTimeout(function(){")}f.push("fn.call(scope || dom, e, t, options);");if(options.single){f.push("Ext.EventManager.removeListener(dom, ename, fn, scope);")}if(options.delay){f.push("}, "+options.delay+"));")}if(options.buffer){f.push("}, "+options.buffer+");")}gen=Ext.functionFactory("e","options","fn","scope","ename","dom","wrap","args",f.join("\n"))}gen.call(dom,e,options,fn,scope,ename,dom,wrap,args)}},getEventListenerCache:function(element,eventName){if(!element){return[]}var eventCache=this.getElementEventCache(element);return eventCache[eventName]||(eventCache[eventName]=[])},getElementEventCache:function(element){if(!element){return{}}var elementCache=Ext.cache[this.getId(element)];return elementCache.events||(elementCache.events={})},mouseLeaveRe:/(mouseout|mouseleave)/,mouseEnterRe:/(mouseover|mouseenter)/,stopEvent:function(event){this.stopPropagation(event);this.preventDefault(event)},stopPropagation:function(event){event=event.browserEvent||event;if(event.stopPropagation){event.stopPropagation()}else{event.cancelBubble=true}},preventDefault:function(event){event=event.browserEvent||event;if(event.preventDefault){event.preventDefault()}else{event.returnValue=false;try{if(event.ctrlKey||event.keyCode>111&&event.keyCode<124){event.keyCode=-1}}catch(e){}}},getRelatedTarget:function(event){event=event.browserEvent||event;var target=event.relatedTarget;if(!target){if(this.mouseLeaveRe.test(event.type)){target=event.toElement}else{if(this.mouseEnterRe.test(event.type)){target=event.fromElement}}}return this.resolveTextNode(target)},getPageX:function(event){return this.getXY(event)[0]},getPageY:function(event){return this.getXY(event)[1]},getPageXY:function(event){event=event.browserEvent||event;var x=event.pageX,y=event.pageY,doc=document.documentElement,body=document.body;if(!x&&x!==0){x=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc&&doc.clientLeft||body&&body.clientLeft||0);y=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc&&doc.clientTop||body&&body.clientTop||0)}return[x,y]},getTarget:function(event){event=event.browserEvent||event;return this.resolveTextNode(event.target||event.srcElement)},resolveTextNode:Ext.isGecko?function(node){if(!node){return}var s=HTMLElement.prototype.toString.call(node);if(s=="[xpconnect wrapped native prototype]"||s=="[object XULElement]"){return}return node.nodeType==3?node.parentNode:node}:function(node){return node&&node.nodeType==3?node.parentNode:node},curWidth:0,curHeight:0,onWindowResize:function(fn,scope,options){var resize=this.resizeEvent;if(!resize){this.resizeEvent=resize=new Ext.util.Event();this.on(window,"resize",this.fireResize,this,{buffer:100})}resize.addListener(fn,scope,options)},fireResize:function(){var me=this,w=Ext.Element.getViewWidth(),h=Ext.Element.getViewHeight();if(me.curHeight!=h||me.curWidth!=w){me.curHeight=h;me.curWidth=w;me.resizeEvent.fire(w,h)}},removeResizeListener:function(fn,scope){if(this.resizeEvent){this.resizeEvent.removeListener(fn,scope)}},onWindowUnload:function(){var unload=this.unloadEvent;if(!unload){this.unloadEvent=unload=new Ext.util.Event();this.addListener(window,"unload",this.fireUnload,this)}},fireUnload:function(){try{this.removeUnloadListener();if(Ext.isGecko3){var gridviews=Ext.ComponentQuery.query("gridview"),i=0,ln=gridviews.length;for(;i<ln;i++){gridviews[i].scrollToTop()}}var el,cache=Ext.cache;for(el in cache){if(cache.hasOwnProperty(el)){Ext.EventManager.removeAll(el)}}}catch(e){}},removeUnloadListener:function(){if(this.unloadEvent){this.removeListener(window,"unload",this.fireUnload)}},useKeyDown:Ext.isWebKit?parseInt(navigator.userAgent.match(/AppleWebKit\/(\d+)/)[1],10)>=525:!((Ext.isGecko&&!Ext.isWindows)||Ext.isOpera),getKeyEvent:function(){return this.useKeyDown?"keydown":"keypress"}};Ext.onReady=function(fn,scope,options){Ext.Loader.onReady(fn,scope,true,options)};Ext.onDocumentReady=Ext.EventManager.onDocumentReady;Ext.EventManager.on=Ext.EventManager.addListener;Ext.EventManager.un=Ext.EventManager.removeListener;(function(){var initExtCss=function(){var bd=document.body||document.getElementsByTagName("body")[0],baseCSSPrefix=Ext.baseCSSPrefix,cls=[baseCSSPrefix+"body"],htmlCls=[],html;if(!bd){return false}html=bd.parentNode;function add(c){cls.push(baseCSSPrefix+c)}if(Ext.isIE){add("ie");if(Ext.isIE6){add("ie6")}else{add("ie7p");if(Ext.isIE7){add("ie7")}else{add("ie8p");if(Ext.isIE8){add("ie8")}else{add("ie9p");if(Ext.isIE9){add("ie9")}}}}if(Ext.isIE6||Ext.isIE7){add("ie7m")}if(Ext.isIE6||Ext.isIE7||Ext.isIE8){add("ie8m")}if(Ext.isIE7||Ext.isIE8){add("ie78")}}if(Ext.isGecko){add("gecko");if(Ext.isGecko3){add("gecko3")}if(Ext.isGecko4){add("gecko4")}if(Ext.isGecko5){add("gecko5")}}if(Ext.isOpera){add("opera")}if(Ext.isWebKit){add("webkit")}if(Ext.isSafari){add("safari");if(Ext.isSafari2){add("safari2")}if(Ext.isSafari3){add("safari3")}if(Ext.isSafari4){add("safari4")}if(Ext.isSafari5){add("safari5")}}if(Ext.isChrome){add("chrome")}if(Ext.isMac){add("mac")}if(Ext.isLinux){add("linux")}if(!Ext.supports.CSS3BorderRadius){add("nbr")}if(!Ext.supports.CSS3LinearGradient){add("nlg")}if(!Ext.scopeResetCSS){add("reset")}if(html){if(Ext.isStrict&&(Ext.isIE6||Ext.isIE7)){Ext.isBorderBox=false}else{Ext.isBorderBox=true}htmlCls.push(baseCSSPrefix+(Ext.isBorderBox?"border-box":"strict"));if(!Ext.isStrict){htmlCls.push(baseCSSPrefix+"quirks")}Ext.fly(html,"_internal").addCls(htmlCls)}Ext.fly(bd,"_internal").addCls(cls);return true};Ext.onReady(initExtCss)})();Ext.define("Ext.EventObjectImpl",{uses:["Ext.util.Point"],BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,RETURN:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,WHEEL_SCALE:(function(){var scale;if(Ext.isGecko){scale=3}else{if(Ext.isMac){if(Ext.isSafari&&Ext.webKitVersion>=532){scale=120}else{scale=12}scale*=3}else{scale=120}}return scale})(),clickRe:/(dbl)?click/,safariKeys:{3:13,63234:37,63235:39,63232:38,63233:40,63276:33,63277:34,63272:46,63273:36,63275:35},btnMap:Ext.isIE?{1:0,4:1,2:2}:{0:0,1:1,2:2},constructor:function(event,freezeEvent){if(event){this.setEvent(event.browserEvent||event,freezeEvent)}},setEvent:function(event,freezeEvent){var me=this,button,options;if(event==me||(event&&event.browserEvent)){return event}me.browserEvent=event;if(event){button=event.button?me.btnMap[event.button]:(event.which?event.which-1:-1);if(me.clickRe.test(event.type)&&button==-1){button=0}options={type:event.type,button:button,shiftKey:event.shiftKey,ctrlKey:event.ctrlKey||event.metaKey||false,altKey:event.altKey,keyCode:event.keyCode,charCode:event.charCode,target:Ext.EventManager.getTarget(event),relatedTarget:Ext.EventManager.getRelatedTarget(event),currentTarget:event.currentTarget,xy:(freezeEvent?me.getXY():null)}}else{options={button:-1,shiftKey:false,ctrlKey:false,altKey:false,keyCode:0,charCode:0,target:null,xy:[0,0]}}Ext.apply(me,options);return me},stopEvent:function(){this.stopPropagation();this.preventDefault()},preventDefault:function(){if(this.browserEvent){Ext.EventManager.preventDefault(this.browserEvent)}},stopPropagation:function(){var browserEvent=this.browserEvent;if(browserEvent){if(browserEvent.type=="mousedown"){Ext.EventManager.stoppedMouseDownEvent.fire(this)}Ext.EventManager.stopPropagation(browserEvent)}},getCharCode:function(){return this.charCode||this.keyCode},getKey:function(){return this.normalizeKey(this.keyCode||this.charCode)},normalizeKey:function(key){return Ext.isWebKit?(this.safariKeys[key]||key):key},getPageX:function(){return this.getX()},getPageY:function(){return this.getY()},getX:function(){return this.getXY()[0]},getY:function(){return this.getXY()[1]},getXY:function(){if(!this.xy){this.xy=Ext.EventManager.getPageXY(this.browserEvent)}return this.xy},getTarget:function(selector,maxDepth,returnEl){if(selector){return Ext.fly(this.target).findParent(selector,maxDepth,returnEl)}return returnEl?Ext.get(this.target):this.target},getRelatedTarget:function(selector,maxDepth,returnEl){if(selector){return Ext.fly(this.relatedTarget).findParent(selector,maxDepth,returnEl)}return returnEl?Ext.get(this.relatedTarget):this.relatedTarget},correctWheelDelta:function(delta){var scale=this.WHEEL_SCALE,ret=Math.round(delta/scale);if(!ret&&delta){ret=(delta<0)?-1:1}return ret},getWheelDeltas:function(){var me=this,event=me.browserEvent,dx=0,dy=0;if(Ext.isDefined(event.wheelDeltaX)){dx=event.wheelDeltaX;dy=event.wheelDeltaY}else{if(event.wheelDelta){dy=event.wheelDelta}else{if(event.detail){dy=-event.detail;if(dy>100){dy=3}else{if(dy<-100){dy=-3}}if(Ext.isDefined(event.axis)&&event.axis===event.HORIZONTAL_AXIS){dx=dy;dy=0}}}}return{x:me.correctWheelDelta(dx),y:me.correctWheelDelta(dy)}},getWheelDelta:function(){var deltas=this.getWheelDeltas();return deltas.y},within:function(el,related,allowEl){if(el){var t=related?this.getRelatedTarget():this.getTarget(),result;if(t){result=Ext.fly(el).contains(t);if(!result&&allowEl){result=t==Ext.getDom(el)}return result}}return false},isNavKeyPress:function(){var me=this,k=this.normalizeKey(me.keyCode);return(k>=33&&k<=40)||k==me.RETURN||k==me.TAB||k==me.ESC},isSpecialKey:function(){var k=this.normalizeKey(this.keyCode);return(this.type=="keypress"&&this.ctrlKey)||this.isNavKeyPress()||(k==this.BACKSPACE)||(k>=16&&k<=20)||(k>=44&&k<=46)},getPoint:function(){var xy=this.getXY();return Ext.create("Ext.util.Point",xy[0],xy[1])},hasModifier:function(){return this.ctrlKey||this.altKey||this.shiftKey||this.metaKey},injectEvent:function(){var API,dispatchers={};if(!Ext.isIE&&document.createEvent){API={createHtmlEvent:function(doc,type,bubbles,cancelable){var event=doc.createEvent("HTMLEvents");event.initEvent(type,bubbles,cancelable);return event},createMouseEvent:function(doc,type,bubbles,cancelable,detail,clientX,clientY,ctrlKey,altKey,shiftKey,metaKey,button,relatedTarget){var event=doc.createEvent("MouseEvents"),view=doc.defaultView||window;if(event.initMouseEvent){event.initMouseEvent(type,bubbles,cancelable,view,detail,clientX,clientY,clientX,clientY,ctrlKey,altKey,shiftKey,metaKey,button,relatedTarget)}else{event=doc.createEvent("UIEvents");event.initEvent(type,bubbles,cancelable);event.view=view;event.detail=detail;event.screenX=clientX;event.screenY=clientY;event.clientX=clientX;event.clientY=clientY;event.ctrlKey=ctrlKey;event.altKey=altKey;event.metaKey=metaKey;event.shiftKey=shiftKey;event.button=button;event.relatedTarget=relatedTarget}return event},createUIEvent:function(doc,type,bubbles,cancelable,detail){var event=doc.createEvent("UIEvents"),view=doc.defaultView||window;event.initUIEvent(type,bubbles,cancelable,view,detail);return event},fireEvent:function(target,type,event){target.dispatchEvent(event)},fixTarget:function(target){if(target==window&&!target.dispatchEvent){return document}return target}}}else{if(document.createEventObject){var crazyIEButtons={0:1,1:4,2:2};API={createHtmlEvent:function(doc,type,bubbles,cancelable){var event=doc.createEventObject();event.bubbles=bubbles;event.cancelable=cancelable;return event},createMouseEvent:function(doc,type,bubbles,cancelable,detail,clientX,clientY,ctrlKey,altKey,shiftKey,metaKey,button,relatedTarget){var event=doc.createEventObject();event.bubbles=bubbles;event.cancelable=cancelable;event.detail=detail;event.screenX=clientX;event.screenY=clientY;event.clientX=clientX;event.clientY=clientY;event.ctrlKey=ctrlKey;event.altKey=altKey;event.shiftKey=shiftKey;event.metaKey=metaKey;event.button=crazyIEButtons[button]||button;event.relatedTarget=relatedTarget;return event},createUIEvent:function(doc,type,bubbles,cancelable,detail){var event=doc.createEventObject();event.bubbles=bubbles;event.cancelable=cancelable;return event},fireEvent:function(target,type,event){target.fireEvent("on"+type,event)},fixTarget:function(target){if(target==document){return document.documentElement}return target}}}}Ext.Object.each({load:[false,false],unload:[false,false],select:[true,false],change:[true,false],submit:[true,true],reset:[true,false],resize:[true,false],scroll:[true,false]},function(name,value){var bubbles=value[0],cancelable=value[1];dispatchers[name]=function(targetEl,srcEvent){var e=API.createHtmlEvent(name,bubbles,cancelable);API.fireEvent(targetEl,name,e)}});function createMouseEventDispatcher(type,detail){var cancelable=(type!="mousemove");return function(targetEl,srcEvent){var xy=srcEvent.getXY(),e=API.createMouseEvent(targetEl.ownerDocument,type,true,cancelable,detail,xy[0],xy[1],srcEvent.ctrlKey,srcEvent.altKey,srcEvent.shiftKey,srcEvent.metaKey,srcEvent.button,srcEvent.relatedTarget);API.fireEvent(targetEl,type,e)}}Ext.each(["click","dblclick","mousedown","mouseup","mouseover","mousemove","mouseout"],function(eventName){dispatchers[eventName]=createMouseEventDispatcher(eventName,1)});Ext.Object.each({focusin:[true,false],focusout:[true,false],activate:[true,true],focus:[false,false],blur:[false,false]},function(name,value){var bubbles=value[0],cancelable=value[1];dispatchers[name]=function(targetEl,srcEvent){var e=API.createUIEvent(targetEl.ownerDocument,name,bubbles,cancelable,1);API.fireEvent(targetEl,name,e)}});if(!API){dispatchers={};API={fixTarget:function(t){return t}}}function cannotInject(target,srcEvent){}return function(target){var me=this,dispatcher=dispatchers[me.type]||cannotInject,t=target?(target.dom||target):me.getTarget();t=API.fixTarget(t);dispatcher(t,me)}}()},function(){Ext.EventObject=new Ext.EventObjectImpl()});(function(){var doc=document,activeElement=null,isCSS1=doc.compatMode=="CSS1Compat",ELEMENT=Ext.Element,fly=function(el){if(!_fly){_fly=new Ext.Element.Flyweight()}_fly.dom=el;return _fly},_fly;if(!("activeElement" in doc)&&doc.addEventListener){doc.addEventListener("focus",function(ev){if(ev&&ev.target){activeElement=(ev.target==doc)?null:ev.target}},true)}function makeSelectionRestoreFn(activeEl,start,end){return function(){activeEl.selectionStart=start;activeEl.selectionEnd=end}}Ext.apply(ELEMENT,{isAncestor:function(p,c){var ret=false;p=Ext.getDom(p);c=Ext.getDom(c);if(p&&c){if(p.contains){return p.contains(c)}else{if(p.compareDocumentPosition){return !!(p.compareDocumentPosition(c)&16)}else{while((c=c.parentNode)){ret=c==p||ret}}}}return ret},getActiveElement:function(){return doc.activeElement||activeElement},getRightMarginFixCleaner:function(target){var supports=Ext.supports,hasInputBug=supports.DisplayChangeInputSelectionBug,hasTextAreaBug=supports.DisplayChangeTextAreaSelectionBug;if(hasInputBug||hasTextAreaBug){var activeEl=doc.activeElement||activeElement,tag=activeEl&&activeEl.tagName,start,end;if((hasTextAreaBug&&tag=="TEXTAREA")||(hasInputBug&&tag=="INPUT"&&activeEl.type=="text")){if(ELEMENT.isAncestor(target,activeEl)){start=activeEl.selectionStart;end=activeEl.selectionEnd;if(Ext.isNumber(start)&&Ext.isNumber(end)){return makeSelectionRestoreFn(activeEl,start,end)}}}}return Ext.emptyFn},getViewWidth:function(full){return full?ELEMENT.getDocumentWidth():ELEMENT.getViewportWidth()},getViewHeight:function(full){return full?ELEMENT.getDocumentHeight():ELEMENT.getViewportHeight()},getDocumentHeight:function(){return Math.max(!isCSS1?doc.body.scrollHeight:doc.documentElement.scrollHeight,ELEMENT.getViewportHeight())},getDocumentWidth:function(){return Math.max(!isCSS1?doc.body.scrollWidth:doc.documentElement.scrollWidth,ELEMENT.getViewportWidth())},getViewportHeight:function(){return Ext.isIE?(Ext.isStrict?doc.documentElement.clientHeight:doc.body.clientHeight):self.innerHeight},getViewportWidth:function(){return(!Ext.isStrict&&!Ext.isOpera)?doc.body.clientWidth:Ext.isIE?doc.documentElement.clientWidth:self.innerWidth},getY:function(el){return ELEMENT.getXY(el)[1]},getX:function(el){return ELEMENT.getXY(el)[0]},getOffsetParent:function(el){el=Ext.getDom(el);try{return el.offsetParent}catch(e){var body=document.body;return(el==body)?null:body}},getXY:function(el){var p,pe,b,bt,bl,dbd,x=0,y=0,scroll,hasAbsolute,bd=(doc.body||doc.documentElement),ret;el=Ext.getDom(el);if(el!=bd){hasAbsolute=fly(el).isStyle("position","absolute");if(el.getBoundingClientRect){try{b=el.getBoundingClientRect();scroll=fly(document).getScroll();ret=[Math.round(b.left+scroll.left),Math.round(b.top+scroll.top)]}catch(e){}}if(!ret){for(p=el;p;p=ELEMENT.getOffsetParent(p)){pe=fly(p);x+=p.offsetLeft;y+=p.offsetTop;hasAbsolute=hasAbsolute||pe.isStyle("position","absolute");if(Ext.isGecko){y+=bt=parseInt(pe.getStyle("borderTopWidth"),10)||0;x+=bl=parseInt(pe.getStyle("borderLeftWidth"),10)||0;if(p!=el&&!pe.isStyle("overflow","visible")){x+=bl;y+=bt}}}if(Ext.isSafari&&hasAbsolute){x-=bd.offsetLeft;y-=bd.offsetTop}if(Ext.isGecko&&!hasAbsolute){dbd=fly(bd);x+=parseInt(dbd.getStyle("borderLeftWidth"),10)||0;y+=parseInt(dbd.getStyle("borderTopWidth"),10)||0}p=el.parentNode;while(p&&p!=bd){if(!Ext.isOpera||(p.tagName!="TR"&&!fly(p).isStyle("display","inline"))){x-=p.scrollLeft;y-=p.scrollTop}p=p.parentNode}ret=[x,y]}}return ret||[0,0]},setXY:function(el,xy){(el=Ext.fly(el,"_setXY")).position();var pts=el.translatePoints(xy),style=el.dom.style,pos;for(pos in pts){if(!isNaN(pts[pos])){style[pos]=pts[pos]+"px"}}},setX:function(el,x){ELEMENT.setXY(el,[x,false])},setY:function(el,y){ELEMENT.setXY(el,[false,y])},serializeForm:function(form){var fElements=form.elements||(document.forms[form]||Ext.getDom(form)).elements,hasSubmit=false,encoder=encodeURIComponent,name,data="",type,hasValue;Ext.each(fElements,function(element){name=element.name;type=element.type;if(!element.disabled&&name){if(/select-(one|multiple)/i.test(type)){Ext.each(element.options,function(opt){if(opt.selected){hasValue=opt.hasAttribute?opt.hasAttribute("value"):opt.getAttributeNode("value").specified;data+=Ext.String.format("{0}={1}&",encoder(name),encoder(hasValue?opt.value:opt.text))}})}else{if(!(/file|undefined|reset|button/i.test(type))){if(!(/radio|checkbox/i.test(type)&&!element.checked)&&!(type=="submit"&&hasSubmit)){data+=encoder(name)+"="+encoder(element.value)+"&";hasSubmit=/submit/i.test(type)}}}}});return data.substr(0,data.length-1)}})})();Ext.Element.addMethods((function(){var focusRe=/button|input|textarea|select|object/;return{monitorMouseLeave:function(delay,handler,scope){var me=this,timer,listeners={mouseleave:function(e){timer=setTimeout(Ext.Function.bind(handler,scope||me,[e]),delay)},mouseenter:function(){clearTimeout(timer)},freezeEvent:true};me.on(listeners);return listeners},swallowEvent:function(eventName,preventDefault){var me=this;function fn(e){e.stopPropagation();if(preventDefault){e.preventDefault()}}if(Ext.isArray(eventName)){Ext.each(eventName,function(e){me.on(e,fn)});return me}me.on(eventName,fn);return me},relayEvent:function(eventName,observable){this.on(eventName,function(e){observable.fireEvent(eventName,e)})},clean:function(forceReclean){var me=this,dom=me.dom,n=dom.firstChild,nx,ni=-1;if(Ext.Element.data(dom,"isCleaned")&&forceReclean!==true){return me}while(n){nx=n.nextSibling;if(n.nodeType==3){if(!(/\S/.test(n.nodeValue))){dom.removeChild(n)}else{if(nx&&nx.nodeType==3){n.appendData(Ext.String.trim(nx.data));dom.removeChild(nx);nx=n.nextSibling;n.nodeIndex=++ni}}}else{Ext.fly(n).clean();n.nodeIndex=++ni}n=nx}Ext.Element.data(dom,"isCleaned",true);return me},load:function(options){this.getLoader().load(options);return this},getLoader:function(){var dom=this.dom,data=Ext.Element.data,loader=data(dom,"loader");if(!loader){loader=Ext.create("Ext.ElementLoader",{target:this});data(dom,"loader",loader)}return loader},update:function(html,loadScripts,callback){var me=this,id,dom,interval;if(!me.dom){return me}html=html||"";dom=me.dom;if(loadScripts!==true){dom.innerHTML=html;Ext.callback(callback,me);return me}id=Ext.id();html+='<span id="'+id+'"></span>';interval=setInterval(function(){if(!document.getElementById(id)){return false}clearInterval(interval);var DOC=document,hd=DOC.getElementsByTagName("head")[0],re=/(?:<script([^>]*)?>)((\n|\r|.)*?)(?:<\/script>)/ig,srcRe=/\ssrc=([\'\"])(.*?)\1/i,typeRe=/\stype=([\'\"])(.*?)\1/i,match,attrs,srcMatch,typeMatch,el,s;while((match=re.exec(html))){attrs=match[1];srcMatch=attrs?attrs.match(srcRe):false;if(srcMatch&&srcMatch[2]){s=DOC.createElement("script");s.src=srcMatch[2];typeMatch=attrs.match(typeRe);if(typeMatch&&typeMatch[2]){s.type=typeMatch[2]}hd.appendChild(s)}else{if(match[2]&&match[2].length>0){if(window.execScript){window.execScript(match[2])}else{window.eval(match[2])}}}}el=DOC.getElementById(id);if(el){Ext.removeNode(el)}Ext.callback(callback,me)},20);dom.innerHTML=html.replace(/(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/ig,"");return me},removeAllListeners:function(){this.removeAnchor();Ext.EventManager.removeAll(this.dom);return this},getScopeParent:function(){var parent=this.dom.parentNode;return Ext.scopeResetCSS?parent.parentNode:parent},createProxy:function(config,renderTo,matchBox){config=(typeof config=="object")?config:{tag:"div",cls:config};var me=this,proxy=renderTo?Ext.DomHelper.append(renderTo,config,true):Ext.DomHelper.insertBefore(me.dom,config,true);proxy.setVisibilityMode(Ext.Element.DISPLAY);proxy.hide();if(matchBox&&me.setBox&&me.getBox){proxy.setBox(me.getBox())}return proxy},focusable:function(){var dom=this.dom,nodeName=dom.nodeName.toLowerCase(),canFocus=false,hasTabIndex=!isNaN(dom.tabIndex);if(!dom.disabled){if(focusRe.test(nodeName)){canFocus=true}else{canFocus=nodeName=="a"?dom.href||hasTabIndex:hasTabIndex}}return canFocus&&this.isVisible(true)}}})());Ext.Element.prototype.clearListeners=Ext.Element.prototype.removeAllListeners;Ext.Element.addMethods({getAnchorXY:function(anchor,local,s){anchor=(anchor||"tl").toLowerCase();s=s||{};var me=this,vp=me.dom==document.body||me.dom==document,w=s.width||vp?Ext.Element.getViewWidth():me.getWidth(),h=s.height||vp?Ext.Element.getViewHeight():me.getHeight(),xy,r=Math.round,o=me.getXY(),scroll=me.getScroll(),extraX=vp?scroll.left:!local?o[0]:0,extraY=vp?scroll.top:!local?o[1]:0,hash={c:[r(w*0.5),r(h*0.5)],t:[r(w*0.5),0],l:[0,r(h*0.5)],r:[w,r(h*0.5)],b:[r(w*0.5),h],tl:[0,0],bl:[0,h],br:[w,h],tr:[w,0]};xy=hash[anchor];return[xy[0]+extraX,xy[1]+extraY]},anchorTo:function(el,alignment,offsets,animate,monitorScroll,callback){var me=this,dom=me.dom,scroll=!Ext.isEmpty(monitorScroll),action=function(){Ext.fly(dom).alignTo(el,alignment,offsets,animate);Ext.callback(callback,Ext.fly(dom))},anchor=this.getAnchor();this.removeAnchor();Ext.apply(anchor,{fn:action,scroll:scroll});Ext.EventManager.onWindowResize(action,null);if(scroll){Ext.EventManager.on(window,"scroll",action,null,{buffer:!isNaN(monitorScroll)?monitorScroll:50})}action.call(me);return me},removeAnchor:function(){var me=this,anchor=this.getAnchor();if(anchor&&anchor.fn){Ext.EventManager.removeResizeListener(anchor.fn);if(anchor.scroll){Ext.EventManager.un(window,"scroll",anchor.fn)}delete anchor.fn}return me},getAnchor:function(){var data=Ext.Element.data,dom=this.dom;if(!dom){return}var anchor=data(dom,"_anchor");if(!anchor){anchor=data(dom,"_anchor",{})}return anchor},getAlignVector:function(el,spec,offset){var me=this,side={t:"top",l:"left",r:"right",b:"bottom"},thisRegion=me.getRegion(),elRegion;el=Ext.get(el);if(!el||!el.dom){}elRegion=el.getRegion()},getAlignToXY:function(el,p,o){el=Ext.get(el);if(!el||!el.dom){}o=o||[0,0];p=(!p||p=="?"?"tl-bl?":(!(/-/).test(p)&&p!==""?"tl-"+p:p||"tl-bl")).toLowerCase();var me=this,d=me.dom,a1,a2,x,y,w,h,r,dw=Ext.Element.getViewWidth()-10,dh=Ext.Element.getViewHeight()-10,p1y,p1x,p2y,p2x,swapY,swapX,doc=document,docElement=doc.documentElement,docBody=doc.body,scrollX=(docElement.scrollLeft||docBody.scrollLeft||0)+5,scrollY=(docElement.scrollTop||docBody.scrollTop||0)+5,c=false,p1="",p2="",m=p.match(/^([a-z]+)-([a-z]+)(\?)?$/);if(!m){}p1=m[1];p2=m[2];c=!!m[3];a1=me.getAnchorXY(p1,true);a2=el.getAnchorXY(p2,false);x=a2[0]-a1[0]+o[0];y=a2[1]-a1[1]+o[1];if(c){w=me.getWidth();h=me.getHeight();r=el.getRegion();p1y=p1.charAt(0);p1x=p1.charAt(p1.length-1);p2y=p2.charAt(0);p2x=p2.charAt(p2.length-1);swapY=((p1y=="t"&&p2y=="b")||(p1y=="b"&&p2y=="t"));swapX=((p1x=="r"&&p2x=="l")||(p1x=="l"&&p2x=="r"));if(x+w>dw+scrollX){x=swapX?r.left-w:dw+scrollX-w}if(x<scrollX){x=swapX?r.right:scrollX}if(y+h>dh+scrollY){y=swapY?r.top-h:dh+scrollY-h}if(y<scrollY){y=swapY?r.bottom:scrollY}}return[x,y]},alignTo:function(element,position,offsets,animate){var me=this;return me.setXY(me.getAlignToXY(element,position,offsets),me.anim&&!!animate?me.anim(animate):false)},adjustForConstraints:function(xy,parent){var vector=this.getConstrainVector(parent,xy);if(vector){xy[0]+=vector[0];xy[1]+=vector[1]}return xy},getConstrainVector:function(constrainTo,proposedPosition){if(!(constrainTo instanceof Ext.util.Region)){constrainTo=Ext.get(constrainTo).getViewRegion()}var thisRegion=this.getRegion(),vector=[0,0],shadowSize=this.shadow&&this.shadow.offset,overflowed=false;if(proposedPosition){thisRegion.translateBy(proposedPosition[0]-thisRegion.x,proposedPosition[1]-thisRegion.y)}if(shadowSize){constrainTo.adjust(0,-shadowSize,-shadowSize,shadowSize)}if(thisRegion.right>constrainTo.right){overflowed=true;vector[0]=(constrainTo.right-thisRegion.right)}if(thisRegion.left+vector[0]<constrainTo.left){overflowed=true;vector[0]=(constrainTo.left-thisRegion.left)}if(thisRegion.bottom>constrainTo.bottom){overflowed=true;vector[1]=(constrainTo.bottom-thisRegion.bottom)}if(thisRegion.top+vector[1]<constrainTo.top){overflowed=true;vector[1]=(constrainTo.top-thisRegion.top)}return overflowed?vector:false},getCenterXY:function(){return this.getAlignToXY(document,"c-c")},center:function(centerIn){return this.alignTo(centerIn||document,"c-c")}});(function(){var ELEMENT=Ext.Element,LEFT="left",RIGHT="right",TOP="top",BOTTOM="bottom",POSITION="position",STATIC="static",RELATIVE="relative",AUTO="auto",ZINDEX="z-index";Ext.override(Ext.Element,{getX:function(){return ELEMENT.getX(this.dom)},getY:function(){return ELEMENT.getY(this.dom)},getXY:function(){return ELEMENT.getXY(this.dom)},getOffsetsTo:function(el){var o=this.getXY(),e=Ext.fly(el,"_internal").getXY();return[o[0]-e[0],o[1]-e[1]]},setX:function(x,animate){return this.setXY([x,this.getY()],animate)},setY:function(y,animate){return this.setXY([this.getX(),y],animate)},setLeft:function(left){this.setStyle(LEFT,this.addUnits(left));return this},setTop:function(top){this.setStyle(TOP,this.addUnits(top));return this},setRight:function(right){this.setStyle(RIGHT,this.addUnits(right));return this},setBottom:function(bottom){this.setStyle(BOTTOM,this.addUnits(bottom));return this},setXY:function(pos,animate){var me=this;if(!animate||!me.anim){ELEMENT.setXY(me.dom,pos)}else{if(!Ext.isObject(animate)){animate={}}me.animate(Ext.applyIf({to:{x:pos[0],y:pos[1]}},animate))}return me},setLocation:function(x,y,animate){return this.setXY([x,y],animate)},moveTo:function(x,y,animate){return this.setXY([x,y],animate)},getLeft:function(local){return !local?this.getX():parseInt(this.getStyle(LEFT),10)||0},getRight:function(local){var me=this;return !local?me.getX()+me.getWidth():(me.getLeft(true)+me.getWidth())||0},getTop:function(local){return !local?this.getY():parseInt(this.getStyle(TOP),10)||0},getBottom:function(local){var me=this;return !local?me.getY()+me.getHeight():(me.getTop(true)+me.getHeight())||0},position:function(pos,zIndex,x,y){var me=this;if(!pos&&me.isStyle(POSITION,STATIC)){me.setStyle(POSITION,RELATIVE)}else{if(pos){me.setStyle(POSITION,pos)}}if(zIndex){me.setStyle(ZINDEX,zIndex)}if(x||y){me.setXY([x||false,y||false])}},clearPositioning:function(value){value=value||"";this.setStyle({left:value,right:value,top:value,bottom:value,"z-index":"",position:STATIC});return this},getPositioning:function(){var l=this.getStyle(LEFT);var t=this.getStyle(TOP);return{position:this.getStyle(POSITION),left:l,right:l?"":this.getStyle(RIGHT),top:t,bottom:t?"":this.getStyle(BOTTOM),"z-index":this.getStyle(ZINDEX)}},setPositioning:function(pc){var me=this,style=me.dom.style;me.setStyle(pc);if(pc.right==AUTO){style.right=""}if(pc.bottom==AUTO){style.bottom=""}return me},translatePoints:function(x,y){if(Ext.isArray(x)){y=x[1];x=x[0]}var me=this,relative=me.isStyle(POSITION,RELATIVE),o=me.getXY(),left=parseInt(me.getStyle(LEFT),10),top=parseInt(me.getStyle(TOP),10);if(!Ext.isNumber(left)){left=relative?0:me.dom.offsetLeft}if(!Ext.isNumber(top)){top=relative?0:me.dom.offsetTop}left=(Ext.isNumber(x))?x-o[0]+left:undefined;top=(Ext.isNumber(y))?y-o[1]+top:undefined;return{left:left,top:top}},setBox:function(box,adjust,animate){var me=this,w=box.width,h=box.height;if((adjust&&!me.autoBoxAdjust)&&!me.isBorderBox()){w-=(me.getBorderWidth("lr")+me.getPadding("lr"));h-=(me.getBorderWidth("tb")+me.getPadding("tb"))}me.setBounds(box.x,box.y,w,h,animate);return me},getBox:function(contentBox,local){var me=this,xy,left,top,getBorderWidth=me.getBorderWidth,getPadding=me.getPadding,l,r,t,b,w,h,bx;if(!local){xy=me.getXY()}else{left=parseInt(me.getStyle("left"),10)||0;top=parseInt(me.getStyle("top"),10)||0;xy=[left,top]}w=me.getWidth();h=me.getHeight();if(!contentBox){bx={x:xy[0],y:xy[1],0:xy[0],1:xy[1],width:w,height:h}}else{l=getBorderWidth.call(me,"l")+getPadding.call(me,"l");r=getBorderWidth.call(me,"r")+getPadding.call(me,"r");t=getBorderWidth.call(me,"t")+getPadding.call(me,"t");b=getBorderWidth.call(me,"b")+getPadding.call(me,"b");bx={x:xy[0]+l,y:xy[1]+t,0:xy[0]+l,1:xy[1]+t,width:w-(l+r),height:h-(t+b)}}bx.right=bx.x+bx.width;bx.bottom=bx.y+bx.height;return bx},move:function(direction,distance,animate){var me=this,xy=me.getXY(),x=xy[0],y=xy[1],left=[x-distance,y],right=[x+distance,y],top=[x,y-distance],bottom=[x,y+distance],hash={l:left,left:left,r:right,right:right,t:top,top:top,up:top,b:bottom,bottom:bottom,down:bottom};direction=direction.toLowerCase();me.moveTo(hash[direction][0],hash[direction][1],animate)},setLeftTop:function(left,top){var me=this,style=me.dom.style;style.left=me.addUnits(left);style.top=me.addUnits(top);return me},getRegion:function(){return this.getPageBox(true)},getViewRegion:function(){var me=this,isBody=me.dom===document.body,scroll,pos,top,left,width,height;if(isBody){scroll=me.getScroll();left=scroll.left;top=scroll.top;width=Ext.Element.getViewportWidth();height=Ext.Element.getViewportHeight()}else{pos=me.getXY();left=pos[0]+me.getBorderWidth("l")+me.getPadding("l");top=pos[1]+me.getBorderWidth("t")+me.getPadding("t");width=me.getWidth(true);height=me.getHeight(true)}return Ext.create("Ext.util.Region",top,left+width,top+height,left)},getPageBox:function(getRegion){var me=this,el=me.dom,isDoc=el===document.body,w=isDoc?Ext.Element.getViewWidth():el.offsetWidth,h=isDoc?Ext.Element.getViewHeight():el.offsetHeight,xy=me.getXY(),t=xy[1],r=xy[0]+w,b=xy[1]+h,l=xy[0];if(getRegion){return Ext.create("Ext.util.Region",t,r,b,l)}else{return{left:l,top:t,width:w,height:h,right:r,bottom:b}}},setBounds:function(x,y,width,height,animate){var me=this;if(!animate||!me.anim){me.setSize(width,height);me.setLocation(x,y)}else{if(!Ext.isObject(animate)){animate={}}me.animate(Ext.applyIf({to:{x:x,y:y,width:me.adjustWidth(width),height:me.adjustHeight(height)}},animate))}return me},setRegion:function(region,animate){return this.setBounds(region.left,region.top,region.right-region.left,region.bottom-region.top,animate)}})})();Ext.override(Ext.Element,{isScrollable:function(){var dom=this.dom;return dom.scrollHeight>dom.clientHeight||dom.scrollWidth>dom.clientWidth},getScroll:function(){var d=this.dom,doc=document,body=doc.body,docElement=doc.documentElement,l,t,ret;if(d==doc||d==body){if(Ext.isIE&&Ext.isStrict){l=docElement.scrollLeft;t=docElement.scrollTop}else{l=window.pageXOffset;t=window.pageYOffset}ret={left:l||(body?body.scrollLeft:0),top:t||(body?body.scrollTop:0)}}else{ret={left:d.scrollLeft,top:d.scrollTop}}return ret},scrollTo:function(side,value,animate){var top=/top/i.test(side),me=this,dom=me.dom,obj={},prop;if(!animate||!me.anim){prop="scroll"+(top?"Top":"Left");dom[prop]=value}else{if(!Ext.isObject(animate)){animate={}}obj["scroll"+(top?"Top":"Left")]=value;me.animate(Ext.applyIf({to:obj},animate))}return me},scrollIntoView:function(container,hscroll){container=Ext.getDom(container)||Ext.getBody().dom;var el=this.dom,offsets=this.getOffsetsTo(container),left=offsets[0]+container.scrollLeft,top=offsets[1]+container.scrollTop,bottom=top+el.offsetHeight,right=left+el.offsetWidth,ctClientHeight=container.clientHeight,ctScrollTop=parseInt(container.scrollTop,10),ctScrollLeft=parseInt(container.scrollLeft,10),ctBottom=ctScrollTop+ctClientHeight,ctRight=ctScrollLeft+container.clientWidth;if(el.offsetHeight>ctClientHeight||top<ctScrollTop){container.scrollTop=top}else{if(bottom>ctBottom){container.scrollTop=bottom-ctClientHeight}}container.scrollTop=container.scrollTop;if(hscroll!==false){if(el.offsetWidth>container.clientWidth||left<ctScrollLeft){container.scrollLeft=left}else{if(right>ctRight){container.scrollLeft=right-container.clientWidth}}container.scrollLeft=container.scrollLeft}return this},scrollChildIntoView:function(child,hscroll){Ext.fly(child,"_scrollChildIntoView").scrollIntoView(this,hscroll)},scroll:function(direction,distance,animate){if(!this.isScrollable()){return false}var el=this.dom,l=el.scrollLeft,t=el.scrollTop,w=el.scrollWidth,h=el.scrollHeight,cw=el.clientWidth,ch=el.clientHeight,scrolled=false,v,hash={l:Math.min(l+distance,w-cw),r:v=Math.max(l-distance,0),t:Math.max(t-distance,0),b:Math.min(t+distance,h-ch)};hash.d=hash.b;hash.u=hash.t;direction=direction.substr(0,1);if((v=hash[direction])>-1){scrolled=true;this.scrollTo(direction=="l"||direction=="r"?"left":"top",v,this.anim(animate))}return scrolled}});Ext.Element.addMethods(function(){var VISIBILITY="visibility",DISPLAY="display",HIDDEN="hidden",NONE="none",XMASKED=Ext.baseCSSPrefix+"masked",XMASKEDRELATIVE=Ext.baseCSSPrefix+"masked-relative",data=Ext.Element.data;return{isVisible:function(deep){var vis=!this.isStyle(VISIBILITY,HIDDEN)&&!this.isStyle(DISPLAY,NONE),p=this.dom.parentNode;if(deep!==true||!vis){return vis}while(p&&!(/^body/i.test(p.tagName))){if(!Ext.fly(p,"_isVisible").isVisible()){return false}p=p.parentNode}return true},isDisplayed:function(){return !this.isStyle(DISPLAY,NONE)},enableDisplayMode:function(display){this.setVisibilityMode(Ext.Element.DISPLAY);if(!Ext.isEmpty(display)){data(this.dom,"originalDisplay",display)}return this},mask:function(msg,msgCls){var me=this,dom=me.dom,setExpression=dom.style.setExpression,dh=Ext.DomHelper,EXTELMASKMSG=Ext.baseCSSPrefix+"mask-msg",el,mask;if(!(/^body/i.test(dom.tagName)&&me.getStyle("position")=="static")){me.addCls(XMASKEDRELATIVE)}el=data(dom,"maskMsg");if(el){el.remove()}el=data(dom,"mask");if(el){el.remove()}mask=dh.append(dom,{cls:Ext.baseCSSPrefix+"mask"},true);data(dom,"mask",mask);me.addCls(XMASKED);mask.setDisplayed(true);if(typeof msg=="string"){var mm=dh.append(dom,{cls:EXTELMASKMSG,cn:{tag:"div"}},true);data(dom,"maskMsg",mm);mm.dom.className=msgCls?EXTELMASKMSG+" "+msgCls:EXTELMASKMSG;mm.dom.firstChild.innerHTML=msg;mm.setDisplayed(true);mm.center(me)}if(!Ext.supports.IncludePaddingInWidthCalculation&&setExpression){mask.dom.style.setExpression("width",'this.parentNode.offsetWidth + "px"')}if(!Ext.supports.IncludePaddingInHeightCalculation&&setExpression){mask.dom.style.setExpression("height",'this.parentNode.offsetHeight + "px"')}else{if(Ext.isIE&&!(Ext.isIE7&&Ext.isStrict)&&me.getStyle("height")=="auto"){mask.setSize(undefined,me.getHeight())}}return mask},unmask:function(){var me=this,dom=me.dom,mask=data(dom,"mask"),maskMsg=data(dom,"maskMsg");if(mask){if(mask.dom.style.clearExpression){mask.dom.style.clearExpression("width");mask.dom.style.clearExpression("height")}if(maskMsg){maskMsg.remove();data(dom,"maskMsg",undefined)}mask.remove();data(dom,"mask",undefined);me.removeCls([XMASKED,XMASKEDRELATIVE])}},isMasked:function(){var me=this,mask=data(me.dom,"mask"),maskMsg=data(me.dom,"maskMsg");if(mask&&mask.isVisible()){if(maskMsg){maskMsg.center(me)}return true}return false},createShim:function(){var el=document.createElement("iframe"),shim;el.frameBorder="0";el.className=Ext.baseCSSPrefix+"shim";el.src=Ext.SSL_SECURE_URL;shim=Ext.get(this.dom.parentNode.insertBefore(el,this.dom));shim.autoBoxAdjust=false;return shim}}}());Ext.Element.addMethods({addKeyListener:function(key,fn,scope){var config;if(typeof key!="object"||Ext.isArray(key)){config={key:key,fn:fn,scope:scope}}else{config={key:key.key,shift:key.shift,ctrl:key.ctrl,alt:key.alt,fn:fn,scope:scope}}return Ext.create("Ext.util.KeyMap",this,config)},addKeyMap:function(config){return Ext.create("Ext.util.KeyMap",this,config)}});Ext.CompositeElementLite.importElementMethods();Ext.apply(Ext.CompositeElementLite.prototype,{addElements:function(els,root){if(!els){return this}if(typeof els=="string"){els=Ext.Element.selectorFunction(els,root)}var yels=this.elements;Ext.each(els,function(e){yels.push(Ext.get(e))});return this},first:function(){return this.item(0)},last:function(){return this.item(this.getCount()-1)},contains:function(el){return this.indexOf(el)!=-1},removeElement:function(keys,removeDom){var me=this,els=this.elements,el;Ext.each(keys,function(val){if((el=(els[val]||els[val=me.indexOf(val)]))){if(removeDom){if(el.dom){el.remove()}else{Ext.removeNode(el)}}Ext.Array.erase(els,val,1)}});return this}});Ext.CompositeElement=Ext.extend(Ext.CompositeElementLite,{constructor:function(els,root){this.elements=[];this.add(els,root)},getElement:function(el){return el},transformElement:function(el){return Ext.get(el)}});Ext.Element.select=function(selector,unique,root){var els;if(typeof selector=="string"){els=Ext.Element.selectorFunction(selector,root)}else{if(selector.length!==undefined){els=selector}else{}}return(unique===true)?new Ext.CompositeElement(els):new Ext.CompositeElementLite(els)};Ext.select=Ext.Element.select;Ext.define("Ext.util.Observable",{requires:["Ext.util.Event"],statics:{releaseCapture:function(o){o.fireEvent=this.prototype.fireEvent},capture:function(o,fn,scope){o.fireEvent=Ext.Function.createInterceptor(o.fireEvent,fn,scope)},observe:function(cls,listeners){if(cls){if(!cls.isObservable){Ext.applyIf(cls,new this());this.capture(cls.prototype,cls.fireEvent,cls)}if(Ext.isObject(listeners)){cls.on(listeners)}return cls}}},isObservable:true,constructor:function(config){var me=this;Ext.apply(me,config);if(me.listeners){me.on(me.listeners);delete me.listeners}me.events=me.events||{};if(me.bubbleEvents){me.enableBubble(me.bubbleEvents)}},eventOptionsRe:/^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate|element|vertical|horizontal|freezeEvent)$/,addManagedListener:function(item,ename,fn,scope,options){var me=this,managedListeners=me.managedListeners=me.managedListeners||[],config;if(typeof ename!=="string"){options=ename;for(ename in options){if(options.hasOwnProperty(ename)){config=options[ename];if(!me.eventOptionsRe.test(ename)){me.addManagedListener(item,ename,config.fn||config,config.scope||options.scope,config.fn?config:options)}}}}else{managedListeners.push({item:item,ename:ename,fn:fn,scope:scope,options:options});item.on(ename,fn,scope,options)}},removeManagedListener:function(item,ename,fn,scope){var me=this,options,config,managedListeners,length,i;if(typeof ename!=="string"){options=ename;for(ename in options){if(options.hasOwnProperty(ename)){config=options[ename];if(!me.eventOptionsRe.test(ename)){me.removeManagedListener(item,ename,config.fn||config,config.scope||options.scope)}}}}managedListeners=me.managedListeners?me.managedListeners.slice():[];for(i=0,length=managedListeners.length;i<length;i++){me.removeManagedListenerItem(false,managedListeners[i],item,ename,fn,scope)}},fireEvent:function(eventName){var name=eventName.toLowerCase(),events=this.events,event=events&&events[name],bubbles=event&&event.bubble;return this.continueFireEvent(name,Ext.Array.slice(arguments,1),bubbles)},continueFireEvent:function(eventName,args,bubbles){var target=this,queue,event,ret=true;do{if(target.eventsSuspended===true){if((queue=target.eventQueue)){queue.push([eventName,args,bubbles])}return ret}else{event=target.events[eventName];if(event&&event!=true){if((ret=event.fire.apply(event,args))===false){break}}}}while(bubbles&&(target=target.getBubbleParent()));return ret},getBubbleParent:function(){var me=this,parent=me.getBubbleTarget&&me.getBubbleTarget();if(parent&&parent.isObservable){return parent}return null},addListener:function(ename,fn,scope,options){var me=this,config,event;if(typeof ename!=="string"){options=ename;for(ename in options){if(options.hasOwnProperty(ename)){config=options[ename];if(!me.eventOptionsRe.test(ename)){me.addListener(ename,config.fn||config,config.scope||options.scope,config.fn?config:options)}}}}else{ename=ename.toLowerCase();me.events[ename]=me.events[ename]||true;event=me.events[ename]||true;if(Ext.isBoolean(event)){me.events[ename]=event=new Ext.util.Event(me,ename)}event.addListener(fn,scope,Ext.isObject(options)?options:{})}},removeListener:function(ename,fn,scope){var me=this,config,event,options;if(typeof ename!=="string"){options=ename;for(ename in options){if(options.hasOwnProperty(ename)){config=options[ename];if(!me.eventOptionsRe.test(ename)){me.removeListener(ename,config.fn||config,config.scope||options.scope)}}}}else{ename=ename.toLowerCase();event=me.events[ename];if(event&&event.isEvent){event.removeListener(fn,scope)}}},clearListeners:function(){var events=this.events,event,key;for(key in events){if(events.hasOwnProperty(key)){event=events[key];if(event.isEvent){event.clearListeners()}}}this.clearManagedListeners()},clearManagedListeners:function(){var managedListeners=this.managedListeners||[],i=0,len=managedListeners.length;for(;i<len;i++){this.removeManagedListenerItem(true,managedListeners[i])}this.managedListeners=[]},removeManagedListenerItem:function(isClear,managedListener,item,ename,fn,scope){if(isClear||(managedListener.item===item&&managedListener.ename===ename&&(!fn||managedListener.fn===fn)&&(!scope||managedListener.scope===scope))){managedListener.item.un(managedListener.ename,managedListener.fn,managedListener.scope);if(!isClear){Ext.Array.remove(this.managedListeners,managedListener)}}},addEvents:function(o){var me=this,args,len,i;me.events=me.events||{};if(Ext.isString(o)){args=arguments;i=args.length;while(i--){me.events[args[i]]=me.events[args[i]]||true}}else{Ext.applyIf(me.events,o)}},hasListener:function(ename){var event=this.events[ename.toLowerCase()];return event&&event.isEvent===true&&event.listeners.length>0},suspendEvents:function(queueSuspended){this.eventsSuspended=true;if(queueSuspended&&!this.eventQueue){this.eventQueue=[]}},resumeEvents:function(){var me=this,queued=me.eventQueue;me.eventsSuspended=false;delete me.eventQueue;if(queued){Ext.each(queued,function(e){me.continueFireEvent.apply(me,e)})}},relayEvents:function(origin,events,prefix){prefix=prefix||"";var me=this,len=events.length,i=0,oldName,newName;for(;i<len;i++){oldName=events[i].substr(prefix.length);newName=prefix+oldName;me.events[newName]=me.events[newName]||true;origin.on(oldName,me.createRelayer(newName))}},createRelayer:function(newName){var me=this;return function(){return me.fireEvent.apply(me,[newName].concat(Array.prototype.slice.call(arguments,0,-1)))}},enableBubble:function(events){var me=this;if(!Ext.isEmpty(events)){events=Ext.isArray(events)?events:Ext.Array.toArray(arguments);Ext.each(events,function(ename){ename=ename.toLowerCase();var ce=me.events[ename]||true;if(Ext.isBoolean(ce)){ce=new Ext.util.Event(me,ename);me.events[ename]=ce}ce.bubble=true})}}},function(){this.createAlias({on:"addListener",un:"removeListener",mon:"addManagedListener",mun:"removeManagedListener"});this.observeClass=this.observe;Ext.apply(Ext.util.Observable.prototype,function(){function getMethodEvent(method){var e=(this.methodEvents=this.methodEvents||{})[method],returnValue,v,cancel,obj=this;if(!e){this.methodEvents[method]=e={};e.originalFn=this[method];e.methodName=method;e.before=[];e.after=[];var makeCall=function(fn,scope,args){if((v=fn.apply(scope||obj,args))!==undefined){if(typeof v=="object"){if(v.returnValue!==undefined){returnValue=v.returnValue}else{returnValue=v}cancel=!!v.cancel}else{if(v===false){cancel=true}else{returnValue=v}}}};this[method]=function(){var args=Array.prototype.slice.call(arguments,0),b,i,len;returnValue=v=undefined;cancel=false;for(i=0,len=e.before.length;i<len;i++){b=e.before[i];makeCall(b.fn,b.scope,args);if(cancel){return returnValue}}if((v=e.originalFn.apply(obj,args))!==undefined){returnValue=v}for(i=0,len=e.after.length;i<len;i++){b=e.after[i];makeCall(b.fn,b.scope,args);if(cancel){return returnValue}}return returnValue}}return e}return{beforeMethod:function(method,fn,scope){getMethodEvent.call(this,method).before.push({fn:fn,scope:scope})},afterMethod:function(method,fn,scope){getMethodEvent.call(this,method).after.push({fn:fn,scope:scope})},removeMethodListener:function(method,fn,scope){var e=this.getMethodEvent(method),i,len;for(i=0,len=e.before.length;i<len;i++){if(e.before[i].fn==fn&&e.before[i].scope==scope){Ext.Array.erase(e.before,i,1);return}}for(i=0,len=e.after.length;i<len;i++){if(e.after[i].fn==fn&&e.after[i].scope==scope){Ext.Array.erase(e.after,i,1);return}}},toggleEventLogging:function(toggle){Ext.util.Observable[toggle?"capture":"releaseCapture"](this,function(en){if(Ext.isDefined(Ext.global.console)){Ext.global.console.log(en,arguments)}})}}}())});Ext.define("Ext.util.Animate",{uses:["Ext.fx.Manager","Ext.fx.Anim"],animate:function(animObj){var me=this;if(Ext.fx.Manager.hasFxBlock(me.id)){return me}Ext.fx.Manager.queueFx(Ext.create("Ext.fx.Anim",me.anim(animObj)));return this},anim:function(config){if(!Ext.isObject(config)){return(config)?{}:false}var me=this;if(config.stopAnimation){me.stopAnimation()}Ext.applyIf(config,Ext.fx.Manager.getFxDefaults(me.id));return Ext.apply({target:me,paused:true},config)},stopFx:Ext.Function.alias(Ext.util.Animate,"stopAnimation"),stopAnimation:function(){Ext.fx.Manager.stopAnimation(this.id);return this},syncFx:function(){Ext.fx.Manager.setFxDefaults(this.id,{concurrent:true});return this},sequenceFx:function(){Ext.fx.Manager.setFxDefaults(this.id,{concurrent:false});return this},hasActiveFx:Ext.Function.alias(Ext.util.Animate,"getActiveAnimation"),getActiveAnimation:function(){return Ext.fx.Manager.getActiveAnimation(this.id)}},function(){Ext.applyIf(Ext.Element.prototype,this.prototype);Ext.CompositeElementLite.importElementMethods()});Ext.define("Ext.state.Provider",{mixins:{observable:"Ext.util.Observable"},prefix:"ext-",constructor:function(config){config=config||{};var me=this;Ext.apply(me,config);me.addEvents("statechange");me.state={};me.mixins.observable.constructor.call(me)},get:function(name,defaultValue){return typeof this.state[name]=="undefined"?defaultValue:this.state[name]},clear:function(name){var me=this;delete me.state[name];me.fireEvent("statechange",me,name,null)},set:function(name,value){var me=this;me.state[name]=value;me.fireEvent("statechange",me,name,value)},decodeValue:function(value){var me=this,re=/^(a|n|d|b|s|o|e)\:(.*)$/,matches=re.exec(unescape(value)),all,type,value,keyValue;if(!matches||!matches[1]){return}type=matches[1];value=matches[2];switch(type){case"e":return null;case"n":return parseFloat(value);case"d":return new Date(Date.parse(value));case"b":return(value=="1");case"a":all=[];if(value!=""){Ext.each(value.split("^"),function(val){all.push(me.decodeValue(val))},me)}return all;case"o":all={};if(value!=""){Ext.each(value.split("^"),function(val){keyValue=val.split("=");all[keyValue[0]]=me.decodeValue(keyValue[1])},me)}return all;default:return value}},encodeValue:function(value){var flat="",i=0,enc,len,key;if(value==null){return"e:1"}else{if(typeof value=="number"){enc="n:"+value}else{if(typeof value=="boolean"){enc="b:"+(value?"1":"0")}else{if(Ext.isDate(value)){enc="d:"+value.toGMTString()}else{if(Ext.isArray(value)){for(len=value.length;i<len;i++){flat+=this.encodeValue(value[i]);if(i!=len-1){flat+="^"}}enc="a:"+flat}else{if(typeof value=="object"){for(key in value){if(typeof value[key]!="function"&&value[key]!==undefined){flat+=key+"="+this.encodeValue(value[key])+"^"}}enc="o:"+flat.substring(0,flat.length-1)}else{enc="s:"+value}}}}}}return escape(enc)}});Ext.define("Ext.ComponentQuery",{singleton:true,uses:["Ext.ComponentManager"]},function(){var cq=this,filterFnPattern=["var r = [],","i = 0,","it = items,","l = it.length,","c;","for (; i < l; i++) {","c = it[i];","if (c.{0}) {","r.push(c);","}","}","return r;"].join(""),filterItems=function(items,operation){return operation.method.apply(this,[items].concat(operation.args))},getItems=function(items,mode){var result=[],i=0,length=items.length,candidate,deep=mode!==">";for(;i<length;i++){candidate=items[i];if(candidate.getRefItems){result=result.concat(candidate.getRefItems(deep))}}return result},getAncestors=function(items){var result=[],i=0,length=items.length,candidate;for(;i<length;i++){candidate=items[i];while(!!(candidate=(candidate.ownerCt||candidate.floatParent))){result.push(candidate)}}return result},filterByXType=function(items,xtype,shallow){if(xtype==="*"){return items.slice()}else{var result=[],i=0,length=items.length,candidate;for(;i<length;i++){candidate=items[i];if(candidate.isXType(xtype,shallow)){result.push(candidate)}}return result}},filterByClassName=function(items,className){var EA=Ext.Array,result=[],i=0,length=items.length,candidate;for(;i<length;i++){candidate=items[i];if(candidate.el?candidate.el.hasCls(className):EA.contains(candidate.initCls(),className)){result.push(candidate)}}return result},filterByAttribute=function(items,property,operator,value){var result=[],i=0,length=items.length,candidate;for(;i<length;i++){candidate=items[i];if(!value?!!candidate[property]:(String(candidate[property])===value)){result.push(candidate)}}return result},filterById=function(items,id){var result=[],i=0,length=items.length,candidate;for(;i<length;i++){candidate=items[i];if(candidate.getItemId()===id){result.push(candidate)}}return result},filterByPseudo=function(items,name,value){return cq.pseudos[name](items,value)},modeRe=/^(\s?([>\^])\s?|\s|$)/,tokenRe=/^(#)?([\w\-]+|\*)(?:\((true|false)\))?/,matchers=[{re:/^\.([\w\-]+)(?:\((true|false)\))?/,method:filterByXType},{re:/^(?:[\[](?:@)?([\w\-]+)\s?(?:(=|.=)\s?['"]?(.*?)["']?)?[\]])/,method:filterByAttribute},{re:/^#([\w\-]+)/,method:filterById},{re:/^\:([\w\-]+)(?:\(((?:\{[^\}]+\})|(?:(?!\{)[^\s>\/]*?(?!\})))\))?/,method:filterByPseudo},{re:/^(?:\{([^\}]+)\})/,method:filterFnPattern}];cq.Query=Ext.extend(Object,{constructor:function(cfg){cfg=cfg||{};Ext.apply(this,cfg)},execute:function(root){var operations=this.operations,i=0,length=operations.length,operation,workingItems;if(!root){workingItems=Ext.ComponentManager.all.getArray()}else{if(Ext.isArray(root)){workingItems=root}}for(;i<length;i++){operation=operations[i];if(operation.mode==="^"){workingItems=getAncestors(workingItems||[root])}else{if(operation.mode){workingItems=getItems(workingItems||[root],operation.mode)}else{workingItems=filterItems(workingItems||getItems([root]),operation)}}if(i===length-1){return workingItems}}return[]},is:function(component){var operations=this.operations,components=Ext.isArray(component)?component:[component],originalLength=components.length,lastOperation=operations[operations.length-1],ln,i;components=filterItems(components,lastOperation);if(components.length===originalLength){if(operations.length>1){for(i=0,ln=components.length;i<ln;i++){if(Ext.Array.indexOf(this.execute(),components[i])===-1){return false}}}return true}return false}});Ext.apply(this,{cache:{},pseudos:{not:function(components,selector){var CQ=Ext.ComponentQuery,i=0,length=components.length,results=[],index=-1,component;for(;i<length;++i){component=components[i];if(!CQ.is(component,selector)){results[++index]=component}}return results},last:function(components){return components[components.length-1]}},query:function(selector,root){var selectors=selector.split(","),length=selectors.length,i=0,results=[],noDupResults=[],dupMatcher={},query,resultsLn,cmp;for(;i<length;i++){selector=Ext.String.trim(selectors[i]);query=this.cache[selector];if(!query){this.cache[selector]=query=this.parse(selector)}results=results.concat(query.execute(root))}if(length>1){resultsLn=results.length;for(i=0;i<resultsLn;i++){cmp=results[i];if(!dupMatcher[cmp.id]){noDupResults.push(cmp);dupMatcher[cmp.id]=true}}results=noDupResults}return results},is:function(component,selector){if(!selector){return true}var query=this.cache[selector];if(!query){this.cache[selector]=query=this.parse(selector)}return query.is(component)},parse:function(selector){var operations=[],length=matchers.length,lastSelector,tokenMatch,matchedChar,modeMatch,selectorMatch,i,matcher,method;while(selector&&lastSelector!==selector){lastSelector=selector;tokenMatch=selector.match(tokenRe);if(tokenMatch){matchedChar=tokenMatch[1];if(matchedChar==="#"){operations.push({method:filterById,args:[Ext.String.trim(tokenMatch[2])]})}else{if(matchedChar==="."){operations.push({method:filterByClassName,args:[Ext.String.trim(tokenMatch[2])]})}else{operations.push({method:filterByXType,args:[Ext.String.trim(tokenMatch[2]),Boolean(tokenMatch[3])]})}}selector=selector.replace(tokenMatch[0],"")}while(!(modeMatch=selector.match(modeRe))){for(i=0;selector&&i<length;i++){matcher=matchers[i];selectorMatch=selector.match(matcher.re);method=matcher.method;if(selectorMatch){operations.push({method:Ext.isString(matcher.method)?Ext.functionFactory("items",Ext.String.format.apply(Ext.String,[method].concat(selectorMatch.slice(1)))):matcher.method,args:selectorMatch.slice(1)});selector=selector.replace(selectorMatch[0],"");break}}}if(modeMatch[1]){operations.push({mode:modeMatch[2]||modeMatch[1]});selector=selector.replace(modeMatch[0],"")}}return new cq.Query({operations:operations})}})});Ext.define("Ext.util.HashMap",{mixins:{observable:"Ext.util.Observable"},constructor:function(config){config=config||{};var me=this,keyFn=config.keyFn;me.addEvents("add","clear","remove","replace");me.mixins.observable.constructor.call(me,config);me.clear(true);if(keyFn){me.getKey=keyFn}},getCount:function(){return this.length},getData:function(key,value){if(value===undefined){value=key;key=this.getKey(value)}return[key,value]},getKey:function(o){return o.id},add:function(key,value){var me=this,data;if(arguments.length===1){value=key;key=me.getKey(value)}if(me.containsKey(key)){return me.replace(key,value)}data=me.getData(key,value);key=data[0];value=data[1];me.map[key]=value;++me.length;me.fireEvent("add",me,key,value);return value},replace:function(key,value){var me=this,map=me.map,old;if(!me.containsKey(key)){me.add(key,value)}old=map[key];map[key]=value;me.fireEvent("replace",me,key,value,old);return value},remove:function(o){var key=this.findKey(o);if(key!==undefined){return this.removeAtKey(key)}return false},removeAtKey:function(key){var me=this,value;if(me.containsKey(key)){value=me.map[key];delete me.map[key];--me.length;me.fireEvent("remove",me,key,value);return true}return false},get:function(key){return this.map[key]},clear:function(initial){var me=this;me.map={};me.length=0;if(initial!==true){me.fireEvent("clear",me)}return me},containsKey:function(key){return this.map[key]!==undefined},contains:function(value){return this.containsKey(this.findKey(value))},getKeys:function(){return this.getArray(true)},getValues:function(){return this.getArray(false)},getArray:function(isKey){var arr=[],key,map=this.map;for(key in map){if(map.hasOwnProperty(key)){arr.push(isKey?key:map[key])}}return arr},each:function(fn,scope){var items=Ext.apply({},this.map),key,length=this.length;scope=scope||this;for(key in items){if(items.hasOwnProperty(key)){if(fn.call(scope,key,items[key],length)===false){break}}}return this},clone:function(){var hash=new this.self(),map=this.map,key;hash.suspendEvents();for(key in map){if(map.hasOwnProperty(key)){hash.add(key,map[key])}}hash.resumeEvents();return hash},findKey:function(value){var key,map=this.map;for(key in map){if(map.hasOwnProperty(key)&&map[key]===value){return key}}return undefined}});Ext.define("Ext.state.Manager",{singleton:true,requires:["Ext.state.Provider"],constructor:function(){this.provider=Ext.create("Ext.state.Provider")},setProvider:function(stateProvider){this.provider=stateProvider},get:function(key,defaultValue){return this.provider.get(key,defaultValue)},set:function(key,value){this.provider.set(key,value)},clear:function(key){this.provider.clear(key)},getProvider:function(){return this.provider}});Ext.define("Ext.state.Stateful",{mixins:{observable:"Ext.util.Observable"},requires:["Ext.state.Manager"],stateful:true,saveDelay:100,autoGenIdRe:/^((\w+-)|(ext-comp-))\d{4,}$/i,constructor:function(config){var me=this;config=config||{};if(Ext.isDefined(config.stateful)){me.stateful=config.stateful}if(Ext.isDefined(config.saveDelay)){me.saveDelay=config.saveDelay}me.stateId=me.stateId||config.stateId;if(!me.stateEvents){me.stateEvents=[]}if(config.stateEvents){me.stateEvents.concat(config.stateEvents)}this.addEvents("beforestaterestore","staterestore","beforestatesave","statesave");me.mixins.observable.constructor.call(me);if(me.stateful!==false){me.initStateEvents();me.initState()}},initStateEvents:function(){this.addStateEvents(this.stateEvents)},addStateEvents:function(events){if(!Ext.isArray(events)){events=[events]}var me=this,i=0,len=events.length;for(;i<len;++i){me.on(events[i],me.onStateChange,me)}},onStateChange:function(){var me=this,delay=me.saveDelay;if(delay>0){if(!me.stateTask){me.stateTask=Ext.create("Ext.util.DelayedTask",me.saveState,me)}me.stateTask.delay(me.saveDelay)}else{me.saveState()}},saveState:function(){var me=this,id,state;if(me.stateful!==false){id=me.getStateId();if(id){state=me.getState();if(me.fireEvent("beforestatesave",me,state)!==false){Ext.state.Manager.set(id,state);me.fireEvent("statesave",me,state)}}}},getState:function(){return null},applyState:function(state){if(state){Ext.apply(this,state)}},getStateId:function(){var me=this,id=me.stateId;if(!id){id=me.autoGenIdRe.test(String(me.id))?null:me.id}return id},initState:function(){var me=this,id=me.getStateId(),state;if(me.stateful!==false){if(id){state=Ext.state.Manager.get(id);if(state){state=Ext.apply({},state);if(me.fireEvent("beforestaterestore",me,state)!==false){me.applyState(state);me.fireEvent("staterestore",me,state)}}}}},savePropToState:function(propName,state,stateName){var me=this,value=me[propName],config=me.initialConfig;if(me.hasOwnProperty(propName)){if(!config||config[propName]!==value){if(state){state[stateName||propName]=value}return true}}return false},savePropsToState:function(propNames,state){var me=this;Ext.each(propNames,function(propName){me.savePropToState(propName,state)});return state},destroy:function(){var task=this.stateTask;if(task){task.cancel()}this.clearListeners()}});Ext.define("Ext.AbstractManager",{requires:["Ext.util.HashMap"],typeName:"type",constructor:function(config){Ext.apply(this,config||{});this.all=Ext.create("Ext.util.HashMap");this.types={}},get:function(id){return this.all.get(id)},register:function(item){this.all.add(item)},unregister:function(item){this.all.remove(item)},registerType:function(type,cls){this.types[type]=cls;cls[this.typeName]=type},isRegistered:function(type){return this.types[type]!==undefined},create:function(config,defaultType){var type=config[this.typeName]||config.type||defaultType,Constructor=this.types[type];return new Constructor(config)},onAvailable:function(id,fn,scope){var all=this.all,item;if(all.containsKey(id)){item=all.get(id);fn.call(scope||item,item)}else{all.on("add",function(map,key,item){if(key==id){fn.call(scope||item,item);all.un("add",fn,scope)}})}},each:function(fn,scope){this.all.each(fn,scope||this)},getCount:function(){return this.all.getCount()}});Ext.define("Ext.ComponentManager",{extend:"Ext.AbstractManager",alternateClassName:"Ext.ComponentMgr",singleton:true,typeName:"xtype",create:function(component,defaultType){if(component instanceof Ext.AbstractComponent){return component}else{if(Ext.isString(component)){return Ext.createByAlias("widget."+component)}else{var type=component.xtype||defaultType,config=component;return Ext.createByAlias("widget."+type,config)}}},registerType:function(type,cls){this.types[type]=cls;cls[this.typeName]=type;cls.prototype[this.typeName]=type}});Ext.define("Ext.AbstractComponent",{requires:["Ext.ComponentQuery","Ext.ComponentManager"],mixins:{observable:"Ext.util.Observable",animate:"Ext.util.Animate",state:"Ext.state.Stateful"},uses:["Ext.PluginManager","Ext.ComponentManager","Ext.Element","Ext.DomHelper","Ext.XTemplate","Ext.ComponentQuery","Ext.ComponentLoader","Ext.EventManager","Ext.layout.Layout","Ext.layout.component.Auto","Ext.LoadMask","Ext.ZIndexManager"],statics:{AUTO_ID:1000},isComponent:true,getAutoId:function(){return ++Ext.AbstractComponent.AUTO_ID},renderTpl:null,tplWriteMode:"overwrite",baseCls:Ext.baseCSSPrefix+"component",disabledCls:Ext.baseCSSPrefix+"item-disabled",ui:"default",uiCls:[],hidden:false,disabled:false,draggable:false,floating:false,hideMode:"display",styleHtmlContent:false,styleHtmlCls:Ext.baseCSSPrefix+"html",autoShow:false,autoRender:false,needsLayout:false,allowDomMove:true,rendered:false,componentLayoutCounter:0,weight:0,trimRe:/^\s+|\s+$/g,spacesRe:/\s+/,maskOnDisable:true,constructor:function(config){var me=this,i,len;config=config||{};me.initialConfig=config;Ext.apply(me,config);me.addEvents("beforeactivate","activate","beforedeactivate","deactivate","added","disable","enable","beforeshow","show","beforehide","hide","removed","beforerender","render","afterrender","beforedestroy","destroy","resize","move");me.getId();me.mons=[];me.additionalCls=[];me.renderData=me.renderData||{};me.renderSelectors=me.renderSelectors||{};if(me.plugins){me.plugins=[].concat(me.plugins);me.constructPlugins()}me.initComponent();Ext.ComponentManager.register(me);me.mixins.observable.constructor.call(me);me.mixins.state.constructor.call(me,config);this.addStateEvents("resize");if(me.plugins){me.plugins=[].concat(me.plugins);for(i=0,len=me.plugins.length;i<len;i++){me.plugins[i]=me.initPlugin(me.plugins[i])}}me.loader=me.getLoader();if(me.renderTo){me.render(me.renderTo)}if(me.autoShow){me.show()}},initComponent:function(){this.constructPlugins()},getState:function(){var me=this,layout=me.ownerCt?(me.shadowOwnerCt||me.ownerCt).getLayout():null,state={collapsed:me.collapsed},width=me.width,height=me.height,cm=me.collapseMemento,anchors;if(me.collapsed&&cm){if(Ext.isDefined(cm.data.width)){width=cm.width}if(Ext.isDefined(cm.data.height)){height=cm.height}}if(layout&&me.flex){state.flex=me.flex;if(layout.perpendicularPrefix){state[layout.perpendicularPrefix]=me["get"+layout.perpendicularPrefixCap]()}else{}}else{if(layout&&me.anchor){state.anchor=me.anchor;anchors=me.anchor.split(" ").concat(null);if(!anchors[0]){if(me.width){state.width=width}}if(!anchors[1]){if(me.height){state.height=height}}}else{if(me.width){state.width=width}if(me.height){state.height=height}}}if(state.width==me.initialConfig.width){delete state.width}if(state.height==me.initialConfig.height){delete state.height}if(layout&&layout.align&&(layout.align.indexOf("stretch")!==-1)){delete state[layout.perpendicularPrefix]}return state},show:Ext.emptyFn,animate:function(animObj){var me=this,to;animObj=animObj||{};to=animObj.to||{};if(Ext.fx.Manager.hasFxBlock(me.id)){return me}if(!animObj.dynamic&&(to.height||to.width)){var curWidth=me.getWidth(),w=curWidth,curHeight=me.getHeight(),h=curHeight,needsResize=false;if(to.height&&to.height>curHeight){h=to.height;needsResize=true}if(to.width&&to.width>curWidth){w=to.width;needsResize=true}if(needsResize){var clearWidth=!Ext.isNumber(me.width),clearHeight=!Ext.isNumber(me.height);me.componentLayout.childrenChanged=true;me.setSize(w,h,me.ownerCt);me.el.setSize(curWidth,curHeight);if(clearWidth){delete me.width}if(clearHeight){delete me.height}}}return me.mixins.animate.animate.apply(me,arguments)},findLayoutController:function(){return this.findParentBy(function(c){return !c.ownerCt||(c.layout.layoutBusy&&!c.ownerCt.layout.layoutBusy)})},onShow:function(){var needsLayout=this.needsLayout;if(Ext.isObject(needsLayout)){this.doComponentLayout(needsLayout.width,needsLayout.height,needsLayout.isSetSize,needsLayout.ownerCt)}},constructPlugin:function(plugin){if(plugin.ptype&&typeof plugin.init!="function"){plugin.cmp=this;plugin=Ext.PluginManager.create(plugin)}else{if(typeof plugin=="string"){plugin=Ext.PluginManager.create({ptype:plugin,cmp:this})}}return plugin},constructPlugins:function(){var me=this,plugins=me.plugins,i,len;if(plugins){for(i=0,len=plugins.length;i<len;i++){plugins[i]=me.constructPlugin(plugins[i])}}},initPlugin:function(plugin){plugin.init(this);return plugin},doAutoRender:function(){var me=this;if(me.floating){me.render(document.body)}else{me.render(Ext.isBoolean(me.autoRender)?Ext.getBody():me.autoRender)}},render:function(container,position){var me=this;if(!me.rendered&&me.fireEvent("beforerender",me)!==false){me.rendering=true;if(me.el){me.el=Ext.get(me.el)}if(me.floating){me.onFloatRender()}container=me.initContainer(container);me.onRender(container,position);me.el.setVisibilityMode(Ext.Element[me.hideMode.toUpperCase()]);if(me.overCls){me.el.hover(me.addOverCls,me.removeOverCls,me)}me.fireEvent("render",me);me.initContent();me.afterRender(container);me.fireEvent("afterrender",me);me.initEvents();if(me.hidden){me.el.hide()}if(me.disabled){me.disable(true)}delete me.rendering}return me},onRender:function(container,position){var me=this,el=me.el,styles=me.initStyles(),renderTpl,renderData,i;position=me.getInsertPosition(position);if(!el){if(position){el=Ext.DomHelper.insertBefore(position,me.getElConfig(),true)}else{el=Ext.DomHelper.append(container,me.getElConfig(),true)}}else{if(me.allowDomMove!==false){if(position){container.dom.insertBefore(el.dom,position)}else{container.dom.appendChild(el.dom)}}}if(Ext.scopeResetCSS&&!me.ownerCt){if(el.dom==Ext.getBody().dom){el.parent().addCls(Ext.baseCSSPrefix+"reset")}else{me.resetEl=el.wrap({cls:Ext.baseCSSPrefix+"reset"})}}me.setUI(me.ui);el.addCls(me.initCls());el.setStyle(styles);me.el=el;me.initFrame();renderTpl=me.initRenderTpl();if(renderTpl){renderData=me.initRenderData();renderTpl.append(me.getTargetEl(),renderData)}me.applyRenderSelectors();me.rendered=true},afterRender:function(){var me=this,pos,xy;me.getComponentLayout();if(me.collapsed||(!me.ownerCt||(me.height||me.width))){me.setSize(me.width,me.height)}else{me.renderChildren()}if(me.floating&&(me.x===undefined||me.y===undefined)){if(me.floatParent){xy=me.el.getAlignToXY(me.floatParent.getTargetEl(),"c-c");pos=me.floatParent.getTargetEl().translatePoints(xy[0],xy[1])}else{xy=me.el.getAlignToXY(me.container,"c-c");pos=me.container.translatePoints(xy[0],xy[1])}me.x=me.x===undefined?pos.left:me.x;me.y=me.y===undefined?pos.top:me.y}if(Ext.isDefined(me.x)||Ext.isDefined(me.y)){me.setPosition(me.x,me.y)}if(me.styleHtmlContent){me.getTargetEl().addCls(me.styleHtmlCls)}},registerFloatingItem:function(cmp){var me=this;if(!me.floatingItems){me.floatingItems=Ext.create("Ext.ZIndexManager",me)}me.floatingItems.register(cmp)},renderChildren:function(){var me=this,layout=me.getComponentLayout();me.suspendLayout=true;layout.renderChildren();delete me.suspendLayout},frameCls:Ext.baseCSSPrefix+"frame",frameIdRegex:/[-]frame\d+[TMB][LCR]$/,frameElementCls:{tl:[],tc:[],tr:[],ml:[],mc:[],mr:[],bl:[],bc:[],br:[]},frameTpl:['<tpl if="top">','<tpl if="left"><div id="{fgid}TL" class="{frameCls}-tl {baseCls}-tl {baseCls}-{ui}-tl<tpl if="uiCls"><tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-tl</tpl></tpl>" style="background-position: {tl}; padding-left: {frameWidth}px" role="presentation"></tpl>','<tpl if="right"><div id="{fgid}TR" class="{frameCls}-tr {baseCls}-tr {baseCls}-{ui}-tr<tpl if="uiCls"><tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-tr</tpl></tpl>" style="background-position: {tr}; padding-right: {frameWidth}px" role="presentation"></tpl>','<div id="{fgid}TC" class="{frameCls}-tc {baseCls}-tc {baseCls}-{ui}-tc<tpl if="uiCls"><tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-tc</tpl></tpl>" style="background-position: {tc}; height: {frameWidth}px" role="presentation"></div>','<tpl if="right"></div></tpl>','<tpl if="left"></div></tpl>',"</tpl>",'<tpl if="left"><div id="{fgid}ML" class="{frameCls}-ml {baseCls}-ml {baseCls}-{ui}-ml<tpl if="uiCls"><tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-ml</tpl></tpl>" style="background-position: {ml}; padding-left: {frameWidth}px" role="presentation"></tpl>','<tpl if="right"><div id="{fgid}MR" class="{frameCls}-mr {baseCls}-mr {baseCls}-{ui}-mr<tpl if="uiCls"><tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-mr</tpl></tpl>" style="background-position: {mr}; padding-right: {frameWidth}px" role="presentation"></tpl>','<div id="{fgid}MC" class="{frameCls}-mc {baseCls}-mc {baseCls}-{ui}-mc<tpl if="uiCls"><tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-mc</tpl></tpl>" role="presentation"></div>','<tpl if="right"></div></tpl>','<tpl if="left"></div></tpl>','<tpl if="bottom">','<tpl if="left"><div id="{fgid}BL" class="{frameCls}-bl {baseCls}-bl {baseCls}-{ui}-bl<tpl if="uiCls"><tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-bl</tpl></tpl>" style="background-position: {bl}; padding-left: {frameWidth}px" role="presentation"></tpl>','<tpl if="right"><div id="{fgid}BR" class="{frameCls}-br {baseCls}-br {baseCls}-{ui}-br<tpl if="uiCls"><tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-br</tpl></tpl>" style="background-position: {br}; padding-right: {frameWidth}px" role="presentation"></tpl>','<div id="{fgid}BC" class="{frameCls}-bc {baseCls}-bc {baseCls}-{ui}-bc<tpl if="uiCls"><tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-bc</tpl></tpl>" style="background-position: {bc}; height: {frameWidth}px" role="presentation"></div>','<tpl if="right"></div></tpl>','<tpl if="left"></div></tpl>',"</tpl>"],frameTableTpl:["<table><tbody>",'<tpl if="top">',"<tr>",'<tpl if="left"><td id="{fgid}TL" class="{frameCls}-tl {baseCls}-tl {baseCls}-{ui}-tl<tpl if="uiCls"><tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-tl</tpl></tpl>" style="background-position: {tl}; padding-left:{frameWidth}px" role="presentation"></td></tpl>','<td id="{fgid}TC" class="{frameCls}-tc {baseCls}-tc {baseCls}-{ui}-tc<tpl if="uiCls"><tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-tc</tpl></tpl>" style="background-position: {tc}; height: {frameWidth}px" role="presentation"></td>','<tpl if="right"><td id="{fgid}TR" class="{frameCls}-tr {baseCls}-tr {baseCls}-{ui}-tr<tpl if="uiCls"><tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-tr</tpl></tpl>" style="background-position: {tr}; padding-left: {frameWidth}px" role="presentation"></td></tpl>',"</tr>","</tpl>","<tr>",'<tpl if="left"><td id="{fgid}ML" class="{frameCls}-ml {baseCls}-ml {baseCls}-{ui}-ml<tpl if="uiCls"><tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-ml</tpl></tpl>" style="background-position: {ml}; padding-left: {frameWidth}px" role="presentation"></td></tpl>','<td id="{fgid}MC" class="{frameCls}-mc {baseCls}-mc {baseCls}-{ui}-mc<tpl if="uiCls"><tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-mc</tpl></tpl>" style="background-position: 0 0;" role="presentation"></td>','<tpl if="right"><td id="{fgid}MR" class="{frameCls}-mr {baseCls}-mr {baseCls}-{ui}-mr<tpl if="uiCls"><tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-mr</tpl></tpl>" style="background-position: {mr}; padding-left: {frameWidth}px" role="presentation"></td></tpl>',"</tr>",'<tpl if="bottom">',"<tr>",'<tpl if="left"><td id="{fgid}BL" class="{frameCls}-bl {baseCls}-bl {baseCls}-{ui}-bl<tpl if="uiCls"><tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-bl</tpl></tpl>" style="background-position: {bl}; padding-left: {frameWidth}px" role="presentation"></td></tpl>','<td id="{fgid}BC" class="{frameCls}-bc {baseCls}-bc {baseCls}-{ui}-bc<tpl if="uiCls"><tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-bc</tpl></tpl>" style="background-position: {bc}; height: {frameWidth}px" role="presentation"></td>','<tpl if="right"><td id="{fgid}BR" class="{frameCls}-br {baseCls}-br {baseCls}-{ui}-br<tpl if="uiCls"><tpl for="uiCls"> {parent.baseCls}-{parent.ui}-{.}-br</tpl></tpl>" style="background-position: {br}; padding-left: {frameWidth}px" role="presentation"></td></tpl>',"</tr>","</tpl>","</tbody></table>"],initFrame:function(){if(Ext.supports.CSS3BorderRadius){return false}var me=this,frameInfo=me.getFrameInfo(),frameWidth=frameInfo.width,frameTpl=me.getFrameTpl(frameInfo.table),frameGenId;if(me.frame){me.frameGenId=frameGenId=(me.frameGenId||0)+1;frameGenId=me.id+"-frame"+frameGenId;frameTpl.insertFirst(me.el,Ext.apply({},{fgid:frameGenId,ui:me.ui,uiCls:me.uiCls,frameCls:me.frameCls,baseCls:me.baseCls,frameWidth:frameWidth,top:!!frameInfo.top,left:!!frameInfo.left,right:!!frameInfo.right,bottom:!!frameInfo.bottom},me.getFramePositions(frameInfo)));me.frameBody=me.el.down("."+me.frameCls+"-mc");me.removeChildEls(function(c){return c.id&&me.frameIdRegex.test(c.id)});Ext.each(["TL","TC","TR","ML","MC","MR","BL","BC","BR"],function(suffix){me.childEls.push({name:"frame"+suffix,id:frameGenId+suffix})})}},updateFrame:function(){if(Ext.supports.CSS3BorderRadius){return false}var me=this,wasTable=this.frameSize&&this.frameSize.table,oldFrameTL=this.frameTL,oldFrameBL=this.frameBL,oldFrameML=this.frameML,oldFrameMC=this.frameMC,newMCClassName;this.initFrame();if(oldFrameMC){if(me.frame){delete me.frameTL;delete me.frameTC;delete me.frameTR;delete me.frameML;delete me.frameMC;delete me.frameMR;delete me.frameBL;delete me.frameBC;delete me.frameBR;this.applyRenderSelectors();newMCClassName=this.frameMC.dom.className;oldFrameMC.insertAfter(this.frameMC);this.frameMC.remove();this.frameBody=this.frameMC=oldFrameMC;oldFrameMC.dom.className=newMCClassName;if(wasTable){me.el.query("> table")[1].remove()}else{if(oldFrameTL){oldFrameTL.remove()}if(oldFrameBL){oldFrameBL.remove()}oldFrameML.remove()}}else{}}else{if(me.frame){this.applyRenderSelectors()}}},getFrameInfo:function(){if(Ext.supports.CSS3BorderRadius){return false}var me=this,left=me.el.getStyle("background-position-x"),top=me.el.getStyle("background-position-y"),info,frameInfo=false,max;if(!left&&!top){info=me.el.getStyle("background-position").split(" ");left=info[0];top=info[1]}if(parseInt(left,10)>=1000000&&parseInt(top,10)>=1000000){max=Math.max;frameInfo={table:left.substr(0,3)=="110",vertical:top.substr(0,3)=="110",top:max(left.substr(3,2),left.substr(5,2)),right:max(left.substr(5,2),top.substr(3,2)),bottom:max(top.substr(3,2),top.substr(5,2)),left:max(top.substr(5,2),left.substr(3,2))};frameInfo.width=max(frameInfo.top,frameInfo.right,frameInfo.bottom,frameInfo.left);me.el.setStyle("background-image","none")}if(me.frame===true&&!frameInfo){}me.frame=me.frame||!!frameInfo;me.frameSize=frameInfo||false;return frameInfo},getFramePositions:function(frameInfo){var me=this,frameWidth=frameInfo.width,dock=me.dock,positions,tc,bc,ml,mr;if(frameInfo.vertical){tc="0 -"+(frameWidth*0)+"px";bc="0 -"+(frameWidth*1)+"px";if(dock&&dock=="right"){tc="right -"+(frameWidth*0)+"px";bc="right -"+(frameWidth*1)+"px"}positions={tl:"0 -"+(frameWidth*0)+"px",tr:"0 -"+(frameWidth*1)+"px",bl:"0 -"+(frameWidth*2)+"px",br:"0 -"+(frameWidth*3)+"px",ml:"-"+(frameWidth*1)+"px 0",mr:"right 0",tc:tc,bc:bc}}else{ml="-"+(frameWidth*0)+"px 0";mr="right 0";if(dock&&dock=="bottom"){ml="left bottom";mr="right bottom"}positions={tl:"0 -"+(frameWidth*2)+"px",tr:"right -"+(frameWidth*3)+"px",bl:"0 -"+(frameWidth*4)+"px",br:"right -"+(frameWidth*5)+"px",ml:ml,mr:mr,tc:"0 -"+(frameWidth*0)+"px",bc:"0 -"+(frameWidth*1)+"px"}}return positions},getFrameTpl:function(table){return table?this.getTpl("frameTableTpl"):this.getTpl("frameTpl")},initCls:function(){var me=this,cls=[];cls.push(me.baseCls);if(Ext.isDefined(me.cmpCls)){if(Ext.isDefined(Ext.global.console)){Ext.global.console.warn("Ext.Component: cmpCls has been deprecated. Please use componentCls.")}me.componentCls=me.cmpCls;delete me.cmpCls}if(me.componentCls){cls.push(me.componentCls)}else{me.componentCls=me.baseCls}if(me.cls){cls.push(me.cls);delete me.cls}return cls.concat(me.additionalCls)},setUI:function(ui){var me=this,oldUICls=Ext.Array.clone(me.uiCls),newUICls=[],classes=[],cls,i;for(i=0;i<oldUICls.length;i++){cls=oldUICls[i];classes=classes.concat(me.removeClsWithUI(cls,true));newUICls.push(cls)}if(classes.length){me.removeCls(classes)}me.removeUIFromElement();me.ui=ui;me.addUIToElement();classes=[];for(i=0;i<newUICls.length;i++){cls=newUICls[i];classes=classes.concat(me.addClsWithUI(cls,true))}if(classes.length){me.addCls(classes)}},addClsWithUI:function(cls,skip){var me=this,classes=[],i;if(!Ext.isArray(cls)){cls=[cls]}for(i=0;i<cls.length;i++){if(cls[i]&&!me.hasUICls(cls[i])){me.uiCls=Ext.Array.clone(me.uiCls);me.uiCls.push(cls[i]);classes=classes.concat(me.addUIClsToElement(cls[i]))}}if(skip!==true){me.addCls(classes)}return classes},removeClsWithUI:function(cls,skip){var me=this,classes=[],i;if(!Ext.isArray(cls)){cls=[cls]}for(i=0;i<cls.length;i++){if(cls[i]&&me.hasUICls(cls[i])){me.uiCls=Ext.Array.remove(me.uiCls,cls[i]);classes=classes.concat(me.removeUIClsFromElement(cls[i]))}}if(skip!==true){me.removeCls(classes)}return classes},hasUICls:function(cls){var me=this,uiCls=me.uiCls||[];return Ext.Array.contains(uiCls,cls)},addUIClsToElement:function(cls,force){var me=this,result=[],frameElementCls=me.frameElementCls;result.push(Ext.baseCSSPrefix+cls);result.push(me.baseCls+"-"+cls);result.push(me.baseCls+"-"+me.ui+"-"+cls);if(!force&&me.frame&&!Ext.supports.CSS3BorderRadius){var els=["tl","tc","tr","ml","mc","mr","bl","bc","br"],classes,i,j,el;for(i=0;i<els.length;i++){el=me["frame"+els[i].toUpperCase()];classes=[me.baseCls+"-"+me.ui+"-"+els[i],me.baseCls+"-"+me.ui+"-"+cls+"-"+els[i]];if(el&&el.dom){el.addCls(classes)}else{for(j=0;j<classes.length;j++){if(Ext.Array.indexOf(frameElementCls[els[i]],classes[j])==-1){frameElementCls[els[i]].push(classes[j])}}}}}me.frameElementCls=frameElementCls;return result},removeUIClsFromElement:function(cls,force){var me=this,result=[],frameElementCls=me.frameElementCls;result.push(Ext.baseCSSPrefix+cls);result.push(me.baseCls+"-"+cls);result.push(me.baseCls+"-"+me.ui+"-"+cls);if(!force&&me.frame&&!Ext.supports.CSS3BorderRadius){var els=["tl","tc","tr","ml","mc","mr","bl","bc","br"],i,el;cls=me.baseCls+"-"+me.ui+"-"+cls+"-"+els[i];for(i=0;i<els.length;i++){el=me["frame"+els[i].toUpperCase()];if(el&&el.dom){el.removeCls(cls)}else{Ext.Array.remove(frameElementCls[els[i]],cls)}}}me.frameElementCls=frameElementCls;return result},addUIToElement:function(force){var me=this,frameElementCls=me.frameElementCls;me.addCls(me.baseCls+"-"+me.ui);if(me.frame&&!Ext.supports.CSS3BorderRadius){var els=["tl","tc","tr","ml","mc","mr","bl","bc","br"],i,el,cls;for(i=0;i<els.length;i++){el=me["frame"+els[i].toUpperCase()];cls=me.baseCls+"-"+me.ui+"-"+els[i];if(el){el.addCls(cls)}else{if(!Ext.Array.contains(frameElementCls[els[i]],cls)){frameElementCls[els[i]].push(cls)}}}}},removeUIFromElement:function(){var me=this,frameElementCls=me.frameElementCls;me.removeCls(me.baseCls+"-"+me.ui);if(me.frame&&!Ext.supports.CSS3BorderRadius){var els=["tl","tc","tr","ml","mc","mr","bl","bc","br"],i,j,el,cls;for(i=0;i<els.length;i++){el=me["frame"+els[i].toUpperCase()];cls=me.baseCls+"-"+me.ui+"-"+els[i];if(el){el.removeCls(cls)}else{Ext.Array.remove(frameElementCls[els[i]],cls)}}}},getElConfig:function(){if(Ext.isString(this.autoEl)){this.autoEl={tag:this.autoEl}}var result=this.autoEl||{tag:"div"};result.id=this.id;return result},getInsertPosition:function(position){if(position!==undefined){if(Ext.isNumber(position)){position=this.container.dom.childNodes[position]}else{position=Ext.getDom(position)}}return position},initContainer:function(container){var me=this;if(!container&&me.el){container=me.el.dom.parentNode;me.allowDomMove=false}me.container=Ext.get(container);if(me.ctCls){me.container.addCls(me.ctCls)}return me.container},initRenderData:function(){var me=this;return Ext.applyIf(me.renderData,{id:me.id,ui:me.ui,uiCls:me.uiCls,baseCls:me.baseCls,componentCls:me.componentCls,frame:me.frame})},getTpl:function(name){var me=this,prototype=me.self.prototype,ownerPrototype,tpl;if(me.hasOwnProperty(name)){tpl=me[name];if(tpl&&!(tpl instanceof Ext.XTemplate)){me[name]=Ext.ClassManager.dynInstantiate("Ext.XTemplate",tpl)}return me[name]}if(!(prototype[name] instanceof Ext.XTemplate)){ownerPrototype=prototype;do{if(ownerPrototype.hasOwnProperty(name)){tpl=ownerPrototype[name];if(tpl&&!(tpl instanceof Ext.XTemplate)){ownerPrototype[name]=Ext.ClassManager.dynInstantiate("Ext.XTemplate",tpl);break}}ownerPrototype=ownerPrototype.superclass}while(ownerPrototype)}return prototype[name]},initRenderTpl:function(){return this.getTpl("renderTpl")},initStyles:function(){var style={},me=this,Element=Ext.Element;if(Ext.isString(me.style)){style=Element.parseStyles(me.style)}else{style=Ext.apply({},me.style)}if(me.padding!==undefined){style.padding=Element.unitizeBox((me.padding===true)?5:me.padding)}if(me.margin!==undefined){style.margin=Element.unitizeBox((me.margin===true)?5:me.margin)}delete me.style;return style},initContent:function(){var me=this,target=me.getTargetEl(),contentEl,pre;if(me.html){target.update(Ext.DomHelper.markup(me.html));delete me.html}if(me.contentEl){contentEl=Ext.get(me.contentEl);pre=Ext.baseCSSPrefix;contentEl.removeCls([pre+"hidden",pre+"hide-display",pre+"hide-offsets",pre+"hide-nosize"]);target.appendChild(contentEl.dom)}if(me.tpl){if(!me.tpl.isTemplate){me.tpl=Ext.create("Ext.XTemplate",me.tpl)}if(me.data){me.tpl[me.tplWriteMode](target,me.data);delete me.data}}},initEvents:function(){var me=this,afterRenderEvents=me.afterRenderEvents,el,property,fn=function(listeners){me.mon(el,listeners)};if(afterRenderEvents){for(property in afterRenderEvents){if(afterRenderEvents.hasOwnProperty(property)){el=me[property];if(el&&el.on){Ext.each(afterRenderEvents[property],fn)}}}}},addChildEls:function(){var me=this,childEls=me.childEls||(me.childEls=[]);childEls.push.apply(childEls,arguments)},removeChildEls:function(testFn){var me=this,old=me.childEls,keepers=(me.childEls=[]),n,i,cel;for(i=0,n=old.length;i<n;++i){cel=old[i];if(!testFn(cel)){keepers.push(cel)}}},applyRenderSelectors:function(){var me=this,childEls=me.childEls,selectors=me.renderSelectors,el=me.el,dom=el.dom,baseId,childName,childId,i,selector;if(childEls){baseId=me.id+"-";for(i=childEls.length;i--;){childName=childId=childEls[i];if(typeof(childName)!="string"){childId=childName.id||(baseId+childName.itemId);childName=childName.name}else{childId=baseId+childId}me[childName]=el.getById(childId)}}if(selectors){for(selector in selectors){if(selectors.hasOwnProperty(selector)&&selectors[selector]){me[selector]=Ext.get(Ext.DomQuery.selectNode(selectors[selector],dom))}}}},is:function(selector){return Ext.ComponentQuery.is(this,selector)},up:function(selector){var result=this.ownerCt;if(selector){for(;result;result=result.ownerCt){if(Ext.ComponentQuery.is(result,selector)){return result}}}return result},nextSibling:function(selector){var o=this.ownerCt,it,last,idx,c;if(o){it=o.items;idx=it.indexOf(this)+1;if(idx){if(selector){for(last=it.getCount();idx<last;idx++){if((c=it.getAt(idx)).is(selector)){return c}}}else{if(idx<it.getCount()){return it.getAt(idx)}}}}return null},previousSibling:function(selector){var o=this.ownerCt,it,idx,c;if(o){it=o.items;idx=it.indexOf(this);if(idx!=-1){if(selector){for(--idx;idx>=0;idx--){if((c=it.getAt(idx)).is(selector)){return c}}}else{if(idx){return it.getAt(--idx)}}}}return null},previousNode:function(selector,includeSelf){var node=this,result,it,len,i;if(includeSelf&&node.is(selector)){return node}result=this.prev(selector);if(result){return result}if(node.ownerCt){for(it=node.ownerCt.items.items,i=Ext.Array.indexOf(it,node)-1;i>-1;i--){if(it[i].query){result=it[i].query(selector);result=result[result.length-1];if(result){return result}}}return node.ownerCt.previousNode(selector,true)}},nextNode:function(selector,includeSelf){var node=this,result,it,len,i;if(includeSelf&&node.is(selector)){return node}result=this.next(selector);if(result){return result}if(node.ownerCt){for(it=node.ownerCt.items,i=it.indexOf(node)+1,it=it.items,len=it.length;i<len;i++){if(it[i].down){result=it[i].down(selector);if(result){return result}}}return node.ownerCt.nextNode(selector)}},getId:function(){return this.id||(this.id="ext-comp-"+(this.getAutoId()))},getItemId:function(){return this.itemId||this.id},getEl:function(){return this.el},getTargetEl:function(){return this.frameBody||this.el},isXType:function(xtype,shallow){if(Ext.isFunction(xtype)){xtype=xtype.xtype}else{if(Ext.isObject(xtype)){xtype=xtype.statics().xtype}}return !shallow?("/"+this.getXTypes()+"/").indexOf("/"+xtype+"/")!=-1:this.self.xtype==xtype},getXTypes:function(){var self=this.self,xtypes,parentPrototype,parentXtypes;if(!self.xtypes){xtypes=[];parentPrototype=this;while(parentPrototype){parentXtypes=parentPrototype.xtypes;if(parentXtypes!==undefined){xtypes.unshift.apply(xtypes,parentXtypes)}parentPrototype=parentPrototype.superclass}self.xtypeChain=xtypes;self.xtypes=xtypes.join("/")}return self.xtypes},update:function(htmlOrData,loadScripts,cb){var me=this;if(me.tpl&&!Ext.isString(htmlOrData)){me.data=htmlOrData;if(me.rendered){me.tpl[me.tplWriteMode](me.getTargetEl(),htmlOrData||{})}}else{me.html=Ext.isObject(htmlOrData)?Ext.DomHelper.markup(htmlOrData):htmlOrData;if(me.rendered){me.getTargetEl().update(me.html,loadScripts,cb)}}if(me.rendered){me.doComponentLayout()}},setVisible:function(visible){return this[visible?"show":"hide"]()},isVisible:function(deep){var me=this,child=me,visible=!me.hidden,ancestor=me.ownerCt;me.hiddenAncestor=false;if(me.destroyed){return false}if(deep&&visible&&me.rendered&&ancestor){while(ancestor){if(ancestor.hidden||(ancestor.collapsed&&!(ancestor.getDockedItems&&Ext.Array.contains(ancestor.getDockedItems(),child)))){me.hiddenAncestor=ancestor;visible=false;break}child=ancestor;ancestor=ancestor.ownerCt}}return visible},enable:function(silent){var me=this;if(me.rendered){me.el.removeCls(me.disabledCls);me.el.dom.disabled=false;me.onEnable()}me.disabled=false;if(silent!==true){me.fireEvent("enable",me)}return me},disable:function(silent){var me=this;if(me.rendered){me.el.addCls(me.disabledCls);me.el.dom.disabled=true;me.onDisable()}me.disabled=true;if(silent!==true){me.fireEvent("disable",me)}return me},onEnable:function(){if(this.maskOnDisable){this.el.unmask()}},onDisable:function(){if(this.maskOnDisable){this.el.mask()}},isDisabled:function(){return this.disabled},setDisabled:function(disabled){return this[disabled?"disable":"enable"]()},isHidden:function(){return this.hidden},addCls:function(className){var me=this;if(!className){return me}if(!Ext.isArray(className)){className=className.replace(me.trimRe,"").split(me.spacesRe)}if(me.rendered){me.el.addCls(className)}else{me.additionalCls=Ext.Array.unique(me.additionalCls.concat(className))}return me},addClass:function(){return this.addCls.apply(this,arguments)},removeCls:function(className){var me=this;if(!className){return me}if(!Ext.isArray(className)){className=className.replace(me.trimRe,"").split(me.spacesRe)}if(me.rendered){me.el.removeCls(className)}else{if(me.additionalCls.length){Ext.each(className,function(cls){Ext.Array.remove(me.additionalCls,cls)})}}return me},addOverCls:function(){var me=this;if(!me.disabled){me.el.addCls(me.overCls)}},removeOverCls:function(){this.el.removeCls(this.overCls)},addListener:function(element,listeners,scope,options){var me=this,fn,option;if(Ext.isString(element)&&(Ext.isObject(listeners)||options&&options.element)){if(options.element){fn=listeners;listeners={};listeners[element]=fn;element=options.element;if(scope){listeners.scope=scope}for(option in options){if(options.hasOwnProperty(option)){if(me.eventOptionsRe.test(option)){listeners[option]=options[option]}}}}if(me[element]&&me[element].on){me.mon(me[element],listeners)}else{me.afterRenderEvents=me.afterRenderEvents||{};if(!me.afterRenderEvents[element]){me.afterRenderEvents[element]=[]}me.afterRenderEvents[element].push(listeners)}}return me.mixins.observable.addListener.apply(me,arguments)},removeManagedListenerItem:function(isClear,managedListener,item,ename,fn,scope){var me=this,element=managedListener.options?managedListener.options.element:null;if(element){element=me[element];if(element&&element.un){if(isClear||(managedListener.item===item&&managedListener.ename===ename&&(!fn||managedListener.fn===fn)&&(!scope||managedListener.scope===scope))){element.un(managedListener.ename,managedListener.fn,managedListener.scope);if(!isClear){Ext.Array.remove(me.managedListeners,managedListener)}}}}else{return me.mixins.observable.removeManagedListenerItem.apply(me,arguments)}},getBubbleTarget:function(){return this.ownerCt},isFloating:function(){return this.floating},isDraggable:function(){return !!this.draggable},isDroppable:function(){return !!this.droppable},onAdded:function(container,pos){this.ownerCt=container;this.fireEvent("added",this,container,pos)},onRemoved:function(){var me=this;me.fireEvent("removed",me,me.ownerCt);delete me.ownerCt},beforeDestroy:Ext.emptyFn,onResize:Ext.emptyFn,setSize:function(width,height){var me=this,layoutCollection;if(Ext.isObject(width)){height=width.height;width=width.width}if(Ext.isNumber(width)){width=Ext.Number.constrain(width,me.minWidth,me.maxWidth)}if(Ext.isNumber(height)){height=Ext.Number.constrain(height,me.minHeight,me.maxHeight)}if(!me.rendered||!me.isVisible()){if(me.hiddenAncestor){layoutCollection=me.hiddenAncestor.layoutOnShow;layoutCollection.remove(me);layoutCollection.add(me)}me.needsLayout={width:width,height:height,isSetSize:true};if(!me.rendered){me.width=(width!==undefined)?width:me.width;me.height=(height!==undefined)?height:me.height}return me}me.doComponentLayout(width,height,true);return me},isFixedWidth:function(){var me=this,layoutManagedWidth=me.layoutManagedWidth;if(Ext.isDefined(me.width)||layoutManagedWidth==1){return true}if(layoutManagedWidth==2){return false}return(me.ownerCt&&me.ownerCt.isFixedWidth())},isFixedHeight:function(){var me=this,layoutManagedHeight=me.layoutManagedHeight;if(Ext.isDefined(me.height)||layoutManagedHeight==1){return true}if(layoutManagedHeight==2){return false}return(me.ownerCt&&me.ownerCt.isFixedHeight())},setCalculatedSize:function(width,height,callingContainer){var me=this,layoutCollection;if(Ext.isObject(width)){callingContainer=width.ownerCt;height=width.height;width=width.width}if(Ext.isNumber(width)){width=Ext.Number.constrain(width,me.minWidth,me.maxWidth)}if(Ext.isNumber(height)){height=Ext.Number.constrain(height,me.minHeight,me.maxHeight)}if(!me.rendered||!me.isVisible()){if(me.hiddenAncestor){layoutCollection=me.hiddenAncestor.layoutOnShow;layoutCollection.remove(me);layoutCollection.add(me)}me.needsLayout={width:width,height:height,isSetSize:false,ownerCt:callingContainer};return me}me.doComponentLayout(width,height,false,callingContainer);return me},doComponentLayout:function(width,height,isSetSize,callingContainer){var me=this,componentLayout=me.getComponentLayout(),lastComponentSize=componentLayout.lastComponentSize||{width:undefined,height:undefined};if(me.rendered&&componentLayout){if(!Ext.isDefined(width)){if(me.isFixedWidth()){width=Ext.isDefined(me.width)?me.width:lastComponentSize.width}}if(!Ext.isDefined(height)){if(me.isFixedHeight()){height=Ext.isDefined(me.height)?me.height:lastComponentSize.height}}if(isSetSize){me.width=width;me.height=height}componentLayout.layout(width,height,isSetSize,callingContainer)}return me},forceComponentLayout:function(){this.doComponentLayout()},setComponentLayout:function(layout){var currentLayout=this.componentLayout;if(currentLayout&&currentLayout.isLayout&&currentLayout!=layout){currentLayout.setOwner(null)}this.componentLayout=layout;layout.setOwner(this)},getComponentLayout:function(){var me=this;if(!me.componentLayout||!me.componentLayout.isLayout){me.setComponentLayout(Ext.layout.Layout.create(me.componentLayout,"autocomponent"))}return me.componentLayout},afterComponentLayout:function(width,height,isSetSize,callingContainer){var me=this,layout=me.componentLayout,oldSize=me.preLayoutSize;++me.componentLayoutCounter;if(!oldSize||((width!==oldSize.width)||(height!==oldSize.height))){me.fireEvent("resize",me,width,height)}},beforeComponentLayout:function(width,height,isSetSize,callingContainer){this.preLayoutSize=this.componentLayout.lastComponentSize;return true},setPosition:function(x,y){var me=this;if(Ext.isObject(x)){y=x.y;x=x.x}if(!me.rendered){return me}if(x!==undefined||y!==undefined){me.el.setBox(x,y);me.onPosition(x,y);me.fireEvent("move",me,x,y)}return me},onPosition:Ext.emptyFn,setWidth:function(width){return this.setSize(width)},setHeight:function(height){return this.setSize(undefined,height)},getSize:function(){return this.el.getSize()},getWidth:function(){return this.el.getWidth()},getHeight:function(){return this.el.getHeight()},getLoader:function(){var me=this,autoLoad=me.autoLoad?(Ext.isObject(me.autoLoad)?me.autoLoad:{url:me.autoLoad}):null,loader=me.loader||autoLoad;if(loader){if(!loader.isLoader){me.loader=Ext.create("Ext.ComponentLoader",Ext.apply({target:me,autoLoad:autoLoad},loader))}else{loader.setTarget(me)}return me.loader}return null},setLoading:function(load,targetEl){var me=this,config;if(me.rendered){if(load!==false&&!me.collapsed){if(Ext.isObject(load)){config=load}else{if(Ext.isString(load)){config={msg:load}}else{config={}}}me.loadMask=me.loadMask||Ext.create("Ext.LoadMask",targetEl?me.getTargetEl():me.el,config);me.loadMask.show()}else{if(me.loadMask){Ext.destroy(me.loadMask);me.loadMask=null}}}return me.loadMask},setDocked:function(dock,layoutParent){var me=this;me.dock=dock;if(layoutParent&&me.ownerCt&&me.rendered){me.ownerCt.doComponentLayout()}return me},onDestroy:function(){var me=this;if(me.monitorResize&&Ext.EventManager.resizeEvent){Ext.EventManager.resizeEvent.removeListener(me.setSize,me)}Ext.destroy(me.componentLayout,me.loadMask,me.floatingItems)},cleanElementRefs:function(){var me=this,i=0,childEls=me.childEls,selectors=me.renderSelectors,selector,name,len;if(me.rendered){if(childEls){for(len=childEls.length;i<len;++i){name=childEls[i];if(typeof(name)!="string"){name=name.name}delete me[name]}}if(selectors){for(selector in selectors){if(selectors.hasOwnProperty(selector)){delete me[selector]}}}}delete me.rendered;delete me.el;delete me.frameBody},destroy:function(){var me=this;if(!me.isDestroyed){if(me.fireEvent("beforedestroy",me)!==false){me.destroying=true;me.beforeDestroy();if(me.floating){delete me.floatParent;if(me.zIndexManager){me.zIndexManager.unregister(me)}}else{if(me.ownerCt&&me.ownerCt.remove){me.ownerCt.remove(me,false)}}me.onDestroy();Ext.destroy(me.plugins);if(me.rendered){me.el.remove()}me.fireEvent("destroy",me);Ext.ComponentManager.unregister(me);me.mixins.state.destroy.call(me);me.clearListeners();me.cleanElementRefs();me.destroying=false;me.isDestroyed=true}}},getPlugin:function(pluginId){var i=0,plugins=this.plugins,ln=plugins.length;for(;i<ln;i++){if(plugins[i].pluginId===pluginId){return plugins[i]}}},isDescendantOf:function(container){return !!this.findParentBy(function(p){return p===container})}},function(){this.createAlias({on:"addListener",prev:"previousSibling",next:"nextSibling"})});Ext.define("Ext.AbstractPlugin",{disabled:false,constructor:function(config){Ext.apply(this,config)},getCmp:function(){return this.cmp},init:Ext.emptyFn,destroy:Ext.emptyFn,enable:function(){this.disabled=false},disable:function(){this.disabled=true}});Ext.define("Ext.data.Connection",{mixins:{observable:"Ext.util.Observable"},statics:{requestId:0},url:null,async:true,method:null,username:"",password:"",disableCaching:true,withCredentials:false,cors:false,disableCachingParam:"_dc",timeout:30000,useDefaultHeader:true,defaultPostHeader:"application/x-www-form-urlencoded; charset=UTF-8",useDefaultXhrHeader:true,defaultXhrHeader:"XMLHttpRequest",constructor:function(config){config=config||{};Ext.apply(this,config);this.addEvents("beforerequest","requestcomplete","requestexception");this.requests={};this.mixins.observable.constructor.call(this)},request:function(options){options=options||{};var me=this,scope=options.scope||window,username=options.username||me.username,password=options.password||me.password||"",async,requestOptions,request,headers,xhr;if(me.fireEvent("beforerequest",me,options)!==false){requestOptions=me.setOptions(options,scope);if(this.isFormUpload(options)===true){this.upload(options.form,requestOptions.url,requestOptions.data,options);return null}if(options.autoAbort===true||me.autoAbort){me.abort()}if((options.cors===true||me.cors===true)&&Ext.isIe&&Ext.ieVersion>=8){xhr=new XDomainRequest()}else{xhr=this.getXhrInstance()}async=options.async!==false?(options.async||me.async):false;if(username){xhr.open(requestOptions.method,requestOptions.url,async,username,password)}else{xhr.open(requestOptions.method,requestOptions.url,async)}if(options.withCredentials===true||me.withCredentials===true){xhr.withCredentials=true}headers=me.setupHeaders(xhr,options,requestOptions.data,requestOptions.params);request={id:++Ext.data.Connection.requestId,xhr:xhr,headers:headers,options:options,async:async,timeout:setTimeout(function(){request.timedout=true;me.abort(request)},options.timeout||me.timeout)};me.requests[request.id]=request;me.latestId=request.id;if(async){xhr.onreadystatechange=Ext.Function.bind(me.onStateChange,me,[request])}xhr.send(requestOptions.data);if(!async){return this.onComplete(request)}return request}else{Ext.callback(options.callback,options.scope,[options,undefined,undefined]);return null}},upload:function(form,url,params,options){form=Ext.getDom(form);options=options||{};var id=Ext.id(),frame=document.createElement("iframe"),hiddens=[],encoding="multipart/form-data",buf={target:form.target,method:form.method,encoding:form.encoding,enctype:form.enctype,action:form.action},hiddenItem;Ext.fly(frame).set({id:id,name:id,cls:Ext.baseCSSPrefix+"hide-display",src:Ext.SSL_SECURE_URL});document.body.appendChild(frame);if(document.frames){document.frames[id].name=id}Ext.fly(form).set({target:id,method:"POST",enctype:encoding,encoding:encoding,action:url||buf.action});if(params){Ext.iterate(Ext.Object.fromQueryString(params),function(name,value){hiddenItem=document.createElement("input");Ext.fly(hiddenItem).set({type:"hidden",value:value,name:name});form.appendChild(hiddenItem);hiddens.push(hiddenItem)})}Ext.fly(frame).on("load",Ext.Function.bind(this.onUploadComplete,this,[frame,options]),null,{single:true});form.submit();Ext.fly(form).set(buf);Ext.each(hiddens,function(h){Ext.removeNode(h)})},onUploadComplete:function(frame,options){var me=this,response={responseText:"",responseXML:null},doc,firstChild;try{doc=frame.contentWindow.document||frame.contentDocument||window.frames[frame.id].document;if(doc){if(doc.body){if(/textarea/i.test((firstChild=doc.body.firstChild||{}).tagName)){response.responseText=firstChild.value}else{response.responseText=doc.body.innerHTML}}response.responseXML=doc.XMLDocument||doc}}catch(e){}me.fireEvent("requestcomplete",me,response,options);Ext.callback(options.success,options.scope,[response,options]);Ext.callback(options.callback,options.scope,[options,true,response]);setTimeout(function(){Ext.removeNode(frame)},100)},isFormUpload:function(options){var form=this.getForm(options);if(form){return(options.isUpload||(/multipart\/form-data/i).test(form.getAttribute("enctype")))}return false},getForm:function(options){return Ext.getDom(options.form)||null},setOptions:function(options,scope){var me=this,params=options.params||{},extraParams=me.extraParams,urlParams=options.urlParams,url=options.url||me.url,jsonData=options.jsonData,method,disableCache,data;if(Ext.isFunction(params)){params=params.call(scope,options)}if(Ext.isFunction(url)){url=url.call(scope,options)}url=this.setupUrl(options,url);data=options.rawData||options.xmlData||jsonData||null;if(jsonData&&!Ext.isPrimitive(jsonData)){data=Ext.encode(data)}if(Ext.isObject(params)){params=Ext.Object.toQueryString(params)}if(Ext.isObject(extraParams)){extraParams=Ext.Object.toQueryString(extraParams)}params=params+((extraParams)?((params)?"&":"")+extraParams:"");urlParams=Ext.isObject(urlParams)?Ext.Object.toQueryString(urlParams):urlParams;params=this.setupParams(options,params);method=(options.method||me.method||((params||data)?"POST":"GET")).toUpperCase();this.setupMethod(options,method);disableCache=options.disableCaching!==false?(options.disableCaching||me.disableCaching):false;if(method==="GET"&&disableCache){url=Ext.urlAppend(url,(options.disableCachingParam||me.disableCachingParam)+"="+(new Date().getTime()))}if((method=="GET"||data)&&params){url=Ext.urlAppend(url,params);params=null}if(urlParams){url=Ext.urlAppend(url,urlParams)}return{url:url,method:method,data:data||params||null}},setupUrl:function(options,url){var form=this.getForm(options);if(form){url=url||form.action}return url},setupParams:function(options,params){var form=this.getForm(options),serializedForm;if(form&&!this.isFormUpload(options)){serializedForm=Ext.Element.serializeForm(form);params=params?(params+"&"+serializedForm):serializedForm}return params},setupMethod:function(options,method){if(this.isFormUpload(options)){return"POST"}return method},setupHeaders:function(xhr,options,data,params){var me=this,headers=Ext.apply({},options.headers||{},me.defaultHeaders||{}),contentType=me.defaultPostHeader,jsonData=options.jsonData,xmlData=options.xmlData,key,header;if(!headers["Content-Type"]&&(data||params)){if(data){if(options.rawData){contentType="text/plain"}else{if(xmlData&&Ext.isDefined(xmlData)){contentType="text/xml"}else{if(jsonData&&Ext.isDefined(jsonData)){contentType="application/json"}}}}headers["Content-Type"]=contentType}if(me.useDefaultXhrHeader&&!headers["X-Requested-With"]){headers["X-Requested-With"]=me.defaultXhrHeader}try{for(key in headers){if(headers.hasOwnProperty(key)){header=headers[key];xhr.setRequestHeader(key,header)}}}catch(e){me.fireEvent("exception",key,header)}return headers},getXhrInstance:(function(){var options=[function(){return new XMLHttpRequest()},function(){return new ActiveXObject("MSXML2.XMLHTTP.3.0")},function(){return new ActiveXObject("MSXML2.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")}],i=0,len=options.length,xhr;for(;i<len;++i){try{xhr=options[i];xhr();break}catch(e){}}return xhr})(),isLoading:function(request){if(!request){request=this.getLatest()}if(!(request&&request.xhr)){return false}var state=request.xhr.readyState;return !(state===0||state==4)},abort:function(request){var me=this;if(!request){request=me.getLatest()}if(request&&me.isLoading(request)){request.xhr.onreadystatechange=null;request.xhr.abort();me.clearTimeout(request);if(!request.timedout){request.aborted=true}me.onComplete(request);me.cleanup(request)}},abortAll:function(){var requests=this.requests,id;for(id in requests){if(requests.hasOwnProperty(id)){this.abort(requests[id])}}},getLatest:function(){var id=this.latestId,request;if(id){request=this.requests[id]}return request||null},onStateChange:function(request){if(request.xhr.readyState==4){this.clearTimeout(request);this.onComplete(request);this.cleanup(request)}},clearTimeout:function(request){clearTimeout(request.timeout);delete request.timeout},cleanup:function(request){request.xhr=null;delete request.xhr},onComplete:function(request){var me=this,options=request.options,result,success,response;try{result=me.parseStatus(request.xhr.status)}catch(e){result={success:false,isException:false}}success=result.success;if(success){response=me.createResponse(request);me.fireEvent("requestcomplete",me,response,options);Ext.callback(options.success,options.scope,[response,options])}else{if(result.isException||request.aborted||request.timedout){response=me.createException(request)}else{response=me.createResponse(request)}me.fireEvent("requestexception",me,response,options);Ext.callback(options.failure,options.scope,[response,options])}Ext.callback(options.callback,options.scope,[options,success,response]);delete me.requests[request.id];return response},parseStatus:function(status){status=status==1223?204:status;var success=(status>=200&&status<300)||status==304,isException=false;if(!success){switch(status){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:isException=true;break}}return{success:success,isException:isException}},createResponse:function(request){var xhr=request.xhr,headers={},lines=xhr.getAllResponseHeaders().replace(/\r\n/g,"\n").split("\n"),count=lines.length,line,index,key,value,response;while(count--){line=lines[count];index=line.indexOf(":");if(index>=0){key=line.substr(0,index).toLowerCase();if(line.charAt(index+1)==" "){++index}headers[key]=line.substr(index+1)}}request.xhr=null;delete request.xhr;response={request:request,requestId:request.id,status:xhr.status,statusText:xhr.statusText,getResponseHeader:function(header){return headers[header.toLowerCase()]},getAllResponseHeaders:function(){return headers},responseText:xhr.responseText,responseXML:xhr.responseXML};xhr=null;return response},createException:function(request){return{request:request,requestId:request.id,status:request.aborted?-1:0,statusText:request.aborted?"transaction aborted":"communication failure",aborted:request.aborted,timedout:request.timedout}}});Ext.define("Ext.Ajax",{extend:"Ext.data.Connection",singleton:true,autoAbort:false});Ext.define("Ext.ElementLoader",{mixins:{observable:"Ext.util.Observable"},uses:["Ext.data.Connection","Ext.Ajax"],statics:{Renderer:{Html:function(loader,response,active){loader.getTarget().update(response.responseText,active.scripts===true);return true}}},url:null,params:null,baseParams:null,autoLoad:false,target:null,loadMask:false,ajaxOptions:null,scripts:false,isLoader:true,constructor:function(config){var me=this,autoLoad;config=config||{};Ext.apply(me,config);me.setTarget(me.target);me.addEvents("beforeload","exception","load");me.mixins.observable.constructor.call(me);if(me.autoLoad){autoLoad=me.autoLoad;if(autoLoad===true){autoLoad={}}me.load(autoLoad)}},setTarget:function(target){var me=this;target=Ext.get(target);if(me.target&&me.target!=target){me.abort()}me.target=target},getTarget:function(){return this.target||null},abort:function(){var active=this.active;if(active!==undefined){Ext.Ajax.abort(active.request);if(active.mask){this.removeMask()}delete this.active}},removeMask:function(){this.target.unmask()},addMask:function(mask){this.target.mask(mask===true?null:mask)},load:function(options){options=Ext.apply({},options);var me=this,target=me.target,mask=Ext.isDefined(options.loadMask)?options.loadMask:me.loadMask,params=Ext.apply({},options.params),ajaxOptions=Ext.apply({},options.ajaxOptions),callback=options.callback||me.callback,scope=options.scope||me.scope||me,request;Ext.applyIf(ajaxOptions,me.ajaxOptions);Ext.applyIf(options,ajaxOptions);Ext.applyIf(params,me.params);Ext.apply(params,me.baseParams);Ext.applyIf(options,{url:me.url});Ext.apply(options,{scope:me,params:params,callback:me.onComplete});if(me.fireEvent("beforeload",me,options)===false){return}if(mask){me.addMask(mask)}request=Ext.Ajax.request(options);me.active={request:request,options:options,mask:mask,scope:scope,callback:callback,success:options.success||me.success,failure:options.failure||me.failure,renderer:options.renderer||me.renderer,scripts:Ext.isDefined(options.scripts)?options.scripts:me.scripts};me.setOptions(me.active,options)},setOptions:Ext.emptyFn,onComplete:function(options,success,response){var me=this,active=me.active,scope=active.scope,renderer=me.getRenderer(active.renderer);if(success){success=renderer.call(me,me,response,active)}if(success){Ext.callback(active.success,scope,[me,response,options]);me.fireEvent("load",me,response,options)}else{Ext.callback(active.failure,scope,[me,response,options]);me.fireEvent("exception",me,response,options)}Ext.callback(active.callback,scope,[me,success,response,options]);if(active.mask){me.removeMask()}delete me.active},getRenderer:function(renderer){if(Ext.isFunction(renderer)){return renderer}return this.statics().Renderer.Html},startAutoRefresh:function(interval,options){var me=this;me.stopAutoRefresh();me.autoRefresh=setInterval(function(){me.load(options)},interval)},stopAutoRefresh:function(){clearInterval(this.autoRefresh);delete this.autoRefresh},isAutoRefreshing:function(){return Ext.isDefined(this.autoRefresh)},destroy:function(){var me=this;me.stopAutoRefresh();delete me.target;me.abort();me.clearListeners()}});Ext.define("Ext.ComponentLoader",{extend:"Ext.ElementLoader",statics:{Renderer:{Data:function(loader,response,active){var success=true;try{loader.getTarget().update(Ext.decode(response.responseText))}catch(e){success=false}return success},Component:function(loader,response,active){var success=true,target=loader.getTarget(),items=[];try{items=Ext.decode(response.responseText)}catch(e){success=false}if(success){if(active.removeAll){target.removeAll()}target.add(items)}return success}}},target:null,loadMask:false,renderer:"html",setTarget:function(target){var me=this;if(Ext.isString(target)){target=Ext.getCmp(target)}if(me.target&&me.target!=target){me.abort()}me.target=target},removeMask:function(){this.target.setLoading(false)},addMask:function(mask){this.target.setLoading(mask)},setOptions:function(active,options){active.removeAll=Ext.isDefined(options.removeAll)?options.removeAll:this.removeAll},getRenderer:function(renderer){if(Ext.isFunction(renderer)){return renderer}var renderers=this.statics().Renderer;switch(renderer){case"component":return renderers.Component;case"data":return renderers.Data;default:return Ext.ElementLoader.Renderer.Html}}});Ext.define("Ext.data.Association",{primaryKey:"id",defaultReaderType:"json",statics:{create:function(association){if(!association.isAssociation){if(Ext.isString(association)){association={type:association}}switch(association.type){case"belongsTo":return Ext.create("Ext.data.BelongsToAssociation",association);case"hasMany":return Ext.create("Ext.data.HasManyAssociation",association);default:}}return association}},constructor:function(config){Ext.apply(this,config);var types=Ext.ModelManager.types,ownerName=config.ownerModel,associatedName=config.associatedModel,ownerModel=types[ownerName],associatedModel=types[associatedName],ownerProto;this.ownerModel=ownerModel;this.associatedModel=associatedModel;Ext.applyIf(this,{ownerName:ownerName,associatedName:associatedName})},getReader:function(){var me=this,reader=me.reader,model=me.associatedModel;if(reader){if(Ext.isString(reader)){reader={type:reader}}if(reader.isReader){reader.setModel(model)}else{Ext.applyIf(reader,{model:model,type:me.defaultReaderType})}me.reader=Ext.createByAlias("reader."+reader.type,reader)}return me.reader||null}});Ext.define("Ext.ModelManager",{extend:"Ext.AbstractManager",alternateClassName:"Ext.ModelMgr",requires:["Ext.data.Association"],singleton:true,typeName:"mtype",associationStack:[],registerType:function(name,config){var proto=config.prototype,model;if(proto&&proto.isModel){model=config}else{if(!config.extend){config.extend="Ext.data.Model"}model=Ext.define(name,config)}this.types[name]=model;return model},onModelDefined:function(model){var stack=this.associationStack,length=stack.length,create=[],association,i,created;for(i=0;i<length;i++){association=stack[i];if(association.associatedModel==model.modelName){create.push(association)}}for(i=0,length=create.length;i<length;i++){created=create[i];this.types[created.ownerModel].prototype.associations.add(Ext.data.Association.create(created));Ext.Array.remove(stack,created)}},registerDeferredAssociation:function(association){this.associationStack.push(association)},getModel:function(id){var model=id;if(typeof model=="string"){model=this.types[model]}return model},create:function(config,name,id){var con=typeof name=="function"?name:this.types[name||config.name];return new con(config,id)}},function(){Ext.regModel=function(){return this.ModelManager.registerType.apply(this.ModelManager,arguments)}});Ext.define("Ext.PluginManager",{extend:"Ext.AbstractManager",alternateClassName:"Ext.PluginMgr",singleton:true,typeName:"ptype",create:function(config,defaultType){if(config.init){return config}else{return Ext.createByAlias("plugin."+(config.ptype||defaultType),config)}},findByType:function(type,defaultsOnly){var matches=[],types=this.types;for(var name in types){if(!types.hasOwnProperty(name)){continue}var item=types[name];if(item.type==type&&(!defaultsOnly||(defaultsOnly===true&&item.isDefault))){matches.push(item)}}return matches}},function(){Ext.preg=function(){return Ext.PluginManager.registerType.apply(Ext.PluginManager,arguments)}});Ext.define("Ext.Template",{requires:["Ext.DomHelper","Ext.util.Format"],inheritableStatics:{from:function(el,config){el=Ext.getDom(el);return new this(el.value||el.innerHTML,config||"")}},constructor:function(html){var me=this,args=arguments,buffer=[],i=0,length=args.length,value;me.initialConfig={};if(length>1){for(;i<length;i++){value=args[i];if(typeof value=="object"){Ext.apply(me.initialConfig,value);Ext.apply(me,value)}else{buffer.push(value)}}html=buffer.join("")}else{if(Ext.isArray(html)){buffer.push(html.join(""))}else{buffer.push(html)}}me.html=buffer.join("");if(me.compiled){me.compile()}},isTemplate:true,disableFormats:false,re:/\{([\w\-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,applyTemplate:function(values){var me=this,useFormat=me.disableFormats!==true,fm=Ext.util.Format,tpl=me;if(me.compiled){return me.compiled(values)}function fn(m,name,format,args){if(format&&useFormat){if(args){args=[values[name]].concat(Ext.functionFactory("return ["+args+"];")())}else{args=[values[name]]}if(format.substr(0,5)=="this."){return tpl[format.substr(5)].apply(tpl,args)}else{return fm[format].apply(fm,args)}}else{return values[name]!==undefined?values[name]:""}}return me.html.replace(me.re,fn)},set:function(html,compile){var me=this;me.html=html;me.compiled=null;return compile?me.compile():me},compileARe:/\\/g,compileBRe:/(\r\n|\n)/g,compileCRe:/'/g,compile:function(){var me=this,fm=Ext.util.Format,useFormat=me.disableFormats!==true,body,bodyReturn;function fn(m,name,format,args){if(format&&useFormat){args=args?","+args:"";if(format.substr(0,5)!="this."){format="fm."+format+"("}else{format="this."+format.substr(5)+"("}}else{args="";format="(values['"+name+"'] == undefined ? '' : "}return"',"+format+"values['"+name+"']"+args+") ,'"}bodyReturn=me.html.replace(me.compileARe,"\\\\").replace(me.compileBRe,"\\n").replace(me.compileCRe,"\\'").replace(me.re,fn);body="this.compiled = function(values){ return ['"+bodyReturn+"'].join('');};";eval(body);return me},insertFirst:function(el,values,returnElement){return this.doInsert("afterBegin",el,values,returnElement)},insertBefore:function(el,values,returnElement){return this.doInsert("beforeBegin",el,values,returnElement)},insertAfter:function(el,values,returnElement){return this.doInsert("afterEnd",el,values,returnElement)},append:function(el,values,returnElement){return this.doInsert("beforeEnd",el,values,returnElement)},doInsert:function(where,el,values,returnEl){el=Ext.getDom(el);var newNode=Ext.DomHelper.insertHtml(where,el,this.applyTemplate(values));return returnEl?Ext.get(newNode,true):newNode},overwrite:function(el,values,returnElement){el=Ext.getDom(el);el.innerHTML=this.applyTemplate(values);return returnElement?Ext.get(el.firstChild,true):el.firstChild}},function(){this.createAlias("apply","applyTemplate")});Ext.define("Ext.XTemplate",{extend:"Ext.Template",argsRe:/<tpl\b[^>]*>((?:(?=([^<]+))\2|<(?!tpl\b[^>]*>))*?)<\/tpl>/,nameRe:/^<tpl\b[^>]*?for="(.*?)"/,ifRe:/^<tpl\b[^>]*?if="(.*?)"/,execRe:/^<tpl\b[^>]*?exec="(.*?)"/,constructor:function(){this.callParent(arguments);var me=this,html=me.html,argsRe=me.argsRe,nameRe=me.nameRe,ifRe=me.ifRe,execRe=me.execRe,id=0,tpls=[],VALUES="values",PARENT="parent",XINDEX="xindex",XCOUNT="xcount",RETURN="return ",WITHVALUES="with(values){ ",m,matchName,matchIf,matchExec,exp,fn,exec,name,i;html=["<tpl>",html,"</tpl>"].join("");while((m=html.match(argsRe))){exp=null;fn=null;exec=null;matchName=m[0].match(nameRe);matchIf=m[0].match(ifRe);matchExec=m[0].match(execRe);exp=matchIf?matchIf[1]:null;if(exp){fn=Ext.functionFactory(VALUES,PARENT,XINDEX,XCOUNT,WITHVALUES+"try{"+RETURN+Ext.String.htmlDecode(exp)+";}catch(e){return;}}")}exp=matchExec?matchExec[1]:null;if(exp){exec=Ext.functionFactory(VALUES,PARENT,XINDEX,XCOUNT,WITHVALUES+Ext.String.htmlDecode(exp)+";}")}name=matchName?matchName[1]:null;if(name){if(name==="."){name=VALUES}else{if(name===".."){name=PARENT}}name=Ext.functionFactory(VALUES,PARENT,"try{"+WITHVALUES+RETURN+name+";}}catch(e){return;}")}tpls.push({id:id,target:name,exec:exec,test:fn,body:m[1]||""});html=html.replace(m[0],"{xtpl"+id+"}");id=id+1}for(i=tpls.length-1;i>=0;--i){me.compileTpl(tpls[i])}me.master=tpls[tpls.length-1];me.tpls=tpls},applySubTemplate:function(id,values,parent,xindex,xcount){var me=this,t=me.tpls[id];return t.compiled.call(me,values,parent,xindex,xcount)},codeRe:/\{\[((?:\\\]|.|\n)*?)\]\}/g,re:/\{([\w-\.\#]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?(\s?[\+\-\*\/]\s?[\d\.\+\-\*\/\(\)]+)?\}/g,compileTpl:function(tpl){var fm=Ext.util.Format,me=this,useFormat=me.disableFormats!==true,body,bodyReturn,evaluatedFn;function fn(m,name,format,args,math){var v;if(name.substr(0,4)=="xtpl"){return"',this.applySubTemplate("+name.substr(4)+", values, parent, xindex, xcount),'"}if(name=="."){v='Ext.Array.indexOf(["string", "number", "boolean"], typeof values) > -1 || Ext.isDate(values) ? values : ""'}else{if(name=="#"){v="xindex"}else{if(name.substr(0,7)=="parent."){v=name}else{if(name.indexOf(".")!=-1){v="values."+name}else{v="values['"+name+"']"}}}}if(math){v="("+v+math+")"}if(format&&useFormat){args=args?","+args:"";if(format.substr(0,5)!="this."){format="fm."+format+"("}else{format="this."+format.substr(5)+"("}}else{args="";format="("+v+" === undefined ? '' : "}return"',"+format+v+args+"),'"}function codeFn(m,code){return"',("+code.replace(me.compileARe,"'")+"),'"}bodyReturn=tpl.body.replace(me.compileBRe,"\\n").replace(me.compileCRe,"\\'").replace(me.re,fn).replace(me.codeRe,codeFn);body="evaluatedFn = function(values, parent, xindex, xcount){return ['"+bodyReturn+"'].join('');};";eval(body);tpl.compiled=function(values,parent,xindex,xcount){var vs,length,buffer,i;if(tpl.test&&!tpl.test.call(me,values,parent,xindex,xcount)){return""}vs=tpl.target?tpl.target.call(me,values,parent):values;if(!vs){return""}parent=tpl.target?values:parent;if(tpl.target&&Ext.isArray(vs)){buffer=[];length=vs.length;if(tpl.exec){for(i=0;i<length;i++){buffer[buffer.length]=evaluatedFn.call(me,vs[i],parent,i+1,length);tpl.exec.call(me,vs[i],parent,i+1,length)}}else{for(i=0;i<length;i++){buffer[buffer.length]=evaluatedFn.call(me,vs[i],parent,i+1,length)}}return buffer.join("")}if(tpl.exec){tpl.exec.call(me,vs,parent,xindex,xcount)}return evaluatedFn.call(me,vs,parent,xindex,xcount)};return this},applyTemplate:function(values){return this.master.compiled.call(this,values,{},1,1)},compile:function(){return this}},function(){this.createAlias("apply","applyTemplate")});Ext.define("Ext.app.Controller",{mixins:{observable:"Ext.util.Observable"},onClassExtended:function(cls,data){var className=Ext.getClassName(cls),match=className.match(/^(.*)\.controller\./);if(match!==null){var namespace=Ext.Loader.getPrefix(className)||match[1],onBeforeClassCreated=data.onBeforeClassCreated,requires=[],modules=["model","view","store"],prefix;data.onBeforeClassCreated=function(cls,data){var i,ln,module,items,j,subLn,item;for(i=0,ln=modules.length;i<ln;i++){module=modules[i];items=Ext.Array.from(data[module+"s"]);for(j=0,subLn=items.length;j<subLn;j++){item=items[j];prefix=Ext.Loader.getPrefix(item);if(prefix===""||prefix===item){requires.push(namespace+"."+module+"."+item)}else{requires.push(item)}}}Ext.require(requires,Ext.Function.pass(onBeforeClassCreated,arguments,this))}}},constructor:function(config){this.mixins.observable.constructor.call(this,config);Ext.apply(this,config||{});this.createGetters("model",this.models);this.createGetters("store",this.stores);this.createGetters("view",this.views);if(this.refs){this.ref(this.refs)}},init:function(application){},onLaunch:function(application){},createGetters:function(type,refs){type=Ext.String.capitalize(type);Ext.Array.each(refs,function(ref){var fn="get",parts=ref.split(".");Ext.Array.each(parts,function(part){fn+=Ext.String.capitalize(part)});fn+=type;if(!this[fn]){this[fn]=Ext.Function.pass(this["get"+type],[ref],this)}this[fn](ref)},this)},ref:function(refs){var me=this;refs=Ext.Array.from(refs);Ext.Array.each(refs,function(info){var ref=info.ref,fn="get"+Ext.String.capitalize(ref);if(!me[fn]){me[fn]=Ext.Function.pass(me.getRef,[ref,info],me)}})},getRef:function(ref,info,config){this.refCache=this.refCache||{};info=info||{};config=config||{};Ext.apply(info,config);if(info.forceCreate){return Ext.ComponentManager.create(info,"component")}var me=this,selector=info.selector,cached=me.refCache[ref];if(!cached){me.refCache[ref]=cached=Ext.ComponentQuery.query(info.selector)[0];if(!cached&&info.autoCreate){me.refCache[ref]=cached=Ext.ComponentManager.create(info,"component")}if(cached){cached.on("beforedestroy",function(){me.refCache[ref]=null})}}return cached},control:function(selectors,listeners){this.application.control(selectors,listeners,this)},getController:function(name){return this.application.getController(name)},getStore:function(name){return this.application.getStore(name)},getModel:function(model){return this.application.getModel(model)},getView:function(view){return this.application.getView(view)}});Ext.define("Ext.data.IdGenerator",{isGenerator:true,constructor:function(config){var me=this;Ext.apply(me,config);if(me.id){Ext.data.IdGenerator.all[me.id]=me}},getRecId:function(rec){return rec.modelName+"-"+rec.internalId},statics:{all:{},get:function(config){var generator,id,type;if(typeof config=="string"){id=type=config;config=null}else{if(config.isGenerator){return config}else{id=config.id||config.type;type=config.type}}generator=this.all[id];if(!generator){generator=Ext.create("idgen."+type,config)}return generator}}});Ext.define("Ext.data.SortTypes",{singleton:true,none:function(s){return s},stripTagsRE:/<\/?[^>]+>/gi,asText:function(s){return String(s).replace(this.stripTagsRE,"")},asUCText:function(s){return String(s).toUpperCase().replace(this.stripTagsRE,"")},asUCString:function(s){return String(s).toUpperCase()},asDate:function(s){if(!s){return 0}if(Ext.isDate(s)){return s.getTime()}return Date.parse(String(s))},asFloat:function(s){var val=parseFloat(String(s).replace(/,/g,""));return isNaN(val)?0:val},asInt:function(s){var val=parseInt(String(s).replace(/,/g,""),10);return isNaN(val)?0:val}});Ext.define("Ext.util.Filter",{anyMatch:false,exactMatch:false,caseSensitive:false,constructor:function(config){var me=this;Ext.apply(me,config);me.filter=me.filter||me.filterFn;if(me.filter===undefined){if(me.property===undefined||me.value===undefined){}else{me.filter=me.createFilterFn()}me.filterFn=me.filter}},createFilterFn:function(){var me=this,matcher=me.createValueMatcher(),property=me.property;return function(item){var value=me.getRoot.call(me,item)[property];return matcher===null?value===null:matcher.test(value)}},getRoot:function(item){var root=this.root;return root===undefined?item:item[root]},createValueMatcher:function(){var me=this,value=me.value,anyMatch=me.anyMatch,exactMatch=me.exactMatch,caseSensitive=me.caseSensitive,escapeRe=Ext.String.escapeRegex;if(value===null){return value}if(!value.exec){value=String(value);if(anyMatch===true){value=escapeRe(value)}else{value="^"+escapeRe(value);if(exactMatch===true){value+="$"}}value=new RegExp(value,caseSensitive?"":"i")}return value}});Ext.define("Ext.util.Sorter",{direction:"ASC",constructor:function(config){var me=this;Ext.apply(me,config);me.updateSortFunction()},createSortFunction:function(sorterFn){var me=this,property=me.property,direction=me.direction||"ASC",modifier=direction.toUpperCase()=="DESC"?-1:1;return function(o1,o2){return modifier*sorterFn.call(me,o1,o2)}},defaultSorterFn:function(o1,o2){var me=this,transform=me.transform,v1=me.getRoot(o1)[me.property],v2=me.getRoot(o2)[me.property];if(transform){v1=transform(v1);v2=transform(v2)}return v1>v2?1:(v1<v2?-1:0)},getRoot:function(item){return this.root===undefined?item:item[this.root]},setDirection:function(direction){var me=this;me.direction=direction;me.updateSortFunction()},toggle:function(){var me=this;me.direction=Ext.String.toggle(me.direction,"ASC","DESC");me.updateSortFunction()},updateSortFunction:function(fn){var me=this;fn=fn||me.sorterFn||me.defaultSorterFn;me.sort=me.createSortFunction(fn)}});Ext.define("Ext.data.Operation",{synchronous:true,action:undefined,filters:undefined,sorters:undefined,group:undefined,start:undefined,limit:undefined,batch:undefined,callback:undefined,scope:undefined,started:false,running:false,complete:false,success:undefined,exception:false,error:undefined,actionCommitRecordsRe:/^(?:create|update)$/i,actionSkipSyncRe:/^destroy$/i,constructor:function(config){Ext.apply(this,config||{})},commitRecords:function(serverRecords){var me=this,mc,index,clientRecords,serverRec,clientRec;if(!me.actionSkipSyncRe.test(me.action)){clientRecords=me.records;if(clientRecords&&clientRecords.length){mc=Ext.create("Ext.util.MixedCollection",true,function(r){return r.getId()});mc.addAll(clientRecords);for(index=serverRecords?serverRecords.length:0;index--;){serverRec=serverRecords[index];clientRec=mc.get(serverRec.getId());if(clientRec){clientRec.beginEdit();clientRec.set(serverRec.data);clientRec.endEdit(true)}}if(me.actionCommitRecordsRe.test(me.action)){for(index=clientRecords.length;index--;){clientRecords[index].commit()}}}}},setStarted:function(){this.started=true;this.running=true},setCompleted:function(){this.complete=true;this.running=false},setSuccessful:function(){this.success=true},setException:function(error){this.exception=true;this.success=false;this.running=false;this.error=error},hasException:function(){return this.exception===true},getError:function(){return this.error},getRecords:function(){var resultSet=this.getResultSet();return(resultSet===undefined?this.records:resultSet.records)},getResultSet:function(){return this.resultSet},isStarted:function(){return this.started===true},isRunning:function(){return this.running===true},isComplete:function(){return this.complete===true},wasSuccessful:function(){return this.isComplete()&&this.success===true},setBatch:function(batch){this.batch=batch},allowWrite:function(){return this.action!="read"}});Ext.define("Ext.data.validations",{singleton:true,presenceMessage:"must be present",lengthMessage:"is the wrong length",formatMessage:"is the wrong format",inclusionMessage:"is not included in the list of acceptable values",exclusionMessage:"is not an acceptable value",emailMessage:"is not a valid email address",emailRe:/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,presence:function(config,value){if(value===undefined){value=config}return !!value||value===0},length:function(config,value){if(value===undefined||value===null){return false}var length=value.length,min=config.min,max=config.max;if((min&&length<min)||(max&&length>max)){return false}else{return true}},email:function(config,email){return Ext.data.validations.emailRe.test(email)},format:function(config,value){return !!(config.matcher&&config.matcher.test(value))},inclusion:function(config,value){return config.list&&Ext.Array.indexOf(config.list,value)!=-1},exclusion:function(config,value){return config.list&&Ext.Array.indexOf(config.list,value)==-1}});Ext.define("Ext.data.ResultSet",{loaded:true,count:0,total:0,success:false,constructor:function(config){Ext.apply(this,config);this.totalRecords=this.total;if(config.count===undefined){this.count=this.records.length}}});Ext.define("Ext.data.writer.Writer",{alias:"writer.base",alternateClassName:["Ext.data.DataWriter","Ext.data.Writer"],writeAllFields:true,nameProperty:"name",constructor:function(config){Ext.apply(this,config)},write:function(request){var operation=request.operation,records=operation.records||[],len=records.length,i=0,data=[];for(;i<len;i++){data.push(this.getRecordData(records[i]))}return this.writeRecords(request,data)},getRecordData:function(record){var isPhantom=record.phantom===true,writeAll=this.writeAllFields||isPhantom,nameProperty=this.nameProperty,fields=record.fields,data={},changes,name,field,key;if(writeAll){fields.each(function(field){if(field.persist){name=field[nameProperty]||field.name;data[name]=record.get(field.name)}})}else{changes=record.getChanges();for(key in changes){if(changes.hasOwnProperty(key)){field=fields.get(key);name=field[nameProperty]||field.name;data[name]=changes[key]}}if(!isPhantom){data[record.idProperty]=record.getId()}}return data}});Ext.define("Ext.util.Floating",{uses:["Ext.Layer","Ext.window.Window"],focusOnToFront:true,shadow:"sides",constructor:function(config){var me=this;me.floating=true;me.el=Ext.create("Ext.Layer",Ext.apply({},config,{hideMode:me.hideMode,hidden:me.hidden,shadow:Ext.isDefined(me.shadow)?me.shadow:"sides",shadowOffset:me.shadowOffset,constrain:false,shim:me.shim===false?false:undefined}),me.el)},onFloatRender:function(){var me=this;me.zIndexParent=me.getZIndexParent();me.setFloatParent(me.ownerCt);delete me.ownerCt;if(me.zIndexParent){me.zIndexParent.registerFloatingItem(me)}else{Ext.WindowManager.register(me)}},setFloatParent:function(floatParent){var me=this;if(me.floatParent){me.mun(me.floatParent,{hide:me.onFloatParentHide,show:me.onFloatParentShow,scope:me})}me.floatParent=floatParent;if(floatParent){me.mon(me.floatParent,{hide:me.onFloatParentHide,show:me.onFloatParentShow,scope:me})}if((me.constrain||me.constrainHeader)&&!me.constrainTo){me.constrainTo=floatParent?floatParent.getTargetEl():me.container}},onFloatParentHide:function(){var me=this;if(me.hideOnParentHide!==false){me.showOnParentShow=me.isVisible();me.hide()}},onFloatParentShow:function(){if(this.showOnParentShow){delete this.showOnParentShow;this.show()}},getZIndexParent:function(){var p=this.ownerCt,c;if(p){while(p){c=p;p=p.ownerCt}if(c.floating){return c}}},setZIndex:function(index){var me=this;me.el.setZIndex(index);index+=10;if(me.floatingItems){index=Math.floor(me.floatingItems.setBase(index)/100)*100+10000}return index},doConstrain:function(constrainTo){var me=this,vector=me.getConstrainVector(constrainTo||me.el.getScopeParent()),xy;if(vector){xy=me.getPosition();xy[0]+=vector[0];xy[1]+=vector[1];me.setPosition(xy)}},getConstrainVector:function(constrainTo){var me=this,el;if(me.constrain||me.constrainHeader){el=me.constrainHeader?me.header.el:me.el;constrainTo=constrainTo||(me.floatParent&&me.floatParent.getTargetEl())||me.container;return el.getConstrainVector(constrainTo)}},alignTo:function(element,position,offsets){if(element.isComponent){element=element.getEl()}var xy=this.el.getAlignToXY(element,position,offsets);this.setPagePosition(xy);return this},toFront:function(preventFocus){var me=this;if(me.zIndexParent){me.zIndexParent.toFront(true)}if(me.zIndexManager.bringToFront(me)){if(!Ext.isDefined(preventFocus)){preventFocus=!me.focusOnToFront}if(!preventFocus){me.focus(false,true)}}return me},setActive:function(active,newActive){var me=this;if(active){if(me.el.shadow&&!me.maximized){me.el.enableShadow(true)}me.fireEvent("activate",me)}else{if((me instanceof Ext.window.Window)&&(newActive instanceof Ext.window.Window)){me.el.disableShadow()}me.fireEvent("deactivate",me)}},toBack:function(){this.zIndexManager.sendToBack(this);return this},center:function(){var me=this,xy=me.el.getAlignToXY(me.container,"c-c");me.setPagePosition(xy);return me},syncShadow:function(){if(this.floating){this.el.sync(true)}},fitContainer:function(){var parent=this.floatParent,container=parent?parent.getTargetEl():this.container,size=container.getViewSize(false);this.setSize(size)}});Ext.define("Ext.layout.Layout",{isLayout:true,initialized:false,statics:{create:function(layout,defaultType){var type;if(layout instanceof Ext.layout.Layout){return Ext.createByAlias("layout."+layout)}else{if(!layout||typeof layout==="string"){type=layout||defaultType;layout={}}else{type=layout.type||defaultType}return Ext.createByAlias("layout."+type,layout||{})}}},constructor:function(config){this.id=Ext.id(null,this.type+"-");Ext.apply(this,config)},layout:function(){var me=this;me.layoutBusy=true;me.initLayout();if(me.beforeLayout.apply(me,arguments)!==false){me.layoutCancelled=false;me.onLayout.apply(me,arguments);me.childrenChanged=false;me.owner.needsLayout=false;me.layoutBusy=false;me.afterLayout.apply(me,arguments)}else{me.layoutCancelled=true}me.layoutBusy=false;me.doOwnerCtLayouts()},beforeLayout:function(){this.renderChildren();return true},renderChildren:function(){this.renderItems(this.getLayoutItems(),this.getRenderTarget())},renderItems:function(items,target){var me=this,ln=items.length,i=0,item;for(;i<ln;i++){item=items[i];if(item&&!item.rendered){me.renderItem(item,target,i)}else{if(!me.isValidParent(item,target,i)){me.moveItem(item,target,i)}else{me.configureItem(item)}}}},isValidParent:function(item,target,position){var dom=item.el?item.el.dom:Ext.getDom(item);if(dom&&target&&target.dom){if(Ext.isNumber(position)&&dom!==target.dom.childNodes[position]){return false}return(dom.parentNode==(target.dom||target))}return false},renderItem:function(item,target,position){var me=this;if(!item.rendered){if(me.itemCls){item.addCls(me.itemCls)}if(me.owner.itemCls){item.addCls(me.owner.itemCls)}item.render(target,position);me.configureItem(item);me.childrenChanged=true}},moveItem:function(item,target,position){target=target.dom||target;if(typeof position=="number"){position=target.childNodes[position]}target.insertBefore(item.el.dom,position||null);item.container=Ext.get(target);this.configureItem(item);this.childrenChanged=true},initLayout:function(){var me=this,targetCls=me.targetCls;if(!me.initialized&&!Ext.isEmpty(targetCls)){me.getTarget().addCls(targetCls)}me.initialized=true},setOwner:function(owner){this.owner=owner},getLayoutItems:function(){return[]},configureItem:Ext.emptyFn,onLayout:Ext.emptyFn,afterLayout:Ext.emptyFn,onRemove:Ext.emptyFn,onDestroy:Ext.emptyFn,doOwnerCtLayouts:Ext.emptyFn,afterRemove:function(item){var el=item.el,owner=this.owner,itemCls=this.itemCls,ownerCls=owner.itemCls;if(item.rendered&&!item.isDestroyed){if(itemCls){el.removeCls(itemCls)}if(ownerCls){el.removeCls(ownerCls)}}delete item.layoutManagedWidth;delete item.layoutManagedHeight},destroy:function(){var targetCls=this.targetCls,target;if(!Ext.isEmpty(targetCls)){target=this.getTarget();if(target){target.removeCls(targetCls)}}this.onDestroy()}});Ext.define("Ext.ZIndexManager",{alternateClassName:"Ext.WindowGroup",statics:{zBase:9000},constructor:function(container){var me=this;me.list={};me.zIndexStack=[];me.front=null;if(container){if(container.isContainer){container.on("resize",me._onContainerResize,me);me.zseed=Ext.Number.from(container.getEl().getStyle("zIndex"),me.getNextZSeed());me.targetEl=container.getTargetEl();me.container=container}else{Ext.EventManager.onWindowResize(me._onContainerResize,me);me.zseed=me.getNextZSeed();me.targetEl=Ext.get(container)}}else{Ext.EventManager.onWindowResize(me._onContainerResize,me);me.zseed=me.getNextZSeed();Ext.onDocumentReady(function(){me.targetEl=Ext.getBody()})}},getNextZSeed:function(){return(Ext.ZIndexManager.zBase+=10000)},setBase:function(baseZIndex){this.zseed=baseZIndex;return this.assignZIndices()},assignZIndices:function(){var a=this.zIndexStack,len=a.length,i=0,zIndex=this.zseed,comp;for(;i<len;i++){comp=a[i];if(comp&&!comp.hidden){zIndex=comp.setZIndex(zIndex)}}this._activateLast();return zIndex},_setActiveChild:function(comp){if(comp!==this.front){if(this.front){this.front.setActive(false,comp)}this.front=comp;if(comp){comp.setActive(true);if(comp.modal){this._showModalMask(comp)}}}},_activateLast:function(justHidden){var comp,lastActivated=false,i;for(i=this.zIndexStack.length-1;i>=0;--i){comp=this.zIndexStack[i];if(!comp.hidden){if(!lastActivated){this._setActiveChild(comp);lastActivated=true}if(comp.modal){this._showModalMask(comp);return}}}this._hideModalMask();if(!lastActivated){this._setActiveChild(null)}},_showModalMask:function(comp){var zIndex=comp.el.getStyle("zIndex")-4,maskTarget=comp.floatParent?comp.floatParent.getTargetEl():Ext.get(comp.getEl().dom.parentNode),parentBox;if(!maskTarget){return}parentBox=maskTarget.getBox();if(!this.mask){this.mask=Ext.getBody().createChild({cls:Ext.baseCSSPrefix+"mask"});this.mask.setVisibilityMode(Ext.Element.DISPLAY);this.mask.on("click",this._onMaskClick,this)}if(maskTarget.dom===document.body){parentBox.height=Ext.Element.getViewHeight()}maskTarget.addCls(Ext.baseCSSPrefix+"body-masked");this.mask.setBox(parentBox);this.mask.setStyle("zIndex",zIndex);this.mask.show()},_hideModalMask:function(){if(this.mask&&this.mask.dom.parentNode){Ext.get(this.mask.dom.parentNode).removeCls(Ext.baseCSSPrefix+"body-masked");this.mask.hide()}},_onMaskClick:function(){if(this.front){this.front.focus()}},_onContainerResize:function(){if(this.mask&&this.mask.isVisible()){this.mask.setSize(Ext.get(this.mask.dom.parentNode).getViewSize(true))}},register:function(comp){if(comp.zIndexManager){comp.zIndexManager.unregister(comp)}comp.zIndexManager=this;this.list[comp.id]=comp;this.zIndexStack.push(comp);comp.on("hide",this._activateLast,this)},unregister:function(comp){delete comp.zIndexManager;if(this.list&&this.list[comp.id]){delete this.list[comp.id];comp.un("hide",this._activateLast);Ext.Array.remove(this.zIndexStack,comp);this._activateLast(comp)}},get:function(id){return typeof id=="object"?id:this.list[id]},bringToFront:function(comp){comp=this.get(comp);if(comp!==this.front){Ext.Array.remove(this.zIndexStack,comp);this.zIndexStack.push(comp);this.assignZIndices();return true}if(comp.modal){this._showModalMask(comp)}return false},sendToBack:function(comp){comp=this.get(comp);Ext.Array.remove(this.zIndexStack,comp);this.zIndexStack.unshift(comp);this.assignZIndices();return comp},hideAll:function(){for(var id in this.list){if(this.list[id].isComponent&&this.list[id].isVisible()){this.list[id].hide()}}},hide:function(){var i=0,ln=this.zIndexStack.length,comp;this.tempHidden=[];for(;i<ln;i++){comp=this.zIndexStack[i];if(comp.isVisible()){this.tempHidden.push(comp);comp.hide()}}},show:function(){var i=0,ln=this.tempHidden.length,comp,x,y;for(;i<ln;i++){comp=this.tempHidden[i];x=comp.x;y=comp.y;comp.show();comp.setPosition(x,y)}delete this.tempHidden},getActive:function(){return this.front},getBy:function(fn,scope){var r=[],i=0,len=this.zIndexStack.length,comp;for(;i<len;i++){comp=this.zIndexStack[i];if(fn.call(scope||comp,comp)!==false){r.push(comp)}}return r},each:function(fn,scope){var comp;for(var id in this.list){comp=this.list[id];if(comp.isComponent&&fn.call(scope||comp,comp)===false){return}}},eachBottomUp:function(fn,scope){var comp,stack=this.zIndexStack,i,n;for(i=0,n=stack.length;i<n;i++){comp=stack[i];if(comp.isComponent&&fn.call(scope||comp,comp)===false){return}}},eachTopDown:function(fn,scope){var comp,stack=this.zIndexStack,i;for(i=stack.length;i-->0;){comp=stack[i];if(comp.isComponent&&fn.call(scope||comp,comp)===false){return}}},destroy:function(){this.each(function(c){c.destroy()});delete this.zIndexStack;delete this.list;delete this.container;delete this.targetEl}},function(){Ext.WindowManager=Ext.WindowMgr=new this()});Ext.define("Ext.layout.container.boxOverflow.None",{alternateClassName:"Ext.layout.boxOverflow.None",constructor:function(layout,config){this.layout=layout;Ext.apply(this,config||{})},handleOverflow:Ext.emptyFn,clearOverflow:Ext.emptyFn,onRemove:Ext.emptyFn,getItem:function(item){return this.layout.owner.getComponent(item)},onRemove:Ext.emptyFn});Ext.define("Ext.util.KeyMap",{alternateClassName:"Ext.KeyMap",constructor:function(el,binding,eventName){var me=this;Ext.apply(me,{el:Ext.get(el),eventName:eventName||me.eventName,bindings:[]});if(binding){me.addBinding(binding)}me.enable()},eventName:"keydown",addBinding:function(binding){if(Ext.isArray(binding)){Ext.each(binding,this.addBinding,this);return}var keyCode=binding.key,processed=false,key,keys,keyString,i,len;if(Ext.isString(keyCode)){keys=[];keyString=keyCode.toUpperCase();for(i=0,len=keyString.length;i<len;++i){keys.push(keyString.charCodeAt(i))}keyCode=keys;processed=true}if(!Ext.isArray(keyCode)){keyCode=[keyCode]}if(!processed){for(i=0,len=keyCode.length;i<len;++i){key=keyCode[i];if(Ext.isString(key)){keyCode[i]=key.toUpperCase().charCodeAt(0)}}}this.bindings.push(Ext.apply({keyCode:keyCode},binding))},handleKeyDown:function(event){if(this.enabled){var bindings=this.bindings,i=0,len=bindings.length;event=this.processEvent(event);for(;i<len;++i){this.processBinding(bindings[i],event)}}},processEvent:function(event){return event},processBinding:function(binding,event){if(this.checkModifiers(binding,event)){var key=event.getKey(),handler=binding.fn||binding.handler,scope=binding.scope||this,keyCode=binding.keyCode,defaultEventAction=binding.defaultEventAction,i,len,keydownEvent=new Ext.EventObjectImpl(event);for(i=0,len=keyCode.length;i<len;++i){if(key===keyCode[i]){if(handler.call(scope,key,event)!==true&&defaultEventAction){keydownEvent[defaultEventAction]()}break}}}},checkModifiers:function(binding,e){var keys=["shift","ctrl","alt"],i=0,len=keys.length,val,key;for(;i<len;++i){key=keys[i];val=binding[key];if(!(val===undefined||(val===e[key+"Key"]))){return false}}return true},on:function(key,fn,scope){var keyCode,shift,ctrl,alt;if(Ext.isObject(key)&&!Ext.isArray(key)){keyCode=key.key;shift=key.shift;ctrl=key.ctrl;alt=key.alt}else{keyCode=key}this.addBinding({key:keyCode,shift:shift,ctrl:ctrl,alt:alt,fn:fn,scope:scope})},isEnabled:function(){return this.enabled},enable:function(){var me=this;if(!me.enabled){me.el.on(me.eventName,me.handleKeyDown,me);me.enabled=true}},disable:function(){var me=this;if(me.enabled){me.el.removeListener(me.eventName,me.handleKeyDown,me);me.enabled=false}},setDisabled:function(disabled){if(disabled){this.disable()}else{this.enable()}},destroy:function(removeEl){var me=this;me.bindings=[];me.disable();if(removeEl===true){me.el.remove()}delete me.el}});Ext.define("Ext.util.ClickRepeater",{extend:"Ext.util.Observable",constructor:function(el,config){this.el=Ext.get(el);this.el.unselectable();Ext.apply(this,config);this.addEvents("mousedown","click","mouseup");if(!this.disabled){this.disabled=true;this.enable()}if(this.handler){this.on("click",this.handler,this.scope||this)}this.callParent()},interval:20,delay:250,preventDefault:true,stopDefault:false,timer:0,enable:function(){if(this.disabled){this.el.on("mousedown",this.handleMouseDown,this);if(Ext.isIE){this.el.on("dblclick",this.handleDblClick,this)}if(this.preventDefault||this.stopDefault){this.el.on("click",this.eventOptions,this)}}this.disabled=false},disable:function(force){if(force||!this.disabled){clearTimeout(this.timer);if(this.pressedCls){this.el.removeCls(this.pressedCls)}Ext.getDoc().un("mouseup",this.handleMouseUp,this);this.el.removeAllListeners()}this.disabled=true},setDisabled:function(disabled){this[disabled?"disable":"enable"]()},eventOptions:function(e){if(this.preventDefault){e.preventDefault()}if(this.stopDefault){e.stopEvent()}},destroy:function(){this.disable(true);Ext.destroy(this.el);this.clearListeners()},handleDblClick:function(e){clearTimeout(this.timer);this.el.blur();this.fireEvent("mousedown",this,e);this.fireEvent("click",this,e)},handleMouseDown:function(e){clearTimeout(this.timer);this.el.blur();if(this.pressedCls){this.el.addCls(this.pressedCls)}this.mousedownTime=new Date();Ext.getDoc().on("mouseup",this.handleMouseUp,this);this.el.on("mouseout",this.handleMouseOut,this);this.fireEvent("mousedown",this,e);this.fireEvent("click",this,e);if(this.accelerate){this.delay=400}e=new Ext.EventObjectImpl(e);this.timer=Ext.defer(this.click,this.delay||this.interval,this,[e])},click:function(e){this.fireEvent("click",this,e);this.timer=Ext.defer(this.click,this.accelerate?this.easeOutExpo(Ext.Date.getElapsed(this.mousedownTime),400,-390,12000):this.interval,this,[e])},easeOutExpo:function(t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b},handleMouseOut:function(){clearTimeout(this.timer);if(this.pressedCls){this.el.removeCls(this.pressedCls)}this.el.on("mouseover",this.handleMouseReturn,this)},handleMouseReturn:function(){this.el.un("mouseover",this.handleMouseReturn,this);if(this.pressedCls){this.el.addCls(this.pressedCls)}this.click()},handleMouseUp:function(e){clearTimeout(this.timer);this.el.un("mouseover",this.handleMouseReturn,this);this.el.un("mouseout",this.handleMouseOut,this);Ext.getDoc().un("mouseup",this.handleMouseUp,this);if(this.pressedCls){this.el.removeCls(this.pressedCls)}this.fireEvent("mouseup",this,e)}});Ext.define("Ext.layout.component.Component",{extend:"Ext.layout.Layout",type:"component",monitorChildren:true,initLayout:function(){var me=this,owner=me.owner,ownerEl=owner.el;if(!me.initialized){if(owner.frameSize){me.frameSize=owner.frameSize}else{owner.frameSize=me.frameSize={top:0,left:0,bottom:0,right:0}}}me.callParent(arguments)},beforeLayout:function(width,height,isSetSize,callingContainer){this.callParent(arguments);var me=this,owner=me.owner,ownerCt=owner.ownerCt,layout=owner.layout,isVisible=owner.isVisible(true),ownerElChild=owner.el.child,layoutCollection;me.previousComponentSize=me.lastComponentSize;if(!isSetSize&&((!Ext.isNumber(width)&&owner.isFixedWidth())||(!Ext.isNumber(height)&&owner.isFixedHeight()))&&callingContainer&&callingContainer!==ownerCt){me.doContainerLayout();return false}if(!isVisible&&(owner.hiddenAncestor||owner.floating)){if(owner.hiddenAncestor){layoutCollection=owner.hiddenAncestor.layoutOnShow;layoutCollection.remove(owner);layoutCollection.add(owner)}owner.needsLayout={width:width,height:height,isSetSize:false}}if(isVisible&&this.needsLayout(width,height)){return owner.beforeComponentLayout(width,height,isSetSize,callingContainer)}else{return false}},needsLayout:function(width,height){var me=this,widthBeingChanged,heightBeingChanged;me.lastComponentSize=me.lastComponentSize||{width:-Infinity,height:-Infinity};widthBeingChanged=!Ext.isDefined(width)||me.lastComponentSize.width!==width;heightBeingChanged=!Ext.isDefined(height)||me.lastComponentSize.height!==height;return !me.isSizing&&(me.childrenChanged||widthBeingChanged||heightBeingChanged)},setElementSize:function(el,width,height){if(width!==undefined&&height!==undefined){el.setSize(width,height)}else{if(height!==undefined){el.setHeight(height)}else{if(width!==undefined){el.setWidth(width)}}}},getTarget:function(){return this.owner.el},getRenderTarget:function(){return this.owner.el},setTargetSize:function(width,height){var me=this;me.setElementSize(me.owner.el,width,height);if(me.owner.frameBody){var targetInfo=me.getTargetInfo(),padding=targetInfo.padding,border=targetInfo.border,frameSize=me.frameSize;me.setElementSize(me.owner.frameBody,Ext.isNumber(width)?(width-frameSize.left-frameSize.right-padding.left-padding.right-border.left-border.right):width,Ext.isNumber(height)?(height-frameSize.top-frameSize.bottom-padding.top-padding.bottom-border.top-border.bottom):height)}me.autoSized={width:!Ext.isNumber(width),height:!Ext.isNumber(height)};me.lastComponentSize={width:width,height:height}},getTargetInfo:function(){if(!this.targetInfo){var target=this.getTarget(),body=this.owner.getTargetEl();this.targetInfo={padding:{top:target.getPadding("t"),right:target.getPadding("r"),bottom:target.getPadding("b"),left:target.getPadding("l")},border:{top:target.getBorderWidth("t"),right:target.getBorderWidth("r"),bottom:target.getBorderWidth("b"),left:target.getBorderWidth("l")},bodyMargin:{top:body.getMargin("t"),right:body.getMargin("r"),bottom:body.getMargin("b"),left:body.getMargin("l")}}}return this.targetInfo},doOwnerCtLayouts:function(){var owner=this.owner,ownerCt=owner.ownerCt,ownerCtComponentLayout,ownerCtContainerLayout,curSize=this.lastComponentSize,prevSize=this.previousComponentSize,widthChange=(prevSize&&curSize&&Ext.isNumber(curSize.width))?curSize.width!==prevSize.width:true,heightChange=(prevSize&&curSize&&Ext.isNumber(curSize.height))?curSize.height!==prevSize.height:true;if(!ownerCt||(!widthChange&&!heightChange)){return}ownerCtComponentLayout=ownerCt.componentLayout;ownerCtContainerLayout=ownerCt.layout;if(!owner.floating&&ownerCtComponentLayout&&ownerCtComponentLayout.monitorChildren&&!ownerCtComponentLayout.layoutBusy){if(!ownerCt.suspendLayout&&ownerCtContainerLayout&&!ownerCtContainerLayout.layoutBusy){if(((widthChange&&!ownerCt.isFixedWidth())||(heightChange&&!ownerCt.isFixedHeight()))){this.isSizing=true;ownerCt.doComponentLayout();this.isSizing=false}else{if(ownerCtContainerLayout.bindToOwnerCtContainer===true){ownerCtContainerLayout.layout()}}}}},doContainerLayout:function(){var me=this,owner=me.owner,ownerCt=owner.ownerCt,layout=owner.layout,ownerCtComponentLayout;if(!owner.suspendLayout&&layout&&layout.isLayout&&!layout.layoutBusy&&!layout.isAutoDock){layout.layout()}if(ownerCt&&ownerCt.componentLayout){ownerCtComponentLayout=ownerCt.componentLayout;if(!owner.floating&&ownerCtComponentLayout.monitorChildren&&!ownerCtComponentLayout.layoutBusy){ownerCtComponentLayout.childrenChanged=true}}},afterLayout:function(width,height,isSetSize,layoutOwner){this.doContainerLayout();this.owner.afterComponentLayout(width,height,isSetSize,layoutOwner)}});Ext.define("Ext.util.TextMetrics",{statics:{shared:null,measure:function(el,text,fixedWidth){var me=this,shared=me.shared;if(!shared){shared=me.shared=new me(el,fixedWidth)}shared.bind(el);shared.setFixedWidth(fixedWidth||"auto");return shared.getSize(text)},destroy:function(){var me=this;Ext.destroy(me.shared);me.shared=null}},constructor:function(bindTo,fixedWidth){var measure=this.measure=Ext.getBody().createChild({cls:"x-textmetrics"});this.el=Ext.get(bindTo);measure.position("absolute");measure.setLeftTop(-1000,-1000);measure.hide();if(fixedWidth){measure.setWidth(fixedWidth)}},getSize:function(text){var measure=this.measure,size;measure.update(text);size=measure.getSize();measure.update("");return size},bind:function(el){var me=this;me.el=Ext.get(el);me.measure.setStyle(me.el.getStyles("font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"))},setFixedWidth:function(width){this.measure.setWidth(width)},getWidth:function(text){this.measure.dom.style.width="auto";return this.getSize(text).width},getHeight:function(text){return this.getSize(text).height},destroy:function(){var me=this;me.measure.remove();delete me.el;delete me.measure}},function(){Ext.Element.addMethods({getTextWidth:function(text,min,max){return Ext.Number.constrain(Ext.util.TextMetrics.measure(this.dom,Ext.value(text,this.dom.innerHTML,true)).width,min||0,max||1000000)}})});Ext.define("Ext.layout.container.boxOverflow.Scroller",{extend:"Ext.layout.container.boxOverflow.None",requires:["Ext.util.ClickRepeater","Ext.Element"],alternateClassName:"Ext.layout.boxOverflow.Scroller",mixins:{observable:"Ext.util.Observable"},animateScroll:false,scrollIncrement:20,wheelIncrement:10,scrollRepeatInterval:60,scrollDuration:400,scrollerCls:Ext.baseCSSPrefix+"box-scroller",constructor:function(layout,config){this.layout=layout;Ext.apply(this,config||{});this.addEvents("scroll")},initCSSClasses:function(){var me=this,layout=me.layout;if(!me.CSSinitialized){me.beforeCtCls=me.beforeCtCls||Ext.baseCSSPrefix+"box-scroller-"+layout.parallelBefore;me.afterCtCls=me.afterCtCls||Ext.baseCSSPrefix+"box-scroller-"+layout.parallelAfter;me.beforeScrollerCls=me.beforeScrollerCls||Ext.baseCSSPrefix+layout.owner.getXType()+"-scroll-"+layout.parallelBefore;me.afterScrollerCls=me.afterScrollerCls||Ext.baseCSSPrefix+layout.owner.getXType()+"-scroll-"+layout.parallelAfter;me.CSSinitializes=true}},handleOverflow:function(calculations,targetSize){var me=this,layout=me.layout,methodName="get"+layout.parallelPrefixCap,newSize={};me.initCSSClasses();me.callParent(arguments);this.createInnerElements();this.showScrollers();newSize[layout.perpendicularPrefix]=targetSize[layout.perpendicularPrefix];newSize[layout.parallelPrefix]=targetSize[layout.parallelPrefix]-(me.beforeCt[methodName]()+me.afterCt[methodName]());return{targetSize:newSize}},createInnerElements:function(){var me=this,target=me.layout.getRenderTarget();if(!me.beforeCt){target.addCls(Ext.baseCSSPrefix+me.layout.direction+"-box-overflow-body");me.beforeCt=target.insertSibling({cls:Ext.layout.container.Box.prototype.innerCls+" "+me.beforeCtCls},"before");me.afterCt=target.insertSibling({cls:Ext.layout.container.Box.prototype.innerCls+" "+me.afterCtCls},"after");me.createWheelListener()}},createWheelListener:function(){this.layout.innerCt.on({scope:this,mousewheel:function(e){e.stopEvent();this.scrollBy(e.getWheelDelta()*this.wheelIncrement*-1,false)}})},clearOverflow:function(){this.hideScrollers()},showScrollers:function(){this.createScrollers();this.beforeScroller.show();this.afterScroller.show();this.updateScrollButtons();this.layout.owner.addClsWithUI("scroller")},hideScrollers:function(){if(this.beforeScroller!=undefined){this.beforeScroller.hide();this.afterScroller.hide();this.layout.owner.removeClsWithUI("scroller")}},createScrollers:function(){if(!this.beforeScroller&&!this.afterScroller){var before=this.beforeCt.createChild({cls:Ext.String.format("{0} {1} ",this.scrollerCls,this.beforeScrollerCls)});var after=this.afterCt.createChild({cls:Ext.String.format("{0} {1}",this.scrollerCls,this.afterScrollerCls)});before.addClsOnOver(this.beforeScrollerCls+"-hover");after.addClsOnOver(this.afterScrollerCls+"-hover");before.setVisibilityMode(Ext.Element.DISPLAY);after.setVisibilityMode(Ext.Element.DISPLAY);this.beforeRepeater=Ext.create("Ext.util.ClickRepeater",before,{interval:this.scrollRepeatInterval,handler:this.scrollLeft,scope:this});this.afterRepeater=Ext.create("Ext.util.ClickRepeater",after,{interval:this.scrollRepeatInterval,handler:this.scrollRight,scope:this});this.beforeScroller=before;this.afterScroller=after}},destroy:function(){Ext.destroy(this.beforeRepeater,this.afterRepeater,this.beforeScroller,this.afterScroller,this.beforeCt,this.afterCt)},scrollBy:function(delta,animate){this.scrollTo(this.getScrollPosition()+delta,animate)},getScrollAnim:function(){return{duration:this.scrollDuration,callback:this.updateScrollButtons,scope:this}},updateScrollButtons:function(){if(this.beforeScroller==undefined||this.afterScroller==undefined){return}var beforeMeth=this.atExtremeBefore()?"addCls":"removeCls",afterMeth=this.atExtremeAfter()?"addCls":"removeCls",beforeCls=this.beforeScrollerCls+"-disabled",afterCls=this.afterScrollerCls+"-disabled";this.beforeScroller[beforeMeth](beforeCls);this.afterScroller[afterMeth](afterCls);this.scrolling=false},atExtremeBefore:function(){return this.getScrollPosition()===0},scrollLeft:function(){this.scrollBy(-this.scrollIncrement,false)},scrollRight:function(){this.scrollBy(this.scrollIncrement,false)},getScrollPosition:function(){var layout=this.layout;return parseInt(layout.innerCt.dom["scroll"+layout.parallelBeforeCap],10)||0},getMaxScrollPosition:function(){var layout=this.layout;return layout.innerCt.dom["scroll"+layout.parallelPrefixCap]-this.layout.innerCt["get"+layout.parallelPrefixCap]()},atExtremeAfter:function(){return this.getScrollPosition()>=this.getMaxScrollPosition()},scrollTo:function(position,animate){var me=this,layout=me.layout,oldPosition=me.getScrollPosition(),newPosition=Ext.Number.constrain(position,0,me.getMaxScrollPosition());if(newPosition!=oldPosition&&!me.scrolling){if(animate==undefined){animate=me.animateScroll}layout.innerCt.scrollTo(layout.parallelBefore,newPosition,animate?me.getScrollAnim():false);if(animate){me.scrolling=true}else{me.scrolling=false;me.updateScrollButtons()}me.fireEvent("scroll",me,newPosition,animate?me.getScrollAnim():false)}},scrollToItem:function(item,animate){var me=this,layout=me.layout,visibility,box,newPos;item=me.getItem(item);if(item!=undefined){visibility=this.getItemVisibility(item);if(!visibility.fullyVisible){box=item.getBox(true,true);newPos=box[layout.parallelPosition];if(visibility.hiddenEnd){newPos-=(this.layout.innerCt["get"+layout.parallelPrefixCap]()-box[layout.parallelPrefix])}this.scrollTo(newPos,animate)}}},getItemVisibility:function(item){var me=this,box=me.getItem(item).getBox(true,true),layout=me.layout,itemStart=box[layout.parallelPosition],itemEnd=itemStart+box[layout.parallelPrefix],scrollStart=me.getScrollPosition(),scrollEnd=scrollStart+layout.innerCt["get"+layout.parallelPrefixCap]();return{hiddenStart:itemStart<scrollStart,hiddenEnd:itemEnd>scrollEnd,fullyVisible:itemStart>scrollStart&&itemEnd<scrollEnd}}});Ext.define("Ext.util.Offset",{statics:{fromObject:function(obj){return new this(obj.x,obj.y)}},constructor:function(x,y){this.x=(x!=null&&!isNaN(x))?x:0;this.y=(y!=null&&!isNaN(y))?y:0;return this},copy:function(){return new Ext.util.Offset(this.x,this.y)},copyFrom:function(p){this.x=p.x;this.y=p.y},toString:function(){return"Offset["+this.x+","+this.y+"]"},equals:function(offset){return(this.x==offset.x&&this.y==offset.y)},round:function(to){if(!isNaN(to)){var factor=Math.pow(10,to);this.x=Math.round(this.x*factor)/factor;this.y=Math.round(this.y*factor)/factor}else{this.x=Math.round(this.x);this.y=Math.round(this.y)}},isZero:function(){return this.x==0&&this.y==0}});Ext.define("Ext.util.KeyNav",{alternateClassName:"Ext.KeyNav",requires:["Ext.util.KeyMap"],statics:{keyOptions:{left:37,right:39,up:38,down:40,space:32,pageUp:33,pageDown:34,del:46,backspace:8,home:36,end:35,enter:13,esc:27,tab:9}},constructor:function(el,config){this.setConfig(el,config||{})},setConfig:function(el,config){if(this.map){this.map.destroy()}var map=Ext.create("Ext.util.KeyMap",el,null,this.getKeyEvent("forceKeyDown" in config?config.forceKeyDown:this.forceKeyDown)),keys=Ext.util.KeyNav.keyOptions,scope=config.scope||this,key;this.map=map;for(key in keys){if(keys.hasOwnProperty(key)){if(config[key]){map.addBinding({scope:scope,key:keys[key],handler:Ext.Function.bind(this.handleEvent,scope,[config[key]],true),defaultEventAction:config.defaultEventAction||this.defaultEventAction})}}}map.disable();if(!config.disabled){map.enable()}},handleEvent:function(map,event,handler){return handler.call(this,event)},disabled:false,defaultEventAction:"stopEvent",forceKeyDown:false,destroy:function(removeEl){this.map.destroy(removeEl);delete this.map},enable:function(){this.map.enable();this.disabled=false},disable:function(){this.map.disable();this.disabled=true},setDisabled:function(disabled){this.map.setDisabled(disabled);this.disabled=disabled},getKeyEvent:function(forceKeyDown){return(forceKeyDown||Ext.EventManager.useKeyDown)?"keydown":"keypress"}});Ext.define("Ext.fx.Queue",{requires:["Ext.util.HashMap"],constructor:function(){this.targets=Ext.create("Ext.util.HashMap");this.fxQueue={}},getFxDefaults:function(targetId){var target=this.targets.get(targetId);if(target){return target.fxDefaults}return{}},setFxDefaults:function(targetId,obj){var target=this.targets.get(targetId);if(target){target.fxDefaults=Ext.apply(target.fxDefaults||{},obj)}},stopAnimation:function(targetId){var me=this,queue=me.getFxQueue(targetId),ln=queue.length;while(ln){queue[ln-1].end();ln--}},getActiveAnimation:function(targetId){var queue=this.getFxQueue(targetId);return(queue&&!!queue.length)?queue[0]:false},hasFxBlock:function(targetId){var queue=this.getFxQueue(targetId);return queue&&queue[0]&&queue[0].block},getFxQueue:function(targetId){if(!targetId){return false}var me=this,queue=me.fxQueue[targetId],target=me.targets.get(targetId);if(!target){return false}if(!queue){me.fxQueue[targetId]=[];if(target.type!="element"){target.target.on("destroy",function(){me.fxQueue[targetId]=[]})}}return me.fxQueue[targetId]},queueFx:function(anim){var me=this,target=anim.target,queue,ln;if(!target){return}queue=me.getFxQueue(target.getId());ln=queue.length;if(ln){if(anim.concurrent){anim.paused=false}else{queue[ln-1].on("afteranimate",function(){anim.paused=false})}}else{anim.paused=false}anim.on("afteranimate",function(){Ext.Array.remove(queue,anim);if(anim.remove){if(target.type=="element"){var el=Ext.get(target.id);if(el){el.remove()}}}},this);queue.push(anim)}});Ext.define("Ext.fx.target.Target",{isAnimTarget:true,constructor:function(target){this.target=target;this.id=this.getId()},getId:function(){return this.target.id}});Ext.define("Ext.fx.target.Sprite",{extend:"Ext.fx.target.Target",type:"draw",getFromPrim:function(sprite,attr){var o;if(attr=="translate"){o={x:sprite.attr.translation.x||0,y:sprite.attr.translation.y||0}}else{if(attr=="rotate"){o={degrees:sprite.attr.rotation.degrees||0,x:sprite.attr.rotation.x,y:sprite.attr.rotation.y}}else{o=sprite.attr[attr]}}return o},getAttr:function(attr,val){return[[this.target,val!=undefined?val:this.getFromPrim(this.target,attr)]]},setAttr:function(targetData){var ln=targetData.length,spriteArr=[],attrs,attr,attrArr,attPtr,spritePtr,idx,value,i,j,x,y,ln2;for(i=0;i<ln;i++){attrs=targetData[i].attrs;for(attr in attrs){attrArr=attrs[attr];ln2=attrArr.length;for(j=0;j<ln2;j++){spritePtr=attrArr[j][0];attPtr=attrArr[j][1];if(attr==="translate"){value={x:attPtr.x,y:attPtr.y}}else{if(attr==="rotate"){x=attPtr.x;if(isNaN(x)){x=null}y=attPtr.y;if(isNaN(y)){y=null}value={degrees:attPtr.degrees,x:x,y:y}}else{if(attr==="width"||attr==="height"||attr==="x"||attr==="y"){value=parseFloat(attPtr)}else{value=attPtr}}}idx=Ext.Array.indexOf(spriteArr,spritePtr);if(idx==-1){spriteArr.push([spritePtr,{}]);idx=spriteArr.length-1}spriteArr[idx][1][attr]=value}}}ln=spriteArr.length;for(i=0;i<ln;i++){spritePtr=spriteArr[i];spritePtr[0].setAttributes(spritePtr[1])}this.target.redraw()}});Ext.define("Ext.fx.target.CompositeSprite",{extend:"Ext.fx.target.Sprite",getAttr:function(attr,val){var out=[],target=this.target;target.each(function(sprite){out.push([sprite,val!=undefined?val:this.getFromPrim(sprite,attr)])},this);return out}});Ext.define("Ext.fx.target.Component",{extend:"Ext.fx.target.Target",type:"component",getPropMethod:{top:function(){return this.getPosition(true)[1]},left:function(){return this.getPosition(true)[0]},x:function(){return this.getPosition()[0]},y:function(){return this.getPosition()[1]},height:function(){return this.getHeight()},width:function(){return this.getWidth()},opacity:function(){return this.el.getStyle("opacity")}},compMethod:{top:"setPosition",left:"setPosition",x:"setPagePosition",y:"setPagePosition",height:"setSize",width:"setSize",opacity:"setOpacity"},getAttr:function(attr,val){return[[this.target,val!==undefined?val:this.getPropMethod[attr].call(this.target)]]},setAttr:function(targetData,isFirstFrame,isLastFrame){var me=this,target=me.target,ln=targetData.length,attrs,attr,o,i,j,meth,targets,left,top,w,h;for(i=0;i<ln;i++){attrs=targetData[i].attrs;for(attr in attrs){targets=attrs[attr].length;meth={setPosition:{},setPagePosition:{},setSize:{},setOpacity:{}};for(j=0;j<targets;j++){o=attrs[attr][j];meth[me.compMethod[attr]].target=o[0];meth[me.compMethod[attr]][attr]=o[1]}if(meth.setPosition.target){o=meth.setPosition;left=(o.left===undefined)?undefined:parseInt(o.left,10);top=(o.top===undefined)?undefined:parseInt(o.top,10);o.target.setPosition(left,top)}if(meth.setPagePosition.target){o=meth.setPagePosition;o.target.setPagePosition(o.x,o.y)}if(meth.setSize.target&&meth.setSize.target.el){o=meth.setSize;w=(o.width===undefined)?o.target.getWidth():parseInt(o.width,10);h=(o.height===undefined)?o.target.getHeight():parseInt(o.height,10);if(isLastFrame||me.dynamic){o.target.componentLayout.childrenChanged=true;if(me.layoutAnimation){o.target.setCalculatedSize(w,h)}else{o.target.setSize(w,h)}}else{o.target.el.setSize(w,h)}}if(meth.setOpacity.target){o=meth.setOpacity;o.target.el.setStyle("opacity",o.opacity)}}}}});Ext.define("Ext.fx.CubicBezier",{singleton:true,cubicBezierAtTime:function(t,p1x,p1y,p2x,p2y,duration){var cx=3*p1x,bx=3*(p2x-p1x)-cx,ax=1-cx-bx,cy=3*p1y,by=3*(p2y-p1y)-cy,ay=1-cy-by;function sampleCurveX(t){return((ax*t+bx)*t+cx)*t}function solve(x,epsilon){var t=solveCurveX(x,epsilon);return((ay*t+by)*t+cy)*t}function solveCurveX(x,epsilon){var t0,t1,t2,x2,d2,i;for(t2=x,i=0;i<8;i++){x2=sampleCurveX(t2)-x;if(Math.abs(x2)<epsilon){return t2}d2=(3*ax*t2+2*bx)*t2+cx;if(Math.abs(d2)<0.000001){break}t2=t2-x2/d2}t0=0;t1=1;t2=x;if(t2<t0){return t0}if(t2>t1){return t1}while(t0<t1){x2=sampleCurveX(t2);if(Math.abs(x2-x)<epsilon){return t2}if(x>x2){t0=t2}else{t1=t2}t2=(t1-t0)/2+t0}return t2}return solve(t,1/(200*duration))},cubicBezier:function(x1,y1,x2,y2){var fn=function(pos){return Ext.fx.CubicBezier.cubicBezierAtTime(pos,x1,y1,x2,y2,1)};fn.toCSS3=function(){return"cubic-bezier("+[x1,y1,x2,y2].join(",")+")"};fn.reverse=function(){return Ext.fx.CubicBezier.cubicBezier(1-x2,1-y2,1-x1,1-y1)};return fn}});Ext.define("Ext.draw.Color",{colorToHexRe:/(.*?)rgb\((\d+),\s*(\d+),\s*(\d+)\)/,rgbRe:/\s*rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)\s*/,hexRe:/\s*#([0-9a-fA-F][0-9a-fA-F]?)([0-9a-fA-F][0-9a-fA-F]?)([0-9a-fA-F][0-9a-fA-F]?)\s*/,lightnessFactor:0.2,constructor:function(red,green,blue){var me=this,clamp=Ext.Number.constrain;me.r=clamp(red,0,255);me.g=clamp(green,0,255);me.b=clamp(blue,0,255)},getRed:function(){return this.r},getGreen:function(){return this.g},getBlue:function(){return this.b},getRGB:function(){var me=this;return[me.r,me.g,me.b]},getHSL:function(){var me=this,r=me.r/255,g=me.g/255,b=me.b/255,max=Math.max(r,g,b),min=Math.min(r,g,b),delta=max-min,h,s=0,l=0.5*(max+min);if(min!=max){s=(l<0.5)?delta/(max+min):delta/(2-max-min);if(r==max){h=60*(g-b)/delta}else{if(g==max){h=120+60*(b-r)/delta}else{h=240+60*(r-g)/delta}}if(h<0){h+=360}if(h>=360){h-=360}}return[h,s,l]},getLighter:function(factor){var hsl=this.getHSL();factor=factor||this.lightnessFactor;hsl[2]=Ext.Number.constrain(hsl[2]+factor,0,1);return this.fromHSL(hsl[0],hsl[1],hsl[2])},getDarker:function(factor){factor=factor||this.lightnessFactor;return this.getLighter(-factor)},toString:function(){var me=this,round=Math.round,r=round(me.r).toString(16),g=round(me.g).toString(16),b=round(me.b).toString(16);r=(r.length==1)?"0"+r:r;g=(g.length==1)?"0"+g:g;b=(b.length==1)?"0"+b:b;return["#",r,g,b].join("")},toHex:function(color){if(Ext.isArray(color)){color=color[0]}if(!Ext.isString(color)){return""}if(color.substr(0,1)==="#"){return color}var digits=this.colorToHexRe.exec(color);if(Ext.isArray(digits)){var red=parseInt(digits[2],10),green=parseInt(digits[3],10),blue=parseInt(digits[4],10),rgb=blue|(green<<8)|(red<<16);return digits[1]+"#"+("000000"+rgb.toString(16)).slice(-6)}else{return""}},fromString:function(str){var values,r,g,b,parse=parseInt;if((str.length==4||str.length==7)&&str.substr(0,1)==="#"){values=str.match(this.hexRe);if(values){r=parse(values[1],16)>>0;g=parse(values[2],16)>>0;b=parse(values[3],16)>>0;if(str.length==4){r+=(r*16);g+=(g*16);b+=(b*16)}}}else{values=str.match(this.rgbRe);if(values){r=values[1];g=values[2];b=values[3]}}return(typeof r=="undefined")?undefined:Ext.create("Ext.draw.Color",r,g,b)},getGrayscale:function(){return this.r*0.3+this.g*0.59+this.b*0.11},fromHSL:function(h,s,l){var C,X,m,i,rgb=[],abs=Math.abs,floor=Math.floor;if(s==0||h==null){rgb=[l,l,l]}else{h/=60;C=s*(1-abs(2*l-1));X=C*(1-abs(h-2*floor(h/2)-1));m=l-C/2;switch(floor(h)){case 0:rgb=[C,X,0];break;case 1:rgb=[X,C,0];break;case 2:rgb=[0,C,X];break;case 3:rgb=[0,X,C];break;case 4:rgb=[X,0,C];break;case 5:rgb=[C,0,X];break}rgb=[rgb[0]+m,rgb[1]+m,rgb[2]+m]}return Ext.create("Ext.draw.Color",rgb[0]*255,rgb[1]*255,rgb[2]*255)}},function(){var prototype=this.prototype;this.addStatics({fromHSL:function(){return prototype.fromHSL.apply(prototype,arguments)},fromString:function(){return prototype.fromString.apply(prototype,arguments)},toHex:function(){return prototype.toHex.apply(prototype,arguments)}})});Ext.define("Ext.dd.StatusProxy",{animRepair:false,constructor:function(config){Ext.apply(this,config);this.id=this.id||Ext.id();this.proxy=Ext.createWidget("component",{floating:true,stateful:false,id:this.id,html:'<div class="'+Ext.baseCSSPrefix+'dd-drop-icon"></div><div class="'+Ext.baseCSSPrefix+'dd-drag-ghost"></div>',cls:Ext.baseCSSPrefix+"dd-drag-proxy "+this.dropNotAllowed,shadow:!config||config.shadow!==false,renderTo:document.body});this.el=this.proxy.el;this.el.show();this.el.setVisibilityMode(Ext.Element.VISIBILITY);this.el.hide();this.ghost=Ext.get(this.el.dom.childNodes[1]);this.dropStatus=this.dropNotAllowed},dropAllowed:Ext.baseCSSPrefix+"dd-drop-ok",dropNotAllowed:Ext.baseCSSPrefix+"dd-drop-nodrop",setStatus:function(cssClass){cssClass=cssClass||this.dropNotAllowed;if(this.dropStatus!=cssClass){this.el.replaceCls(this.dropStatus,cssClass);this.dropStatus=cssClass}},reset:function(clearGhost){this.el.dom.className=Ext.baseCSSPrefix+"dd-drag-proxy "+this.dropNotAllowed;this.dropStatus=this.dropNotAllowed;if(clearGhost){this.ghost.update("")}},update:function(html){if(typeof html=="string"){this.ghost.update(html)}else{this.ghost.update("");html.style.margin="0";this.ghost.dom.appendChild(html)}var el=this.ghost.dom.firstChild;if(el){Ext.fly(el).setStyle("float","none")}},getEl:function(){return this.el},getGhost:function(){return this.ghost},hide:function(clear){this.proxy.hide();if(clear){this.reset(true)}},stop:function(){if(this.anim&&this.anim.isAnimated&&this.anim.isAnimated()){this.anim.stop()}},show:function(){this.proxy.show();this.proxy.toFront()},sync:function(){this.proxy.el.sync()},repair:function(xy,callback,scope){this.callback=callback;this.scope=scope;if(xy&&this.animRepair!==false){this.el.addCls(Ext.baseCSSPrefix+"dd-drag-repair");this.el.hideUnders(true);this.anim=this.el.animate({duration:this.repairDuration||500,easing:"ease-out",to:{x:xy[0],y:xy[1]},stopAnimation:true,callback:this.afterRepair,scope:this})}else{this.afterRepair()}},afterRepair:function(){this.hide(true);if(typeof this.callback=="function"){this.callback.call(this.scope||this)}this.callback=null;this.scope=null},destroy:function(){Ext.destroy(this.ghost,this.proxy,this.el)}});Ext.define("Ext.panel.Proxy",{alternateClassName:"Ext.dd.PanelProxy",constructor:function(panel,config){this.panel=panel;this.id=this.panel.id+"-ddproxy";Ext.apply(this,config)},insertProxy:true,setStatus:Ext.emptyFn,reset:Ext.emptyFn,update:Ext.emptyFn,stop:Ext.emptyFn,sync:Ext.emptyFn,getEl:function(){return this.ghost.el},getGhost:function(){return this.ghost},getProxy:function(){return this.proxy},hide:function(){if(this.ghost){if(this.proxy){this.proxy.remove();delete this.proxy}this.panel.unghost(null,false);delete this.ghost}},show:function(){if(!this.ghost){var panelSize=this.panel.getSize();this.panel.el.setVisibilityMode(Ext.Element.DISPLAY);this.ghost=this.panel.ghost();if(this.insertProxy){this.proxy=this.panel.el.insertSibling({cls:Ext.baseCSSPrefix+"panel-dd-spacer"});this.proxy.setSize(panelSize)}}},repair:function(xy,callback,scope){this.hide();if(typeof callback=="function"){callback.call(scope||this)}},moveProxy:function(parentNode,before){if(this.proxy){parentNode.insertBefore(this.proxy.dom,before)}}});Ext.define("Ext.layout.component.AbstractDock",{extend:"Ext.layout.component.Component",type:"dock",autoSizing:true,beforeLayout:function(){var returnValue=this.callParent(arguments);if(returnValue!==false&&(!this.initializedBorders||this.childrenChanged)&&(!this.owner.border||this.owner.manageBodyBorders)){this.handleItemBorders();this.initializedBorders=true}return returnValue},handleItemBorders:function(){var owner=this.owner,body=owner.body,docked=this.getLayoutItems(),borders={top:[],right:[],bottom:[],left:[]},oldBorders=this.borders,opposites={top:"bottom",right:"left",bottom:"top",left:"right"},i,ln,item,dock,side;for(i=0,ln=docked.length;i<ln;i++){item=docked[i];dock=item.dock;if(item.ignoreBorderManagement){continue}if(!borders[dock].satisfied){borders[dock].push(item);borders[dock].satisfied=true}if(!borders.top.satisfied&&opposites[dock]!=="top"){borders.top.push(item)}if(!borders.right.satisfied&&opposites[dock]!=="right"){borders.right.push(item)}if(!borders.bottom.satisfied&&opposites[dock]!=="bottom"){borders.bottom.push(item)}if(!borders.left.satisfied&&opposites[dock]!=="left"){borders.left.push(item)}}if(oldBorders){for(side in oldBorders){if(oldBorders.hasOwnProperty(side)){ln=oldBorders[side].length;if(!owner.manageBodyBorders){for(i=0;i<ln;i++){oldBorders[side][i].removeCls(Ext.baseCSSPrefix+"docked-noborder-"+side)}if(!oldBorders[side].satisfied&&!owner.bodyBorder){body.removeCls(Ext.baseCSSPrefix+"docked-noborder-"+side)}}else{if(oldBorders[side].satisfied){body.setStyle("border-"+side+"-width","")}}}}}for(side in borders){if(borders.hasOwnProperty(side)){ln=borders[side].length;if(!owner.manageBodyBorders){for(i=0;i<ln;i++){borders[side][i].addCls(Ext.baseCSSPrefix+"docked-noborder-"+side)}if((!borders[side].satisfied&&!owner.bodyBorder)||owner.bodyBorder===false){body.addCls(Ext.baseCSSPrefix+"docked-noborder-"+side)}}else{if(borders[side].satisfied){body.setStyle("border-"+side+"-width","1px")}}}}this.borders=borders},onLayout:function(width,height){if(this.onLayout_running){return}this.onLayout_running=true;var me=this,owner=me.owner,body=owner.body,layout=owner.layout,target=me.getTarget(),autoWidth=false,autoHeight=false,padding,border,frameSize;var info=me.info={boxes:[],size:{width:width,height:height},bodyBox:{}};delete layout.isAutoDock;Ext.applyIf(info,me.getTargetInfo());if(owner&&owner.ownerCt&&owner.ownerCt.layout&&owner.ownerCt.layout.isLayout){if(!Ext.isNumber(owner.height)||!Ext.isNumber(owner.width)){owner.ownerCt.layout.bindToOwnerCtComponent=true}else{owner.ownerCt.layout.bindToOwnerCtComponent=false}}if(height==null||width==null){padding=info.padding;border=info.border;frameSize=me.frameSize;if((height==null)&&(width==null)){autoHeight=true;autoWidth=true;me.setTargetSize(null);me.setBodyBox({width:null,height:null})}else{if(height==null){autoHeight=true;me.setTargetSize(width);me.setBodyBox({width:width-padding.left-border.left-padding.right-border.right-frameSize.left-frameSize.right,height:null})}else{autoWidth=true;me.setTargetSize(null,height);me.setBodyBox({width:null,height:height-padding.top-padding.bottom-border.top-border.bottom-frameSize.top-frameSize.bottom})}}if(layout&&layout.isLayout){layout.bindToOwnerCtComponent=true;layout.isAutoDock=layout.autoSize!==true;layout.layout();info.autoSizedCtLayout=layout.autoSize===true;info.autoHeight=autoHeight;info.autoWidth=autoWidth}me.dockItems();me.setTargetSize(info.size.width,info.size.height)}else{me.setTargetSize(width,height);me.dockItems()}me.callParent(arguments);this.onLayout_running=false},dockItems:function(){this.calculateDockBoxes();var info=this.info,autoWidth=info.autoWidth,autoHeight=info.autoHeight,boxes=info.boxes,ln=boxes.length,dock,i,item;for(i=0;i<ln;i++){dock=boxes[i];item=dock.item;item.setPosition(dock.x,dock.y);if((autoWidth||autoHeight)&&item.layout&&item.layout.isLayout){item.layout.bindToOwnerCtComponent=true}}if(!info.autoSizedCtLayout){if(autoWidth){info.bodyBox.width=null}if(autoHeight){info.bodyBox.height=null}}this.setBodyBox(info.bodyBox)},calculateDockBoxes:function(){if(this.calculateDockBoxes_running){return}this.calculateDockBoxes_running=true;var me=this,target=me.getTarget(),items=me.getLayoutItems(),owner=me.owner,bodyEl=owner.body,info=me.info,autoWidth=info.autoWidth,autoHeight=info.autoHeight,size=info.size,ln=items.length,padding=info.padding,border=info.border,frameSize=me.frameSize,item,i,box,rect;if(autoHeight){size.height=bodyEl.getHeight()+padding.top+border.top+padding.bottom+border.bottom+frameSize.top+frameSize.bottom}else{size.height=target.getHeight()}if(autoWidth){size.width=bodyEl.getWidth()+padding.left+border.left+padding.right+border.right+frameSize.left+frameSize.right}else{size.width=target.getWidth()}info.bodyBox={x:padding.left+frameSize.left,y:padding.top+frameSize.top,width:size.width-padding.left-border.left-padding.right-border.right-frameSize.left-frameSize.right,height:size.height-border.top-padding.top-border.bottom-padding.bottom-frameSize.top-frameSize.bottom};for(i=0;i<ln;i++){item=items[i];box=me.initBox(item);if(autoHeight===true){box=me.adjustAutoBox(box,i)}else{box=me.adjustSizedBox(box,i)}info.boxes.push(box)}this.calculateDockBoxes_running=false},adjustSizedBox:function(box,index){var bodyBox=this.info.bodyBox,frameSize=this.frameSize,info=this.info,padding=info.padding,pos=box.type,border=info.border;switch(pos){case"top":box.y=bodyBox.y;break;case"left":box.x=bodyBox.x;break;case"bottom":box.y=(bodyBox.y+bodyBox.height)-box.height;break;case"right":box.x=(bodyBox.x+bodyBox.width)-box.width;break}if(box.ignoreFrame){if(pos=="bottom"){box.y+=(frameSize.bottom+padding.bottom+border.bottom)}else{box.y-=(frameSize.top+padding.top+border.top)}if(pos=="right"){box.x+=(frameSize.right+padding.right+border.right)}else{box.x-=(frameSize.left+padding.left+border.left)}}if(!box.overlay){switch(pos){case"top":bodyBox.y+=box.height;bodyBox.height-=box.height;break;case"left":bodyBox.x+=box.width;bodyBox.width-=box.width;break;case"bottom":bodyBox.height-=box.height;break;case"right":bodyBox.width-=box.width;break}}return box},adjustAutoBox:function(box,index){var info=this.info,owner=this.owner,bodyBox=info.bodyBox,size=info.size,boxes=info.boxes,boxesLn=boxes.length,pos=box.type,frameSize=this.frameSize,padding=info.padding,border=info.border,autoSizedCtLayout=info.autoSizedCtLayout,ln=(boxesLn<index)?boxesLn:index,i,adjustBox;if(pos=="top"||pos=="bottom"){for(i=0;i<ln;i++){adjustBox=boxes[i];if(adjustBox.stretched&&adjustBox.type=="left"||adjustBox.type=="right"){adjustBox.height+=box.height}else{if(adjustBox.type=="bottom"){adjustBox.y+=box.height}}}}switch(pos){case"top":box.y=bodyBox.y;if(!box.overlay){bodyBox.y+=box.height;if(info.autoHeight){size.height+=box.height}else{bodyBox.height-=box.height}}break;case"bottom":if(!box.overlay){if(info.autoHeight){size.height+=box.height}else{bodyBox.height-=box.height}}box.y=(bodyBox.y+bodyBox.height);break;case"left":box.x=bodyBox.x;if(!box.overlay){bodyBox.x+=box.width;if(info.autoWidth){size.width+=box.width}else{bodyBox.width-=box.width}}break;case"right":if(!box.overlay){if(info.autoWidth){size.width+=box.width}else{bodyBox.width-=box.width}}box.x=(bodyBox.x+bodyBox.width);break}if(box.ignoreFrame){if(pos=="bottom"){box.y+=(frameSize.bottom+padding.bottom+border.bottom)}else{box.y-=(frameSize.top+padding.top+border.top)}if(pos=="right"){box.x+=(frameSize.right+padding.right+border.right)}else{box.x-=(frameSize.left+padding.left+border.left)}}return box},initBox:function(item){var me=this,bodyBox=me.info.bodyBox,horizontal=(item.dock=="top"||item.dock=="bottom"),owner=me.owner,frameSize=me.frameSize,info=me.info,padding=info.padding,border=info.border,box={item:item,overlay:item.overlay,type:item.dock,offsets:Ext.Element.parseBox(item.offsets||{}),ignoreFrame:item.ignoreParentFrame};if(item.stretch!==false){box.stretched=true;if(horizontal){box.x=bodyBox.x+box.offsets.left;box.width=bodyBox.width-(box.offsets.left+box.offsets.right);if(box.ignoreFrame){box.width+=(frameSize.left+frameSize.right+border.left+border.right+padding.left+padding.right)}item.setCalculatedSize(box.width-item.el.getMargin("lr"),undefined,owner)}else{box.y=bodyBox.y+box.offsets.top;box.height=bodyBox.height-(box.offsets.bottom+box.offsets.top);if(box.ignoreFrame){box.height+=(frameSize.top+frameSize.bottom+border.top+border.bottom+padding.top+padding.bottom)}item.setCalculatedSize(undefined,box.height-item.el.getMargin("tb"),owner);if(!Ext.supports.ComputedStyle){item.el.repaint()}}}else{item.doComponentLayout();box.width=item.getWidth()-(box.offsets.left+box.offsets.right);box.height=item.getHeight()-(box.offsets.bottom+box.offsets.top);box.y+=box.offsets.top;if(horizontal){box.x=(item.align=="right")?bodyBox.width-box.width:bodyBox.x;box.x+=box.offsets.left}}if(box.width===undefined){box.width=item.getWidth()+item.el.getMargin("lr")}if(box.height===undefined){box.height=item.getHeight()+item.el.getMargin("tb")}return box},getLayoutItems:function(){var it=this.owner.getDockedItems(),ln=it.length,i=0,result=[];for(;i<ln;i++){if(it[i].isVisible(true)){result.push(it[i])}}return result},renderItems:function(items,target){var cns=target.dom.childNodes,cnsLn=cns.length,ln=items.length,domLn=0,i,j,cn,item;for(i=0;i<cnsLn;i++){cn=Ext.get(cns[i]);for(j=0;j<ln;j++){item=items[j];if(item.rendered&&(cn.id==item.el.id||cn.contains(item.el.id))){break}}if(j===ln){domLn++}}for(i=0,j=0;i<ln;i++,j++){item=items[i];if(i===j&&(item.dock==="right"||item.dock==="bottom")){j+=domLn}if(item&&!item.rendered){this.renderItem(item,target,j)}else{if(!this.isValidParent(item,target,j)){this.moveItem(item,target,j)}}}},setBodyBox:function(box){var me=this,owner=me.owner,body=owner.body,info=me.info,bodyMargin=info.bodyMargin,padding=info.padding,border=info.border,frameSize=me.frameSize;if(owner.collapsed){return}if(Ext.isNumber(box.width)){box.width-=bodyMargin.left+bodyMargin.right}if(Ext.isNumber(box.height)){box.height-=bodyMargin.top+bodyMargin.bottom}me.setElementSize(body,box.width,box.height);if(Ext.isNumber(box.x)){body.setLeft(box.x-padding.left-frameSize.left)}if(Ext.isNumber(box.y)){body.setTop(box.y-padding.top-frameSize.top)}},configureItem:function(item,pos){this.callParent(arguments);if(item.dock=="top"||item.dock=="bottom"){item.layoutManagedWidth=1;item.layoutManagedHeight=2}else{item.layoutManagedWidth=2;item.layoutManagedHeight=1}item.addCls(Ext.baseCSSPrefix+"docked");item.addClsWithUI("docked-"+item.dock)},afterRemove:function(item){this.callParent(arguments);if(this.itemCls){item.el.removeCls(this.itemCls+"-"+item.dock)}var dom=item.el.dom;if(!item.destroying&&dom){dom.parentNode.removeChild(dom)}this.childrenChanged=true}});Ext.define("Ext.util.Memento",function(){function captureOne(src,target,prop){src[prop]=target[prop]}function removeOne(src,target,prop){delete src[prop]}function restoreOne(src,target,prop){var value=src[prop];if(value||src.hasOwnProperty(prop)){restoreValue(target,prop,value)}}function restoreValue(target,prop,value){if(Ext.isDefined(value)){target[prop]=value}else{delete target[prop]}}function doMany(doOne,src,target,props){if(src){if(Ext.isArray(props)){Ext.each(props,function(prop){doOne(src,target,prop)})}else{doOne(src,target,props)}}}return{data:null,target:null,constructor:function(target,props){if(target){this.target=target;if(props){this.capture(props)}}},capture:function(props,target){doMany(captureOne,this.data||(this.data={}),target||this.target,props)},remove:function(props){doMany(removeOne,this.data,null,props)},restore:function(props,clear,target){doMany(restoreOne,this.data,target||this.target,props);if(clear!==false){this.remove(props)}},restoreAll:function(clear,target){var me=this,t=target||this.target;Ext.Object.each(me.data,function(prop,value){restoreValue(t,prop,value)});if(clear!==false){delete me.data}}}}());Ext.define("Ext.app.EventBus",{requires:["Ext.util.Event"],mixins:{observable:"Ext.util.Observable"},constructor:function(){this.mixins.observable.constructor.call(this);this.bus={};var me=this;Ext.override(Ext.Component,{fireEvent:function(ev){if(Ext.util.Observable.prototype.fireEvent.apply(this,arguments)!==false){return me.dispatch.call(me,ev,this,arguments)}return false}})},dispatch:function(ev,target,args){var bus=this.bus,selectors=bus[ev],selector,controllers,id,events,event,i,ln;if(selectors){for(selector in selectors){if(target.is(selector)){controllers=selectors[selector];for(id in controllers){events=controllers[id];for(i=0,ln=events.length;i<ln;i++){event=events[i];if(event.fire.apply(event,Array.prototype.slice.call(args,1))===false){return false}}}}}}},control:function(selectors,listeners,controller){var bus=this.bus,selector,fn;if(Ext.isString(selectors)){selector=selectors;selectors={};selectors[selector]=listeners;this.control(selectors,null,controller);return}Ext.Object.each(selectors,function(selector,listeners){Ext.Object.each(listeners,function(ev,listener){var options={},scope=controller,event=Ext.create("Ext.util.Event",controller,ev);if(Ext.isObject(listener)){options=listener;listener=options.fn;scope=options.scope||controller;delete options.fn;delete options.scope}event.addListener(listener,scope,options);bus[ev]=bus[ev]||{};bus[ev][selector]=bus[ev][selector]||{};bus[ev][selector][controller.id]=bus[ev][selector][controller.id]||[];bus[ev][selector][controller.id].push(event)})})}});Ext.define("Ext.data.Types",{singleton:true,requires:["Ext.data.SortTypes"]},function(){var st=Ext.data.SortTypes;Ext.apply(Ext.data.Types,{stripRe:/[\$,%]/g,AUTO:{convert:function(v){return v},sortType:st.none,type:"auto"},STRING:{convert:function(v){var defaultValue=this.useNull?null:"";return(v===undefined||v===null)?defaultValue:String(v)},sortType:st.asUCString,type:"string"},INT:{convert:function(v){return v!==undefined&&v!==null&&v!==""?parseInt(String(v).replace(Ext.data.Types.stripRe,""),10):(this.useNull?null:0)},sortType:st.none,type:"int"},FLOAT:{convert:function(v){return v!==undefined&&v!==null&&v!==""?parseFloat(String(v).replace(Ext.data.Types.stripRe,""),10):(this.useNull?null:0)},sortType:st.none,type:"float"},BOOL:{convert:function(v){if(this.useNull&&(v===undefined||v===null||v==="")){return null}return v===true||v==="true"||v==1},sortType:st.none,type:"bool"},DATE:{convert:function(v){var df=this.dateFormat,parsed;if(!v){return null}if(Ext.isDate(v)){return v}if(df){if(df=="timestamp"){return new Date(v*1000)}if(df=="time"){return new Date(parseInt(v,10))}return Ext.Date.parse(v,df)}parsed=Date.parse(v);return parsed?new Date(parsed):null},sortType:st.asDate,type:"date"}});Ext.apply(Ext.data.Types,{BOOLEAN:this.BOOL,INTEGER:this.INT,NUMBER:this.FLOAT})});Ext.define("Ext.data.Field",{requires:["Ext.data.Types","Ext.data.SortTypes"],alias:"data.field",constructor:function(config){if(Ext.isString(config)){config={name:config}}Ext.apply(this,config);var types=Ext.data.Types,st=this.sortType,t;if(this.type){if(Ext.isString(this.type)){this.type=types[this.type.toUpperCase()]||types.AUTO}}else{this.type=types.AUTO}if(Ext.isString(st)){this.sortType=Ext.data.SortTypes[st]}else{if(Ext.isEmpty(st)){this.sortType=this.type.sortType}}if(!this.convert){this.convert=this.type.convert}},dateFormat:null,useNull:false,defaultValue:"",mapping:null,sortType:null,sortDir:"ASC",allowBlank:true,persist:true});Ext.define("Ext.util.AbstractMixedCollection",{requires:["Ext.util.Filter"],mixins:{observable:"Ext.util.Observable"},constructor:function(allowFunctions,keyFn){var me=this;me.items=[];me.map={};me.keys=[];me.length=0;me.addEvents("clear","add","replace","remove");me.allowFunctions=allowFunctions===true;if(keyFn){me.getKey=keyFn}me.mixins.observable.constructor.call(me)},allowFunctions:false,add:function(key,obj){var me=this,myObj=obj,myKey=key,old;if(arguments.length==1){myObj=myKey;myKey=me.getKey(myObj)}if(typeof myKey!="undefined"&&myKey!==null){old=me.map[myKey];if(typeof old!="undefined"){return me.replace(myKey,myObj)}me.map[myKey]=myObj}me.length++;me.items.push(myObj);me.keys.push(myKey);me.fireEvent("add",me.length-1,myObj,myKey);return myObj},getKey:function(o){return o.id},replace:function(key,o){var me=this,old,index;if(arguments.length==1){o=arguments[0];key=me.getKey(o)}old=me.map[key];if(typeof key=="undefined"||key===null||typeof old=="undefined"){return me.add(key,o)}index=me.indexOfKey(key);me.items[index]=o;me.map[key]=o;me.fireEvent("replace",key,old,o);return o},addAll:function(objs){var me=this,i=0,args,len,key;if(arguments.length>1||Ext.isArray(objs)){args=arguments.length>1?arguments:objs;for(len=args.length;i<len;i++){me.add(args[i])}}else{for(key in objs){if(objs.hasOwnProperty(key)){if(me.allowFunctions||typeof objs[key]!="function"){me.add(key,objs[key])}}}}},each:function(fn,scope){var items=[].concat(this.items),i=0,len=items.length,item;for(;i<len;i++){item=items[i];if(fn.call(scope||item,item,i,len)===false){break}}},eachKey:function(fn,scope){var keys=this.keys,items=this.items,i=0,len=keys.length;for(;i<len;i++){fn.call(scope||window,keys[i],items[i],i,len)}},findBy:function(fn,scope){var keys=this.keys,items=this.items,i=0,len=items.length;for(;i<len;i++){if(fn.call(scope||window,items[i],keys[i])){return items[i]}}return null},find:function(){if(Ext.isDefined(Ext.global.console)){Ext.global.console.warn("Ext.util.MixedCollection: find has been deprecated. Use findBy instead.")}return this.findBy.apply(this,arguments)},insert:function(index,key,obj){var me=this,myKey=key,myObj=obj;if(arguments.length==2){myObj=myKey;myKey=me.getKey(myObj)}if(me.containsKey(myKey)){me.suspendEvents();me.removeAtKey(myKey);me.resumeEvents()}if(index>=me.length){return me.add(myKey,myObj)}me.length++;Ext.Array.splice(me.items,index,0,myObj);if(typeof myKey!="undefined"&&myKey!==null){me.map[myKey]=myObj}Ext.Array.splice(me.keys,index,0,myKey);me.fireEvent("add",index,myObj,myKey);return myObj},remove:function(o){return this.removeAt(this.indexOf(o))},removeAll:function(items){Ext.each(items||[],function(item){this.remove(item)},this);return this},removeAt:function(index){var me=this,o,key;if(index<me.length&&index>=0){me.length--;o=me.items[index];Ext.Array.erase(me.items,index,1);key=me.keys[index];if(typeof key!="undefined"){delete me.map[key]}Ext.Array.erase(me.keys,index,1);me.fireEvent("remove",o,key);return o}return false},removeAtKey:function(key){return this.removeAt(this.indexOfKey(key))},getCount:function(){return this.length},indexOf:function(o){return Ext.Array.indexOf(this.items,o)},indexOfKey:function(key){return Ext.Array.indexOf(this.keys,key)},get:function(key){var me=this,mk=me.map[key],item=mk!==undefined?mk:(typeof key=="number")?me.items[key]:undefined;return typeof item!="function"||me.allowFunctions?item:null},getAt:function(index){return this.items[index]},getByKey:function(key){return this.map[key]},contains:function(o){return Ext.Array.contains(this.items,o)},containsKey:function(key){return typeof this.map[key]!="undefined"},clear:function(){var me=this;me.length=0;me.items=[];me.keys=[];me.map={};me.fireEvent("clear")},first:function(){return this.items[0]},last:function(){return this.items[this.length-1]},sum:function(property,root,start,end){var values=this.extractValues(property,root),length=values.length,sum=0,i;start=start||0;end=(end||end===0)?end:length-1;for(i=start;i<=end;i++){sum+=values[i]}return sum},collect:function(property,root,allowNull){var values=this.extractValues(property,root),length=values.length,hits={},unique=[],value,strValue,i;for(i=0;i<length;i++){value=values[i];strValue=String(value);if((allowNull||!Ext.isEmpty(value))&&!hits[strValue]){hits[strValue]=true;unique.push(value)}}return unique},extractValues:function(property,root){var values=this.items;if(root){values=Ext.Array.pluck(values,root)}return Ext.Array.pluck(values,property)},getRange:function(start,end){var me=this,items=me.items,range=[],i;if(items.length<1){return range}start=start||0;end=Math.min(typeof end=="undefined"?me.length-1:end,me.length-1);if(start<=end){for(i=start;i<=end;i++){range[range.length]=items[i]}}else{for(i=start;i>=end;i--){range[range.length]=items[i]}}return range},filter:function(property,value,anyMatch,caseSensitive){var filters=[],filterFn;if(Ext.isString(property)){filters.push(Ext.create("Ext.util.Filter",{property:property,value:value,anyMatch:anyMatch,caseSensitive:caseSensitive}))}else{if(Ext.isArray(property)||property instanceof Ext.util.Filter){filters=filters.concat(property)}}filterFn=function(record){var isMatch=true,length=filters.length,i;for(i=0;i<length;i++){var filter=filters[i],fn=filter.filterFn,scope=filter.scope;isMatch=isMatch&&fn.call(scope,record)}return isMatch};return this.filterBy(filterFn)},filterBy:function(fn,scope){var me=this,newMC=new this.self(),keys=me.keys,items=me.items,length=items.length,i;newMC.getKey=me.getKey;for(i=0;i<length;i++){if(fn.call(scope||me,items[i],keys[i])){newMC.add(keys[i],items[i])}}return newMC},findIndex:function(property,value,start,anyMatch,caseSensitive){if(Ext.isEmpty(value,false)){return -1}value=this.createValueMatcher(value,anyMatch,caseSensitive);return this.findIndexBy(function(o){return o&&value.test(o[property])},null,start)},findIndexBy:function(fn,scope,start){var me=this,keys=me.keys,items=me.items,i=start||0,len=items.length;for(;i<len;i++){if(fn.call(scope||me,items[i],keys[i])){return i}}return -1},createValueMatcher:function(value,anyMatch,caseSensitive,exactMatch){if(!value.exec){var er=Ext.String.escapeRegex;value=String(value);if(anyMatch===true){value=er(value)}else{value="^"+er(value);if(exactMatch===true){value+="$"}}value=new RegExp(value,caseSensitive?"":"i")}return value},clone:function(){var me=this,copy=new this.self(),keys=me.keys,items=me.items,i=0,len=items.length;for(;i<len;i++){copy.add(keys[i],items[i])}copy.getKey=me.getKey;return copy}});Ext.define("Ext.util.Sortable",{isSortable:true,defaultSortDirection:"ASC",requires:["Ext.util.Sorter"],initSortable:function(){var me=this,sorters=me.sorters;me.sorters=Ext.create("Ext.util.AbstractMixedCollection",false,function(item){return item.id||item.property});if(sorters){me.sorters.addAll(me.decodeSorters(sorters))}},sort:function(sorters,direction,where,doSort){var me=this,sorter,sorterFn,newSorters;if(Ext.isArray(sorters)){doSort=where;where=direction;newSorters=sorters}else{if(Ext.isObject(sorters)){doSort=where;where=direction;newSorters=[sorters]}else{if(Ext.isString(sorters)){sorter=me.sorters.get(sorters);if(!sorter){sorter={property:sorters,direction:direction};newSorters=[sorter]}else{if(direction===undefined){sorter.toggle()}else{sorter.setDirection(direction)}}}}}if(newSorters&&newSorters.length){newSorters=me.decodeSorters(newSorters);if(Ext.isString(where)){if(where==="prepend"){sorters=me.sorters.clone().items;me.sorters.clear();me.sorters.addAll(newSorters);me.sorters.addAll(sorters)}else{me.sorters.addAll(newSorters)}}else{me.sorters.clear();me.sorters.addAll(newSorters)}}if(doSort!==false){me.onBeforeSort(newSorters);sorters=me.sorters.items;if(sorters.length){sorterFn=function(r1,r2){var result=sorters[0].sort(r1,r2),length=sorters.length,i;for(i=1;i<length;i++){result=result||sorters[i].sort.call(this,r1,r2)}return result};me.doSort(sorterFn)}}return sorters},onBeforeSort:Ext.emptyFn,decodeSorters:function(sorters){if(!Ext.isArray(sorters)){if(sorters===undefined){sorters=[]}else{sorters=[sorters]}}var length=sorters.length,Sorter=Ext.util.Sorter,fields=this.model?this.model.prototype.fields:null,field,config,i;for(i=0;i<length;i++){config=sorters[i];if(!(config instanceof Sorter)){if(Ext.isString(config)){config={property:config}}Ext.applyIf(config,{root:this.sortRoot,direction:"ASC"});if(config.fn){config.sorterFn=config.fn}if(typeof config=="function"){config={sorterFn:config}}if(fields&&!config.transform){field=fields.get(config.property);config.transform=field?field.sortType:undefined}sorters[i]=Ext.create("Ext.util.Sorter",config)}}return sorters},getSorters:function(){return this.sorters.items}});Ext.define("Ext.util.MixedCollection",{extend:"Ext.util.AbstractMixedCollection",mixins:{sortable:"Ext.util.Sortable"},constructor:function(){var me=this;me.callParent(arguments);me.addEvents("sort");me.mixins.sortable.initSortable.call(me)},doSort:function(sorterFn){this.sortBy(sorterFn)},_sort:function(property,dir,fn){var me=this,i,len,dsc=String(dir).toUpperCase()=="DESC"?-1:1,c=[],keys=me.keys,items=me.items;fn=fn||function(a,b){return a-b};for(i=0,len=items.length;i<len;i++){c[c.length]={key:keys[i],value:items[i],index:i}}Ext.Array.sort(c,function(a,b){var v=fn(a[property],b[property])*dsc;if(v===0){v=(a.index<b.index?-1:1)}return v});for(i=0,len=c.length;i<len;i++){items[i]=c[i].value;keys[i]=c[i].key}me.fireEvent("sort",me)},sortBy:function(sorterFn){var me=this,items=me.items,keys=me.keys,length=items.length,temp=[],i;for(i=0;i<length;i++){temp[i]={key:keys[i],value:items[i],index:i}}Ext.Array.sort(temp,function(a,b){var v=sorterFn(a.value,b.value);if(v===0){v=(a.index<b.index?-1:1)}return v});for(i=0;i<length;i++){items[i]=temp[i].value;keys[i]=temp[i].key}me.fireEvent("sort",me,items,keys)},reorder:function(mapping){var me=this,items=me.items,index=0,length=items.length,order=[],remaining=[],oldIndex;me.suspendEvents();for(oldIndex in mapping){order[mapping[oldIndex]]=items[oldIndex]}for(index=0;index<length;index++){if(mapping[index]==undefined){remaining.push(items[index])}}for(index=0;index<length;index++){if(order[index]==undefined){order[index]=remaining.shift()}}me.clear();me.addAll(order);me.resumeEvents();me.fireEvent("sort",me)},sortByKey:function(dir,fn){this._sort("key",dir,fn||function(a,b){var v1=String(a).toUpperCase(),v2=String(b).toUpperCase();return v1>v2?1:(v1<v2?-1:0)})}});Ext.define("Ext.data.Errors",{extend:"Ext.util.MixedCollection",isValid:function(){return this.length===0},getByField:function(fieldName){var errors=[],error,field,i;for(i=0;i<this.length;i++){error=this.items[i];if(error.field==fieldName){errors.push(error)}}return errors}});Ext.define("Ext.data.reader.Reader",{requires:["Ext.data.ResultSet"],alternateClassName:["Ext.data.Reader","Ext.data.DataReader"],totalProperty:"total",successProperty:"success",root:"",implicitIncludes:true,isReader:true,constructor:function(config){var me=this;Ext.apply(me,config||{});me.fieldCount=0;me.model=Ext.ModelManager.getModel(config.model);if(me.model){me.buildExtractors()}},setModel:function(model,setOnProxy){var me=this;me.model=Ext.ModelManager.getModel(model);me.buildExtractors(true);if(setOnProxy&&me.proxy){me.proxy.setModel(me.model,true)}},read:function(response){var data=response;if(response&&response.responseText){data=this.getResponseData(response)}if(data){return this.readRecords(data)}else{return this.nullResultSet}},readRecords:function(data){var me=this;if(me.fieldCount!==me.getFields().length){me.buildExtractors(true)}me.rawData=data;data=me.getData(data);var root=Ext.isArray(data)?data:me.getRoot(data),success=true,recordCount=0,total,value,records,message;if(root){total=root.length}if(me.totalProperty){value=parseInt(me.getTotal(data),10);if(!isNaN(value)){total=value}}if(me.successProperty){value=me.getSuccess(data);if(value===false||value==="false"){success=false}}if(me.messageProperty){message=me.getMessage(data)}if(root){records=me.extractData(root);recordCount=records.length}else{recordCount=0;records=[]}return Ext.create("Ext.data.ResultSet",{total:total||recordCount,count:recordCount,records:records,success:success,message:message})},extractData:function(root){var me=this,values=[],records=[],Model=me.model,i=0,length=root.length,idProp=me.getIdProperty(),node,id,record;if(!root.length&&Ext.isObject(root)){root=[root];length=1}for(;i<length;i++){node=root[i];values=me.extractValues(node);id=me.getId(node);record=new Model(values,id,node);records.push(record);if(me.implicitIncludes){me.readAssociated(record,node)}}return records},readAssociated:function(record,data){var associations=record.associations.items,i=0,length=associations.length,association,associationData,proxy,reader;for(;i<length;i++){association=associations[i];associationData=this.getAssociatedDataRoot(data,association.associationKey||association.name);if(associationData){reader=association.getReader();if(!reader){proxy=association.associatedModel.proxy;if(proxy){reader=proxy.getReader()}else{reader=new this.constructor({model:association.associatedName})}}association.read(record,reader,associationData)}}},getAssociatedDataRoot:function(data,associationName){return data[associationName]},getFields:function(){return this.model.prototype.fields.items},extractValues:function(data){var fields=this.getFields(),i=0,length=fields.length,output={},field,value;for(;i<length;i++){field=fields[i];value=this.extractorFunctions[i](data);output[field.name]=value}return output},getData:function(data){return data},getRoot:function(data){return data},getResponseData:function(response){},onMetaChange:function(meta){var fields=meta.fields,newModel;Ext.apply(this,meta);if(fields){newModel=Ext.define("Ext.data.reader.Json-Model"+Ext.id(),{extend:"Ext.data.Model",fields:fields});this.setModel(newModel,true)}else{this.buildExtractors(true)}},getIdProperty:function(){var prop=this.idProperty;if(Ext.isEmpty(prop)){prop=this.model.prototype.idProperty}return prop},buildExtractors:function(force){var me=this,idProp=me.getIdProperty(),totalProp=me.totalProperty,successProp=me.successProperty,messageProp=me.messageProperty,accessor;if(force===true){delete me.extractorFunctions}if(me.extractorFunctions){return}if(totalProp){me.getTotal=me.createAccessor(totalProp)}if(successProp){me.getSuccess=me.createAccessor(successProp)}if(messageProp){me.getMessage=me.createAccessor(messageProp)}if(idProp){accessor=me.createAccessor(idProp);me.getId=function(record){var id=accessor.call(me,record);return(id===undefined||id==="")?null:id}}else{me.getId=function(){return null}}me.buildFieldExtractors()},buildFieldExtractors:function(){var me=this,fields=me.getFields(),ln=fields.length,i=0,extractorFunctions=[],field,map;for(;i<ln;i++){field=fields[i];map=(field.mapping!==undefined&&field.mapping!==null)?field.mapping:field.name;extractorFunctions.push(me.createAccessor(map))}me.fieldCount=ln;me.extractorFunctions=extractorFunctions}},function(){Ext.apply(this,{nullResultSet:Ext.create("Ext.data.ResultSet",{total:0,count:0,records:[],success:true})})});Ext.define("Ext.data.reader.Json",{extend:"Ext.data.reader.Reader",alternateClassName:"Ext.data.JsonReader",alias:"reader.json",root:"",useSimpleAccessors:false,readRecords:function(data){if(data.metaData){this.onMetaChange(data.metaData)}this.jsonData=data;return this.callParent([data])},getResponseData:function(response){var data;try{data=Ext.decode(response.responseText)}catch(ex){Ext.Error.raise({response:response,json:response.responseText,parseError:ex,msg:"Unable to parse the JSON returned by the server: "+ex.toString()})}return data},buildExtractors:function(){var me=this;me.callParent(arguments);if(me.root){me.getRoot=me.createAccessor(me.root)}else{me.getRoot=function(root){return root}}},extractData:function(root){var recordName=this.record,data=[],length,i;if(recordName){length=root.length;if(!length&&Ext.isObject(root)){length=1;root=[root]}for(i=0;i<length;i++){data[i]=root[i][recordName]}}else{data=root}return this.callParent([data])},createAccessor:function(){var re=/[\[\.]/;return function(expr){if(Ext.isEmpty(expr)){return Ext.emptyFn}if(Ext.isFunction(expr)){return expr}if(this.useSimpleAccessors!==true){var i=String(expr).search(re);if(i>=0){return Ext.functionFactory("obj","return obj"+(i>0?".":"")+expr)}}return function(obj){return obj[expr]}}}()});Ext.define("Ext.data.writer.Json",{extend:"Ext.data.writer.Writer",alternateClassName:"Ext.data.JsonWriter",alias:"writer.json",root:undefined,encode:false,allowSingle:true,writeRecords:function(request,data){var root=this.root;if(this.allowSingle&&data.length==1){data=data[0]}if(this.encode){if(root){request.params[root]=Ext.encode(data)}else{}}else{request.jsonData=request.jsonData||{};if(root){request.jsonData[root]=data}else{request.jsonData=data}}return request}});Ext.define("Ext.data.proxy.Proxy",{alias:"proxy.proxy",alternateClassName:["Ext.data.DataProxy","Ext.data.Proxy"],requires:["Ext.data.reader.Json","Ext.data.writer.Json"],uses:["Ext.data.Batch","Ext.data.Operation","Ext.data.Model"],mixins:{observable:"Ext.util.Observable"},batchOrder:"create,update,destroy",batchActions:true,defaultReaderType:"json",defaultWriterType:"json",isProxy:true,constructor:function(config){config=config||{};if(config.model===undefined){delete config.model}this.mixins.observable.constructor.call(this,config);if(this.model!==undefined&&!(this.model instanceof Ext.data.Model)){this.setModel(this.model)}},setModel:function(model,setOnStore){this.model=Ext.ModelManager.getModel(model);var reader=this.reader,writer=this.writer;this.setReader(reader);this.setWriter(writer);if(setOnStore&&this.store){this.store.setModel(this.model)}},getModel:function(){return this.model},setReader:function(reader){var me=this;if(reader===undefined||typeof reader=="string"){reader={type:reader}}if(reader.isReader){reader.setModel(me.model)}else{Ext.applyIf(reader,{proxy:me,model:me.model,type:me.defaultReaderType});reader=Ext.createByAlias("reader."+reader.type,reader)}me.reader=reader;return me.reader},getReader:function(){return this.reader},setWriter:function(writer){if(writer===undefined||typeof writer=="string"){writer={type:writer}}if(!(writer instanceof Ext.data.writer.Writer)){Ext.applyIf(writer,{model:this.model,type:this.defaultWriterType});writer=Ext.createByAlias("writer."+writer.type,writer)}this.writer=writer;return this.writer},getWriter:function(){return this.writer},create:Ext.emptyFn,read:Ext.emptyFn,update:Ext.emptyFn,destroy:Ext.emptyFn,batch:function(operations,listeners){var me=this,batch=Ext.create("Ext.data.Batch",{proxy:me,listeners:listeners||{}}),useBatch=me.batchActions,records;Ext.each(me.batchOrder.split(","),function(action){records=operations[action];if(records){if(useBatch){batch.add(Ext.create("Ext.data.Operation",{action:action,records:records}))}else{Ext.each(records,function(record){batch.add(Ext.create("Ext.data.Operation",{action:action,records:[record]}))})}}},me);batch.start();return batch}},function(){Ext.data.DataProxy=this});Ext.define("Ext.data.proxy.Server",{extend:"Ext.data.proxy.Proxy",alias:"proxy.server",alternateClassName:"Ext.data.ServerProxy",uses:["Ext.data.Request"],pageParam:"page",startParam:"start",limitParam:"limit",groupParam:"group",sortParam:"sort",filterParam:"filter",directionParam:"dir",simpleSortMode:false,noCache:true,cacheString:"_dc",timeout:30000,constructor:function(config){var me=this;config=config||{};this.addEvents("exception");me.callParent([config]);me.extraParams=config.extraParams||{};me.api=config.api||{};me.nocache=me.noCache},create:function(){return this.doRequest.apply(this,arguments)},read:function(){return this.doRequest.apply(this,arguments)},update:function(){return this.doRequest.apply(this,arguments)},destroy:function(){return this.doRequest.apply(this,arguments)},buildRequest:function(operation){var params=Ext.applyIf(operation.params||{},this.extraParams||{}),request;params=Ext.applyIf(params,this.getParams(operation));if(operation.id&&!params.id){params.id=operation.id}request=Ext.create("Ext.data.Request",{params:params,action:operation.action,records:operation.records,operation:operation,url:operation.url});request.url=this.buildUrl(request);operation.request=request;return request},processResponse:function(success,operation,request,response,callback,scope){var me=this,reader,result;if(success===true){reader=me.getReader();result=reader.read(me.extractResponseData(response));if(result.success!==false){Ext.apply(operation,{response:response,resultSet:result});operation.commitRecords(result.records);operation.setCompleted();operation.setSuccessful()}else{operation.setException(result.message);me.fireEvent("exception",this,response,operation)}}else{me.setException(operation,response);me.fireEvent("exception",this,response,operation)}if(typeof callback=="function"){callback.call(scope||me,operation)}me.afterRequest(request,success)},setException:function(operation,response){operation.setException({status:response.status,statusText:response.statusText})},extractResponseData:function(response){return response},applyEncoding:function(value){return Ext.encode(value)},encodeSorters:function(sorters){var min=[],length=sorters.length,i=0;for(;i<length;i++){min[i]={property:sorters[i].property,direction:sorters[i].direction}}return this.applyEncoding(min)},encodeFilters:function(filters){var min=[],length=filters.length,i=0;for(;i<length;i++){min[i]={property:filters[i].property,value:filters[i].value}}return this.applyEncoding(min)},getParams:function(operation){var me=this,params={},isDef=Ext.isDefined,groupers=operation.groupers,sorters=operation.sorters,filters=operation.filters,page=operation.page,start=operation.start,limit=operation.limit,simpleSortMode=me.simpleSortMode,pageParam=me.pageParam,startParam=me.startParam,limitParam=me.limitParam,groupParam=me.groupParam,sortParam=me.sortParam,filterParam=me.filterParam,directionParam=me.directionParam;if(pageParam&&isDef(page)){params[pageParam]=page}if(startParam&&isDef(start)){params[startParam]=start}if(limitParam&&isDef(limit)){params[limitParam]=limit}if(groupParam&&groupers&&groupers.length>0){params[groupParam]=me.encodeSorters(groupers)}if(sortParam&&sorters&&sorters.length>0){if(simpleSortMode){params[sortParam]=sorters[0].property;params[directionParam]=sorters[0].direction}else{params[sortParam]=me.encodeSorters(sorters)}}if(filterParam&&filters&&filters.length>0){params[filterParam]=me.encodeFilters(filters)}return params},buildUrl:function(request){var me=this,url=me.getUrl(request);if(me.noCache){url=Ext.urlAppend(url,Ext.String.format("{0}={1}",me.cacheString,Ext.Date.now()))}return url},getUrl:function(request){return request.url||this.api[request.action]||this.url},doRequest:function(operation,callback,scope){},afterRequest:Ext.emptyFn,onDestroy:function(){Ext.destroy(this.reader,this.writer)}});Ext.define("Ext.data.proxy.Ajax",{requires:["Ext.util.MixedCollection","Ext.Ajax"],extend:"Ext.data.proxy.Server",alias:"proxy.ajax",alternateClassName:["Ext.data.HttpProxy","Ext.data.AjaxProxy"],actionMethods:{create:"POST",read:"GET",update:"POST",destroy:"POST"},doRequest:function(operation,callback,scope){var writer=this.getWriter(),request=this.buildRequest(operation,callback,scope);if(operation.allowWrite()){request=writer.write(request)}Ext.apply(request,{headers:this.headers,timeout:this.timeout,scope:this,callback:this.createRequestCallback(request,operation,callback,scope),method:this.getMethod(request),disableCaching:false});Ext.Ajax.request(request);return request},getMethod:function(request){return this.actionMethods[request.action]},createRequestCallback:function(request,operation,callback,scope){var me=this;return function(options,success,response){me.processResponse(success,operation,request,response,callback,scope)}}},function(){Ext.data.HttpProxy=this});Ext.define("Ext.data.Model",{alternateClassName:"Ext.data.Record",mixins:{observable:"Ext.util.Observable"},requires:["Ext.ModelManager","Ext.data.IdGenerator","Ext.data.Field","Ext.data.Errors","Ext.data.Operation","Ext.data.validations","Ext.data.proxy.Ajax","Ext.util.MixedCollection"],onClassExtended:function(cls,data){var onBeforeClassCreated=data.onBeforeClassCreated;data.onBeforeClassCreated=function(cls,data){var me=this,name=Ext.getClassName(cls),prototype=cls.prototype,superCls=cls.prototype.superclass,validations=data.validations||[],fields=data.fields||[],associations=data.associations||[],belongsTo=data.belongsTo,hasMany=data.hasMany,idgen=data.idgen,fieldsMixedCollection=new Ext.util.MixedCollection(false,function(field){return field.name}),associationsMixedCollection=new Ext.util.MixedCollection(false,function(association){return association.name}),superValidations=superCls.validations,superFields=superCls.fields,superAssociations=superCls.associations,association,i,ln,dependencies=[];cls.modelName=name;prototype.modelName=name;if(superValidations){validations=superValidations.concat(validations)}data.validations=validations;if(superFields){fields=superFields.items.concat(fields)}for(i=0,ln=fields.length;i<ln;++i){fieldsMixedCollection.add(new Ext.data.Field(fields[i]))}data.fields=fieldsMixedCollection;if(idgen){data.idgen=Ext.data.IdGenerator.get(idgen)}if(belongsTo){belongsTo=Ext.Array.from(belongsTo);for(i=0,ln=belongsTo.length;i<ln;++i){association=belongsTo[i];if(!Ext.isObject(association)){association={model:association}}association.type="belongsTo";associations.push(association)}delete data.belongsTo}if(hasMany){hasMany=Ext.Array.from(hasMany);for(i=0,ln=hasMany.length;i<ln;++i){association=hasMany[i];if(!Ext.isObject(association)){association={model:association}}association.type="hasMany";associations.push(association)}delete data.hasMany}if(superAssociations){associations=superAssociations.items.concat(associations)}for(i=0,ln=associations.length;i<ln;++i){dependencies.push("association."+associations[i].type.toLowerCase())}if(data.proxy){if(typeof data.proxy==="string"){dependencies.push("proxy."+data.proxy)}else{if(typeof data.proxy.type==="string"){dependencies.push("proxy."+data.proxy.type)}}}Ext.require(dependencies,function(){Ext.ModelManager.registerType(name,cls);for(i=0,ln=associations.length;i<ln;++i){association=associations[i];Ext.apply(association,{ownerModel:name,associatedModel:association.model});if(Ext.ModelManager.getModel(association.model)===undefined){Ext.ModelManager.registerDeferredAssociation(association)}else{associationsMixedCollection.add(Ext.data.Association.create(association))}}data.associations=associationsMixedCollection;onBeforeClassCreated.call(me,cls,data);cls.setProxy(cls.prototype.proxy||cls.prototype.defaultProxyType);Ext.ModelManager.onModelDefined(cls)})}},inheritableStatics:{setProxy:function(proxy){if(!proxy.isProxy){if(typeof proxy=="string"){proxy={type:proxy}}proxy=Ext.createByAlias("proxy."+proxy.type,proxy)}proxy.setModel(this);this.proxy=this.prototype.proxy=proxy;return proxy},getProxy:function(){return this.proxy},load:function(id,config){config=Ext.apply({},config);config=Ext.applyIf(config,{action:"read",id:id});var operation=Ext.create("Ext.data.Operation",config),scope=config.scope||this,record=null,callback;callback=function(operation){if(operation.wasSuccessful()){record=operation.getRecords()[0];Ext.callback(config.success,scope,[record,operation])}else{Ext.callback(config.failure,scope,[record,operation])}Ext.callback(config.callback,scope,[record,operation])};this.proxy.read(operation,callback,this)}},statics:{PREFIX:"ext-record",AUTO_ID:1,EDIT:"edit",REJECT:"reject",COMMIT:"commit",id:function(rec){var id=[this.PREFIX,"-",this.AUTO_ID++].join("");rec.phantom=true;rec.internalId=id;return id}},idgen:{isGenerator:true,type:"default",generate:function(){return null},getRecId:function(rec){return rec.modelName+"-"+rec.internalId}},editing:false,dirty:false,persistenceProperty:"data",evented:false,isModel:true,phantom:false,idProperty:"id",defaultProxyType:"ajax",constructor:function(data,id,raw){data=data||{};var me=this,fields,length,field,name,i,newId,isArray=Ext.isArray(data),newData=isArray?{}:null;me.internalId=(id||id===0)?id:Ext.data.Model.id(me);me.raw=raw;Ext.applyIf(me,{data:{}});me.modified={};if(me.persistanceProperty){me.persistenceProperty=me.persistanceProperty}me[me.persistenceProperty]={};me.mixins.observable.constructor.call(me);fields=me.fields.items;length=fields.length;for(i=0;i<length;i++){field=fields[i];name=field.name;if(isArray){newData[name]=data[i]}else{if(data[name]===undefined){data[name]=field.defaultValue}}}me.set(newData||data);if(me.getId()){me.phantom=false}else{if(me.phantom){newId=me.idgen.generate();if(newId!==null){me.setId(newId)}}}me.dirty=false;me.modified={};if(typeof me.init=="function"){me.init()}me.id=me.idgen.getRecId(me)},get:function(field){return this[this.persistenceProperty][field]},set:function(fieldName,value){var me=this,fields=me.fields,modified=me.modified,convertFields=[],field,key,i,currentValue,notEditing,count,length;if(arguments.length==1&&Ext.isObject(fieldName)){notEditing=!me.editing;count=0;for(key in fieldName){if(fieldName.hasOwnProperty(key)){field=fields.get(key);if(field&&field.convert!==field.type.convert){convertFields.push(key);continue}if(!count&&notEditing){me.beginEdit()}++count;me.set(key,fieldName[key])}}length=convertFields.length;if(length){if(!count&&notEditing){me.beginEdit()}count+=length;for(i=0;i<length;i++){field=convertFields[i];me.set(field,fieldName[field])}}if(notEditing&&count){me.endEdit()}}else{if(fields){field=fields.get(fieldName);if(field&&field.convert){value=field.convert(value,me)}}currentValue=me.get(fieldName);me[me.persistenceProperty][fieldName]=value;if(field&&field.persist&&!me.isEqual(currentValue,value)){if(me.isModified(fieldName)){if(me.isEqual(modified[fieldName],value)){delete modified[fieldName];me.dirty=false;for(key in modified){if(modified.hasOwnProperty(key)){me.dirty=true;break}}}}else{me.dirty=true;modified[fieldName]=currentValue}}if(!me.editing){me.afterEdit()}}},isEqual:function(a,b){if(Ext.isDate(a)&&Ext.isDate(b)){return a.getTime()===b.getTime()}return a===b},beginEdit:function(){var me=this;if(!me.editing){me.editing=true;me.dirtySave=me.dirty;me.dataSave=Ext.apply({},me[me.persistenceProperty]);me.modifiedSave=Ext.apply({},me.modified)}},cancelEdit:function(){var me=this;if(me.editing){me.editing=false;me.modified=me.modifiedSave;me[me.persistenceProperty]=me.dataSave;me.dirty=me.dirtySave;delete me.modifiedSave;delete me.dataSave;delete me.dirtySave}},endEdit:function(silent){var me=this,didChange;if(me.editing){me.editing=false;didChange=me.dirty||me.changedWhileEditing();delete me.modifiedSave;delete me.dataSave;delete me.dirtySave;if(silent!==true&&didChange){me.afterEdit()}}},changedWhileEditing:function(){var me=this,saved=me.dataSave,data=me[me.persistenceProperty],key;for(key in data){if(data.hasOwnProperty(key)){if(!me.isEqual(data[key],saved[key])){return true}}}return false},getChanges:function(){var modified=this.modified,changes={},field;for(field in modified){if(modified.hasOwnProperty(field)){changes[field]=this.get(field)}}return changes},isModified:function(fieldName){return this.modified.hasOwnProperty(fieldName)},setDirty:function(){var me=this,name;me.dirty=true;me.fields.each(function(field){if(field.persist){name=field.name;me.modified[name]=me.get(name)}},me)},reject:function(silent){var me=this,modified=me.modified,field;for(field in modified){if(modified.hasOwnProperty(field)){if(typeof modified[field]!="function"){me[me.persistenceProperty][field]=modified[field]}}}me.dirty=false;me.editing=false;me.modified={};if(silent!==true){me.afterReject()}},commit:function(silent){var me=this;me.phantom=me.dirty=me.editing=false;me.modified={};if(silent!==true){me.afterCommit()}},copy:function(newId){var me=this;return new me.self(Ext.apply({},me[me.persistenceProperty]),newId||me.internalId)},setProxy:function(proxy){if(!proxy.isProxy){if(typeof proxy==="string"){proxy={type:proxy}}proxy=Ext.createByAlias("proxy."+proxy.type,proxy)}proxy.setModel(this.self);this.proxy=proxy;return proxy},getProxy:function(){return this.proxy},validate:function(){var errors=Ext.create("Ext.data.Errors"),validations=this.validations,validators=Ext.data.validations,length,validation,field,valid,type,i;if(validations){length=validations.length;for(i=0;i<length;i++){validation=validations[i];field=validation.field||validation.name;type=validation.type;valid=validators[type](validation,this.get(field));if(!valid){errors.add({field:field,message:validation.message||validators[type+"Message"]})}}}return errors},isValid:function(){return this.validate().isValid()},save:function(options){options=Ext.apply({},options);var me=this,action=me.phantom?"create":"update",record=null,scope=options.scope||me,operation,callback;Ext.apply(options,{records:[me],action:action});operation=Ext.create("Ext.data.Operation",options);callback=function(operation){if(operation.wasSuccessful()){record=operation.getRecords()[0];me.set(record.data);record.dirty=false;Ext.callback(options.success,scope,[record,operation])}else{Ext.callback(options.failure,scope,[record,operation])}Ext.callback(options.callback,scope,[record,operation])};me.getProxy()[action](operation,callback,me);return me},destroy:function(options){options=Ext.apply({},options);var me=this,record=null,scope=options.scope||me,operation,callback;Ext.apply(options,{records:[me],action:"destroy"});operation=Ext.create("Ext.data.Operation",options);callback=function(operation){if(operation.wasSuccessful()){Ext.callback(options.success,scope,[record,operation])}else{Ext.callback(options.failure,scope,[record,operation])}Ext.callback(options.callback,scope,[record,operation])};me.getProxy().destroy(operation,callback,me);return me},getId:function(){return this.get(this.idProperty)},setId:function(id){this.set(this.idProperty,id)},join:function(store){this.store=store},unjoin:function(store){delete this.store},afterEdit:function(){this.callStore("afterEdit")},afterReject:function(){this.callStore("afterReject")},afterCommit:function(){this.callStore("afterCommit")},callStore:function(fn){var store=this.store;if(store!==undefined&&typeof store[fn]=="function"){store[fn](this)}},getAssociatedData:function(){return this.prepareAssociatedData(this,[],null)},prepareAssociatedData:function(record,ids,associationType){var associations=record.associations.items,associationCount=associations.length,associationData={},associatedStore,associatedName,associatedRecords,associatedRecord,associatedRecordCount,association,id,i,j,type,allow;for(i=0;i<associationCount;i++){association=associations[i];type=association.type;allow=true;if(associationType){allow=type==associationType}if(allow&&type=="hasMany"){associatedStore=record[association.storeName];associationData[association.name]=[];if(associatedStore&&associatedStore.data.length>0){associatedRecords=associatedStore.data.items;associatedRecordCount=associatedRecords.length;for(j=0;j<associatedRecordCount;j++){associatedRecord=associatedRecords[j];id=associatedRecord.id;if(Ext.Array.indexOf(ids,id)==-1){ids.push(id);associationData[association.name][j]=associatedRecord.data;Ext.apply(associationData[association.name][j],this.prepareAssociatedData(associatedRecord,ids,type))}}}}else{if(allow&&type=="belongsTo"){associatedRecord=record[association.instanceName];if(associatedRecord!==undefined){id=associatedRecord.id;if(Ext.Array.indexOf(ids,id)==-1){ids.push(id);associationData[association.name]=associatedRecord.data;Ext.apply(associationData[association.name],this.prepareAssociatedData(associatedRecord,ids,type))}}}}}return associationData}});Ext.define("Ext.data.StoreManager",{extend:"Ext.util.MixedCollection",alternateClassName:["Ext.StoreMgr","Ext.data.StoreMgr","Ext.StoreManager"],singleton:true,uses:["Ext.data.ArrayStore"],register:function(){for(var i=0,s;(s=arguments[i]);i++){this.add(s)}},unregister:function(){for(var i=0,s;(s=arguments[i]);i++){this.remove(this.lookup(s))}},lookup:function(store){if(Ext.isArray(store)){var fields=["field1"],expand=!Ext.isArray(store[0]),data=store,i,len;if(expand){data=[];for(i=0,len=store.length;i<len;++i){data.push([store[i]])}}else{for(i=2,len=store[0].length;i<=len;++i){fields.push("field"+i)}}return Ext.create("Ext.data.ArrayStore",{data:data,fields:fields,autoDestroy:true,autoCreated:true,expanded:expand})}if(Ext.isString(store)){return this.get(store)}else{return Ext.data.AbstractStore.create(store)}},getKey:function(o){return o.storeId}},function(){Ext.regStore=function(name,config){var store;if(Ext.isObject(name)){config=name}else{config.storeId=name}if(config instanceof Ext.data.Store){store=config}else{store=Ext.create("Ext.data.Store",config)}return Ext.data.StoreManager.register(store)};Ext.getStore=function(name){return Ext.data.StoreManager.lookup(name)}});Ext.define("Ext.Component",{alias:["widget.component","widget.box"],extend:"Ext.AbstractComponent",requires:["Ext.util.DelayedTask"],uses:["Ext.Layer","Ext.resizer.Resizer","Ext.util.ComponentDragger"],mixins:{floating:"Ext.util.Floating"},statics:{DIRECTION_TOP:"top",DIRECTION_RIGHT:"right",DIRECTION_BOTTOM:"bottom",DIRECTION_LEFT:"left",VERTICAL_DIRECTION_Re:/^(?:top|bottom)$/,INVALID_ID_CHARS_Re:/[\.,\s]/g},resizeHandles:"all",floating:false,toFrontOnShow:true,hideMode:"display",hideParent:false,ariaRole:"presentation",bubbleEvents:[],actionMode:"el",monPropRe:/^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/,constructor:function(config){var me=this;config=config||{};if(config.initialConfig){if(config.isAction){me.baseAction=config}config=config.initialConfig}else{if(config.tagName||config.dom||Ext.isString(config)){config={applyTo:config,id:config.id||config}}}me.callParent([config]);if(me.baseAction){me.baseAction.addComponent(me)}},initComponent:function(){var me=this;me.callParent();if(me.listeners){me.on(me.listeners);delete me.listeners}me.enableBubble(me.bubbleEvents);me.mons=[]},afterRender:function(){var me=this,resizable=me.resizable;if(me.floating){me.makeFloating(me.floating)}else{me.el.setVisibilityMode(Ext.Element[me.hideMode.toUpperCase()])}if(Ext.isDefined(me.autoScroll)){me.setAutoScroll(me.autoScroll)}me.callParent();if(!(me.x&&me.y)&&(me.pageX||me.pageY)){me.setPagePosition(me.pageX,me.pageY)}if(resizable){me.initResizable(resizable)}if(me.draggable){me.initDraggable()}me.initAria()},initAria:function(){var actionEl=this.getActionEl(),role=this.ariaRole;if(role){actionEl.dom.setAttribute("role",role)}},setAutoScroll:function(scroll){var me=this,targetEl;scroll=!!scroll;if(me.rendered){targetEl=me.getTargetEl();targetEl.setStyle("overflow",scroll?"auto":"");if(scroll&&(Ext.isIE6||Ext.isIE7)){targetEl.position()}}me.autoScroll=scroll;return me},makeFloating:function(cfg){this.mixins.floating.constructor.call(this,cfg)},initResizable:function(resizable){var me=this;resizable=Ext.apply({target:me,dynamic:false,constrainTo:me.constrainTo||(me.floatParent?me.floatParent.getTargetEl():me.el.getScopeParent()),handles:me.resizeHandles},resizable);resizable.target=me;me.resizer=Ext.create("Ext.resizer.Resizer",resizable)},getDragEl:function(){return this.el},initDraggable:function(){var me=this,ddConfig=Ext.applyIf({el:me.getDragEl(),constrainTo:me.constrain?(me.constrainTo||(me.floatParent?me.floatParent.getTargetEl():me.el.getScopeParent())):undefined},me.draggable);if(me.constrain||me.constrainDelegate){ddConfig.constrain=me.constrain;ddConfig.constrainDelegate=me.constrainDelegate}me.dd=Ext.create("Ext.util.ComponentDragger",me,ddConfig)},setPosition:function(x,y,animate){var me=this,el=me.el,to={},adj,adjX,adjY,xIsNumber,yIsNumber;if(Ext.isArray(x)){animate=y;y=x[1];x=x[0]}me.x=x;me.y=y;if(!me.rendered){return me}adj=me.adjustPosition(x,y);adjX=adj.x;adjY=adj.y;xIsNumber=Ext.isNumber(adjX);yIsNumber=Ext.isNumber(adjY);if(xIsNumber||yIsNumber){if(animate){if(xIsNumber){to.left=adjX}if(yIsNumber){to.top=adjY}me.stopAnimation();me.animate(Ext.apply({duration:1000,listeners:{afteranimate:Ext.Function.bind(me.afterSetPosition,me,[adjX,adjY])},to:to},animate))}else{if(!xIsNumber){el.setTop(adjY)}else{if(!yIsNumber){el.setLeft(adjX)}else{el.setLeftTop(adjX,adjY)}}me.afterSetPosition(adjX,adjY)}}return me},afterSetPosition:function(ax,ay){this.onPosition(ax,ay);this.fireEvent("move",this,ax,ay)},showAt:function(x,y,animate){var me=this;if(me.floating){me.setPosition(x,y,animate)}else{me.setPagePosition(x,y,animate)}me.show()},setPagePosition:function(x,y,animate){var me=this,p;if(Ext.isArray(x)){y=x[1];x=x[0]}me.pageX=x;me.pageY=y;if(me.floating&&me.floatParent){p=me.floatParent.getTargetEl().getViewRegion();if(Ext.isNumber(x)&&Ext.isNumber(p.left)){x-=p.left}if(Ext.isNumber(y)&&Ext.isNumber(p.top)){y-=p.top}me.setPosition(x,y,animate)}else{p=me.el.translatePoints(x,y);me.setPosition(p.left,p.top,animate)}return me},getBox:function(local){var pos=this.getPosition(local),size=this.getSize();size.x=pos[0];size.y=pos[1];return size},updateBox:function(box){this.setSize(box.width,box.height);this.setPagePosition(box.x,box.y);return this},getOuterSize:function(){var el=this.el;return{width:el.getWidth()+el.getMargin("lr"),height:el.getHeight()+el.getMargin("tb")}},adjustPosition:function(x,y){if(this.floating&&this.floatParent){var o=this.floatParent.getTargetEl().getViewRegion();x+=o.left;y+=o.top}return{x:x,y:y}},getPosition:function(local){var me=this,el=me.el,xy,o;if((local===true)||(me.floating&&!me.floatParent)){return[el.getLeft(true),el.getTop(true)]}xy=me.xy||el.getXY();if(me.floating){o=me.floatParent.getTargetEl().getViewRegion();xy[0]-=o.left;xy[1]-=o.top}return xy},getId:function(){var me=this,xtype;if(!me.id){xtype=me.getXType();xtype=xtype?xtype.replace(Ext.Component.INVALID_ID_CHARS_Re,"-"):"ext-comp";me.id=xtype+"-"+me.getAutoId()}return me.id},onEnable:function(){var actionEl=this.getActionEl();actionEl.dom.removeAttribute("aria-disabled");actionEl.dom.disabled=false;this.callParent()},onDisable:function(){var actionEl=this.getActionEl();actionEl.dom.setAttribute("aria-disabled",true);actionEl.dom.disabled=true;this.callParent()},show:function(animateTarget,cb,scope){var me=this;if(me.rendered&&me.isVisible()){if(me.toFrontOnShow&&me.floating){me.toFront()}}else{if(me.fireEvent("beforeshow",me)!==false){me.hidden=false;if(!me.rendered&&(me.autoRender||me.floating)){me.doAutoRender()}if(me.rendered){me.beforeShow();me.onShow.apply(me,arguments);if(me.ownerCt&&!me.floating&&!(me.ownerCt.suspendLayout||me.ownerCt.layout.layoutBusy)){me.ownerCt.doLayout()}me.afterShow.apply(me,arguments)}}}return me},beforeShow:Ext.emptyFn,onShow:function(){var me=this;me.el.show();me.callParent(arguments);if(me.floating&&me.constrain){me.doConstrain()}},afterShow:function(animateTarget,cb,scope){var me=this,fromBox,toBox,ghostPanel;animateTarget=animateTarget||me.animateTarget;if(!me.ghost){animateTarget=null}if(animateTarget){animateTarget=animateTarget.el?animateTarget.el:Ext.get(animateTarget);toBox=me.el.getBox();fromBox=animateTarget.getBox();me.el.addCls(Ext.baseCSSPrefix+"hide-offsets");ghostPanel=me.ghost();ghostPanel.el.stopAnimation();ghostPanel.el.setX(-10000);ghostPanel.el.animate({from:fromBox,to:toBox,listeners:{afteranimate:function(){delete ghostPanel.componentLayout.lastComponentSize;me.unghost();me.el.removeCls(Ext.baseCSSPrefix+"hide-offsets");me.onShowComplete(cb,scope)}}})}else{me.onShowComplete(cb,scope)}},onShowComplete:function(cb,scope){var me=this;if(me.floating){me.toFront()}Ext.callback(cb,scope||me);me.fireEvent("show",me)},hide:function(){var me=this;me.showOnParentShow=false;if(!(me.rendered&&!me.isVisible())&&me.fireEvent("beforehide",me)!==false){me.hidden=true;if(me.rendered){me.onHide.apply(me,arguments);if(me.ownerCt&&!me.floating&&!(me.ownerCt.suspendLayout||me.ownerCt.layout.layoutBusy)){me.ownerCt.doLayout()}}}return me},onHide:function(animateTarget,cb,scope){var me=this,ghostPanel,toBox;animateTarget=animateTarget||me.animateTarget;if(!me.ghost){animateTarget=null}if(animateTarget){animateTarget=animateTarget.el?animateTarget.el:Ext.get(animateTarget);ghostPanel=me.ghost();ghostPanel.el.stopAnimation();toBox=animateTarget.getBox();toBox.width+="px";toBox.height+="px";ghostPanel.el.animate({to:toBox,listeners:{afteranimate:function(){delete ghostPanel.componentLayout.lastComponentSize;ghostPanel.el.hide();me.afterHide(cb,scope)}}})}me.el.hide();if(!animateTarget){me.afterHide(cb,scope)}},afterHide:function(cb,scope){Ext.callback(cb,scope||this);this.fireEvent("hide",this)},onDestroy:function(){var me=this;if(me.rendered){Ext.destroy(me.proxy,me.proxyWrap,me.resizer);if(me.actionMode=="container"||me.removeMode=="container"){me.container.remove()}}delete me.focusTask;me.callParent()},deleteMembers:function(){var args=arguments,len=args.length,i=0;for(;i<len;++i){delete this[args[i]]}},focus:function(selectText,delay){var me=this,focusEl;if(delay){if(!me.focusTask){me.focusTask=Ext.create("Ext.util.DelayedTask",me.focus)}me.focusTask.delay(Ext.isNumber(delay)?delay:10,null,me,[selectText,false]);return me}if(me.rendered&&!me.isDestroyed){focusEl=me.getFocusEl();focusEl.focus();if(focusEl.dom&&selectText===true){focusEl.dom.select()}if(me.floating){me.toFront(true)}}return me},getFocusEl:function(){return this.el},blur:function(){if(this.rendered){this.getFocusEl().blur()}return this},getEl:function(){return this.el},getResizeEl:function(){return this.el},getPositionEl:function(){return this.el},getActionEl:function(){return this.el},getVisibilityEl:function(){return this.el},onResize:Ext.emptyFn,getBubbleTarget:function(){return this.ownerCt},getContentTarget:function(){return this.el},cloneConfig:function(overrides){overrides=overrides||{};var id=overrides.id||Ext.id(),cfg=Ext.applyIf(overrides,this.initialConfig),self;cfg.id=id;self=Ext.getClass(this);return new self(cfg)},getXType:function(){return this.self.xtype},findParentBy:function(fn){var p;for(p=this.ownerCt;p&&!fn(p,this);p=p.ownerCt){}return p||null},findParentByType:function(xtype){return Ext.isFunction(xtype)?this.findParentBy(function(p){return p.constructor===xtype}):this.up(xtype)},bubble:function(fn,scope,args){var p=this;while(p){if(fn.apply(scope||p,args||[p])===false){break}p=p.ownerCt}return this},getProxy:function(){var me=this,target;if(!me.proxy){target=Ext.getBody();if(Ext.scopeResetCSS){me.proxyWrap=target=Ext.getBody().createChild({cls:Ext.baseCSSPrefix+"reset"})}me.proxy=me.el.createProxy(Ext.baseCSSPrefix+"proxy-el",target,true)}return me.proxy}});Ext.define("Ext.layout.container.AbstractContainer",{extend:"Ext.layout.Layout",type:"container",bindToOwnerCtComponent:false,bindToOwnerCtContainer:false,setItemSize:function(item,width,height){if(Ext.isObject(width)){height=width.height;width=width.width}item.setCalculatedSize(width,height,this.owner)},getLayoutItems:function(){return this.owner&&this.owner.items&&this.owner.items.items||[]},beforeLayout:function(){return !this.owner.collapsed&&this.callParent(arguments)},afterLayout:function(){this.owner.afterLayout(this)},getTarget:function(){return this.owner.getTargetEl()},getRenderTarget:function(){return this.owner.getTargetEl()}});Ext.define("Ext.layout.container.Container",{extend:"Ext.layout.container.AbstractContainer",alternateClassName:"Ext.layout.ContainerLayout",layoutItem:function(item,box){if(box){item.doComponentLayout(box.width,box.height)}else{item.doComponentLayout()}},getLayoutTargetSize:function(){var target=this.getTarget(),ret;if(target){ret=target.getViewSize();if(Ext.isIE&&ret.width==0){ret=target.getStyleSize()}ret.width-=target.getPadding("lr");ret.height-=target.getPadding("tb")}return ret},beforeLayout:function(){if(this.owner.beforeLayout(arguments)!==false){return this.callParent(arguments)}else{return false}},getRenderedItems:function(){var me=this,target=me.getTarget(),items=me.getLayoutItems(),ln=items.length,renderedItems=[],i,item;for(i=0;i<ln;i++){item=items[i];if(item.rendered&&me.isValidParent(item,target,i)){renderedItems.push(item)}}return renderedItems},getVisibleItems:function(){var target=this.getTarget(),items=this.getLayoutItems(),ln=items.length,visibleItems=[],i,item;for(i=0;i<ln;i++){item=items[i];if(item.rendered&&this.isValidParent(item,target,i)&&item.hidden!==true){visibleItems.push(item)}}return visibleItems}});Ext.define("Ext.layout.container.Auto",{alias:["layout.auto","layout.autocontainer"],extend:"Ext.layout.container.Container",type:"autocontainer",bindToOwnerCtComponent:true,onLayout:function(owner,target){var me=this,items=me.getLayoutItems(),ln=items.length,i;if(ln){if(!me.clearEl){me.clearEl=me.getRenderTarget().createChild({cls:Ext.baseCSSPrefix+"clear",role:"presentation"})}for(i=0;i<ln;i++){me.setItemSize(items[i])}}},configureItem:function(item){this.callParent(arguments);item.layoutManagedHeight=2;item.layoutManagedWidth=2}});Ext.define("Ext.container.AbstractContainer",{extend:"Ext.Component",requires:["Ext.util.MixedCollection","Ext.layout.container.Auto","Ext.ZIndexManager"],suspendLayout:false,autoDestroy:true,defaultType:"panel",isContainer:true,layoutCounter:0,baseCls:Ext.baseCSSPrefix+"container",bubbleEvents:["add","remove"],initComponent:function(){var me=this;me.addEvents("afterlayout","beforeadd","beforeremove","add","remove");me.layoutOnShow=Ext.create("Ext.util.MixedCollection");me.callParent();me.initItems()},initItems:function(){var me=this,items=me.items;me.items=Ext.create("Ext.util.MixedCollection",false,me.getComponentId);if(items){if(!Ext.isArray(items)){items=[items]}me.add(items)}},afterRender:function(){this.getLayout();this.callParent()},renderChildren:function(){var me=this,layout=me.getLayout();me.callParent();if(layout){me.suspendLayout=true;layout.renderChildren();delete me.suspendLayout}},setLayout:function(layout){var currentLayout=this.layout;if(currentLayout&&currentLayout.isLayout&&currentLayout!=layout){currentLayout.setOwner(null)}this.layout=layout;layout.setOwner(this)},getLayout:function(){var me=this;if(!me.layout||!me.layout.isLayout){me.setLayout(Ext.layout.Layout.create(me.layout,"autocontainer"))}return me.layout},doLayout:function(){var me=this,layout=me.getLayout();if(me.rendered&&layout&&!me.suspendLayout){if(!me.isFixedWidth()||!me.isFixedHeight()){if(me.componentLayout.layoutBusy!==true){me.doComponentLayout();if(me.componentLayout.layoutCancelled===true){layout.layout()}}}else{if(layout.layoutBusy!==true){layout.layout()}}}return me},afterLayout:function(layout){++this.layoutCounter;this.fireEvent("afterlayout",this,layout)},prepareItems:function(items,applyDefaults){if(!Ext.isArray(items)){items=[items]}var i=0,len=items.length,item;for(;i<len;i++){item=items[i];if(applyDefaults){item=this.applyDefaults(item)}items[i]=this.lookupComponent(item)}return items},applyDefaults:function(config){var defaults=this.defaults;if(defaults){if(Ext.isFunction(defaults)){defaults=defaults.call(this,config)}if(Ext.isString(config)){config=Ext.ComponentManager.get(config)}Ext.applyIf(config,defaults)}return config},lookupComponent:function(comp){return Ext.isString(comp)?Ext.ComponentManager.get(comp):this.createComponent(comp)},createComponent:function(config,defaultType){return Ext.ComponentManager.create(config,defaultType||this.defaultType)},getComponentId:function(comp){return comp.getItemId()},add:function(){var me=this,args=Array.prototype.slice.call(arguments),hasMultipleArgs,items,results=[],i,ln,item,index=-1,cmp;if(typeof args[0]=="number"){index=args.shift()}hasMultipleArgs=args.length>1;if(hasMultipleArgs||Ext.isArray(args[0])){items=hasMultipleArgs?args:args[0];me.suspendLayout=true;for(i=0,ln=items.length;i<ln;i++){item=items[i];if(index!=-1){item=me.add(index+i,item)}else{item=me.add(item)}results.push(item)}me.suspendLayout=false;me.doLayout();return results}cmp=me.prepareItems(args[0],true)[0];if(cmp.floating){cmp.onAdded(me,index)}else{index=(index!==-1)?index:me.items.length;if(me.fireEvent("beforeadd",me,cmp,index)!==false&&me.onBeforeAdd(cmp)!==false){me.items.insert(index,cmp);cmp.onAdded(me,index);me.onAdd(cmp,index);me.fireEvent("add",me,cmp,index)}me.doLayout()}return cmp},onAdd:Ext.emptyFn,onRemove:Ext.emptyFn,insert:function(index,comp){return this.add(index,comp)},move:function(fromIdx,toIdx){var items=this.items,item;item=items.removeAt(fromIdx);if(item===false){return false}items.insert(toIdx,item);this.doLayout();return item},onBeforeAdd:function(item){var me=this;if(item.ownerCt){item.ownerCt.remove(item,false)}if(me.border===false||me.border===0){item.border=(item.border===true)}},remove:function(comp,autoDestroy){var me=this,c=me.getComponent(comp);if(c&&me.fireEvent("beforeremove",me,c)!==false){me.doRemove(c,autoDestroy);me.fireEvent("remove",me,c)}return c},doRemove:function(component,autoDestroy){var me=this,layout=me.layout,hasLayout=layout&&me.rendered;me.items.remove(component);component.onRemoved();if(hasLayout){layout.onRemove(component)}me.onRemove(component,autoDestroy);if(autoDestroy===true||(autoDestroy!==false&&me.autoDestroy)){component.destroy()}if(hasLayout&&!autoDestroy){layout.afterRemove(component)}if(!me.destroying){me.doLayout()}},removeAll:function(autoDestroy){var me=this,removeItems=me.items.items.slice(),items=[],i=0,len=removeItems.length,item;me.suspendLayout=true;for(;i<len;i++){item=removeItems[i];me.remove(item,autoDestroy);if(item.ownerCt!==me){items.push(item)}}me.suspendLayout=false;if(len){me.doLayout()}return items},getRefItems:function(deep){var me=this,items=me.items.items,len=items.length,i=0,item,result=[];for(;i<len;i++){item=items[i];result.push(item);if(deep&&item.getRefItems){result.push.apply(result,item.getRefItems(true))}}if(me.floatingItems&&me.floatingItems.accessList){result.push.apply(result,me.floatingItems.accessList)}return result},cascade:function(fn,scope,origArgs){var me=this,cs=me.items?me.items.items:[],len=cs.length,i=0,c,args=origArgs?origArgs.concat(me):[me],componentIndex=args.length-1;if(fn.apply(scope||me,args)!==false){for(;i<len;i++){c=cs[i];if(c.cascade){c.cascade(fn,scope,origArgs)}else{args[componentIndex]=c;fn.apply(scope||cs,args)}}}return this},getComponent:function(comp){if(Ext.isObject(comp)){comp=comp.getItemId()}return this.items.get(comp)},query:function(selector){selector=selector||"*";return Ext.ComponentQuery.query(selector,this)},child:function(selector){selector=selector||"";return this.query("> "+selector)[0]||null},down:function(selector){return this.query(selector)[0]||null},show:function(){this.callParent(arguments);this.performDeferredLayouts();return this},performDeferredLayouts:function(){var layoutCollection=this.layoutOnShow,ln=layoutCollection.getCount(),i=0,needsLayout,item;for(;i<ln;i++){item=layoutCollection.get(i);needsLayout=item.needsLayout;if(Ext.isObject(needsLayout)){item.doComponentLayout(needsLayout.width,needsLayout.height,needsLayout.isSetSize,needsLayout.ownerCt)}}layoutCollection.clear()},onEnable:function(){Ext.Array.each(this.query("[isFormField]"),function(item){if(item.resetDisable){item.enable();delete item.resetDisable}});this.callParent()},onDisable:function(){Ext.Array.each(this.query("[isFormField]"),function(item){if(item.resetDisable!==false&&!item.disabled){item.disable();item.resetDisable=true}});this.callParent()},beforeLayout:function(){return true},beforeDestroy:function(){var me=this,items=me.items,c;if(items){while((c=items.first())){me.doRemove(c,true)}}Ext.destroy(me.layout);me.callParent()}});Ext.define("Ext.container.Container",{extend:"Ext.container.AbstractContainer",alias:"widget.container",alternateClassName:"Ext.Container",getChildByElement:function(el){var item,itemEl,i=0,it=this.items.items,ln=it.length;el=Ext.getDom(el);for(;i<ln;i++){item=it[i];itemEl=item.getEl();if((itemEl.dom===el)||itemEl.contains(el)){return item}}return null}});Ext.define("Ext.toolbar.Fill",{extend:"Ext.Component",alias:"widget.tbfill",alternateClassName:"Ext.Toolbar.Fill",isFill:true,flex:1});Ext.define("Ext.toolbar.Item",{extend:"Ext.Component",alias:"widget.tbitem",alternateClassName:"Ext.Toolbar.Item",enable:Ext.emptyFn,disable:Ext.emptyFn,focus:Ext.emptyFn});Ext.define("Ext.toolbar.Separator",{extend:"Ext.toolbar.Item",alias:"widget.tbseparator",alternateClassName:"Ext.Toolbar.Separator",baseCls:Ext.baseCSSPrefix+"toolbar-separator",focusable:false});Ext.define("Ext.menu.Manager",{singleton:true,requires:["Ext.util.MixedCollection","Ext.util.KeyMap"],alternateClassName:"Ext.menu.MenuMgr",uses:["Ext.menu.Menu"],menus:{},groups:{},attached:false,lastShow:new Date(),init:function(){var me=this;me.active=Ext.create("Ext.util.MixedCollection");Ext.getDoc().addKeyListener(27,function(){if(me.active.length>0){me.hideAll()}},me)},hideAll:function(){var active=this.active,c;if(active&&active.length>0){c=active.clone();c.each(function(m){m.hide()});return true}return false},onHide:function(m){var me=this,active=me.active;active.remove(m);if(active.length<1){Ext.getDoc().un("mousedown",me.onMouseDown,me);me.attached=false}},onShow:function(m){var me=this,active=me.active,last=active.last(),attached=me.attached,menuEl=m.getEl(),zIndex;me.lastShow=new Date();active.add(m);if(!attached){Ext.getDoc().on("mousedown",me.onMouseDown,me);me.attached=true}m.toFront()},onBeforeHide:function(m){if(m.activeChild){m.activeChild.hide()}if(m.autoHideTimer){clearTimeout(m.autoHideTimer);delete m.autoHideTimer}},onBeforeShow:function(m){var active=this.active,parentMenu=m.parentMenu;active.remove(m);if(!parentMenu&&!m.allowOtherMenus){this.hideAll()}else{if(parentMenu&&parentMenu.activeChild&&m!=parentMenu.activeChild){parentMenu.activeChild.hide()}}},onMouseDown:function(e){var me=this,active=me.active,lastShow=me.lastShow,target=e.target;if(Ext.Date.getElapsed(lastShow)>50&&active.length>0&&!e.getTarget("."+Ext.baseCSSPrefix+"menu")){me.hideAll();if(Ext.isIE&&Ext.fly(target).focusable()){target.focus()}}},register:function(menu){var me=this;if(!me.active){me.init()}if(menu.floating){me.menus[menu.id]=menu;menu.on({beforehide:me.onBeforeHide,hide:me.onHide,beforeshow:me.onBeforeShow,show:me.onShow,scope:me})}},get:function(menu){var menus=this.menus;if(typeof menu=="string"){if(!menus){return null}return menus[menu]}else{if(menu.isMenu){return menu}else{if(Ext.isArray(menu)){return Ext.create("Ext.menu.Menu",{items:menu})}else{return Ext.ComponentManager.create(menu,"menu")}}}},unregister:function(menu){var me=this,menus=me.menus,active=me.active;delete menus[menu.id];active.remove(menu);menu.un({beforehide:me.onBeforeHide,hide:me.onHide,beforeshow:me.onBeforeShow,show:me.onShow,scope:me})},registerCheckable:function(menuItem){var groups=this.groups,groupId=menuItem.group;if(groupId){if(!groups[groupId]){groups[groupId]=[]}groups[groupId].push(menuItem)}},unregisterCheckable:function(menuItem){var groups=this.groups,groupId=menuItem.group;if(groupId){Ext.Array.remove(groups[groupId],menuItem)}},onCheckChange:function(menuItem,state){var groups=this.groups,groupId=menuItem.group,i=0,group,ln,curr;if(groupId&&state){group=groups[groupId];ln=group.length;for(;i<ln;i++){curr=group[i];if(curr!=menuItem){curr.setChecked(false)}}}}});Ext.define("Ext.layout.component.Button",{alias:["layout.button"],extend:"Ext.layout.component.Component",type:"button",cellClsRE:/-btn-(tl|br)\b/,htmlRE:/<.*>/,beforeLayout:function(){return this.callParent(arguments)||this.lastText!==this.owner.text},onLayout:function(width,height){var me=this,isNum=Ext.isNumber,owner=me.owner,ownerEl=owner.el,btnEl=owner.btnEl,btnInnerEl=owner.btnInnerEl,btnIconEl=owner.btnIconEl,sizeIconEl=(owner.icon||owner.iconCls)&&(owner.iconAlign=="top"||owner.iconAlign=="bottom"),minWidth=owner.minWidth,maxWidth=owner.maxWidth,ownerWidth,btnFrameWidth,metrics;me.getTargetInfo();me.callParent(arguments);btnInnerEl.unclip();me.setTargetSize(width,height);if(!isNum(width)){if(owner.text&&(Ext.isIE6||Ext.isIE7)&&Ext.isStrict&&btnEl&&btnEl.getWidth()>20){btnFrameWidth=me.btnFrameWidth;metrics=Ext.util.TextMetrics.measure(btnInnerEl,owner.text);ownerEl.setWidth(metrics.width+btnFrameWidth+me.adjWidth);btnEl.setWidth(metrics.width+btnFrameWidth);btnInnerEl.setWidth(metrics.width+btnFrameWidth);if(sizeIconEl){btnIconEl.setWidth(metrics.width+btnFrameWidth)}}else{ownerEl.setWidth(null);btnEl.setWidth(null);btnInnerEl.setWidth(null);btnIconEl.setWidth(null)}if(minWidth||maxWidth){ownerWidth=ownerEl.getWidth();if(minWidth&&(ownerWidth<minWidth)){me.setTargetSize(minWidth,height)}else{if(maxWidth&&(ownerWidth>maxWidth)){btnInnerEl.clip();me.setTargetSize(maxWidth,height)}}}}this.lastText=owner.text},setTargetSize:function(width,height){var me=this,owner=me.owner,isNum=Ext.isNumber,btnInnerEl=owner.btnInnerEl,btnWidth=(isNum(width)?width-me.adjWidth:width),btnHeight=(isNum(height)?height-me.adjHeight:height),btnFrameHeight=me.btnFrameHeight,text=owner.getText(),textHeight;me.callParent(arguments);me.setElementSize(owner.btnEl,btnWidth,btnHeight);me.setElementSize(btnInnerEl,btnWidth,btnHeight);if(btnHeight>=0){btnInnerEl.setStyle("line-height",btnHeight-btnFrameHeight+"px")}if(text&&this.htmlRE.test(text)){btnInnerEl.setStyle("line-height","normal");textHeight=Ext.util.TextMetrics.measure(btnInnerEl,text).height;btnInnerEl.setStyle("padding-top",me.btnFrameTop+Math.max(btnInnerEl.getHeight()-btnFrameHeight-textHeight,0)/2+"px");me.setElementSize(btnInnerEl,btnWidth,btnHeight)}},getTargetInfo:function(){var me=this,owner=me.owner,ownerEl=owner.el,frameSize=me.frameSize,frameBody=owner.frameBody,btnWrap=owner.btnWrap,innerEl=owner.btnInnerEl;if(!("adjWidth" in me)){Ext.apply(me,{adjWidth:frameSize.left+frameSize.right+ownerEl.getBorderWidth("lr")+ownerEl.getPadding("lr")+btnWrap.getPadding("lr")+(frameBody?frameBody.getFrameWidth("lr"):0),adjHeight:frameSize.top+frameSize.bottom+ownerEl.getBorderWidth("tb")+ownerEl.getPadding("tb")+btnWrap.getPadding("tb")+(frameBody?frameBody.getFrameWidth("tb"):0),btnFrameWidth:innerEl.getFrameWidth("lr"),btnFrameHeight:innerEl.getFrameWidth("tb"),btnFrameTop:innerEl.getFrameWidth("t")})}return me.callParent()}});Ext.define("Ext.button.Button",{alias:"widget.button",extend:"Ext.Component",requires:["Ext.menu.Manager","Ext.util.ClickRepeater","Ext.layout.component.Button","Ext.util.TextMetrics","Ext.util.KeyMap"],alternateClassName:"Ext.Button",isButton:true,componentLayout:"button",hidden:false,disabled:false,pressed:false,enableToggle:false,menuAlign:"tl-bl?",textAlign:"center",type:"button",clickEvent:"click",preventDefault:true,handleMouseEvents:true,tooltipType:"qtip",baseCls:Ext.baseCSSPrefix+"btn",pressedCls:"pressed",overCls:"over",focusCls:"focus",menuActiveCls:"menu-active",ariaRole:"button",renderTpl:'<em id="{id}-btnWrap" class="{splitCls}"><tpl if="href"><a id="{id}-btnEl" href="{href}" target="{target}"<tpl if="tabIndex"> tabIndex="{tabIndex}"</tpl> role="link"><span id="{id}-btnInnerEl" class="{baseCls}-inner">{text}</span><span id="{id}-btnIconEl" class="{baseCls}-icon"></span></a></tpl><tpl if="!href"><button id="{id}-btnEl" type="{type}" hidefocus="true"<tpl if="tabIndex"> tabIndex="{tabIndex}"</tpl> role="button" autocomplete="off"><span id="{id}-btnInnerEl" class="{baseCls}-inner" style="{innerSpanStyle}">{text}</span><span id="{id}-btnIconEl" class="{baseCls}-icon {iconCls}">&#160;</span></button></tpl></em>',scale:"small",allowedScales:["small","medium","large"],iconAlign:"left",arrowAlign:"right",arrowCls:"arrow",maskOnDisable:false,initComponent:function(){var me=this;me.callParent(arguments);me.addEvents("click","toggle","mouseover","mouseout","menushow","menuhide","menutriggerover","menutriggerout");if(me.menu){me.split=true;me.menu=Ext.menu.Manager.get(me.menu);me.menu.ownerCt=me}if(me.url){me.href=me.url}if(me.href&&!me.hasOwnProperty("preventDefault")){me.preventDefault=false}if(Ext.isString(me.toggleGroup)){me.enableToggle=true}},initAria:function(){this.callParent();var actionEl=this.getActionEl();if(this.menu){actionEl.dom.setAttribute("aria-haspopup",true)}},getActionEl:function(){return this.btnEl},getFocusEl:function(){return this.btnEl},setButtonCls:function(){var me=this,cls=[],btnIconEl=me.btnIconEl,hide="x-hide-display";if(me.useSetClass){if(!Ext.isEmpty(me.oldCls)){me.removeClsWithUI(me.oldCls);me.removeClsWithUI(me.pressedCls)}if(me.iconCls||me.icon){if(me.text){cls.push("icon-text-"+me.iconAlign)}else{cls.push("icon")}if(btnIconEl){btnIconEl.removeCls(hide)}}else{if(me.text){cls.push("noicon")}if(btnIconEl){btnIconEl.addCls(hide)}}me.oldCls=cls;me.addClsWithUI(cls);me.addClsWithUI(me.pressed?me.pressedCls:null)}},onRender:function(ct,position){var me=this,repeater,btn;Ext.applyIf(me.renderData,me.getTemplateArgs());me.addChildEls("btnEl","btnWrap","btnInnerEl","btnIconEl");if(me.scale){me.ui=me.ui+"-"+me.scale}me.callParent(arguments);if(me.split&&me.arrowTooltip){me.arrowEl.dom.setAttribute(me.getTipAttr(),me.arrowTooltip)}me.mon(me.btnEl,{scope:me,focus:me.onFocus,blur:me.onBlur});btn=me.el;if(me.icon){me.setIcon(me.icon)}if(me.iconCls){me.setIconCls(me.iconCls)}if(me.tooltip){me.setTooltip(me.tooltip,true)}if(me.textAlign){me.setTextAlign(me.textAlign)}if(me.handleMouseEvents){me.mon(btn,{scope:me,mouseover:me.onMouseOver,mouseout:me.onMouseOut,mousedown:me.onMouseDown});if(me.split){me.mon(btn,{mousemove:me.onMouseMove,scope:me})}}if(me.menu){me.mon(me.menu,{scope:me,show:me.onMenuShow,hide:me.onMenuHide});me.keyMap=Ext.create("Ext.util.KeyMap",me.el,{key:Ext.EventObject.DOWN,handler:me.onDownKey,scope:me})}if(me.repeat){repeater=Ext.create("Ext.util.ClickRepeater",btn,Ext.isObject(me.repeat)?me.repeat:{});me.mon(repeater,"click",me.onRepeatClick,me)}else{me.mon(btn,me.clickEvent,me.onClick,me)}Ext.ButtonToggleManager.register(me)},getTemplateArgs:function(){var me=this,persistentPadding=me.getPersistentBtnPadding(),innerSpanStyle="";if(Math.max.apply(Math,persistentPadding)>0){innerSpanStyle="margin:"+Ext.Array.map(persistentPadding,function(pad){return -pad+"px"}).join(" ")}return{href:me.getHref(),target:me.target||"_blank",type:me.type,splitCls:me.getSplitCls(),cls:me.cls,iconCls:me.iconCls||"",text:me.text||"&#160;",tabIndex:me.tabIndex,innerSpanStyle:innerSpanStyle}},getHref:function(){var me=this,params=Ext.apply({},me.baseParams);params=Ext.apply(params,me.params);return me.href?Ext.urlAppend(me.href,Ext.Object.toQueryString(params)):false},setParams:function(params){this.params=params;this.btnEl.dom.href=this.getHref()},getSplitCls:function(){var me=this;return me.split?(me.baseCls+"-"+me.arrowCls)+" "+(me.baseCls+"-"+me.arrowCls+"-"+me.arrowAlign):""},afterRender:function(){var me=this;me.useSetClass=true;me.setButtonCls();me.doc=Ext.getDoc();this.callParent(arguments)},setIconCls:function(cls){var me=this,btnIconEl=me.btnIconEl,oldCls=me.iconCls;me.iconCls=cls;if(btnIconEl){btnIconEl.removeCls(oldCls);btnIconEl.addCls(cls||"");me.setButtonCls()}return me},setTooltip:function(tooltip,initial){var me=this;if(me.rendered){if(!initial){me.clearTip()}if(Ext.isObject(tooltip)){Ext.tip.QuickTipManager.register(Ext.apply({target:me.btnEl.id},tooltip));me.tooltip=tooltip}else{me.btnEl.dom.setAttribute(me.getTipAttr(),tooltip)}}else{me.tooltip=tooltip}return me},setTextAlign:function(align){var me=this,btnEl=me.btnEl;if(btnEl){btnEl.removeCls(me.baseCls+"-"+me.textAlign);btnEl.addCls(me.baseCls+"-"+align)}me.textAlign=align;return me},getTipAttr:function(){return this.tooltipType=="qtip"?"data-qtip":"title"},getRefItems:function(deep){var menu=this.menu,items;if(menu){items=menu.getRefItems(deep);items.unshift(menu)}return items||[]},clearTip:function(){if(Ext.isObject(this.tooltip)){Ext.tip.QuickTipManager.unregister(this.btnEl)}},beforeDestroy:function(){var me=this;if(me.rendered){me.clearTip()}if(me.menu&&me.destroyMenu!==false){Ext.destroy(me.menu)}Ext.destroy(me.btnInnerEl,me.repeater);me.callParent()},onDestroy:function(){var me=this;if(me.rendered){me.doc.un("mouseover",me.monitorMouseOver,me);me.doc.un("mouseup",me.onMouseUp,me);delete me.doc;Ext.ButtonToggleManager.unregister(me);Ext.destroy(me.keyMap);delete me.keyMap}me.callParent()},setHandler:function(handler,scope){this.handler=handler;this.scope=scope;return this},setText:function(text){var me=this;me.text=text;if(me.el){me.btnInnerEl.update(text||"&#160;");me.setButtonCls()}me.doComponentLayout();return me},setIcon:function(icon){var me=this,iconEl=me.btnIconEl;me.icon=icon;if(iconEl){iconEl.setStyle("background-image",icon?"url("+icon+")":"");me.setButtonCls()}return me},getText:function(){return this.text},toggle:function(state,suppressEvent){var me=this;state=state===undefined?!me.pressed:!!state;if(state!==me.pressed){if(me.rendered){me[state?"addClsWithUI":"removeClsWithUI"](me.pressedCls)}me.btnEl.dom.setAttribute("aria-pressed",state);me.pressed=state;if(!suppressEvent){me.fireEvent("toggle",me,state);Ext.callback(me.toggleHandler,me.scope||me,[me,state])}}return me},maybeShowMenu:function(){var me=this;if(me.menu&&!me.hasVisibleMenu()&&!me.ignoreNextClick){me.showMenu()}},showMenu:function(){var me=this;if(me.rendered&&me.menu){if(me.tooltip&&me.getTipAttr()!="title"){Ext.tip.QuickTipManager.getQuickTip().cancelShow(me.btnEl)}if(me.menu.isVisible()){me.menu.hide()}me.menu.showBy(me.el,me.menuAlign)}return me},hideMenu:function(){if(this.hasVisibleMenu()){this.menu.hide()}return this},hasVisibleMenu:function(){var menu=this.menu;return menu&&menu.rendered&&menu.isVisible()},onRepeatClick:function(repeat,e){this.onClick(e)},onClick:function(e){var me=this;if(me.preventDefault||(me.disabled&&me.getHref())&&e){e.preventDefault()}if(e.button!==0){return}if(!me.disabled){me.doToggle();me.maybeShowMenu();me.fireHandler(e)}},fireHandler:function(e){var me=this,handler=me.handler;me.fireEvent("click",me,e);if(handler){handler.call(me.scope||me,me,e)}me.onBlur()},doToggle:function(){var me=this;if(me.enableToggle&&(me.allowDepress!==false||!me.pressed)){me.toggle()}},onMouseOver:function(e){var me=this;if(!me.disabled&&!e.within(me.el,true,true)){me.onMouseEnter(e)}},onMouseOut:function(e){var me=this;if(!e.within(me.el,true,true)){if(me.overMenuTrigger){me.onMenuTriggerOut(e)}me.onMouseLeave(e)}},onMouseMove:function(e){var me=this,el=me.el,over=me.overMenuTrigger,overlap,btnSize;if(me.split){if(me.arrowAlign==="right"){overlap=e.getX()-el.getX();btnSize=el.getWidth()}else{overlap=e.getY()-el.getY();btnSize=el.getHeight()}if(overlap>(btnSize-me.getTriggerSize())){if(!over){me.onMenuTriggerOver(e)}}else{if(over){me.onMenuTriggerOut(e)}}}},getTriggerSize:function(){var me=this,size=me.triggerSize,side,sideFirstLetter,undef;if(size===undef){side=me.arrowAlign;sideFirstLetter=side.charAt(0);size=me.triggerSize=me.el.getFrameWidth(sideFirstLetter)+me.btnWrap.getFrameWidth(sideFirstLetter)+(me.frameSize&&me.frameSize[side]||0)}return size},onMouseEnter:function(e){var me=this;me.addClsWithUI(me.overCls);me.fireEvent("mouseover",me,e)},onMouseLeave:function(e){var me=this;me.removeClsWithUI(me.overCls);me.fireEvent("mouseout",me,e)},onMenuTriggerOver:function(e){var me=this;me.overMenuTrigger=true;me.fireEvent("menutriggerover",me,me.menu,e)},onMenuTriggerOut:function(e){var me=this;delete me.overMenuTrigger;me.fireEvent("menutriggerout",me,me.menu,e)},enable:function(silent){var me=this;me.callParent(arguments);me.removeClsWithUI("disabled");return me},disable:function(silent){var me=this;me.callParent(arguments);me.addClsWithUI("disabled");me.removeClsWithUI(me.overCls);return me},setScale:function(scale){var me=this,ui=me.ui.replace("-"+me.scale,"");if(!Ext.Array.contains(me.allowedScales,scale)){throw ("#setScale: scale must be an allowed scale ("+me.allowedScales.join(", ")+")")}me.scale=scale;me.setUI(ui)},setUI:function(ui){var me=this;if(me.scale&&!ui.match(me.scale)){ui=ui+"-"+me.scale}me.callParent([ui])},onFocus:function(e){var me=this;if(!me.disabled){me.addClsWithUI(me.focusCls)}},onBlur:function(e){var me=this;me.removeClsWithUI(me.focusCls)},onMouseDown:function(e){var me=this;if(!me.disabled&&e.button===0){me.addClsWithUI(me.pressedCls);me.doc.on("mouseup",me.onMouseUp,me)}},onMouseUp:function(e){var me=this;if(e.button===0){if(!me.pressed){me.removeClsWithUI(me.pressedCls)}me.doc.un("mouseup",me.onMouseUp,me)}},onMenuShow:function(e){var me=this;me.ignoreNextClick=0;me.addClsWithUI(me.menuActiveCls);me.fireEvent("menushow",me,me.menu)},onMenuHide:function(e){var me=this;me.removeClsWithUI(me.menuActiveCls);me.ignoreNextClick=Ext.defer(me.restoreClick,250,me);me.fireEvent("menuhide",me,me.menu)},restoreClick:function(){this.ignoreNextClick=0},onDownKey:function(){var me=this;if(!me.disabled){if(me.menu){me.showMenu()}}},getPersistentBtnPadding:function(){var cls=Ext.button.Button,padding=cls.persistentPadding,btn,leftTop,btnEl,btnInnerEl;if(!padding){padding=cls.persistentPadding=[0,0,0,0];if(!Ext.isIE){btn=Ext.create("Ext.button.Button",{renderTo:Ext.getBody(),text:"test",style:"position:absolute;top:-999px;"});btnEl=btn.btnEl;btnInnerEl=btn.btnInnerEl;btnEl.setSize(null,null);leftTop=btnInnerEl.getOffsetsTo(btnEl);padding[0]=leftTop[1];padding[1]=btnEl.getWidth()-btnInnerEl.getWidth()-leftTop[0];padding[2]=btnEl.getHeight()-btnInnerEl.getHeight()-leftTop[1];padding[3]=leftTop[0];btn.destroy()}}return padding}},function(){var groups={};function toggleGroup(btn,state){var g,i,l;if(state){g=groups[btn.toggleGroup];for(i=0,l=g.length;i<l;i++){if(g[i]!==btn){g[i].toggle(false)}}}}Ext.ButtonToggleManager={register:function(btn){if(!btn.toggleGroup){return}var group=groups[btn.toggleGroup];if(!group){group=groups[btn.toggleGroup]=[]}group.push(btn);btn.on("toggle",toggleGroup)},unregister:function(btn){if(!btn.toggleGroup){return}var group=groups[btn.toggleGroup];if(group){Ext.Array.remove(group,btn);btn.un("toggle",toggleGroup)}},getPressed:function(group){var g=groups[group],i=0,len;if(g){for(len=g.length;i<len;i++){if(g[i].pressed===true){return g[i]}}}return null}}});Ext.define("Ext.layout.container.boxOverflow.Menu",{extend:"Ext.layout.container.boxOverflow.None",requires:["Ext.toolbar.Separator","Ext.button.Button"],alternateClassName:"Ext.layout.boxOverflow.Menu",noItemsMenuText:'<div class="'+Ext.baseCSSPrefix+'toolbar-no-items">(None)</div>',constructor:function(layout){var me=this;me.callParent(arguments);layout.beforeLayout=Ext.Function.createInterceptor(layout.beforeLayout,this.clearOverflow,this);me.afterCtCls=me.afterCtCls||Ext.baseCSSPrefix+"box-menu-"+layout.parallelAfter;me.menuItems=[]},onRemove:function(comp){Ext.Array.remove(this.menuItems,comp)},handleOverflow:function(calculations,targetSize){var me=this,layout=me.layout,methodName="get"+layout.parallelPrefixCap,newSize={},posArgs=[null,null];me.callParent(arguments);this.createMenu(calculations,targetSize);newSize[layout.perpendicularPrefix]=targetSize[layout.perpendicularPrefix];newSize[layout.parallelPrefix]=targetSize[layout.parallelPrefix]-me.afterCt[methodName]();posArgs[layout.perpendicularSizeIndex]=(calculations.meta.maxSize-me.menuTrigger["get"+layout.perpendicularPrefixCap]())/2;me.menuTrigger.setPosition.apply(me.menuTrigger,posArgs);return{targetSize:newSize}},clearOverflow:function(calculations,targetSize){var me=this,newWidth=targetSize?targetSize.width+(me.afterCt?me.afterCt.getWidth():0):0,items=me.menuItems,i=0,length=items.length,item;me.hideTrigger();for(;i<length;i++){items[i].show()}items.length=0;return targetSize?{targetSize:{height:targetSize.height,width:newWidth}}:null},showTrigger:function(){this.menuTrigger.show()},hideTrigger:function(){if(this.menuTrigger!==undefined){this.menuTrigger.hide()}},beforeMenuShow:function(menu){var me=this,items=me.menuItems,i=0,len=items.length,item,prev;var needsSep=function(group,prev){return group.isXType("buttongroup")&&!(prev instanceof Ext.toolbar.Separator)};me.clearMenu();menu.removeAll();for(;i<len;i++){item=items[i];if(!i&&(item instanceof Ext.toolbar.Separator)){continue}if(prev&&(needsSep(item,prev)||needsSep(prev,item))){menu.add("-")}me.addComponentToMenu(menu,item);prev=item}if(menu.items.length<1){menu.add(me.noItemsMenuText)}},createMenuConfig:function(component,hideOnClick){var config=Ext.apply({},component.initialConfig),group=component.toggleGroup;Ext.copyTo(config,component,["iconCls","icon","itemId","disabled","handler","scope","menu"]);Ext.apply(config,{text:component.overflowText||component.text,hideOnClick:hideOnClick,destroyMenu:false});if(group||component.enableToggle){Ext.apply(config,{group:group,checked:component.pressed,listeners:{checkchange:function(item,checked){component.toggle(checked)}}})}delete config.ownerCt;delete config.xtype;delete config.id;return config},addComponentToMenu:function(menu,component){var me=this;if(component instanceof Ext.toolbar.Separator){menu.add("-")}else{if(component.isComponent){if(component.isXType("splitbutton")){menu.add(me.createMenuConfig(component,true))}else{if(component.isXType("button")){menu.add(me.createMenuConfig(component,!component.menu))}else{if(component.isXType("buttongroup")){component.items.each(function(item){me.addComponentToMenu(menu,item)})}else{menu.add(Ext.create(Ext.getClassName(component),me.createMenuConfig(component)))}}}}}},clearMenu:function(){var menu=this.moreMenu;if(menu&&menu.items){menu.items.each(function(item){if(item.menu){delete item.menu}})}},createMenu:function(calculations,targetSize){var me=this,layout=me.layout,startProp=layout.parallelBefore,sizeProp=layout.parallelPrefix,available=targetSize[sizeProp],boxes=calculations.boxes,i=0,len=boxes.length,box;if(!me.menuTrigger){me.createInnerElements();me.menu=Ext.create("Ext.menu.Menu",{listeners:{scope:me,beforeshow:me.beforeMenuShow}});me.menuTrigger=Ext.create("Ext.button.Button",{ownerCt:me.layout.owner,iconCls:me.layout.owner.menuTriggerCls,ui:layout.owner instanceof Ext.toolbar.Toolbar?"default-toolbar":"default",menu:me.menu,getSplitCls:function(){return""},renderTo:me.afterCt})}me.showTrigger();available-=me.afterCt.getWidth();me.menuItems.length=0;for(;i<len;i++){box=boxes[i];if(box[startProp]+box[sizeProp]>available){me.menuItems.push(box.component);box.component.hide()}}},createInnerElements:function(){var me=this,target=me.layout.getRenderTarget();if(!this.afterCt){target.addCls(Ext.baseCSSPrefix+me.layout.direction+"-box-overflow-body");this.afterCt=target.insertSibling({cls:Ext.layout.container.Box.prototype.innerCls+" "+this.afterCtCls},"before")}},destroy:function(){Ext.destroy(this.menu,this.menuTrigger)}});Ext.define("Ext.util.Region",{requires:["Ext.util.Offset"],statics:{getRegion:function(el){return Ext.fly(el).getPageBox(true)},from:function(o){return new this(o.top,o.right,o.bottom,o.left)}},constructor:function(t,r,b,l){var me=this;me.y=me.top=me[1]=t;me.right=r;me.bottom=b;me.x=me.left=me[0]=l},contains:function(region){var me=this;return(region.x>=me.x&&region.right<=me.right&&region.y>=me.y&&region.bottom<=me.bottom)},intersect:function(region){var me=this,t=Math.max(me.y,region.y),r=Math.min(me.right,region.right),b=Math.min(me.bottom,region.bottom),l=Math.max(me.x,region.x);if(b>t&&r>l){return new this.self(t,r,b,l)}else{return false}},union:function(region){var me=this,t=Math.min(me.y,region.y),r=Math.max(me.right,region.right),b=Math.max(me.bottom,region.bottom),l=Math.min(me.x,region.x);return new this.self(t,r,b,l)},constrainTo:function(r){var me=this,constrain=Ext.Number.constrain;me.top=me.y=constrain(me.top,r.y,r.bottom);me.bottom=constrain(me.bottom,r.y,r.bottom);me.left=me.x=constrain(me.left,r.x,r.right);me.right=constrain(me.right,r.x,r.right);return me},adjust:function(t,r,b,l){var me=this;me.top=me.y+=t;me.left=me.x+=l;me.right+=r;me.bottom+=b;return me},getOutOfBoundOffset:function(axis,p){if(!Ext.isObject(axis)){if(axis=="x"){return this.getOutOfBoundOffsetX(p)}else{return this.getOutOfBoundOffsetY(p)}}else{p=axis;var d=Ext.create("Ext.util.Offset");d.x=this.getOutOfBoundOffsetX(p.x);d.y=this.getOutOfBoundOffsetY(p.y);return d}},getOutOfBoundOffsetX:function(p){if(p<=this.x){return this.x-p}else{if(p>=this.right){return this.right-p}}return 0},getOutOfBoundOffsetY:function(p){if(p<=this.y){return this.y-p}else{if(p>=this.bottom){return this.bottom-p}}return 0},isOutOfBound:function(axis,p){if(!Ext.isObject(axis)){if(axis=="x"){return this.isOutOfBoundX(p)}else{return this.isOutOfBoundY(p)}}else{p=axis;return(this.isOutOfBoundX(p.x)||this.isOutOfBoundY(p.y))}},isOutOfBoundX:function(p){return(p<this.x||p>this.right)},isOutOfBoundY:function(p){return(p<this.y||p>this.bottom)},restrict:function(axis,p,factor){if(Ext.isObject(axis)){var newP;factor=p;p=axis;if(p.copy){newP=p.copy()}else{newP={x:p.x,y:p.y}}newP.x=this.restrictX(p.x,factor);newP.y=this.restrictY(p.y,factor);return newP}else{if(axis=="x"){return this.restrictX(p,factor)}else{return this.restrictY(p,factor)}}},restrictX:function(p,factor){if(!factor){factor=1}if(p<=this.x){p-=(p-this.x)*factor}else{if(p>=this.right){p-=(p-this.right)*factor}}return p},restrictY:function(p,factor){if(!factor){factor=1}if(p<=this.y){p-=(p-this.y)*factor}else{if(p>=this.bottom){p-=(p-this.bottom)*factor}}return p},getSize:function(){return{width:this.right-this.x,height:this.bottom-this.y}},copy:function(){return new this.self(this.y,this.right,this.bottom,this.x)},copyFrom:function(p){var me=this;me.top=me.y=me[1]=p.y;me.right=p.right;me.bottom=p.bottom;me.left=me.x=me[0]=p.x;return this},toString:function(){return"Region["+this.top+","+this.right+","+this.bottom+","+this.left+"]"},translateBy:function(x,y){if(arguments.length==1){y=x.y;x=x.x}var me=this;me.top=me.y+=y;me.right+=x;me.bottom+=y;me.left=me.x+=x;return me},round:function(){var me=this;me.top=me.y=Math.round(me.y);me.right=Math.round(me.right);me.bottom=Math.round(me.bottom);me.left=me.x=Math.round(me.x);return me},equals:function(region){return(this.top==region.top&&this.right==region.right&&this.bottom==region.bottom&&this.left==region.left)}});Ext.define("Ext.dd.DragDropManager",{singleton:true,requires:["Ext.util.Region"],uses:["Ext.tip.QuickTipManager"],alternateClassName:["Ext.dd.DragDropMgr","Ext.dd.DDM"],ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initialized:false,locked:false,init:function(){this.initialized=true},POINT:0,INTERSECT:1,mode:0,_execOnAll:function(sMethod,args){for(var i in this.ids){for(var j in this.ids[i]){var oDD=this.ids[i][j];if(!this.isTypeOfDD(oDD)){continue}oDD[sMethod].apply(oDD,args)}}},_onLoad:function(){this.init();var Event=Ext.EventManager;Event.on(document,"mouseup",this.handleMouseUp,this,true);Event.on(document,"mousemove",this.handleMouseMove,this,true);Event.on(window,"unload",this._onUnload,this,true);Event.on(window,"resize",this._onResize,this,true)},_onResize:function(e){this._execOnAll("resetConstraints",[])},lock:function(){this.locked=true},unlock:function(){this.locked=false},isLocked:function(){return this.locked},locationCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:350,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,regDragDrop:function(oDD,sGroup){if(!this.initialized){this.init()}if(!this.ids[sGroup]){this.ids[sGroup]={}}this.ids[sGroup][oDD.id]=oDD},removeDDFromGroup:function(oDD,sGroup){if(!this.ids[sGroup]){this.ids[sGroup]={}}var obj=this.ids[sGroup];if(obj&&obj[oDD.id]){delete obj[oDD.id]}},_remove:function(oDD){for(var g in oDD.groups){if(g&&this.ids[g]&&this.ids[g][oDD.id]){delete this.ids[g][oDD.id]}}delete this.handleIds[oDD.id]},regHandle:function(sDDId,sHandleId){if(!this.handleIds[sDDId]){this.handleIds[sDDId]={}}this.handleIds[sDDId][sHandleId]=sHandleId},isDragDrop:function(id){return(this.getDDById(id))?true:false},getRelated:function(p_oDD,bTargetsOnly){var oDDs=[];for(var i in p_oDD.groups){for(var j in this.ids[i]){var dd=this.ids[i][j];if(!this.isTypeOfDD(dd)){continue}if(!bTargetsOnly||dd.isTarget){oDDs[oDDs.length]=dd}}}return oDDs},isLegalTarget:function(oDD,oTargetDD){var targets=this.getRelated(oDD,true);for(var i=0,len=targets.length;i<len;++i){if(targets[i].id==oTargetDD.id){return true}}return false},isTypeOfDD:function(oDD){return(oDD&&oDD.__ygDragDrop)},isHandle:function(sDDId,sHandleId){return(this.handleIds[sDDId]&&this.handleIds[sDDId][sHandleId])},getDDById:function(id){for(var i in this.ids){if(this.ids[i][id]){return this.ids[i][id]}}return null},handleMouseDown:function(e,oDD){if(Ext.tip.QuickTipManager){Ext.tip.QuickTipManager.ddDisable()}if(this.dragCurrent){this.handleMouseUp(e)}this.currentTarget=e.getTarget();this.dragCurrent=oDD;var el=oDD.getEl();this.startX=e.getPageX();this.startY=e.getPageY();this.deltaX=this.startX-el.offsetLeft;this.deltaY=this.startY-el.offsetTop;this.dragThreshMet=false;this.clickTimeout=setTimeout(function(){var DDM=Ext.dd.DragDropManager;DDM.startDrag(DDM.startX,DDM.startY)},this.clickTimeThresh)},startDrag:function(x,y){clearTimeout(this.clickTimeout);if(this.dragCurrent){this.dragCurrent.b4StartDrag(x,y);this.dragCurrent.startDrag(x,y)}this.dragThreshMet=true},handleMouseUp:function(e){if(Ext.tip&&Ext.tip.QuickTipManager){Ext.tip.QuickTipManager.ddEnable()}if(!this.dragCurrent){return}clearTimeout(this.clickTimeout);if(this.dragThreshMet){this.fireEvents(e,true)}else{}this.stopDrag(e);this.stopEvent(e)},stopEvent:function(e){if(this.stopPropagation){e.stopPropagation()}if(this.preventDefault){e.preventDefault()}},stopDrag:function(e){if(this.dragCurrent){if(this.dragThreshMet){this.dragCurrent.b4EndDrag(e);this.dragCurrent.endDrag(e)}this.dragCurrent.onMouseUp(e)}this.dragCurrent=null;this.dragOvers={}},handleMouseMove:function(e){if(!this.dragCurrent){return true}if(Ext.isIE&&(e.button!==0&&e.button!==1&&e.button!==2)){this.stopEvent(e);return this.handleMouseUp(e)}if(!this.dragThreshMet){var diffX=Math.abs(this.startX-e.getPageX());var diffY=Math.abs(this.startY-e.getPageY());if(diffX>this.clickPixelThresh||diffY>this.clickPixelThresh){this.startDrag(this.startX,this.startY)}}if(this.dragThreshMet){this.dragCurrent.b4Drag(e);this.dragCurrent.onDrag(e);if(!this.dragCurrent.moveOnly){this.fireEvents(e,false)}}this.stopEvent(e);return true},fireEvents:function(e,isDrop){var dc=this.dragCurrent;if(!dc||dc.isLocked()){return}var pt=e.getPoint();var oldOvers=[];var outEvts=[];var overEvts=[];var dropEvts=[];var enterEvts=[];for(var i in this.dragOvers){var ddo=this.dragOvers[i];if(!this.isTypeOfDD(ddo)){continue}if(!this.isOverTarget(pt,ddo,this.mode)){outEvts.push(ddo)}oldOvers[i]=true;delete this.dragOvers[i]}for(var sGroup in dc.groups){if("string"!=typeof sGroup){continue}for(i in this.ids[sGroup]){var oDD=this.ids[sGroup][i];if(!this.isTypeOfDD(oDD)){continue}if(oDD.isTarget&&!oDD.isLocked()&&((oDD!=dc)||(dc.ignoreSelf===false))){if(this.isOverTarget(pt,oDD,this.mode)){if(isDrop){dropEvts.push(oDD)}else{if(!oldOvers[oDD.id]){enterEvts.push(oDD)}else{overEvts.push(oDD)}this.dragOvers[oDD.id]=oDD}}}}}if(this.mode){if(outEvts.length){dc.b4DragOut(e,outEvts);dc.onDragOut(e,outEvts)}if(enterEvts.length){dc.onDragEnter(e,enterEvts)}if(overEvts.length){dc.b4DragOver(e,overEvts);dc.onDragOver(e,overEvts)}if(dropEvts.length){dc.b4DragDrop(e,dropEvts);dc.onDragDrop(e,dropEvts)}}else{var len=0;for(i=0,len=outEvts.length;i<len;++i){dc.b4DragOut(e,outEvts[i].id);dc.onDragOut(e,outEvts[i].id)}for(i=0,len=enterEvts.length;i<len;++i){dc.onDragEnter(e,enterEvts[i].id)}for(i=0,len=overEvts.length;i<len;++i){dc.b4DragOver(e,overEvts[i].id);dc.onDragOver(e,overEvts[i].id)}for(i=0,len=dropEvts.length;i<len;++i){dc.b4DragDrop(e,dropEvts[i].id);dc.onDragDrop(e,dropEvts[i].id)}}if(isDrop&&!dropEvts.length){dc.onInvalidDrop(e)}},getBestMatch:function(dds){var winner=null;var len=dds.length;if(len==1){winner=dds[0]}else{for(var i=0;i<len;++i){var dd=dds[i];if(dd.cursorIsOver){winner=dd;break}else{if(!winner||winner.overlap.getArea()<dd.overlap.getArea()){winner=dd}}}}return winner},refreshCache:function(groups){for(var sGroup in groups){if("string"!=typeof sGroup){continue}for(var i in this.ids[sGroup]){var oDD=this.ids[sGroup][i];if(this.isTypeOfDD(oDD)){var loc=this.getLocation(oDD);if(loc){this.locationCache[oDD.id]=loc}else{delete this.locationCache[oDD.id]}}}}},verifyEl:function(el){if(el){var parent;if(Ext.isIE){try{parent=el.offsetParent}catch(e){}}else{parent=el.offsetParent}if(parent){return true}}return false},getLocation:function(oDD){if(!this.isTypeOfDD(oDD)){return null}if(oDD.getRegion){return oDD.getRegion()}var el=oDD.getEl(),pos,x1,x2,y1,y2,t,r,b,l;try{pos=Ext.Element.getXY(el)}catch(e){}if(!pos){return null}x1=pos[0];x2=x1+el.offsetWidth;y1=pos[1];y2=y1+el.offsetHeight;t=y1-oDD.padding[0];r=x2+oDD.padding[1];b=y2+oDD.padding[2];l=x1-oDD.padding[3];return Ext.create("Ext.util.Region",t,r,b,l)},isOverTarget:function(pt,oTarget,intersect){var loc=this.locationCache[oTarget.id];if(!loc||!this.useCache){loc=this.getLocation(oTarget);this.locationCache[oTarget.id]=loc}if(!loc){return false}oTarget.cursorIsOver=loc.contains(pt);var dc=this.dragCurrent;if(!dc||!dc.getTargetCoord||(!intersect&&!dc.constrainX&&!dc.constrainY)){return oTarget.cursorIsOver}oTarget.overlap=null;var pos=dc.getTargetCoord(pt.x,pt.y);var el=dc.getDragEl();var curRegion=Ext.create("Ext.util.Region",pos.y,pos.x+el.offsetWidth,pos.y+el.offsetHeight,pos.x);var overlap=curRegion.intersect(loc);if(overlap){oTarget.overlap=overlap;return(intersect)?true:oTarget.cursorIsOver}else{return false}},_onUnload:function(e,me){Ext.dd.DragDropManager.unregAll()},unregAll:function(){if(this.dragCurrent){this.stopDrag();this.dragCurrent=null}this._execOnAll("unreg",[]);for(var i in this.elementCache){delete this.elementCache[i]}this.elementCache={};this.ids={}},elementCache:{},getElWrapper:function(id){var oWrapper=this.elementCache[id];if(!oWrapper||!oWrapper.el){oWrapper=this.elementCache[id]=new this.ElementWrapper(Ext.getDom(id))}return oWrapper},getElement:function(id){return Ext.getDom(id)},getCss:function(id){var el=Ext.getDom(id);return(el)?el.style:null},ElementWrapper:function(el){this.el=el||null;this.id=this.el&&el.id;this.css=this.el&&el.style},getPosX:function(el){return Ext.Element.getX(el)},getPosY:function(el){return Ext.Element.getY(el)},swapNode:function(n1,n2){if(n1.swapNode){n1.swapNode(n2)}else{var p=n2.parentNode;var s=n2.nextSibling;if(s==n1){p.insertBefore(n1,n2)}else{if(n2==n1.nextSibling){p.insertBefore(n2,n1)}else{n1.parentNode.replaceChild(n2,n1);p.insertBefore(n1,s)}}}},getScroll:function(){var doc=window.document,docEl=doc.documentElement,body=doc.body,top=0,left=0;if(Ext.isGecko4){top=window.scrollYOffset;left=window.scrollXOffset}else{if(docEl&&(docEl.scrollTop||docEl.scrollLeft)){top=docEl.scrollTop;left=docEl.scrollLeft}else{if(body){top=body.scrollTop;left=body.scrollLeft}}}return{top:top,left:left}},getStyle:function(el,styleProp){return Ext.fly(el).getStyle(styleProp)},getScrollTop:function(){return this.getScroll().top},getScrollLeft:function(){return this.getScroll().left},moveToEl:function(moveEl,targetEl){var aCoord=Ext.Element.getXY(targetEl);Ext.Element.setXY(moveEl,aCoord)},numericSort:function(a,b){return(a-b)},_timeoutCount:0,_addListeners:function(){if(document){this._onLoad()}else{if(this._timeoutCount>2000){}else{setTimeout(this._addListeners,10);if(document&&document.body){this._timeoutCount+=1}}}},handleWasClicked:function(node,id){if(this.isHandle(id,node.id)){return true}else{var p=node.parentNode;while(p){if(this.isHandle(id,p.id)){return true}else{p=p.parentNode}}}return false}},function(){this._addListeners()});Ext.define("Ext.layout.container.Box",{alias:["layout.box"],extend:"Ext.layout.container.Container",alternateClassName:"Ext.layout.BoxLayout",requires:["Ext.layout.container.boxOverflow.None","Ext.layout.container.boxOverflow.Menu","Ext.layout.container.boxOverflow.Scroller","Ext.util.Format","Ext.dd.DragDropManager"],defaultMargins:{top:0,right:0,bottom:0,left:0},padding:"0",pack:"start",type:"box",scrollOffset:0,itemCls:Ext.baseCSSPrefix+"box-item",targetCls:Ext.baseCSSPrefix+"box-layout-ct",innerCls:Ext.baseCSSPrefix+"box-inner",bindToOwnerCtContainer:true,availableSpaceOffset:0,reserveOffset:true,shrinkToFit:true,clearInnerCtOnLayout:false,flexSortFn:function(a,b){var maxParallelPrefix="max"+this.parallelPrefixCap,infiniteValue=Infinity;a=a.component[maxParallelPrefix]||infiniteValue;b=b.component[maxParallelPrefix]||infiniteValue;if(!isFinite(a)&&!isFinite(b)){return false}return a-b},minSizeSortFn:function(a,b){return b.available-a.available},constructor:function(config){var me=this;me.callParent(arguments);me.flexSortFn=Ext.Function.bind(me.flexSortFn,me);me.initOverflowHandler()},getChildBox:function(child){child=child.el||this.owner.getComponent(child).el;var size=child.getBox(false,true);return{left:size.left,top:size.top,width:size.width,height:size.height}},calculateChildBox:function(child){var me=this,boxes=me.calculateChildBoxes(me.getVisibleItems(),me.getLayoutTargetSize()).boxes,ln=boxes.length,i=0;child=me.owner.getComponent(child);for(;i<ln;i++){if(boxes[i].component===child){return boxes[i]}}},calculateChildBoxes:function(visibleItems,targetSize){var me=this,math=Math,mmax=math.max,infiniteValue=Infinity,undefinedValue,parallelPrefix=me.parallelPrefix,parallelPrefixCap=me.parallelPrefixCap,perpendicularPrefix=me.perpendicularPrefix,perpendicularPrefixCap=me.perpendicularPrefixCap,parallelMinString="min"+parallelPrefixCap,perpendicularMinString="min"+perpendicularPrefixCap,perpendicularMaxString="max"+perpendicularPrefixCap,parallelSize=targetSize[parallelPrefix]-me.scrollOffset,perpendicularSize=targetSize[perpendicularPrefix],padding=me.padding,parallelOffset=padding[me.parallelBefore],paddingParallel=parallelOffset+padding[me.parallelAfter],perpendicularOffset=padding[me.perpendicularLeftTop],paddingPerpendicular=perpendicularOffset+padding[me.perpendicularRightBottom],availPerpendicularSize=mmax(0,perpendicularSize-paddingPerpendicular),innerCtBorderWidth=me.innerCt.getBorderWidth(me.perpendicularLT+me.perpendicularRB),isStart=me.pack=="start",isCenter=me.pack=="center",isEnd=me.pack=="end",constrain=Ext.Number.constrain,visibleCount=visibleItems.length,nonFlexSize=0,totalFlex=0,desiredSize=0,minimumSize=0,maxSize=0,boxes=[],minSizes=[],calculatedWidth,i,child,childParallel,childPerpendicular,childMargins,childSize,minParallel,tmpObj,shortfall,tooNarrow,availableSpace,minSize,item,length,itemIndex,box,oldSize,newSize,reduction,diff,flexedBoxes,remainingSpace,remainingFlex,flexedSize,parallelMargins,calcs,offset,perpendicularMargins,stretchSize;for(i=0;i<visibleCount;i++){child=visibleItems[i];childPerpendicular=child[perpendicularPrefix];if(!child.flex||!(me.align=="stretch"||me.align=="stretchmax")){if(child.componentLayout.initialized!==true){me.layoutItem(child)}}childMargins=child.margins;parallelMargins=childMargins[me.parallelBefore]+childMargins[me.parallelAfter];tmpObj={component:child,margins:childMargins};if(child.flex){totalFlex+=child.flex;childParallel=undefinedValue}else{if(!(child[parallelPrefix]&&childPerpendicular)){childSize=child.getSize()}childParallel=child[parallelPrefix]||childSize[parallelPrefix];childPerpendicular=childPerpendicular||childSize[perpendicularPrefix]}nonFlexSize+=parallelMargins+(childParallel||0);desiredSize+=parallelMargins+(child.flex?child[parallelMinString]||0:childParallel);minimumSize+=parallelMargins+(child[parallelMinString]||childParallel||0);if(typeof childPerpendicular!="number"){childPerpendicular=child["get"+perpendicularPrefixCap]()}maxSize=mmax(maxSize,mmax(childPerpendicular,child[perpendicularMinString]||0)+childMargins[me.perpendicularLeftTop]+childMargins[me.perpendicularRightBottom]);tmpObj[parallelPrefix]=childParallel||undefinedValue;tmpObj.dirtySize=child.componentLayout.lastComponentSize?(tmpObj[parallelPrefix]!==child.componentLayout.lastComponentSize[parallelPrefix]):false;tmpObj[perpendicularPrefix]=childPerpendicular||undefinedValue;boxes.push(tmpObj)}if(!me.autoSize){shortfall=desiredSize-parallelSize;tooNarrow=minimumSize>parallelSize}availableSpace=mmax(0,parallelSize-nonFlexSize-paddingParallel-(me.reserveOffset?me.availableSpaceOffset:0));if(tooNarrow){for(i=0;i<visibleCount;i++){box=boxes[i];minSize=visibleItems[i][parallelMinString]||visibleItems[i][parallelPrefix]||box[parallelPrefix];box.dirtySize=box.dirtySize||box[parallelPrefix]!=minSize;box[parallelPrefix]=minSize}}else{if(shortfall>0){for(i=0;i<visibleCount;i++){item=visibleItems[i];minSize=item[parallelMinString]||0;if(item.flex){box=boxes[i];box.dirtySize=box.dirtySize||box[parallelPrefix]!=minSize;box[parallelPrefix]=minSize}else{if(me.shrinkToFit){minSizes.push({minSize:minSize,available:boxes[i][parallelPrefix]-minSize,index:i})}}}Ext.Array.sort(minSizes,me.minSizeSortFn);for(i=0,length=minSizes.length;i<length;i++){itemIndex=minSizes[i].index;if(itemIndex==undefinedValue){continue}item=visibleItems[itemIndex];minSize=minSizes[i].minSize;box=boxes[itemIndex];oldSize=box[parallelPrefix];newSize=mmax(minSize,oldSize-math.ceil(shortfall/(length-i)));reduction=oldSize-newSize;box.dirtySize=box.dirtySize||box[parallelPrefix]!=newSize;box[parallelPrefix]=newSize;shortfall-=reduction}tooNarrow=(shortfall>0)}else{remainingSpace=availableSpace;remainingFlex=totalFlex;flexedBoxes=[];for(i=0;i<visibleCount;i++){child=visibleItems[i];if(isStart&&child.flex){flexedBoxes.push(boxes[Ext.Array.indexOf(visibleItems,child)])}}Ext.Array.sort(flexedBoxes,me.flexSortFn);for(i=0;i<flexedBoxes.length;i++){calcs=flexedBoxes[i];child=calcs.component;childMargins=calcs.margins;flexedSize=math.ceil((child.flex/remainingFlex)*remainingSpace);flexedSize=Math.max(child["min"+parallelPrefixCap]||0,math.min(child["max"+parallelPrefixCap]||infiniteValue,flexedSize));remainingSpace-=flexedSize;remainingFlex-=child.flex;calcs.dirtySize=calcs.dirtySize||calcs[parallelPrefix]!=flexedSize;calcs[parallelPrefix]=flexedSize}}}if(isCenter){parallelOffset+=availableSpace/2}else{if(isEnd){parallelOffset+=availableSpace}}if(me.owner.dock&&(Ext.isIE6||Ext.isIE7||Ext.isIEQuirks)&&!me.owner.width&&me.direction=="vertical"){calculatedWidth=maxSize+me.owner.el.getPadding("lr")+me.owner.el.getBorderWidth("lr");if(me.owner.frameSize){calculatedWidth+=me.owner.frameSize.left+me.owner.frameSize.right}availPerpendicularSize=Math.min(availPerpendicularSize,targetSize.width=maxSize+padding.left+padding.right)}for(i=0;i<visibleCount;i++){child=visibleItems[i];calcs=boxes[i];childMargins=calcs.margins;perpendicularMargins=childMargins[me.perpendicularLeftTop]+childMargins[me.perpendicularRightBottom];parallelOffset+=childMargins[me.parallelBefore];calcs[me.parallelBefore]=parallelOffset;calcs[me.perpendicularLeftTop]=perpendicularOffset+childMargins[me.perpendicularLeftTop];if(me.align=="stretch"){stretchSize=constrain(availPerpendicularSize-perpendicularMargins,child[perpendicularMinString]||0,child[perpendicularMaxString]||infiniteValue);calcs.dirtySize=calcs.dirtySize||calcs[perpendicularPrefix]!=stretchSize;calcs[perpendicularPrefix]=stretchSize}else{if(me.align=="stretchmax"){stretchSize=constrain(maxSize-perpendicularMargins,child[perpendicularMinString]||0,child[perpendicularMaxString]||infiniteValue);calcs.dirtySize=calcs.dirtySize||calcs[perpendicularPrefix]!=stretchSize;calcs[perpendicularPrefix]=stretchSize}else{if(me.align==me.alignCenteringString){diff=mmax(availPerpendicularSize,maxSize)-innerCtBorderWidth-calcs[perpendicularPrefix];if(diff>0){calcs[me.perpendicularLeftTop]=perpendicularOffset+Math.round(diff/2)}}}}parallelOffset+=(calcs[parallelPrefix]||0)+childMargins[me.parallelAfter]}return{boxes:boxes,meta:{calculatedWidth:calculatedWidth,maxSize:maxSize,nonFlexSize:nonFlexSize,desiredSize:desiredSize,minimumSize:minimumSize,shortfall:shortfall,tooNarrow:tooNarrow}}},onRemove:function(comp){this.callParent(arguments);if(this.overflowHandler){this.overflowHandler.onRemove(comp)}},initOverflowHandler:function(){var handler=this.overflowHandler;if(typeof handler=="string"){handler={type:handler}}var handlerType="None";if(handler&&handler.type!==undefined){handlerType=handler.type}var constructor=Ext.layout.container.boxOverflow[handlerType];if(constructor[this.type]){constructor=constructor[this.type]}this.overflowHandler=Ext.create("Ext.layout.container.boxOverflow."+handlerType,this,handler)},onLayout:function(){this.callParent();if(this.clearInnerCtOnLayout===true&&this.adjustmentPass!==true){this.innerCt.setSize(null,null)}var me=this,targetSize=me.getLayoutTargetSize(),items=me.getVisibleItems(),calcs=me.calculateChildBoxes(items,targetSize),boxes=calcs.boxes,meta=calcs.meta,handler,method,results;if(me.autoSize&&calcs.meta.desiredSize){targetSize[me.parallelPrefix]=calcs.meta.desiredSize}if(meta.shortfall>0){handler=me.overflowHandler;method=meta.tooNarrow?"handleOverflow":"clearOverflow";results=handler[method](calcs,targetSize);if(results){if(results.targetSize){targetSize=results.targetSize}if(results.recalculate){items=me.getVisibleItems();calcs=me.calculateChildBoxes(items,targetSize);boxes=calcs.boxes}}}else{me.overflowHandler.clearOverflow()}me.layoutTargetLastSize=targetSize;me.childBoxCache=calcs;me.updateInnerCtSize(targetSize,calcs);me.updateChildBoxes(boxes);me.handleTargetOverflow(targetSize)},animCallback:Ext.emptyFn,updateChildBoxes:function(boxes){var me=this,i=0,length=boxes.length,animQueue=[],dd=Ext.dd.DDM.getDDById(me.innerCt.id),oldBox,newBox,changed,comp,boxAnim,animCallback;for(;i<length;i++){newBox=boxes[i];comp=newBox.component;if(dd&&(dd.getDragEl()===comp.el.dom)){continue}changed=false;oldBox=me.getChildBox(comp);if(me.animate){animCallback=me.animate.callback||me.animate;boxAnim={layoutAnimation:true,target:comp,from:{},to:{},listeners:{}};if(!isNaN(newBox.width)&&(newBox.width!=oldBox.width)){changed=true;boxAnim.to.width=newBox.width}if(!isNaN(newBox.height)&&(newBox.height!=oldBox.height)){changed=true;boxAnim.to.height=newBox.height}if(!isNaN(newBox.left)&&(newBox.left!=oldBox.left)){changed=true;boxAnim.to.left=newBox.left}if(!isNaN(newBox.top)&&(newBox.top!=oldBox.top)){changed=true;boxAnim.to.top=newBox.top}if(changed){animQueue.push(boxAnim)}}else{if(newBox.dirtySize){if(newBox.width!==oldBox.width||newBox.height!==oldBox.height){me.setItemSize(comp,newBox.width,newBox.height)}}if(isNaN(newBox.left)||isNaN(newBox.top)){continue}comp.setPosition(newBox.left,newBox.top)}}length=animQueue.length;if(length){var afterAnimate=function(anim){length-=1;if(!length){me.animCallback(anim);me.layoutBusy=false;if(Ext.isFunction(animCallback)){animCallback()}}};var beforeAnimate=function(){me.layoutBusy=true};for(i=0,length=animQueue.length;i<length;i++){boxAnim=animQueue[i];boxAnim.listeners.afteranimate=afterAnimate;if(!i){boxAnim.listeners.beforeanimate=beforeAnimate}if(me.animate.duration){boxAnim.duration=me.animate.duration}comp=boxAnim.target;delete boxAnim.target;comp.stopAnimation();comp.animate(boxAnim)}}},updateInnerCtSize:function(tSize,calcs){var me=this,mmax=Math.max,align=me.align,padding=me.padding,width=tSize.width,height=tSize.height,meta=calcs.meta,innerCtWidth,innerCtHeight;if(me.direction=="horizontal"){innerCtWidth=width;innerCtHeight=meta.maxSize+padding.top+padding.bottom+me.innerCt.getBorderWidth("tb");if(align=="stretch"){innerCtHeight=height}else{if(align=="middle"){innerCtHeight=mmax(height,innerCtHeight)}}}else{innerCtHeight=height;innerCtWidth=meta.maxSize+padding.left+padding.right+me.innerCt.getBorderWidth("lr");if(align=="stretch"){innerCtWidth=width}else{if(align=="center"){innerCtWidth=mmax(width,innerCtWidth)}}}me.getRenderTarget().setSize(innerCtWidth||undefined,innerCtHeight||undefined);if(meta.calculatedWidth&&me.owner.el.getWidth()>meta.calculatedWidth){me.owner.el.setWidth(meta.calculatedWidth)}if(me.innerCt.dom.scrollTop){me.innerCt.dom.scrollTop=0}},handleTargetOverflow:function(previousTargetSize){var target=this.getTarget(),overflow=target.getStyle("overflow"),newTargetSize;if(overflow&&overflow!="hidden"&&!this.adjustmentPass){newTargetSize=this.getLayoutTargetSize();if(newTargetSize.width!=previousTargetSize.width||newTargetSize.height!=previousTargetSize.height){this.adjustmentPass=true;this.onLayout();return true}}delete this.adjustmentPass},isValidParent:function(item,target,position){var itemEl=item.el?item.el.dom:Ext.getDom(item);return(itemEl&&this.innerCt&&itemEl.parentNode===this.innerCt.dom)||false},getRenderTarget:function(){if(!this.innerCt){this.innerCt=this.getTarget().createChild({cls:this.innerCls,role:"presentation"});this.padding=Ext.util.Format.parseBox(this.padding)}return this.innerCt},renderItem:function(item,target){this.callParent(arguments);var me=this,itemEl=item.getEl(),style=itemEl.dom.style,margins=item.margins||item.margin;if(margins){if(Ext.isString(margins)||Ext.isNumber(margins)){margins=Ext.util.Format.parseBox(margins)}else{Ext.applyIf(margins,{top:0,right:0,bottom:0,left:0})}}else{margins=Ext.apply({},me.defaultMargins)}margins.top+=itemEl.getMargin("t");margins.right+=itemEl.getMargin("r");margins.bottom+=itemEl.getMargin("b");margins.left+=itemEl.getMargin("l");margins.height=margins.top+margins.bottom;margins.width=margins.left+margins.right;style.marginTop=style.marginRight=style.marginBottom=style.marginLeft="0";item.margins=margins},destroy:function(){Ext.destroy(this.innerCt,this.overflowHandler);this.callParent(arguments)}});Ext.define("Ext.layout.container.HBox",{alias:["layout.hbox"],extend:"Ext.layout.container.Box",alternateClassName:"Ext.layout.HBoxLayout",align:"top",alignCenteringString:"middle",type:"hbox",direction:"horizontal",parallelSizeIndex:0,perpendicularSizeIndex:1,parallelPrefix:"width",parallelPrefixCap:"Width",parallelLT:"l",parallelRB:"r",parallelBefore:"left",parallelBeforeCap:"Left",parallelAfter:"right",parallelPosition:"x",perpendicularPrefix:"height",perpendicularPrefixCap:"Height",perpendicularLT:"t",perpendicularRB:"b",perpendicularLeftTop:"top",perpendicularRightBottom:"bottom",perpendicularPosition:"y",configureItem:function(item){if(item.flex){item.layoutManagedWidth=1}else{item.layoutManagedWidth=2}if(this.align==="stretch"||this.align==="stretchmax"){item.layoutManagedHeight=1}else{item.layoutManagedHeight=2}this.callParent(arguments)}});Ext.define("Ext.layout.container.VBox",{alias:["layout.vbox"],extend:"Ext.layout.container.Box",alternateClassName:"Ext.layout.VBoxLayout",align:"left",alignCenteringString:"center",type:"vbox",direction:"vertical",parallelSizeIndex:1,perpendicularSizeIndex:0,parallelPrefix:"height",parallelPrefixCap:"Height",parallelLT:"t",parallelRB:"b",parallelBefore:"top",parallelBeforeCap:"Top",parallelAfter:"bottom",parallelPosition:"y",perpendicularPrefix:"width",perpendicularPrefixCap:"Width",perpendicularLT:"l",perpendicularRB:"r",perpendicularLeftTop:"left",perpendicularRightBottom:"right",perpendicularPosition:"x",configureItem:function(item){if(item.flex){item.layoutManagedHeight=1}else{item.layoutManagedHeight=2}if(this.align==="stretch"||this.align==="stretchmax"){item.layoutManagedWidth=1}else{item.layoutManagedWidth=2}this.callParent(arguments)}});Ext.define("Ext.FocusManager",{singleton:true,alternateClassName:"Ext.FocusMgr",mixins:{observable:"Ext.util.Observable"},requires:["Ext.ComponentManager","Ext.ComponentQuery","Ext.util.HashMap","Ext.util.KeyNav"],enabled:false,focusElementCls:Ext.baseCSSPrefix+"focus-element",focusFrameCls:Ext.baseCSSPrefix+"focus-frame",whitelist:["textfield"],tabIndexWhitelist:["a","button","embed","frame","iframe","img","input","object","select","textarea"],constructor:function(){var me=this,CQ=Ext.ComponentQuery;me.addEvents("beforecomponentfocus","componentfocus","disable","enable");me.keyNav=Ext.create("Ext.util.KeyNav",Ext.getDoc(),{disabled:true,scope:me,backspace:me.focusLast,enter:me.navigateIn,esc:me.navigateOut,tab:me.navigateSiblings});me.focusData={};me.subscribers=Ext.create("Ext.util.HashMap");me.focusChain={};Ext.apply(CQ.pseudos,{focusable:function(cmps){var len=cmps.length,results=[],i=0,c,isFocusable=function(x){return x&&x.focusable!==false&&CQ.is(x,"[rendered]:not([destroying]):not([isDestroyed]):not([disabled]){isVisible(true)}{el && c.el.dom && c.el.isVisible()}")};for(;i<len;i++){c=cmps[i];if(isFocusable(c)){results.push(c)}}return results},nextFocus:function(cmps,idx,step){step=step||1;idx=parseInt(idx,10);var len=cmps.length,i=idx+step,c;for(;i!=idx;i+=step){if(i>=len){i=0}else{if(i<0){i=len-1}}c=cmps[i];if(CQ.is(c,":focusable")){return[c]}else{if(c.placeholder&&CQ.is(c.placeholder,":focusable")){return[c.placeholder]}}}return[]},prevFocus:function(cmps,idx){return this.nextFocus(cmps,idx,-1)},root:function(cmps){var len=cmps.length,results=[],i=0,c;for(;i<len;i++){c=cmps[i];if(!c.ownerCt){results.push(c)}}return results}})},addXTypeToWhitelist:function(xtype){var me=this;if(Ext.isArray(xtype)){Ext.Array.forEach(xtype,me.addXTypeToWhitelist,me);return}if(!Ext.Array.contains(me.whitelist,xtype)){me.whitelist.push(xtype)}},clearComponent:function(cmp){clearTimeout(this.cmpFocusDelay);if(!cmp.isDestroyed){cmp.blur()}},disable:function(){var me=this;if(!me.enabled){return}delete me.options;me.enabled=false;Ext.ComponentManager.all.un("add",me.onComponentCreated,me);me.removeDOM();me.keyNav.disable();me.setFocusAll(false);me.fireEvent("disable",me)},enable:function(options){var me=this;if(options===true){options={focusFrame:true}}me.options=options=options||{};if(me.enabled){return}Ext.ComponentManager.all.on("add",me.onComponentCreated,me);me.initDOM(options);me.keyNav.enable();me.setFocusAll(true,options);me.focusEl.focus();delete me.focusedCmp;me.enabled=true;me.fireEvent("enable",me)},focusLast:function(e){var me=this;if(me.isWhitelisted(me.focusedCmp)){return true}if(me.previousFocusedCmp){me.previousFocusedCmp.focus()}},getRootComponents:function(){var me=this,CQ=Ext.ComponentQuery,inline=CQ.query(":focusable:root:not([floating])"),floating=CQ.query(":focusable:root[floating]");floating.sort(function(a,b){return a.el.getZIndex()>b.el.getZIndex()});return floating.concat(inline)},initDOM:function(options){var me=this,sp="&#160",cls=me.focusFrameCls;if(!Ext.isReady){Ext.onReady(me.initDOM,me);return}if(!me.focusEl){me.focusEl=Ext.getBody().createChild({tabIndex:"-1",cls:me.focusElementCls,html:sp})}if(!me.focusFrame&&options.focusFrame){me.focusFrame=Ext.getBody().createChild({cls:cls,children:[{cls:cls+"-top"},{cls:cls+"-bottom"},{cls:cls+"-left"},{cls:cls+"-right"}],style:"top: -100px; left: -100px;"});me.focusFrame.setVisibilityMode(Ext.Element.DISPLAY);me.focusFrameWidth=2;me.focusFrame.hide().setLeftTop(0,0)}},isWhitelisted:function(cmp){return cmp&&Ext.Array.some(this.whitelist,function(x){return cmp.isXType(x)})},navigateIn:function(e){var me=this,focusedCmp=me.focusedCmp,rootCmps,firstChild;if(!focusedCmp){rootCmps=me.getRootComponents();if(rootCmps.length){rootCmps[0].focus()}}else{firstChild=Ext.ComponentQuery.query(">:focusable",focusedCmp)[0];if(firstChild){firstChild.focus()}else{if(Ext.isFunction(focusedCmp.onClick)){e.button=0;focusedCmp.onClick(e);focusedCmp.focus()}}}},navigateOut:function(e){var me=this,parent;if(!me.focusedCmp||!(parent=me.focusedCmp.up(":focusable"))){me.focusEl.focus()}else{parent.focus()}return true},navigateSiblings:function(e,source,parent){var me=this,src=source||me,key=e.getKey(),EO=Ext.EventObject,goBack=e.shiftKey||key==EO.LEFT||key==EO.UP,checkWhitelist=key==EO.LEFT||key==EO.RIGHT||key==EO.UP||key==EO.DOWN,nextSelector=goBack?"prev":"next",idx,next,focusedCmp;focusedCmp=(src.focusedCmp&&src.focusedCmp.comp)||src.focusedCmp;if(!focusedCmp&&!parent){return}if(checkWhitelist&&me.isWhitelisted(focusedCmp)){return true}parent=parent||focusedCmp.up();if(parent){idx=focusedCmp?Ext.Array.indexOf(parent.getRefItems(),focusedCmp):-1;next=Ext.ComponentQuery.query(">:"+nextSelector+"Focus("+idx+")",parent)[0];if(next&&focusedCmp!==next){next.focus();return next}}},onComponentBlur:function(cmp,e){var me=this;if(me.focusedCmp===cmp){me.previousFocusedCmp=cmp;delete me.focusedCmp}if(me.focusFrame){me.focusFrame.hide()}},onComponentCreated:function(hash,id,cmp){this.setFocus(cmp,true,this.options)},onComponentDestroy:function(cmp){this.setFocus(cmp,false)},onComponentFocus:function(cmp,e){var me=this,chain=me.focusChain;if(!Ext.ComponentQuery.is(cmp,":focusable")){me.clearComponent(cmp);if(chain[cmp.id]){return}var parent=cmp.up();if(parent){chain[cmp.id]=true;parent.focus()}return}me.focusChain={};clearTimeout(me.cmpFocusDelay);if(arguments.length!==2){me.cmpFocusDelay=Ext.defer(me.onComponentFocus,90,me,[cmp,e]);return}if(me.fireEvent("beforecomponentfocus",me,cmp,me.previousFocusedCmp)===false){me.clearComponent(cmp);return}me.focusedCmp=cmp;if(me.shouldShowFocusFrame(cmp)){var cls="."+me.focusFrameCls+"-",ff=me.focusFrame,fw=me.focusFrameWidth,box=cmp.el.getPageBox(),bt=box.top,bl=box.left,bw=box.width,bh=box.height,ft=ff.child(cls+"top"),fb=ff.child(cls+"bottom"),fl=ff.child(cls+"left"),fr=ff.child(cls+"right");ft.setWidth(bw).setLeftTop(bl,bt);fb.setWidth(bw).setLeftTop(bl,bt+bh-fw);fl.setHeight(bh-fw-fw).setLeftTop(bl,bt+fw);fr.setHeight(bh-fw-fw).setLeftTop(bl+bw-fw,bt+fw);ff.show()}me.fireEvent("componentfocus",me,cmp,me.previousFocusedCmp)},onComponentHide:function(cmp){var me=this,CQ=Ext.ComponentQuery,cmpHadFocus=false,focusedCmp,parent;if(me.focusedCmp){focusedCmp=CQ.query("[id="+me.focusedCmp.id+"]",cmp)[0];cmpHadFocus=me.focusedCmp.id===cmp.id||focusedCmp;if(focusedCmp){me.clearComponent(focusedCmp)}}me.clearComponent(cmp);if(cmpHadFocus){parent=CQ.query("^:focusable",cmp)[0];if(parent){parent.focus()}}},removeDOM:function(){var me=this;if(me.enabled||me.subscribers.length){return}Ext.destroy(me.focusEl,me.focusFrame);delete me.focusEl;delete me.focusFrame;delete me.focusFrameWidth},removeXTypeFromWhitelist:function(xtype){var me=this;if(Ext.isArray(xtype)){Ext.Array.forEach(xtype,me.removeXTypeFromWhitelist,me);return}Ext.Array.remove(me.whitelist,xtype)},setFocus:function(cmp,focusable,options){var me=this,el,dom,data,needsTabIndex=function(n){return !Ext.Array.contains(me.tabIndexWhitelist,n.tagName.toLowerCase())&&n.tabIndex<=0};options=options||{};if(!cmp.rendered){cmp.on("afterrender",Ext.pass(me.setFocus,arguments,me),me,{single:true});return}el=cmp.getFocusEl();dom=el.dom;if((focusable&&!me.focusData[cmp.id])||(!focusable&&me.focusData[cmp.id])){if(focusable){data={focusFrame:options.focusFrame};if(needsTabIndex(dom)){data.tabIndex=dom.tabIndex;dom.tabIndex=-1}el.on({focus:data.focusFn=Ext.bind(me.onComponentFocus,me,[cmp],0),blur:data.blurFn=Ext.bind(me.onComponentBlur,me,[cmp],0),scope:me});cmp.on({hide:me.onComponentHide,close:me.onComponentHide,beforedestroy:me.onComponentDestroy,scope:me});me.focusData[cmp.id]=data}else{data=me.focusData[cmp.id];if("tabIndex" in data){dom.tabIndex=data.tabIndex}el.un("focus",data.focusFn,me);el.un("blur",data.blurFn,me);cmp.un("hide",me.onComponentHide,me);cmp.un("close",me.onComponentHide,me);cmp.un("beforedestroy",me.onComponentDestroy,me);delete me.focusData[cmp.id]}}},setFocusAll:function(focusable,options){var me=this,cmps=Ext.ComponentManager.all.getArray(),len=cmps.length,cmp,i=0;for(;i<len;i++){me.setFocus(cmps[i],focusable,options)}},setupSubscriberKeys:function(container,keys){var me=this,el=container.getFocusEl(),scope=keys.scope,handlers={backspace:me.focusLast,enter:me.navigateIn,esc:me.navigateOut,scope:me},navSiblings=function(e){if(me.focusedCmp===container){return me.navigateSiblings(e,me,container)}else{return me.navigateSiblings(e)}};Ext.iterate(keys,function(key,cb){handlers[key]=function(e){var ret=navSiblings(e);if(Ext.isFunction(cb)&&cb.call(scope||container,e,ret)===true){return true}return ret}},me);return Ext.create("Ext.util.KeyNav",el,handlers)},shouldShowFocusFrame:function(cmp){var me=this,opts=me.options||{};if(!me.focusFrame||!cmp){return false}if(opts.focusFrame){return true}if(me.focusData[cmp.id].focusFrame){return true}return false},subscribe:function(container,options){var me=this,EA=Ext.Array,data={},subs=me.subscribers,safeSetFocus=function(cmp){if(cmp.isContainer&&!subs.containsKey(cmp.id)){EA.forEach(cmp.query(">"),safeSetFocus);me.setFocus(cmp,true,options);cmp.on("add",data.onAdd,me)}else{if(!cmp.isContainer){me.setFocus(cmp,true,options)}}};if(!container||!container.isContainer){return}if(!container.rendered){container.on("afterrender",Ext.pass(me.subscribe,arguments,me),me,{single:true});return}me.initDOM(options);data.keyNav=me.setupSubscriberKeys(container,options.keys);data.onAdd=function(ct,cmp,idx){safeSetFocus(cmp)};container.on("beforedestroy",me.unsubscribe,me);safeSetFocus(container);subs.add(container.id,data)},unsubscribe:function(container){var me=this,EA=Ext.Array,subs=me.subscribers,data,safeSetFocus=function(cmp){if(cmp.isContainer&&!subs.containsKey(cmp.id)){EA.forEach(cmp.query(">"),safeSetFocus);me.setFocus(cmp,false);cmp.un("add",data.onAdd,me)}else{if(!cmp.isContainer){me.setFocus(cmp,false)}}};if(!container||!subs.containsKey(container.id)){return}data=subs.get(container.id);data.keyNav.destroy();container.un("beforedestroy",me.unsubscribe,me);subs.removeAtKey(container.id);safeSetFocus(container);me.removeDOM()}});Ext.define("Ext.toolbar.Toolbar",{extend:"Ext.container.Container",requires:["Ext.toolbar.Fill","Ext.layout.container.HBox","Ext.layout.container.VBox","Ext.FocusManager"],uses:["Ext.toolbar.Separator"],alias:"widget.toolbar",alternateClassName:"Ext.Toolbar",isToolbar:true,baseCls:Ext.baseCSSPrefix+"toolbar",ariaRole:"toolbar",defaultType:"button",vertical:false,enableOverflow:false,menuTriggerCls:Ext.baseCSSPrefix+"toolbar-more-icon",trackMenus:true,itemCls:Ext.baseCSSPrefix+"toolbar-item",initComponent:function(){var me=this,keys;if(!me.layout&&me.enableOverflow){me.layout={overflowHandler:"Menu"}}if(me.dock==="right"||me.dock==="left"){me.vertical=true}me.layout=Ext.applyIf(Ext.isString(me.layout)?{type:me.layout}:me.layout||{},{type:me.vertical?"vbox":"hbox",align:me.vertical?"stretchmax":"middle",clearInnerCtOnLayout:true});if(me.vertical){me.addClsWithUI("vertical")}if(me.ui==="footer"){me.ignoreBorderManagement=true}me.callParent();me.addEvents("overflowchange");keys=me.vertical?["up","down"]:["left","right"];Ext.FocusManager.subscribe(me,{keys:keys})},getRefItems:function(deep){var me=this,items=me.callParent(arguments),layout=me.layout,handler;if(deep&&me.enableOverflow){handler=layout.overflowHandler;if(handler&&handler.menu){items=items.concat(handler.menu.getRefItems(deep))}}return items},lookupComponent:function(c){if(Ext.isString(c)){var shortcut=Ext.toolbar.Toolbar.shortcuts[c];if(shortcut){c={xtype:shortcut}}else{c={xtype:"tbtext",text:c}}this.applyDefaults(c)}return this.callParent(arguments)},applyDefaults:function(c){if(!Ext.isString(c)){c=this.callParent(arguments);var d=this.internalDefaults;if(c.events){Ext.applyIf(c.initialConfig,d);Ext.apply(c,d)}else{Ext.applyIf(c,d)}}return c},trackMenu:function(item,remove){if(this.trackMenus&&item.menu){var method=remove?"mun":"mon",me=this;me[method](item,"mouseover",me.onButtonOver,me);me[method](item,"menushow",me.onButtonMenuShow,me);me[method](item,"menuhide",me.onButtonMenuHide,me)}},constructButton:function(item){return item.events?item:this.createComponent(item,item.split?"splitbutton":this.defaultType)},onBeforeAdd:function(component){if(component.is("field")||(component.is("button")&&this.ui!="footer")){component.ui=component.ui+"-toolbar"}if(component instanceof Ext.toolbar.Separator){component.setUI((this.vertical)?"vertical":"horizontal")}this.callParent(arguments)},onAdd:function(component){this.callParent(arguments);this.trackMenu(component);if(this.disabled){component.disable()}},onRemove:function(c){this.callParent(arguments);this.trackMenu(c,true)},onButtonOver:function(btn){if(this.activeMenuBtn&&this.activeMenuBtn!=btn){this.activeMenuBtn.hideMenu();btn.showMenu();this.activeMenuBtn=btn}},onButtonMenuShow:function(btn){this.activeMenuBtn=btn},onButtonMenuHide:function(btn){delete this.activeMenuBtn}},function(){this.shortcuts={"-":"tbseparator"," ":"tbspacer","->":"tbfill"}});Ext.define("Ext.panel.AbstractPanel",{extend:"Ext.container.Container",requires:["Ext.util.MixedCollection","Ext.Element","Ext.toolbar.Toolbar"],baseCls:Ext.baseCSSPrefix+"panel",isPanel:true,componentLayout:"dock",defaultDockWeights:{top:1,left:3,right:5,bottom:7},renderTpl:['<div id="{id}-body" class="{baseCls}-body<tpl if="bodyCls"> {bodyCls}</tpl>',' {baseCls}-body-{ui}<tpl if="uiCls">','<tpl for="uiCls"> {parent.baseCls}-body-{parent.ui}-{.}</tpl>','</tpl>"<tpl if="bodyStyle"> style="{bodyStyle}"</tpl>>',"</div>"],border:true,initComponent:function(){var me=this;me.addEvents("bodyresize");me.addChildEls("body");if(me.frame&&me.border&&me.bodyBorder===undefined){me.bodyBorder=false}if(me.frame&&me.border&&(me.bodyBorder===false||me.bodyBorder===0)){me.manageBodyBorders=true}me.callParent()},initItems:function(){var me=this,items=me.dockedItems;me.callParent();me.dockedItems=Ext.create("Ext.util.MixedCollection",false,me.getComponentId);if(items){me.addDocked(items)}},getDockedComponent:function(comp){if(Ext.isObject(comp)){comp=comp.getItemId()}return this.dockedItems.get(comp)},getComponent:function(comp){var component=this.callParent(arguments);if(component===undefined&&!Ext.isNumber(comp)){component=this.getDockedComponent(comp)}return component},initBodyStyles:function(){var me=this,bodyStyle=me.bodyStyle,styles=[],Element=Ext.Element,prop;if(Ext.isFunction(bodyStyle)){bodyStyle=bodyStyle()}if(Ext.isString(bodyStyle)){styles=bodyStyle.split(";")}else{for(prop in bodyStyle){if(bodyStyle.hasOwnProperty(prop)){styles.push(prop+":"+bodyStyle[prop])}}}if(me.bodyPadding!==undefined){styles.push("padding: "+Element.unitizeBox((me.bodyPadding===true)?5:me.bodyPadding))}if(me.frame&&me.bodyBorder){if(!Ext.isNumber(me.bodyBorder)){me.bodyBorder=1}styles.push("border-width: "+Element.unitizeBox(me.bodyBorder))}delete me.bodyStyle;return styles.length?styles.join(";"):undefined},initBodyCls:function(){var me=this,cls="",bodyCls=me.bodyCls;if(bodyCls){Ext.each(bodyCls,function(v){cls+=" "+v});delete me.bodyCls}return cls.length>0?cls:undefined},initRenderData:function(){return Ext.applyIf(this.callParent(),{bodyStyle:this.initBodyStyles(),bodyCls:this.initBodyCls()})},addDocked:function(items,pos){var me=this,i=0,item,length;items=me.prepareItems(items);length=items.length;for(;i<length;i++){item=items[i];item.dock=item.dock||"top";if(me.border===false){}if(pos!==undefined){me.dockedItems.insert(pos+i,item)}else{me.dockedItems.add(item)}item.onAdded(me,i);me.onDockedAdd(item)}me.componentLayout.childrenChanged=true;if(me.rendered&&!me.suspendLayout){me.doComponentLayout()}return items},onDockedAdd:Ext.emptyFn,onDockedRemove:Ext.emptyFn,insertDocked:function(pos,items){this.addDocked(items,pos)},removeDocked:function(item,autoDestroy){var me=this,layout,hasLayout;if(!me.dockedItems.contains(item)){return item}layout=me.componentLayout;hasLayout=layout&&me.rendered;if(hasLayout){layout.onRemove(item)}me.dockedItems.remove(item);item.onRemoved();me.onDockedRemove(item);if(autoDestroy===true||(autoDestroy!==false&&me.autoDestroy)){item.destroy()}else{if(hasLayout){layout.afterRemove(item)}}me.componentLayout.childrenChanged=true;if(!me.destroying&&!me.suspendLayout){me.doComponentLayout()}return item},getDockedItems:function(cqSelector){var me=this,defaultWeight=me.defaultDockWeights,dockedItems;if(me.dockedItems&&me.dockedItems.items.length){if(cqSelector){dockedItems=Ext.ComponentQuery.query(cqSelector,me.dockedItems.items)}else{dockedItems=me.dockedItems.items.slice()}Ext.Array.sort(dockedItems,function(a,b){var aw=a.weight||defaultWeight[a.dock],bw=b.weight||defaultWeight[b.dock];if(Ext.isNumber(aw)&&Ext.isNumber(bw)){return aw-bw}return 0});return dockedItems}return[]},addUIClsToElement:function(cls,force){var me=this,result=me.callParent(arguments),classes=[Ext.baseCSSPrefix+cls,me.baseCls+"-body-"+cls,me.baseCls+"-body-"+me.ui+"-"+cls],array,i;if(!force&&me.rendered){if(me.bodyCls){me.body.addCls(me.bodyCls)}else{me.body.addCls(classes)}}else{if(me.bodyCls){array=me.bodyCls.split(" ");for(i=0;i<classes.length;i++){if(!Ext.Array.contains(array,classes[i])){array.push(classes[i])}}me.bodyCls=array.join(" ")}else{me.bodyCls=classes.join(" ")}}return result},removeUIClsFromElement:function(cls,force){var me=this,result=me.callParent(arguments),classes=[Ext.baseCSSPrefix+cls,me.baseCls+"-body-"+cls,me.baseCls+"-body-"+me.ui+"-"+cls],array,i;if(!force&&me.rendered){if(me.bodyCls){me.body.removeCls(me.bodyCls)}else{me.body.removeCls(classes)}}else{if(me.bodyCls){array=me.bodyCls.split(" ");for(i=0;i<classes.length;i++){Ext.Array.remove(array,classes[i])}me.bodyCls=array.join(" ")}}return result},addUIToElement:function(force){var me=this,cls=me.baseCls+"-body-"+me.ui,array;me.callParent(arguments);if(!force&&me.rendered){if(me.bodyCls){me.body.addCls(me.bodyCls)}else{me.body.addCls(cls)}}else{if(me.bodyCls){array=me.bodyCls.split(" ");if(!Ext.Array.contains(array,cls)){array.push(cls)}me.bodyCls=array.join(" ")}else{me.bodyCls=cls}}},removeUIFromElement:function(){var me=this,cls=me.baseCls+"-body-"+me.ui,array;me.callParent(arguments);if(me.rendered){if(me.bodyCls){me.body.removeCls(me.bodyCls)}else{me.body.removeCls(cls)}}else{if(me.bodyCls){array=me.bodyCls.split(" ");Ext.Array.remove(array,cls);me.bodyCls=array.join(" ")}else{me.bodyCls=cls}}},getTargetEl:function(){return this.body},getRefItems:function(deep){var items=this.callParent(arguments),dockedItems=this.getDockedItems(deep?"*,* *":undefined),ln=dockedItems.length,i=0,item;for(;i<ln;i++){item=dockedItems[i];if(item.dock==="right"||item.dock==="bottom"){break}}return Ext.Array.splice(dockedItems,0,i).concat(items).concat(dockedItems)},beforeDestroy:function(){var docked=this.dockedItems,c;if(docked){while((c=docked.first())){this.removeDocked(c,true)}}this.callParent()},setBorder:function(border){var me=this;me.border=(border!==undefined)?border:true;if(me.rendered){me.doComponentLayout()}}});Ext.define("Ext.panel.Header",{extend:"Ext.container.Container",uses:["Ext.panel.Tool","Ext.draw.Component","Ext.util.CSS"],alias:"widget.header",isHeader:true,defaultType:"tool",indicateDrag:false,weight:-1,renderTpl:['<div id="{id}-body" class="{baseCls}-body<tpl if="bodyCls"> {bodyCls}</tpl>','<tpl if="uiCls">','<tpl for="uiCls"> {parent.baseCls}-body-{parent.ui}-{.}</tpl>','</tpl>"','<tpl if="bodyStyle"> style="{bodyStyle}"</tpl>></div>'],initComponent:function(){var me=this,ruleStyle,rule,style,titleTextEl,ui;me.indicateDragCls=me.baseCls+"-draggable";me.title=me.title||"&#160;";me.tools=me.tools||[];me.items=me.items||[];me.orientation=me.orientation||"horizontal";me.dock=(me.dock)?me.dock:(me.orientation=="horizontal")?"top":"left";me.addClsWithUI(me.orientation);me.addClsWithUI(me.dock);me.addChildEls("body");if(!Ext.isEmpty(me.iconCls)){me.initIconCmp();me.items.push(me.iconCmp)}if(me.orientation=="vertical"){if(Ext.isIE6||Ext.isIE7){me.width=this.width||24}else{if(Ext.isIEQuirks){me.width=this.width||25}}me.layout={type:"vbox",align:"center",clearInnerCtOnLayout:true,bindToOwnerCtContainer:false};me.textConfig={cls:me.baseCls+"-text",type:"text",text:me.title,rotate:{degrees:90}};ui=me.ui;if(Ext.isArray(ui)){ui=ui[0]}ruleStyle="."+me.baseCls+"-text-"+ui;if(Ext.scopeResetCSS){ruleStyle="."+Ext.baseCSSPrefix+"reset "+ruleStyle}rule=Ext.util.CSS.getRule(ruleStyle);if(rule){style=rule.style}if(style){Ext.apply(me.textConfig,{"font-family":style.fontFamily,"font-weight":style.fontWeight,"font-size":style.fontSize,fill:style.color})}me.titleCmp=Ext.create("Ext.draw.Component",{ariaRole:"heading",focusable:false,viewBox:false,flex:1,autoSize:true,margins:"5 0 0 0",items:[me.textConfig],renderSelectors:{textEl:"."+me.baseCls+"-text"}})}else{me.layout={type:"hbox",align:"middle",clearInnerCtOnLayout:true,bindToOwnerCtContainer:false};me.titleCmp=Ext.create("Ext.Component",{xtype:"component",ariaRole:"heading",focusable:false,flex:1,cls:me.baseCls+"-text-container",renderTpl:['<span id="{id}-textEl" class="{cls}-text {cls}-text-{ui}">{title}</span>'],renderData:{title:me.title,cls:me.baseCls,ui:me.ui},childEls:["textEl"]})}me.items.push(me.titleCmp);me.items=me.items.concat(me.tools);this.callParent()},initIconCmp:function(){this.iconCmp=Ext.create("Ext.Component",{focusable:false,renderTpl:['<img id="{id}-iconEl" alt="" src="{blank}" class="{cls}-icon {iconCls}"/>'],renderData:{blank:Ext.BLANK_IMAGE_URL,cls:this.baseCls,iconCls:this.iconCls,orientation:this.orientation},childEls:["iconEl"],iconCls:this.iconCls})},afterRender:function(){var me=this;me.el.unselectable();if(me.indicateDrag){me.el.addCls(me.indicateDragCls)}me.mon(me.el,{click:me.onClick,scope:me});me.callParent()},afterLayout:function(){var me=this;me.callParent(arguments);if(Ext.isIE7){me.el.repaint()}},addUIClsToElement:function(cls,force){var me=this,result=me.callParent(arguments),classes=[me.baseCls+"-body-"+cls,me.baseCls+"-body-"+me.ui+"-"+cls],array,i;if(!force&&me.rendered){if(me.bodyCls){me.body.addCls(me.bodyCls)}else{me.body.addCls(classes)}}else{if(me.bodyCls){array=me.bodyCls.split(" ");for(i=0;i<classes.length;i++){if(!Ext.Array.contains(array,classes[i])){array.push(classes[i])}}me.bodyCls=array.join(" ")}else{me.bodyCls=classes.join(" ")}}return result},removeUIClsFromElement:function(cls,force){var me=this,result=me.callParent(arguments),classes=[me.baseCls+"-body-"+cls,me.baseCls+"-body-"+me.ui+"-"+cls],array,i;if(!force&&me.rendered){if(me.bodyCls){me.body.removeCls(me.bodyCls)}else{me.body.removeCls(classes)}}else{if(me.bodyCls){array=me.bodyCls.split(" ");for(i=0;i<classes.length;i++){Ext.Array.remove(array,classes[i])}me.bodyCls=array.join(" ")}}return result},addUIToElement:function(force){var me=this,array,cls;me.callParent(arguments);cls=me.baseCls+"-body-"+me.ui;if(!force&&me.rendered){if(me.bodyCls){me.body.addCls(me.bodyCls)}else{me.body.addCls(cls)}}else{if(me.bodyCls){array=me.bodyCls.split(" ");if(!Ext.Array.contains(array,cls)){array.push(cls)}me.bodyCls=array.join(" ")}else{me.bodyCls=cls}}if(!force&&me.titleCmp&&me.titleCmp.rendered&&me.titleCmp.textEl){me.titleCmp.textEl.addCls(me.baseCls+"-text-"+me.ui)}},removeUIFromElement:function(){var me=this,array,cls;me.callParent(arguments);cls=me.baseCls+"-body-"+me.ui;if(me.rendered){if(me.bodyCls){me.body.removeCls(me.bodyCls)}else{me.body.removeCls(cls)}}else{if(me.bodyCls){array=me.bodyCls.split(" ");Ext.Array.remove(array,cls);me.bodyCls=array.join(" ")}else{me.bodyCls=cls}}if(me.titleCmp&&me.titleCmp.rendered&&me.titleCmp.textEl){me.titleCmp.textEl.removeCls(me.baseCls+"-text-"+me.ui)}},onClick:function(e){if(!e.getTarget(Ext.baseCSSPrefix+"tool")){this.fireEvent("click",e)}},getTargetEl:function(){return this.body||this.frameBody||this.el},setTitle:function(title){var me=this;if(me.rendered){if(me.titleCmp.rendered){if(me.titleCmp.surface){me.title=title||"";var sprite=me.titleCmp.surface.items.items[0],surface=me.titleCmp.surface;surface.remove(sprite);me.textConfig.type="text";me.textConfig.text=title;sprite=surface.add(me.textConfig);sprite.setAttributes({rotate:{degrees:90}},true);me.titleCmp.autoSizeSurface()}else{me.title=title||"&#160;";me.titleCmp.textEl.update(me.title)}}else{me.titleCmp.on({render:function(){me.setTitle(title)},single:true})}}else{me.on({render:function(){me.layout.layout();me.setTitle(title)},single:true})}},setIconCls:function(cls){var me=this,isEmpty=!cls||!cls.length,iconCmp=me.iconCmp,el;me.iconCls=cls;if(!me.iconCmp&&!isEmpty){me.initIconCmp();me.insert(0,me.iconCmp)}else{if(iconCmp){if(isEmpty){me.iconCmp.destroy()}else{el=iconCmp.iconEl;el.removeCls(iconCmp.iconCls);el.addCls(cls);iconCmp.iconCls=cls}}}},addTool:function(tool){this.tools.push(this.add(tool))},onAdd:function(component,index){this.callParent([arguments]);if(component instanceof Ext.panel.Tool){component.bindTo(this.ownerCt);this.tools[component.type]=component}}});Ext.define("Ext.fx.target.Element",{extend:"Ext.fx.target.Target",type:"element",getElVal:function(el,attr,val){if(val==undefined){if(attr==="x"){val=el.getX()}else{if(attr==="y"){val=el.getY()}else{if(attr==="scrollTop"){val=el.getScroll().top}else{if(attr==="scrollLeft"){val=el.getScroll().left}else{if(attr==="height"){val=el.getHeight()}else{if(attr==="width"){val=el.getWidth()}else{val=el.getStyle(attr)}}}}}}}return val},getAttr:function(attr,val){var el=this.target;return[[el,this.getElVal(el,attr,val)]]},setAttr:function(targetData){var target=this.target,ln=targetData.length,attrs,attr,o,i,j,ln2,element,value;for(i=0;i<ln;i++){attrs=targetData[i].attrs;for(attr in attrs){if(attrs.hasOwnProperty(attr)){ln2=attrs[attr].length;for(j=0;j<ln2;j++){o=attrs[attr][j];element=o[0];value=o[1];if(attr==="x"){element.setX(value)}else{if(attr==="y"){element.setY(value)}else{if(attr==="scrollTop"){element.scrollTo("top",value)}else{if(attr==="scrollLeft"){element.scrollTo("left",value)}else{element.setStyle(attr,value)}}}}}}}}}});Ext.define("Ext.fx.target.CompositeElement",{extend:"Ext.fx.target.Element",isComposite:true,constructor:function(target){target.id=target.id||Ext.id(null,"ext-composite-");this.callParent([target])},getAttr:function(attr,val){var out=[],target=this.target;target.each(function(el){out.push([el,this.getElVal(el,attr,val)])},this);return out}});Ext.define("Ext.fx.Manager",{singleton:true,requires:["Ext.util.MixedCollection","Ext.fx.target.Element","Ext.fx.target.CompositeElement","Ext.fx.target.Sprite","Ext.fx.target.CompositeSprite","Ext.fx.target.Component"],mixins:{queue:"Ext.fx.Queue"},constructor:function(){this.items=Ext.create("Ext.util.MixedCollection");this.mixins.queue.constructor.call(this)},interval:16,forceJS:true,createTarget:function(target){var me=this,useCSS3=!me.forceJS&&Ext.supports.Transitions,targetObj;me.useCSS3=useCSS3;if(Ext.isString(target)){target=Ext.get(target)}if(target&&target.tagName){target=Ext.get(target);targetObj=Ext.create("Ext.fx.target.Element"+(useCSS3?"CSS":""),target);me.targets.add(targetObj);return targetObj}if(Ext.isObject(target)){if(target.dom){targetObj=Ext.create("Ext.fx.target.Element"+(useCSS3?"CSS":""),target)}else{if(target.isComposite){targetObj=Ext.create("Ext.fx.target.CompositeElement"+(useCSS3?"CSS":""),target)}else{if(target.isSprite){targetObj=Ext.create("Ext.fx.target.Sprite",target)}else{if(target.isCompositeSprite){targetObj=Ext.create("Ext.fx.target.CompositeSprite",target)}else{if(target.isComponent){targetObj=Ext.create("Ext.fx.target.Component",target)}else{if(target.isAnimTarget){return target}else{return null}}}}}}me.targets.add(targetObj);return targetObj}else{return null}},addAnim:function(anim){var items=this.items,task=this.task;items.add(anim);if(!task&&items.length){task=this.task={run:this.runner,interval:this.interval,scope:this};Ext.TaskManager.start(task)}},removeAnim:function(anim){var items=this.items,task=this.task;items.remove(anim);if(task&&!items.length){Ext.TaskManager.stop(task);delete this.task}},startingFilter:function(o){return o.paused===false&&o.running===false&&o.iterations>0},runningFilter:function(o){return o.paused===false&&o.running===true&&o.isAnimator!==true},runner:function(){var me=this,items=me.items;me.targetData={};me.targetArr={};me.timestamp=new Date();items.filterBy(me.startingFilter).each(me.startAnim,me);items.filterBy(me.runningFilter).each(me.runAnim,me);me.applyPendingAttrs()},startAnim:function(anim){anim.start(this.timestamp)},runAnim:function(anim){if(!anim){return}var me=this,targetId=anim.target.getId(),useCSS3=me.useCSS3&&anim.target.type=="element",elapsedTime=me.timestamp-anim.startTime,target,o;this.collectTargetData(anim,elapsedTime,useCSS3);if(useCSS3){anim.target.setAttr(me.targetData[targetId],true);me.targetData[targetId]=[];me.collectTargetData(anim,anim.duration,useCSS3);anim.paused=true;target=anim.target.target;if(anim.target.isComposite){target=anim.target.target.last()}o={};o[Ext.supports.CSS3TransitionEnd]=anim.lastFrame;o.scope=anim;o.single=true;target.on(o)}else{if(elapsedTime>=anim.duration){me.applyPendingAttrs(true);delete me.targetData[targetId];delete me.targetArr[targetId];anim.lastFrame()}}},collectTargetData:function(anim,elapsedTime,useCSS3){var targetId=anim.target.getId(),targetData=this.targetData[targetId],data;if(!targetData){targetData=this.targetData[targetId]=[];this.targetArr[targetId]=anim.target}data={duration:anim.duration,easing:(useCSS3&&anim.reverse)?anim.easingFn.reverse().toCSS3():anim.easing,attrs:{}};Ext.apply(data.attrs,anim.runAnim(elapsedTime));targetData.push(data)},applyPendingAttrs:function(isLastFrame){var targetData=this.targetData,targetArr=this.targetArr,targetId;for(targetId in targetData){if(targetData.hasOwnProperty(targetId)){targetArr[targetId].setAttr(targetData[targetId],false,isLastFrame)}}}});Ext.define("Ext.fx.Animator",{mixins:{observable:"Ext.util.Observable"},requires:["Ext.fx.Manager"],isAnimator:true,duration:250,delay:0,delayStart:0,dynamic:false,easing:"ease",running:false,paused:false,damper:1,iterations:1,currentIteration:0,keyframeStep:0,animKeyFramesRE:/^(from|to|\d+%?)$/,constructor:function(config){var me=this;config=Ext.apply(me,config||{});me.config=config;me.id=Ext.id(null,"ext-animator-");me.addEvents("beforeanimate","keyframe","afteranimate");me.mixins.observable.constructor.call(me,config);me.timeline=[];me.createTimeline(me.keyframes);if(me.target){me.applyAnimator(me.target);Ext.fx.Manager.addAnim(me)}},sorter:function(a,b){return a.pct-b.pct},createTimeline:function(keyframes){var me=this,attrs=[],to=me.to||{},duration=me.duration,prevMs,ms,i,ln,pct,anim,nextAnim,attr;for(pct in keyframes){if(keyframes.hasOwnProperty(pct)&&me.animKeyFramesRE.test(pct)){attr={attrs:Ext.apply(keyframes[pct],to)};if(pct=="from"){pct=0}else{if(pct=="to"){pct=100}}attr.pct=parseInt(pct,10);attrs.push(attr)}}Ext.Array.sort(attrs,me.sorter);ln=attrs.length;for(i=0;i<ln;i++){prevMs=(attrs[i-1])?duration*(attrs[i-1].pct/100):0;ms=duration*(attrs[i].pct/100);me.timeline.push({duration:ms-prevMs,attrs:attrs[i].attrs})}},applyAnimator:function(target){var me=this,anims=[],timeline=me.timeline,reverse=me.reverse,ln=timeline.length,anim,easing,damper,initial,attrs,lastAttrs,i;if(me.fireEvent("beforeanimate",me)!==false){for(i=0;i<ln;i++){anim=timeline[i];attrs=anim.attrs;easing=attrs.easing||me.easing;damper=attrs.damper||me.damper;delete attrs.easing;delete attrs.damper;anim=Ext.create("Ext.fx.Anim",{target:target,easing:easing,damper:damper,duration:anim.duration,paused:true,to:attrs});anims.push(anim)}me.animations=anims;me.target=anim.target;for(i=0;i<ln-1;i++){anim=anims[i];anim.nextAnim=anims[i+1];anim.on("afteranimate",function(){this.nextAnim.paused=false});anim.on("afteranimate",function(){this.fireEvent("keyframe",this,++this.keyframeStep)},me)}anims[ln-1].on("afteranimate",function(){this.lastFrame()},me)}},start:function(startTime){var me=this,delay=me.delay,delayStart=me.delayStart,delayDelta;if(delay){if(!delayStart){me.delayStart=startTime;return}else{delayDelta=startTime-delayStart;if(delayDelta<delay){return}else{startTime=new Date(delayStart.getTime()+delay)}}}if(me.fireEvent("beforeanimate",me)!==false){me.startTime=startTime;me.running=true;me.animations[me.keyframeStep].paused=false}},lastFrame:function(){var me=this,iter=me.iterations,iterCount=me.currentIteration;iterCount++;if(iterCount<iter){me.startTime=new Date();me.currentIteration=iterCount;me.keyframeStep=0;me.applyAnimator(me.target);me.animations[me.keyframeStep].paused=false}else{me.currentIteration=0;me.end()}},end:function(){var me=this;me.fireEvent("afteranimate",me,me.startTime,new Date()-me.startTime)}});Ext.ns("Ext.fx");Ext.require("Ext.fx.CubicBezier",function(){var math=Math,pi=math.PI,pow=math.pow,sin=math.sin,sqrt=math.sqrt,abs=math.abs,backInSeed=1.70158;Ext.fx.Easing={};Ext.apply(Ext.fx.Easing,{linear:function(n){return n},ease:function(n){var q=0.07813-n/2,alpha=-0.25,Q=sqrt(0.0066+q*q),x=Q-q,X=pow(abs(x),1/3)*(x<0?-1:1),y=-Q-q,Y=pow(abs(y),1/3)*(y<0?-1:1),t=X+Y+0.25;return pow(1-t,2)*3*t*0.1+(1-t)*3*t*t+t*t*t},easeIn:function(n){return pow(n,1.7)},easeOut:function(n){return pow(n,0.48)},easeInOut:function(n){var q=0.48-n/1.04,Q=sqrt(0.1734+q*q),x=Q-q,X=pow(abs(x),1/3)*(x<0?-1:1),y=-Q-q,Y=pow(abs(y),1/3)*(y<0?-1:1),t=X+Y+0.5;return(1-t)*3*t*t+t*t*t},backIn:function(n){return n*n*((backInSeed+1)*n-backInSeed)},backOut:function(n){n=n-1;return n*n*((backInSeed+1)*n+backInSeed)+1},elasticIn:function(n){if(n===0||n===1){return n}var p=0.3,s=p/4;return pow(2,-10*n)*sin((n-s)*(2*pi)/p)+1},elasticOut:function(n){return 1-Ext.fx.Easing.elasticIn(1-n)},bounceIn:function(n){return 1-Ext.fx.Easing.bounceOut(1-n)},bounceOut:function(n){var s=7.5625,p=2.75,l;if(n<(1/p)){l=s*n*n}else{if(n<(2/p)){n-=(1.5/p);l=s*n*n+0.75}else{if(n<(2.5/p)){n-=(2.25/p);l=s*n*n+0.9375}else{n-=(2.625/p);l=s*n*n+0.984375}}}return l}});Ext.apply(Ext.fx.Easing,{"back-in":Ext.fx.Easing.backIn,"back-out":Ext.fx.Easing.backOut,"ease-in":Ext.fx.Easing.easeIn,"ease-out":Ext.fx.Easing.easeOut,"elastic-in":Ext.fx.Easing.elasticIn,"elastic-out":Ext.fx.Easing.elasticIn,"bounce-in":Ext.fx.Easing.bounceIn,"bounce-out":Ext.fx.Easing.bounceOut,"ease-in-out":Ext.fx.Easing.easeInOut})});Ext.define("Ext.draw.Draw",{singleton:true,requires:["Ext.draw.Color"],pathToStringRE:/,?([achlmqrstvxz]),?/gi,pathCommandRE:/([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig,pathValuesRE:/(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/ig,stopsRE:/^(\d+%?)$/,radian:Math.PI/180,availableAnimAttrs:{along:"along",blur:null,"clip-rect":"csv",cx:null,cy:null,fill:"color","fill-opacity":null,"font-size":null,height:null,opacity:null,path:"path",r:null,rotation:"csv",rx:null,ry:null,scale:"csv",stroke:"color","stroke-opacity":null,"stroke-width":null,translation:"csv",width:null,x:null,y:null},is:function(o,type){type=String(type).toLowerCase();return(type=="object"&&o===Object(o))||(type=="undefined"&&typeof o==type)||(type=="null"&&o===null)||(type=="array"&&Array.isArray&&Array.isArray(o))||(Object.prototype.toString.call(o).toLowerCase().slice(8,-1))==type},ellipsePath:function(sprite){var attr=sprite.attr;return Ext.String.format("M{0},{1}A{2},{3},0,1,1,{0},{4}A{2},{3},0,1,1,{0},{1}z",attr.x,attr.y-attr.ry,attr.rx,attr.ry,attr.y+attr.ry)},rectPath:function(sprite){var attr=sprite.attr;if(attr.radius){return Ext.String.format("M{0},{1}l{2},0a{3},{3},0,0,1,{3},{3}l0,{5}a{3},{3},0,0,1,{4},{3}l{6},0a{3},{3},0,0,1,{4},{4}l0,{7}a{3},{3},0,0,1,{3},{4}z",attr.x+attr.radius,attr.y,attr.width-attr.radius*2,attr.radius,-attr.radius,attr.height-attr.radius*2,attr.radius*2-attr.width,attr.radius*2-attr.height)}else{return Ext.String.format("M{0},{1}l{2},0,0,{3},{4},0z",attr.x,attr.y,attr.width,attr.height,-attr.width)}},path2string:function(){return this.join(",").replace(Ext.draw.Draw.pathToStringRE,"$1")},pathToString:function(arrayPath){return arrayPath.join(",").replace(Ext.draw.Draw.pathToStringRE,"$1")},parsePathString:function(pathString){if(!pathString){return null}var paramCounts={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},data=[],me=this;if(me.is(pathString,"array")&&me.is(pathString[0],"array")){data=me.pathClone(pathString)}if(!data.length){String(pathString).replace(me.pathCommandRE,function(a,b,c){var params=[],name=b.toLowerCase();c.replace(me.pathValuesRE,function(a,b){b&&params.push(+b)});if(name=="m"&&params.length>2){data.push([b].concat(Ext.Array.splice(params,0,2)));name="l";b=(b=="m")?"l":"L"}while(params.length>=paramCounts[name]){data.push([b].concat(Ext.Array.splice(params,0,paramCounts[name])));if(!paramCounts[name]){break}}})}data.toString=me.path2string;return data},mapPath:function(path,matrix){if(!matrix){return path}var x,y,i,ii,j,jj,pathi;path=this.path2curve(path);for(i=0,ii=path.length;i<ii;i++){pathi=path[i];for(j=1,jj=pathi.length;j<jj-1;j+=2){x=matrix.x(pathi[j],pathi[j+1]);y=matrix.y(pathi[j],pathi[j+1]);pathi[j]=x;pathi[j+1]=y}}return path},pathClone:function(pathArray){var res=[],j,jj,i,ii;if(!this.is(pathArray,"array")||!this.is(pathArray&&pathArray[0],"array")){pathArray=this.parsePathString(pathArray)}for(i=0,ii=pathArray.length;i<ii;i++){res[i]=[];for(j=0,jj=pathArray[i].length;j<jj;j++){res[i][j]=pathArray[i][j]}}res.toString=this.path2string;return res},pathToAbsolute:function(pathArray){if(!this.is(pathArray,"array")||!this.is(pathArray&&pathArray[0],"array")){pathArray=this.parsePathString(pathArray)}var res=[],x=0,y=0,mx=0,my=0,i=0,ln=pathArray.length,r,pathSegment,j,ln2;if(ln&&pathArray[0][0]=="M"){x=+pathArray[0][1];y=+pathArray[0][2];mx=x;my=y;i++;res[0]=["M",x,y]}for(;i<ln;i++){r=res[i]=[];pathSegment=pathArray[i];if(pathSegment[0]!=pathSegment[0].toUpperCase()){r[0]=pathSegment[0].toUpperCase();switch(r[0]){case"A":r[1]=pathSegment[1];r[2]=pathSegment[2];r[3]=pathSegment[3];r[4]=pathSegment[4];r[5]=pathSegment[5];r[6]=+(pathSegment[6]+x);r[7]=+(pathSegment[7]+y);break;case"V":r[1]=+pathSegment[1]+y;break;case"H":r[1]=+pathSegment[1]+x;break;case"M":mx=+pathSegment[1]+x;my=+pathSegment[2]+y;default:j=1;ln2=pathSegment.length;for(;j<ln2;j++){r[j]=+pathSegment[j]+((j%2)?x:y)}}}else{j=0;ln2=pathSegment.length;for(;j<ln2;j++){res[i][j]=pathSegment[j]}}switch(r[0]){case"Z":x=mx;y=my;break;case"H":x=r[1];break;case"V":y=r[1];break;case"M":pathSegment=res[i];ln2=pathSegment.length;mx=pathSegment[ln2-2];my=pathSegment[ln2-1];default:pathSegment=res[i];ln2=pathSegment.length;x=pathSegment[ln2-2];y=pathSegment[ln2-1]}}res.toString=this.path2string;return res},pathToRelative:function(pathArray){if(!this.is(pathArray,"array")||!this.is(pathArray&&pathArray[0],"array")){pathArray=this.parsePathString(pathArray)}var res=[],x=0,y=0,mx=0,my=0,start=0;if(pathArray[0][0]=="M"){x=pathArray[0][1];y=pathArray[0][2];mx=x;my=y;start++;res.push(["M",x,y])}for(var i=start,ii=pathArray.length;i<ii;i++){var r=res[i]=[],pa=pathArray[i];if(pa[0]!=pa[0].toLowerCase()){r[0]=pa[0].toLowerCase();switch(r[0]){case"a":r[1]=pa[1];r[2]=pa[2];r[3]=pa[3];r[4]=pa[4];r[5]=pa[5];r[6]=+(pa[6]-x).toFixed(3);r[7]=+(pa[7]-y).toFixed(3);break;case"v":r[1]=+(pa[1]-y).toFixed(3);break;case"m":mx=pa[1];my=pa[2];default:for(var j=1,jj=pa.length;j<jj;j++){r[j]=+(pa[j]-((j%2)?x:y)).toFixed(3)}}}else{r=res[i]=[];if(pa[0]=="m"){mx=pa[1]+x;my=pa[2]+y}for(var k=0,kk=pa.length;k<kk;k++){res[i][k]=pa[k]}}var len=res[i].length;switch(res[i][0]){case"z":x=mx;y=my;break;case"h":x+=+res[i][len-1];break;case"v":y+=+res[i][len-1];break;default:x+=+res[i][len-2];y+=+res[i][len-1]}}res.toString=this.path2string;return res},path2curve:function(path){var me=this,points=me.pathToAbsolute(path),ln=points.length,attrs={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},i,seg,segLn,point;for(i=0;i<ln;i++){points[i]=me.command2curve(points[i],attrs);if(points[i].length>7){points[i].shift();point=points[i];while(point.length){Ext.Array.splice(points,i++,0,["C"].concat(Ext.Array.splice(point,0,6)))}Ext.Array.erase(points,i,1);ln=points.length}seg=points[i];segLn=seg.length;attrs.x=seg[segLn-2];attrs.y=seg[segLn-1];attrs.bx=parseFloat(seg[segLn-4])||attrs.x;attrs.by=parseFloat(seg[segLn-3])||attrs.y}return points},interpolatePaths:function(path,path2){var me=this,p=me.pathToAbsolute(path),p2=me.pathToAbsolute(path2),attrs={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},attrs2={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},fixArc=function(pp,i){if(pp[i].length>7){pp[i].shift();var pi=pp[i];while(pi.length){Ext.Array.splice(pp,i++,0,["C"].concat(Ext.Array.splice(pi,0,6)))}Ext.Array.erase(pp,i,1);ii=Math.max(p.length,p2.length||0)}},fixM=function(path1,path2,a1,a2,i){if(path1&&path2&&path1[i][0]=="M"&&path2[i][0]!="M"){Ext.Array.splice(path2,i,0,["M",a2.x,a2.y]);a1.bx=0;a1.by=0;a1.x=path1[i][1];a1.y=path1[i][2];ii=Math.max(p.length,p2.length||0)}};for(var i=0,ii=Math.max(p.length,p2.length||0);i<ii;i++){p[i]=me.command2curve(p[i],attrs);fixArc(p,i);(p2[i]=me.command2curve(p2[i],attrs2));fixArc(p2,i);fixM(p,p2,attrs,attrs2,i);fixM(p2,p,attrs2,attrs,i);var seg=p[i],seg2=p2[i],seglen=seg.length,seg2len=seg2.length;attrs.x=seg[seglen-2];attrs.y=seg[seglen-1];attrs.bx=parseFloat(seg[seglen-4])||attrs.x;attrs.by=parseFloat(seg[seglen-3])||attrs.y;attrs2.bx=(parseFloat(seg2[seg2len-4])||attrs2.x);attrs2.by=(parseFloat(seg2[seg2len-3])||attrs2.y);attrs2.x=seg2[seg2len-2];attrs2.y=seg2[seg2len-1]}return[p,p2]},command2curve:function(pathCommand,d){var me=this;if(!pathCommand){return["C",d.x,d.y,d.x,d.y,d.x,d.y]}if(pathCommand[0]!="T"&&pathCommand[0]!="Q"){d.qx=d.qy=null}switch(pathCommand[0]){case"M":d.X=pathCommand[1];d.Y=pathCommand[2];break;case"A":pathCommand=["C"].concat(me.arc2curve.apply(me,[d.x,d.y].concat(pathCommand.slice(1))));break;case"S":pathCommand=["C",d.x+(d.x-(d.bx||d.x)),d.y+(d.y-(d.by||d.y))].concat(pathCommand.slice(1));break;case"T":d.qx=d.x+(d.x-(d.qx||d.x));d.qy=d.y+(d.y-(d.qy||d.y));pathCommand=["C"].concat(me.quadratic2curve(d.x,d.y,d.qx,d.qy,pathCommand[1],pathCommand[2]));break;case"Q":d.qx=pathCommand[1];d.qy=pathCommand[2];pathCommand=["C"].concat(me.quadratic2curve(d.x,d.y,pathCommand[1],pathCommand[2],pathCommand[3],pathCommand[4]));break;case"L":pathCommand=["C"].concat(d.x,d.y,pathCommand[1],pathCommand[2],pathCommand[1],pathCommand[2]);break;case"H":pathCommand=["C"].concat(d.x,d.y,pathCommand[1],d.y,pathCommand[1],d.y);break;case"V":pathCommand=["C"].concat(d.x,d.y,d.x,pathCommand[1],d.x,pathCommand[1]);break;case"Z":pathCommand=["C"].concat(d.x,d.y,d.X,d.Y,d.X,d.Y);break}return pathCommand},quadratic2curve:function(x1,y1,ax,ay,x2,y2){var _13=1/3,_23=2/3;return[_13*x1+_23*ax,_13*y1+_23*ay,_13*x2+_23*ax,_13*y2+_23*ay,x2,y2]},rotate:function(x,y,rad){var cos=Math.cos(rad),sin=Math.sin(rad),X=x*cos-y*sin,Y=x*sin+y*cos;return{x:X,y:Y}},arc2curve:function(x1,y1,rx,ry,angle,large_arc_flag,sweep_flag,x2,y2,recursive){var me=this,PI=Math.PI,radian=me.radian,_120=PI*120/180,rad=radian*(+angle||0),res=[],math=Math,mcos=math.cos,msin=math.sin,msqrt=math.sqrt,mabs=math.abs,masin=math.asin,xy,cos,sin,x,y,h,rx2,ry2,k,cx,cy,f1,f2,df,c1,s1,c2,s2,t,hx,hy,m1,m2,m3,m4,newres,i,ln,f2old,x2old,y2old;if(!recursive){xy=me.rotate(x1,y1,-rad);x1=xy.x;y1=xy.y;xy=me.rotate(x2,y2,-rad);x2=xy.x;y2=xy.y;cos=mcos(radian*angle);sin=msin(radian*angle);x=(x1-x2)/2;y=(y1-y2)/2;h=(x*x)/(rx*rx)+(y*y)/(ry*ry);if(h>1){h=msqrt(h);rx=h*rx;ry=h*ry}rx2=rx*rx;ry2=ry*ry;k=(large_arc_flag==sweep_flag?-1:1)*msqrt(mabs((rx2*ry2-rx2*y*y-ry2*x*x)/(rx2*y*y+ry2*x*x)));cx=k*rx*y/ry+(x1+x2)/2;cy=k*-ry*x/rx+(y1+y2)/2;f1=masin(((y1-cy)/ry).toFixed(7));f2=masin(((y2-cy)/ry).toFixed(7));f1=x1<cx?PI-f1:f1;f2=x2<cx?PI-f2:f2;if(f1<0){f1=PI*2+f1}if(f2<0){f2=PI*2+f2}if(sweep_flag&&f1>f2){f1=f1-PI*2}if(!sweep_flag&&f2>f1){f2=f2-PI*2}}else{f1=recursive[0];f2=recursive[1];cx=recursive[2];cy=recursive[3]}df=f2-f1;if(mabs(df)>_120){f2old=f2;x2old=x2;y2old=y2;f2=f1+_120*(sweep_flag&&f2>f1?1:-1);x2=cx+rx*mcos(f2);y2=cy+ry*msin(f2);res=me.arc2curve(x2,y2,rx,ry,angle,0,sweep_flag,x2old,y2old,[f2,f2old,cx,cy])}df=f2-f1;c1=mcos(f1);s1=msin(f1);c2=mcos(f2);s2=msin(f2);t=math.tan(df/4);hx=4/3*rx*t;hy=4/3*ry*t;m1=[x1,y1];m2=[x1+hx*s1,y1-hy*c1];m3=[x2+hx*s2,y2-hy*c2];m4=[x2,y2];m2[0]=2*m1[0]-m2[0];m2[1]=2*m1[1]-m2[1];if(recursive){return[m2,m3,m4].concat(res)}else{res=[m2,m3,m4].concat(res).join().split(",");newres=[];ln=res.length;for(i=0;i<ln;i++){newres[i]=i%2?me.rotate(res[i-1],res[i],rad).y:me.rotate(res[i],res[i+1],rad).x}return newres}},rotateAndTranslatePath:function(sprite){var alpha=sprite.rotation.degrees,cx=sprite.rotation.x,cy=sprite.rotation.y,dx=sprite.translation.x,dy=sprite.translation.y,path,i,p,xy,j,res=[];if(!alpha&&!dx&&!dy){return this.pathToAbsolute(sprite.attr.path)}dx=dx||0;dy=dy||0;path=this.pathToAbsolute(sprite.attr.path);for(i=path.length;i--;){p=res[i]=path[i].slice();if(p[0]=="A"){xy=this.rotatePoint(p[6],p[7],alpha,cx,cy);p[6]=xy.x+dx;p[7]=xy.y+dy}else{j=1;while(p[j+1]!=null){xy=this.rotatePoint(p[j],p[j+1],alpha,cx,cy);p[j]=xy.x+dx;p[j+1]=xy.y+dy;j+=2}}}return res},rotatePoint:function(x,y,alpha,cx,cy){if(!alpha){return{x:x,y:y}}cx=cx||0;cy=cy||0;x=x-cx;y=y-cy;alpha=alpha*this.radian;var cos=Math.cos(alpha),sin=Math.sin(alpha);return{x:x*cos-y*sin+cx,y:x*sin+y*cos+cy}},pathDimensions:function(path){if(!path||!(path+"")){return{x:0,y:0,width:0,height:0}}path=this.path2curve(path);var x=0,y=0,X=[],Y=[],i=0,ln=path.length,p,xmin,ymin,dim;for(;i<ln;i++){p=path[i];if(p[0]=="M"){x=p[1];y=p[2];X.push(x);Y.push(y)}else{dim=this.curveDim(x,y,p[1],p[2],p[3],p[4],p[5],p[6]);X=X.concat(dim.min.x,dim.max.x);Y=Y.concat(dim.min.y,dim.max.y);x=p[5];y=p[6]}}xmin=Math.min.apply(0,X);ymin=Math.min.apply(0,Y);return{x:xmin,y:ymin,path:path,width:Math.max.apply(0,X)-xmin,height:Math.max.apply(0,Y)-ymin}},intersectInside:function(path,cp1,cp2){return(cp2[0]-cp1[0])*(path[1]-cp1[1])>(cp2[1]-cp1[1])*(path[0]-cp1[0])},intersectIntersection:function(s,e,cp1,cp2){var p=[],dcx=cp1[0]-cp2[0],dcy=cp1[1]-cp2[1],dpx=s[0]-e[0],dpy=s[1]-e[1],n1=cp1[0]*cp2[1]-cp1[1]*cp2[0],n2=s[0]*e[1]-s[1]*e[0],n3=1/(dcx*dpy-dcy*dpx);p[0]=(n1*dpx-n2*dcx)*n3;p[1]=(n1*dpy-n2*dcy)*n3;return p},intersect:function(subjectPolygon,clipPolygon){var me=this,i=0,ln=clipPolygon.length,cp1=clipPolygon[ln-1],outputList=subjectPolygon,cp2,s,e,point,ln2,inputList,j;for(;i<ln;++i){cp2=clipPolygon[i];inputList=outputList;outputList=[];s=inputList[inputList.length-1];j=0;ln2=inputList.length;for(;j<ln2;j++){e=inputList[j];if(me.intersectInside(e,cp1,cp2)){if(!me.intersectInside(s,cp1,cp2)){outputList.push(me.intersectIntersection(s,e,cp1,cp2))}outputList.push(e)}else{if(me.intersectInside(s,cp1,cp2)){outputList.push(me.intersectIntersection(s,e,cp1,cp2))}}s=e}cp1=cp2}return outputList},curveDim:function(p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y){var a=(c2x-2*c1x+p1x)-(p2x-2*c2x+c1x),b=2*(c1x-p1x)-2*(c2x-c1x),c=p1x-c1x,t1=(-b+Math.sqrt(b*b-4*a*c))/2/a,t2=(-b-Math.sqrt(b*b-4*a*c))/2/a,y=[p1y,p2y],x=[p1x,p2x],dot;if(Math.abs(t1)>1000000000000){t1=0.5}if(Math.abs(t2)>1000000000000){t2=0.5}if(t1>0&&t1<1){dot=this.findDotAtSegment(p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y,t1);x.push(dot.x);y.push(dot.y)}if(t2>0&&t2<1){dot=this.findDotAtSegment(p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y,t2);x.push(dot.x);y.push(dot.y)}a=(c2y-2*c1y+p1y)-(p2y-2*c2y+c1y);b=2*(c1y-p1y)-2*(c2y-c1y);c=p1y-c1y;t1=(-b+Math.sqrt(b*b-4*a*c))/2/a;t2=(-b-Math.sqrt(b*b-4*a*c))/2/a;if(Math.abs(t1)>1000000000000){t1=0.5}if(Math.abs(t2)>1000000000000){t2=0.5}if(t1>0&&t1<1){dot=this.findDotAtSegment(p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y,t1);x.push(dot.x);y.push(dot.y)}if(t2>0&&t2<1){dot=this.findDotAtSegment(p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y,t2);x.push(dot.x);y.push(dot.y)}return{min:{x:Math.min.apply(0,x),y:Math.min.apply(0,y)},max:{x:Math.max.apply(0,x),y:Math.max.apply(0,y)}}},getAnchors:function(prevX,prevY,curX,curY,nextX,nextY,value){value=value||4;var M=Math,PI=M.PI,halfPI=PI/2,abs=M.abs,sin=M.sin,cos=M.cos,atan=M.atan,control1Length,control2Length,control1Angle,control2Angle,control1X,control1Y,control2X,control2Y,alpha;control1Length=(curX-prevX)/value;control2Length=(nextX-curX)/value;if((curY>=prevY&&curY>=nextY)||(curY<=prevY&&curY<=nextY)){control1Angle=control2Angle=halfPI}else{control1Angle=atan((curX-prevX)/abs(curY-prevY));if(prevY<curY){control1Angle=PI-control1Angle}control2Angle=atan((nextX-curX)/abs(curY-nextY));if(nextY<curY){control2Angle=PI-control2Angle}}alpha=halfPI-((control1Angle+control2Angle)%(PI*2))/2;if(alpha>halfPI){alpha-=PI}control1Angle+=alpha;control2Angle+=alpha;control1X=curX-control1Length*sin(control1Angle);control1Y=curY+control1Length*cos(control1Angle);control2X=curX+control2Length*sin(control2Angle);control2Y=curY+control2Length*cos(control2Angle);if((curY>prevY&&control1Y<prevY)||(curY<prevY&&control1Y>prevY)){control1X+=abs(prevY-control1Y)*(control1X-curX)/(control1Y-curY);control1Y=prevY}if((curY>nextY&&control2Y<nextY)||(curY<nextY&&control2Y>nextY)){control2X-=abs(nextY-control2Y)*(control2X-curX)/(control2Y-curY);control2Y=nextY}return{x1:control1X,y1:control1Y,x2:control2X,y2:control2Y}},smooth:function(originalPath,value){var path=this.path2curve(originalPath),newp=[path[0]],x=path[0][1],y=path[0][2],j,points,i=1,ii=path.length,beg=1,mx=x,my=y,cx=0,cy=0;for(;i<ii;i++){var pathi=path[i],pathil=pathi.length,pathim=path[i-1],pathiml=pathim.length,pathip=path[i+1],pathipl=pathip&&pathip.length;if(pathi[0]=="M"){mx=pathi[1];my=pathi[2];j=i+1;while(path[j][0]!="C"){j++}cx=path[j][5];cy=path[j][6];newp.push(["M",mx,my]);beg=newp.length;x=mx;y=my;continue}if(pathi[pathil-2]==mx&&pathi[pathil-1]==my&&(!pathip||pathip[0]=="M")){var begl=newp[beg].length;points=this.getAnchors(pathim[pathiml-2],pathim[pathiml-1],mx,my,newp[beg][begl-2],newp[beg][begl-1],value);newp[beg][1]=points.x2;newp[beg][2]=points.y2}else{if(!pathip||pathip[0]=="M"){points={x1:pathi[pathil-2],y1:pathi[pathil-1]}}else{points=this.getAnchors(pathim[pathiml-2],pathim[pathiml-1],pathi[pathil-2],pathi[pathil-1],pathip[pathipl-2],pathip[pathipl-1],value)}}newp.push(["C",x,y,points.x1,points.y1,pathi[pathil-2],pathi[pathil-1]]);x=points.x2;y=points.y2}return newp},findDotAtSegment:function(p1x,p1y,c1x,c1y,c2x,c2y,p2x,p2y,t){var t1=1-t;return{x:Math.pow(t1,3)*p1x+Math.pow(t1,2)*3*t*c1x+t1*3*t*t*c2x+Math.pow(t,3)*p2x,y:Math.pow(t1,3)*p1y+Math.pow(t1,2)*3*t*c1y+t1*3*t*t*c2y+Math.pow(t,3)*p2y}},snapEnds:function(from,to,stepsMax){if(Ext.isDate(from)){return this.snapEndsByDate(from,to,stepsMax)}var step=(to-from)/stepsMax,level=Math.floor(Math.log(step)/Math.LN10)+1,m=Math.pow(10,level),cur,modulo=Math.round((step%m)*Math.pow(10,2-level)),interval=[[0,15],[20,4],[30,2],[40,4],[50,9],[60,4],[70,2],[80,4],[100,15]],stepCount=0,value,weight,i,topValue,topWeight=1000000000,ln=interval.length;cur=from=Math.floor(from/m)*m;for(i=0;i<ln;i++){value=interval[i][0];weight=(value-modulo)<0?1000000:(value-modulo)/interval[i][1];if(weight<topWeight){topValue=value;topWeight=weight}}step=Math.floor(step*Math.pow(10,-level))*Math.pow(10,level)+topValue*Math.pow(10,level-2);while(cur<to){cur+=step;stepCount++}to=+cur.toFixed(10);return{from:from,to:to,power:level,step:step,steps:stepCount}},snapEndsByDate:function(from,to,stepsMax,lockEnds){var selectedStep=false,scales=[[Ext.Date.MILLI,[1,2,3,5,10,20,30,50,100,200,300,500]],[Ext.Date.SECOND,[1,2,3,5,10,15,30]],[Ext.Date.MINUTE,[1,2,3,5,10,20,30]],[Ext.Date.HOUR,[1,2,3,4,6,12]],[Ext.Date.DAY,[1,2,3,7,14]],[Ext.Date.MONTH,[1,2,3,4,6]]],j,yearDiff;Ext.each(scales,function(scale,i){for(j=0;j<scale[1].length;j++){if(to<Ext.Date.add(from,scale[0],scale[1][j]*stepsMax)){selectedStep=[scale[0],scale[1][j]];return false}}});if(!selectedStep){yearDiff=this.snapEnds(from.getFullYear(),to.getFullYear()+1,stepsMax,lockEnds);selectedStep=[Date.YEAR,Math.round(yearDiff.step)]}return this.snapEndsByDateAndStep(from,to,selectedStep,lockEnds)},snapEndsByDateAndStep:function(from,to,step,lockEnds){var fromStat=[from.getFullYear(),from.getMonth(),from.getDate(),from.getHours(),from.getMinutes(),from.getSeconds(),from.getMilliseconds()],steps=0,testFrom,testTo;if(lockEnds){testFrom=from}else{switch(step[0]){case Ext.Date.MILLI:testFrom=new Date(fromStat[0],fromStat[1],fromStat[2],fromStat[3],fromStat[4],fromStat[5],Math.floor(fromStat[6]/step[1])*step[1]);break;case Ext.Date.SECOND:testFrom=new Date(fromStat[0],fromStat[1],fromStat[2],fromStat[3],fromStat[4],Math.floor(fromStat[5]/step[1])*step[1],0);break;case Ext.Date.MINUTE:testFrom=new Date(fromStat[0],fromStat[1],fromStat[2],fromStat[3],Math.floor(fromStat[4]/step[1])*step[1],0,0);break;case Ext.Date.HOUR:testFrom=new Date(fromStat[0],fromStat[1],fromStat[2],Math.floor(fromStat[3]/step[1])*step[1],0,0,0);break;case Ext.Date.DAY:testFrom=new Date(fromStat[0],fromStat[1],Math.floor(fromStat[2]-1/step[1])*step[1]+1,0,0,0,0);break;case Ext.Date.MONTH:testFrom=new Date(fromStat[0],Math.floor(fromStat[1]/step[1])*step[1],1,0,0,0,0);break;default:testFrom=new Date(Math.floor(fromStat[0]/step[1])*step[1],0,1,0,0,0,0);break}}testTo=testFrom;while(testTo<to){testTo=Ext.Date.add(testTo,step[0],step[1]);steps++}if(lockEnds){testTo=to}return{from:+testFrom,to:+testTo,step:(testTo-testFrom)/steps,steps:steps}},sorter:function(a,b){return a.offset-b.offset},rad:function(degrees){return degrees%360*Math.PI/180},degrees:function(radian){return radian*180/Math.PI%360},withinBox:function(x,y,bbox){bbox=bbox||{};return(x>=bbox.x&&x<=(bbox.x+bbox.width)&&y>=bbox.y&&y<=(bbox.y+bbox.height))},parseGradient:function(gradient){var me=this,type=gradient.type||"linear",angle=gradient.angle||0,radian=me.radian,stops=gradient.stops,stopsArr=[],stop,vector,max,stopObj;if(type=="linear"){vector=[0,0,Math.cos(angle*radian),Math.sin(angle*radian)];max=1/(Math.max(Math.abs(vector[2]),Math.abs(vector[3]))||1);vector[2]*=max;vector[3]*=max;if(vector[2]<0){vector[0]=-vector[2];vector[2]=0}if(vector[3]<0){vector[1]=-vector[3];vector[3]=0}}for(stop in stops){if(stops.hasOwnProperty(stop)&&me.stopsRE.test(stop)){stopObj={offset:parseInt(stop,10),color:Ext.draw.Color.toHex(stops[stop].color)||"#ffffff",opacity:stops[stop].opacity||1};stopsArr.push(stopObj)}}Ext.Array.sort(stopsArr,me.sorter);if(type=="linear"){return{id:gradient.id,type:type,vector:vector,stops:stopsArr}}else{return{id:gradient.id,type:type,centerX:gradient.centerX,centerY:gradient.centerY,focalX:gradient.focalX,focalY:gradient.focalY,radius:gradient.radius,vector:vector,stops:stopsArr}}}});Ext.define("Ext.fx.PropertyHandler",{requires:["Ext.draw.Draw"],statics:{defaultHandler:{pixelDefaultsRE:/width|height|top$|bottom$|left$|right$/i,unitRE:/^(-?\d*\.?\d*){1}(em|ex|px|in|cm|mm|pt|pc|%)*$/,scrollRE:/^scroll/i,computeDelta:function(from,end,damper,initial,attr){damper=(typeof damper=="number")?damper:1;var unitRE=this.unitRE,match=unitRE.exec(from),start,units;if(match){from=match[1];units=match[2];if(!this.scrollRE.test(attr)&&!units&&this.pixelDefaultsRE.test(attr)){units="px"}}from=+from||0;match=unitRE.exec(end);if(match){end=match[1];units=match[2]||units}end=+end||0;start=(initial!=null)?initial:from;return{from:from,delta:(end-start)*damper,units:units}},get:function(from,end,damper,initialFrom,attr){var ln=from.length,out=[],i,initial,res,j,len;for(i=0;i<ln;i++){if(initialFrom){initial=initialFrom[i][1].from}if(Ext.isArray(from[i][1])&&Ext.isArray(end)){res=[];j=0;len=from[i][1].length;for(;j<len;j++){res.push(this.computeDelta(from[i][1][j],end[j],damper,initial,attr))}out.push([from[i][0],res])}else{out.push([from[i][0],this.computeDelta(from[i][1],end,damper,initial,attr)])}}return out},set:function(values,easing){var ln=values.length,out=[],i,val,res,len,j;for(i=0;i<ln;i++){val=values[i][1];if(Ext.isArray(val)){res=[];j=0;len=val.length;for(;j<len;j++){res.push(val[j].from+(val[j].delta*easing)+(val[j].units||0))}out.push([values[i][0],res])}else{out.push([values[i][0],val.from+(val.delta*easing)+(val.units||0)])}}return out}},color:{rgbRE:/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,hexRE:/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,hex3RE:/^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i,parseColor:function(color,damper){damper=(typeof damper=="number")?damper:1;var base,out=false,match;Ext.each([this.hexRE,this.rgbRE,this.hex3RE],function(re,idx){base=(idx%2==0)?16:10;match=re.exec(color);if(match&&match.length==4){if(idx==2){match[1]+=match[1];match[2]+=match[2];match[3]+=match[3]}out={red:parseInt(match[1],base),green:parseInt(match[2],base),blue:parseInt(match[3],base)};return false}});return out||color},computeDelta:function(from,end,damper,initial){from=this.parseColor(from);end=this.parseColor(end,damper);var start=initial?initial:from,tfrom=typeof start,tend=typeof end;if(tfrom=="string"||tfrom=="undefined"||tend=="string"||tend=="undefined"){return end||start}return{from:from,delta:{red:Math.round((end.red-start.red)*damper),green:Math.round((end.green-start.green)*damper),blue:Math.round((end.blue-start.blue)*damper)}}},get:function(start,end,damper,initialFrom){var ln=start.length,out=[],i,initial;for(i=0;i<ln;i++){if(initialFrom){initial=initialFrom[i][1].from}out.push([start[i][0],this.computeDelta(start[i][1],end,damper,initial)])}return out},set:function(values,easing){var ln=values.length,out=[],i,val,parsedString,from,delta;for(i=0;i<ln;i++){val=values[i][1];if(val){from=val.from;delta=val.delta;val=(typeof val=="object"&&"red" in val)?"rgb("+val.red+", "+val.green+", "+val.blue+")":val;val=(typeof val=="object"&&val.length)?val[0]:val;if(typeof val=="undefined"){return[]}parsedString=typeof val=="string"?val:"rgb("+[(from.red+Math.round(delta.red*easing))%256,(from.green+Math.round(delta.green*easing))%256,(from.blue+Math.round(delta.blue*easing))%256].join(",")+")";out.push([values[i][0],parsedString])}}return out}},object:{interpolate:function(prop,damper){damper=(typeof damper=="number")?damper:1;var out={},p;for(p in prop){out[p]=parseInt(prop[p],10)*damper}return out},computeDelta:function(from,end,damper,initial){from=this.interpolate(from);end=this.interpolate(end,damper);var start=initial?initial:from,delta={},p;for(p in end){delta[p]=end[p]-start[p]}return{from:from,delta:delta}},get:function(start,end,damper,initialFrom){var ln=start.length,out=[],i,initial;for(i=0;i<ln;i++){if(initialFrom){initial=initialFrom[i][1].from}out.push([start[i][0],this.computeDelta(start[i][1],end,damper,initial)])}return out},set:function(values,easing){var ln=values.length,out=[],outObject={},i,from,delta,val,p;for(i=0;i<ln;i++){val=values[i][1];from=val.from;delta=val.delta;for(p in from){outObject[p]=Math.round(from[p]+delta[p]*easing)}out.push([values[i][0],outObject])}return out}},path:{computeDelta:function(from,end,damper,initial){damper=(typeof damper=="number")?damper:1;var start;from=+from||0;end=+end||0;start=(initial!=null)?initial:from;return{from:from,delta:(end-start)*damper}},forcePath:function(path){if(!Ext.isArray(path)&&!Ext.isArray(path[0])){path=Ext.draw.Draw.parsePathString(path)}return path},get:function(start,end,damper,initialFrom){var endPath=this.forcePath(end),out=[],startLn=start.length,startPathLn,pointsLn,i,deltaPath,initial,j,k,path,startPath;for(i=0;i<startLn;i++){startPath=this.forcePath(start[i][1]);deltaPath=Ext.draw.Draw.interpolatePaths(startPath,endPath);startPath=deltaPath[0];endPath=deltaPath[1];startPathLn=startPath.length;path=[];for(j=0;j<startPathLn;j++){deltaPath=[startPath[j][0]];pointsLn=startPath[j].length;for(k=1;k<pointsLn;k++){initial=initialFrom&&initialFrom[0][1][j][k].from;deltaPath.push(this.computeDelta(startPath[j][k],endPath[j][k],damper,initial))}path.push(deltaPath)}out.push([start[i][0],path])}return out},set:function(values,easing){var ln=values.length,out=[],i,j,k,newPath,calcPath,deltaPath,deltaPathLn,pointsLn;for(i=0;i<ln;i++){deltaPath=values[i][1];newPath=[];deltaPathLn=deltaPath.length;for(j=0;j<deltaPathLn;j++){calcPath=[deltaPath[j][0]];pointsLn=deltaPath[j].length;for(k=1;k<pointsLn;k++){calcPath.push(deltaPath[j][k].from+deltaPath[j][k].delta*easing)}newPath.push(calcPath.join(","))}out.push([values[i][0],newPath.join(",")])}return out}}}},function(){Ext.each(["outlineColor","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","fill","stroke"],function(prop){this[prop]=this.color},this)});Ext.define("Ext.fx.Anim",{mixins:{observable:"Ext.util.Observable"},requires:["Ext.fx.Manager","Ext.fx.Animator","Ext.fx.Easing","Ext.fx.CubicBezier","Ext.fx.PropertyHandler"],isAnimation:true,duration:250,delay:0,delayStart:0,dynamic:false,easing:"ease",damper:1,bezierRE:/^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/,reverse:false,running:false,paused:false,iterations:1,alternate:false,currentIteration:0,startTime:0,constructor:function(config){var me=this,curve;config=config||{};if(config.keyframes){return Ext.create("Ext.fx.Animator",config)}config=Ext.apply(me,config);if(me.from===undefined){me.from={}}me.propHandlers={};me.config=config;me.target=Ext.fx.Manager.createTarget(me.target);me.easingFn=Ext.fx.Easing[me.easing];me.target.dynamic=me.dynamic;if(!me.easingFn){me.easingFn=String(me.easing).match(me.bezierRE);if(me.easingFn&&me.easingFn.length==5){curve=me.easingFn;me.easingFn=Ext.fx.CubicBezier.cubicBezier(+curve[1],+curve[2],+curve[3],+curve[4])}}me.id=Ext.id(null,"ext-anim-");Ext.fx.Manager.addAnim(me);me.addEvents("beforeanimate","afteranimate","lastframe");me.mixins.observable.constructor.call(me,config);if(config.callback){me.on("afteranimate",config.callback,config.scope)}return me},setAttr:function(attr,value){return Ext.fx.Manager.items.get(this.id).setAttr(this.target,attr,value)},initAttrs:function(){var me=this,from=me.from,to=me.to,initialFrom=me.initialFrom||{},out={},start,end,propHandler,attr;for(attr in to){if(to.hasOwnProperty(attr)){start=me.target.getAttr(attr,from[attr]);end=to[attr];if(!Ext.fx.PropertyHandler[attr]){if(Ext.isObject(end)){propHandler=me.propHandlers[attr]=Ext.fx.PropertyHandler.object}else{propHandler=me.propHandlers[attr]=Ext.fx.PropertyHandler.defaultHandler}}else{propHandler=me.propHandlers[attr]=Ext.fx.PropertyHandler[attr]}out[attr]=propHandler.get(start,end,me.damper,initialFrom[attr],attr)}}me.currentAttrs=out},start:function(startTime){var me=this,delay=me.delay,delayStart=me.delayStart,delayDelta;if(delay){if(!delayStart){me.delayStart=startTime;return}else{delayDelta=startTime-delayStart;if(delayDelta<delay){return}else{startTime=new Date(delayStart.getTime()+delay)}}}if(me.fireEvent("beforeanimate",me)!==false){me.startTime=startTime;if(!me.paused&&!me.currentAttrs){me.initAttrs()}me.running=true}},runAnim:function(elapsedTime){var me=this,attrs=me.currentAttrs,duration=me.duration,easingFn=me.easingFn,propHandlers=me.propHandlers,ret={},easing,values,attr,lastFrame;if(elapsedTime>=duration){elapsedTime=duration;lastFrame=true}if(me.reverse){elapsedTime=duration-elapsedTime}for(attr in attrs){if(attrs.hasOwnProperty(attr)){values=attrs[attr];easing=lastFrame?1:easingFn(elapsedTime/duration);ret[attr]=propHandlers[attr].set(values,easing)}}return ret},lastFrame:function(){var me=this,iter=me.iterations,iterCount=me.currentIteration;iterCount++;if(iterCount<iter){if(me.alternate){me.reverse=!me.reverse}me.startTime=new Date();me.currentIteration=iterCount;me.paused=false}else{me.currentIteration=0;me.end();me.fireEvent("lastframe",me,me.startTime)}},end:function(){var me=this;me.startTime=0;me.paused=false;me.running=false;Ext.fx.Manager.removeAnim(me);me.fireEvent("afteranimate",me,me.startTime)}});Ext.enableFx=true;Ext.define("Ext.dd.DragDrop",{requires:["Ext.dd.DragDropManager"],constructor:function(id,sGroup,config){if(id){this.init(id,sGroup,config)}},id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true},moveOnly:false,unlock:function(){this.locked=false},isTarget:true,padding:null,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,b4StartDrag:function(x,y){},startDrag:function(x,y){},b4Drag:function(e){},onDrag:function(e){},onDragEnter:function(e,id){},b4DragOver:function(e){},onDragOver:function(e,id){},b4DragOut:function(e){},onDragOut:function(e,id){},b4DragDrop:function(e){},onDragDrop:function(e,id){},onInvalidDrop:function(e){},b4EndDrag:function(e){},endDrag:function(e){},b4MouseDown:function(e){},onMouseDown:function(e){},onMouseUp:function(e){},onAvailable:function(){},defaultPadding:{left:0,right:0,top:0,bottom:0},constrainTo:function(constrainTo,pad,inContent){if(Ext.isNumber(pad)){pad={left:pad,right:pad,top:pad,bottom:pad}}pad=pad||this.defaultPadding;var b=Ext.get(this.getEl()).getBox(),ce=Ext.get(constrainTo),s=ce.getScroll(),c,cd=ce.dom;if(cd==document.body){c={x:s.left,y:s.top,width:Ext.Element.getViewWidth(),height:Ext.Element.getViewHeight()}}else{var xy=ce.getXY();c={x:xy[0],y:xy[1],width:cd.clientWidth,height:cd.clientHeight}}var topSpace=b.y-c.y,leftSpace=b.x-c.x;this.resetConstraints();this.setXConstraint(leftSpace-(pad.left||0),c.width-leftSpace-b.width-(pad.right||0),this.xTickSize);this.setYConstraint(topSpace-(pad.top||0),c.height-topSpace-b.height-(pad.bottom||0),this.yTickSize)},getEl:function(){if(!this._domRef){this._domRef=Ext.getDom(this.id)}return this._domRef},getDragEl:function(){return Ext.getDom(this.dragElId)},init:function(id,sGroup,config){this.initTarget(id,sGroup,config);Ext.EventManager.on(this.id,"mousedown",this.handleMouseDown,this)},initTarget:function(id,sGroup,config){this.config=config||{};this.DDMInstance=Ext.dd.DragDropManager;this.groups={};if(typeof id!=="string"){id=Ext.id(id)}this.id=id;this.addToGroup((sGroup)?sGroup:"default");this.handleElId=id;this.setDragElId(id);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();this.handleOnAvailable()},applyConfig:function(){this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false)},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable()},setPadding:function(iTop,iRight,iBot,iLeft){if(!iRight&&0!==iRight){this.padding=[iTop,iTop,iTop,iTop]}else{if(!iBot&&0!==iBot){this.padding=[iTop,iRight,iTop,iRight]}else{this.padding=[iTop,iRight,iBot,iLeft]}}},setInitPosition:function(diffX,diffY){var el=this.getEl();if(!this.DDMInstance.verifyEl(el)){return}var dx=diffX||0;var dy=diffY||0;var p=Ext.Element.getXY(el);this.initPageX=p[0]-dx;this.initPageY=p[1]-dy;this.lastPageX=p[0];this.lastPageY=p[1];this.setStartPosition(p)},setStartPosition:function(pos){var p=pos||Ext.Element.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=p[0];this.startPageY=p[1]},addToGroup:function(sGroup){this.groups[sGroup]=true;this.DDMInstance.regDragDrop(this,sGroup)},removeFromGroup:function(sGroup){if(this.groups[sGroup]){delete this.groups[sGroup]}this.DDMInstance.removeDDFromGroup(this,sGroup)},setDragElId:function(id){this.dragElId=id},setHandleElId:function(id){if(typeof id!=="string"){id=Ext.id(id)}this.handleElId=id;this.DDMInstance.regHandle(this.id,id)},setOuterHandleElId:function(id){if(typeof id!=="string"){id=Ext.id(id)}Ext.EventManager.on(id,"mousedown",this.handleMouseDown,this);this.setHandleElId(id);this.hasOuterHandles=true},unreg:function(){Ext.EventManager.un(this.id,"mousedown",this.handleMouseDown,this);this._domRef=null;this.DDMInstance._remove(this)},destroy:function(){this.unreg()},isLocked:function(){return(this.DDMInstance.isLocked()||this.locked)},handleMouseDown:function(e,oDD){if(this.primaryButtonOnly&&e.button!=0){return}if(this.isLocked()){return}this.DDMInstance.refreshCache(this.groups);var pt=e.getPoint();if(!this.hasOuterHandles&&!this.DDMInstance.isOverTarget(pt,this)){}else{if(this.clickValidator(e)){this.setStartPosition();this.b4MouseDown(e);this.onMouseDown(e);this.DDMInstance.handleMouseDown(e,this);this.DDMInstance.stopEvent(e)}else{}}},clickValidator:function(e){var target=e.getTarget();return(this.isValidHandleChild(target)&&(this.id==this.handleElId||this.DDMInstance.handleWasClicked(target,this.id)))},addInvalidHandleType:function(tagName){var type=tagName.toUpperCase();this.invalidHandleTypes[type]=type},addInvalidHandleId:function(id){if(typeof id!=="string"){id=Ext.id(id)}this.invalidHandleIds[id]=id},addInvalidHandleClass:function(cssClass){this.invalidHandleClasses.push(cssClass)},removeInvalidHandleType:function(tagName){var type=tagName.toUpperCase();delete this.invalidHandleTypes[type]},removeInvalidHandleId:function(id){if(typeof id!=="string"){id=Ext.id(id)}delete this.invalidHandleIds[id]},removeInvalidHandleClass:function(cssClass){for(var i=0,len=this.invalidHandleClasses.length;i<len;++i){if(this.invalidHandleClasses[i]==cssClass){delete this.invalidHandleClasses[i]}}},isValidHandleChild:function(node){var valid=true;var nodeName;try{nodeName=node.nodeName.toUpperCase()}catch(e){nodeName=node.nodeName}valid=valid&&!this.invalidHandleTypes[nodeName];valid=valid&&!this.invalidHandleIds[node.id];for(var i=0,len=this.invalidHandleClasses.length;valid&&i<len;++i){valid=!Ext.fly(node).hasCls(this.invalidHandleClasses[i])}return valid},setXTicks:function(iStartX,iTickSize){this.xTicks=[];this.xTickSize=iTickSize;var tickMap={};for(var i=this.initPageX;i>=this.minX;i=i-iTickSize){if(!tickMap[i]){this.xTicks[this.xTicks.length]=i;tickMap[i]=true}}for(i=this.initPageX;i<=this.maxX;i=i+iTickSize){if(!tickMap[i]){this.xTicks[this.xTicks.length]=i;tickMap[i]=true}}Ext.Array.sort(this.xTicks,this.DDMInstance.numericSort)},setYTicks:function(iStartY,iTickSize){this.yTicks=[];this.yTickSize=iTickSize;var tickMap={};for(var i=this.initPageY;i>=this.minY;i=i-iTickSize){if(!tickMap[i]){this.yTicks[this.yTicks.length]=i;tickMap[i]=true}}for(i=this.initPageY;i<=this.maxY;i=i+iTickSize){if(!tickMap[i]){this.yTicks[this.yTicks.length]=i;tickMap[i]=true}}Ext.Array.sort(this.yTicks,this.DDMInstance.numericSort)},setXConstraint:function(iLeft,iRight,iTickSize){this.leftConstraint=iLeft;this.rightConstraint=iRight;this.minX=this.initPageX-iLeft;this.maxX=this.initPageX+iRight;if(iTickSize){this.setXTicks(this.initPageX,iTickSize)}this.constrainX=true},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks()},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0},setYConstraint:function(iUp,iDown,iTickSize){this.topConstraint=iUp;this.bottomConstraint=iDown;this.minY=this.initPageY-iUp;this.maxY=this.initPageY+iDown;if(iTickSize){this.setYTicks(this.initPageY,iTickSize)}this.constrainY=true},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var dx=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var dy=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(dx,dy)}else{this.setInitPosition()}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize)}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize)}},getTick:function(val,tickArray){if(!tickArray){return val}else{if(tickArray[0]>=val){return tickArray[0]}else{for(var i=0,len=tickArray.length;i<len;++i){var next=i+1;if(tickArray[next]&&tickArray[next]>=val){var diff1=val-tickArray[i];var diff2=tickArray[next]-val;return(diff2>diff1)?tickArray[i]:tickArray[next]}}return tickArray[tickArray.length-1]}}},toString:function(){return("DragDrop "+this.id)}});Ext.define("Ext.dd.DD",{extend:"Ext.dd.DragDrop",requires:["Ext.dd.DragDropManager"],constructor:function(id,sGroup,config){if(id){this.init(id,sGroup,config)}},scroll:true,autoOffset:function(iPageX,iPageY){var x=iPageX-this.startPageX;var y=iPageY-this.startPageY;this.setDelta(x,y)},setDelta:function(iDeltaX,iDeltaY){this.deltaX=iDeltaX;this.deltaY=iDeltaY},setDragElPos:function(iPageX,iPageY){var el=this.getDragEl();this.alignElWithMouse(el,iPageX,iPageY)},alignElWithMouse:function(el,iPageX,iPageY){var oCoord=this.getTargetCoord(iPageX,iPageY),fly=el.dom?el:Ext.fly(el,"_dd"),elSize=fly.getSize(),EL=Ext.Element,vpSize;if(!this.deltaSetXY){vpSize=this.cachedViewportSize={width:EL.getDocumentWidth(),height:EL.getDocumentHeight()};var aCoord=[Math.max(0,Math.min(oCoord.x,vpSize.width-elSize.width)),Math.max(0,Math.min(oCoord.y,vpSize.height-elSize.height))];fly.setXY(aCoord);var newLeft=fly.getLeft(true);var newTop=fly.getTop(true);this.deltaSetXY=[newLeft-oCoord.x,newTop-oCoord.y]}else{vpSize=this.cachedViewportSize;fly.setLeftTop(Math.max(0,Math.min(oCoord.x+this.deltaSetXY[0],vpSize.width-elSize.width)),Math.max(0,Math.min(oCoord.y+this.deltaSetXY[1],vpSize.height-elSize.height)))}this.cachePosition(oCoord.x,oCoord.y);this.autoScroll(oCoord.x,oCoord.y,el.offsetHeight,el.offsetWidth);return oCoord},cachePosition:function(iPageX,iPageY){if(iPageX){this.lastPageX=iPageX;this.lastPageY=iPageY}else{var aCoord=Ext.Element.getXY(this.getEl());this.lastPageX=aCoord[0];this.lastPageY=aCoord[1]}},autoScroll:function(x,y,h,w){if(this.scroll){var clientH=Ext.Element.getViewHeight();var clientW=Ext.Element.getViewWidth();var st=this.DDMInstance.getScrollTop();var sl=this.DDMInstance.getScrollLeft();var bot=h+y;var right=w+x;var toBot=(clientH+st-y-this.deltaY);var toRight=(clientW+sl-x-this.deltaX);var thresh=40;var scrAmt=(document.all)?80:30;if(bot>clientH&&toBot<thresh){window.scrollTo(sl,st+scrAmt)}if(y<st&&st>0&&y-st<thresh){window.scrollTo(sl,st-scrAmt)}if(right>clientW&&toRight<thresh){window.scrollTo(sl+scrAmt,st)}if(x<sl&&sl>0&&x-sl<thresh){window.scrollTo(sl-scrAmt,st)}}},getTargetCoord:function(iPageX,iPageY){var x=iPageX-this.deltaX;var y=iPageY-this.deltaY;if(this.constrainX){if(x<this.minX){x=this.minX}if(x>this.maxX){x=this.maxX}}if(this.constrainY){if(y<this.minY){y=this.minY}if(y>this.maxY){y=this.maxY}}x=this.getTick(x,this.xTicks);y=this.getTick(y,this.yTicks);return{x:x,y:y}},applyConfig:function(){this.callParent();this.scroll=(this.config.scroll!==false)},b4MouseDown:function(e){this.autoOffset(e.getPageX(),e.getPageY())},b4Drag:function(e){this.setDragElPos(e.getPageX(),e.getPageY())},toString:function(){return("DD "+this.id)}});Ext.define("Ext.dd.DDProxy",{extend:"Ext.dd.DD",statics:{dragElId:"ygddfdiv"},constructor:function(id,sGroup,config){if(id){this.init(id,sGroup,config);this.initFrame()}},resizeFrame:true,centerFrame:false,createFrame:function(){var self=this;var body=document.body;if(!body||!body.firstChild){setTimeout(function(){self.createFrame()},50);return}var div=this.getDragEl();if(!div){div=document.createElement("div");div.id=this.dragElId;var s=div.style;s.position="absolute";s.visibility="hidden";s.cursor="move";s.border="2px solid #aaa";s.zIndex=999;body.insertBefore(div,body.firstChild)}},initFrame:function(){this.createFrame()},applyConfig:function(){this.callParent();this.resizeFrame=(this.config.resizeFrame!==false);this.centerFrame=(this.config.centerFrame);this.setDragElId(this.config.dragElId||Ext.dd.DDProxy.dragElId)},showFrame:function(iPageX,iPageY){var el=this.getEl();var dragEl=this.getDragEl();var s=dragEl.style;this._resizeProxy();if(this.centerFrame){this.setDelta(Math.round(parseInt(s.width,10)/2),Math.round(parseInt(s.height,10)/2))}this.setDragElPos(iPageX,iPageY);Ext.fly(dragEl).show()},_resizeProxy:function(){if(this.resizeFrame){var el=this.getEl();Ext.fly(this.getDragEl()).setSize(el.offsetWidth,el.offsetHeight)}},b4MouseDown:function(e){var x=e.getPageX();var y=e.getPageY();this.autoOffset(x,y);this.setDragElPos(x,y)},b4StartDrag:function(x,y){this.showFrame(x,y)},b4EndDrag:function(e){Ext.fly(this.getDragEl()).hide()},endDrag:function(e){var lel=this.getEl();var del=this.getDragEl();del.style.visibility="";this.beforeMove();lel.style.visibility="hidden";Ext.dd.DDM.moveToEl(lel,del);del.style.visibility="hidden";lel.style.visibility="";this.afterDrag()},beforeMove:function(){},afterDrag:function(){},toString:function(){return("DDProxy "+this.id)}});Ext.define("Ext.dd.DragSource",{extend:"Ext.dd.DDProxy",requires:["Ext.dd.StatusProxy","Ext.dd.DragDropManager"],dropAllowed:Ext.baseCSSPrefix+"dd-drop-ok",dropNotAllowed:Ext.baseCSSPrefix+"dd-drop-nodrop",animRepair:true,repairHighlightColor:"c3daf9",constructor:function(el,config){this.el=Ext.get(el);if(!this.dragData){this.dragData={}}Ext.apply(this,config);if(!this.proxy){this.proxy=Ext.create("Ext.dd.StatusProxy",{animRepair:this.animRepair})}this.callParent([this.el.dom,this.ddGroup||this.group,{dragElId:this.proxy.id,resizeFrame:false,isTarget:false,scroll:this.scroll===true}]);this.dragging=false},getDragData:function(e){return this.dragData},onDragEnter:function(e,id){var target=Ext.dd.DragDropManager.getDDById(id);this.cachedTarget=target;if(this.beforeDragEnter(target,e,id)!==false){if(target.isNotifyTarget){var status=target.notifyEnter(this,e,this.dragData);this.proxy.setStatus(status)}else{this.proxy.setStatus(this.dropAllowed)}if(this.afterDragEnter){this.afterDragEnter(target,e,id)}}},beforeDragEnter:function(target,e,id){return true},alignElWithMouse:function(){this.callParent(arguments);this.proxy.sync()},onDragOver:function(e,id){var target=this.cachedTarget||Ext.dd.DragDropManager.getDDById(id);if(this.beforeDragOver(target,e,id)!==false){if(target.isNotifyTarget){var status=target.notifyOver(this,e,this.dragData);this.proxy.setStatus(status)}if(this.afterDragOver){this.afterDragOver(target,e,id)}}},beforeDragOver:function(target,e,id){return true},onDragOut:function(e,id){var target=this.cachedTarget||Ext.dd.DragDropManager.getDDById(id);if(this.beforeDragOut(target,e,id)!==false){if(target.isNotifyTarget){target.notifyOut(this,e,this.dragData)}this.proxy.reset();if(this.afterDragOut){this.afterDragOut(target,e,id)}}this.cachedTarget=null},beforeDragOut:function(target,e,id){return true},onDragDrop:function(e,id){var target=this.cachedTarget||Ext.dd.DragDropManager.getDDById(id);if(this.beforeDragDrop(target,e,id)!==false){if(target.isNotifyTarget){if(target.notifyDrop(this,e,this.dragData)!==false){this.onValidDrop(target,e,id)}else{this.onInvalidDrop(target,e,id)}}else{this.onValidDrop(target,e,id)}if(this.afterDragDrop){this.afterDragDrop(target,e,id)}}delete this.cachedTarget},beforeDragDrop:function(target,e,id){return true},onValidDrop:function(target,e,id){this.hideProxy();if(this.afterValidDrop){this.afterValidDrop(target,e,id)}},getRepairXY:function(e,data){return this.el.getXY()},onInvalidDrop:function(target,e,id){this.beforeInvalidDrop(target,e,id);if(this.cachedTarget){if(this.cachedTarget.isNotifyTarget){this.cachedTarget.notifyOut(this,e,this.dragData)}this.cacheTarget=null}this.proxy.repair(this.getRepairXY(e,this.dragData),this.afterRepair,this);if(this.afterInvalidDrop){this.afterInvalidDrop(e,id)}},afterRepair:function(){var me=this;if(Ext.enableFx){me.el.highlight(me.repairHighlightColor)}me.dragging=false},beforeInvalidDrop:function(target,e,id){return true},handleMouseDown:function(e){if(this.dragging){return}var data=this.getDragData(e);if(data&&this.onBeforeDrag(data,e)!==false){this.dragData=data;this.proxy.stop();this.callParent(arguments)}},onBeforeDrag:function(data,e){return true},onStartDrag:Ext.emptyFn,startDrag:function(x,y){this.proxy.reset();this.dragging=true;this.proxy.update("");this.onInitDrag(x,y);this.proxy.show()},onInitDrag:function(x,y){var clone=this.el.dom.cloneNode(true);clone.id=Ext.id();this.proxy.update(clone);this.onStartDrag(x,y);return true},getProxy:function(){return this.proxy},hideProxy:function(){this.proxy.hide();this.proxy.reset(true);this.dragging=false},triggerCacheRefresh:function(){Ext.dd.DDM.refreshCache(this.groups)},b4EndDrag:function(e){},endDrag:function(e){this.onEndDrag(this.dragData,e)},onEndDrag:function(data,e){},autoOffset:function(x,y){this.setDelta(-12,-20)},destroy:function(){this.callParent();Ext.destroy(this.proxy)}});Ext.define("Ext.panel.DD",{extend:"Ext.dd.DragSource",requires:["Ext.panel.Proxy"],constructor:function(panel,cfg){this.panel=panel;this.dragData={panel:panel};this.proxy=Ext.create("Ext.panel.Proxy",panel,cfg);this.callParent([panel.el,cfg]);Ext.defer(function(){var header=panel.header,el=panel.body;if(header){this.setHandleElId(header.id);el=header.el}el.setStyle("cursor","move");this.scroll=false},200,this)},showFrame:Ext.emptyFn,startDrag:Ext.emptyFn,b4StartDrag:function(x,y){this.proxy.show()},b4MouseDown:function(e){var x=e.getPageX(),y=e.getPageY();this.autoOffset(x,y)},onInitDrag:function(x,y){this.onStartDrag(x,y);return true},createFrame:Ext.emptyFn,getDragEl:function(e){return this.proxy.ghost.el.dom},endDrag:function(e){this.proxy.hide();this.panel.saveState()},autoOffset:function(x,y){x-=this.startPageX;y-=this.startPageY;this.setDelta(x,y)}});Ext.define("Ext.layout.component.Dock",{alias:["layout.dock"],extend:"Ext.layout.component.AbstractDock"});Ext.define("Ext.panel.Panel",{extend:"Ext.panel.AbstractPanel",requires:["Ext.panel.Header","Ext.fx.Anim","Ext.util.KeyMap","Ext.panel.DD","Ext.XTemplate","Ext.layout.component.Dock","Ext.util.Memento"],alias:"widget.panel",alternateClassName:"Ext.Panel",collapsedCls:"collapsed",animCollapse:Ext.enableFx,minButtonWidth:75,collapsed:false,collapseFirst:true,hideCollapseTool:false,titleCollapse:false,floatable:true,collapsible:false,closable:false,closeAction:"destroy",preventHeader:false,headerPosition:"top",frame:false,frameHeader:true,initComponent:function(){var me=this,cls;me.addEvents("beforeclose","beforeexpand","beforecollapse","expand","collapse","titlechange","iconchange");this.addStateEvents("expand","collapse");if(me.unstyled){me.setUI("plain")}if(me.frame){me.setUI(me.ui+"-framed")}me.bridgeToolbars();me.callParent();me.collapseDirection=me.collapseDirection||me.headerPosition||Ext.Component.DIRECTION_TOP},setBorder:function(border){this.callParent(arguments)},beforeDestroy:function(){Ext.destroy(this.ghostPanel,this.dd);this.callParent()},initAria:function(){this.callParent();this.initHeaderAria()},initHeaderAria:function(){var me=this,el=me.el,header=me.header;if(el&&header){el.dom.setAttribute("aria-labelledby",header.titleCmp.id)}},getHeader:function(){return this.header},setTitle:function(newTitle){var me=this,oldTitle=this.title;me.title=newTitle;if(me.header){me.header.setTitle(newTitle)}else{me.updateHeader()}if(me.reExpander){me.reExpander.setTitle(newTitle)}me.fireEvent("titlechange",me,newTitle,oldTitle)},setIconCls:function(newIconCls){var me=this,oldIconCls=me.iconCls;me.iconCls=newIconCls;var header=me.header;if(header){header.setIconCls(newIconCls)}me.fireEvent("iconchange",me,newIconCls,oldIconCls)},bridgeToolbars:function(){var me=this,docked=[],fbar,fbarDefaults,minButtonWidth=me.minButtonWidth;function initToolbar(toolbar,pos,useButtonAlign){if(Ext.isArray(toolbar)){toolbar={xtype:"toolbar",items:toolbar}}else{if(!toolbar.xtype){toolbar.xtype="toolbar"}}toolbar.dock=pos;if(pos=="left"||pos=="right"){toolbar.vertical=true}if(useButtonAlign){toolbar.layout=Ext.applyIf(toolbar.layout||{},{pack:{left:"start",center:"center"}[me.buttonAlign]||"end"})}return toolbar}if(me.tbar){docked.push(initToolbar(me.tbar,"top"));me.tbar=null}if(me.bbar){docked.push(initToolbar(me.bbar,"bottom"));me.bbar=null}if(me.buttons){me.fbar=me.buttons;me.buttons=null}if(me.fbar){fbar=initToolbar(me.fbar,"bottom",true);fbar.ui="footer";if(minButtonWidth){fbarDefaults=fbar.defaults;fbar.defaults=function(config){var defaults=fbarDefaults||{};if((!config.xtype||config.xtype==="button"||(config.isComponent&&config.isXType("button")))&&!("minWidth" in defaults)){defaults=Ext.apply({minWidth:minButtonWidth},defaults)}return defaults}}docked.push(fbar);me.fbar=null}if(me.lbar){docked.push(initToolbar(me.lbar,"left"));me.lbar=null}if(me.rbar){docked.push(initToolbar(me.rbar,"right"));me.rbar=null}if(me.dockedItems){if(!Ext.isArray(me.dockedItems)){me.dockedItems=[me.dockedItems]}me.dockedItems=me.dockedItems.concat(docked)}else{me.dockedItems=docked}},initTools:function(){var me=this;me.tools=me.tools?Ext.Array.clone(me.tools):[];if(me.collapsible&&!(me.hideCollapseTool||me.header===false)){me.collapseDirection=me.collapseDirection||me.headerPosition||"top";me.collapseTool=me.expandTool=me.createComponent({xtype:"tool",type:"collapse-"+me.collapseDirection,expandType:me.getOppositeDirection(me.collapseDirection),handler:me.toggleCollapse,scope:me});if(me.collapseFirst){me.tools.unshift(me.collapseTool)}}me.addTools();if(me.closable){me.addClsWithUI("closable");me.addTool({type:"close",handler:Ext.Function.bind(me.close,this,[])})}if(me.collapseTool&&!me.collapseFirst){me.tools.push(me.collapseTool)}},addTools:Ext.emptyFn,close:function(){if(this.fireEvent("beforeclose",this)!==false){this.doClose()}},doClose:function(){this.fireEvent("close",this);this[this.closeAction]()},onRender:function(ct,position){var me=this,topContainer;me.initTools();me.updateHeader();me.callParent(arguments)},afterRender:function(){var me=this;me.callParent(arguments);if(me.collapsed){me.collapsed=false;me.collapse(null,false,true)}},updateHeader:function(force){var me=this,header=me.header,title=me.title,tools=me.tools;if(!me.preventHeader&&(force||title||(tools&&tools.length))){if(!header){header=me.header=Ext.create("Ext.panel.Header",{title:title,orientation:(me.headerPosition=="left"||me.headerPosition=="right")?"vertical":"horizontal",dock:me.headerPosition||"top",textCls:me.headerTextCls,iconCls:me.iconCls,baseCls:me.baseCls+"-header",tools:tools,ui:me.ui,indicateDrag:me.draggable,border:me.border,frame:me.frame&&me.frameHeader,ignoreParentFrame:me.frame||me.overlapHeader,ignoreBorderManagement:me.frame||me.ignoreHeaderBorderManagement,listeners:me.collapsible&&me.titleCollapse?{click:me.toggleCollapse,scope:me}:null});me.addDocked(header,0);me.tools=header.tools}header.show();me.initHeaderAria()}else{if(header){header.hide()}}},setUI:function(ui){var me=this;me.callParent(arguments);if(me.header){me.header.setUI(ui)}},getContentTarget:function(){return this.body},getTargetEl:function(){return this.body||this.frameBody||this.el},isVisible:function(deep){var me=this;if(me.collapsed&&me.placeholder){return me.placeholder.isVisible(deep)}return me.callParent(arguments)},onHide:function(){var me=this;if(me.collapsed&&me.placeholder){me.placeholder.hide()}else{me.callParent(arguments)}},onShow:function(){var me=this;if(me.collapsed&&me.placeholder){me.hidden=true;me.placeholder.show()}else{me.callParent(arguments)}},addTool:function(tool){var me=this,header=me.header;if(Ext.isArray(tool)){Ext.each(tool,me.addTool,me);return}me.tools.push(tool);if(header){header.addTool(tool)}me.updateHeader()},getOppositeDirection:function(d){var c=Ext.Component;switch(d){case c.DIRECTION_TOP:return c.DIRECTION_BOTTOM;case c.DIRECTION_RIGHT:return c.DIRECTION_LEFT;case c.DIRECTION_BOTTOM:return c.DIRECTION_TOP;case c.DIRECTION_LEFT:return c.DIRECTION_RIGHT}},collapse:function(direction,animate,internal){var me=this,c=Ext.Component,height=me.getHeight(),width=me.getWidth(),frameInfo,newSize=0,dockedItems=me.dockedItems.items,dockedItemCount=dockedItems.length,i=0,comp,pos,anim={from:{height:height,width:width},to:{height:height,width:width},listeners:{afteranimate:me.afterCollapse,scope:me},duration:Ext.Number.from(animate,Ext.fx.Anim.prototype.duration)},reExpander,reExpanderOrientation,reExpanderDock,getDimension,collapseDimension;if(!direction){direction=me.collapseDirection}if(internal){animate=false}else{if(me.collapsed||me.fireEvent("beforecollapse",me,direction,animate)===false){return false}}reExpanderDock=direction;me.expandDirection=me.getOppositeDirection(direction);me.hiddenDocked=[];switch(direction){case c.DIRECTION_TOP:case c.DIRECTION_BOTTOM:reExpanderOrientation="horizontal";collapseDimension="height";getDimension="getHeight";for(;i<dockedItemCount;i++){comp=dockedItems[i];if(comp.isVisible()){if(comp.isXType("header",true)&&(!comp.dock||comp.dock=="top"||comp.dock=="bottom")){reExpander=comp}else{me.hiddenDocked.push(comp)}}else{if(comp===me.reExpander){reExpander=comp}}}if(direction==Ext.Component.DIRECTION_BOTTOM){pos=me.getPosition()[1]-Ext.fly(me.el.dom.offsetParent).getRegion().top;anim.from.top=pos}break;case c.DIRECTION_LEFT:case c.DIRECTION_RIGHT:reExpanderOrientation="vertical";collapseDimension="width";getDimension="getWidth";for(;i<dockedItemCount;i++){comp=dockedItems[i];if(comp.isVisible()){if(comp.isHeader&&(comp.dock=="left"||comp.dock=="right")){reExpander=comp}else{me.hiddenDocked.push(comp)}}else{if(comp===me.reExpander){reExpander=comp}}}if(direction==Ext.Component.DIRECTION_RIGHT){pos=me.getPosition()[0]-Ext.fly(me.el.dom.offsetParent).getRegion().left;anim.from.left=pos}break;default:throw ("Panel collapse must be passed a valid Component collapse direction")}if(animate&&me.collapseTool){me.collapseTool.disable()}me.addClsWithUI(me.collapsedCls);if(reExpander&&reExpander.rendered){reExpander.addClsWithUI(me.collapsedCls);reExpander.addClsWithUI(me.collapsedCls+"-"+reExpander.dock);if(me.border&&(!me.frame||(me.frame&&Ext.supports.CSS3BorderRadius))){reExpander.addClsWithUI(me.collapsedCls+"-border-"+reExpander.dock)}frameInfo=reExpander.getFrameInfo();newSize=reExpander[getDimension]()+(frameInfo?frameInfo[direction]:0);reExpander.removeClsWithUI(me.collapsedCls);reExpander.removeClsWithUI(me.collapsedCls+"-"+reExpander.dock);if(me.border&&(!me.frame||(me.frame&&Ext.supports.CSS3BorderRadius))){reExpander.removeClsWithUI(me.collapsedCls+"-border-"+reExpander.dock)}}else{reExpander={hideMode:"offsets",temporary:true,title:me.title,orientation:reExpanderOrientation,dock:reExpanderDock,textCls:me.headerTextCls,iconCls:me.iconCls,baseCls:me.baseCls+"-header",ui:me.ui,frame:me.frame&&me.frameHeader,ignoreParentFrame:me.frame||me.overlapHeader,indicateDrag:me.draggable,cls:me.baseCls+"-collapsed-placeholder  "+Ext.baseCSSPrefix+"docked "+me.baseCls+"-"+me.ui+"-collapsed",renderTo:me.el};if(!me.hideCollapseTool){reExpander[(reExpander.orientation=="horizontal")?"tools":"items"]=[{xtype:"tool",type:"expand-"+me.expandDirection,handler:me.toggleCollapse,scope:me}]}reExpander=me.reExpander=Ext.create("Ext.panel.Header",reExpander);newSize=reExpander[getDimension]()+((reExpander.frame)?reExpander.frameSize[direction]:0);reExpander.hide();me.insertDocked(0,reExpander)}me.reExpander=reExpander;me.reExpander.addClsWithUI(me.collapsedCls);me.reExpander.addClsWithUI(me.collapsedCls+"-"+reExpander.dock);if(me.border&&(!me.frame||(me.frame&&Ext.supports.CSS3BorderRadius))){me.reExpander.addClsWithUI(me.collapsedCls+"-border-"+me.reExpander.dock)}if(direction==Ext.Component.DIRECTION_RIGHT){anim.to.left=pos+(width-newSize)}else{if(direction==Ext.Component.DIRECTION_BOTTOM){anim.to.top=pos+(height-newSize)}}anim.to[collapseDimension]=newSize;if(!me.collapseMemento){me.collapseMemento=new Ext.util.Memento(me)}me.collapseMemento.capture(["width","height","minWidth","minHeight","layoutManagedHeight","layoutManagedWidth"]);me.savedFlex=me.flex;me.minWidth=0;me.minHeight=0;delete me.flex;me.suspendLayout=true;if(animate){me.animate(anim)}else{me.setSize(anim.to.width,anim.to.height);if(Ext.isDefined(anim.to.left)||Ext.isDefined(anim.to.top)){me.setPosition(anim.to.left,anim.to.top)}me.afterCollapse(false,internal)}return me},afterCollapse:function(animated,internal){var me=this,i=0,l=me.hiddenDocked.length;me.collapseMemento.restore(["minWidth","minHeight"]);if(Ext.Component.VERTICAL_DIRECTION_Re.test(me.expandDirection)){me.layoutManagedHeight=2;me.collapseMemento.restore("width",false)}else{me.layoutManagedWidth=2;me.collapseMemento.restore("height",false)}me.saveScrollTop=me.body.dom.scrollTop;me.body.setStyle("display","none");for(;i<l;i++){me.hiddenDocked[i].hide()}if(me.reExpander){me.reExpander.updateFrame();me.reExpander.show()}me.collapsed=true;me.suspendLayout=false;if(!internal){if(me.ownerCt){if(animated){me.ownerCt.layout.layout()}}else{if(me.reExpander.temporary){me.doComponentLayout()}}}if(me.resizer){me.resizer.disable()}if(me.collapseTool){me.collapseTool.setType("expand-"+me.expandDirection)}if(!internal){me.fireEvent("collapse",me)}if(animated&&me.collapseTool){me.collapseTool.enable()}},expand:function(animate){var me=this;if(!me.collapsed||me.fireEvent("beforeexpand",me,animate)===false){return false}var i=0,l=me.hiddenDocked.length,direction=me.expandDirection,height=me.getHeight(),width=me.getWidth(),pos,anim;if(animate&&me.collapseTool){me.collapseTool.disable()}for(;i<l;i++){me.hiddenDocked[i].hidden=false;me.hiddenDocked[i].el.show()}if(me.reExpander){if(me.reExpander.temporary){me.reExpander.hide()}else{me.reExpander.removeClsWithUI(me.collapsedCls);me.reExpander.removeClsWithUI(me.collapsedCls+"-"+me.reExpander.dock);if(me.border&&(!me.frame||(me.frame&&Ext.supports.CSS3BorderRadius))){me.reExpander.removeClsWithUI(me.collapsedCls+"-border-"+me.reExpander.dock)}me.reExpander.updateFrame()}}if(me.collapseTool){me.collapseTool.setType("collapse-"+me.collapseDirection)}me.body.setStyle("display","");me.body.dom.scrollTop=me.saveScrollTop;me.collapsed=false;me.removeClsWithUI(me.collapsedCls);anim={to:{},from:{height:height,width:width},listeners:{afteranimate:me.afterExpand,scope:me}};if((direction==Ext.Component.DIRECTION_TOP)||(direction==Ext.Component.DIRECTION_BOTTOM)){me.collapseMemento.restore("height",false);if(me.height===undefined){me.setCalculatedSize(me.width,null);anim.to.height=me.getHeight();me.setCalculatedSize(me.width,anim.from.height)}else{if(me.savedFlex){me.flex=me.savedFlex;anim.to.height=me.ownerCt.layout.calculateChildBox(me).height;delete me.flex}else{anim.to.height=me.height}}if(direction==Ext.Component.DIRECTION_TOP){pos=me.getPosition()[1]-Ext.fly(me.el.dom.offsetParent).getRegion().top;anim.from.top=pos;anim.to.top=pos-(anim.to.height-height)}}else{if((direction==Ext.Component.DIRECTION_LEFT)||(direction==Ext.Component.DIRECTION_RIGHT)){me.collapseMemento.restore("width",false);if(me.width===undefined){me.setCalculatedSize(null,me.height);anim.to.width=me.getWidth();me.setCalculatedSize(anim.from.width,me.height)}else{if(me.savedFlex){me.flex=me.savedFlex;anim.to.width=me.ownerCt.layout.calculateChildBox(me).width;delete me.flex}else{anim.to.width=me.width}}if(direction==Ext.Component.DIRECTION_LEFT){pos=me.getPosition()[0]-Ext.fly(me.el.dom.offsetParent).getRegion().left;anim.from.left=pos;anim.to.left=pos-(anim.to.width-width)}}}if(animate){me.animate(anim)}else{me.setCalculatedSize(anim.to.width,anim.to.height);if(anim.to.x){me.setLeft(anim.to.x)}if(anim.to.y){me.setTop(anim.to.y)}me.afterExpand(false)}return me},afterExpand:function(animated){var me=this;if(me.savedFlex){me.flex=me.savedFlex;delete me.savedFlex;delete me.width;delete me.height}if(me.collapseMemento){me.collapseMemento.restoreAll()}if(animated&&me.ownerCt){Ext.defer(me.ownerCt.doLayout,Ext.isIE6?1:0,me)}if(me.resizer){me.resizer.enable()}me.fireEvent("expand",me);if(animated&&me.collapseTool){me.collapseTool.enable()}},toggleCollapse:function(){if(this.collapsed){this.expand(this.animCollapse)}else{this.collapse(this.collapseDirection,this.animCollapse)}return this},getKeyMap:function(){if(!this.keyMap){this.keyMap=Ext.create("Ext.util.KeyMap",this.el,this.keys)}return this.keyMap},initDraggable:function(){this.dd=Ext.create("Ext.panel.DD",this,Ext.isBoolean(this.draggable)?null:this.draggable)},ghostTools:function(){var tools=[],headerTools=this.header.query("tool[hidden=false]");if(headerTools.length){Ext.each(headerTools,function(tool){tools.push({type:tool.type})})}else{tools=[{type:"placeholder"}]}return tools},ghost:function(cls){var me=this,ghostPanel=me.ghostPanel,box=me.getBox(),header;if(!ghostPanel){ghostPanel=Ext.create("Ext.panel.Panel",{renderTo:me.floating?me.el.dom.parentNode:document.body,floating:{shadow:false},frame:Ext.supports.CSS3BorderRadius?me.frame:false,overlapHeader:me.overlapHeader,headerPosition:me.headerPosition,baseCls:me.baseCls,cls:me.baseCls+"-ghost "+(cls||"")});me.ghostPanel=ghostPanel}ghostPanel.floatParent=me.floatParent;if(me.floating){ghostPanel.setZIndex(Ext.Number.from(me.el.getStyle("zIndex"),0))}else{ghostPanel.toFront()}header=ghostPanel.header;if(header){header.suspendLayout=true;Ext.Array.forEach(header.query("tool"),function(tool){header.remove(tool)});header.suspendLayout=false}ghostPanel.addTool(me.ghostTools());ghostPanel.setTitle(me.title);ghostPanel.setIconCls(me.iconCls);ghostPanel.el.show();ghostPanel.setPosition(box.x,box.y);ghostPanel.setSize(box.width,box.height);me.el.hide();if(me.floatingItems){me.floatingItems.hide()}return ghostPanel},unghost:function(show,matchPosition){var me=this;if(!me.ghostPanel){return}if(show!==false){me.el.show();if(matchPosition!==false){me.setPosition(me.ghostPanel.getPosition())}if(me.floatingItems){me.floatingItems.show()}Ext.defer(me.focus,10,me)}me.ghostPanel.el.hide()},initResizable:function(resizable){if(this.collapsed){resizable.disabled=true}this.callParent([resizable])}},function(){this.prototype.animCollapse=Ext.enableFx});Ext.define("Ext.layout.component.Tip",{alias:["layout.tip"],extend:"Ext.layout.component.Dock",type:"tip",onLayout:function(width,height){var me=this,owner=me.owner,el=owner.el,minWidth,maxWidth,naturalWidth,constrainedWidth,xy=el.getXY();el.setXY([-9999,-9999]);this.callParent(arguments);if(!Ext.isNumber(width)){minWidth=owner.minWidth;maxWidth=owner.maxWidth;if(Ext.isStrict&&(Ext.isIE6||Ext.isIE7)){constrainedWidth=me.doAutoWidth()}else{naturalWidth=el.getWidth()}if(naturalWidth<minWidth){constrainedWidth=minWidth}else{if(naturalWidth>maxWidth){constrainedWidth=maxWidth}}if(constrainedWidth){this.callParent([constrainedWidth,height])}}el.setXY(xy)},doAutoWidth:function(){var me=this,owner=me.owner,body=owner.body,width=body.getTextWidth();if(owner.header){width=Math.max(width,owner.header.getWidth())}if(!Ext.isDefined(me.frameWidth)){me.frameWidth=owner.el.getWidth()-body.getWidth()}width+=me.frameWidth+body.getPadding("lr");return width}});Ext.define("Ext.tip.Tip",{extend:"Ext.panel.Panel",requires:["Ext.layout.component.Tip"],alternateClassName:"Ext.Tip",minWidth:40,maxWidth:300,shadow:"sides",defaultAlign:"tl-bl?",constrainPosition:true,frame:false,autoRender:true,hidden:true,baseCls:Ext.baseCSSPrefix+"tip",floating:{shadow:true,shim:true,constrain:true},focusOnToFront:false,componentLayout:"tip",closeAction:"hide",ariaRole:"tooltip",initComponent:function(){var me=this;me.floating=Ext.apply({},{shadow:me.shadow},me.self.prototype.floating);me.callParent(arguments);me.constrain=me.constrain||me.constrainPosition},showAt:function(xy){var me=this;this.callParent(arguments);if(me.isVisible()){me.setPagePosition(xy[0],xy[1]);if(me.constrainPosition||me.constrain){me.doConstrain()}me.toFront(true)}},showBy:function(el,pos){this.showAt(this.el.getAlignToXY(el,pos||this.defaultAlign))},initDraggable:function(){var me=this;me.draggable={el:me.getDragEl(),delegate:me.header.el,constrain:me,constrainTo:me.el.getScopeParent()};Ext.Component.prototype.initDraggable.call(me)},ghost:undefined,unghost:undefined});Ext.define("Ext.tip.ToolTip",{extend:"Ext.tip.Tip",alias:"widget.tooltip",alternateClassName:"Ext.ToolTip",showDelay:500,hideDelay:200,dismissDelay:5000,trackMouse:false,anchorToTarget:true,anchorOffset:0,targetCounter:0,quickShowInterval:250,initComponent:function(){var me=this;me.callParent(arguments);me.lastActive=new Date();me.setTarget(me.target);me.origAnchor=me.anchor},onRender:function(ct,position){var me=this;me.callParent(arguments);me.anchorCls=Ext.baseCSSPrefix+"tip-anchor-"+me.getAnchorPosition();me.anchorEl=me.el.createChild({cls:Ext.baseCSSPrefix+"tip-anchor "+me.anchorCls})},afterRender:function(){var me=this,zIndex;me.callParent(arguments);zIndex=parseInt(me.el.getZIndex(),10)||0;me.anchorEl.setStyle("z-index",zIndex+1).setVisibilityMode(Ext.Element.DISPLAY)},setTarget:function(target){var me=this,t=Ext.get(target),tg;if(me.target){tg=Ext.get(me.target);me.mun(tg,"mouseover",me.onTargetOver,me);me.mun(tg,"mouseout",me.onTargetOut,me);me.mun(tg,"mousemove",me.onMouseMove,me)}me.target=t;if(t){me.mon(t,{freezeEvent:true,mouseover:me.onTargetOver,mouseout:me.onTargetOut,mousemove:me.onMouseMove,scope:me})}if(me.anchor){me.anchorTarget=me.target}},onMouseMove:function(e){var me=this,t=me.delegate?e.getTarget(me.delegate):me.triggerElement=true,xy;if(t){me.targetXY=e.getXY();if(t===me.triggerElement){if(!me.hidden&&me.trackMouse){xy=me.getTargetXY();if(me.constrainPosition){xy=me.el.adjustForConstraints(xy,me.el.getScopeParent())}me.setPagePosition(xy)}}else{me.hide();me.lastActive=new Date(0);me.onTargetOver(e)}}else{if((!me.closable&&me.isVisible())&&me.autoHide!==false){me.hide()}}},getTargetXY:function(){var me=this,mouseOffset;if(me.delegate){me.anchorTarget=me.triggerElement}if(me.anchor){me.targetCounter++;var offsets=me.getOffsets(),xy=(me.anchorToTarget&&!me.trackMouse)?me.el.getAlignToXY(me.anchorTarget,me.getAnchorAlign()):me.targetXY,dw=Ext.Element.getViewWidth()-5,dh=Ext.Element.getViewHeight()-5,de=document.documentElement,bd=document.body,scrollX=(de.scrollLeft||bd.scrollLeft||0)+5,scrollY=(de.scrollTop||bd.scrollTop||0)+5,axy=[xy[0]+offsets[0],xy[1]+offsets[1]],sz=me.getSize(),constrainPosition=me.constrainPosition;me.anchorEl.removeCls(me.anchorCls);if(me.targetCounter<2&&constrainPosition){if(axy[0]<scrollX){if(me.anchorToTarget){me.defaultAlign="l-r";if(me.mouseOffset){me.mouseOffset[0]*=-1}}me.anchor="left";return me.getTargetXY()}if(axy[0]+sz.width>dw){if(me.anchorToTarget){me.defaultAlign="r-l";if(me.mouseOffset){me.mouseOffset[0]*=-1}}me.anchor="right";return me.getTargetXY()}if(axy[1]<scrollY){if(me.anchorToTarget){me.defaultAlign="t-b";if(me.mouseOffset){me.mouseOffset[1]*=-1}}me.anchor="top";return me.getTargetXY()}if(axy[1]+sz.height>dh){if(me.anchorToTarget){me.defaultAlign="b-t";if(me.mouseOffset){me.mouseOffset[1]*=-1}}me.anchor="bottom";return me.getTargetXY()}}me.anchorCls=Ext.baseCSSPrefix+"tip-anchor-"+me.getAnchorPosition();me.anchorEl.addCls(me.anchorCls);me.targetCounter=0;return axy}else{mouseOffset=me.getMouseOffset();return(me.targetXY)?[me.targetXY[0]+mouseOffset[0],me.targetXY[1]+mouseOffset[1]]:mouseOffset}},getMouseOffset:function(){var me=this,offset=me.anchor?[0,0]:[15,18];if(me.mouseOffset){offset[0]+=me.mouseOffset[0];offset[1]+=me.mouseOffset[1]}return offset},getAnchorPosition:function(){var me=this,m;if(me.anchor){me.tipAnchor=me.anchor.charAt(0)}else{m=me.defaultAlign.match(/^([a-z]+)-([a-z]+)(\?)?$/);me.tipAnchor=m[1].charAt(0)}switch(me.tipAnchor){case"t":return"top";case"b":return"bottom";case"r":return"right"}return"left"},getAnchorAlign:function(){switch(this.anchor){case"top":return"tl-bl";case"left":return"tl-tr";case"right":return"tr-tl";default:return"bl-tl"}},getOffsets:function(){var me=this,mouseOffset,offsets,ap=me.getAnchorPosition().charAt(0);if(me.anchorToTarget&&!me.trackMouse){switch(ap){case"t":offsets=[0,9];break;case"b":offsets=[0,-13];break;case"r":offsets=[-13,0];break;default:offsets=[9,0];break}}else{switch(ap){case"t":offsets=[-15-me.anchorOffset,30];break;case"b":offsets=[-19-me.anchorOffset,-13-me.el.dom.offsetHeight];break;case"r":offsets=[-15-me.el.dom.offsetWidth,-13-me.anchorOffset];break;default:offsets=[25,-13-me.anchorOffset];break}}mouseOffset=me.getMouseOffset();offsets[0]+=mouseOffset[0];offsets[1]+=mouseOffset[1];return offsets},onTargetOver:function(e){var me=this,t;if(me.disabled||e.within(me.target.dom,true)){return}t=e.getTarget(me.delegate);if(t){me.triggerElement=t;me.clearTimer("hide");me.targetXY=e.getXY();me.delayShow()}},delayShow:function(){var me=this;if(me.hidden&&!me.showTimer){if(Ext.Date.getElapsed(me.lastActive)<me.quickShowInterval){me.show()}else{me.showTimer=Ext.defer(me.show,me.showDelay,me)}}else{if(!me.hidden&&me.autoHide!==false){me.show()}}},onTargetOut:function(e){var me=this;if(me.disabled||e.within(me.target.dom,true)){return}me.clearTimer("show");if(me.autoHide!==false){me.delayHide()}},delayHide:function(){var me=this;if(!me.hidden&&!me.hideTimer){me.hideTimer=Ext.defer(me.hide,me.hideDelay,me)}},hide:function(){var me=this;me.clearTimer("dismiss");me.lastActive=new Date();if(me.anchorEl){me.anchorEl.hide()}me.callParent(arguments);delete me.triggerElement},show:function(){var me=this;this.callParent();if(this.hidden===false){me.setPagePosition(-10000,-10000);if(me.anchor){me.anchor=me.origAnchor}me.showAt(me.getTargetXY());if(me.anchor){me.syncAnchor();me.anchorEl.show()}else{me.anchorEl.hide()}}},showAt:function(xy){var me=this;me.lastActive=new Date();me.clearTimers();if(!me.isVisible()){this.callParent(arguments)}if(me.isVisible()){me.setPagePosition(xy[0],xy[1]);if(me.constrainPosition||me.constrain){me.doConstrain()}me.toFront(true)}if(me.dismissDelay&&me.autoHide!==false){me.dismissTimer=Ext.defer(me.hide,me.dismissDelay,me)}if(me.anchor){me.syncAnchor();if(!me.anchorEl.isVisible()){me.anchorEl.show()}}else{me.anchorEl.hide()}},syncAnchor:function(){var me=this,anchorPos,targetPos,offset;switch(me.tipAnchor.charAt(0)){case"t":anchorPos="b";targetPos="tl";offset=[20+me.anchorOffset,1];break;case"r":anchorPos="l";targetPos="tr";offset=[-1,12+me.anchorOffset];break;case"b":anchorPos="t";targetPos="bl";offset=[20+me.anchorOffset,-1];break;default:anchorPos="r";targetPos="tl";offset=[1,12+me.anchorOffset];break}me.anchorEl.alignTo(me.el,anchorPos+"-"+targetPos,offset)},setPagePosition:function(x,y){var me=this;me.callParent(arguments);if(me.anchor){me.syncAnchor()}},clearTimer:function(name){name=name+"Timer";clearTimeout(this[name]);delete this[name]},clearTimers:function(){var me=this;me.clearTimer("show");me.clearTimer("dismiss");me.clearTimer("hide")},onShow:function(){var me=this;me.callParent();me.mon(Ext.getDoc(),"mousedown",me.onDocMouseDown,me)},onHide:function(){var me=this;me.callParent();me.mun(Ext.getDoc(),"mousedown",me.onDocMouseDown,me)},onDocMouseDown:function(e){var me=this;if(me.autoHide!==true&&!me.closable&&!e.within(me.el.dom)){me.disable();Ext.defer(me.doEnable,100,me)}},doEnable:function(){if(!this.isDestroyed){this.enable()}},onDisable:function(){this.callParent();this.clearTimers();this.hide()},beforeDestroy:function(){var me=this;me.clearTimers();Ext.destroy(me.anchorEl);delete me.anchorEl;delete me.target;delete me.anchorTarget;delete me.triggerElement;me.callParent()},onDestroy:function(){Ext.getDoc().un("mousedown",this.onDocMouseDown,this);this.callParent()}});Ext.define("Ext.tip.QuickTip",{extend:"Ext.tip.ToolTip",alternateClassName:"Ext.QuickTip",interceptTitles:false,title:"&#160;",tagConfig:{namespace:"data-",attribute:"qtip",width:"qwidth",target:"target",title:"qtitle",hide:"hide",cls:"qclass",align:"qalign",anchor:"anchor"},initComponent:function(){var me=this;me.target=me.target||Ext.getDoc();me.targets=me.targets||{};me.callParent()},register:function(config){var configs=Ext.isArray(config)?config:arguments,i=0,len=configs.length,target,j,targetLen;for(;i<len;i++){config=configs[i];target=config.target;if(target){if(Ext.isArray(target)){for(j=0,targetLen=target.length;j<targetLen;j++){this.targets[Ext.id(target[j])]=config}}else{this.targets[Ext.id(target)]=config}}}},unregister:function(el){delete this.targets[Ext.id(el)]},cancelShow:function(el){var me=this,activeTarget=me.activeTarget;el=Ext.get(el).dom;if(me.isVisible()){if(activeTarget&&activeTarget.el==el){me.hide()}}else{if(activeTarget&&activeTarget.el==el){me.clearTimer("show")}}},getTipCfg:function(e){var t=e.getTarget(),titleText=t.title,cfg;if(this.interceptTitles&&titleText&&Ext.isString(titleText)){t.qtip=titleText;t.removeAttribute("title");e.preventDefault();return{text:titleText}}else{cfg=this.tagConfig;t=e.getTarget("["+cfg.namespace+cfg.attribute+"]");if(t){return{target:t,text:t.getAttribute(cfg.namespace+cfg.attribute)}}}},onTargetOver:function(e){var me=this,target=e.getTarget(),elTarget,cfg,ns,tipConfig,autoHide;if(me.disabled){return}me.targetXY=e.getXY();if(!target||target.nodeType!==1||target==document||target==document.body){return}if(me.activeTarget&&((target==me.activeTarget.el)||Ext.fly(me.activeTarget.el).contains(target))){me.clearTimer("hide");me.show();return}if(target){Ext.Object.each(me.targets,function(key,value){var targetEl=Ext.fly(value.target);if(targetEl&&(targetEl.dom===target||targetEl.contains(target))){elTarget=targetEl.dom;return false}});if(elTarget){me.activeTarget=me.targets[elTarget.id];me.activeTarget.el=target;me.anchor=me.activeTarget.anchor;if(me.anchor){me.anchorTarget=target}me.delayShow();return}}elTarget=Ext.get(target);cfg=me.tagConfig;ns=cfg.namespace;tipConfig=me.getTipCfg(e);if(tipConfig){if(tipConfig.target){target=tipConfig.target;elTarget=Ext.get(target)}autoHide=elTarget.getAttribute(ns+cfg.hide);me.activeTarget={el:target,text:tipConfig.text,width:+elTarget.getAttribute(ns+cfg.width)||null,autoHide:autoHide!="user"&&autoHide!=="false",title:elTarget.getAttribute(ns+cfg.title),cls:elTarget.getAttribute(ns+cfg.cls),align:elTarget.getAttribute(ns+cfg.align)};me.anchor=elTarget.getAttribute(ns+cfg.anchor);if(me.anchor){me.anchorTarget=target}me.delayShow()}},onTargetOut:function(e){var me=this;if(me.activeTarget&&e.within(me.activeTarget.el)&&!me.getTipCfg(e)){return}me.clearTimer("show");if(me.autoHide!==false){me.delayHide()}},showAt:function(xy){var me=this,target=me.activeTarget;if(target){if(!me.rendered){me.render(Ext.getBody());me.activeTarget=target}if(target.title){me.setTitle(target.title||"");me.header.show()}else{me.header.hide()}me.body.update(target.text);me.autoHide=target.autoHide;me.dismissDelay=target.dismissDelay||me.dismissDelay;if(me.lastCls){me.el.removeCls(me.lastCls);delete me.lastCls}if(target.cls){me.el.addCls(target.cls);me.lastCls=target.cls}me.setWidth(target.width);if(me.anchor){me.constrainPosition=false}else{if(target.align){xy=me.el.getAlignToXY(target.el,target.align);me.constrainPosition=false}else{me.constrainPosition=true}}}me.callParent([xy])},hide:function(){delete this.activeTarget;this.callParent()}});Ext.define("Ext.tip.QuickTipManager",function(){var tip,disabled=false;return{requires:["Ext.tip.QuickTip"],singleton:true,alternateClassName:"Ext.QuickTips",init:function(autoRender,config){if(!tip){if(!Ext.isReady){Ext.onReady(function(){Ext.tip.QuickTipManager.init(autoRender)});return}var tipConfig=Ext.apply({disabled:disabled},config),className=tipConfig.className,xtype=tipConfig.xtype;if(className){delete tipConfig.className}else{if(xtype){className="widget."+xtype;delete tipConfig.xtype}}if(autoRender!==false){tipConfig.renderTo=document.body}tip=Ext.create(className||"Ext.tip.QuickTip",tipConfig)}},destroy:function(){if(tip){var undef;tip.destroy();tip=undef}},ddDisable:function(){if(tip&&!disabled){tip.disable()}},ddEnable:function(){if(tip&&!disabled){tip.enable()}},enable:function(){if(tip){tip.enable()}disabled=false},disable:function(){if(tip){tip.disable()}disabled=true},isEnabled:function(){return tip!==undefined&&!tip.disabled},getQuickTip:function(){return tip},register:function(){tip.register.apply(tip,arguments)},unregister:function(){tip.unregister.apply(tip,arguments)},tips:function(){tip.register.apply(tip,arguments)}}}());Ext.define("Ext.app.Application",{extend:"Ext.app.Controller",requires:["Ext.ModelManager","Ext.data.Model","Ext.data.StoreManager","Ext.tip.QuickTipManager","Ext.ComponentManager","Ext.app.EventBus"],scope:undefined,enableQuickTips:true,appFolder:"app",autoCreateViewport:false,constructor:function(config){config=config||{};Ext.apply(this,config);var requires=config.requires||[];Ext.Loader.setPath(this.name,this.appFolder);if(this.paths){Ext.Object.each(this.paths,function(key,value){Ext.Loader.setPath(key,value)})}this.callParent(arguments);this.eventbus=Ext.create("Ext.app.EventBus");var controllers=Ext.Array.from(this.controllers),ln=controllers&&controllers.length,i,controller;this.controllers=Ext.create("Ext.util.MixedCollection");if(this.autoCreateViewport){requires.push(this.getModuleClassName("Viewport","view"))}for(i=0;i<ln;i++){requires.push(this.getModuleClassName(controllers[i],"controller"))}Ext.require(requires);Ext.onReady(function(){for(i=0;i<ln;i++){controller=this.getController(controllers[i]);controller.init(this)}this.onBeforeLaunch.call(this)},this)},control:function(selectors,listeners,controller){this.eventbus.control(selectors,listeners,controller)},launch:Ext.emptyFn,onBeforeLaunch:function(){if(this.enableQuickTips){Ext.tip.QuickTipManager.init()}if(this.autoCreateViewport){this.getView("Viewport").create()}this.launch.call(this.scope||this);this.launched=true;this.fireEvent("launch",this);this.controllers.each(function(controller){controller.onLaunch(this)},this)},getModuleClassName:function(name,type){var namespace=Ext.Loader.getPrefix(name);if(namespace.length>0&&namespace!==name){return name}return this.name+"."+type+"."+name},getController:function(name){var controller=this.controllers.get(name);if(!controller){controller=Ext.create(this.getModuleClassName(name,"controller"),{application:this,id:name});this.controllers.add(controller)}return controller},getStore:function(name){var store=Ext.StoreManager.get(name);if(!store){store=Ext.create(this.getModuleClassName(name,"store"),{storeId:name})}return store},getModel:function(model){model=this.getModuleClassName(model,"model");return Ext.ModelManager.getModel(model)},getView:function(view){view=this.getModuleClassName(view,"view");return Ext.ClassManager.get(view)}});Ext.define("Ext.chart.Callout",{constructor:function(config){if(config.callouts){config.callouts.styles=Ext.applyIf(config.callouts.styles||{},{color:"#000",font:"11px Helvetica, sans-serif"});this.callouts=Ext.apply(this.callouts||{},config.callouts);this.calloutsArray=[]}},renderCallouts:function(){if(!this.callouts){return}var me=this,items=me.items,animate=me.chart.animate,config=me.callouts,styles=config.styles,group=me.calloutsArray,store=me.chart.store,len=store.getCount(),ratio=items.length/len,previouslyPlacedCallouts=[],i,count,j,p;for(i=0,count=0;i<len;i++){for(j=0;j<ratio;j++){var item=items[count],label=group[count],storeItem=store.getAt(i),display;display=config.filter(storeItem);if(!display&&!label){count++;continue}if(!label){group[count]=label=me.onCreateCallout(storeItem,item,i,display,j,count)}for(p in label){if(label[p]&&label[p].setAttributes){label[p].setAttributes(styles,true)}}if(!display){for(p in label){if(label[p]){if(label[p].setAttributes){label[p].setAttributes({hidden:true},true)}else{if(label[p].setVisible){label[p].setVisible(false)}}}}}config.renderer(label,storeItem);me.onPlaceCallout(label,storeItem,item,i,display,animate,j,count,previouslyPlacedCallouts);previouslyPlacedCallouts.push(label);count++}}this.hideCallouts(count)},onCreateCallout:function(storeItem,item,i,display){var me=this,group=me.calloutsGroup,config=me.callouts,styles=config.styles,width=styles.width,height=styles.height,chart=me.chart,surface=chart.surface,calloutObj={lines:false};calloutObj.lines=surface.add(Ext.apply({},{type:"path",path:"M0,0",stroke:me.getLegendColor()||"#555"},styles));if(config.items){calloutObj.panel=Ext.create("widget.panel",{style:"position: absolute;",width:width,height:height,items:config.items,renderTo:chart.el})}return calloutObj},hideCallouts:function(index){var calloutsArray=this.calloutsArray,len=calloutsArray.length,co,p;while(len-->index){co=calloutsArray[len];for(p in co){if(co[p]){co[p].hide(true)}}}}});Ext.define("Ext.draw.CompositeSprite",{extend:"Ext.util.MixedCollection",mixins:{animate:"Ext.util.Animate"},isCompositeSprite:true,constructor:function(config){var me=this;config=config||{};Ext.apply(me,config);me.addEvents("mousedown","mouseup","mouseover","mouseout","click");me.id=Ext.id(null,"ext-sprite-group-");me.callParent()},onClick:function(e){this.fireEvent("click",e)},onMouseUp:function(e){this.fireEvent("mouseup",e)},onMouseDown:function(e){this.fireEvent("mousedown",e)},onMouseOver:function(e){this.fireEvent("mouseover",e)},onMouseOut:function(e){this.fireEvent("mouseout",e)},attachEvents:function(o){var me=this;o.on({scope:me,mousedown:me.onMouseDown,mouseup:me.onMouseUp,mouseover:me.onMouseOver,mouseout:me.onMouseOut,click:me.onClick})},add:function(key,o){var result=this.callParent(arguments);this.attachEvents(result);return result},insert:function(index,key,o){return this.callParent(arguments)},remove:function(o){var me=this;o.un({scope:me,mousedown:me.onMouseDown,mouseup:me.onMouseUp,mouseover:me.onMouseOver,mouseout:me.onMouseOut,click:me.onClick});return me.callParent(arguments)},getBBox:function(){var i=0,sprite,bb,items=this.items,len=this.length,infinity=Infinity,minX=infinity,maxHeight=-infinity,minY=infinity,maxWidth=-infinity,maxWidthBBox,maxHeightBBox;for(;i<len;i++){sprite=items[i];if(sprite.el){bb=sprite.getBBox();minX=Math.min(minX,bb.x);minY=Math.min(minY,bb.y);maxHeight=Math.max(maxHeight,bb.height+bb.y);maxWidth=Math.max(maxWidth,bb.width+bb.x)}}return{x:minX,y:minY,height:maxHeight-minY,width:maxWidth-minX}},setAttributes:function(attrs,redraw){var i=0,items=this.items,len=this.length;for(;i<len;i++){items[i].setAttributes(attrs,redraw)}return this},hide:function(redraw){var i=0,items=this.items,len=this.length;for(;i<len;i++){items[i].hide(redraw)}return this},show:function(redraw){var i=0,items=this.items,len=this.length;for(;i<len;i++){items[i].show(redraw)}return this},redraw:function(){var me=this,i=0,items=me.items,surface=me.getSurface(),len=me.length;if(surface){for(;i<len;i++){surface.renderItem(items[i])}}return me},setStyle:function(obj){var i=0,items=this.items,len=this.length,item,el;for(;i<len;i++){item=items[i];el=item.el;if(el){el.setStyle(obj)}}},addCls:function(obj){var i=0,items=this.items,surface=this.getSurface(),len=this.length;if(surface){for(;i<len;i++){surface.addCls(items[i],obj)}}},removeCls:function(obj){var i=0,items=this.items,surface=this.getSurface(),len=this.length;if(surface){for(;i<len;i++){surface.removeCls(items[i],obj)}}},getSurface:function(){var first=this.first();if(first){return first.surface}return null},destroy:function(){var me=this,surface=me.getSurface(),item;if(surface){while(me.getCount()>0){item=me.first();me.remove(item);surface.remove(item)}}me.clearListeners()}});Ext.define("Ext.layout.component.Auto",{alias:"layout.autocomponent",extend:"Ext.layout.component.Component",type:"autocomponent",onLayout:function(width,height){this.setTargetSize(width,height)}});Ext.define("Ext.chart.theme.Theme",{requires:["Ext.draw.Color"],theme:"Base",themeAttrs:false,initTheme:function(theme){var me=this,themes=Ext.chart.theme,key,gradients;if(theme){theme=theme.split(":");for(key in themes){if(key==theme[0]){gradients=theme[1]=="gradients";me.themeAttrs=new themes[key]({useGradients:gradients});if(gradients){me.gradients=me.themeAttrs.gradients}if(me.themeAttrs.background){me.background=me.themeAttrs.background}return}}}}},function(){(function(){Ext.chart.theme=function(config,base){config=config||{};var i=0,l,colors,color,seriesThemes,markerThemes,seriesTheme,markerTheme,key,gradients=[],midColor,midL;if(config.baseColor){midColor=Ext.draw.Color.fromString(config.baseColor);midL=midColor.getHSL()[2];if(midL<0.15){midColor=midColor.getLighter(0.3)}else{if(midL<0.3){midColor=midColor.getLighter(0.15)}else{if(midL>0.85){midColor=midColor.getDarker(0.3)}else{if(midL>0.7){midColor=midColor.getDarker(0.15)}}}}config.colors=[midColor.getDarker(0.3).toString(),midColor.getDarker(0.15).toString(),midColor.toString(),midColor.getLighter(0.15).toString(),midColor.getLighter(0.3).toString()];delete config.baseColor}if(config.colors){colors=config.colors.slice();markerThemes=base.markerThemes;seriesThemes=base.seriesThemes;l=colors.length;base.colors=colors;for(;i<l;i++){color=colors[i];markerTheme=markerThemes[i]||{};seriesTheme=seriesThemes[i]||{};markerTheme.fill=seriesTheme.fill=markerTheme.stroke=seriesTheme.stroke=color;markerThemes[i]=markerTheme;seriesThemes[i]=seriesTheme}base.markerThemes=markerThemes.slice(0,l);base.seriesThemes=seriesThemes.slice(0,l)}for(key in base){if(key in config){if(Ext.isObject(config[key])&&Ext.isObject(base[key])){Ext.apply(base[key],config[key])}else{base[key]=config[key]}}}if(config.useGradients){colors=base.colors||(function(){var ans=[];for(i=0,seriesThemes=base.seriesThemes,l=seriesThemes.length;i<l;i++){ans.push(seriesThemes[i].fill||seriesThemes[i].stroke)}return ans})();for(i=0,l=colors.length;i<l;i++){midColor=Ext.draw.Color.fromString(colors[i]);if(midColor){color=midColor.getDarker(0.1).toString();midColor=midColor.toString();key="theme-"+midColor.substr(1)+"-"+color.substr(1);gradients.push({id:key,angle:45,stops:{0:{color:midColor.toString()},100:{color:color.toString()}}});colors[i]="url(#"+key+")"}}base.gradients=gradients;base.colors=colors}Ext.apply(this,base)}})()});Ext.define("Ext.chart.Mask",{require:["Ext.chart.MaskLayer"],constructor:function(config){var me=this;me.addEvents("select");if(config){Ext.apply(me,config)}if(me.mask){me.on("afterrender",function(){var comp=Ext.create("Ext.chart.MaskLayer",{renderTo:me.el});comp.el.on({mousemove:function(e){me.onMouseMove(e)},mouseup:function(e){me.resized(e)}});var resizeHandler=Ext.create("Ext.resizer.Resizer",{el:comp.el,handles:"all",pinned:true});resizeHandler.on({resize:function(e){me.resized(e)}});comp.initDraggable();me.maskType=me.mask;me.mask=comp;me.maskSprite=me.surface.add({type:"path",path:["M",0,0],zIndex:1001,opacity:0.7,hidden:true,stroke:"#444"})},me,{single:true})}},resized:function(e){var me=this,bbox=me.bbox||me.chartBBox,x=bbox.x,y=bbox.y,width=bbox.width,height=bbox.height,box=me.mask.getBox(true),max=Math.max,min=Math.min,staticX=box.x-x,staticY=box.y-y;staticX=max(staticX,x);staticY=max(staticY,y);staticX=min(staticX,width);staticY=min(staticY,height);box.x=staticX;box.y=staticY;me.fireEvent("select",me,box)},onMouseUp:function(e){var me=this,bbox=me.bbox||me.chartBBox,sel=me.maskSelection;me.maskMouseDown=false;me.mouseDown=false;if(me.mouseMoved){me.onMouseMove(e);me.mouseMoved=false;me.fireEvent("select",me,{x:sel.x-bbox.x,y:sel.y-bbox.y,width:sel.width,height:sel.height})}},onMouseDown:function(e){var me=this;me.mouseDown=true;me.mouseMoved=false;me.maskMouseDown={x:e.getPageX()-me.el.getX(),y:e.getPageY()-me.el.getY()}},onMouseMove:function(e){var me=this,mask=me.maskType,bbox=me.bbox||me.chartBBox,x=bbox.x,y=bbox.y,math=Math,floor=math.floor,abs=math.abs,min=math.min,max=math.max,height=floor(y+bbox.height),width=floor(x+bbox.width),posX=e.getPageX(),posY=e.getPageY(),staticX=posX-me.el.getX(),staticY=posY-me.el.getY(),maskMouseDown=me.maskMouseDown,path;me.mouseMoved=me.mouseDown;staticX=max(staticX,x);staticY=max(staticY,y);staticX=min(staticX,width);staticY=min(staticY,height);if(maskMouseDown&&me.mouseDown){if(mask=="horizontal"){staticY=y;maskMouseDown.y=height;posY=me.el.getY()+bbox.height+me.insetPadding}else{if(mask=="vertical"){staticX=x;maskMouseDown.x=width}}width=maskMouseDown.x-staticX;height=maskMouseDown.y-staticY;path=["M",staticX,staticY,"l",width,0,0,height,-width,0,"z"];me.maskSelection={x:width>0?staticX:staticX+width,y:height>0?staticY:staticY+height,width:abs(width),height:abs(height)};me.mask.updateBox(me.maskSelection);me.mask.show();me.maskSprite.setAttributes({hidden:true},true)}else{if(mask=="horizontal"){path=["M",staticX,y,"L",staticX,height]}else{if(mask=="vertical"){path=["M",x,staticY,"L",width,staticY]}else{path=["M",staticX,y,"L",staticX,height,"M",x,staticY,"L",width,staticY]}}me.maskSprite.setAttributes({path:path,fill:me.maskMouseDown?me.maskSprite.stroke:false,"stroke-width":mask===true?1:3,hidden:false},true)}},onMouseLeave:function(e){var me=this;me.mouseMoved=false;me.mouseDown=false;me.maskMouseDown=false;me.mask.hide();me.maskSprite.hide(true)}});Ext.define("Ext.chart.Navigation",{constructor:function(){this.originalStore=this.store},setZoom:function(zoomConfig){var me=this,axes=me.axes,bbox=me.chartBBox,xScale=1/bbox.width,yScale=1/bbox.height,zoomer={x:zoomConfig.x*xScale,y:zoomConfig.y*yScale,width:zoomConfig.width*xScale,height:zoomConfig.height*yScale};axes.each(function(axis){var ends=axis.calcEnds();if(axis.position=="bottom"||axis.position=="top"){var from=(ends.to-ends.from)*zoomer.x+ends.from,to=(ends.to-ends.from)*zoomer.width+from;axis.minimum=from;axis.maximum=to}else{var to=(ends.to-ends.from)*(1-zoomer.y)+ends.from,from=to-(ends.to-ends.from)*zoomer.height;axis.minimum=from;axis.maximum=to}});me.redraw(false)},restoreZoom:function(){this.store=this.substore=this.originalStore;this.redraw(true)}});Ext.define("Ext.chart.Shape",{singleton:true,circle:function(surface,opts){return surface.add(Ext.apply({type:"circle",x:opts.x,y:opts.y,stroke:null,radius:opts.radius},opts))},line:function(surface,opts){return surface.add(Ext.apply({type:"rect",x:opts.x-opts.radius,y:opts.y-opts.radius,height:2*opts.radius,width:2*opts.radius/5},opts))},square:function(surface,opts){return surface.add(Ext.applyIf({type:"rect",x:opts.x-opts.radius,y:opts.y-opts.radius,height:2*opts.radius,width:2*opts.radius,radius:null},opts))},triangle:function(surface,opts){opts.radius*=1.75;return surface.add(Ext.apply({type:"path",stroke:null,path:"M".concat(opts.x,",",opts.y,"m0-",opts.radius*0.58,"l",opts.radius*0.5,",",opts.radius*0.87,"-",opts.radius,",0z")},opts))},diamond:function(surface,opts){var r=opts.radius;r*=1.5;return surface.add(Ext.apply({type:"path",stroke:null,path:["M",opts.x,opts.y-r,"l",r,r,-r,r,-r,-r,r,-r,"z"]},opts))},cross:function(surface,opts){var r=opts.radius;r=r/1.7;return surface.add(Ext.apply({type:"path",stroke:null,path:"M".concat(opts.x-r,",",opts.y,"l",[-r,-r,r,-r,r,r,r,-r,r,r,-r,r,r,r,-r,r,-r,-r,-r,r,-r,-r,"z"])},opts))},plus:function(surface,opts){var r=opts.radius/1.3;return surface.add(Ext.apply({type:"path",stroke:null,path:"M".concat(opts.x-r/2,",",opts.y-r/2,"l",[0,-r,r,0,0,r,r,0,0,r,-r,0,0,r,-r,0,0,-r,-r,0,0,-r,"z"])},opts))},arrow:function(surface,opts){var r=opts.radius;return surface.add(Ext.apply({type:"path",path:"M".concat(opts.x-r*0.7,",",opts.y-r*0.4,"l",[r*0.6,0,0,-r*0.4,r,r*0.8,-r,r*0.8,0,-r*0.4,-r*0.6,0],"z")},opts))},drop:function(surface,x,y,text,size,angle){size=size||30;angle=angle||0;surface.add({type:"path",path:["M",x,y,"l",size,0,"A",size*0.4,size*0.4,0,1,0,x+size*0.7,y-size*0.7,"z"],fill:"#000",stroke:"none",rotate:{degrees:22.5-angle,x:x,y:y}});angle=(angle+90)*Math.PI/180;surface.add({type:"text",x:x+size*Math.sin(angle)-10,y:y+size*Math.cos(angle)+5,text:text,"font-size":size*12/40,stroke:"none",fill:"#fff"})}});Ext.define("Ext.draw.Surface",{mixins:{observable:"Ext.util.Observable"},requires:["Ext.draw.CompositeSprite"],uses:["Ext.draw.engine.Svg","Ext.draw.engine.Vml"],separatorRe:/[, ]+/,statics:{create:function(config,enginePriority){enginePriority=enginePriority||["Svg","Vml"];var i=0,len=enginePriority.length,surfaceClass;for(;i<len;i++){if(Ext.supports[enginePriority[i]]){return Ext.create("Ext.draw.engine."+enginePriority[i],config)}}return false}},availableAttrs:{blur:0,"clip-rect":"0 0 1e9 1e9",cursor:"default",cx:0,cy:0,"dominant-baseline":"auto",fill:"none","fill-opacity":1,font:'10px "Arial"',"font-family":'"Arial"',"font-size":"10","font-style":"normal","font-weight":400,gradient:"",height:0,hidden:false,href:"http://sencha.com/",opacity:1,path:"M0,0",radius:0,rx:0,ry:0,scale:"1 1",src:"",stroke:"#000","stroke-dasharray":"","stroke-linecap":"butt","stroke-linejoin":"butt","stroke-miterlimit":0,"stroke-opacity":1,"stroke-width":1,target:"_blank",text:"","text-anchor":"middle",title:"Ext Draw",width:0,x:0,y:0,zIndex:0},container:undefined,height:352,width:512,x:0,y:0,orderSpritesByZIndex:true,constructor:function(config){var me=this;config=config||{};Ext.apply(me,config);me.domRef=Ext.getDoc().dom;me.customAttributes={};me.addEvents("mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","click");me.mixins.observable.constructor.call(me);me.getId();me.initGradients();me.initItems();if(me.renderTo){me.render(me.renderTo);delete me.renderTo}me.initBackground(config.background)},initSurface:Ext.emptyFn,renderItem:Ext.emptyFn,renderItems:Ext.emptyFn,setViewBox:function(x,y,width,height){if(isFinite(x)&&isFinite(y)&&isFinite(width)&&isFinite(height)){this.viewBox={x:x,y:y,width:width,height:height};this.applyViewBox()}},addCls:Ext.emptyFn,removeCls:Ext.emptyFn,setStyle:Ext.emptyFn,initGradients:function(){var gradients=this.gradients;if(gradients){Ext.each(gradients,this.addGradient,this)}},initItems:function(){var items=this.items;this.items=Ext.create("Ext.draw.CompositeSprite");this.groups=Ext.create("Ext.draw.CompositeSprite");if(items){this.add(items)}},initBackground:function(config){var me=this,width=me.width,height=me.height,gradientId,gradient,backgroundSprite;if(config){if(config.gradient){gradient=config.gradient;gradientId=gradient.id;me.addGradient(gradient);me.background=me.add({type:"rect",x:0,y:0,width:width,height:height,fill:"url(#"+gradientId+")"})}else{if(config.fill){me.background=me.add({type:"rect",x:0,y:0,width:width,height:height,fill:config.fill})}else{if(config.image){me.background=me.add({type:"image",x:0,y:0,width:width,height:height,src:config.image})}}}}},setSize:function(w,h){if(this.background){this.background.setAttributes({width:w,height:h,hidden:false},true)}this.applyViewBox()},scrubAttrs:function(sprite){var i,attrs={},exclude={},sattr=sprite.attr;for(i in sattr){if(this.translateAttrs.hasOwnProperty(i)){attrs[this.translateAttrs[i]]=sattr[i];exclude[this.translateAttrs[i]]=true}else{if(this.availableAttrs.hasOwnProperty(i)&&!exclude[i]){attrs[i]=sattr[i]}}}return attrs},onClick:function(e){this.processEvent("click",e)},onMouseUp:function(e){this.processEvent("mouseup",e)},onMouseDown:function(e){this.processEvent("mousedown",e)},onMouseOver:function(e){this.processEvent("mouseover",e)},onMouseOut:function(e){this.processEvent("mouseout",e)},onMouseMove:function(e){this.fireEvent("mousemove",e)},onMouseEnter:Ext.emptyFn,onMouseLeave:Ext.emptyFn,addGradient:Ext.emptyFn,add:function(){var args=Array.prototype.slice.call(arguments),sprite,index;var hasMultipleArgs=args.length>1;if(hasMultipleArgs||Ext.isArray(args[0])){var items=hasMultipleArgs?args:args[0],results=[],i,ln,item;for(i=0,ln=items.length;i<ln;i++){item=items[i];item=this.add(item);results.push(item)}return results}sprite=this.prepareItems(args[0],true)[0];this.insertByZIndex(sprite);this.onAdd(sprite);return sprite},insertByZIndex:function(sprite){var me=this,sprites=me.items.items,len=sprites.length,ceil=Math.ceil,zIndex=sprite.attr.zIndex,idx=len,high=idx-1,low=0,otherZIndex;if(me.orderSpritesByZIndex&&len&&zIndex<sprites[high].attr.zIndex){while(low<=high){idx=ceil((low+high)/2);otherZIndex=sprites[idx].attr.zIndex;if(otherZIndex>zIndex){high=idx-1}else{if(otherZIndex<zIndex){low=idx+1}else{break}}}while(idx<len&&sprites[idx].attr.zIndex<=zIndex){idx++}}me.items.insert(idx,sprite);return idx},onAdd:function(sprite){var group=sprite.group,draggable=sprite.draggable,groups,ln,i;if(group){groups=[].concat(group);ln=groups.length;for(i=0;i<ln;i++){group=groups[i];this.getGroup(group).add(sprite)}delete sprite.group}if(draggable){sprite.initDraggable()}},remove:function(sprite,destroySprite){if(sprite){this.items.remove(sprite);this.groups.each(function(item){item.remove(sprite)});sprite.onRemove();if(destroySprite===true){sprite.destroy()}}},removeAll:function(destroySprites){var items=this.items.items,ln=items.length,i;for(i=ln-1;i>-1;i--){this.remove(items[i],destroySprites)}},onRemove:Ext.emptyFn,onDestroy:Ext.emptyFn,applyViewBox:function(){var me=this,viewBox=me.viewBox,width=me.width,height=me.height,viewBoxX,viewBoxY,viewBoxWidth,viewBoxHeight,relativeHeight,relativeWidth,size;if(viewBox&&(width||height)){viewBoxX=viewBox.x;viewBoxY=viewBox.y;viewBoxWidth=viewBox.width;viewBoxHeight=viewBox.height;relativeHeight=height/viewBoxHeight;relativeWidth=width/viewBoxWidth;if(viewBoxWidth*relativeHeight<width){viewBoxX-=(width-viewBoxWidth*relativeHeight)/2/relativeHeight}if(viewBoxHeight*relativeWidth<height){viewBoxY-=(height-viewBoxHeight*relativeWidth)/2/relativeWidth}size=1/Math.min(viewBoxWidth,relativeHeight);me.viewBoxShift={dx:-viewBoxX,dy:-viewBoxY,scale:size}}},transformToViewBox:function(x,y){if(this.viewBoxShift){var me=this,shift=me.viewBoxShift;return[x*shift.scale-shift.dx,y*shift.scale-shift.dy]}else{return[x,y]}},applyTransformations:function(sprite){sprite.bbox.transform=0;this.transform(sprite);var me=this,dirty=false,attr=sprite.attr;if(attr.translation.x!=null||attr.translation.y!=null){me.translate(sprite);dirty=true}if(attr.scaling.x!=null||attr.scaling.y!=null){me.scale(sprite);dirty=true}if(attr.rotation.degrees!=null){me.rotate(sprite);dirty=true}if(dirty){sprite.bbox.transform=0;this.transform(sprite);sprite.transformations=[]}},rotate:function(sprite){var bbox,deg=sprite.attr.rotation.degrees,centerX=sprite.attr.rotation.x,centerY=sprite.attr.rotation.y;if(!Ext.isNumber(centerX)||!Ext.isNumber(centerY)){bbox=this.getBBox(sprite);centerX=!Ext.isNumber(centerX)?bbox.x+bbox.width/2:centerX;centerY=!Ext.isNumber(centerY)?bbox.y+bbox.height/2:centerY}sprite.transformations.push({type:"rotate",degrees:deg,x:centerX,y:centerY})},translate:function(sprite){var x=sprite.attr.translation.x||0,y=sprite.attr.translation.y||0;sprite.transformations.push({type:"translate",x:x,y:y})},scale:function(sprite){var bbox,x=sprite.attr.scaling.x||1,y=sprite.attr.scaling.y||1,centerX=sprite.attr.scaling.centerX,centerY=sprite.attr.scaling.centerY;if(!Ext.isNumber(centerX)||!Ext.isNumber(centerY)){bbox=this.getBBox(sprite);centerX=!Ext.isNumber(centerX)?bbox.x+bbox.width/2:centerX;centerY=!Ext.isNumber(centerY)?bbox.y+bbox.height/2:centerY}sprite.transformations.push({type:"scale",x:x,y:y,centerX:centerX,centerY:centerY})},rectPath:function(x,y,w,h,r){if(r){return[["M",x+r,y],["l",w-r*2,0],["a",r,r,0,0,1,r,r],["l",0,h-r*2],["a",r,r,0,0,1,-r,r],["l",r*2-w,0],["a",r,r,0,0,1,-r,-r],["l",0,r*2-h],["a",r,r,0,0,1,r,-r],["z"]]}return[["M",x,y],["l",w,0],["l",0,h],["l",-w,0],["z"]]},ellipsePath:function(x,y,rx,ry){if(ry==null){ry=rx}return[["M",x,y],["m",0,-ry],["a",rx,ry,0,1,1,0,2*ry],["a",rx,ry,0,1,1,0,-2*ry],["z"]]},getPathpath:function(el){return el.attr.path},getPathcircle:function(el){var a=el.attr;return this.ellipsePath(a.x,a.y,a.radius,a.radius)},getPathellipse:function(el){var a=el.attr;return this.ellipsePath(a.x,a.y,a.radiusX||(a.width/2)||0,a.radiusY||(a.height/2)||0)},getPathrect:function(el){var a=el.attr;return this.rectPath(a.x,a.y,a.width,a.height,a.r)},getPathimage:function(el){var a=el.attr;return this.rectPath(a.x||0,a.y||0,a.width,a.height)},getPathtext:function(el){var bbox=this.getBBoxText(el);return this.rectPath(bbox.x,bbox.y,bbox.width,bbox.height)},createGroup:function(id){var group=this.groups.get(id);if(!group){group=Ext.create("Ext.draw.CompositeSprite",{surface:this});group.id=id||Ext.id(null,"ext-surface-group-");this.groups.add(group)}return group},getGroup:function(id){if(typeof id=="string"){var group=this.groups.get(id);if(!group){group=this.createGroup(id)}}else{group=id}return group},prepareItems:function(items,applyDefaults){items=[].concat(items);var item,i,ln;for(i=0,ln=items.length;i<ln;i++){item=items[i];if(!(item instanceof Ext.draw.Sprite)){item.surface=this;items[i]=this.createItem(item)}else{item.surface=this}}return items},setText:Ext.emptyFn,createItem:Ext.emptyFn,getId:function(){return this.id||(this.id=Ext.id(null,"ext-surface-"))},destroy:function(){delete this.domRef;this.removeAll()}});Ext.define("Ext.layout.component.Draw",{alias:"layout.draw",extend:"Ext.layout.component.Auto",type:"draw",onLayout:function(width,height){this.owner.surface.setSize(width,height);this.callParent(arguments)}});Ext.define("Ext.draw.Component",{alias:"widget.draw",extend:"Ext.Component",requires:["Ext.draw.Surface","Ext.layout.component.Draw"],enginePriority:["Svg","Vml"],baseCls:Ext.baseCSSPrefix+"surface",componentLayout:"draw",viewBox:true,autoSize:false,initComponent:function(){this.callParent(arguments);this.addEvents("mousedown","mouseup","mousemove","mouseenter","mouseleave","click")},onRender:function(){var me=this,viewBox=me.viewBox,autoSize=me.autoSize,bbox,items,width,height,x,y;me.callParent(arguments);if(me.createSurface()!==false){items=me.surface.items;if(viewBox||autoSize){bbox=items.getBBox();width=bbox.width;height=bbox.height;x=bbox.x;y=bbox.y;if(me.viewBox){me.surface.setViewBox(x,y,width,height)}else{me.autoSizeSurface()}}}},autoSizeSurface:function(){var me=this,items=me.surface.items,bbox=items.getBBox(),width=bbox.width,height=bbox.height;items.setAttributes({translate:{x:-bbox.x,y:-bbox.y+(+Ext.isOpera)}},true);if(me.rendered){me.setSize(width,height);me.surface.setSize(width,height)}else{me.surface.setSize(width,height)}me.el.setSize(width,height)},createSurface:function(){var surface=Ext.draw.Surface.create(Ext.apply({},{width:this.width,height:this.height,renderTo:this.el},this.initialConfig));if(!surface){return false}this.surface=surface;function refire(eventName){return function(e){this.fireEvent(eventName,e)}}surface.on({scope:this,mouseup:refire("mouseup"),mousedown:refire("mousedown"),mousemove:refire("mousemove"),mouseenter:refire("mouseenter"),mouseleave:refire("mouseleave"),click:refire("click")})},onDestroy:function(){var surface=this.surface;if(surface){surface.destroy()}this.callParent(arguments)}});Ext.define("Ext.chart.LegendItem",{extend:"Ext.draw.CompositeSprite",requires:["Ext.chart.Shape"],x:0,y:0,zIndex:500,constructor:function(config){this.callParent(arguments);this.createLegend(config)},createLegend:function(config){var me=this,index=config.yFieldIndex,series=me.series,seriesType=series.type,idx=me.yFieldIndex,legend=me.legend,surface=me.surface,refX=legend.x+me.x,refY=legend.y+me.y,bbox,z=me.zIndex,markerConfig,label,mask,radius,toggle=false,seriesStyle=Ext.apply(series.seriesStyle,series.style);function getSeriesProp(name){var val=series[name];return(Ext.isArray(val)?val[idx]:val)}label=me.add("label",surface.add({type:"text",x:20,y:0,zIndex:z||0,font:legend.labelFont,text:getSeriesProp("title")||getSeriesProp("yField")}));if(seriesType==="line"||seriesType==="scatter"){if(seriesType==="line"){me.add("line",surface.add({type:"path",path:"M0.5,0.5L16.5,0.5",zIndex:z,"stroke-width":series.lineWidth,"stroke-linejoin":"round","stroke-dasharray":series.dash,stroke:seriesStyle.stroke||"#000",style:{cursor:"pointer"}}))}if(series.showMarkers||seriesType==="scatter"){markerConfig=Ext.apply(series.markerStyle,series.markerConfig||{});me.add("marker",Ext.chart.Shape[markerConfig.type](surface,{fill:markerConfig.fill,x:8.5,y:0.5,zIndex:z,radius:markerConfig.radius||markerConfig.size,style:{cursor:"pointer"}}))}}else{me.add("box",surface.add({type:"rect",zIndex:z,x:0,y:0,width:12,height:12,fill:series.getLegendColor(index),style:{cursor:"pointer"}}))}me.setAttributes({hidden:false},true);bbox=me.getBBox();mask=me.add("mask",surface.add({type:"rect",x:bbox.x,y:bbox.y,width:bbox.width||20,height:bbox.height||20,zIndex:(z||0)+1000,fill:"#f00",opacity:0,style:{cursor:"pointer"}}));me.on("mouseover",function(){label.setStyle({"font-weight":"bold"});mask.setStyle({cursor:"pointer"});series._index=index;series.highlightItem()},me);me.on("mouseout",function(){label.setStyle({"font-weight":"normal"});series._index=index;series.unHighlightItem()},me);if(!series.visibleInLegend(index)){toggle=true;label.setAttributes({opacity:0.5},true)}me.on("mousedown",function(){if(!toggle){series.hideAll();label.setAttributes({opacity:0.5},true)}else{series.showAll();label.setAttributes({opacity:1},true)}toggle=!toggle},me);me.updatePosition({x:0,y:0})},updatePosition:function(relativeTo){var me=this,items=me.items,ln=items.length,i=0,item;if(!relativeTo){relativeTo=me.legend}for(;i<ln;i++){item=items[i];switch(item.type){case"text":item.setAttributes({x:20+relativeTo.x+me.x,y:relativeTo.y+me.y},true);break;case"rect":item.setAttributes({translate:{x:relativeTo.x+me.x,y:relativeTo.y+me.y-6}},true);break;default:item.setAttributes({translate:{x:relativeTo.x+me.x,y:relativeTo.y+me.y}},true)}}}});Ext.define("Ext.chart.Legend",{requires:["Ext.chart.LegendItem"],visible:true,position:"bottom",x:0,y:0,labelFont:"12px Helvetica, sans-serif",boxStroke:"#000",boxStrokeWidth:1,boxFill:"#FFF",itemSpacing:10,padding:5,width:0,height:0,boxZIndex:100,constructor:function(config){var me=this;if(config){Ext.apply(me,config)}me.items=[];me.isVertical=("left|right|float".indexOf(me.position)!==-1);me.origX=me.x;me.origY=me.y},create:function(){var me=this;me.createBox();me.createItems();if(!me.created&&me.isDisplayed()){me.created=true;me.chart.series.each(function(series){series.on("titlechange",function(){me.create();me.updatePosition()})})}},isDisplayed:function(){return this.visible&&this.chart.series.findIndex("showInLegend",true)!==-1},createItems:function(){var me=this,chart=me.chart,surface=chart.surface,items=me.items,padding=me.padding,itemSpacing=me.itemSpacing,spacingOffset=2,maxWidth=0,maxHeight=0,totalWidth=0,totalHeight=0,vertical=me.isVertical,math=Math,mfloor=math.floor,mmax=math.max,index=0,i=0,len=items?items.length:0,x,y,spacing,item,bbox,height,width;if(len){for(;i<len;i++){items[i].destroy()}}items.length=[];chart.series.each(function(series,i){if(series.showInLegend){Ext.each([].concat(series.yField),function(field,j){item=Ext.create("Ext.chart.LegendItem",{legend:this,series:series,surface:chart.surface,yFieldIndex:j});bbox=item.getBBox();width=bbox.width;height=bbox.height;if(i+j===0){spacing=vertical?padding+height/2:padding}else{spacing=itemSpacing/(vertical?2:1)}item.x=mfloor(vertical?padding:totalWidth+spacing);item.y=mfloor(vertical?totalHeight+spacing:padding+height/2);totalWidth+=width+spacing;totalHeight+=height+spacing;maxWidth=mmax(maxWidth,width);maxHeight=mmax(maxHeight,height);items.push(item)},this)}},me);me.width=mfloor((vertical?maxWidth:totalWidth)+padding*2);if(vertical&&items.length===1){spacingOffset=1}me.height=mfloor((vertical?totalHeight-spacingOffset*spacing:maxHeight)+(padding*2));me.itemHeight=maxHeight},getBBox:function(){var me=this;return{x:Math.round(me.x)-me.boxStrokeWidth/2,y:Math.round(me.y)-me.boxStrokeWidth/2,width:me.width,height:me.height}},createBox:function(){var me=this,box;if(me.boxSprite){me.boxSprite.destroy()}box=me.boxSprite=me.chart.surface.add(Ext.apply({type:"rect",stroke:me.boxStroke,"stroke-width":me.boxStrokeWidth,fill:me.boxFill,zIndex:me.boxZIndex},me.getBBox()));box.redraw()},updatePosition:function(){var me=this,x,y,legendWidth=me.width,legendHeight=me.height,padding=me.padding,chart=me.chart,chartBBox=chart.chartBBox,insets=chart.insetPadding,chartWidth=chartBBox.width-(insets*2),chartHeight=chartBBox.height-(insets*2),chartX=chartBBox.x+insets,chartY=chartBBox.y+insets,surface=chart.surface,mfloor=Math.floor;if(me.isDisplayed()){switch(me.position){case"left":x=insets;y=mfloor(chartY+chartHeight/2-legendHeight/2);break;case"right":x=mfloor(surface.width-legendWidth)-insets;y=mfloor(chartY+chartHeight/2-legendHeight/2);break;case"top":x=mfloor(chartX+chartWidth/2-legendWidth/2);y=insets;break;case"bottom":x=mfloor(chartX+chartWidth/2-legendWidth/2);y=mfloor(surface.height-legendHeight)-insets;break;default:x=mfloor(me.origX)+insets;y=mfloor(me.origY)+insets}me.x=x;me.y=y;Ext.each(me.items,function(item){item.updatePosition()});me.boxSprite.setAttributes(me.getBBox(),true)}}});Ext.define("Ext.chart.Chart",{alias:"widget.chart",extend:"Ext.draw.Component",mixins:{themeManager:"Ext.chart.theme.Theme",mask:"Ext.chart.Mask",navigation:"Ext.chart.Navigation"},requires:["Ext.util.MixedCollection","Ext.data.StoreManager","Ext.chart.Legend","Ext.util.DelayedTask"],viewBox:false,animate:false,legend:false,insetPadding:10,enginePriority:["Svg","Vml"],background:false,constructor:function(config){var me=this,defaultAnim;config=Ext.apply({},config);me.initTheme(config.theme||me.theme);if(me.gradients){Ext.apply(config,{gradients:me.gradients})}if(me.background){Ext.apply(config,{background:me.background})}if(config.animate){defaultAnim={easing:"ease",duration:500};if(Ext.isObject(config.animate)){config.animate=Ext.applyIf(config.animate,defaultAnim)}else{config.animate=defaultAnim}}me.mixins.mask.constructor.call(me,config);me.mixins.navigation.constructor.call(me,config);me.callParent([config])},getChartStore:function(){return this.substore||this.store},initComponent:function(){var me=this,axes,series;me.callParent();me.addEvents("itemmousedown","itemmouseup","itemmouseover","itemmouseout","itemclick","itemdoubleclick","itemdragstart","itemdrag","itemdragend","beforerefresh","refresh");Ext.applyIf(me,{zoom:{width:1,height:1,x:0,y:0}});me.maxGutter=[0,0];me.store=Ext.data.StoreManager.lookup(me.store);axes=me.axes;me.axes=Ext.create("Ext.util.MixedCollection",false,function(a){return a.position});if(axes){me.axes.addAll(axes)}series=me.series;me.series=Ext.create("Ext.util.MixedCollection",false,function(a){return a.seriesId||(a.seriesId=Ext.id(null,"ext-chart-series-"))});if(series){me.series.addAll(series)}if(me.legend!==false){me.legend=Ext.create("Ext.chart.Legend",Ext.applyIf({chart:me},me.legend))}me.on({mousemove:me.onMouseMove,mouseleave:me.onMouseLeave,mousedown:me.onMouseDown,mouseup:me.onMouseUp,scope:me})},afterComponentLayout:function(width,height){var me=this;if(Ext.isNumber(width)&&Ext.isNumber(height)){me.curWidth=width;me.curHeight=height;me.redraw(true)}this.callParent(arguments)},redraw:function(resize){var me=this,chartBBox=me.chartBBox={x:0,y:0,height:me.curHeight,width:me.curWidth},legend=me.legend;me.surface.setSize(chartBBox.width,chartBBox.height);me.series.each(me.initializeSeries,me);me.axes.each(me.initializeAxis,me);me.axes.each(function(axis){axis.processView()});me.axes.each(function(axis){axis.drawAxis(true)});if(legend!==false){legend.create()}me.alignAxes();if(me.legend!==false){legend.updatePosition()}me.getMaxGutter();me.resizing=!!resize;me.axes.each(me.drawAxis,me);me.series.each(me.drawCharts,me);me.resizing=false},afterRender:function(){var ref,me=this;this.callParent();if(me.categoryNames){me.setCategoryNames(me.categoryNames)}if(me.tipRenderer){ref=me.getFunctionRef(me.tipRenderer);me.setTipRenderer(ref.fn,ref.scope)}me.bindStore(me.store,true);me.refresh()},getEventXY:function(e){var me=this,box=this.surface.getRegion(),pageXY=e.getXY(),x=pageXY[0]-box.left,y=pageXY[1]-box.top;return[x,y]},onClick:function(e){var me=this,position=me.getEventXY(e),item;me.series.each(function(series){if(Ext.draw.Draw.withinBox(position[0],position[1],series.bbox)){if(series.getItemForPoint){item=series.getItemForPoint(position[0],position[1]);if(item){series.fireEvent("itemclick",item)}}}},me)},onMouseDown:function(e){var me=this,position=me.getEventXY(e),item;if(me.mask){me.mixins.mask.onMouseDown.call(me,e)}me.series.each(function(series){if(Ext.draw.Draw.withinBox(position[0],position[1],series.bbox)){if(series.getItemForPoint){item=series.getItemForPoint(position[0],position[1]);if(item){series.fireEvent("itemmousedown",item)}}}},me)},onMouseUp:function(e){var me=this,position=me.getEventXY(e),item;if(me.mask){me.mixins.mask.onMouseUp.call(me,e)}me.series.each(function(series){if(Ext.draw.Draw.withinBox(position[0],position[1],series.bbox)){if(series.getItemForPoint){item=series.getItemForPoint(position[0],position[1]);if(item){series.fireEvent("itemmouseup",item)}}}},me)},onMouseMove:function(e){var me=this,position=me.getEventXY(e),item,last,storeItem,storeField;if(me.mask){me.mixins.mask.onMouseMove.call(me,e)}me.series.each(function(series){if(Ext.draw.Draw.withinBox(position[0],position[1],series.bbox)){if(series.getItemForPoint){item=series.getItemForPoint(position[0],position[1]);last=series._lastItemForPoint;storeItem=series._lastStoreItem;storeField=series._lastStoreField;if(item!==last||item&&(item.storeItem!=storeItem||item.storeField!=storeField)){if(last){series.fireEvent("itemmouseout",last);delete series._lastItemForPoint;delete series._lastStoreField;delete series._lastStoreItem}if(item){series.fireEvent("itemmouseover",item);series._lastItemForPoint=item;series._lastStoreItem=item.storeItem;series._lastStoreField=item.storeField}}}}else{last=series._lastItemForPoint;if(last){series.fireEvent("itemmouseout",last);delete series._lastItemForPoint;delete series._lastStoreField;delete series._lastStoreItem}}},me)},onMouseLeave:function(e){var me=this;if(me.mask){me.mixins.mask.onMouseLeave.call(me,e)}me.series.each(function(series){delete series._lastItemForPoint})},delayRefresh:function(){var me=this;if(!me.refreshTask){me.refreshTask=Ext.create("Ext.util.DelayedTask",me.refresh,me)}me.refreshTask.delay(me.refreshBuffer)},refresh:function(){var me=this;if(me.rendered&&me.curWidth!==undefined&&me.curHeight!==undefined){if(me.fireEvent("beforerefresh",me)!==false){me.redraw();me.fireEvent("refresh",me)}}},bindStore:function(store,initial){var me=this;if(!initial&&me.store){if(store!==me.store&&me.store.autoDestroy){me.store.destroyStore()}else{me.store.un("datachanged",me.refresh,me);me.store.un("add",me.delayRefresh,me);me.store.un("remove",me.delayRefresh,me);me.store.un("update",me.delayRefresh,me);me.store.un("clear",me.refresh,me)}}if(store){store=Ext.data.StoreManager.lookup(store);store.on({scope:me,datachanged:me.refresh,add:me.delayRefresh,remove:me.delayRefresh,update:me.delayRefresh,clear:me.refresh})}me.store=store;if(store&&!initial){me.refresh()}},initializeAxis:function(axis){var me=this,chartBBox=me.chartBBox,w=chartBBox.width,h=chartBBox.height,x=chartBBox.x,y=chartBBox.y,themeAttrs=me.themeAttrs,config={chart:me};if(themeAttrs){config.axisStyle=Ext.apply({},themeAttrs.axis);config.axisLabelLeftStyle=Ext.apply({},themeAttrs.axisLabelLeft);config.axisLabelRightStyle=Ext.apply({},themeAttrs.axisLabelRight);config.axisLabelTopStyle=Ext.apply({},themeAttrs.axisLabelTop);config.axisLabelBottomStyle=Ext.apply({},themeAttrs.axisLabelBottom);config.axisTitleLeftStyle=Ext.apply({},themeAttrs.axisTitleLeft);config.axisTitleRightStyle=Ext.apply({},themeAttrs.axisTitleRight);config.axisTitleTopStyle=Ext.apply({},themeAttrs.axisTitleTop);config.axisTitleBottomStyle=Ext.apply({},themeAttrs.axisTitleBottom)}switch(axis.position){case"top":Ext.apply(config,{length:w,width:h,x:x,y:y});break;case"bottom":Ext.apply(config,{length:w,width:h,x:x,y:h});break;case"left":Ext.apply(config,{length:h,width:w,x:x,y:h});break;case"right":Ext.apply(config,{length:h,width:w,x:w,y:h});break}if(!axis.chart){Ext.apply(config,axis);axis=me.axes.replace(Ext.createByAlias("axis."+axis.type.toLowerCase(),config))}else{Ext.apply(axis,config)}},alignAxes:function(){var me=this,axes=me.axes,legend=me.legend,edges=["top","right","bottom","left"],chartBBox,insetPadding=me.insetPadding,insets={top:insetPadding,right:insetPadding,bottom:insetPadding,left:insetPadding};function getAxis(edge){var i=axes.findIndex("position",edge);return(i<0)?null:axes.getAt(i)}Ext.each(edges,function(edge){var isVertical=(edge==="left"||edge==="right"),axis=getAxis(edge),bbox;if(legend!==false){if(legend.position===edge){bbox=legend.getBBox();insets[edge]+=(isVertical?bbox.width:bbox.height)+insets[edge]}}if(axis&&axis.bbox){bbox=axis.bbox;insets[edge]+=(isVertical?bbox.width:bbox.height)}});chartBBox={x:insets.left,y:insets.top,width:me.curWidth-insets.left-insets.right,height:me.curHeight-insets.top-insets.bottom};me.chartBBox=chartBBox;axes.each(function(axis){var pos=axis.position,isVertical=(pos==="left"||pos==="right");axis.x=(pos==="right"?chartBBox.x+chartBBox.width:chartBBox.x);axis.y=(pos==="top"?chartBBox.y:chartBBox.y+chartBBox.height);axis.width=(isVertical?chartBBox.width:chartBBox.height);axis.length=(isVertical?chartBBox.height:chartBBox.width)})},initializeSeries:function(series,idx){var me=this,themeAttrs=me.themeAttrs,seriesObj,markerObj,seriesThemes,st,markerThemes,colorArrayStyle=[],i=0,l,config={chart:me,seriesId:series.seriesId};if(themeAttrs){seriesThemes=themeAttrs.seriesThemes;markerThemes=themeAttrs.markerThemes;seriesObj=Ext.apply({},themeAttrs.series);markerObj=Ext.apply({},themeAttrs.marker);config.seriesStyle=Ext.apply(seriesObj,seriesThemes[idx%seriesThemes.length]);config.seriesLabelStyle=Ext.apply({},themeAttrs.seriesLabel);config.markerStyle=Ext.apply(markerObj,markerThemes[idx%markerThemes.length]);if(themeAttrs.colors){config.colorArrayStyle=themeAttrs.colors}else{colorArrayStyle=[];for(l=seriesThemes.length;i<l;i++){st=seriesThemes[i];if(st.fill||st.stroke){colorArrayStyle.push(st.fill||st.stroke)}}if(colorArrayStyle.length){config.colorArrayStyle=colorArrayStyle}}config.seriesIdx=idx}if(series instanceof Ext.chart.series.Series){Ext.apply(series,config)}else{Ext.applyIf(config,series);series=me.series.replace(Ext.createByAlias("series."+series.type.toLowerCase(),config))}if(series.initialize){series.initialize()}},getMaxGutter:function(){var me=this,maxGutter=[0,0];me.series.each(function(s){var gutter=s.getGutters&&s.getGutters()||[0,0];maxGutter[0]=Math.max(maxGutter[0],gutter[0]);maxGutter[1]=Math.max(maxGutter[1],gutter[1])});me.maxGutter=maxGutter},drawAxis:function(axis){axis.drawAxis()},drawCharts:function(series){series.triggerafterrender=false;series.drawSeries();if(!this.animate){series.fireEvent("afterrender")}},destroy:function(){Ext.destroy(this.surface);this.bindStore(null);this.callParent(arguments)}});Ext.define("Ext.chart.Highlight",{requires:["Ext.fx.Anim"],highlight:false,highlightCfg:null,constructor:function(config){if(config.highlight){if(config.highlight!==true){this.highlightCfg=Ext.apply({},config.highlight)}else{this.highlightCfg={fill:"#fdd",radius:20,lineWidth:5,stroke:"#f55"}}}},highlightItem:function(item){if(!item){return}var me=this,sprite=item.sprite,opts=me.highlightCfg,surface=me.chart.surface,animate=me.chart.animate,p,from,to,pi;if(!me.highlight||!sprite||sprite._highlighted){return}if(sprite._anim){sprite._anim.paused=true}sprite._highlighted=true;if(!sprite._defaults){sprite._defaults=Ext.apply({},sprite.attr);from={};to={};for(p in opts){if(!(p in sprite._defaults)){sprite._defaults[p]=surface.availableAttrs[p]}from[p]=sprite._defaults[p];to[p]=opts[p];if(Ext.isObject(opts[p])){from[p]={};to[p]={};Ext.apply(sprite._defaults[p],sprite.attr[p]);Ext.apply(from[p],sprite._defaults[p]);for(pi in sprite._defaults[p]){if(!(pi in opts[p])){to[p][pi]=from[p][pi]}else{to[p][pi]=opts[p][pi]}}for(pi in opts[p]){if(!(pi in to[p])){to[p][pi]=opts[p][pi]}}}}sprite._from=from;sprite._to=to;sprite._endStyle=to}if(animate){sprite._anim=Ext.create("Ext.fx.Anim",{target:sprite,from:sprite._from,to:sprite._to,duration:150})}else{sprite.setAttributes(sprite._to,true)}},unHighlightItem:function(){if(!this.highlight||!this.items){return}var me=this,items=me.items,len=items.length,opts=me.highlightCfg,animate=me.chart.animate,i=0,obj,p,sprite;for(;i<len;i++){if(!items[i]){continue}sprite=items[i].sprite;if(sprite&&sprite._highlighted){if(sprite._anim){sprite._anim.paused=true}obj={};for(p in opts){if(Ext.isObject(sprite._defaults[p])){obj[p]={};Ext.apply(obj[p],sprite._defaults[p])}else{obj[p]=sprite._defaults[p]}}if(animate){sprite._endStyle=obj;sprite._anim=Ext.create("Ext.fx.Anim",{target:sprite,to:obj,duration:150})}else{sprite.setAttributes(obj,true)}delete sprite._highlighted}}},cleanHighlights:function(){if(!this.highlight){return}var group=this.group,markerGroup=this.markerGroup,i=0,l;for(l=group.getCount();i<l;i++){delete group.getAt(i)._defaults}if(markerGroup){for(l=markerGroup.getCount();i<l;i++){delete markerGroup.getAt(i)._defaults}}}});Ext.define("Ext.chart.Label",{requires:["Ext.draw.Color"],colorStringRe:/url\s*\(\s*#([^\/)]+)\s*\)/,constructor:function(config){var me=this;me.label=Ext.applyIf(me.label||{},{display:"none",color:"#000",field:"name",minMargin:50,font:"11px Helvetica, sans-serif",orientation:"horizontal",renderer:function(v){return v}});if(me.label.display!=="none"){me.labelsGroup=me.chart.surface.getGroup(me.seriesId+"-labels")}},renderLabels:function(){var me=this,chart=me.chart,gradients=chart.gradients,items=me.items,animate=chart.animate,config=me.label,display=config.display,color=config.color,field=[].concat(config.field),group=me.labelsGroup,groupLength=(group||0)&&group.length,store=me.chart.store,len=store.getCount(),itemLength=(items||0)&&items.length,ratio=itemLength/len,gradientsCount=(gradients||0)&&gradients.length,Color=Ext.draw.Color,hides=[],gradient,i,count,groupIndex,index,j,k,colorStopTotal,colorStopIndex,colorStop,item,label,storeItem,sprite,spriteColor,spriteBrightness,labelColor,colorString;if(display=="none"){return}if(itemLength==0){while(groupLength--){hides.push(groupLength)}}else{for(i=0,count=0,groupIndex=0;i<len;i++){index=0;for(j=0;j<ratio;j++){item=items[count];label=group.getAt(groupIndex);storeItem=store.getAt(i);while(this.__excludes&&this.__excludes[index]&&ratio>1){if(field[j]){hides.push(groupIndex)}index++}if(!item&&label){label.hide(true);groupIndex++}if(item&&field[j]){if(!label){label=me.onCreateLabel(storeItem,item,i,display,j,index)}me.onPlaceLabel(label,storeItem,item,i,display,animate,j,index);groupIndex++;if(config.contrast&&item.sprite){sprite=item.sprite;if(sprite._endStyle){colorString=sprite._endStyle.fill}else{if(sprite._to){colorString=sprite._to.fill}else{colorString=sprite.attr.fill}}colorString=colorString||sprite.attr.fill;spriteColor=Color.fromString(colorString);if(colorString&&!spriteColor){colorString=colorString.match(me.colorStringRe)[1];for(k=0;k<gradientsCount;k++){gradient=gradients[k];if(gradient.id==colorString){colorStop=0;colorStopTotal=0;for(colorStopIndex in gradient.stops){colorStop++;colorStopTotal+=Color.fromString(gradient.stops[colorStopIndex].color).getGrayscale()}spriteBrightness=(colorStopTotal/colorStop)/255;break}}}else{spriteBrightness=spriteColor.getGrayscale()/255}if(label.isOutside){spriteBrightness=1}labelColor=Color.fromString(label.attr.color||label.attr.fill).getHSL();labelColor[2]=spriteBrightness>0.5?0.2:0.8;label.setAttributes({fill:String(Color.fromHSL.apply({},labelColor))},true)}}count++;index++}}}me.hideLabels(hides)},hideLabels:function(hides){var labelsGroup=this.labelsGroup,hlen=hides.length;while(hlen--){labelsGroup.getAt(hides[hlen]).hide(true)}}});Ext.define("Ext.chart.MaskLayer",{extend:"Ext.Component",constructor:function(config){config=Ext.apply(config||{},{style:"position:absolute;background-color:#888;cursor:move;opacity:0.6;border:1px solid #222;"});this.callParent([config])},initComponent:function(){var me=this;me.callParent(arguments);me.addEvents("mousedown","mouseup","mousemove","mouseenter","mouseleave")},initDraggable:function(){this.callParent(arguments);this.dd.onStart=function(e){var me=this,comp=me.comp;this.startPosition=comp.getPosition(true);if(comp.ghost&&!comp.liveDrag){me.proxy=comp.ghost();me.dragTarget=me.proxy.header.el}if(me.constrain||me.constrainDelegate){me.constrainTo=me.calculateConstrainRegion()}}}});Ext.define("Ext.chart.TipSurface",{extend:"Ext.draw.Component",spriteArray:false,renderFirst:true,constructor:function(config){this.callParent([config]);if(config.sprites){this.spriteArray=[].concat(config.sprites);delete config.sprites}},onRender:function(){var me=this,i=0,l=0,sp,sprites;this.callParent(arguments);sprites=me.spriteArray;if(me.renderFirst&&sprites){me.renderFirst=false;for(l=sprites.length;i<l;i++){sp=me.surface.add(sprites[i]);sp.setAttributes({hidden:false},true)}}}});Ext.define("Ext.chart.Tip",{requires:["Ext.tip.ToolTip","Ext.chart.TipSurface"],constructor:function(config){var me=this,surface,sprites,tipSurface;if(config.tips){me.tipTimeout=null;me.tipConfig=Ext.apply({},config.tips,{renderer:Ext.emptyFn,constrainPosition:false});me.tooltip=Ext.create("Ext.tip.ToolTip",me.tipConfig);me.chart.surface.on("mousemove",me.tooltip.onMouseMove,me.tooltip);me.chart.surface.on("mouseleave",function(){me.hideTip()});if(me.tipConfig.surface){surface=me.tipConfig.surface;sprites=surface.sprites;tipSurface=Ext.create("Ext.chart.TipSurface",{id:"tipSurfaceComponent",sprites:sprites});if(surface.width&&surface.height){tipSurface.setSize(surface.width,surface.height)}me.tooltip.add(tipSurface);me.spriteTip=tipSurface}}},showTip:function(item){var me=this;if(!me.tooltip){return}clearTimeout(me.tipTimeout);var tooltip=me.tooltip,spriteTip=me.spriteTip,tipConfig=me.tipConfig,trackMouse=tooltip.trackMouse,sprite,surface,surfaceExt,pos,x,y;if(!trackMouse){tooltip.trackMouse=true;sprite=item.sprite;surface=sprite.surface;surfaceExt=Ext.get(surface.getId());if(surfaceExt){pos=surfaceExt.getXY();x=pos[0]+(sprite.attr.x||0)+(sprite.attr.translation&&sprite.attr.translation.x||0);y=pos[1]+(sprite.attr.y||0)+(sprite.attr.translation&&sprite.attr.translation.y||0);tooltip.targetXY=[x,y]}}if(spriteTip){tipConfig.renderer.call(tooltip,item.storeItem,item,spriteTip.surface)}else{tipConfig.renderer.call(tooltip,item.storeItem,item)}tooltip.show();tooltip.trackMouse=trackMouse},hideTip:function(item){var tooltip=this.tooltip;if(!tooltip){return}clearTimeout(this.tipTimeout);this.tipTimeout=setTimeout(function(){tooltip.hide()},0)}});Ext.define("Ext.chart.axis.Abstract",{requires:["Ext.chart.Chart"],constructor:function(config){config=config||{};var me=this,pos=config.position||"left";pos=pos.charAt(0).toUpperCase()+pos.substring(1);config.label=Ext.apply(config["axisLabel"+pos+"Style"]||{},config.label||{});config.axisTitleStyle=Ext.apply(config["axisTitle"+pos+"Style"]||{},config.labelTitle||{});Ext.apply(me,config);me.fields=[].concat(me.fields);this.callParent();me.labels=[];me.getId();me.labelGroup=me.chart.surface.getGroup(me.axisId+"-labels")},alignment:null,grid:false,steps:10,x:0,y:0,minValue:0,maxValue:0,getId:function(){return this.axisId||(this.axisId=Ext.id(null,"ext-axis-"))},processView:Ext.emptyFn,drawAxis:Ext.emptyFn,addDisplayAndLabels:Ext.emptyFn});Ext.define("Ext.chart.axis.Axis",{extend:"Ext.chart.axis.Abstract",alternateClassName:"Ext.chart.Axis",requires:["Ext.draw.Draw"],forceMinMax:false,dashSize:3,position:"bottom",skipFirst:false,length:0,width:0,majorTickSteps:false,applyData:Ext.emptyFn,getRange:function(){var me=this,store=me.chart.getChartStore(),fields=me.fields,ln=fields.length,math=Math,mmax=math.max,mmin=math.min,aggregate=false,min=isNaN(me.minimum)?Infinity:me.minimum,max=isNaN(me.maximum)?-Infinity:me.maximum,total=0,i,l,value,values,rec,excludes=[],series=me.chart.series.items;for(i=0,l=series.length;!aggregate&&i<l;i++){aggregate=aggregate||series[i].stacked;excludes=series[i].__excludes||excludes}store.each(function(record){if(aggregate){if(!isFinite(min)){min=0}for(values=[0,0],i=0;i<ln;i++){if(excludes[i]){continue}rec=record.get(fields[i]);values[+(rec>0)]+=math.abs(rec)}max=mmax(max,-values[0],+values[1]);min=mmin(min,-values[0],+values[1])}else{for(i=0;i<ln;i++){if(excludes[i]){continue}value=record.get(fields[i]);max=mmax(max,+value);min=mmin(min,+value)}}});if(!isFinite(max)){max=me.prevMax||0}if(!isFinite(min)){min=me.prevMin||0}if(min!=max&&(max!=Math.floor(max))){max=Math.floor(max)+1}if(!isNaN(me.minimum)){min=me.minimum}if(!isNaN(me.maximum)){max=me.maximum}return{min:min,max:max}},calcEnds:function(){var me=this,fields=me.fields,range=me.getRange(),min=range.min,max=range.max,outfrom,outto,out;out=Ext.draw.Draw.snapEnds(min,max,me.majorTickSteps!==false?(me.majorTickSteps+1):me.steps);outfrom=out.from;outto=out.to;if(me.forceMinMax){if(!isNaN(max)){out.to=max}if(!isNaN(min)){out.from=min}}if(!isNaN(me.maximum)){out.to=me.maximum}if(!isNaN(me.minimum)){out.from=me.minimum}out.step=(out.to-out.from)/(outto-outfrom)*out.step;if(me.adjustMaximumByMajorUnit){out.to+=out.step}if(me.adjustMinimumByMajorUnit){out.from-=out.step}me.prevMin=min==max?0:min;me.prevMax=max;return out},drawAxis:function(init){var me=this,i,j,x=me.x,y=me.y,gutterX=me.chart.maxGutter[0],gutterY=me.chart.maxGutter[1],dashSize=me.dashSize,subDashesX=me.minorTickSteps||0,subDashesY=me.minorTickSteps||0,length=me.length,position=me.position,inflections=[],calcLabels=false,stepCalcs=me.applyData(),step=stepCalcs.step,steps=stepCalcs.steps,from=stepCalcs.from,to=stepCalcs.to,trueLength,currentX,currentY,path,prev,dashesX,dashesY,delta;if(me.hidden||isNaN(step)||(from==to)){return}me.from=stepCalcs.from;me.to=stepCalcs.to;if(position=="left"||position=="right"){currentX=Math.floor(x)+0.5;path=["M",currentX,y,"l",0,-length];trueLength=length-(gutterY*2)}else{currentY=Math.floor(y)+0.5;path=["M",x,currentY,"l",length,0];trueLength=length-(gutterX*2)}delta=trueLength/(steps||1);dashesX=Math.max(subDashesX+1,0);dashesY=Math.max(subDashesY+1,0);if(me.type=="Numeric"||me.type=="Time"){calcLabels=true;me.labels=[stepCalcs.from]}if(position=="right"||position=="left"){currentY=y-gutterY;currentX=x-((position=="left")*dashSize*2);while(currentY>=y-gutterY-trueLength){path.push("M",currentX,Math.floor(currentY)+0.5,"l",dashSize*2+1,0);if(currentY!=y-gutterY){for(i=1;i<dashesY;i++){path.push("M",currentX+dashSize,Math.floor(currentY+delta*i/dashesY)+0.5,"l",dashSize+1,0)}}inflections.push([Math.floor(x),Math.floor(currentY)]);currentY-=delta;if(calcLabels){me.labels.push(me.labels[me.labels.length-1]+step)}if(delta===0){break}}if(Math.round(currentY+delta-(y-gutterY-trueLength))){path.push("M",currentX,Math.floor(y-length+gutterY)+0.5,"l",dashSize*2+1,0);for(i=1;i<dashesY;i++){path.push("M",currentX+dashSize,Math.floor(y-length+gutterY+delta*i/dashesY)+0.5,"l",dashSize+1,0)}inflections.push([Math.floor(x),Math.floor(currentY)]);if(calcLabels){me.labels.push(me.labels[me.labels.length-1]+step)}}}else{currentX=x+gutterX;currentY=y-((position=="top")*dashSize*2);while(currentX<=x+gutterX+trueLength){path.push("M",Math.floor(currentX)+0.5,currentY,"l",0,dashSize*2+1);if(currentX!=x+gutterX){for(i=1;i<dashesX;i++){path.push("M",Math.floor(currentX-delta*i/dashesX)+0.5,currentY,"l",0,dashSize+1)}}inflections.push([Math.floor(currentX),Math.floor(y)]);currentX+=delta;if(calcLabels){me.labels.push(me.labels[me.labels.length-1]+step)}if(delta===0){break}}if(Math.round(currentX-delta-(x+gutterX+trueLength))){path.push("M",Math.floor(x+length-gutterX)+0.5,currentY,"l",0,dashSize*2+1);for(i=1;i<dashesX;i++){path.push("M",Math.floor(x+length-gutterX-delta*i/dashesX)+0.5,currentY,"l",0,dashSize+1)}inflections.push([Math.floor(currentX),Math.floor(y)]);if(calcLabels){me.labels.push(me.labels[me.labels.length-1]+step)}}}if(!me.axis){me.axis=me.chart.surface.add(Ext.apply({type:"path",path:path},me.axisStyle))}me.axis.setAttributes({path:path},true);me.inflections=inflections;if(!init&&me.grid){me.drawGrid()}me.axisBBox=me.axis.getBBox();me.drawLabel()},drawGrid:function(){var me=this,surface=me.chart.surface,grid=me.grid,odd=grid.odd,even=grid.even,inflections=me.inflections,ln=inflections.length-((odd||even)?0:1),position=me.position,gutter=me.chart.maxGutter,width=me.width-2,vert=false,point,prevPoint,i=1,path=[],styles,lineWidth,dlineWidth,oddPath=[],evenPath=[];if((gutter[1]!==0&&(position=="left"||position=="right"))||(gutter[0]!==0&&(position=="top"||position=="bottom"))){i=0;ln++}for(;i<ln;i++){point=inflections[i];prevPoint=inflections[i-1];if(odd||even){path=(i%2)?oddPath:evenPath;styles=((i%2)?odd:even)||{};lineWidth=(styles.lineWidth||styles["stroke-width"]||0)/2;dlineWidth=2*lineWidth;if(position=="left"){path.push("M",prevPoint[0]+1+lineWidth,prevPoint[1]+0.5-lineWidth,"L",prevPoint[0]+1+width-lineWidth,prevPoint[1]+0.5-lineWidth,"L",point[0]+1+width-lineWidth,point[1]+0.5+lineWidth,"L",point[0]+1+lineWidth,point[1]+0.5+lineWidth,"Z")}else{if(position=="right"){path.push("M",prevPoint[0]-lineWidth,prevPoint[1]+0.5-lineWidth,"L",prevPoint[0]-width+lineWidth,prevPoint[1]+0.5-lineWidth,"L",point[0]-width+lineWidth,point[1]+0.5+lineWidth,"L",point[0]-lineWidth,point[1]+0.5+lineWidth,"Z")}else{if(position=="top"){path.push("M",prevPoint[0]+0.5+lineWidth,prevPoint[1]+1+lineWidth,"L",prevPoint[0]+0.5+lineWidth,prevPoint[1]+1+width-lineWidth,"L",point[0]+0.5-lineWidth,point[1]+1+width-lineWidth,"L",point[0]+0.5-lineWidth,point[1]+1+lineWidth,"Z")}else{path.push("M",prevPoint[0]+0.5+lineWidth,prevPoint[1]-lineWidth,"L",prevPoint[0]+0.5+lineWidth,prevPoint[1]-width+lineWidth,"L",point[0]+0.5-lineWidth,point[1]-width+lineWidth,"L",point[0]+0.5-lineWidth,point[1]-lineWidth,"Z")}}}}else{if(position=="left"){path=path.concat(["M",point[0]+0.5,point[1]+0.5,"l",width,0])}else{if(position=="right"){path=path.concat(["M",point[0]-0.5,point[1]+0.5,"l",-width,0])}else{if(position=="top"){path=path.concat(["M",point[0]+0.5,point[1]+0.5,"l",0,width])}else{path=path.concat(["M",point[0]+0.5,point[1]-0.5,"l",0,-width])}}}}}if(odd||even){if(oddPath.length){if(!me.gridOdd&&oddPath.length){me.gridOdd=surface.add({type:"path",path:oddPath})}me.gridOdd.setAttributes(Ext.apply({path:oddPath,hidden:false},odd||{}),true)}if(evenPath.length){if(!me.gridEven){me.gridEven=surface.add({type:"path",path:evenPath})}me.gridEven.setAttributes(Ext.apply({path:evenPath,hidden:false},even||{}),true)}}else{if(path.length){if(!me.gridLines){me.gridLines=me.chart.surface.add({type:"path",path:path,"stroke-width":me.lineWidth||1,stroke:me.gridColor||"#ccc"})}me.gridLines.setAttributes({hidden:false,path:path},true)}else{if(me.gridLines){me.gridLines.hide(true)}}}},getOrCreateLabel:function(i,text){var me=this,labelGroup=me.labelGroup,textLabel=labelGroup.getAt(i),surface=me.chart.surface;if(textLabel){if(text!=textLabel.attr.text){textLabel.setAttributes(Ext.apply({text:text},me.label),true);textLabel._bbox=textLabel.getBBox()}}else{textLabel=surface.add(Ext.apply({group:labelGroup,type:"text",x:0,y:0,text:text},me.label));surface.renderItem(textLabel);textLabel._bbox=textLabel.getBBox()}if(me.label.rotation){textLabel.setAttributes({rotation:{degrees:0}},true);textLabel._ubbox=textLabel.getBBox();textLabel.setAttributes(me.label,true)}else{textLabel._ubbox=textLabel._bbox}return textLabel},rect2pointArray:function(sprite){var surface=this.chart.surface,rect=surface.getBBox(sprite,true),p1=[rect.x,rect.y],p1p=p1.slice(),p2=[rect.x+rect.width,rect.y],p2p=p2.slice(),p3=[rect.x+rect.width,rect.y+rect.height],p3p=p3.slice(),p4=[rect.x,rect.y+rect.height],p4p=p4.slice(),matrix=sprite.matrix;p1[0]=matrix.x.apply(matrix,p1p);p1[1]=matrix.y.apply(matrix,p1p);p2[0]=matrix.x.apply(matrix,p2p);p2[1]=matrix.y.apply(matrix,p2p);p3[0]=matrix.x.apply(matrix,p3p);p3[1]=matrix.y.apply(matrix,p3p);p4[0]=matrix.x.apply(matrix,p4p);p4[1]=matrix.y.apply(matrix,p4p);return[p1,p2,p3,p4]},intersect:function(l1,l2){var r1=this.rect2pointArray(l1),r2=this.rect2pointArray(l2);return !!Ext.draw.Draw.intersect(r1,r2).length},drawHorizontalLabels:function(){var me=this,labelConf=me.label,floor=Math.floor,max=Math.max,axes=me.chart.axes,position=me.position,inflections=me.inflections,ln=inflections.length,labels=me.labels,labelGroup=me.labelGroup,maxHeight=0,ratio,gutterY=me.chart.maxGutter[1],ubbox,bbox,point,prevX,prevLabel,projectedWidth=0,textLabel,attr,textRight,text,label,last,x,y,i,firstLabel;last=ln-1;point=inflections[0];firstLabel=me.getOrCreateLabel(0,me.label.renderer(labels[0]));ratio=Math.floor(Math.abs(Math.sin(labelConf.rotate&&(labelConf.rotate.degrees*Math.PI/180)||0)));for(i=0;i<ln;i++){point=inflections[i];text=me.label.renderer(labels[i]);textLabel=me.getOrCreateLabel(i,text);bbox=textLabel._bbox;maxHeight=max(maxHeight,bbox.height+me.dashSize+me.label.padding);x=floor(point[0]-(ratio?bbox.height:bbox.width)/2);if(me.chart.maxGutter[0]==0){if(i==0&&axes.findIndex("position","left")==-1){x=point[0]}else{if(i==last&&axes.findIndex("position","right")==-1){x=point[0]-bbox.width}}}if(position=="top"){y=point[1]-(me.dashSize*2)-me.label.padding-(bbox.height/2)}else{y=point[1]+(me.dashSize*2)+me.label.padding+(bbox.height/2)}textLabel.setAttributes({hidden:false,x:x,y:y},true);if(i!=0&&(me.intersect(textLabel,prevLabel)||me.intersect(textLabel,firstLabel))){textLabel.hide(true);continue}prevLabel=textLabel}return maxHeight},drawVerticalLabels:function(){var me=this,inflections=me.inflections,position=me.position,ln=inflections.length,labels=me.labels,maxWidth=0,max=Math.max,floor=Math.floor,ceil=Math.ceil,axes=me.chart.axes,gutterY=me.chart.maxGutter[1],ubbox,bbox,point,prevLabel,projectedWidth=0,textLabel,attr,textRight,text,label,last,x,y,i;last=ln;for(i=0;i<last;i++){point=inflections[i];text=me.label.renderer(labels[i]);textLabel=me.getOrCreateLabel(i,text);bbox=textLabel._bbox;maxWidth=max(maxWidth,bbox.width+me.dashSize+me.label.padding);y=point[1];if(gutterY<bbox.height/2){if(i==last-1&&axes.findIndex("position","top")==-1){y=me.y-me.length+ceil(bbox.height/2)}else{if(i==0&&axes.findIndex("position","bottom")==-1){y=me.y-floor(bbox.height/2)}}}if(position=="left"){x=point[0]-bbox.width-me.dashSize-me.label.padding-2}else{x=point[0]+me.dashSize+me.label.padding+2}textLabel.setAttributes(Ext.apply({hidden:false,x:x,y:y},me.label),true);if(i!=0&&me.intersect(textLabel,prevLabel)){textLabel.hide(true);continue}prevLabel=textLabel}return maxWidth},drawLabel:function(){var me=this,position=me.position,labelGroup=me.labelGroup,inflections=me.inflections,maxWidth=0,maxHeight=0,ln,i;if(position=="left"||position=="right"){maxWidth=me.drawVerticalLabels()}else{maxHeight=me.drawHorizontalLabels()}ln=labelGroup.getCount();i=inflections.length;for(;i<ln;i++){labelGroup.getAt(i).hide(true)}me.bbox={};Ext.apply(me.bbox,me.axisBBox);me.bbox.height=maxHeight;me.bbox.width=maxWidth;if(Ext.isString(me.title)){me.drawTitle(maxWidth,maxHeight)}},elipsis:function(sprite,text,desiredWidth,minWidth,center){var bbox,x;if(desiredWidth<minWidth){sprite.hide(true);return false}while(text.length>4){text=text.substr(0,text.length-4)+"...";sprite.setAttributes({text:text},true);bbox=sprite.getBBox();if(bbox.width<desiredWidth){if(typeof center=="number"){sprite.setAttributes({x:Math.floor(center-(bbox.width/2))},true)}break}}return true},setTitle:function(title){this.title=title;this.drawLabel()},drawTitle:function(maxWidth,maxHeight){var me=this,position=me.position,surface=me.chart.surface,displaySprite=me.displaySprite,title=me.title,rotate=(position=="left"||position=="right"),x=me.x,y=me.y,base,bbox,pad;if(displaySprite){displaySprite.setAttributes({text:title},true)}else{base={type:"text",x:0,y:0,text:title};displaySprite=me.displaySprite=surface.add(Ext.apply(base,me.axisTitleStyle,me.labelTitle));surface.renderItem(displaySprite)}bbox=displaySprite.getBBox();pad=me.dashSize+me.label.padding;if(rotate){y-=((me.length/2)-(bbox.height/2));if(position=="left"){x-=(maxWidth+pad+(bbox.width/2))}else{x+=(maxWidth+pad+bbox.width-(bbox.width/2))}me.bbox.width+=bbox.width+10}else{x+=(me.length/2)-(bbox.width*0.5);if(position=="top"){y-=(maxHeight+pad+(bbox.height*0.3))}else{y+=(maxHeight+pad+(bbox.height*0.8))}me.bbox.height+=bbox.height+10}displaySprite.setAttributes({translate:{x:x,y:y}},true)}});Ext.define("Ext.chart.axis.Category",{extend:"Ext.chart.axis.Axis",alternateClassName:"Ext.chart.CategoryAxis",alias:"axis.category",categoryNames:null,calculateCategoryCount:false,setLabels:function(){var store=this.chart.store,fields=this.fields,ln=fields.length,i;this.labels=[];store.each(function(record){for(i=0;i<ln;i++){this.labels.push(record.get(fields[i]))}},this)},applyData:function(){this.callParent();this.setLabels();var count=this.chart.store.getCount();return{from:0,to:count,power:1,step:1,steps:count-1}}});Ext.define("Ext.chart.axis.Gauge",{extend:"Ext.chart.axis.Abstract",position:"gauge",alias:"axis.gauge",drawAxis:function(init){var chart=this.chart,surface=chart.surface,bbox=chart.chartBBox,centerX=bbox.x+(bbox.width/2),centerY=bbox.y+bbox.height,margin=this.margin||10,rho=Math.min(bbox.width,2*bbox.height)/2+margin,sprites=[],sprite,steps=this.steps,i,pi=Math.PI,cos=Math.cos,sin=Math.sin;if(this.sprites&&!chart.resizing){this.drawLabel();return}if(this.margin>=0){if(!this.sprites){for(i=0;i<=steps;i++){sprite=surface.add({type:"path",path:["M",centerX+(rho-margin)*cos(i/steps*pi-pi),centerY+(rho-margin)*sin(i/steps*pi-pi),"L",centerX+rho*cos(i/steps*pi-pi),centerY+rho*sin(i/steps*pi-pi),"Z"],stroke:"#ccc"});sprite.setAttributes({hidden:false},true);sprites.push(sprite)}}else{sprites=this.sprites;for(i=0;i<=steps;i++){sprites[i].setAttributes({path:["M",centerX+(rho-margin)*cos(i/steps*pi-pi),centerY+(rho-margin)*sin(i/steps*pi-pi),"L",centerX+rho*cos(i/steps*pi-pi),centerY+rho*sin(i/steps*pi-pi),"Z"],stroke:"#ccc"},true)}}}this.sprites=sprites;this.drawLabel();if(this.title){this.drawTitle()}},drawTitle:function(){var me=this,chart=me.chart,surface=chart.surface,bbox=chart.chartBBox,labelSprite=me.titleSprite,labelBBox;if(!labelSprite){me.titleSprite=labelSprite=surface.add({type:"text",zIndex:2})}labelSprite.setAttributes(Ext.apply({text:me.title},me.label||{}),true);labelBBox=labelSprite.getBBox();labelSprite.setAttributes({x:bbox.x+(bbox.width/2)-(labelBBox.width/2),y:bbox.y+bbox.height-(labelBBox.height/2)-4},true)},setTitle:function(title){this.title=title;this.drawTitle()},drawLabel:function(){var chart=this.chart,surface=chart.surface,bbox=chart.chartBBox,centerX=bbox.x+(bbox.width/2),centerY=bbox.y+bbox.height,margin=this.margin||10,rho=Math.min(bbox.width,2*bbox.height)/2+2*margin,round=Math.round,labelArray=[],label,maxValue=this.maximum||0,steps=this.steps,i=0,adjY,pi=Math.PI,cos=Math.cos,sin=Math.sin,labelConf=this.label,renderer=labelConf.renderer||function(v){return v};if(!this.labelArray){for(i=0;i<=steps;i++){adjY=(i===0||i===steps)?7:0;label=surface.add({type:"text",text:renderer(round(i/steps*maxValue)),x:centerX+rho*cos(i/steps*pi-pi),y:centerY+rho*sin(i/steps*pi-pi)-adjY,"text-anchor":"middle","stroke-width":0.2,zIndex:10,stroke:"#333"});label.setAttributes({hidden:false},true);labelArray.push(label)}}else{labelArray=this.labelArray;for(i=0;i<=steps;i++){adjY=(i===0||i===steps)?7:0;labelArray[i].setAttributes({text:renderer(round(i/steps*maxValue)),x:centerX+rho*cos(i/steps*pi-pi),y:centerY+rho*sin(i/steps*pi-pi)-adjY},true)}}this.labelArray=labelArray}});Ext.define("Ext.chart.axis.Numeric",{extend:"Ext.chart.axis.Axis",alternateClassName:"Ext.chart.NumericAxis",type:"numeric",alias:"axis.numeric",constructor:function(config){var me=this,hasLabel=!!(config.label&&config.label.renderer),label;me.callParent([config]);label=me.label;if(me.roundToDecimal===false){return}if(!hasLabel){label.renderer=function(v){return me.roundToDecimal(v,me.decimals)}}},roundToDecimal:function(v,dec){var val=Math.pow(10,dec||0);return Math.floor(v*val)/val},minimum:NaN,maximum:NaN,decimals:2,scale:"linear",position:"left",adjustMaximumByMajorUnit:false,adjustMinimumByMajorUnit:false,applyData:function(){this.callParent();return this.calcEnds()}});Ext.define("Ext.chart.axis.Radial",{extend:"Ext.chart.axis.Abstract",position:"radial",alias:"axis.radial",drawAxis:function(init){var chart=this.chart,surface=chart.surface,bbox=chart.chartBBox,store=chart.store,l=store.getCount(),centerX=bbox.x+(bbox.width/2),centerY=bbox.y+(bbox.height/2),rho=Math.min(bbox.width,bbox.height)/2,sprites=[],sprite,steps=this.steps,i,j,pi2=Math.PI*2,cos=Math.cos,sin=Math.sin;if(this.sprites&&!chart.resizing){this.drawLabel();return}if(!this.sprites){for(i=1;i<=steps;i++){sprite=surface.add({type:"circle",x:centerX,y:centerY,radius:Math.max(rho*i/steps,0),stroke:"#ccc"});sprite.setAttributes({hidden:false},true);sprites.push(sprite)}store.each(function(rec,i){sprite=surface.add({type:"path",path:["M",centerX,centerY,"L",centerX+rho*cos(i/l*pi2),centerY+rho*sin(i/l*pi2),"Z"],stroke:"#ccc"});sprite.setAttributes({hidden:false},true);sprites.push(sprite)})}else{sprites=this.sprites;for(i=0;i<steps;i++){sprites[i].setAttributes({x:centerX,y:centerY,radius:Math.max(rho*(i+1)/steps,0),stroke:"#ccc"},true)}store.each(function(rec,j){sprites[i+j].setAttributes({path:["M",centerX,centerY,"L",centerX+rho*cos(j/l*pi2),centerY+rho*sin(j/l*pi2),"Z"],stroke:"#ccc"},true)})}this.sprites=sprites;this.drawLabel()},drawLabel:function(){var chart=this.chart,surface=chart.surface,bbox=chart.chartBBox,store=chart.store,centerX=bbox.x+(bbox.width/2),centerY=bbox.y+(bbox.height/2),rho=Math.min(bbox.width,bbox.height)/2,max=Math.max,round=Math.round,labelArray=[],label,fields=[],nfields,categories=[],xField,aggregate=!this.maximum,maxValue=this.maximum||0,steps=this.steps,i=0,j,dx,dy,pi2=Math.PI*2,cos=Math.cos,sin=Math.sin,display=this.label.display,draw=display!=="none",margin=10;if(!draw){return}chart.series.each(function(series){fields.push(series.yField);xField=series.xField});store.each(function(record,i){if(aggregate){for(i=0,nfields=fields.length;i<nfields;i++){maxValue=max(+record.get(fields[i]),maxValue)}}categories.push(record.get(xField))});if(!this.labelArray){if(display!="categories"){for(i=1;i<=steps;i++){label=surface.add({type:"text",text:round(i/steps*maxValue),x:centerX,y:centerY-rho*i/steps,"text-anchor":"middle","stroke-width":0.1,stroke:"#333"});label.setAttributes({hidden:false},true);labelArray.push(label)}}if(display!="scale"){for(j=0,steps=categories.length;j<steps;j++){dx=cos(j/steps*pi2)*(rho+margin);dy=sin(j/steps*pi2)*(rho+margin);label=surface.add({type:"text",text:categories[j],x:centerX+dx,y:centerY+dy,"text-anchor":dx*dx<=0.001?"middle":(dx<0?"end":"start")});label.setAttributes({hidden:false},true);labelArray.push(label)}}}else{labelArray=this.labelArray;if(display!="categories"){for(i=0;i<steps;i++){labelArray[i].setAttributes({text:round((i+1)/steps*maxValue),x:centerX,y:centerY-rho*(i+1)/steps,"text-anchor":"middle","stroke-width":0.1,stroke:"#333"},true)}}if(display!="scale"){for(j=0,steps=categories.length;j<steps;j++){dx=cos(j/steps*pi2)*(rho+margin);dy=sin(j/steps*pi2)*(rho+margin);if(labelArray[i+j]){labelArray[i+j].setAttributes({type:"text",text:categories[j],x:centerX+dx,y:centerY+dy,"text-anchor":dx*dx<=0.001?"middle":(dx<0?"end":"start")},true)}}}}this.labelArray=labelArray}});Ext.define("Ext.data.AbstractStore",{requires:["Ext.util.MixedCollection","Ext.data.Operation","Ext.util.Filter"],mixins:{observable:"Ext.util.Observable",sortable:"Ext.util.Sortable"},statics:{create:function(store){if(!store.isStore){if(!store.type){store.type="store"}store=Ext.createByAlias("store."+store.type,store)}return store}},remoteSort:false,remoteFilter:false,autoLoad:false,autoSync:false,batchUpdateMode:"operation",filterOnLoad:true,sortOnLoad:true,implicitModel:false,defaultProxyType:"memory",isDestroyed:false,isStore:true,sortRoot:"data",constructor:function(config){var me=this,filters;me.addEvents("add","remove","update","datachanged","beforeload","load","write","beforesync","clear");Ext.apply(me,config);me.removed=[];me.mixins.observable.constructor.apply(me,arguments);me.model=Ext.ModelManager.getModel(me.model);Ext.applyIf(me,{modelDefaults:{}});if(!me.model&&me.fields){me.model=Ext.define("Ext.data.Store.ImplicitModel-"+(me.storeId||Ext.id()),{extend:"Ext.data.Model",fields:me.fields,proxy:me.proxy||me.defaultProxyType});delete me.fields;me.implicitModel=true}me.setProxy(me.proxy||me.model.getProxy());if(me.id&&!me.storeId){me.storeId=me.id;delete me.id}if(me.storeId){Ext.data.StoreManager.register(me)}me.mixins.sortable.initSortable.call(me);filters=me.decodeFilters(me.filters);me.filters=Ext.create("Ext.util.MixedCollection");me.filters.addAll(filters)},setProxy:function(proxy){var me=this;if(proxy instanceof Ext.data.proxy.Proxy){proxy.setModel(me.model)}else{if(Ext.isString(proxy)){proxy={type:proxy}}Ext.applyIf(proxy,{model:me.model});proxy=Ext.createByAlias("proxy."+proxy.type,proxy)}me.proxy=proxy;return me.proxy},getProxy:function(){return this.proxy},create:function(data,options){var me=this,instance=Ext.ModelManager.create(Ext.applyIf(data,me.modelDefaults),me.model.modelName),operation;options=options||{};Ext.applyIf(options,{action:"create",records:[instance]});operation=Ext.create("Ext.data.Operation",options);me.proxy.create(operation,me.onProxyWrite,me);return instance},read:function(){return this.load.apply(this,arguments)},onProxyRead:Ext.emptyFn,update:function(options){var me=this,operation;options=options||{};Ext.applyIf(options,{action:"update",records:me.getUpdatedRecords()});operation=Ext.create("Ext.data.Operation",options);return me.proxy.update(operation,me.onProxyWrite,me)},onProxyWrite:function(operation){var me=this,success=operation.wasSuccessful(),records=operation.getRecords();switch(operation.action){case"create":me.onCreateRecords(records,operation,success);break;case"update":me.onUpdateRecords(records,operation,success);break;case"destroy":me.onDestroyRecords(records,operation,success);break}if(success){me.fireEvent("write",me,operation);me.fireEvent("datachanged",me)}Ext.callback(operation.callback,operation.scope||me,[records,operation,success])},destroy:function(options){var me=this,operation;options=options||{};Ext.applyIf(options,{action:"destroy",records:me.getRemovedRecords()});operation=Ext.create("Ext.data.Operation",options);return me.proxy.destroy(operation,me.onProxyWrite,me)},onBatchOperationComplete:function(batch,operation){return this.onProxyWrite(operation)},onBatchComplete:function(batch,operation){var me=this,operations=batch.operations,length=operations.length,i;me.suspendEvents();for(i=0;i<length;i++){me.onProxyWrite(operations[i])}me.resumeEvents();me.fireEvent("datachanged",me)},onBatchException:function(batch,operation){},filterNew:function(item){return item.phantom===true&&item.isValid()},getNewRecords:function(){return[]},getUpdatedRecords:function(){return[]},filterUpdated:function(item){return item.dirty===true&&item.phantom!==true&&item.isValid()},getRemovedRecords:function(){return this.removed},filter:function(filters,value){},decodeFilters:function(filters){if(!Ext.isArray(filters)){if(filters===undefined){filters=[]}else{filters=[filters]}}var length=filters.length,Filter=Ext.util.Filter,config,i;for(i=0;i<length;i++){config=filters[i];if(!(config instanceof Filter)){Ext.apply(config,{root:"data"});if(config.fn){config.filterFn=config.fn}if(typeof config=="function"){config={filterFn:config}}filters[i]=new Filter(config)}}return filters},clearFilter:function(supressEvent){},isFiltered:function(){},filterBy:function(fn,scope){},sync:function(){var me=this,options={},toCreate=me.getNewRecords(),toUpdate=me.getUpdatedRecords(),toDestroy=me.getRemovedRecords(),needsSync=false;if(toCreate.length>0){options.create=toCreate;needsSync=true}if(toUpdate.length>0){options.update=toUpdate;needsSync=true}if(toDestroy.length>0){options.destroy=toDestroy;needsSync=true}if(needsSync&&me.fireEvent("beforesync",options)!==false){me.proxy.batch(options,me.getBatchListeners())}},getBatchListeners:function(){var me=this,listeners={scope:me,exception:me.onBatchException};if(me.batchUpdateMode=="operation"){listeners.operationcomplete=me.onBatchOperationComplete}else{listeners.complete=me.onBatchComplete}return listeners},save:function(){return this.sync.apply(this,arguments)},load:function(options){var me=this,operation;options=options||{};Ext.applyIf(options,{action:"read",filters:me.filters.items,sorters:me.getSorters()});operation=Ext.create("Ext.data.Operation",options);if(me.fireEvent("beforeload",me,operation)!==false){me.loading=true;me.proxy.read(operation,me.onProxyLoad,me)}return me},afterEdit:function(record){var me=this;if(me.autoSync){me.sync()}me.fireEvent("update",me,record,Ext.data.Model.EDIT)},afterReject:function(record){this.fireEvent("update",this,record,Ext.data.Model.REJECT)},afterCommit:function(record){this.fireEvent("update",this,record,Ext.data.Model.COMMIT)},clearData:Ext.emptyFn,destroyStore:function(){var me=this;if(!me.isDestroyed){if(me.storeId){Ext.data.StoreManager.unregister(me)}me.clearData();me.data=null;me.tree=null;me.reader=me.writer=null;me.clearListeners();me.isDestroyed=true;if(me.implicitModel){Ext.destroy(me.model)}}},doSort:function(sorterFn){var me=this;if(me.remoteSort){me.load()}else{me.data.sortBy(sorterFn);me.fireEvent("datachanged",me)}},getCount:Ext.emptyFn,getById:Ext.emptyFn,removeAll:Ext.emptyFn,isLoading:function(){return !!this.loading}});Ext.define("Ext.util.Grouper",{extend:"Ext.util.Sorter",getGroupString:function(instance){return instance.get(this.property)}});Ext.define("Ext.data.Store",{extend:"Ext.data.AbstractStore",alias:"store.store",requires:["Ext.data.StoreManager","Ext.ModelManager","Ext.data.Model","Ext.util.Grouper"],uses:["Ext.data.proxy.Memory"],remoteSort:false,remoteFilter:false,remoteGroup:false,groupField:undefined,groupDir:"ASC",pageSize:25,currentPage:1,clearOnPageLoad:true,loading:false,sortOnFilter:true,buffered:false,purgePageCount:5,isStore:true,onClassExtended:function(cls,data){var model=data.model;if(typeof model=="string"){var onBeforeClassCreated=data.onBeforeClassCreated;data.onBeforeClassCreated=function(cls,data){var me=this;Ext.require(model,function(){onBeforeClassCreated.call(me,cls,data)})}}},constructor:function(config){config=Ext.Object.merge({},config);var me=this,groupers=config.groupers||me.groupers,groupField=config.groupField||me.groupField,proxy,data;if(config.buffered||me.buffered){me.prefetchData=Ext.create("Ext.util.MixedCollection",false,function(record){return record.index});me.pendingRequests=[];me.pagesRequested=[];me.sortOnLoad=false;me.filterOnLoad=false}me.addEvents("beforeprefetch","groupchange","prefetch");data=config.data||me.data;me.data=Ext.create("Ext.util.MixedCollection",false,function(record){return record.internalId});if(data){me.inlineData=data;delete config.data}if(!groupers&&groupField){groupers=[{property:groupField,direction:config.groupDir||me.groupDir}]}delete config.groupers;me.groupers=Ext.create("Ext.util.MixedCollection");me.groupers.addAll(me.decodeGroupers(groupers));this.callParent([config]);if(me.groupers.items.length){me.sort(me.groupers.items,"prepend",false)}proxy=me.proxy;data=me.inlineData;if(data){if(proxy instanceof Ext.data.proxy.Memory){proxy.data=data;me.read()}else{me.add.apply(me,data)}me.sort();delete me.inlineData}else{if(me.autoLoad){Ext.defer(me.load,10,me,[typeof me.autoLoad==="object"?me.autoLoad:undefined])}}},onBeforeSort:function(){var groupers=this.groupers;if(groupers.getCount()>0){this.sort(groupers.items,"prepend",false)}},decodeGroupers:function(groupers){if(!Ext.isArray(groupers)){if(groupers===undefined){groupers=[]}else{groupers=[groupers]}}var length=groupers.length,Grouper=Ext.util.Grouper,config,i;for(i=0;i<length;i++){config=groupers[i];if(!(config instanceof Grouper)){if(Ext.isString(config)){config={property:config}}Ext.applyIf(config,{root:"data",direction:"ASC"});if(config.fn){config.sorterFn=config.fn}if(typeof config=="function"){config={sorterFn:config}}groupers[i]=new Grouper(config)}}return groupers},group:function(groupers,direction){var me=this,hasNew=false,grouper,newGroupers;if(Ext.isArray(groupers)){newGroupers=groupers}else{if(Ext.isObject(groupers)){newGroupers=[groupers]}else{if(Ext.isString(groupers)){grouper=me.groupers.get(groupers);if(!grouper){grouper={property:groupers,direction:direction};newGroupers=[grouper]}else{if(direction===undefined){grouper.toggle()}else{grouper.setDirection(direction)}}}}}if(newGroupers&&newGroupers.length){hasNew=true;newGroupers=me.decodeGroupers(newGroupers);me.groupers.clear();me.groupers.addAll(newGroupers)}if(me.remoteGroup){me.load({scope:me,callback:me.fireGroupChange})}else{me.sort(null,null,null,hasNew);me.fireGroupChange()}},clearGrouping:function(){var me=this;me.groupers.each(function(grouper){me.sorters.remove(grouper)});me.groupers.clear();if(me.remoteGroup){me.load({scope:me,callback:me.fireGroupChange})}else{me.sort();me.fireEvent("groupchange",me,me.groupers)}},isGrouped:function(){return this.groupers.getCount()>0},fireGroupChange:function(){this.fireEvent("groupchange",this,this.groupers)},getGroups:function(requestGroupString){var records=this.data.items,length=records.length,groups=[],pointers={},record,groupStr,group,i;for(i=0;i<length;i++){record=records[i];groupStr=this.getGroupString(record);group=pointers[groupStr];if(group===undefined){group={name:groupStr,children:[]};groups.push(group);pointers[groupStr]=group}group.children.push(record)}return requestGroupString?pointers[requestGroupString]:groups},getGroupsForGrouper:function(records,grouper){var length=records.length,groups=[],oldValue,newValue,record,group,i;for(i=0;i<length;i++){record=records[i];newValue=grouper.getGroupString(record);if(newValue!==oldValue){group={name:newValue,grouper:grouper,records:[]};groups.push(group)}group.records.push(record);oldValue=newValue}return groups},getGroupsForGrouperIndex:function(records,grouperIndex){var me=this,groupers=me.groupers,grouper=groupers.getAt(grouperIndex),groups=me.getGroupsForGrouper(records,grouper),length=groups.length,i;if(grouperIndex+1<groupers.length){for(i=0;i<length;i++){groups[i].children=me.getGroupsForGrouperIndex(groups[i].records,grouperIndex+1)}}for(i=0;i<length;i++){groups[i].depth=grouperIndex}return groups},getGroupData:function(sort){var me=this;if(sort!==false){me.sort()}return me.getGroupsForGrouperIndex(me.data.items,0)},getGroupString:function(instance){var group=this.groupers.first();if(group){return instance.get(group.property)}return""},insert:function(index,records){var me=this,sync=false,i,record,len;records=[].concat(records);for(i=0,len=records.length;i<len;i++){record=me.createModel(records[i]);record.set(me.modelDefaults);records[i]=record;me.data.insert(index+i,record);record.join(me);sync=sync||record.phantom===true}if(me.snapshot){me.snapshot.addAll(records)}me.fireEvent("add",me,records,index);me.fireEvent("datachanged",me);if(me.autoSync&&sync){me.sync()}},add:function(records){if(!Ext.isArray(records)){records=Array.prototype.slice.apply(arguments)}var me=this,i=0,length=records.length,record;for(;i<length;i++){record=me.createModel(records[i]);records[i]=record}me.insert(me.data.length,records);return records},createModel:function(record){if(!record.isModel){record=Ext.ModelManager.create(record,this.model)}return record},each:function(fn,scope){this.data.each(fn,scope)},remove:function(records,isMove){if(!Ext.isArray(records)){records=[records]}isMove=isMove===true;var me=this,sync=false,i=0,length=records.length,isPhantom,index,record;for(;i<length;i++){record=records[i];index=me.data.indexOf(record);if(me.snapshot){me.snapshot.remove(record)}if(index>-1){isPhantom=record.phantom===true;if(!isMove&&!isPhantom){me.removed.push(record)}record.unjoin(me);me.data.remove(record);sync=sync||!isPhantom;me.fireEvent("remove",me,record,index)}}me.fireEvent("datachanged",me);if(!isMove&&me.autoSync&&sync){me.sync()}},removeAt:function(index){var record=this.getAt(index);if(record){this.remove(record)}},load:function(options){var me=this;options=options||{};if(Ext.isFunction(options)){options={callback:options}}Ext.applyIf(options,{groupers:me.groupers.items,page:me.currentPage,start:(me.currentPage-1)*me.pageSize,limit:me.pageSize,addRecords:false});return me.callParent([options])},onProxyLoad:function(operation){var me=this,resultSet=operation.getResultSet(),records=operation.getRecords(),successful=operation.wasSuccessful();if(resultSet){me.totalCount=resultSet.total}if(successful){me.loadRecords(records,operation)}me.loading=false;me.fireEvent("load",me,records,successful);me.fireEvent("read",me,records,operation.wasSuccessful());Ext.callback(operation.callback,operation.scope||me,[records,operation,successful])},onCreateRecords:function(records,operation,success){if(success){var i=0,data=this.data,snapshot=this.snapshot,length=records.length,originalRecords=operation.records,record,original,index;for(;i<length;++i){record=records[i];original=originalRecords[i];if(original){index=data.indexOf(original);if(index>-1){data.removeAt(index);data.insert(index,record)}if(snapshot){index=snapshot.indexOf(original);if(index>-1){snapshot.removeAt(index);snapshot.insert(index,record)}}record.phantom=false;record.join(this)}}}},onUpdateRecords:function(records,operation,success){if(success){var i=0,length=records.length,data=this.data,snapshot=this.snapshot,record;for(;i<length;++i){record=records[i];data.replace(record);if(snapshot){snapshot.replace(record)}record.join(this)}}},onDestroyRecords:function(records,operation,success){if(success){var me=this,i=0,length=records.length,data=me.data,snapshot=me.snapshot,record;for(;i<length;++i){record=records[i];record.unjoin(me);data.remove(record);if(snapshot){snapshot.remove(record)}}me.removed=[]}},getNewRecords:function(){return this.data.filterBy(this.filterNew).items},getUpdatedRecords:function(){return this.data.filterBy(this.filterUpdated).items},filter:function(filters,value){if(Ext.isString(filters)){filters={property:filters,value:value}}var me=this,decoded=me.decodeFilters(filters),i=0,doLocalSort=me.sortOnFilter&&!me.remoteSort,length=decoded.length;for(;i<length;i++){me.filters.replace(decoded[i])}if(me.remoteFilter){me.load()}else{if(me.filters.getCount()){me.snapshot=me.snapshot||me.data.clone();me.data=me.data.filter(me.filters.items);if(doLocalSort){me.sort()}if(!doLocalSort||me.sorters.length<1){me.fireEvent("datachanged",me)}}}},clearFilter:function(suppressEvent){var me=this;me.filters.clear();if(me.remoteFilter){me.load()}else{if(me.isFiltered()){me.data=me.snapshot.clone();delete me.snapshot;if(suppressEvent!==true){me.fireEvent("datachanged",me)}}}},isFiltered:function(){var snapshot=this.snapshot;return !!snapshot&&snapshot!==this.data},filterBy:function(fn,scope){var me=this;me.snapshot=me.snapshot||me.data.clone();me.data=me.queryBy(fn,scope||me);me.fireEvent("datachanged",me)},queryBy:function(fn,scope){var me=this,data=me.snapshot||me.data;return data.filterBy(fn,scope||me)},loadData:function(data,append){var model=this.model,length=data.length,newData=[],i,record;for(i=0;i<length;i++){record=data[i];if(!(record instanceof Ext.data.Model)){record=Ext.ModelManager.create(record,model)}newData.push(record)}this.loadRecords(newData,{addRecords:append})},loadRawData:function(data,append){var me=this,result=me.proxy.reader.read(data),records=result.records;if(result.success){me.loadRecords(records,{addRecords:append});me.fireEvent("load",me,records,true)}},loadRecords:function(records,options){var me=this,i=0,length=records.length;options=options||{};if(!options.addRecords){delete me.snapshot;me.clearData()}me.data.addAll(records);for(;i<length;i++){if(options.start!==undefined){records[i].index=options.start+i}records[i].join(me)}me.suspendEvents();if(me.filterOnLoad&&!me.remoteFilter){me.filter()}if(me.sortOnLoad&&!me.remoteSort){me.sort()}me.resumeEvents();me.fireEvent("datachanged",me,records)},loadPage:function(page,options){var me=this;options=Ext.apply({},options);me.currentPage=page;me.read(Ext.applyIf(options,{page:page,start:(page-1)*me.pageSize,limit:me.pageSize,addRecords:!me.clearOnPageLoad}))},nextPage:function(options){this.loadPage(this.currentPage+1,options)},previousPage:function(options){this.loadPage(this.currentPage-1,options)},clearData:function(){var me=this;me.data.each(function(record){record.unjoin(me)});me.data.clear()},prefetch:function(options){var me=this,operation,requestId=me.getRequestId();options=options||{};Ext.applyIf(options,{action:"read",filters:me.filters.items,sorters:me.sorters.items,requestId:requestId});me.pendingRequests.push(requestId);operation=Ext.create("Ext.data.Operation",options);if(me.fireEvent("beforeprefetch",me,operation)!==false){me.loading=true;me.proxy.read(operation,me.onProxyPrefetch,me)}return me},prefetchPage:function(page,options){var me=this,pageSize=me.pageSize,start=(page-1)*me.pageSize,end=start+pageSize;if(Ext.Array.indexOf(me.pagesRequested,page)===-1&&!me.rangeSatisfied(start,end)){options=options||{};me.pagesRequested.push(page);Ext.applyIf(options,{page:page,start:start,limit:pageSize,callback:me.onWaitForGuarantee,scope:me});me.prefetch(options)}},getRequestId:function(){this.requestSeed=this.requestSeed||1;return this.requestSeed++},onProxyPrefetch:function(operation){var me=this,resultSet=operation.getResultSet(),records=operation.getRecords(),successful=operation.wasSuccessful();if(resultSet){me.totalCount=resultSet.total;me.fireEvent("totalcountchange",me.totalCount)}if(successful){me.cacheRecords(records,operation)}Ext.Array.remove(me.pendingRequests,operation.requestId);if(operation.page){Ext.Array.remove(me.pagesRequested,operation.page)}me.loading=false;me.fireEvent("prefetch",me,records,successful,operation);if(operation.blocking){me.fireEvent("load",me,records,successful)}Ext.callback(operation.callback,operation.scope||me,[records,operation,successful])},cacheRecords:function(records,operation){var me=this,i=0,length=records.length,start=operation?operation.start:0;if(!Ext.isDefined(me.totalCount)){me.totalCount=records.length;me.fireEvent("totalcountchange",me.totalCount)}for(;i<length;i++){records[i].index=start+i}me.prefetchData.addAll(records);if(me.purgePageCount){me.purgeRecords()}},purgeRecords:function(){var me=this,prefetchCount=me.prefetchData.getCount(),purgeCount=me.purgePageCount*me.pageSize,numRecordsToPurge=prefetchCount-purgeCount-1,i=0;for(;i<=numRecordsToPurge;i++){me.prefetchData.removeAt(0)}},rangeSatisfied:function(start,end){var me=this,i=start,satisfied=true;for(;i<end;i++){if(!me.prefetchData.getByKey(i)){satisfied=false;break}}return satisfied},getPageFromRecordIndex:function(index){return Math.floor(index/this.pageSize)+1},onGuaranteedRange:function(){var me=this,totalCount=me.getTotalCount(),start=me.requestStart,end=((totalCount-1)<me.requestEnd)?totalCount-1:me.requestEnd,range=[],record,i=start;end=Math.max(0,end);if(start!==me.guaranteedStart&&end!==me.guaranteedEnd){me.guaranteedStart=start;me.guaranteedEnd=end;for(;i<=end;i++){record=me.prefetchData.getByKey(i);if(record){range.push(record)}}me.fireEvent("guaranteedrange",range,start,end);if(me.cb){me.cb.call(me.scope||me,range)}}me.unmask()},mask:function(){this.masked=true;this.fireEvent("beforeload")},unmask:function(){if(this.masked){this.fireEvent("load")}},hasPendingRequests:function(){return this.pendingRequests.length},onWaitForGuarantee:function(){if(!this.hasPendingRequests()){this.onGuaranteedRange()}},guaranteeRange:function(start,end,cb,scope){end=(end>this.totalCount)?this.totalCount-1:end;var me=this,i=start,prefetchData=me.prefetchData,range=[],startLoaded=!!prefetchData.getByKey(start),endLoaded=!!prefetchData.getByKey(end),startPage=me.getPageFromRecordIndex(start),endPage=me.getPageFromRecordIndex(end);me.cb=cb;me.scope=scope;me.requestStart=start;me.requestEnd=end;if(!startLoaded||!endLoaded){if(startPage===endPage){me.mask();me.prefetchPage(startPage,{callback:me.onWaitForGuarantee,scope:me})}else{me.mask();me.prefetchPage(startPage,{callback:me.onWaitForGuarantee,scope:me});me.prefetchPage(endPage,{callback:me.onWaitForGuarantee,scope:me})}}else{me.onGuaranteedRange()}},sort:function(){var me=this,prefetchData=me.prefetchData,sorters,start,end,range;if(me.buffered){if(me.remoteSort){prefetchData.clear();me.callParent(arguments)}else{sorters=me.getSorters();start=me.guaranteedStart;end=me.guaranteedEnd;if(sorters.length){prefetchData.sort(sorters);range=prefetchData.getRange();prefetchData.clear();me.cacheRecords(range);delete me.guaranteedStart;delete me.guaranteedEnd;me.guaranteeRange(start,end)}me.callParent(arguments)}}else{me.callParent(arguments)}},doSort:function(sorterFn){var me=this;if(me.remoteSort){me.load()}else{me.data.sortBy(sorterFn);if(!me.buffered){var range=me.getRange(),ln=range.length,i=0;for(;i<ln;i++){range[i].index=i}}me.fireEvent("datachanged",me)}},find:function(property,value,start,anyMatch,caseSensitive,exactMatch){var fn=this.createFilterFn(property,value,anyMatch,caseSensitive,exactMatch);return fn?this.data.findIndexBy(fn,null,start):-1},findRecord:function(){var me=this,index=me.find.apply(me,arguments);return index!==-1?me.getAt(index):null},createFilterFn:function(property,value,anyMatch,caseSensitive,exactMatch){if(Ext.isEmpty(value)){return false}value=this.data.createValueMatcher(value,anyMatch,caseSensitive,exactMatch);return function(r){return value.test(r.data[property])}},findExact:function(property,value,start){return this.data.findIndexBy(function(rec){return rec.get(property)==value},this,start)},findBy:function(fn,scope,start){return this.data.findIndexBy(fn,scope,start)},collect:function(dataIndex,allowNull,bypassFilter){var me=this,data=(bypassFilter===true&&me.snapshot)?me.snapshot:me.data;return data.collect(dataIndex,"data",allowNull)},getCount:function(){return this.data.length||0},getTotalCount:function(){return this.totalCount},getAt:function(index){return this.data.getAt(index)},getRange:function(start,end){return this.data.getRange(start,end)},getById:function(id){return(this.snapshot||this.data).findBy(function(record){return record.getId()===id})},indexOf:function(record){return this.data.indexOf(record)},indexOfTotal:function(record){var index=record.index;if(index||index===0){return index}return this.indexOf(record)},indexOfId:function(id){return this.indexOf(this.getById(id))},removeAll:function(silent){var me=this;me.clearData();if(me.snapshot){me.snapshot.clear()}if(silent!==true){me.fireEvent("clear",me)}},first:function(grouped){var me=this;if(grouped&&me.isGrouped()){return me.aggregate(function(records){return records.length?records[0]:undefined},me,true)}else{return me.data.first()}},last:function(grouped){var me=this;if(grouped&&me.isGrouped()){return me.aggregate(function(records){var len=records.length;return len?records[len-1]:undefined},me,true)}else{return me.data.last()}},sum:function(field,grouped){var me=this;if(grouped&&me.isGrouped()){return me.aggregate(me.getSum,me,true,[field])}else{return me.getSum(me.data.items,field)}},getSum:function(records,field){var total=0,i=0,len=records.length;for(;i<len;++i){total+=records[i].get(field)}return total},count:function(grouped){var me=this;if(grouped&&me.isGrouped()){return me.aggregate(function(records){return records.length},me,true)}else{return me.getCount()}},min:function(field,grouped){var me=this;if(grouped&&me.isGrouped()){return me.aggregate(me.getMin,me,true,[field])}else{return me.getMin(me.data.items,field)}},getMin:function(records,field){var i=1,len=records.length,value,min;if(len>0){min=records[0].get(field)}for(;i<len;++i){value=records[i].get(field);if(value<min){min=value}}return min},max:function(field,grouped){var me=this;if(grouped&&me.isGrouped()){return me.aggregate(me.getMax,me,true,[field])}else{return me.getMax(me.data.items,field)}},getMax:function(records,field){var i=1,len=records.length,value,max;if(len>0){max=records[0].get(field)}for(;i<len;++i){value=records[i].get(field);if(value>max){max=value}}return max},average:function(field,grouped){var me=this;if(grouped&&me.isGrouped()){return me.aggregate(me.getAverage,me,true,[field])}else{return me.getAverage(me.data.items,field)}},getAverage:function(records,field){var i=0,len=records.length,sum=0;if(records.length>0){for(;i<len;++i){sum+=records[i].get(field)}return sum/len}return 0},aggregate:function(fn,scope,grouped,args){args=args||[];if(grouped&&this.isGrouped()){var groups=this.getGroups(),i=0,len=groups.length,out={},group;for(;i<len;++i){group=groups[i];out[group.name]=fn.apply(scope||this,[group.children].concat(args))}return out}else{return fn.apply(scope||this,[this.data.items].concat(args))}}},function(){Ext.regStore("ext-empty-store",{fields:[],proxy:"proxy"})});Ext.define("Ext.data.JsonStore",{extend:"Ext.data.Store",alias:"store.json",constructor:function(config){config=config||{};Ext.applyIf(config,{proxy:{type:"ajax",reader:"json",writer:"json"}});this.callParent([config])}});Ext.define("Ext.chart.axis.Time",{extend:"Ext.chart.axis.Numeric",alternateClassName:"Ext.chart.TimeAxis",alias:"axis.time",requires:["Ext.data.Store","Ext.data.JsonStore"],dateFormat:false,fromDate:false,toDate:false,step:[Ext.Date.DAY,1],constrain:false,roundToDecimal:false,constructor:function(config){var me=this,label,f,df;me.callParent([config]);label=me.label||{};df=this.dateFormat;if(df){if(label.renderer){f=label.renderer;label.renderer=function(v){v=f(v);return Ext.Date.format(new Date(f(v)),df)}}else{label.renderer=function(v){return Ext.Date.format(new Date(v>>0),df)}}}},doConstrain:function(){var me=this,store=me.chart.store,data=[],series=me.chart.series.items,math=Math,mmax=math.max,mmin=math.min,fields=me.fields,ln=fields.length,range=me.getRange(),min=range.min,max=range.max,i,l,excludes=[],value,values,rec,data=[];for(i=0,l=series.length;i<l;i++){excludes[i]=series[i].__excludes}store.each(function(record){for(i=0;i<ln;i++){if(excludes[i]){continue}value=record.get(fields[i]);if(+value<+min){return}if(+value>+max){return}}data.push(record)});me.chart.substore=Ext.create("Ext.data.JsonStore",{model:store.model,data:data})},processView:function(){var me=this;if(me.fromDate){me.minimum=+me.fromDate}if(me.toDate){me.maximum=+me.toDate}if(me.constrain){me.doConstrain()}},calcEnds:function(){var me=this,range,step=me.step;if(step){range=me.getRange();range=Ext.draw.Draw.snapEndsByDateAndStep(new Date(range.min),new Date(range.max),Ext.isNumber(step)?[Date.MILLI,step]:step);if(me.minimum){range.from=me.minimum}if(me.maximum){range.to=me.maximum}range.step=(range.to-range.from)/range.steps;return range}else{return me.callParent(arguments)}}});Ext.define("Ext.chart.series.Series",{mixins:{observable:"Ext.util.Observable",labels:"Ext.chart.Label",highlights:"Ext.chart.Highlight",tips:"Ext.chart.Tip",callouts:"Ext.chart.Callout"},type:null,title:null,showInLegend:true,renderer:function(sprite,record,attributes,index,store){return attributes},shadowAttributes:null,triggerAfterDraw:false,constructor:function(config){var me=this;if(config){Ext.apply(me,config)}me.shadowGroups=[];me.mixins.labels.constructor.call(me,config);me.mixins.highlights.constructor.call(me,config);me.mixins.tips.constructor.call(me,config);me.mixins.callouts.constructor.call(me,config);me.addEvents({scope:me,itemmouseover:true,itemmouseout:true,itemmousedown:true,itemmouseup:true,mouseleave:true,afterdraw:true,titlechange:true});me.mixins.observable.constructor.call(me,config);me.on({scope:me,itemmouseover:me.onItemMouseOver,itemmouseout:me.onItemMouseOut,mouseleave:me.onMouseLeave})},eachRecord:function(fn,scope){var chart=this.chart;(chart.substore||chart.store).each(fn,scope)},getRecordCount:function(){var chart=this.chart,store=chart.substore||chart.store;return store?store.getCount():0},isExcluded:function(index){var excludes=this.__excludes;return !!(excludes&&excludes[index])},setBBox:function(noGutter){var me=this,chart=me.chart,chartBBox=chart.chartBBox,gutterX=noGutter?0:chart.maxGutter[0],gutterY=noGutter?0:chart.maxGutter[1],clipBox,bbox;clipBox={x:chartBBox.x,y:chartBBox.y,width:chartBBox.width,height:chartBBox.height};me.clipBox=clipBox;bbox={x:(clipBox.x+gutterX)-(chart.zoom.x*chart.zoom.width),y:(clipBox.y+gutterY)-(chart.zoom.y*chart.zoom.height),width:(clipBox.width-(gutterX*2))*chart.zoom.width,height:(clipBox.height-(gutterY*2))*chart.zoom.height};me.bbox=bbox},onAnimate:function(sprite,attr){var me=this;sprite.stopAnimation();if(me.triggerAfterDraw){return sprite.animate(Ext.applyIf(attr,me.chart.animate))}else{me.triggerAfterDraw=true;return sprite.animate(Ext.apply(Ext.applyIf(attr,me.chart.animate),{listeners:{afteranimate:function(){me.triggerAfterDraw=false;me.fireEvent("afterrender")}}}))}},getGutters:function(){return[0,0]},onItemMouseOver:function(item){var me=this;if(item.series===me){if(me.highlight){me.highlightItem(item)}if(me.tooltip){me.showTip(item)}}},onItemMouseOut:function(item){var me=this;if(item.series===me){me.unHighlightItem();if(me.tooltip){me.hideTip(item)}}},onMouseLeave:function(){var me=this;me.unHighlightItem();if(me.tooltip){me.hideTip()}},getItemForPoint:function(x,y){if(!this.items||!this.items.length||this.seriesIsHidden){return null}var me=this,items=me.items,bbox=me.bbox,item,i,ln;if(!Ext.draw.Draw.withinBox(x,y,bbox)){return null}for(i=0,ln=items.length;i<ln;i++){if(items[i]&&this.isItemInPoint(x,y,items[i],i)){return items[i]}}return null},isItemInPoint:function(x,y,item,i){return false},hideAll:function(){var me=this,items=me.items,item,len,i,j,l,sprite,shadows;me.seriesIsHidden=true;me._prevShowMarkers=me.showMarkers;me.showMarkers=false;me.hideLabels(0);for(i=0,len=items.length;i<len;i++){item=items[i];sprite=item.sprite;if(sprite){sprite.setAttributes({hidden:true},true)}if(sprite&&sprite.shadows){shadows=sprite.shadows;for(j=0,l=shadows.length;j<l;++j){shadows[j].setAttributes({hidden:true},true)}}}},showAll:function(){var me=this,prevAnimate=me.chart.animate;me.chart.animate=false;me.seriesIsHidden=false;me.showMarkers=me._prevShowMarkers;me.drawSeries();me.chart.animate=prevAnimate},getLegendColor:function(index){var me=this,fill,stroke;if(me.seriesStyle){fill=me.seriesStyle.fill;stroke=me.seriesStyle.stroke;if(fill&&fill!="none"){return fill}return stroke}return"#000"},visibleInLegend:function(index){var excludes=this.__excludes;if(excludes){return !excludes[index]}return !this.seriesIsHidden},setTitle:function(index,title){var me=this,oldTitle=me.title;if(Ext.isString(index)){title=index;index=0}if(Ext.isArray(oldTitle)){oldTitle[index]=title}else{me.title=title}me.fireEvent("titlechange",title,index)}});Ext.define("Ext.chart.series.Cartesian",{extend:"Ext.chart.series.Series",alternateClassName:["Ext.chart.CartesianSeries","Ext.chart.CartesianChart"],xField:null,yField:null,axis:"left",getLegendLabels:function(){var me=this,labels=[],combinations=me.combinations;Ext.each([].concat(me.yField),function(yField,i){var title=me.title;labels.push((Ext.isArray(title)?title[i]:title)||yField)});if(combinations){Ext.each(combinations,function(combo){var label0=labels[combo[0]],label1=labels[combo[1]];labels[combo[1]]=label0+" & "+label1;labels.splice(combo[0],1)})}return labels},eachYValue:function(record,fn,scope){Ext.each(this.getYValueAccessors(),function(accessor,i){fn.call(scope,accessor(record),i)})},getYValueCount:function(){return this.getYValueAccessors().length},combine:function(index1,index2){var me=this,accessors=me.getYValueAccessors(),accessor1=accessors[index1],accessor2=accessors[index2];accessors[index2]=function(record){return accessor1(record)+accessor2(record)};accessors.splice(index1,1);me.callParent([index1,index2])},clearCombinations:function(){delete this.yValueAccessors;this.callParent()},getYValueAccessors:function(){var me=this,accessors=me.yValueAccessors;if(!accessors){accessors=me.yValueAccessors=[];Ext.each([].concat(me.yField),function(yField){accessors.push(function(record){return record.get(yField)})})}return accessors},getMinMaxXValues:function(){var me=this,min,max,xField=me.xField;if(me.getRecordCount()>0){min=Infinity;max=-min;me.eachRecord(function(record){var xValue=record.get(xField);if(xValue>max){max=xValue}if(xValue<min){min=xValue}})}else{min=max=0}return[min,max]},getMinMaxYValues:function(){var me=this,stacked=me.stacked,min,max,positiveTotal,negativeTotal;function eachYValueStacked(yValue,i){if(!me.isExcluded(i)){if(yValue<0){negativeTotal+=yValue}else{positiveTotal+=yValue}}}function eachYValue(yValue,i){if(!me.isExcluded(i)){if(yValue>max){max=yValue}if(yValue<min){min=yValue}}}if(me.getRecordCount()>0){min=Infinity;max=-min;me.eachRecord(function(record){if(stacked){positiveTotal=0;negativeTotal=0;me.eachYValue(record,eachYValueStacked);if(positiveTotal>max){max=positiveTotal}if(negativeTotal<min){min=negativeTotal}}else{me.eachYValue(record,eachYValue)}})}else{min=max=0}return[min,max]},getAxesForXAndYFields:function(){var me=this,axes=me.chart.axes,axis=[].concat(me.axis),xAxis,yAxis;if(Ext.Array.indexOf(axis,"top")>-1){xAxis="top"}else{if(Ext.Array.indexOf(axis,"bottom")>-1){xAxis="bottom"}else{if(axes.get("top")){xAxis="top"}else{if(axes.get("bottom")){xAxis="bottom"}}}}if(Ext.Array.indexOf(axis,"left")>-1){yAxis="left"}else{if(Ext.Array.indexOf(axis,"right")>-1){yAxis="right"}else{if(axes.get("left")){yAxis="left"}else{if(axes.get("right")){yAxis="right"}}}}return{xAxis:xAxis,yAxis:yAxis}}});Ext.define("Ext.chart.series.Area",{extend:"Ext.chart.series.Cartesian",alias:"series.area",requires:["Ext.chart.axis.Axis","Ext.draw.Color","Ext.fx.Anim"],type:"area",stacked:true,style:{},constructor:function(config){this.callParent(arguments);var me=this,surface=me.chart.surface,i,l;Ext.apply(me,config,{__excludes:[],highlightCfg:{lineWidth:3,stroke:"#55c",opacity:0.8,color:"#f00"}});if(me.highlight){me.highlightSprite=surface.add({type:"path",path:["M",0,0],zIndex:1000,opacity:0.3,lineWidth:5,hidden:true,stroke:"#444"})}me.group=surface.getGroup(me.seriesId)},shrink:function(xValues,yValues,size){var len=xValues.length,ratio=Math.floor(len/size),i,j,xSum=0,yCompLen=this.areas.length,ySum=[],xRes=[],yRes=[];for(j=0;j<yCompLen;++j){ySum[j]=0}for(i=0;i<len;++i){xSum+=xValues[i];for(j=0;j<yCompLen;++j){ySum[j]+=yValues[i][j]}if(i%ratio==0){xRes.push(xSum/ratio);for(j=0;j<yCompLen;++j){ySum[j]/=ratio}yRes.push(ySum);xSum=0;for(j=0,ySum=[];j<yCompLen;++j){ySum[j]=0}}}return{x:xRes,y:yRes}},getBounds:function(){var me=this,chart=me.chart,store=chart.getChartStore(),areas=[].concat(me.yField),areasLen=areas.length,xValues=[],yValues=[],infinity=Infinity,minX=infinity,minY=infinity,maxX=-infinity,maxY=-infinity,math=Math,mmin=math.min,mmax=math.max,bbox,xScale,yScale,xValue,yValue,areaIndex,acumY,ln,sumValues,clipBox,areaElem;me.setBBox();bbox=me.bbox;if(me.axis){axis=chart.axes.get(me.axis);if(axis){out=axis.calcEnds();minY=out.from||axis.prevMin;maxY=mmax(out.to||axis.prevMax,0)}}if(me.yField&&!Ext.isNumber(minY)){axis=Ext.create("Ext.chart.axis.Axis",{chart:chart,fields:[].concat(me.yField)});out=axis.calcEnds();minY=out.from||axis.prevMin;maxY=mmax(out.to||axis.prevMax,0)}if(!Ext.isNumber(minY)){minY=0}if(!Ext.isNumber(maxY)){maxY=0}store.each(function(record,i){xValue=record.get(me.xField);yValue=[];if(typeof xValue!="number"){xValue=i}xValues.push(xValue);acumY=0;for(areaIndex=0;areaIndex<areasLen;areaIndex++){areaElem=record.get(areas[areaIndex]);if(typeof areaElem=="number"){minY=mmin(minY,areaElem);yValue.push(areaElem);acumY+=areaElem}}minX=mmin(minX,xValue);maxX=mmax(maxX,xValue);maxY=mmax(maxY,acumY);yValues.push(yValue)},me);xScale=bbox.width/((maxX-minX)||1);yScale=bbox.height/((maxY-minY)||1);ln=xValues.length;if((ln>bbox.width)&&me.areas){sumValues=me.shrink(xValues,yValues,bbox.width);xValues=sumValues.x;yValues=sumValues.y}return{bbox:bbox,minX:minX,minY:minY,xValues:xValues,yValues:yValues,xScale:xScale,yScale:yScale,areasLen:areasLen}},getPaths:function(){var me=this,chart=me.chart,store=chart.getChartStore(),first=true,bounds=me.getBounds(),bbox=bounds.bbox,items=me.items=[],componentPaths=[],componentPath,paths=[],i,ln,x,y,xValue,yValue,acumY,areaIndex,prevAreaIndex,areaElem,path;ln=bounds.xValues.length;for(i=0;i<ln;i++){xValue=bounds.xValues[i];yValue=bounds.yValues[i];x=bbox.x+(xValue-bounds.minX)*bounds.xScale;acumY=0;for(areaIndex=0;areaIndex<bounds.areasLen;areaIndex++){if(me.__excludes[areaIndex]){continue}if(!componentPaths[areaIndex]){componentPaths[areaIndex]=[]}areaElem=yValue[areaIndex];acumY+=areaElem;y=bbox.y+bbox.height-(acumY-bounds.minY)*bounds.yScale;if(!paths[areaIndex]){paths[areaIndex]=["M",x,y];componentPaths[areaIndex].push(["L",x,y])}else{paths[areaIndex].push("L",x,y);componentPaths[areaIndex].push(["L",x,y])}if(!items[areaIndex]){items[areaIndex]={pointsUp:[],pointsDown:[],series:me}}items[areaIndex].pointsUp.push([x,y])}}for(areaIndex=0;areaIndex<bounds.areasLen;areaIndex++){if(me.__excludes[areaIndex]){continue}path=paths[areaIndex];if(areaIndex==0||first){first=false;path.push("L",x,bbox.y+bbox.height,"L",bbox.x,bbox.y+bbox.height,"Z")}else{componentPath=componentPaths[prevAreaIndex];componentPath.reverse();path.push("L",x,componentPath[0][2]);for(i=0;i<ln;i++){path.push(componentPath[i][0],componentPath[i][1],componentPath[i][2]);items[areaIndex].pointsDown[ln-i-1]=[componentPath[i][1],componentPath[i][2]]}path.push("L",bbox.x,path[2],"Z")}prevAreaIndex=areaIndex}return{paths:paths,areasLen:bounds.areasLen}},drawSeries:function(){var me=this,chart=me.chart,store=chart.getChartStore(),surface=chart.surface,animate=chart.animate,group=me.group,endLineStyle=Ext.apply(me.seriesStyle,me.style),colorArrayStyle=me.colorArrayStyle,colorArrayLength=colorArrayStyle&&colorArrayStyle.length||0,areaIndex,areaElem,paths,path,rendererAttributes;me.unHighlightItem();me.cleanHighlights();if(!store||!store.getCount()){return}paths=me.getPaths();if(!me.areas){me.areas=[]}for(areaIndex=0;areaIndex<paths.areasLen;areaIndex++){if(me.__excludes[areaIndex]){continue}if(!me.areas[areaIndex]){me.items[areaIndex].sprite=me.areas[areaIndex]=surface.add(Ext.apply({},{type:"path",group:group,path:paths.paths[areaIndex],stroke:endLineStyle.stroke||colorArrayStyle[areaIndex%colorArrayLength],fill:colorArrayStyle[areaIndex%colorArrayLength]},endLineStyle||{}))}areaElem=me.areas[areaIndex];path=paths.paths[areaIndex];if(animate){rendererAttributes=me.renderer(areaElem,false,{path:path,fill:colorArrayStyle[areaIndex%colorArrayLength],stroke:endLineStyle.stroke||colorArrayStyle[areaIndex%colorArrayLength]},areaIndex,store);me.animation=me.onAnimate(areaElem,{to:rendererAttributes})}else{rendererAttributes=me.renderer(areaElem,false,{path:path,hidden:false,fill:colorArrayStyle[areaIndex%colorArrayLength],stroke:endLineStyle.stroke||colorArrayStyle[areaIndex%colorArrayLength]},areaIndex,store);me.areas[areaIndex].setAttributes(rendererAttributes,true)}}me.renderLabels();me.renderCallouts()},onAnimate:function(sprite,attr){sprite.show();return this.callParent(arguments)},onCreateLabel:function(storeItem,item,i,display){var me=this,group=me.labelsGroup,config=me.label,bbox=me.bbox,endLabelStyle=Ext.apply(config,me.seriesLabelStyle);return me.chart.surface.add(Ext.apply({type:"text","text-anchor":"middle",group:group,x:item.point[0],y:bbox.y+bbox.height/2},endLabelStyle||{}))},onPlaceLabel:function(label,storeItem,item,i,display,animate,index){var me=this,chart=me.chart,resizing=chart.resizing,config=me.label,format=config.renderer,field=config.field,bbox=me.bbox,x=item.point[0],y=item.point[1],bb,width,height;label.setAttributes({text:format(storeItem.get(field[index])),hidden:true},true);bb=label.getBBox();width=bb.width/2;height=bb.height/2;x=x-width<bbox.x?bbox.x+width:x;x=(x+width>bbox.x+bbox.width)?(x-(x+width-bbox.x-bbox.width)):x;y=y-height<bbox.y?bbox.y+height:y;y=(y+height>bbox.y+bbox.height)?(y-(y+height-bbox.y-bbox.height)):y;if(me.chart.animate&&!me.chart.resizing){label.show(true);me.onAnimate(label,{to:{x:x,y:y}})}else{label.setAttributes({x:x,y:y},true);if(resizing){me.animation.on("afteranimate",function(){label.show(true)})}else{label.show(true)}}},onPlaceCallout:function(callout,storeItem,item,i,display,animate,index){var me=this,chart=me.chart,surface=chart.surface,resizing=chart.resizing,config=me.callouts,items=me.items,prev=(i==0)?false:items[i-1].point,next=(i==items.length-1)?false:items[i+1].point,cur=item.point,dir,norm,normal,a,aprev,anext,bbox=callout.label.getBBox(),offsetFromViz=30,offsetToSide=10,offsetBox=3,boxx,boxy,boxw,boxh,p,clipRect=me.clipRect,x,y;if(!prev){prev=cur}if(!next){next=cur}a=(next[1]-prev[1])/(next[0]-prev[0]);aprev=(cur[1]-prev[1])/(cur[0]-prev[0]);anext=(next[1]-cur[1])/(next[0]-cur[0]);norm=Math.sqrt(1+a*a);dir=[1/norm,a/norm];normal=[-dir[1],dir[0]];if(aprev>0&&anext<0&&normal[1]<0||aprev<0&&anext>0&&normal[1]>0){normal[0]*=-1;normal[1]*=-1}else{if(Math.abs(aprev)<Math.abs(anext)&&normal[0]<0||Math.abs(aprev)>Math.abs(anext)&&normal[0]>0){normal[0]*=-1;normal[1]*=-1}}x=cur[0]+normal[0]*offsetFromViz;y=cur[1]+normal[1]*offsetFromViz;boxx=x+(normal[0]>0?0:-(bbox.width+2*offsetBox));boxy=y-bbox.height/2-offsetBox;boxw=bbox.width+2*offsetBox;boxh=bbox.height+2*offsetBox;if(boxx<clipRect[0]||(boxx+boxw)>(clipRect[0]+clipRect[2])){normal[0]*=-1}if(boxy<clipRect[1]||(boxy+boxh)>(clipRect[1]+clipRect[3])){normal[1]*=-1}x=cur[0]+normal[0]*offsetFromViz;y=cur[1]+normal[1]*offsetFromViz;boxx=x+(normal[0]>0?0:-(bbox.width+2*offsetBox));boxy=y-bbox.height/2-offsetBox;boxw=bbox.width+2*offsetBox;boxh=bbox.height+2*offsetBox;callout.lines.setAttributes({path:["M",cur[0],cur[1],"L",x,y,"Z"]},true);callout.box.setAttributes({x:boxx,y:boxy,width:boxw,height:boxh},true);callout.label.setAttributes({x:x+(normal[0]>0?offsetBox:-(bbox.width+offsetBox)),y:y},true);for(p in callout){callout[p].show(true)}},isItemInPoint:function(x,y,item,i){var me=this,pointsUp=item.pointsUp,pointsDown=item.pointsDown,abs=Math.abs,dist=Infinity,p,pln,point;for(p=0,pln=pointsUp.length;p<pln;p++){point=[pointsUp[p][0],pointsUp[p][1]];if(dist>abs(x-point[0])){dist=abs(x-point[0])}else{point=pointsUp[p-1];if(y>=point[1]&&(!pointsDown.length||y<=(pointsDown[p-1][1]))){item.storeIndex=p-1;item.storeField=me.yField[i];item.storeItem=me.chart.store.getAt(p-1);item._points=pointsDown.length?[point,pointsDown[p-1]]:[point];return true}else{break}}}return false},highlightSeries:function(){var area,to,fillColor;if(this._index!==undefined){area=this.areas[this._index];if(area.__highlightAnim){area.__highlightAnim.paused=true}area.__highlighted=true;area.__prevOpacity=area.__prevOpacity||area.attr.opacity||1;area.__prevFill=area.__prevFill||area.attr.fill;area.__prevLineWidth=area.__prevLineWidth||area.attr.lineWidth;fillColor=Ext.draw.Color.fromString(area.__prevFill);to={lineWidth:(area.__prevLineWidth||0)+2};if(fillColor){to.fill=fillColor.getLighter(0.2).toString()}else{to.opacity=Math.max(area.__prevOpacity-0.3,0)}if(this.chart.animate){area.__highlightAnim=Ext.create("Ext.fx.Anim",Ext.apply({target:area,to:to},this.chart.animate))}else{area.setAttributes(to,true)}}},unHighlightSeries:function(){var area;if(this._index!==undefined){area=this.areas[this._index];if(area.__highlightAnim){area.__highlightAnim.paused=true}if(area.__highlighted){area.__highlighted=false;area.__highlightAnim=Ext.create("Ext.fx.Anim",{target:area,to:{fill:area.__prevFill,opacity:area.__prevOpacity,lineWidth:area.__prevLineWidth}})}}},highlightItem:function(item){var me=this,points,path;if(!item){this.highlightSeries();return}points=item._points;path=points.length==2?["M",points[0][0],points[0][1],"L",points[1][0],points[1][1]]:["M",points[0][0],points[0][1],"L",points[0][0],me.bbox.y+me.bbox.height];me.highlightSprite.setAttributes({path:path,hidden:false},true)},unHighlightItem:function(item){if(!item){this.unHighlightSeries()}if(this.highlightSprite){this.highlightSprite.hide(true)}},hideAll:function(){if(!isNaN(this._index)){this.__excludes[this._index]=true;this.areas[this._index].hide(true);this.drawSeries()}},showAll:function(){if(!isNaN(this._index)){this.__excludes[this._index]=false;this.areas[this._index].show(true);this.drawSeries()}},getLegendColor:function(index){var me=this;return me.colorArrayStyle[index%me.colorArrayStyle.length]}});Ext.define("Ext.chart.series.Area",{extend:"Ext.chart.series.Cartesian",alias:"series.area",requires:["Ext.chart.axis.Axis","Ext.draw.Color","Ext.fx.Anim"],type:"area",stacked:true,style:{},constructor:function(config){this.callParent(arguments);var me=this,surface=me.chart.surface,i,l;Ext.apply(me,config,{__excludes:[],highlightCfg:{lineWidth:3,stroke:"#55c",opacity:0.8,color:"#f00"}});if(me.highlight){me.highlightSprite=surface.add({type:"path",path:["M",0,0],zIndex:1000,opacity:0.3,lineWidth:5,hidden:true,stroke:"#444"})}me.group=surface.getGroup(me.seriesId)},shrink:function(xValues,yValues,size){var len=xValues.length,ratio=Math.floor(len/size),i,j,xSum=0,yCompLen=this.areas.length,ySum=[],xRes=[],yRes=[];for(j=0;j<yCompLen;++j){ySum[j]=0}for(i=0;i<len;++i){xSum+=xValues[i];for(j=0;j<yCompLen;++j){ySum[j]+=yValues[i][j]}if(i%ratio==0){xRes.push(xSum/ratio);for(j=0;j<yCompLen;++j){ySum[j]/=ratio}yRes.push(ySum);xSum=0;for(j=0,ySum=[];j<yCompLen;++j){ySum[j]=0}}}return{x:xRes,y:yRes}},getBounds:function(){var me=this,chart=me.chart,store=chart.getChartStore(),areas=[].concat(me.yField),areasLen=areas.length,xValues=[],yValues=[],infinity=Infinity,minX=infinity,minY=infinity,maxX=-infinity,maxY=-infinity,math=Math,mmin=math.min,mmax=math.max,bbox,xScale,yScale,xValue,yValue,areaIndex,acumY,ln,sumValues,clipBox,areaElem;me.setBBox();bbox=me.bbox;if(me.axis){axis=chart.axes.get(me.axis);if(axis){out=axis.calcEnds();minY=out.from||axis.prevMin;maxY=mmax(out.to||axis.prevMax,0)}}if(me.yField&&!Ext.isNumber(minY)){axis=Ext.create("Ext.chart.axis.Axis",{chart:chart,fields:[].concat(me.yField)});out=axis.calcEnds();minY=out.from||axis.prevMin;maxY=mmax(out.to||axis.prevMax,0)}if(!Ext.isNumber(minY)){minY=0}if(!Ext.isNumber(maxY)){maxY=0}store.each(function(record,i){xValue=record.get(me.xField);yValue=[];if(typeof xValue!="number"){xValue=i}xValues.push(xValue);acumY=0;for(areaIndex=0;areaIndex<areasLen;areaIndex++){areaElem=record.get(areas[areaIndex]);if(typeof areaElem=="number"){minY=mmin(minY,areaElem);yValue.push(areaElem);acumY+=areaElem}}minX=mmin(minX,xValue);maxX=mmax(maxX,xValue);maxY=mmax(maxY,acumY);yValues.push(yValue)},me);xScale=bbox.width/((maxX-minX)||1);yScale=bbox.height/((maxY-minY)||1);ln=xValues.length;if((ln>bbox.width)&&me.areas){sumValues=me.shrink(xValues,yValues,bbox.width);xValues=sumValues.x;yValues=sumValues.y}return{bbox:bbox,minX:minX,minY:minY,xValues:xValues,yValues:yValues,xScale:xScale,yScale:yScale,areasLen:areasLen}},getPaths:function(){var me=this,chart=me.chart,store=chart.getChartStore(),first=true,bounds=me.getBounds(),bbox=bounds.bbox,items=me.items=[],componentPaths=[],componentPath,paths=[],i,ln,x,y,xValue,yValue,acumY,areaIndex,prevAreaIndex,areaElem,path;ln=bounds.xValues.length;for(i=0;i<ln;i++){xValue=bounds.xValues[i];yValue=bounds.yValues[i];x=bbox.x+(xValue-bounds.minX)*bounds.xScale;acumY=0;for(areaIndex=0;areaIndex<bounds.areasLen;areaIndex++){if(me.__excludes[areaIndex]){continue}if(!componentPaths[areaIndex]){componentPaths[areaIndex]=[]}areaElem=yValue[areaIndex];acumY+=areaElem;y=bbox.y+bbox.height-(acumY-bounds.minY)*bounds.yScale;if(!paths[areaIndex]){paths[areaIndex]=["M",x,y];componentPaths[areaIndex].push(["L",x,y])}else{paths[areaIndex].push("L",x,y);componentPaths[areaIndex].push(["L",x,y])}if(!items[areaIndex]){items[areaIndex]={pointsUp:[],pointsDown:[],series:me}}items[areaIndex].pointsUp.push([x,y])}}for(areaIndex=0;areaIndex<bounds.areasLen;areaIndex++){if(me.__excludes[areaIndex]){continue}path=paths[areaIndex];if(areaIndex==0||first){first=false;path.push("L",x,bbox.y+bbox.height,"L",bbox.x,bbox.y+bbox.height,"Z")}else{componentPath=componentPaths[prevAreaIndex];componentPath.reverse();path.push("L",x,componentPath[0][2]);for(i=0;i<ln;i++){path.push(componentPath[i][0],componentPath[i][1],componentPath[i][2]);items[areaIndex].pointsDown[ln-i-1]=[componentPath[i][1],componentPath[i][2]]}path.push("L",bbox.x,path[2],"Z")}prevAreaIndex=areaIndex}return{paths:paths,areasLen:bounds.areasLen}},drawSeries:function(){var me=this,chart=me.chart,store=chart.getChartStore(),surface=chart.surface,animate=chart.animate,group=me.group,endLineStyle=Ext.apply(me.seriesStyle,me.style),colorArrayStyle=me.colorArrayStyle,colorArrayLength=colorArrayStyle&&colorArrayStyle.length||0,areaIndex,areaElem,paths,path,rendererAttributes;me.unHighlightItem();me.cleanHighlights();if(!store||!store.getCount()){return}paths=me.getPaths();if(!me.areas){me.areas=[]}for(areaIndex=0;areaIndex<paths.areasLen;areaIndex++){if(me.__excludes[areaIndex]){continue}if(!me.areas[areaIndex]){me.items[areaIndex].sprite=me.areas[areaIndex]=surface.add(Ext.apply({},{type:"path",group:group,path:paths.paths[areaIndex],stroke:endLineStyle.stroke||colorArrayStyle[areaIndex%colorArrayLength],fill:colorArrayStyle[areaIndex%colorArrayLength]},endLineStyle||{}))}areaElem=me.areas[areaIndex];path=paths.paths[areaIndex];if(animate){rendererAttributes=me.renderer(areaElem,false,{path:path,fill:colorArrayStyle[areaIndex%colorArrayLength],stroke:endLineStyle.stroke||colorArrayStyle[areaIndex%colorArrayLength]},areaIndex,store);me.animation=me.onAnimate(areaElem,{to:rendererAttributes})}else{rendererAttributes=me.renderer(areaElem,false,{path:path,hidden:false,fill:colorArrayStyle[areaIndex%colorArrayLength],stroke:endLineStyle.stroke||colorArrayStyle[areaIndex%colorArrayLength]},areaIndex,store);me.areas[areaIndex].setAttributes(rendererAttributes,true)}}me.renderLabels();me.renderCallouts()},onAnimate:function(sprite,attr){sprite.show();return this.callParent(arguments)},onCreateLabel:function(storeItem,item,i,display){var me=this,group=me.labelsGroup,config=me.label,bbox=me.bbox,endLabelStyle=Ext.apply(config,me.seriesLabelStyle);return me.chart.surface.add(Ext.apply({type:"text","text-anchor":"middle",group:group,x:item.point[0],y:bbox.y+bbox.height/2},endLabelStyle||{}))},onPlaceLabel:function(label,storeItem,item,i,display,animate,index){var me=this,chart=me.chart,resizing=chart.resizing,config=me.label,format=config.renderer,field=config.field,bbox=me.bbox,x=item.point[0],y=item.point[1],bb,width,height;label.setAttributes({text:format(storeItem.get(field[index])),hidden:true},true);bb=label.getBBox();width=bb.width/2;height=bb.height/2;x=x-width<bbox.x?bbox.x+width:x;x=(x+width>bbox.x+bbox.width)?(x-(x+width-bbox.x-bbox.width)):x;y=y-height<bbox.y?bbox.y+height:y;y=(y+height>bbox.y+bbox.height)?(y-(y+height-bbox.y-bbox.height)):y;if(me.chart.animate&&!me.chart.resizing){label.show(true);me.onAnimate(label,{to:{x:x,y:y}})}else{label.setAttributes({x:x,y:y},true);if(resizing){me.animation.on("afteranimate",function(){label.show(true)})}else{label.show(true)}}},onPlaceCallout:function(callout,storeItem,item,i,display,animate,index){var me=this,chart=me.chart,surface=chart.surface,resizing=chart.resizing,config=me.callouts,items=me.items,prev=(i==0)?false:items[i-1].point,next=(i==items.length-1)?false:items[i+1].point,cur=item.point,dir,norm,normal,a,aprev,anext,bbox=callout.label.getBBox(),offsetFromViz=30,offsetToSide=10,offsetBox=3,boxx,boxy,boxw,boxh,p,clipRect=me.clipRect,x,y;if(!prev){prev=cur}if(!next){next=cur}a=(next[1]-prev[1])/(next[0]-prev[0]);aprev=(cur[1]-prev[1])/(cur[0]-prev[0]);anext=(next[1]-cur[1])/(next[0]-cur[0]);norm=Math.sqrt(1+a*a);dir=[1/norm,a/norm];normal=[-dir[1],dir[0]];if(aprev>0&&anext<0&&normal[1]<0||aprev<0&&anext>0&&normal[1]>0){normal[0]*=-1;normal[1]*=-1}else{if(Math.abs(aprev)<Math.abs(anext)&&normal[0]<0||Math.abs(aprev)>Math.abs(anext)&&normal[0]>0){normal[0]*=-1;normal[1]*=-1}}x=cur[0]+normal[0]*offsetFromViz;y=cur[1]+normal[1]*offsetFromViz;boxx=x+(normal[0]>0?0:-(bbox.width+2*offsetBox));boxy=y-bbox.height/2-offsetBox;boxw=bbox.width+2*offsetBox;boxh=bbox.height+2*offsetBox;if(boxx<clipRect[0]||(boxx+boxw)>(clipRect[0]+clipRect[2])){normal[0]*=-1}if(boxy<clipRect[1]||(boxy+boxh)>(clipRect[1]+clipRect[3])){normal[1]*=-1}x=cur[0]+normal[0]*offsetFromViz;y=cur[1]+normal[1]*offsetFromViz;boxx=x+(normal[0]>0?0:-(bbox.width+2*offsetBox));boxy=y-bbox.height/2-offsetBox;boxw=bbox.width+2*offsetBox;boxh=bbox.height+2*offsetBox;callout.lines.setAttributes({path:["M",cur[0],cur[1],"L",x,y,"Z"]},true);callout.box.setAttributes({x:boxx,y:boxy,width:boxw,height:boxh},true);callout.label.setAttributes({x:x+(normal[0]>0?offsetBox:-(bbox.width+offsetBox)),y:y},true);for(p in callout){callout[p].show(true)}},isItemInPoint:function(x,y,item,i){var me=this,pointsUp=item.pointsUp,pointsDown=item.pointsDown,abs=Math.abs,dist=Infinity,p,pln,point;for(p=0,pln=pointsUp.length;p<pln;p++){point=[pointsUp[p][0],pointsUp[p][1]];if(dist>abs(x-point[0])){dist=abs(x-point[0])}else{point=pointsUp[p-1];if(y>=point[1]&&(!pointsDown.length||y<=(pointsDown[p-1][1]))){item.storeIndex=p-1;item.storeField=me.yField[i];item.storeItem=me.chart.store.getAt(p-1);item._points=pointsDown.length?[point,pointsDown[p-1]]:[point];return true}else{break}}}return false},highlightSeries:function(){var area,to,fillColor;if(this._index!==undefined){area=this.areas[this._index];if(area.__highlightAnim){area.__highlightAnim.paused=true}area.__highlighted=true;area.__prevOpacity=area.__prevOpacity||area.attr.opacity||1;area.__prevFill=area.__prevFill||area.attr.fill;area.__prevLineWidth=area.__prevLineWidth||area.attr.lineWidth;fillColor=Ext.draw.Color.fromString(area.__prevFill);to={lineWidth:(area.__prevLineWidth||0)+2};if(fillColor){to.fill=fillColor.getLighter(0.2).toString()}else{to.opacity=Math.max(area.__prevOpacity-0.3,0)}if(this.chart.animate){area.__highlightAnim=Ext.create("Ext.fx.Anim",Ext.apply({target:area,to:to},this.chart.animate))}else{area.setAttributes(to,true)}}},unHighlightSeries:function(){var area;if(this._index!==undefined){area=this.areas[this._index];if(area.__highlightAnim){area.__highlightAnim.paused=true}if(area.__highlighted){area.__highlighted=false;area.__highlightAnim=Ext.create("Ext.fx.Anim",{target:area,to:{fill:area.__prevFill,opacity:area.__prevOpacity,lineWidth:area.__prevLineWidth}})}}},highlightItem:function(item){var me=this,points,path;if(!item){this.highlightSeries();return}points=item._points;path=points.length==2?["M",points[0][0],points[0][1],"L",points[1][0],points[1][1]]:["M",points[0][0],points[0][1],"L",points[0][0],me.bbox.y+me.bbox.height];me.highlightSprite.setAttributes({path:path,hidden:false},true)},unHighlightItem:function(item){if(!item){this.unHighlightSeries()}if(this.highlightSprite){this.highlightSprite.hide(true)}},hideAll:function(){if(!isNaN(this._index)){this.__excludes[this._index]=true;this.areas[this._index].hide(true);this.drawSeries()}},showAll:function(){if(!isNaN(this._index)){this.__excludes[this._index]=false;this.areas[this._index].show(true);this.drawSeries()}},getLegendColor:function(index){var me=this;return me.colorArrayStyle[index%me.colorArrayStyle.length]}});Ext.define("Ext.chart.series.Bar",{extend:"Ext.chart.series.Cartesian",alternateClassName:["Ext.chart.BarSeries","Ext.chart.BarChart","Ext.chart.StackedBarChart"],requires:["Ext.chart.axis.Axis","Ext.fx.Anim"],type:"bar",alias:"series.bar",column:false,style:{},gutter:38.2,groupGutter:38.2,xPadding:0,yPadding:10,constructor:function(config){this.callParent(arguments);var me=this,surface=me.chart.surface,shadow=me.chart.shadow,i,l;Ext.apply(me,config,{highlightCfg:{lineWidth:3,stroke:"#55c",opacity:0.8,color:"#f00"},shadowAttributes:[{"stroke-width":6,"stroke-opacity":0.05,stroke:"rgb(200, 200, 200)",translate:{x:1.2,y:1.2}},{"stroke-width":4,"stroke-opacity":0.1,stroke:"rgb(150, 150, 150)",translate:{x:0.9,y:0.9}},{"stroke-width":2,"stroke-opacity":0.15,stroke:"rgb(100, 100, 100)",translate:{x:0.6,y:0.6}}]});me.group=surface.getGroup(me.seriesId+"-bars");if(shadow){for(i=0,l=me.shadowAttributes.length;i<l;i++){me.shadowGroups.push(surface.getGroup(me.seriesId+"-shadows"+i))}}},getBarGirth:function(){var me=this,store=me.chart.getChartStore(),column=me.column,ln=store.getCount(),gutter=me.gutter/100;return(me.chart.chartBBox[column?"width":"height"]-me[column?"xPadding":"yPadding"]*2)/(ln*(gutter+1)-gutter)},getGutters:function(){var me=this,column=me.column,gutter=Math.ceil(me[column?"xPadding":"yPadding"]+me.getBarGirth()/2);return me.column?[gutter,0]:[0,gutter]},getBounds:function(){var me=this,chart=me.chart,store=chart.getChartStore(),bars=[].concat(me.yField),barsLen=bars.length,groupBarsLen=barsLen,groupGutter=me.groupGutter/100,column=me.column,xPadding=me.xPadding,yPadding=me.yPadding,stacked=me.stacked,barWidth=me.getBarGirth(),math=Math,mmax=math.max,mabs=math.abs,groupBarWidth,bbox,minY,maxY,axis,out,scale,zero,total,rec,j,plus,minus;me.setBBox(true);bbox=me.bbox;if(me.__excludes){for(j=0,total=me.__excludes.length;j<total;j++){if(me.__excludes[j]){groupBarsLen--}}}if(me.axis){axis=chart.axes.get(me.axis);if(axis){out=axis.calcEnds();minY=out.from;maxY=out.to}}if(me.yField&&!Ext.isNumber(minY)){axis=Ext.create("Ext.chart.axis.Axis",{chart:chart,fields:[].concat(me.yField)});out=axis.calcEnds();minY=out.from;maxY=out.to}if(!Ext.isNumber(minY)){minY=0}if(!Ext.isNumber(maxY)){maxY=0}scale=(column?bbox.height-yPadding*2:bbox.width-xPadding*2)/(maxY-minY);groupBarWidth=barWidth/((stacked?1:groupBarsLen)*(groupGutter+1)-groupGutter);zero=(column)?bbox.y+bbox.height-yPadding:bbox.x+xPadding;if(stacked){total=[[],[]];store.each(function(record,i){total[0][i]=total[0][i]||0;total[1][i]=total[1][i]||0;for(j=0;j<barsLen;j++){if(me.__excludes&&me.__excludes[j]){continue}rec=record.get(bars[j]);total[+(rec>0)][i]+=mabs(rec)}});total[+(maxY>0)].push(mabs(maxY));total[+(minY>0)].push(mabs(minY));minus=mmax.apply(math,total[0]);plus=mmax.apply(math,total[1]);scale=(column?bbox.height-yPadding*2:bbox.width-xPadding*2)/(plus+minus);zero=zero+minus*scale*(column?-1:1)}else{if(minY/maxY<0){zero=zero-minY*scale*(column?-1:1)}}return{bars:bars,bbox:bbox,barsLen:barsLen,groupBarsLen:groupBarsLen,barWidth:barWidth,groupBarWidth:groupBarWidth,scale:scale,zero:zero,xPadding:xPadding,yPadding:yPadding,signed:minY/maxY<0,minY:minY,maxY:maxY}},getPaths:function(){var me=this,chart=me.chart,store=chart.getChartStore(),bounds=me.bounds=me.getBounds(),items=me.items=[],gutter=me.gutter/100,groupGutter=me.groupGutter/100,animate=chart.animate,column=me.column,group=me.group,enableShadows=chart.shadow,shadowGroups=me.shadowGroups,shadowAttributes=me.shadowAttributes,shadowGroupsLn=shadowGroups.length,bbox=bounds.bbox,xPadding=me.xPadding,yPadding=me.yPadding,stacked=me.stacked,barsLen=bounds.barsLen,colors=me.colorArrayStyle,colorLength=colors&&colors.length||0,math=Math,mmax=math.max,mmin=math.min,mabs=math.abs,j,yValue,height,totalDim,totalNegDim,bottom,top,hasShadow,barAttr,attrs,counter,shadowIndex,shadow,sprite,offset,floorY;store.each(function(record,i,total){bottom=bounds.zero;top=bounds.zero;totalDim=0;totalNegDim=0;hasShadow=false;for(j=0,counter=0;j<barsLen;j++){if(me.__excludes&&me.__excludes[j]){continue}yValue=record.get(bounds.bars[j]);height=Math.round((yValue-mmax(bounds.minY,0))*bounds.scale);barAttr={fill:colors[(barsLen>1?j:0)%colorLength]};if(column){Ext.apply(barAttr,{height:height,width:mmax(bounds.groupBarWidth,0),x:(bbox.x+xPadding+i*bounds.barWidth*(1+gutter)+counter*bounds.groupBarWidth*(1+groupGutter)*!stacked),y:bottom-height})}else{offset=(total-1)-i;Ext.apply(barAttr,{height:mmax(bounds.groupBarWidth,0),width:height+(bottom==bounds.zero),x:bottom+(bottom!=bounds.zero),y:(bbox.y+yPadding+offset*bounds.barWidth*(1+gutter)+counter*bounds.groupBarWidth*(1+groupGutter)*!stacked+1)})}if(height<0){if(column){barAttr.y=top;barAttr.height=mabs(height)}else{barAttr.x=top+height;barAttr.width=mabs(height)}}if(stacked){if(height<0){top+=height*(column?-1:1)}else{bottom+=height*(column?-1:1)}totalDim+=mabs(height);if(height<0){totalNegDim+=mabs(height)}}barAttr.x=Math.floor(barAttr.x)+1;floorY=Math.floor(barAttr.y);if(!Ext.isIE9&&barAttr.y>floorY){floorY--}barAttr.y=floorY;barAttr.width=Math.floor(barAttr.width);barAttr.height=Math.floor(barAttr.height);items.push({series:me,storeItem:record,value:[record.get(me.xField),yValue],attr:barAttr,point:column?[barAttr.x+barAttr.width/2,yValue>=0?barAttr.y:barAttr.y+barAttr.height]:[yValue>=0?barAttr.x+barAttr.width:barAttr.x,barAttr.y+barAttr.height/2]});if(animate&&chart.resizing){attrs=column?{x:barAttr.x,y:bounds.zero,width:barAttr.width,height:0}:{x:bounds.zero,y:barAttr.y,width:0,height:barAttr.height};if(enableShadows&&(stacked&&!hasShadow||!stacked)){hasShadow=true;for(shadowIndex=0;shadowIndex<shadowGroupsLn;shadowIndex++){shadow=shadowGroups[shadowIndex].getAt(stacked?i:(i*barsLen+j));if(shadow){shadow.setAttributes(attrs,true)}}}sprite=group.getAt(i*barsLen+j);if(sprite){sprite.setAttributes(attrs,true)}}counter++}if(stacked&&items.length){items[i*counter].totalDim=totalDim;items[i*counter].totalNegDim=totalNegDim}},me)},renderShadows:function(i,barAttr,baseAttrs,bounds){var me=this,chart=me.chart,surface=chart.surface,animate=chart.animate,stacked=me.stacked,shadowGroups=me.shadowGroups,shadowAttributes=me.shadowAttributes,shadowGroupsLn=shadowGroups.length,store=chart.getChartStore(),column=me.column,items=me.items,shadows=[],zero=bounds.zero,shadowIndex,shadowBarAttr,shadow,totalDim,totalNegDim,j,rendererAttributes;if((stacked&&(i%bounds.groupBarsLen===0))||!stacked){j=i/bounds.groupBarsLen;for(shadowIndex=0;shadowIndex<shadowGroupsLn;shadowIndex++){shadowBarAttr=Ext.apply({},shadowAttributes[shadowIndex]);shadow=shadowGroups[shadowIndex].getAt(stacked?j:i);Ext.copyTo(shadowBarAttr,barAttr,"x,y,width,height");if(!shadow){shadow=surface.add(Ext.apply({type:"rect",group:shadowGroups[shadowIndex]},Ext.apply({},baseAttrs,shadowBarAttr)))}if(stacked){totalDim=items[i].totalDim;totalNegDim=items[i].totalNegDim;if(column){shadowBarAttr.y=zero-totalNegDim;shadowBarAttr.height=totalDim}else{shadowBarAttr.x=zero-totalNegDim;shadowBarAttr.width=totalDim}}if(animate){if(!stacked){rendererAttributes=me.renderer(shadow,store.getAt(j),shadowBarAttr,i,store);me.onAnimate(shadow,{to:rendererAttributes})}else{rendererAttributes=me.renderer(shadow,store.getAt(j),Ext.apply(shadowBarAttr,{hidden:true}),i,store);shadow.setAttributes(rendererAttributes,true)}}else{rendererAttributes=me.renderer(shadow,store.getAt(j),Ext.apply(shadowBarAttr,{hidden:false}),i,store);shadow.setAttributes(rendererAttributes,true)}shadows.push(shadow)}}return shadows},drawSeries:function(){var me=this,chart=me.chart,store=chart.getChartStore(),surface=chart.surface,animate=chart.animate,stacked=me.stacked,column=me.column,enableShadows=chart.shadow,shadowGroups=me.shadowGroups,shadowGroupsLn=shadowGroups.length,group=me.group,seriesStyle=me.seriesStyle,items,ln,i,j,baseAttrs,sprite,rendererAttributes,shadowIndex,shadowGroup,bounds,endSeriesStyle,barAttr,attrs,anim;if(!store||!store.getCount()){return}delete seriesStyle.fill;endSeriesStyle=Ext.apply(seriesStyle,this.style);me.unHighlightItem();me.cleanHighlights();me.getPaths();bounds=me.bounds;items=me.items;baseAttrs=column?{y:bounds.zero,height:0}:{x:bounds.zero,width:0};ln=items.length;for(i=0;i<ln;i++){sprite=group.getAt(i);barAttr=items[i].attr;if(enableShadows){items[i].shadows=me.renderShadows(i,barAttr,baseAttrs,bounds)}if(!sprite){attrs=Ext.apply({},baseAttrs,barAttr);attrs=Ext.apply(attrs,endSeriesStyle||{});sprite=surface.add(Ext.apply({},{type:"rect",group:group},attrs))}if(animate){rendererAttributes=me.renderer(sprite,store.getAt(i),barAttr,i,store);sprite._to=rendererAttributes;anim=me.onAnimate(sprite,{to:Ext.apply(rendererAttributes,endSeriesStyle)});if(enableShadows&&stacked&&(i%bounds.barsLen===0)){j=i/bounds.barsLen;for(shadowIndex=0;shadowIndex<shadowGroupsLn;shadowIndex++){anim.on("afteranimate",function(){this.show(true)},shadowGroups[shadowIndex].getAt(j))}}}else{rendererAttributes=me.renderer(sprite,store.getAt(i),Ext.apply(barAttr,{hidden:false}),i,store);sprite.setAttributes(Ext.apply(rendererAttributes,endSeriesStyle),true)}items[i].sprite=sprite}ln=group.getCount();for(j=i;j<ln;j++){group.getAt(j).hide(true)}if(enableShadows){for(shadowIndex=0;shadowIndex<shadowGroupsLn;shadowIndex++){shadowGroup=shadowGroups[shadowIndex];ln=shadowGroup.getCount();for(j=i;j<ln;j++){shadowGroup.getAt(j).hide(true)}}}me.renderLabels()},onCreateLabel:function(storeItem,item,i,display){var me=this,surface=me.chart.surface,group=me.labelsGroup,config=me.label,endLabelStyle=Ext.apply({},config,me.seriesLabelStyle||{}),sprite;return surface.add(Ext.apply({type:"text",group:group},endLabelStyle||{}))},onPlaceLabel:function(label,storeItem,item,i,display,animate,j,index){var me=this,opt=me.bounds,groupBarWidth=opt.groupBarWidth,column=me.column,chart=me.chart,chartBBox=chart.chartBBox,resizing=chart.resizing,xValue=item.value[0],yValue=item.value[1],attr=item.attr,config=me.label,rotate=config.orientation=="vertical",field=[].concat(config.field),format=config.renderer,text=format(storeItem.get(field[index])),size=me.getLabelSize(text),width=size.width,height=size.height,zero=opt.zero,outside="outside",insideStart="insideStart",insideEnd="insideEnd",offsetX=10,offsetY=6,signed=opt.signed,x,y,finalAttr;label.setAttributes({text:text});label.isOutside=false;if(column){if(display==outside){if(height+offsetY+attr.height>(yValue>=0?zero-chartBBox.y:chartBBox.y+chartBBox.height-zero)){display=insideEnd}}else{if(height+offsetY>attr.height){display=outside;label.isOutside=true}}x=attr.x+groupBarWidth/2;y=display==insideStart?(zero+((height/2+3)*(yValue>=0?-1:1))):(yValue>=0?(attr.y+((height/2+3)*(display==outside?-1:1))):(attr.y+attr.height+((height/2+3)*(display===outside?1:-1))))}else{if(display==outside){if(width+offsetX+attr.width>(yValue>=0?chartBBox.x+chartBBox.width-zero:zero-chartBBox.x)){display=insideEnd}}else{if(width+offsetX>attr.width){display=outside;label.isOutside=true}}x=display==insideStart?(zero+((width/2+5)*(yValue>=0?1:-1))):(yValue>=0?(attr.x+attr.width+((width/2+5)*(display===outside?1:-1))):(attr.x+((width/2+5)*(display===outside?-1:1))));y=attr.y+groupBarWidth/2}finalAttr={x:x,y:y};if(rotate){finalAttr.rotate={x:x,y:y,degrees:270}}if(animate&&resizing){if(column){x=attr.x+attr.width/2;y=zero}else{x=zero;y=attr.y+attr.height/2}label.setAttributes({x:x,y:y},true);if(rotate){label.setAttributes({rotate:{x:x,y:y,degrees:270}},true)}}if(animate){me.onAnimate(label,{to:finalAttr})}else{label.setAttributes(Ext.apply(finalAttr,{hidden:false}),true)}},getLabelSize:function(value){var tester=this.testerLabel,config=this.label,endLabelStyle=Ext.apply({},config,this.seriesLabelStyle||{}),rotated=config.orientation==="vertical",bbox,w,h,undef;if(!tester){tester=this.testerLabel=this.chart.surface.add(Ext.apply({type:"text",opacity:0},endLabelStyle))}tester.setAttributes({text:value},true);bbox=tester.getBBox();w=bbox.width;h=bbox.height;return{width:rotated?h:w,height:rotated?w:h}},onAnimate:function(sprite,attr){sprite.show();return this.callParent(arguments)},isItemInPoint:function(x,y,item){var bbox=item.sprite.getBBox();return bbox.x<=x&&bbox.y<=y&&(bbox.x+bbox.width)>=x&&(bbox.y+bbox.height)>=y},hideAll:function(){var axes=this.chart.axes;if(!isNaN(this._index)){if(!this.__excludes){this.__excludes=[]}this.__excludes[this._index]=true;this.drawSeries();axes.each(function(axis){axis.drawAxis()})}},showAll:function(){var axes=this.chart.axes;if(!isNaN(this._index)){if(!this.__excludes){this.__excludes=[]}this.__excludes[this._index]=false;this.drawSeries();axes.each(function(axis){axis.drawAxis()})}},getLegendColor:function(index){var me=this,colorLength=me.colorArrayStyle.length;if(me.style&&me.style.fill){return me.style.fill}else{return me.colorArrayStyle[index%colorLength]}},highlightItem:function(item){this.callParent(arguments);this.renderLabels()},unHighlightItem:function(){this.callParent(arguments);this.renderLabels()},cleanHighlights:function(){this.callParent(arguments);this.renderLabels()}});Ext.define("Ext.chart.series.Column",{alternateClassName:["Ext.chart.ColumnSeries","Ext.chart.ColumnChart","Ext.chart.StackedColumnChart"],extend:"Ext.chart.series.Bar",type:"column",alias:"series.column",column:true,xPadding:10,yPadding:0});Ext.define("Ext.chart.series.Gauge",{extend:"Ext.chart.series.Series",type:"gauge",alias:"series.gauge",rad:Math.PI/180,highlightDuration:150,angleField:false,needle:false,donut:false,showInLegend:false,style:{},constructor:function(config){this.callParent(arguments);var me=this,chart=me.chart,surface=chart.surface,store=chart.store,shadow=chart.shadow,i,l,cfg;Ext.apply(me,config,{shadowAttributes:[{"stroke-width":6,"stroke-opacity":1,stroke:"rgb(200, 200, 200)",translate:{x:1.2,y:2}},{"stroke-width":4,"stroke-opacity":1,stroke:"rgb(150, 150, 150)",translate:{x:0.9,y:1.5}},{"stroke-width":2,"stroke-opacity":1,stroke:"rgb(100, 100, 100)",translate:{x:0.6,y:1}}]});me.group=surface.getGroup(me.seriesId);if(shadow){for(i=0,l=me.shadowAttributes.length;i<l;i++){me.shadowGroups.push(surface.getGroup(me.seriesId+"-shadows"+i))}}surface.customAttributes.segment=function(opt){return me.getSegment(opt)}},initialize:function(){var me=this,store=me.chart.getChartStore();me.yField=[];if(me.label.field){store.each(function(rec){me.yField.push(rec.get(me.label.field))})}},getSegment:function(opt){var me=this,rad=me.rad,cos=Math.cos,sin=Math.sin,abs=Math.abs,x=me.centerX,y=me.centerY,x1=0,x2=0,x3=0,x4=0,y1=0,y2=0,y3=0,y4=0,delta=0.01,r=opt.endRho-opt.startRho,startAngle=opt.startAngle,endAngle=opt.endAngle,midAngle=(startAngle+endAngle)/2*rad,margin=opt.margin||0,flag=abs(endAngle-startAngle)>180,a1=Math.min(startAngle,endAngle)*rad,a2=Math.max(startAngle,endAngle)*rad,singleSlice=false;x+=margin*cos(midAngle);y+=margin*sin(midAngle);x1=x+opt.startRho*cos(a1);y1=y+opt.startRho*sin(a1);x2=x+opt.endRho*cos(a1);y2=y+opt.endRho*sin(a1);x3=x+opt.startRho*cos(a2);y3=y+opt.startRho*sin(a2);x4=x+opt.endRho*cos(a2);y4=y+opt.endRho*sin(a2);if(abs(x1-x3)<=delta&&abs(y1-y3)<=delta){singleSlice=true}if(singleSlice){return{path:[["M",x1,y1],["L",x2,y2],["A",opt.endRho,opt.endRho,0,+flag,1,x4,y4],["Z"]]}}else{return{path:[["M",x1,y1],["L",x2,y2],["A",opt.endRho,opt.endRho,0,+flag,1,x4,y4],["L",x3,y3],["A",opt.startRho,opt.startRho,0,+flag,0,x1,y1],["Z"]]}}},calcMiddle:function(item){var me=this,rad=me.rad,slice=item.slice,x=me.centerX,y=me.centerY,startAngle=slice.startAngle,endAngle=slice.endAngle,radius=Math.max(("rho" in slice)?slice.rho:me.radius,me.label.minMargin),donut=+me.donut,a1=Math.min(startAngle,endAngle)*rad,a2=Math.max(startAngle,endAngle)*rad,midAngle=-(a1+(a2-a1)/2),xm=x+(item.endRho+item.startRho)/2*Math.cos(midAngle),ym=y-(item.endRho+item.startRho)/2*Math.sin(midAngle);item.middle={x:xm,y:ym}},drawSeries:function(){var me=this,chart=me.chart,store=chart.getChartStore(),group=me.group,animate=me.chart.animate,axis=me.chart.axes.get(0),minimum=axis&&axis.minimum||me.minimum||0,maximum=axis&&axis.maximum||me.maximum||0,field=me.angleField||me.field||me.xField,surface=chart.surface,chartBBox=chart.chartBBox,rad=me.rad,donut=+me.donut,values={},items=[],seriesStyle=me.seriesStyle,seriesLabelStyle=me.seriesLabelStyle,colorArrayStyle=me.colorArrayStyle,colorArrayLength=colorArrayStyle&&colorArrayStyle.length||0,gutterX=chart.maxGutter[0],gutterY=chart.maxGutter[1],cos=Math.cos,sin=Math.sin,rendererAttributes,centerX,centerY,slice,slices,sprite,value,item,ln,record,i,j,startAngle,endAngle,middleAngle,sliceLength,path,p,spriteOptions,bbox,splitAngle,sliceA,sliceB;Ext.apply(seriesStyle,me.style||{});me.setBBox();bbox=me.bbox;if(me.colorSet){colorArrayStyle=me.colorSet;colorArrayLength=colorArrayStyle.length}if(!store||!store.getCount()){return}centerX=me.centerX=chartBBox.x+(chartBBox.width/2);centerY=me.centerY=chartBBox.y+chartBBox.height;me.radius=Math.min(centerX-chartBBox.x,centerY-chartBBox.y);me.slices=slices=[];me.items=items=[];if(!me.value){record=store.getAt(0);me.value=record.get(field)}value=me.value;if(me.needle){sliceA={series:me,value:value,startAngle:-180,endAngle:0,rho:me.radius};splitAngle=-180*(1-(value-minimum)/(maximum-minimum));slices.push(sliceA)}else{splitAngle=-180*(1-(value-minimum)/(maximum-minimum));sliceA={series:me,value:value,startAngle:-180,endAngle:splitAngle,rho:me.radius};sliceB={series:me,value:me.maximum-value,startAngle:splitAngle,endAngle:0,rho:me.radius};slices.push(sliceA,sliceB)}for(i=0,ln=slices.length;i<ln;i++){slice=slices[i];sprite=group.getAt(i);rendererAttributes=Ext.apply({segment:{startAngle:slice.startAngle,endAngle:slice.endAngle,margin:0,rho:slice.rho,startRho:slice.rho*+donut/100,endRho:slice.rho}},Ext.apply(seriesStyle,colorArrayStyle&&{fill:colorArrayStyle[i%colorArrayLength]}||{}));item=Ext.apply({},rendererAttributes.segment,{slice:slice,series:me,storeItem:record,index:i});items[i]=item;if(!sprite){spriteOptions=Ext.apply({type:"path",group:group},Ext.apply(seriesStyle,colorArrayStyle&&{fill:colorArrayStyle[i%colorArrayLength]}||{}));sprite=surface.add(Ext.apply(spriteOptions,rendererAttributes))}slice.sprite=slice.sprite||[];item.sprite=sprite;slice.sprite.push(sprite);if(animate){rendererAttributes=me.renderer(sprite,record,rendererAttributes,i,store);sprite._to=rendererAttributes;me.onAnimate(sprite,{to:rendererAttributes})}else{rendererAttributes=me.renderer(sprite,record,Ext.apply(rendererAttributes,{hidden:false}),i,store);sprite.setAttributes(rendererAttributes,true)}}if(me.needle){splitAngle=splitAngle*Math.PI/180;if(!me.needleSprite){me.needleSprite=me.chart.surface.add({type:"path",path:["M",centerX+(me.radius*+donut/100)*cos(splitAngle),centerY+-Math.abs((me.radius*+donut/100)*sin(splitAngle)),"L",centerX+me.radius*cos(splitAngle),centerY+-Math.abs(me.radius*sin(splitAngle))],"stroke-width":4,stroke:"#222"})}else{if(animate){me.onAnimate(me.needleSprite,{to:{path:["M",centerX+(me.radius*+donut/100)*cos(splitAngle),centerY+-Math.abs((me.radius*+donut/100)*sin(splitAngle)),"L",centerX+me.radius*cos(splitAngle),centerY+-Math.abs(me.radius*sin(splitAngle))]}})}else{me.needleSprite.setAttributes({type:"path",path:["M",centerX+(me.radius*+donut/100)*cos(splitAngle),centerY+-Math.abs((me.radius*+donut/100)*sin(splitAngle)),"L",centerX+me.radius*cos(splitAngle),centerY+-Math.abs(me.radius*sin(splitAngle))]})}}me.needleSprite.setAttributes({hidden:false},true)}delete me.value},setValue:function(value){this.value=value;this.drawSeries()},onCreateLabel:function(storeItem,item,i,display){},onPlaceLabel:function(label,storeItem,item,i,display,animate,index){},onPlaceCallout:function(){},onAnimate:function(sprite,attr){sprite.show();return this.callParent(arguments)},isItemInPoint:function(x,y,item,i){return false},showAll:function(){if(!isNaN(this._index)){this.__excludes[this._index]=false;this.drawSeries()}},getLegendColor:function(index){var me=this;return me.colorArrayStyle[index%me.colorArrayStyle.length]}});Ext.define("Ext.chart.series.Line",{extend:"Ext.chart.series.Cartesian",alternateClassName:["Ext.chart.LineSeries","Ext.chart.LineChart"],requires:["Ext.chart.axis.Axis","Ext.chart.Shape","Ext.draw.Draw","Ext.fx.Anim"],type:"line",alias:"series.line",selectionTolerance:20,showMarkers:true,markerConfig:{},style:{},smooth:false,defaultSmoothness:3,fill:false,constructor:function(config){this.callParent(arguments);var me=this,surface=me.chart.surface,shadow=me.chart.shadow,i,l;Ext.apply(me,config,{highlightCfg:{"stroke-width":3},shadowAttributes:[{"stroke-width":6,"stroke-opacity":0.05,stroke:"rgb(0, 0, 0)",translate:{x:1,y:1}},{"stroke-width":4,"stroke-opacity":0.1,stroke:"rgb(0, 0, 0)",translate:{x:1,y:1}},{"stroke-width":2,"stroke-opacity":0.15,stroke:"rgb(0, 0, 0)",translate:{x:1,y:1}}]});me.group=surface.getGroup(me.seriesId);if(me.showMarkers){me.markerGroup=surface.getGroup(me.seriesId+"-markers")}if(shadow){for(i=0,l=me.shadowAttributes.length;i<l;i++){me.shadowGroups.push(surface.getGroup(me.seriesId+"-shadows"+i))}}},shrink:function(xValues,yValues,size){var len=xValues.length,ratio=Math.floor(len/size),i=1,xSum=0,ySum=0,xRes=[xValues[0]],yRes=[yValues[0]];for(;i<len;++i){xSum+=xValues[i]||0;ySum+=yValues[i]||0;if(i%ratio==0){xRes.push(xSum/ratio);yRes.push(ySum/ratio);xSum=0;ySum=0}}return{x:xRes,y:yRes}},drawSeries:function(){var me=this,chart=me.chart,chartAxes=chart.axes,store=chart.getChartStore(),storeCount=store.getCount(),surface=me.chart.surface,bbox={},group=me.group,showMarkers=me.showMarkers,markerGroup=me.markerGroup,enableShadows=chart.shadow,shadowGroups=me.shadowGroups,shadowAttributes=me.shadowAttributes,smooth=me.smooth,lnsh=shadowGroups.length,dummyPath=["M"],path=["M"],renderPath=["M"],smoothPath=["M"],markerIndex=chart.markerIndex,axes=[].concat(me.axis),shadowBarAttr,xValues=[],xValueMap={},yValues=[],yValueMap={},onbreak=false,storeIndices=[],markerStyle=me.markerStyle,seriesStyle=me.style,colorArrayStyle=me.colorArrayStyle,colorArrayLength=colorArrayStyle&&colorArrayStyle.length||0,isNumber=Ext.isNumber,seriesIdx=me.seriesIdx,boundAxes=me.getAxesForXAndYFields(),boundXAxis=boundAxes.xAxis,boundYAxis=boundAxes.yAxis,shadows,shadow,shindex,fromPath,fill,fillPath,rendererAttributes,x,y,prevX,prevY,firstX,firstY,markerCount,i,j,ln,axis,ends,marker,markerAux,item,xValue,yValue,coords,xScale,yScale,minX,maxX,minY,maxY,line,animation,endMarkerStyle,endLineStyle,type,count,items;if(me.fireEvent("beforedraw",me)===false){return}if(!storeCount||me.seriesIsHidden){items=this.items;if(items){for(i=0,ln=items.length;i<ln;++i){if(items[i].sprite){items[i].sprite.hide(true)}}}return}endMarkerStyle=Ext.apply(markerStyle||{},me.markerConfig);type=endMarkerStyle.type;delete endMarkerStyle.type;endLineStyle=seriesStyle;if(!endLineStyle["stroke-width"]){endLineStyle["stroke-width"]=0.5}if(markerIndex&&markerGroup&&markerGroup.getCount()){for(i=0;i<markerIndex;i++){marker=markerGroup.getAt(i);markerGroup.remove(marker);markerGroup.add(marker);markerAux=markerGroup.getAt(markerGroup.getCount()-2);marker.setAttributes({x:0,y:0,translate:{x:markerAux.attr.translation.x,y:markerAux.attr.translation.y}},true)}}me.unHighlightItem();me.cleanHighlights();me.setBBox();bbox=me.bbox;me.clipRect=[bbox.x,bbox.y,bbox.width,bbox.height];for(i=0,ln=axes.length;i<ln;i++){axis=chartAxes.get(axes[i]);if(axis){ends=axis.calcEnds();if(axis.position=="top"||axis.position=="bottom"){minX=ends.from;maxX=ends.to}else{minY=ends.from;maxY=ends.to}}}if(me.xField&&!isNumber(minX)&&(boundXAxis=="bottom"||boundXAxis=="top")&&!chartAxes.get(boundXAxis)){axis=Ext.create("Ext.chart.axis.Axis",{chart:chart,fields:[].concat(me.xField)}).calcEnds();minX=axis.from;maxX=axis.to}if(me.yField&&!isNumber(minY)&&(boundYAxis=="right"||boundYAxis=="left")&&!chartAxes.get(boundYAxis)){axis=Ext.create("Ext.chart.axis.Axis",{chart:chart,fields:[].concat(me.yField)}).calcEnds();minY=axis.from;maxY=axis.to}if(isNaN(minX)){minX=0;xScale=bbox.width/((storeCount-1)||1)}else{xScale=bbox.width/((maxX-minX)||(storeCount-1)||1)}if(isNaN(minY)){minY=0;yScale=bbox.height/((storeCount-1)||1)}else{yScale=bbox.height/((maxY-minY)||(storeCount-1)||1)}me.eachRecord(function(record,i){xValue=record.get(me.xField);if(typeof xValue=="string"||typeof xValue=="object"&&!Ext.isDate(xValue)||boundXAxis&&chartAxes.get(boundXAxis)&&chartAxes.get(boundXAxis).type=="Category"){if(xValue in xValueMap){xValue=xValueMap[xValue]}else{xValue=xValueMap[xValue]=i}}yValue=record.get(me.yField);if(typeof yValue=="undefined"||(typeof yValue=="string"&&!yValue)){return}if(typeof yValue=="string"||typeof yValue=="object"&&!Ext.isDate(yValue)||boundYAxis&&chartAxes.get(boundYAxis)&&chartAxes.get(boundYAxis).type=="Category"){yValue=i}storeIndices.push(i);xValues.push(xValue);yValues.push(yValue)});ln=xValues.length;if(ln>bbox.width){coords=me.shrink(xValues,yValues,bbox.width);xValues=coords.x;yValues=coords.y}me.items=[];count=0;ln=xValues.length;for(i=0;i<ln;i++){xValue=xValues[i];yValue=yValues[i];if(yValue===false){if(path.length==1){path=[]}onbreak=true;me.items.push(false);continue}else{x=(bbox.x+(xValue-minX)*xScale).toFixed(2);y=((bbox.y+bbox.height)-(yValue-minY)*yScale).toFixed(2);if(onbreak){onbreak=false;path.push("M")}path=path.concat([x,y])}if((typeof firstY=="undefined")&&(typeof y!="undefined")){firstY=y;firstX=x}if(!me.line||chart.resizing){dummyPath=dummyPath.concat([x,bbox.y+bbox.height/2])}if(chart.animate&&chart.resizing&&me.line){me.line.setAttributes({path:dummyPath},true);if(me.fillPath){me.fillPath.setAttributes({path:dummyPath,opacity:0.2},true)}if(me.line.shadows){shadows=me.line.shadows;for(j=0,lnsh=shadows.length;j<lnsh;j++){shadow=shadows[j];shadow.setAttributes({path:dummyPath},true)}}}if(showMarkers){marker=markerGroup.getAt(count++);if(!marker){marker=Ext.chart.Shape[type](surface,Ext.apply({group:[group,markerGroup],x:0,y:0,translate:{x:+(prevX||x),y:prevY||(bbox.y+bbox.height/2)},value:'"'+xValue+", "+yValue+'"',zIndex:4000},endMarkerStyle));marker._to={translate:{x:+x,y:+y}}}else{marker.setAttributes({value:'"'+xValue+", "+yValue+'"',x:0,y:0,hidden:false},true);marker._to={translate:{x:+x,y:+y}}}}me.items.push({series:me,value:[xValue,yValue],point:[x,y],sprite:marker,storeItem:store.getAt(storeIndices[i])});prevX=x;prevY=y}if(path.length<=1){return}if(me.smooth){smoothPath=Ext.draw.Draw.smooth(path,isNumber(smooth)?smooth:me.defaultSmoothness)}renderPath=smooth?smoothPath:path;if(chart.markerIndex&&me.previousPath){fromPath=me.previousPath;if(!smooth){Ext.Array.erase(fromPath,1,2)}}else{fromPath=path}if(!me.line){me.line=surface.add(Ext.apply({type:"path",group:group,path:dummyPath,stroke:endLineStyle.stroke||endLineStyle.fill},endLineStyle||{}));if(enableShadows){me.line.setAttributes(Ext.apply({},me.shadowOptions),true)}me.line.setAttributes({fill:"none",zIndex:3000});if(!endLineStyle.stroke&&colorArrayLength){me.line.setAttributes({stroke:colorArrayStyle[seriesIdx%colorArrayLength]},true)}if(enableShadows){shadows=me.line.shadows=[];for(shindex=0;shindex<lnsh;shindex++){shadowBarAttr=shadowAttributes[shindex];shadowBarAttr=Ext.apply({},shadowBarAttr,{path:dummyPath});shadow=surface.add(Ext.apply({},{type:"path",group:shadowGroups[shindex]},shadowBarAttr));shadows.push(shadow)}}}if(me.fill){fillPath=renderPath.concat([["L",x,bbox.y+bbox.height],["L",firstX,bbox.y+bbox.height],["L",firstX,firstY]]);if(!me.fillPath){me.fillPath=surface.add({group:group,type:"path",opacity:endLineStyle.opacity||0.3,fill:endLineStyle.fill||colorArrayStyle[seriesIdx%colorArrayLength],path:dummyPath})}}markerCount=showMarkers&&markerGroup.getCount();if(chart.animate){fill=me.fill;line=me.line;rendererAttributes=me.renderer(line,false,{path:renderPath},i,store);Ext.apply(rendererAttributes,endLineStyle||{},{stroke:endLineStyle.stroke||endLineStyle.fill});delete rendererAttributes.fill;line.show(true);if(chart.markerIndex&&me.previousPath){me.animation=animation=me.onAnimate(line,{to:rendererAttributes,from:{path:fromPath}})}else{me.animation=animation=me.onAnimate(line,{to:rendererAttributes})}if(enableShadows){shadows=line.shadows;for(j=0;j<lnsh;j++){shadows[j].show(true);if(chart.markerIndex&&me.previousPath){me.onAnimate(shadows[j],{to:{path:renderPath},from:{path:fromPath}})}else{me.onAnimate(shadows[j],{to:{path:renderPath}})}}}if(fill){me.fillPath.show(true);me.onAnimate(me.fillPath,{to:Ext.apply({},{path:fillPath,fill:endLineStyle.fill||colorArrayStyle[seriesIdx%colorArrayLength],"stroke-width":0},endLineStyle||{})})}if(showMarkers){count=0;for(i=0;i<ln;i++){if(me.items[i]){item=markerGroup.getAt(count++);if(item){rendererAttributes=me.renderer(item,store.getAt(i),item._to,i,store);me.onAnimate(item,{to:Ext.apply(rendererAttributes,endMarkerStyle||{})});item.show(true)}}}for(;count<markerCount;count++){item=markerGroup.getAt(count);item.hide(true)}}}else{rendererAttributes=me.renderer(me.line,false,{path:renderPath,hidden:false},i,store);Ext.apply(rendererAttributes,endLineStyle||{},{stroke:endLineStyle.stroke||endLineStyle.fill});delete rendererAttributes.fill;me.line.setAttributes(rendererAttributes,true);if(enableShadows){shadows=me.line.shadows;for(j=0;j<lnsh;j++){shadows[j].setAttributes({path:renderPath,hidden:false},true)}}if(me.fill){me.fillPath.setAttributes({path:fillPath,hidden:false},true)}if(showMarkers){count=0;for(i=0;i<ln;i++){if(me.items[i]){item=markerGroup.getAt(count++);if(item){rendererAttributes=me.renderer(item,store.getAt(i),item._to,i,store);item.setAttributes(Ext.apply(endMarkerStyle||{},rendererAttributes||{}),true);item.show(true)}}}for(;count<markerCount;count++){item=markerGroup.getAt(count);item.hide(true)}}}if(chart.markerIndex){if(me.smooth){Ext.Array.erase(path,1,2)}else{Ext.Array.splice(path,1,0,path[1],path[2])}me.previousPath=path}me.renderLabels();me.renderCallouts();me.fireEvent("draw",me)},onCreateLabel:function(storeItem,item,i,display){var me=this,group=me.labelsGroup,config=me.label,bbox=me.bbox,endLabelStyle=Ext.apply(config,me.seriesLabelStyle);return me.chart.surface.add(Ext.apply({type:"text","text-anchor":"middle",group:group,x:item.point[0],y:bbox.y+bbox.height/2},endLabelStyle||{}))},onPlaceLabel:function(label,storeItem,item,i,display,animate){var me=this,chart=me.chart,resizing=chart.resizing,config=me.label,format=config.renderer,field=config.field,bbox=me.bbox,x=item.point[0],y=item.point[1],radius=item.sprite.attr.radius,bb,width,height;label.setAttributes({text:format(storeItem.get(field)),hidden:true},true);if(display=="rotate"){label.setAttributes({"text-anchor":"start",rotation:{x:x,y:y,degrees:-45}},true);bb=label.getBBox();width=bb.width;height=bb.height;x=x<bbox.x?bbox.x:x;x=(x+width>bbox.x+bbox.width)?(x-(x+width-bbox.x-bbox.width)):x;y=(y-height<bbox.y)?bbox.y+height:y}else{if(display=="under"||display=="over"){bb=item.sprite.getBBox();bb.width=bb.width||(radius*2);bb.height=bb.height||(radius*2);y=y+(display=="over"?-bb.height:bb.height);bb=label.getBBox();width=bb.width/2;height=bb.height/2;x=x-width<bbox.x?bbox.x+width:x;x=(x+width>bbox.x+bbox.width)?(x-(x+width-bbox.x-bbox.width)):x;y=y-height<bbox.y?bbox.y+height:y;y=(y+height>bbox.y+bbox.height)?(y-(y+height-bbox.y-bbox.height)):y}}if(me.chart.animate&&!me.chart.resizing){label.show(true);me.onAnimate(label,{to:{x:x,y:y}})}else{label.setAttributes({x:x,y:y},true);if(resizing&&me.animation){me.animation.on("afteranimate",function(){label.show(true)})}else{label.show(true)}}},highlightItem:function(){var me=this;me.callParent(arguments);if(me.line&&!me.highlighted){if(!("__strokeWidth" in me.line)){me.line.__strokeWidth=me.line.attr["stroke-width"]||0}if(me.line.__anim){me.line.__anim.paused=true}me.line.__anim=Ext.create("Ext.fx.Anim",{target:me.line,to:{"stroke-width":me.line.__strokeWidth+3}});me.highlighted=true}},unHighlightItem:function(){var me=this;me.callParent(arguments);if(me.line&&me.highlighted){me.line.__anim=Ext.create("Ext.fx.Anim",{target:me.line,to:{"stroke-width":me.line.__strokeWidth}});me.highlighted=false}},onPlaceCallout:function(callout,storeItem,item,i,display,animate,index){if(!display){return}var me=this,chart=me.chart,surface=chart.surface,resizing=chart.resizing,config=me.callouts,items=me.items,prev=i==0?false:items[i-1].point,next=(i==items.length-1)?false:items[i+1].point,cur=[+item.point[0],+item.point[1]],dir,norm,normal,a,aprev,anext,offsetFromViz=config.offsetFromViz||30,offsetToSide=config.offsetToSide||10,offsetBox=config.offsetBox||3,boxx,boxy,boxw,boxh,p,clipRect=me.clipRect,bbox={width:config.styles.width||10,height:config.styles.height||10},x,y;if(!prev){prev=cur}if(!next){next=cur}a=(next[1]-prev[1])/(next[0]-prev[0]);aprev=(cur[1]-prev[1])/(cur[0]-prev[0]);anext=(next[1]-cur[1])/(next[0]-cur[0]);norm=Math.sqrt(1+a*a);dir=[1/norm,a/norm];normal=[-dir[1],dir[0]];if(aprev>0&&anext<0&&normal[1]<0||aprev<0&&anext>0&&normal[1]>0){normal[0]*=-1;normal[1]*=-1}else{if(Math.abs(aprev)<Math.abs(anext)&&normal[0]<0||Math.abs(aprev)>Math.abs(anext)&&normal[0]>0){normal[0]*=-1;normal[1]*=-1}}x=cur[0]+normal[0]*offsetFromViz;y=cur[1]+normal[1]*offsetFromViz;boxx=x+(normal[0]>0?0:-(bbox.width+2*offsetBox));boxy=y-bbox.height/2-offsetBox;boxw=bbox.width+2*offsetBox;boxh=bbox.height+2*offsetBox;if(boxx<clipRect[0]||(boxx+boxw)>(clipRect[0]+clipRect[2])){normal[0]*=-1}if(boxy<clipRect[1]||(boxy+boxh)>(clipRect[1]+clipRect[3])){normal[1]*=-1}x=cur[0]+normal[0]*offsetFromViz;y=cur[1]+normal[1]*offsetFromViz;boxx=x+(normal[0]>0?0:-(bbox.width+2*offsetBox));boxy=y-bbox.height/2-offsetBox;boxw=bbox.width+2*offsetBox;boxh=bbox.height+2*offsetBox;if(chart.animate){me.onAnimate(callout.lines,{to:{path:["M",cur[0],cur[1],"L",x,y,"Z"]}});if(callout.panel){callout.panel.setPosition(boxx,boxy,true)}}else{callout.lines.setAttributes({path:["M",cur[0],cur[1],"L",x,y,"Z"]},true);if(callout.panel){callout.panel.setPosition(boxx,boxy)}}for(p in callout){callout[p].show(true)}},isItemInPoint:function(x,y,item,i){var me=this,items=me.items,tolerance=me.selectionTolerance,result=null,prevItem,nextItem,prevPoint,nextPoint,ln,x1,y1,x2,y2,xIntersect,yIntersect,dist1,dist2,dist,midx,midy,sqrt=Math.sqrt,abs=Math.abs;nextItem=items[i];prevItem=i&&items[i-1];if(i>=ln){prevItem=items[ln-1]}prevPoint=prevItem&&prevItem.point;nextPoint=nextItem&&nextItem.point;x1=prevItem?prevPoint[0]:nextPoint[0]-tolerance;y1=prevItem?prevPoint[1]:nextPoint[1];x2=nextItem?nextPoint[0]:prevPoint[0]+tolerance;y2=nextItem?nextPoint[1]:prevPoint[1];dist1=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));dist2=sqrt((x-x2)*(x-x2)+(y-y2)*(y-y2));dist=Math.min(dist1,dist2);if(dist<=tolerance){return dist==dist1?prevItem:nextItem}return false},toggleAll:function(show){var me=this,i,ln,shadow,shadows;if(!show){Ext.chart.series.Cartesian.prototype.hideAll.call(me)}else{Ext.chart.series.Cartesian.prototype.showAll.call(me)}if(me.line){me.line.setAttributes({hidden:!show},true);if(me.line.shadows){for(i=0,shadows=me.line.shadows,ln=shadows.length;i<ln;i++){shadow=shadows[i];shadow.setAttributes({hidden:!show},true)}}}if(me.fillPath){me.fillPath.setAttributes({hidden:!show},true)}},hideAll:function(){this.toggleAll(false)},showAll:function(){this.toggleAll(true)}});Ext.define("Ext.chart.series.Pie",{alternateClassName:["Ext.chart.PieSeries","Ext.chart.PieChart"],extend:"Ext.chart.series.Series",type:"pie",alias:"series.pie",rad:Math.PI/180,highlightDuration:150,angleField:false,lengthField:false,donut:false,showInLegend:false,style:{},constructor:function(config){this.callParent(arguments);var me=this,chart=me.chart,surface=chart.surface,store=chart.store,shadow=chart.shadow,i,l,cfg;Ext.applyIf(me,{highlightCfg:{segment:{margin:20}}});Ext.apply(me,config,{shadowAttributes:[{"stroke-width":6,"stroke-opacity":1,stroke:"rgb(200, 200, 200)",translate:{x:1.2,y:2}},{"stroke-width":4,"stroke-opacity":1,stroke:"rgb(150, 150, 150)",translate:{x:0.9,y:1.5}},{"stroke-width":2,"stroke-opacity":1,stroke:"rgb(100, 100, 100)",translate:{x:0.6,y:1}}]});me.group=surface.getGroup(me.seriesId);if(shadow){for(i=0,l=me.shadowAttributes.length;i<l;i++){me.shadowGroups.push(surface.getGroup(me.seriesId+"-shadows"+i))}}surface.customAttributes.segment=function(opt){return me.getSegment(opt)};me.__excludes=me.__excludes||[]},initialize:function(){var me=this,store=me.chart.getChartStore();me.yField=[];if(me.label.field){store.each(function(rec){me.yField.push(rec.get(me.label.field))})}},getSegment:function(opt){var me=this,rad=me.rad,cos=Math.cos,sin=Math.sin,x=me.centerX,y=me.centerY,x1=0,x2=0,x3=0,x4=0,y1=0,y2=0,y3=0,y4=0,x5=0,y5=0,x6=0,y6=0,delta=0.01,startAngle=opt.startAngle,endAngle=opt.endAngle,midAngle=(startAngle+endAngle)/2*rad,margin=opt.margin||0,a1=Math.min(startAngle,endAngle)*rad,a2=Math.max(startAngle,endAngle)*rad,c1=cos(a1),s1=sin(a1),c2=cos(a2),s2=sin(a2),cm=cos(midAngle),sm=sin(midAngle),flag=0,hsqr2=0.7071067811865476;if(a2-a1<delta){return{path:""}}if(margin!==0){x+=margin*cm;y+=margin*sm}x2=x+opt.endRho*c1;y2=y+opt.endRho*s1;x4=x+opt.endRho*c2;y4=y+opt.endRho*s2;if(Math.abs(x2-x4)+Math.abs(y2-y4)<delta){cm=hsqr2;sm=-hsqr2;flag=1}x6=x+opt.endRho*cm;y6=y+opt.endRho*sm;if(opt.startRho!==0){x1=x+opt.startRho*c1;y1=y+opt.startRho*s1;x3=x+opt.startRho*c2;y3=y+opt.startRho*s2;x5=x+opt.startRho*cm;y5=y+opt.startRho*sm;return{path:[["M",x2,y2],["A",opt.endRho,opt.endRho,0,0,1,x6,y6],["L",x6,y6],["A",opt.endRho,opt.endRho,0,flag,1,x4,y4],["L",x4,y4],["L",x3,y3],["A",opt.startRho,opt.startRho,0,flag,0,x5,y5],["L",x5,y5],["A",opt.startRho,opt.startRho,0,0,0,x1,y1],["L",x1,y1],["Z"]]}}else{return{path:[["M",x,y],["L",x2,y2],["A",opt.endRho,opt.endRho,0,0,1,x6,y6],["L",x6,y6],["A",opt.endRho,opt.endRho,0,flag,1,x4,y4],["L",x4,y4],["L",x,y],["Z"]]}}},calcMiddle:function(item){var me=this,rad=me.rad,slice=item.slice,x=me.centerX,y=me.centerY,startAngle=slice.startAngle,endAngle=slice.endAngle,donut=+me.donut,midAngle=-(startAngle+endAngle)*rad/2,r=(item.endRho+item.startRho)/2,xm=x+r*Math.cos(midAngle),ym=y-r*Math.sin(midAngle);item.middle={x:xm,y:ym}},drawSeries:function(){var me=this,store=me.chart.getChartStore(),group=me.group,animate=me.chart.animate,field=me.angleField||me.field||me.xField,lenField=[].concat(me.lengthField),totalLenField=0,colors=me.colorSet,chart=me.chart,surface=chart.surface,chartBBox=chart.chartBBox,enableShadows=chart.shadow,shadowGroups=me.shadowGroups,shadowAttributes=me.shadowAttributes,lnsh=shadowGroups.length,rad=me.rad,layers=lenField.length,rhoAcum=0,donut=+me.donut,layerTotals=[],values={},fieldLength,items=[],passed=false,totalField=0,maxLenField=0,cut=9,defcut=true,angle=0,seriesStyle=me.seriesStyle,seriesLabelStyle=me.seriesLabelStyle,colorArrayStyle=me.colorArrayStyle,colorArrayLength=colorArrayStyle&&colorArrayStyle.length||0,gutterX=chart.maxGutter[0],gutterY=chart.maxGutter[1],abs=Math.abs,rendererAttributes,shadowGroup,shadowAttr,shadows,shadow,shindex,centerX,centerY,deltaRho,first=0,slice,slices,sprite,value,item,lenValue,ln,record,i,j,startAngle,endAngle,middleAngle,sliceLength,path,p,spriteOptions,bbox;Ext.apply(seriesStyle,me.style||{});me.setBBox();bbox=me.bbox;if(me.colorSet){colorArrayStyle=me.colorSet;colorArrayLength=colorArrayStyle.length}if(!store||!store.getCount()){return}me.unHighlightItem();me.cleanHighlights();centerX=me.centerX=chartBBox.x+(chartBBox.width/2);centerY=me.centerY=chartBBox.y+(chartBBox.height/2);me.radius=Math.min(centerX-chartBBox.x,centerY-chartBBox.y);me.slices=slices=[];me.items=items=[];store.each(function(record,i){if(this.__excludes&&this.__excludes[i]){return}totalField+=+record.get(field);if(lenField[0]){for(j=0,totalLenField=0;j<layers;j++){totalLenField+=+record.get(lenField[j])}layerTotals[i]=totalLenField;maxLenField=Math.max(maxLenField,totalLenField)}},this);totalField=totalField||1;store.each(function(record,i){if(this.__excludes&&this.__excludes[i]){value=0}else{value=record.get(field);if(first==0){first=1}}if(first==1){first=2;me.firstAngle=angle=360*value/totalField/2;for(j=0;j<i;j++){slices[j].startAngle=slices[j].endAngle=me.firstAngle}}endAngle=angle-360*value/totalField;slice={series:me,value:value,startAngle:angle,endAngle:endAngle,storeItem:record};if(lenField[0]){lenValue=layerTotals[i];slice.rho=me.radius*(lenValue/maxLenField)}else{slice.rho=me.radius}slices[i]=slice;angle=endAngle},me);if(enableShadows){for(i=0,ln=slices.length;i<ln;i++){slice=slices[i];slice.shadowAttrs=[];for(j=0,rhoAcum=0,shadows=[];j<layers;j++){sprite=group.getAt(i*layers+j);deltaRho=lenField[j]?store.getAt(i).get(lenField[j])/layerTotals[i]*slice.rho:slice.rho;rendererAttributes={segment:{startAngle:slice.startAngle,endAngle:slice.endAngle,margin:0,rho:slice.rho,startRho:rhoAcum+(deltaRho*donut/100),endRho:rhoAcum+deltaRho},hidden:!slice.value&&(slice.startAngle%360)==(slice.endAngle%360)};for(shindex=0,shadows=[];shindex<lnsh;shindex++){shadowAttr=shadowAttributes[shindex];shadow=shadowGroups[shindex].getAt(i);if(!shadow){shadow=chart.surface.add(Ext.apply({},{type:"path",group:shadowGroups[shindex],strokeLinejoin:"round"},rendererAttributes,shadowAttr))}if(animate){shadowAttr=me.renderer(shadow,store.getAt(i),Ext.apply({},rendererAttributes,shadowAttr),i,store);me.onAnimate(shadow,{to:shadowAttr})}else{shadowAttr=me.renderer(shadow,store.getAt(i),shadowAttr,i,store);shadow.setAttributes(shadowAttr,true)}shadows.push(shadow)}slice.shadowAttrs[j]=shadows}}}for(i=0,ln=slices.length;i<ln;i++){slice=slices[i];for(j=0,rhoAcum=0;j<layers;j++){sprite=group.getAt(i*layers+j);deltaRho=lenField[j]?store.getAt(i).get(lenField[j])/layerTotals[i]*slice.rho:slice.rho;rendererAttributes=Ext.apply({segment:{startAngle:slice.startAngle,endAngle:slice.endAngle,margin:0,rho:slice.rho,startRho:rhoAcum+(deltaRho*donut/100),endRho:rhoAcum+deltaRho},hidden:(!slice.value&&(slice.startAngle%360)==(slice.endAngle%360))},Ext.apply(seriesStyle,colorArrayStyle&&{fill:colorArrayStyle[(layers>1?j:i)%colorArrayLength]}||{}));item=Ext.apply({},rendererAttributes.segment,{slice:slice,series:me,storeItem:slice.storeItem,index:i});me.calcMiddle(item);if(enableShadows){item.shadows=slice.shadowAttrs[j]}items[i]=item;if(!sprite){spriteOptions=Ext.apply({type:"path",group:group,middle:item.middle},Ext.apply(seriesStyle,colorArrayStyle&&{fill:colorArrayStyle[(layers>1?j:i)%colorArrayLength]}||{}));sprite=surface.add(Ext.apply(spriteOptions,rendererAttributes))}slice.sprite=slice.sprite||[];item.sprite=sprite;slice.sprite.push(sprite);slice.point=[item.middle.x,item.middle.y];if(animate){rendererAttributes=me.renderer(sprite,store.getAt(i),rendererAttributes,i,store);sprite._to=rendererAttributes;sprite._animating=true;me.onAnimate(sprite,{to:rendererAttributes,listeners:{afteranimate:{fn:function(){this._animating=false},scope:sprite}}})}else{rendererAttributes=me.renderer(sprite,store.getAt(i),Ext.apply(rendererAttributes,{hidden:false}),i,store);sprite.setAttributes(rendererAttributes,true)}rhoAcum+=deltaRho}}ln=group.getCount();for(i=0;i<ln;i++){if(!slices[(i/layers)>>0]&&group.getAt(i)){group.getAt(i).hide(true)}}if(enableShadows){lnsh=shadowGroups.length;for(shindex=0;shindex<ln;shindex++){if(!slices[(shindex/layers)>>0]){for(j=0;j<lnsh;j++){if(shadowGroups[j].getAt(shindex)){shadowGroups[j].getAt(shindex).hide(true)}}}}}me.renderLabels();me.renderCallouts()},onCreateLabel:function(storeItem,item,i,display){var me=this,group=me.labelsGroup,config=me.label,centerX=me.centerX,centerY=me.centerY,middle=item.middle,endLabelStyle=Ext.apply(me.seriesLabelStyle||{},config||{});return me.chart.surface.add(Ext.apply({type:"text","text-anchor":"middle",group:group,x:middle.x,y:middle.y},endLabelStyle))},onPlaceLabel:function(label,storeItem,item,i,display,animate,index){var me=this,chart=me.chart,resizing=chart.resizing,config=me.label,format=config.renderer,field=[].concat(config.field),centerX=me.centerX,centerY=me.centerY,middle=item.middle,opt={x:middle.x,y:middle.y},x=middle.x-centerX,y=middle.y-centerY,from={},rho=1,theta=Math.atan2(y,x||1),dg=theta*180/Math.PI,prevDg;if(this.__excludes&&this.__excludes[i]){opt.hidden=true}function fixAngle(a){if(a<0){a+=360}return a%360}label.setAttributes({text:format(storeItem.get(field[index]))},true);switch(display){case"outside":rho=Math.sqrt(x*x+y*y)*2;opt.x=rho*Math.cos(theta)+centerX;opt.y=rho*Math.sin(theta)+centerY;break;case"rotate":dg=fixAngle(dg);dg=(dg>90&&dg<270)?dg+180:dg;prevDg=label.attr.rotation.degrees;if(prevDg!=null&&Math.abs(prevDg-dg)>180){if(dg>prevDg){dg-=360}else{dg+=360}dg=dg%360}else{dg=fixAngle(dg)}opt.rotate={degrees:dg,x:opt.x,y:opt.y};break;default:break}opt.translate={x:0,y:0};if(animate&&!resizing&&(display!="rotate"||prevDg!=null)){me.onAnimate(label,{to:opt})}else{label.setAttributes(opt,true)}label._from=from},onPlaceCallout:function(callout,storeItem,item,i,display,animate,index){var me=this,chart=me.chart,resizing=chart.resizing,config=me.callouts,centerX=me.centerX,centerY=me.centerY,middle=item.middle,opt={x:middle.x,y:middle.y},x=middle.x-centerX,y=middle.y-centerY,rho=1,rhoCenter,theta=Math.atan2(y,x||1),bbox=callout.label.getBBox(),offsetFromViz=20,offsetToSide=10,offsetBox=10,p;rho=item.endRho+offsetFromViz;rhoCenter=(item.endRho+item.startRho)/2+(item.endRho-item.startRho)/3;opt.x=rho*Math.cos(theta)+centerX;opt.y=rho*Math.sin(theta)+centerY;x=rhoCenter*Math.cos(theta);y=rhoCenter*Math.sin(theta);if(chart.animate){me.onAnimate(callout.lines,{to:{path:["M",x+centerX,y+centerY,"L",opt.x,opt.y,"Z","M",opt.x,opt.y,"l",x>0?offsetToSide:-offsetToSide,0,"z"]}});me.onAnimate(callout.box,{to:{x:opt.x+(x>0?offsetToSide:-(offsetToSide+bbox.width+2*offsetBox)),y:opt.y+(y>0?(-bbox.height-offsetBox/2):(-bbox.height-offsetBox/2)),width:bbox.width+2*offsetBox,height:bbox.height+2*offsetBox}});me.onAnimate(callout.label,{to:{x:opt.x+(x>0?(offsetToSide+offsetBox):-(offsetToSide+bbox.width+offsetBox)),y:opt.y+(y>0?-bbox.height/4:-bbox.height/4)}})}else{callout.lines.setAttributes({path:["M",x+centerX,y+centerY,"L",opt.x,opt.y,"Z","M",opt.x,opt.y,"l",x>0?offsetToSide:-offsetToSide,0,"z"]},true);callout.box.setAttributes({x:opt.x+(x>0?offsetToSide:-(offsetToSide+bbox.width+2*offsetBox)),y:opt.y+(y>0?(-bbox.height-offsetBox/2):(-bbox.height-offsetBox/2)),width:bbox.width+2*offsetBox,height:bbox.height+2*offsetBox},true);callout.label.setAttributes({x:opt.x+(x>0?(offsetToSide+offsetBox):-(offsetToSide+bbox.width+offsetBox)),y:opt.y+(y>0?-bbox.height/4:-bbox.height/4)},true)}for(p in callout){callout[p].show(true)}},onAnimate:function(sprite,attr){sprite.show();return this.callParent(arguments)},isItemInPoint:function(x,y,item,i){var me=this,cx=me.centerX,cy=me.centerY,abs=Math.abs,dx=abs(x-cx),dy=abs(y-cy),startAngle=item.startAngle,endAngle=item.endAngle,rho=Math.sqrt(dx*dx+dy*dy),angle=Math.atan2(y-cy,x-cx)/me.rad;if(angle>me.firstAngle){angle-=360}return(angle<=startAngle&&angle>endAngle&&rho>=item.startRho&&rho<=item.endRho)},hideAll:function(){var i,l,shadow,shadows,sh,lsh,sprite;if(!isNaN(this._index)){this.__excludes=this.__excludes||[];this.__excludes[this._index]=true;sprite=this.slices[this._index].sprite;for(sh=0,lsh=sprite.length;sh<lsh;sh++){sprite[sh].setAttributes({hidden:true},true)}if(this.slices[this._index].shadowAttrs){for(i=0,shadows=this.slices[this._index].shadowAttrs,l=shadows.length;i<l;i++){shadow=shadows[i];for(sh=0,lsh=shadow.length;sh<lsh;sh++){shadow[sh].setAttributes({hidden:true},true)}}}this.drawSeries()}},showAll:function(){if(!isNaN(this._index)){this.__excludes[this._index]=false;this.drawSeries()}},highlightItem:function(item){var me=this,rad=me.rad;item=item||this.items[this._index];this.unHighlightItem();if(!item||item.sprite&&item.sprite._animating){return}me.callParent([item]);if(!me.highlight){return}if("segment" in me.highlightCfg){var highlightSegment=me.highlightCfg.segment,animate=me.chart.animate,attrs,i,shadows,shadow,ln,to,itemHighlightSegment,prop;if(me.labelsGroup){var group=me.labelsGroup,display=me.label.display,label=group.getAt(item.index),middle=(item.startAngle+item.endAngle)/2*rad,r=highlightSegment.margin||0,x=r*Math.cos(middle),y=r*Math.sin(middle);if(Math.abs(x)<1e-10){x=0}if(Math.abs(y)<1e-10){y=0}if(animate){label.stopAnimation();label.animate({to:{translate:{x:x,y:y}},duration:me.highlightDuration})}else{label.setAttributes({translate:{x:x,y:y}},true)}}if(me.chart.shadow&&item.shadows){i=0;shadows=item.shadows;ln=shadows.length;for(;i<ln;i++){shadow=shadows[i];to={};itemHighlightSegment=item.sprite._from.segment;for(prop in itemHighlightSegment){if(!(prop in highlightSegment)){to[prop]=itemHighlightSegment[prop]}}attrs={segment:Ext.applyIf(to,me.highlightCfg.segment)};if(animate){shadow.stopAnimation();shadow.animate({to:attrs,duration:me.highlightDuration})}else{shadow.setAttributes(attrs,true)}}}}},unHighlightItem:function(){var me=this;if(!me.highlight){return}if(("segment" in me.highlightCfg)&&me.items){var items=me.items,animate=me.chart.animate,shadowsEnabled=!!me.chart.shadow,group=me.labelsGroup,len=items.length,i=0,j=0,display=me.label.display,shadowLen,p,to,ihs,hs,sprite,shadows,shadow,item,label,attrs;for(;i<len;i++){item=items[i];if(!item){continue}sprite=item.sprite;if(sprite&&sprite._highlighted){if(group){label=group.getAt(item.index);attrs=Ext.apply({translate:{x:0,y:0}},display=="rotate"?{rotate:{x:label.attr.x,y:label.attr.y,degrees:label.attr.rotation.degrees}}:{});if(animate){label.stopAnimation();label.animate({to:attrs,duration:me.highlightDuration})}else{label.setAttributes(attrs,true)}}if(shadowsEnabled){shadows=item.shadows;shadowLen=shadows.length;for(;j<shadowLen;j++){to={};ihs=item.sprite._to.segment;hs=item.sprite._from.segment;Ext.apply(to,hs);for(p in ihs){if(!(p in hs)){to[p]=ihs[p]}}shadow=shadows[j];if(animate){shadow.stopAnimation();shadow.animate({to:{segment:to},duration:me.highlightDuration})}else{shadow.setAttributes({segment:to},true)}}}}}}me.callParent(arguments)},getLegendColor:function(index){var me=this;return(me.colorSet&&me.colorSet[index%me.colorSet.length])||me.colorArrayStyle[index%me.colorArrayStyle.length]}});Ext.define("Ext.chart.series.Radar",{extend:"Ext.chart.series.Series",requires:["Ext.chart.Shape","Ext.fx.Anim"],type:"radar",alias:"series.radar",rad:Math.PI/180,showInLegend:false,style:{},constructor:function(config){this.callParent(arguments);var me=this,surface=me.chart.surface,i,l;me.group=surface.getGroup(me.seriesId);if(me.showMarkers){me.markerGroup=surface.getGroup(me.seriesId+"-markers")}},drawSeries:function(){var me=this,store=me.chart.getChartStore(),group=me.group,sprite,chart=me.chart,animate=chart.animate,field=me.field||me.yField,surface=chart.surface,chartBBox=chart.chartBBox,rendererAttributes,centerX,centerY,items,radius,maxValue=0,fields=[],max=Math.max,cos=Math.cos,sin=Math.sin,pi2=Math.PI*2,l=store.getCount(),startPath,path,x,y,rho,i,nfields,seriesStyle=me.seriesStyle,seriesLabelStyle=me.seriesLabelStyle,first=chart.resizing||!me.radar,axis=chart.axes&&chart.axes.get(0),aggregate=!(axis&&axis.maximum);me.setBBox();maxValue=aggregate?0:(axis.maximum||0);Ext.apply(seriesStyle,me.style||{});if(!store||!store.getCount()){return}me.unHighlightItem();me.cleanHighlights();centerX=me.centerX=chartBBox.x+(chartBBox.width/2);centerY=me.centerY=chartBBox.y+(chartBBox.height/2);me.radius=radius=Math.min(chartBBox.width,chartBBox.height)/2;me.items=items=[];if(aggregate){chart.series.each(function(series){fields.push(series.yField)});store.each(function(record,i){for(i=0,nfields=fields.length;i<nfields;i++){maxValue=max(+record.get(fields[i]),maxValue)}})}maxValue=maxValue||1;startPath=[];path=[];store.each(function(record,i){rho=radius*record.get(field)/maxValue;x=rho*cos(i/l*pi2);y=rho*sin(i/l*pi2);if(i==0){path.push("M",x+centerX,y+centerY);startPath.push("M",0.01*x+centerX,0.01*y+centerY)}else{path.push("L",x+centerX,y+centerY);startPath.push("L",0.01*x+centerX,0.01*y+centerY)}items.push({sprite:false,point:[centerX+x,centerY+y],series:me})});path.push("Z");if(!me.radar){me.radar=surface.add(Ext.apply({type:"path",group:group,path:startPath},seriesStyle||{}))}if(chart.resizing){me.radar.setAttributes({path:startPath},true)}if(chart.animate){me.onAnimate(me.radar,{to:Ext.apply({path:path},seriesStyle||{})})}else{me.radar.setAttributes(Ext.apply({path:path},seriesStyle||{}),true)}if(me.showMarkers){me.drawMarkers()}me.renderLabels();me.renderCallouts()},drawMarkers:function(){var me=this,chart=me.chart,surface=chart.surface,markerStyle=Ext.apply({},me.markerStyle||{}),endMarkerStyle=Ext.apply(markerStyle,me.markerConfig),items=me.items,type=endMarkerStyle.type,markerGroup=me.markerGroup,centerX=me.centerX,centerY=me.centerY,item,i,l,marker;delete endMarkerStyle.type;for(i=0,l=items.length;i<l;i++){item=items[i];marker=markerGroup.getAt(i);if(!marker){marker=Ext.chart.Shape[type](surface,Ext.apply({group:markerGroup,x:0,y:0,translate:{x:centerX,y:centerY}},endMarkerStyle))}else{marker.show()}if(chart.resizing){marker.setAttributes({x:0,y:0,translate:{x:centerX,y:centerY}},true)}marker._to={translate:{x:item.point[0],y:item.point[1]}};if(chart.animate){me.onAnimate(marker,{to:marker._to})}else{marker.setAttributes(Ext.apply(marker._to,endMarkerStyle||{}),true)}}},isItemInPoint:function(x,y,item){var point,tolerance=10,abs=Math.abs;point=item.point;return(abs(point[0]-x)<=tolerance&&abs(point[1]-y)<=tolerance)},onCreateLabel:function(storeItem,item,i,display){var me=this,group=me.labelsGroup,config=me.label,centerX=me.centerX,centerY=me.centerY,point=item.point,endLabelStyle=Ext.apply(me.seriesLabelStyle||{},config);return me.chart.surface.add(Ext.apply({type:"text","text-anchor":"middle",group:group,x:centerX,y:centerY},config||{}))},onPlaceLabel:function(label,storeItem,item,i,display,animate){var me=this,chart=me.chart,resizing=chart.resizing,config=me.label,format=config.renderer,field=config.field,centerX=me.centerX,centerY=me.centerY,opt={x:item.point[0],y:item.point[1]},x=opt.x-centerX,y=opt.y-centerY;label.setAttributes({text:format(storeItem.get(field)),hidden:true},true);if(resizing){label.setAttributes({x:centerX,y:centerY},true)}if(animate){label.show(true);me.onAnimate(label,{to:opt})}else{label.setAttributes(opt,true);label.show(true)}},toggleAll:function(show){var me=this,i,ln,shadow,shadows;if(!show){Ext.chart.series.Radar.superclass.hideAll.call(me)}else{Ext.chart.series.Radar.superclass.showAll.call(me)}if(me.radar){me.radar.setAttributes({hidden:!show},true);if(me.radar.shadows){for(i=0,shadows=me.radar.shadows,ln=shadows.length;i<ln;i++){shadow=shadows[i];shadow.setAttributes({hidden:!show},true)}}}},hideAll:function(){this.toggleAll(false);this.hideMarkers(0)},showAll:function(){this.toggleAll(true)},hideMarkers:function(index){var me=this,count=me.markerGroup&&me.markerGroup.getCount()||0,i=index||0;for(;i<count;i++){me.markerGroup.getAt(i).hide(true)}}});Ext.define("Ext.chart.series.Scatter",{extend:"Ext.chart.series.Cartesian",requires:["Ext.chart.axis.Axis","Ext.chart.Shape","Ext.fx.Anim"],type:"scatter",alias:"series.scatter",constructor:function(config){this.callParent(arguments);var me=this,shadow=me.chart.shadow,surface=me.chart.surface,i,l;Ext.apply(me,config,{style:{},markerConfig:{},shadowAttributes:[{"stroke-width":6,"stroke-opacity":0.05,stroke:"rgb(0, 0, 0)"},{"stroke-width":4,"stroke-opacity":0.1,stroke:"rgb(0, 0, 0)"},{"stroke-width":2,"stroke-opacity":0.15,stroke:"rgb(0, 0, 0)"}]});me.group=surface.getGroup(me.seriesId);if(shadow){for(i=0,l=me.shadowAttributes.length;i<l;i++){me.shadowGroups.push(surface.getGroup(me.seriesId+"-shadows"+i))}}},getBounds:function(){var me=this,chart=me.chart,store=chart.getChartStore(),axes=[].concat(me.axis),bbox,xScale,yScale,ln,minX,minY,maxX,maxY,i,axis,ends;me.setBBox();bbox=me.bbox;for(i=0,ln=axes.length;i<ln;i++){axis=chart.axes.get(axes[i]);if(axis){ends=axis.calcEnds();if(axis.position=="top"||axis.position=="bottom"){minX=ends.from;maxX=ends.to}else{minY=ends.from;maxY=ends.to}}}if(me.xField&&!Ext.isNumber(minX)){axis=Ext.create("Ext.chart.axis.Axis",{chart:chart,fields:[].concat(me.xField)}).calcEnds();minX=axis.from;maxX=axis.to}if(me.yField&&!Ext.isNumber(minY)){axis=Ext.create("Ext.chart.axis.Axis",{chart:chart,fields:[].concat(me.yField)}).calcEnds();minY=axis.from;maxY=axis.to}if(isNaN(minX)){minX=0;maxX=store.getCount()-1;xScale=bbox.width/(store.getCount()-1)}else{xScale=bbox.width/(maxX-minX)}if(isNaN(minY)){minY=0;maxY=store.getCount()-1;yScale=bbox.height/(store.getCount()-1)}else{yScale=bbox.height/(maxY-minY)}return{bbox:bbox,minX:minX,minY:minY,xScale:xScale,yScale:yScale}},getPaths:function(){var me=this,chart=me.chart,enableShadows=chart.shadow,store=chart.getChartStore(),group=me.group,bounds=me.bounds=me.getBounds(),bbox=me.bbox,xScale=bounds.xScale,yScale=bounds.yScale,minX=bounds.minX,minY=bounds.minY,boxX=bbox.x,boxY=bbox.y,boxHeight=bbox.height,items=me.items=[],attrs=[],x,y,xValue,yValue,sprite;store.each(function(record,i){xValue=record.get(me.xField);yValue=record.get(me.yField);if(typeof yValue=="undefined"||(typeof yValue=="string"&&!yValue)){return}if(typeof xValue=="string"||typeof xValue=="object"&&!Ext.isDate(xValue)){xValue=i}if(typeof yValue=="string"||typeof yValue=="object"&&!Ext.isDate(yValue)){yValue=i}x=boxX+(xValue-minX)*xScale;y=boxY+boxHeight-(yValue-minY)*yScale;attrs.push({x:x,y:y});me.items.push({series:me,value:[xValue,yValue],point:[x,y],storeItem:record});if(chart.animate&&chart.resizing){sprite=group.getAt(i);if(sprite){me.resetPoint(sprite);if(enableShadows){me.resetShadow(sprite)}}}});return attrs},resetPoint:function(sprite){var bbox=this.bbox;sprite.setAttributes({translate:{x:(bbox.x+bbox.width)/2,y:(bbox.y+bbox.height)/2}},true)},resetShadow:function(sprite){var me=this,shadows=sprite.shadows,shadowAttributes=me.shadowAttributes,ln=me.shadowGroups.length,bbox=me.bbox,i,attr;for(i=0;i<ln;i++){attr=Ext.apply({},shadowAttributes[i]);if(attr.translate){attr.translate.x+=(bbox.x+bbox.width)/2;attr.translate.y+=(bbox.y+bbox.height)/2}else{attr.translate={x:(bbox.x+bbox.width)/2,y:(bbox.y+bbox.height)/2}}shadows[i].setAttributes(attr,true)}},createPoint:function(attr,type){var me=this,chart=me.chart,group=me.group,bbox=me.bbox;return Ext.chart.Shape[type](chart.surface,Ext.apply({},{x:0,y:0,group:group,translate:{x:(bbox.x+bbox.width)/2,y:(bbox.y+bbox.height)/2}},attr))},createShadow:function(sprite,endMarkerStyle,type){var me=this,chart=me.chart,shadowGroups=me.shadowGroups,shadowAttributes=me.shadowAttributes,lnsh=shadowGroups.length,bbox=me.bbox,i,shadow,shadows,attr;sprite.shadows=shadows=[];for(i=0;i<lnsh;i++){attr=Ext.apply({},shadowAttributes[i]);if(attr.translate){attr.translate.x+=(bbox.x+bbox.width)/2;attr.translate.y+=(bbox.y+bbox.height)/2}else{Ext.apply(attr,{translate:{x:(bbox.x+bbox.width)/2,y:(bbox.y+bbox.height)/2}})}Ext.apply(attr,endMarkerStyle);shadow=Ext.chart.Shape[type](chart.surface,Ext.apply({},{x:0,y:0,group:shadowGroups[i]},attr));shadows.push(shadow)}},drawSeries:function(){var me=this,chart=me.chart,store=chart.getChartStore(),group=me.group,enableShadows=chart.shadow,shadowGroups=me.shadowGroups,shadowAttributes=me.shadowAttributes,lnsh=shadowGroups.length,sprite,attrs,attr,ln,i,endMarkerStyle,shindex,type,shadows,rendererAttributes,shadowAttribute;endMarkerStyle=Ext.apply(me.markerStyle,me.markerConfig);type=endMarkerStyle.type;delete endMarkerStyle.type;if(!store||!store.getCount()){return}me.unHighlightItem();me.cleanHighlights();attrs=me.getPaths();ln=attrs.length;for(i=0;i<ln;i++){attr=attrs[i];sprite=group.getAt(i);Ext.apply(attr,endMarkerStyle);if(!sprite){sprite=me.createPoint(attr,type);if(enableShadows){me.createShadow(sprite,endMarkerStyle,type)}}shadows=sprite.shadows;if(chart.animate){rendererAttributes=me.renderer(sprite,store.getAt(i),{translate:attr},i,store);sprite._to=rendererAttributes;me.onAnimate(sprite,{to:rendererAttributes});for(shindex=0;shindex<lnsh;shindex++){shadowAttribute=Ext.apply({},shadowAttributes[shindex]);rendererAttributes=me.renderer(shadows[shindex],store.getAt(i),Ext.apply({},{hidden:false,translate:{x:attr.x+(shadowAttribute.translate?shadowAttribute.translate.x:0),y:attr.y+(shadowAttribute.translate?shadowAttribute.translate.y:0)}},shadowAttribute),i,store);me.onAnimate(shadows[shindex],{to:rendererAttributes})}}else{rendererAttributes=me.renderer(sprite,store.getAt(i),{translate:attr},i,store);sprite._to=rendererAttributes;sprite.setAttributes(rendererAttributes,true);for(shindex=0;shindex<lnsh;shindex++){shadowAttribute=Ext.apply({},shadowAttributes[shindex]);rendererAttributes=me.renderer(shadows[shindex],store.getAt(i),Ext.apply({},{hidden:false,translate:{x:attr.x+(shadowAttribute.translate?shadowAttribute.translate.x:0),y:attr.y+(shadowAttribute.translate?shadowAttribute.translate.y:0)}},shadowAttribute),i,store);shadows[shindex].setAttributes(rendererAttributes,true)}}me.items[i].sprite=sprite}ln=group.getCount();for(i=attrs.length;i<ln;i++){group.getAt(i).hide(true)}me.renderLabels();me.renderCallouts()},onCreateLabel:function(storeItem,item,i,display){var me=this,group=me.labelsGroup,config=me.label,endLabelStyle=Ext.apply({},config,me.seriesLabelStyle),bbox=me.bbox;return me.chart.surface.add(Ext.apply({type:"text",group:group,x:item.point[0],y:bbox.y+bbox.height/2},endLabelStyle))},onPlaceLabel:function(label,storeItem,item,i,display,animate){var me=this,chart=me.chart,resizing=chart.resizing,config=me.label,format=config.renderer,field=config.field,bbox=me.bbox,x=item.point[0],y=item.point[1],radius=item.sprite.attr.radius,bb,width,height,anim;label.setAttributes({text:format(storeItem.get(field)),hidden:true},true);if(display=="rotate"){label.setAttributes({"text-anchor":"start",rotation:{x:x,y:y,degrees:-45}},true);bb=label.getBBox();width=bb.width;height=bb.height;x=x<bbox.x?bbox.x:x;x=(x+width>bbox.x+bbox.width)?(x-(x+width-bbox.x-bbox.width)):x;y=(y-height<bbox.y)?bbox.y+height:y}else{if(display=="under"||display=="over"){bb=item.sprite.getBBox();bb.width=bb.width||(radius*2);bb.height=bb.height||(radius*2);y=y+(display=="over"?-bb.height:bb.height);bb=label.getBBox();width=bb.width/2;height=bb.height/2;x=x-width<bbox.x?bbox.x+width:x;x=(x+width>bbox.x+bbox.width)?(x-(x+width-bbox.x-bbox.width)):x;y=y-height<bbox.y?bbox.y+height:y;y=(y+height>bbox.y+bbox.height)?(y-(y+height-bbox.y-bbox.height)):y}}if(!chart.animate){label.setAttributes({x:x,y:y},true);label.show(true)}else{if(resizing){anim=item.sprite.getActiveAnimation();if(anim){anim.on("afteranimate",function(){label.setAttributes({x:x,y:y},true);label.show(true)})}else{label.show(true)}}else{me.onAnimate(label,{to:{x:x,y:y}})}}},onPlaceCallout:function(callout,storeItem,item,i,display,animate,index){var me=this,chart=me.chart,surface=chart.surface,resizing=chart.resizing,config=me.callouts,items=me.items,cur=item.point,normal,bbox=callout.label.getBBox(),offsetFromViz=30,offsetToSide=10,offsetBox=3,boxx,boxy,boxw,boxh,p,clipRect=me.bbox,x,y;normal=[Math.cos(Math.PI/4),-Math.sin(Math.PI/4)];x=cur[0]+normal[0]*offsetFromViz;y=cur[1]+normal[1]*offsetFromViz;boxx=x+(normal[0]>0?0:-(bbox.width+2*offsetBox));boxy=y-bbox.height/2-offsetBox;boxw=bbox.width+2*offsetBox;boxh=bbox.height+2*offsetBox;if(boxx<clipRect[0]||(boxx+boxw)>(clipRect[0]+clipRect[2])){normal[0]*=-1}if(boxy<clipRect[1]||(boxy+boxh)>(clipRect[1]+clipRect[3])){normal[1]*=-1}x=cur[0]+normal[0]*offsetFromViz;y=cur[1]+normal[1]*offsetFromViz;boxx=x+(normal[0]>0?0:-(bbox.width+2*offsetBox));boxy=y-bbox.height/2-offsetBox;boxw=bbox.width+2*offsetBox;boxh=bbox.height+2*offsetBox;if(chart.animate){me.onAnimate(callout.lines,{to:{path:["M",cur[0],cur[1],"L",x,y,"Z"]}},true);me.onAnimate(callout.box,{to:{x:boxx,y:boxy,width:boxw,height:boxh}},true);me.onAnimate(callout.label,{to:{x:x+(normal[0]>0?offsetBox:-(bbox.width+offsetBox)),y:y}},true)}else{callout.lines.setAttributes({path:["M",cur[0],cur[1],"L",x,y,"Z"]},true);callout.box.setAttributes({x:boxx,y:boxy,width:boxw,height:boxh},true);callout.label.setAttributes({x:x+(normal[0]>0?offsetBox:-(bbox.width+offsetBox)),y:y},true)}for(p in callout){callout[p].show(true)}},onAnimate:function(sprite,attr){sprite.show();return this.callParent(arguments)},isItemInPoint:function(x,y,item){var point,tolerance=10,abs=Math.abs;function dist(point){var dx=abs(point[0]-x),dy=abs(point[1]-y);return Math.sqrt(dx*dx+dy*dy)}point=item.point;return(point[0]-tolerance<=x&&point[0]+tolerance>=x&&point[1]-tolerance<=y&&point[1]+tolerance>=y)}});Ext.define("Ext.chart.theme.Base",{requires:["Ext.chart.theme.Theme"],constructor:function(config){Ext.chart.theme.call(this,config,{background:false,axis:{stroke:"#444","stroke-width":1},axisLabelTop:{fill:"#444",font:"12px Arial, Helvetica, sans-serif",spacing:2,padding:5,renderer:function(v){return v}},axisLabelRight:{fill:"#444",font:"12px Arial, Helvetica, sans-serif",spacing:2,padding:5,renderer:function(v){return v}},axisLabelBottom:{fill:"#444",font:"12px Arial, Helvetica, sans-serif",spacing:2,padding:5,renderer:function(v){return v}},axisLabelLeft:{fill:"#444",font:"12px Arial, Helvetica, sans-serif",spacing:2,padding:5,renderer:function(v){return v}},axisTitleTop:{font:"bold 18px Arial",fill:"#444"},axisTitleRight:{font:"bold 18px Arial",fill:"#444",rotate:{x:0,y:0,degrees:270}},axisTitleBottom:{font:"bold 18px Arial",fill:"#444"},axisTitleLeft:{font:"bold 18px Arial",fill:"#444",rotate:{x:0,y:0,degrees:270}},series:{"stroke-width":0},seriesLabel:{font:"12px Arial",fill:"#333"},marker:{stroke:"#555",fill:"#000",radius:3,size:3},colors:["#94ae0a","#115fa6","#a61120","#ff8809","#ffd13e","#a61187","#24ad9a","#7c7474","#a66111"],seriesThemes:[{fill:"#115fa6"},{fill:"#94ae0a"},{fill:"#a61120"},{fill:"#ff8809"},{fill:"#ffd13e"},{fill:"#a61187"},{fill:"#24ad9a"},{fill:"#7c7474"},{fill:"#a66111"}],markerThemes:[{fill:"#115fa6",type:"circle"},{fill:"#94ae0a",type:"cross"},{fill:"#a61120",type:"plus"}]})}},function(){var palette=["#b1da5a","#4ce0e7","#e84b67","#da5abd","#4d7fe6","#fec935"],names=["Green","Sky","Red","Purple","Blue","Yellow"],i=0,j=0,l=palette.length,themes=Ext.chart.theme,categories=[["#f0a50a","#c20024","#2044ba","#810065","#7eae29"],["#6d9824","#87146e","#2a9196","#d39006","#1e40ac"],["#fbbc29","#ce2e4e","#7e0062","#158b90","#57880e"],["#ef5773","#fcbd2a","#4f770d","#1d3eaa","#9b001f"],["#7eae29","#fdbe2a","#910019","#27b4bc","#d74dbc"],["#44dce1","#0b2592","#996e05","#7fb325","#b821a1"]],cats=categories.length;for(;i<l;i++){themes[names[i]]=(function(color){return Ext.extend(themes.Base,{constructor:function(config){themes.Base.prototype.constructor.call(this,Ext.apply({baseColor:color},config))}})})(palette[i])}for(i=0;i<cats;i++){themes["Category"+(i+1)]=(function(category){return Ext.extend(themes.Base,{constructor:function(config){themes.Base.prototype.constructor.call(this,Ext.apply({colors:category},config))}})})(categories[i])}});Ext.define("Ext.data.ArrayStore",{extend:"Ext.data.Store",alias:"store.array",uses:["Ext.data.reader.Array"],constructor:function(config){config=config||{};Ext.applyIf(config,{proxy:{type:"memory",reader:"array"}});this.callParent([config])},loadData:function(data,append){if(this.expandData===true){var r=[],i=0,ln=data.length;for(;i<ln;i++){r[r.length]=[data[i]]}data=r}this.callParent([data,append])}},function(){Ext.data.SimpleStore=Ext.data.ArrayStore});Ext.define("Ext.data.Batch",{mixins:{observable:"Ext.util.Observable"},autoStart:false,current:-1,total:0,isRunning:false,isComplete:false,hasException:false,pauseOnException:true,constructor:function(config){var me=this;me.addEvents("complete","exception","operationcomplete");me.mixins.observable.constructor.call(me,config);me.operations=[]},add:function(operation){this.total++;operation.setBatch(this);this.operations.push(operation)},start:function(){this.hasException=false;this.isRunning=true;this.runNextOperation()},runNextOperation:function(){this.runOperation(this.current+1)},pause:function(){this.isRunning=false},runOperation:function(index){var me=this,operations=me.operations,operation=operations[index],onProxyReturn;if(operation===undefined){me.isRunning=false;me.isComplete=true;me.fireEvent("complete",me,operations[operations.length-1])}else{me.current=index;onProxyReturn=function(operation){var hasException=operation.hasException();if(hasException){me.hasException=true;me.fireEvent("exception",me,operation)}else{me.fireEvent("operationcomplete",me,operation)}if(hasException&&me.pauseOnException){me.pause()}else{operation.setCompleted();me.runNextOperation()}};operation.setStarted();me.proxy[operation.action](operation,onProxyReturn,me)}}});Ext.define("Ext.data.BelongsToAssociation",{extend:"Ext.data.Association",alias:"association.belongsto",constructor:function(config){this.callParent(arguments);var me=this,ownerProto=me.ownerModel.prototype,associatedName=me.associatedName,getterName=me.getterName||"get"+associatedName,setterName=me.setterName||"set"+associatedName;Ext.applyIf(me,{name:associatedName,foreignKey:associatedName.toLowerCase()+"_id",instanceName:associatedName+"BelongsToInstance",associationKey:associatedName.toLowerCase()});ownerProto[getterName]=me.createGetter();ownerProto[setterName]=me.createSetter()},createSetter:function(){var me=this,ownerModel=me.ownerModel,associatedModel=me.associatedModel,foreignKey=me.foreignKey,primaryKey=me.primaryKey;return function(value,options,scope){this.set(foreignKey,value);if(typeof options=="function"){options={callback:options,scope:scope||this}}if(Ext.isObject(options)){return this.save(options)}}},createGetter:function(){var me=this,ownerModel=me.ownerModel,associatedName=me.associatedName,associatedModel=me.associatedModel,foreignKey=me.foreignKey,primaryKey=me.primaryKey,instanceName=me.instanceName;return function(options,scope){options=options||{};var model=this,foreignKeyId=model.get(foreignKey),instance,args;if(model[instanceName]===undefined){instance=Ext.ModelManager.create({},associatedName);instance.set(primaryKey,foreignKeyId);if(typeof options=="function"){options={callback:options,scope:scope||model}}associatedModel.load(foreignKeyId,options);model[instanceName]=associatedModel;return associatedModel}else{instance=model[instanceName];args=[instance];scope=scope||model;Ext.callback(options,scope,args);Ext.callback(options.success,scope,args);Ext.callback(options.failure,scope,args);Ext.callback(options.callback,scope,args);return instance}}},read:function(record,reader,associationData){record[this.instanceName]=reader.read([associationData]).records[0]}});Ext.define("Ext.data.BufferStore",{extend:"Ext.data.Store",alias:"store.buffer",sortOnLoad:false,filterOnLoad:false,constructor:function(){Ext.Error.raise("The BufferStore class has been deprecated. Instead, specify the buffered config option on Ext.data.Store")}});Ext.define("Ext.direct.Manager",{singleton:true,mixins:{observable:"Ext.util.Observable"},requires:["Ext.util.MixedCollection"],statics:{exceptions:{TRANSPORT:"xhr",PARSE:"parse",LOGIN:"login",SERVER:"exception"}},constructor:function(){var me=this;me.addEvents("event","exception");me.transactions=Ext.create("Ext.util.MixedCollection");me.providers=Ext.create("Ext.util.MixedCollection");me.mixins.observable.constructor.call(me)},addProvider:function(provider){var me=this,args=arguments,i=0,len;if(args.length>1){for(len=args.length;i<len;++i){me.addProvider(args[i])}return}if(!provider.isProvider){provider=Ext.create("direct."+provider.type+"provider",provider)}me.providers.add(provider);provider.on("data",me.onProviderData,me);if(!provider.isConnected()){provider.connect()}return provider},getProvider:function(id){return id.isProvider?id:this.providers.get(id)},removeProvider:function(provider){var me=this,providers=me.providers;provider=provider.isProvider?provider:providers.get(provider);if(provider){provider.un("data",me.onProviderData,me);providers.remove(provider);return provider}return null},addTransaction:function(transaction){this.transactions.add(transaction);return transaction},removeTransaction:function(transaction){transaction=this.getTransaction(transaction);this.transactions.remove(transaction);return transaction},getTransaction:function(transaction){return transaction.isTransaction?transaction:this.transactions.get(transaction)},onProviderData:function(provider,event){var me=this,i=0,len;if(Ext.isArray(event)){for(len=event.length;i<len;++i){me.onProviderData(provider,event[i])}return}if(event.name&&event.name!="event"&&event.name!="exception"){me.fireEvent(event.name,event)}else{if(event.status===false){me.fireEvent("exception",event)}}me.fireEvent("event",event,provider)}},function(){Ext.Direct=Ext.direct.Manager});Ext.define("Ext.data.proxy.Direct",{extend:"Ext.data.proxy.Server",alternateClassName:"Ext.data.DirectProxy",alias:"proxy.direct",requires:["Ext.direct.Manager"],paramOrder:undefined,paramsAsHash:true,directFn:undefined,paramOrderRe:/[\s,|]/,constructor:function(config){var me=this;Ext.apply(me,config);if(Ext.isString(me.paramOrder)){me.paramOrder=me.paramOrder.split(me.paramOrderRe)}me.callParent(arguments)},doRequest:function(operation,callback,scope){var me=this,writer=me.getWriter(),request=me.buildRequest(operation,callback,scope),fn=me.api[request.action]||me.directFn,args=[],params=request.params,paramOrder=me.paramOrder,method,i=0,len;if(operation.allowWrite()){request=writer.write(request)}if(operation.action=="read"){method=fn.directCfg.method;if(method.ordered){if(method.len>0){if(paramOrder){for(len=paramOrder.length;i<len;++i){args.push(params[paramOrder[i]])}}else{if(me.paramsAsHash){args.push(params)}}}}else{args.push(params)}}else{args.push(request.jsonData)}Ext.apply(request,{args:args,directFn:fn});args.push(me.createRequestCallback(request,operation,callback,scope),me);fn.apply(window,args)},applyEncoding:function(value){return value},createRequestCallback:function(request,operation,callback,scope){var me=this;return function(data,event){me.processResponse(event.status,operation,request,event,callback,scope)}},extractResponseData:function(response){return Ext.isDefined(response.result)?response.result:response.data},setException:function(operation,response){operation.setException(response.message)},buildUrl:function(){return""}});Ext.define("Ext.data.DirectStore",{extend:"Ext.data.Store",alias:"store.direct",requires:["Ext.data.proxy.Direct"],constructor:function(config){config=Ext.apply({},config);if(!config.proxy){var proxy={type:"direct",reader:{type:"json"}};Ext.copyTo(proxy,config,"paramOrder,paramsAsHash,directFn,api,simpleSortMode");Ext.copyTo(proxy.reader,config,"totalProperty,root,idProperty");config.proxy=proxy}this.callParent([config])}});Ext.define("Ext.util.Inflector",{singleton:true,plurals:[[(/(quiz)$/i),"$1zes"],[(/^(ox)$/i),"$1en"],[(/([m|l])ouse$/i),"$1ice"],[(/(matr|vert|ind)ix|ex$/i),"$1ices"],[(/(x|ch|ss|sh)$/i),"$1es"],[(/([^aeiouy]|qu)y$/i),"$1ies"],[(/(hive)$/i),"$1s"],[(/(?:([^f])fe|([lr])f)$/i),"$1$2ves"],[(/sis$/i),"ses"],[(/([ti])um$/i),"$1a"],[(/(buffal|tomat|potat)o$/i),"$1oes"],[(/(bu)s$/i),"$1ses"],[(/(alias|status|sex)$/i),"$1es"],[(/(octop|vir)us$/i),"$1i"],[(/(ax|test)is$/i),"$1es"],[(/^person$/),"people"],[(/^man$/),"men"],[(/^(child)$/),"$1ren"],[(/s$/i),"s"],[(/$/),"s"]],singulars:[[(/(quiz)zes$/i),"$1"],[(/(matr)ices$/i),"$1ix"],[(/(vert|ind)ices$/i),"$1ex"],[(/^(ox)en/i),"$1"],[(/(alias|status)es$/i),"$1"],[(/(octop|vir)i$/i),"$1us"],[(/(cris|ax|test)es$/i),"$1is"],[(/(shoe)s$/i),"$1"],[(/(o)es$/i),"$1"],[(/(bus)es$/i),"$1"],[(/([m|l])ice$/i),"$1ouse"],[(/(x|ch|ss|sh)es$/i),"$1"],[(/(m)ovies$/i),"$1ovie"],[(/(s)eries$/i),"$1eries"],[(/([^aeiouy]|qu)ies$/i),"$1y"],[(/([lr])ves$/i),"$1f"],[(/(tive)s$/i),"$1"],[(/(hive)s$/i),"$1"],[(/([^f])ves$/i),"$1fe"],[(/(^analy)ses$/i),"$1sis"],[(/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i),"$1$2sis"],[(/([ti])a$/i),"$1um"],[(/(n)ews$/i),"$1ews"],[(/people$/i),"person"],[(/s$/i),""]],uncountable:["sheep","fish","series","species","money","rice","information","equipment","grass","mud","offspring","deer","means"],singular:function(matcher,replacer){this.singulars.unshift([matcher,replacer])},plural:function(matcher,replacer){this.plurals.unshift([matcher,replacer])},clearSingulars:function(){this.singulars=[]},clearPlurals:function(){this.plurals=[]},isTransnumeral:function(word){return Ext.Array.indexOf(this.uncountable,word)!=-1},pluralize:function(word){if(this.isTransnumeral(word)){return word}var plurals=this.plurals,length=plurals.length,tuple,regex,i;for(i=0;i<length;i++){tuple=plurals[i];regex=tuple[0];if(regex==word||(regex.test&&regex.test(word))){return word.replace(regex,tuple[1])}}return word},singularize:function(word){if(this.isTransnumeral(word)){return word}var singulars=this.singulars,length=singulars.length,tuple,regex,i;for(i=0;i<length;i++){tuple=singulars[i];regex=tuple[0];if(regex==word||(regex.test&&regex.test(word))){return word.replace(regex,tuple[1])}}return word},classify:function(word){return Ext.String.capitalize(this.singularize(word))},ordinalize:function(number){var parsed=parseInt(number,10),mod10=parsed%10,mod100=parsed%100;if(11<=mod100&&mod100<=13){return number+"th"}else{switch(mod10){case 1:return number+"st";case 2:return number+"nd";case 3:return number+"rd";default:return number+"th"}}}},function(){var irregulars={alumnus:"alumni",cactus:"cacti",focus:"foci",nucleus:"nuclei",radius:"radii",stimulus:"stimuli",ellipsis:"ellipses",paralysis:"paralyses",oasis:"oases",appendix:"appendices",index:"indexes",beau:"beaux",bureau:"bureaux",tableau:"tableaux",woman:"women",child:"children",man:"men",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",phenomenon:"phenomena",foot:"feet",goose:"geese",tooth:"teeth",antenna:"antennae",formula:"formulae",nebula:"nebulae",vertebra:"vertebrae",vita:"vitae"},singular;for(singular in irregulars){this.plural(singular,irregulars[singular]);this.singular(irregulars[singular],singular)}});Ext.define("Ext.data.HasManyAssociation",{extend:"Ext.data.Association",requires:["Ext.util.Inflector"],alias:"association.hasmany",constructor:function(config){var me=this,ownerProto,name;me.callParent(arguments);me.name=me.name||Ext.util.Inflector.pluralize(me.associatedName.toLowerCase());ownerProto=me.ownerModel.prototype;name=me.name;Ext.applyIf(me,{storeName:name+"Store",foreignKey:me.ownerName.toLowerCase()+"_id"});ownerProto[name]=me.createStore()},createStore:function(){var that=this,associatedModel=that.associatedModel,storeName=that.storeName,foreignKey=that.foreignKey,primaryKey=that.primaryKey,filterProperty=that.filterProperty,autoLoad=that.autoLoad,storeConfig=that.storeConfig||{};return function(){var me=this,config,filter,modelDefaults={};if(me[storeName]===undefined){if(filterProperty){filter={property:filterProperty,value:me.get(filterProperty),exactMatch:true}}else{filter={property:foreignKey,value:me.get(primaryKey),exactMatch:true}}modelDefaults[foreignKey]=me.get(primaryKey);config=Ext.apply({},storeConfig,{model:associatedModel,filters:[filter],remoteFilter:false,modelDefaults:modelDefaults});me[storeName]=Ext.create("Ext.data.Store",config);if(autoLoad){me[storeName].load()}}return me[storeName]}},read:function(record,reader,associationData){var store=record[this.name](),inverse;store.add(reader.read(associationData).records);inverse=this.associatedModel.prototype.associations.findBy(function(assoc){return assoc.type==="belongsTo"&&assoc.associatedName===record.$className});if(inverse){store.data.each(function(associatedRecord){associatedRecord[inverse.instanceName]=record})}}});Ext.define("Ext.data.JsonP",{singleton:true,statics:{requestCount:0,requests:{}},timeout:30000,disableCaching:true,disableCachingParam:"_dc",callbackKey:"callback",request:function(options){options=Ext.apply({},options);var me=this,disableCaching=Ext.isDefined(options.disableCaching)?options.disableCaching:me.disableCaching,cacheParam=options.disableCachingParam||me.disableCachingParam,id=++me.statics().requestCount,callbackName=options.callbackName||"callback"+id,callbackKey=options.callbackKey||me.callbackKey,timeout=Ext.isDefined(options.timeout)?options.timeout:me.timeout,params=Ext.apply({},options.params),url=options.url,name=Ext.isSandboxed?Ext.getUniqueGlobalNamespace():"Ext",request,script;params[callbackKey]=name+".data.JsonP."+callbackName;if(disableCaching){params[cacheParam]=new Date().getTime()}script=me.createScript(url,params);me.statics().requests[id]=request={url:url,params:params,script:script,id:id,scope:options.scope,success:options.success,failure:options.failure,callback:options.callback,callbackName:callbackName};if(timeout>0){request.timeout=setTimeout(Ext.bind(me.handleTimeout,me,[request]),timeout)}me.setupErrorHandling(request);me[callbackName]=Ext.bind(me.handleResponse,me,[request],true);Ext.getHead().appendChild(script);return request},abort:function(request){var requests=this.statics().requests,key;if(request){if(!request.id){request=requests[request]}this.abort(request)}else{for(key in requests){if(requests.hasOwnProperty(key)){this.abort(requests[key])}}}},setupErrorHandling:function(request){request.script.onerror=Ext.bind(this.handleError,this,[request])},handleAbort:function(request){request.errorType="abort";this.handleResponse(null,request)},handleError:function(request){request.errorType="error";this.handleResponse(null,request)},cleanupErrorHandling:function(request){request.script.onerror=null},handleTimeout:function(request){request.errorType="timeout";this.handleResponse(null,request)},handleResponse:function(result,request){var success=true;if(request.timeout){clearTimeout(request.timeout)}delete this[request.callbackName];delete this.statics()[request.id];this.cleanupErrorHandling(request);Ext.fly(request.script).remove();if(request.errorType){success=false;Ext.callback(request.failure,request.scope,[request.errorType])}else{Ext.callback(request.success,request.scope,[result])}Ext.callback(request.callback,request.scope,[success,result,request.errorType])},createScript:function(url,params){var script=document.createElement("script");script.setAttribute("src",Ext.urlAppend(url,Ext.Object.toQueryString(params)));script.setAttribute("async",true);script.setAttribute("type","text/javascript");return script}});Ext.define("Ext.data.JsonPStore",{extend:"Ext.data.Store",alias:"store.jsonp",constructor:function(config){this.callParent(Ext.apply(config,{reader:Ext.create("Ext.data.reader.Json",config),proxy:Ext.create("Ext.data.proxy.JsonP",config)}))}});Ext.define("Ext.data.NodeInterface",{requires:["Ext.data.Field"],statics:{decorate:function(record){if(!record.isNode){var mgr=Ext.ModelManager,modelName=record.modelName,modelClass=mgr.getModel(modelName),idName=modelClass.prototype.idProperty,newFields=[],i,newField,len;modelClass.override(this.getPrototypeBody());newFields=this.applyFields(modelClass,[{name:idName,type:"string",defaultValue:null},{name:"parentId",type:"string",defaultValue:null},{name:"index",type:"int",defaultValue:null},{name:"depth",type:"int",defaultValue:0},{name:"expanded",type:"bool",defaultValue:false,persist:false},{name:"expandable",type:"bool",defaultValue:true,persist:false},{name:"checked",type:"auto",defaultValue:null},{name:"leaf",type:"bool",defaultValue:false,persist:false},{name:"cls",type:"string",defaultValue:null,persist:false},{name:"iconCls",type:"string",defaultValue:null,persist:false},{name:"icon",type:"string",defaultValue:null,persist:false},{name:"root",type:"boolean",defaultValue:false,persist:false},{name:"isLast",type:"boolean",defaultValue:false,persist:false},{name:"isFirst",type:"boolean",defaultValue:false,persist:false},{name:"allowDrop",type:"boolean",defaultValue:true,persist:false},{name:"allowDrag",type:"boolean",defaultValue:true,persist:false},{name:"loaded",type:"boolean",defaultValue:false,persist:false},{name:"loading",type:"boolean",defaultValue:false,persist:false},{name:"href",type:"string",defaultValue:null,persist:false},{name:"hrefTarget",type:"string",defaultValue:null,persist:false},{name:"qtip",type:"string",defaultValue:null,persist:false},{name:"qtitle",type:"string",defaultValue:null,persist:false}]);len=newFields.length;for(i=0;i<len;++i){newField=newFields[i];if(record.get(newField.name)===undefined){record.data[newField.name]=newField.defaultValue}}}Ext.applyIf(record,{firstChild:null,lastChild:null,parentNode:null,previousSibling:null,nextSibling:null,childNodes:[]});record.commit(true);record.enableBubble(["append","remove","move","insert","beforeappend","beforeremove","beforemove","beforeinsert","expand","collapse","beforeexpand","beforecollapse","sort"]);return record},applyFields:function(modelClass,addFields){var modelPrototype=modelClass.prototype,fields=modelPrototype.fields,keys=fields.keys,ln=addFields.length,addField,i,name,newFields=[];for(i=0;i<ln;i++){addField=addFields[i];if(!Ext.Array.contains(keys,addField.name)){addField=Ext.create("data.field",addField);newFields.push(addField);fields.add(addField)}}return newFields},getPrototypeBody:function(){return{isNode:true,createNode:function(node){if(Ext.isObject(node)&&!node.isModel){node=Ext.ModelManager.create(node,this.modelName)}return Ext.data.NodeInterface.decorate(node)},isLeaf:function(){return this.get("leaf")===true},setFirstChild:function(node){this.firstChild=node},setLastChild:function(node){this.lastChild=node},updateInfo:function(silent){var me=this,isRoot=me.isRoot(),parentNode=me.parentNode,isFirst=(!parentNode?true:parentNode.firstChild==me),isLast=(!parentNode?true:parentNode.lastChild==me),depth=0,parent=me,children=me.childNodes,len=children.length,i=0;while(parent.parentNode){++depth;parent=parent.parentNode}me.beginEdit();me.set({isFirst:isFirst,isLast:isLast,depth:depth,index:parentNode?parentNode.indexOf(me):0,parentId:parentNode?parentNode.getId():null});me.endEdit(silent);if(silent){me.commit()}for(i=0;i<len;i++){children[i].updateInfo(silent)}},isLast:function(){return this.get("isLast")},isFirst:function(){return this.get("isFirst")},hasChildNodes:function(){return !this.isLeaf()&&this.childNodes.length>0},isExpandable:function(){var me=this;if(me.get("expandable")){return !(me.isLeaf()||(me.isLoaded()&&!me.hasChildNodes()))}return false},appendChild:function(node,suppressEvents,suppressNodeUpdate){var me=this,i,ln,index,oldParent,ps;if(Ext.isArray(node)){for(i=0,ln=node.length;i<ln;i++){me.appendChild(node[i])}}else{node=me.createNode(node);if(suppressEvents!==true&&me.fireEvent("beforeappend",me,node)===false){return false}index=me.childNodes.length;oldParent=node.parentNode;if(oldParent){if(suppressEvents!==true&&node.fireEvent("beforemove",node,oldParent,me,index)===false){return false}oldParent.removeChild(node,null,false,true)}index=me.childNodes.length;if(index===0){me.setFirstChild(node)}me.childNodes.push(node);node.parentNode=me;node.nextSibling=null;me.setLastChild(node);ps=me.childNodes[index-1];if(ps){node.previousSibling=ps;ps.nextSibling=node;ps.updateInfo(suppressNodeUpdate)}else{node.previousSibling=null}node.updateInfo(suppressNodeUpdate);if(!me.isLoaded()){me.set("loaded",true)}else{if(me.childNodes.length===1){me.set("loaded",me.isLoaded())}}if(suppressEvents!==true){me.fireEvent("append",me,node,index);if(oldParent){node.fireEvent("move",node,oldParent,me,index)}}return node}},getBubbleTarget:function(){return this.parentNode},removeChild:function(node,destroy,suppressEvents,suppressNodeUpdate){var me=this,index=me.indexOf(node);if(index==-1||(suppressEvents!==true&&me.fireEvent("beforeremove",me,node)===false)){return false}Ext.Array.erase(me.childNodes,index,1);if(me.firstChild==node){me.setFirstChild(node.nextSibling)}if(me.lastChild==node){me.setLastChild(node.previousSibling)}if(node.previousSibling){node.previousSibling.nextSibling=node.nextSibling;node.previousSibling.updateInfo(suppressNodeUpdate)}if(node.nextSibling){node.nextSibling.previousSibling=node.previousSibling;node.nextSibling.updateInfo(suppressNodeUpdate)}if(suppressEvents!==true){me.fireEvent("remove",me,node)}if(!me.childNodes.length){me.set("loaded",me.isLoaded())}if(destroy){node.destroy(true)}else{node.clear()}return node},copy:function(newId,deep){var me=this,result=me.callOverridden(arguments),len=me.childNodes?me.childNodes.length:0,i;if(deep){for(i=0;i<len;i++){result.appendChild(me.childNodes[i].copy(true))}}return result},clear:function(destroy){var me=this;me.parentNode=me.previousSibling=me.nextSibling=null;if(destroy){me.firstChild=me.lastChild=null}},destroy:function(silent){var me=this,options=me.destroyOptions;if(silent===true){me.clear(true);Ext.each(me.childNodes,function(n){n.destroy(true)});me.childNodes=null;delete me.destroyOptions;me.callOverridden([options])}else{me.destroyOptions=silent;me.remove(true)}},insertBefore:function(node,refNode,suppressEvents){var me=this,index=me.indexOf(refNode),oldParent=node.parentNode,refIndex=index,ps;if(!refNode){return me.appendChild(node)}if(node==refNode){return false}node=me.createNode(node);if(suppressEvents!==true&&me.fireEvent("beforeinsert",me,node,refNode)===false){return false}if(oldParent==me&&me.indexOf(node)<index){refIndex--}if(oldParent){if(suppressEvents!==true&&node.fireEvent("beforemove",node,oldParent,me,index,refNode)===false){return false}oldParent.removeChild(node)}if(refIndex===0){me.setFirstChild(node)}Ext.Array.splice(me.childNodes,refIndex,0,node);node.parentNode=me;node.nextSibling=refNode;refNode.previousSibling=node;ps=me.childNodes[refIndex-1];if(ps){node.previousSibling=ps;ps.nextSibling=node;ps.updateInfo()}else{node.previousSibling=null}node.updateInfo();if(!me.isLoaded()){me.set("loaded",true)}else{if(me.childNodes.length===1){me.set("loaded",me.isLoaded())}}if(suppressEvents!==true){me.fireEvent("insert",me,node,refNode);if(oldParent){node.fireEvent("move",node,oldParent,me,refIndex,refNode)}}return node},insertChild:function(index,node){var sibling=this.childNodes[index];if(sibling){return this.insertBefore(node,sibling)}else{return this.appendChild(node)}},remove:function(destroy,suppressEvents){var parentNode=this.parentNode;if(parentNode){parentNode.removeChild(this,destroy,suppressEvents,true)}return this},removeAll:function(destroy,suppressEvents){var cn=this.childNodes,n;while((n=cn[0])){this.removeChild(n,destroy,suppressEvents)}return this},getChildAt:function(index){return this.childNodes[index]},replaceChild:function(newChild,oldChild,suppressEvents){var s=oldChild?oldChild.nextSibling:null;this.removeChild(oldChild,suppressEvents);this.insertBefore(newChild,s,suppressEvents);return oldChild},indexOf:function(child){return Ext.Array.indexOf(this.childNodes,child)},getPath:function(field,separator){field=field||this.idProperty;separator=separator||"/";var path=[this.get(field)],parent=this.parentNode;while(parent){path.unshift(parent.get(field));parent=parent.parentNode}return separator+path.join(separator)},getDepth:function(){return this.get("depth")},bubble:function(fn,scope,args){var p=this;while(p){if(fn.apply(scope||p,args||[p])===false){break}p=p.parentNode}},cascade:function(){if(Ext.isDefined(Ext.global.console)){Ext.global.console.warn("Ext.data.Node: cascade has been deprecated. Please use cascadeBy instead.")}return this.cascadeBy.apply(this,arguments)},cascadeBy:function(fn,scope,args){if(fn.apply(scope||this,args||[this])!==false){var childNodes=this.childNodes,length=childNodes.length,i;for(i=0;i<length;i++){childNodes[i].cascadeBy(fn,scope,args)}}},eachChild:function(fn,scope,args){var childNodes=this.childNodes,length=childNodes.length,i;for(i=0;i<length;i++){if(fn.apply(scope||this,args||[childNodes[i]])===false){break}}},findChild:function(attribute,value,deep){return this.findChildBy(function(){return this.get(attribute)==value},null,deep)},findChildBy:function(fn,scope,deep){var cs=this.childNodes,len=cs.length,i=0,n,res;for(;i<len;i++){n=cs[i];if(fn.call(scope||n,n)===true){return n}else{if(deep){res=n.findChildBy(fn,scope,deep);if(res!==null){return res}}}}return null},contains:function(node){return node.isAncestor(this)},isAncestor:function(node){var p=this.parentNode;while(p){if(p==node){return true}p=p.parentNode}return false},sort:function(sortFn,recursive,suppressEvent){var cs=this.childNodes,ln=cs.length,i,n;if(ln>0){Ext.Array.sort(cs,sortFn);for(i=0;i<ln;i++){n=cs[i];n.previousSibling=cs[i-1];n.nextSibling=cs[i+1];if(i===0){this.setFirstChild(n);n.updateInfo()}if(i==ln-1){this.setLastChild(n);n.updateInfo()}if(recursive&&!n.isLeaf()){n.sort(sortFn,true,true)}}if(suppressEvent!==true){this.fireEvent("sort",this,cs)}}},isExpanded:function(){return this.get("expanded")},isLoaded:function(){return this.get("loaded")},isLoading:function(){return this.get("loading")},isRoot:function(){return !this.parentNode},isVisible:function(){var parent=this.parentNode;while(parent){if(!parent.isExpanded()){return false}parent=parent.parentNode}return true},expand:function(recursive,callback,scope){var me=this;if(!me.isLeaf()){if(me.isLoading()){me.on("expand",function(){me.expand(recursive,callback,scope)},me,{single:true})}else{if(!me.isExpanded()){me.fireEvent("beforeexpand",me,function(){me.set("expanded",true);me.fireEvent("expand",me,me.childNodes,false);if(recursive){me.expandChildren(true,callback,scope)}else{Ext.callback(callback,scope||me,[me.childNodes])}},me)}else{if(recursive){me.expandChildren(true,callback,scope)}else{Ext.callback(callback,scope||me,[me.childNodes])}}}}else{Ext.callback(callback,scope||me)}},expandChildren:function(recursive,callback,scope){var me=this,i=0,nodes=me.childNodes,ln=nodes.length,node,expanding=0;for(;i<ln;++i){node=nodes[i];if(!node.isLeaf()&&!node.isExpanded()){expanding++;nodes[i].expand(recursive,function(){expanding--;if(callback&&!expanding){Ext.callback(callback,scope||me,[me.childNodes])}})}}if(!expanding&&callback){Ext.callback(callback,scope||me,[me.childNodes])}},collapse:function(recursive,callback,scope){var me=this;if(!me.isLeaf()){if(!me.collapsing&&me.isExpanded()){me.fireEvent("beforecollapse",me,function(){me.set("expanded",false);me.fireEvent("collapse",me,me.childNodes,false);if(recursive){me.collapseChildren(true,callback,scope)}else{Ext.callback(callback,scope||me,[me.childNodes])}},me)}else{if(recursive){me.collapseChildren(true,callback,scope)}}}else{Ext.callback(callback,scope||me,[me.childNodes])}},collapseChildren:function(recursive,callback,scope){var me=this,i=0,nodes=me.childNodes,ln=nodes.length,node,collapsing=0;for(;i<ln;++i){node=nodes[i];if(!node.isLeaf()&&node.isExpanded()){collapsing++;nodes[i].collapse(recursive,function(){collapsing--;if(callback&&!collapsing){Ext.callback(callback,scope||me,[me.childNodes])}})}}if(!collapsing&&callback){Ext.callback(callback,scope||me,[me.childNodes])}}}}}});Ext.define("Ext.data.NodeStore",{extend:"Ext.data.Store",alias:"store.node",requires:["Ext.data.NodeInterface"],node:null,recursive:false,rootVisible:false,constructor:function(config){var me=this,node;config=config||{};Ext.apply(me,config);config.proxy={type:"proxy"};me.callParent([config]);me.addEvents("expand","collapse","beforeexpand","beforecollapse");node=me.node;if(node){me.node=null;me.setNode(node)}},setNode:function(node){var me=this;if(me.node&&me.node!=node){me.mun(me.node,{expand:me.onNodeExpand,collapse:me.onNodeCollapse,append:me.onNodeAppend,insert:me.onNodeInsert,remove:me.onNodeRemove,sort:me.onNodeSort,scope:me});me.node=null}if(node){Ext.data.NodeInterface.decorate(node);me.removeAll();if(me.rootVisible){me.add(node)}me.mon(node,{expand:me.onNodeExpand,collapse:me.onNodeCollapse,append:me.onNodeAppend,insert:me.onNodeInsert,remove:me.onNodeRemove,sort:me.onNodeSort,scope:me});me.node=node;if(node.isExpanded()&&node.isLoaded()){me.onNodeExpand(node,node.childNodes,true)}}},onNodeSort:function(node,childNodes){var me=this;if((me.indexOf(node)!==-1||(node===me.node&&!me.rootVisible)&&node.isExpanded())){me.onNodeCollapse(node,childNodes,true);me.onNodeExpand(node,childNodes,true)}},onNodeExpand:function(parent,records,suppressEvent){var me=this,insertIndex=me.indexOf(parent)+1,ln=records?records.length:0,i,record;if(!me.recursive&&parent!==me.node){return}if(!me.isVisible(parent)){return}if(!suppressEvent&&me.fireEvent("beforeexpand",parent,records,insertIndex)===false){return}if(ln){me.insert(insertIndex,records);for(i=0;i<ln;i++){record=records[i];if(record.isExpanded()){if(record.isLoaded()){me.onNodeExpand(record,record.childNodes,true)}else{record.set("expanded",false);record.expand()}}}}if(!suppressEvent){me.fireEvent("expand",parent,records)}},onNodeCollapse:function(parent,records,suppressEvent){var me=this,ln=records.length,collapseIndex=me.indexOf(parent)+1,i,record;if(!me.recursive&&parent!==me.node){return}if(!suppressEvent&&me.fireEvent("beforecollapse",parent,records,collapseIndex)===false){return}for(i=0;i<ln;i++){record=records[i];me.remove(record);if(record.isExpanded()){me.onNodeCollapse(record,record.childNodes,true)}}if(!suppressEvent){me.fireEvent("collapse",parent,records,collapseIndex)}},onNodeAppend:function(parent,node,index){var me=this,refNode,sibling;if(me.isVisible(node)){if(index===0){refNode=parent}else{sibling=node.previousSibling;while(sibling.isExpanded()&&sibling.lastChild){sibling=sibling.lastChild}refNode=sibling}me.insert(me.indexOf(refNode)+1,node);if(!node.isLeaf()&&node.isExpanded()){if(node.isLoaded()){me.onNodeExpand(node,node.childNodes,true)}else{node.set("expanded",false);node.expand()}}}},onNodeInsert:function(parent,node,refNode){var me=this,index=this.indexOf(refNode);if(index!=-1&&me.isVisible(node)){me.insert(index,node);if(!node.isLeaf()&&node.isExpanded()){if(node.isLoaded()){me.onNodeExpand(node,node.childNodes,true)}else{node.set("expanded",false);node.expand()}}}},onNodeRemove:function(parent,node,index){var me=this;if(me.indexOf(node)!=-1){if(!node.isLeaf()&&node.isExpanded()){me.onNodeCollapse(node,node.childNodes,true)}me.remove(node)}},isVisible:function(node){var parent=node.parentNode;while(parent){if(parent===this.node&&!this.rootVisible&&parent.isExpanded()){return true}if(this.indexOf(parent)===-1||!parent.isExpanded()){return false}parent=parent.parentNode}return true}});Ext.define("Ext.data.Request",{action:undefined,params:undefined,method:"GET",url:undefined,constructor:function(config){Ext.apply(this,config)}});Ext.define("Ext.data.SequentialIdGenerator",{extend:"Ext.data.IdGenerator",alias:"idgen.sequential",constructor:function(){var me=this;me.callParent(arguments);me.parts=[me.prefix,""]},prefix:"",seed:1,generate:function(){var me=this,parts=me.parts;parts[1]=me.seed++;return parts.join("")}});Ext.define("Ext.data.Tree",{alias:"data.tree",mixins:{observable:"Ext.util.Observable"},root:null,constructor:function(root){var me=this;me.mixins.observable.constructor.call(me);if(root){me.setRootNode(root)}},getRootNode:function(){return this.root},setRootNode:function(node){var me=this;me.root=node;Ext.data.NodeInterface.decorate(node);if(me.fireEvent("beforeappend",null,node)!==false){node.set("root",true);node.updateInfo();me.relayEvents(node,["append","remove","move","insert","beforeappend","beforeremove","beforemove","beforeinsert","expand","collapse","beforeexpand","beforecollapse","rootchange"]);node.on({scope:me,insert:me.onNodeInsert,append:me.onNodeAppend,remove:me.onNodeRemove});me.nodeHash={};me.registerNode(node);me.fireEvent("append",null,node);me.fireEvent("rootchange",node)}return node},flatten:function(){var nodes=[],hash=this.nodeHash,key;for(key in hash){if(hash.hasOwnProperty(key)){nodes.push(hash[key])}}return nodes},onNodeInsert:function(parent,node){this.registerNode(node,true)},onNodeAppend:function(parent,node){this.registerNode(node,true)},onNodeRemove:function(parent,node){this.unregisterNode(node,true)},getNodeById:function(id){return this.nodeHash[id]},registerNode:function(node,includeChildren){this.nodeHash[node.getId()||node.internalId]=node;if(includeChildren===true){node.eachChild(function(child){this.registerNode(child,true)},this)}},unregisterNode:function(node,includeChildren){delete this.nodeHash[node.getId()||node.internalId];if(includeChildren===true){node.eachChild(function(child){this.unregisterNode(child,true)},this)}},sort:function(sorterFn,recursive){this.getRootNode().sort(sorterFn,recursive)},filter:function(filters,recursive){this.getRootNode().filter(filters,recursive)}});Ext.define("Ext.data.TreeStore",{extend:"Ext.data.AbstractStore",alias:"store.tree",requires:["Ext.data.Tree","Ext.data.NodeInterface","Ext.data.NodeStore"],clearOnLoad:true,nodeParam:"node",defaultRootId:"root",defaultRootProperty:"children",folderSort:false,constructor:function(config){var me=this,root,fields;config=Ext.apply({},config);fields=config.fields||me.fields;if(!fields){config.fields=[{name:"text",type:"string"}]}me.callParent([config]);me.tree=Ext.create("Ext.data.Tree");me.relayEvents(me.tree,["append","remove","move","insert","beforeappend","beforeremove","beforemove","beforeinsert","expand","collapse","beforeexpand","beforecollapse","rootchange"]);me.tree.on({scope:me,remove:me.onNodeRemove,beforeexpand:me.onBeforeNodeExpand,beforecollapse:me.onBeforeNodeCollapse,append:me.onNodeAdded,insert:me.onNodeAdded});me.onBeforeSort();root=me.root;if(root){delete me.root;me.setRootNode(root)}me.addEvents("sort");if(Ext.isDefined(me.nodeParameter)){if(Ext.isDefined(Ext.global.console)){Ext.global.console.warn("Ext.data.TreeStore: nodeParameter has been deprecated. Please use nodeParam instead.")}me.nodeParam=me.nodeParameter;delete me.nodeParameter}},setProxy:function(proxy){var reader,needsRoot;if(proxy instanceof Ext.data.proxy.Proxy){needsRoot=Ext.isEmpty(proxy.getReader().root)}else{if(Ext.isString(proxy)){needsRoot=true}else{reader=proxy.reader;needsRoot=!(reader&&!Ext.isEmpty(reader.root))}}proxy=this.callParent(arguments);if(needsRoot){reader=proxy.getReader();reader.root=this.defaultRootProperty;reader.buildExtractors(true)}},onBeforeSort:function(){if(this.folderSort){this.sort({property:"leaf",direction:"ASC"},"prepend",false)}},onBeforeNodeExpand:function(node,callback,scope){if(node.isLoaded()){Ext.callback(callback,scope||node,[node.childNodes])}else{if(node.isLoading()){this.on("load",function(){Ext.callback(callback,scope||node,[node.childNodes])},this,{single:true})}else{this.read({node:node,callback:function(){Ext.callback(callback,scope||node,[node.childNodes])}})}}},getNewRecords:function(){return Ext.Array.filter(this.tree.flatten(),this.filterNew)},getUpdatedRecords:function(){return Ext.Array.filter(this.tree.flatten(),this.filterUpdated)},onBeforeNodeCollapse:function(node,callback,scope){callback.call(scope||node,node.childNodes)},onNodeRemove:function(parent,node){var removed=this.removed;if(!node.isReplace&&Ext.Array.indexOf(removed,node)==-1){removed.push(node)}},onNodeAdded:function(parent,node){var proxy=this.getProxy(),reader=proxy.getReader(),data=node.raw||node.data,dataRoot,children;Ext.Array.remove(this.removed,node);if(!node.isLeaf()&&!node.isLoaded()){dataRoot=reader.getRoot(data);if(dataRoot){this.fillNode(node,reader.extractData(dataRoot));delete data[reader.root]}}},setRootNode:function(root){var me=this;root=root||{};if(!root.isNode){Ext.applyIf(root,{id:me.defaultRootId,text:"Root",allowDrag:false});root=Ext.ModelManager.create(root,me.model)}Ext.data.NodeInterface.decorate(root);me.getProxy().getReader().buildExtractors(true);me.tree.setRootNode(root);if(!root.isLoaded()&&(me.autoLoad===true||root.isExpanded())){me.load({node:root})}return root},getRootNode:function(){return this.tree.getRootNode()},getNodeById:function(id){return this.tree.getNodeById(id)},load:function(options){options=options||{};options.params=options.params||{};var me=this,node=options.node||me.tree.getRootNode(),root;if(!node){node=me.setRootNode({expanded:true})}if(me.clearOnLoad){node.removeAll(true)}Ext.applyIf(options,{node:node});options.params[me.nodeParam]=node?node.getId():"root";if(node){node.set("loading",true)}return me.callParent([options])},fillNode:function(node,records){var me=this,ln=records?records.length:0,i=0,sortCollection;if(ln&&me.sortOnLoad&&!me.remoteSort&&me.sorters&&me.sorters.items){sortCollection=Ext.create("Ext.util.MixedCollection");sortCollection.addAll(records);sortCollection.sort(me.sorters.items);records=sortCollection.items}node.set("loaded",true);for(;i<ln;i++){node.appendChild(records[i],undefined,true)}return records},onProxyLoad:function(operation){var me=this,successful=operation.wasSuccessful(),records=operation.getRecords(),node=operation.node;me.loading=false;node.set("loading",false);if(successful){records=me.fillNode(node,records)}me.fireEvent("read",me,operation.node,records,successful);me.fireEvent("load",me,operation.node,records,successful);Ext.callback(operation.callback,operation.scope||me,[records,operation,successful])},onCreateRecords:function(records,operation,success){if(success){var i=0,length=records.length,originalRecords=operation.records,parentNode,record,original,index;for(;i<length;++i){record=records[i];original=originalRecords[i];if(original){parentNode=original.parentNode;if(parentNode){original.isReplace=true;parentNode.replaceChild(record,original);delete original.isReplace}record.phantom=false}}}},onUpdateRecords:function(records,operation,success){if(success){var me=this,i=0,length=records.length,data=me.data,original,parentNode,record;for(;i<length;++i){record=records[i];original=me.tree.getNodeById(record.getId());parentNode=original.parentNode;if(parentNode){original.isReplace=true;parentNode.replaceChild(record,original);original.isReplace=false}}}},onDestroyRecords:function(records,operation,success){if(success){this.removed=[]}},removeAll:function(){this.getRootNode().destroy(true);this.fireEvent("clear",this)},doSort:function(sorterFn){var me=this;if(me.remoteSort){me.load()}else{me.tree.sort(sorterFn,true);me.fireEvent("datachanged",me)}me.fireEvent("sort",me)}});Ext.define("Ext.data.UuidGenerator",function(){var twoPow14=Math.pow(2,14),twoPow16=Math.pow(2,16),twoPow28=Math.pow(2,28),twoPow32=Math.pow(2,32);function toHex(value,length){var ret=value.toString(16);if(ret.length>length){ret=ret.substring(ret.length-length)}else{if(ret.length<length){ret=Ext.String.leftPad(ret,length,"0")}}return ret}function rand(lo,hi){var v=Math.random()*(hi-lo+1);return Math.floor(v)+lo}function split(bignum){if(typeof(bignum)=="number"){var hi=Math.floor(bignum/twoPow32);return{lo:Math.floor(bignum-hi*twoPow32),hi:hi}}return bignum}return{extend:"Ext.data.IdGenerator",alias:"idgen.uuid",id:"uuid",version:4,constructor:function(){var me=this;me.callParent(arguments);me.parts=[];me.init()},generate:function(){var me=this,parts=me.parts,ts=me.timestamp;parts[0]=toHex(ts.lo,8);parts[1]=toHex(ts.hi&65535,4);parts[2]=toHex(((ts.hi>>>16)&4095)|(me.version<<12),4);parts[3]=toHex(128|((me.clockSeq>>>8)&63),2)+toHex(me.clockSeq&255,2);parts[4]=toHex(me.salt.hi,4)+toHex(me.salt.lo,8);if(me.version==4){me.init()}else{++ts.lo;if(ts.lo>=twoPow32){ts.lo=0;++ts.hi}}return parts.join("-").toLowerCase()},getRecId:function(rec){return rec.getId()},init:function(){var me=this,salt,time;if(me.version==4){me.clockSeq=rand(0,twoPow14-1);salt=me.salt||(me.salt={});time=me.timestamp||(me.timestamp={});salt.lo=rand(0,twoPow32-1);salt.hi=rand(0,twoPow16-1);time.lo=rand(0,twoPow32-1);time.hi=rand(0,twoPow28-1)}else{me.salt=split(me.salt);me.timestamp=split(me.timestamp);me.salt.hi|=256}},reconfigure:function(config){Ext.apply(this,config);this.init()}}}());Ext.define("Ext.data.XmlStore",{extend:"Ext.data.Store",alternateClassName:"Ext.data.XmlStore",alias:"store.xml",constructor:function(config){config=config||{};config=config||{};Ext.applyIf(config,{proxy:{type:"ajax",reader:"xml",writer:"xml"}});this.callParent([config])}});Ext.define("Ext.data.proxy.Client",{extend:"Ext.data.proxy.Proxy",alternateClassName:"Ext.data.ClientProxy",clear:function(){}});Ext.define("Ext.data.proxy.JsonP",{extend:"Ext.data.proxy.Server",alternateClassName:"Ext.data.ScriptTagProxy",alias:["proxy.jsonp","proxy.scripttag"],requires:["Ext.data.JsonP"],defaultWriterType:"base",callbackKey:"callback",recordParam:"records",autoAppendParams:true,constructor:function(){this.addEvents("exception");this.callParent(arguments)},doRequest:function(operation,callback,scope){var me=this,writer=me.getWriter(),request=me.buildRequest(operation),params=request.params;if(operation.allowWrite()){request=writer.write(request)}Ext.apply(request,{callbackKey:me.callbackKey,timeout:me.timeout,scope:me,disableCaching:false,callback:me.createRequestCallback(request,operation,callback,scope)});if(me.autoAppendParams){request.params={}}request.jsonp=Ext.data.JsonP.request(request);request.params=params;operation.setStarted();me.lastRequest=request;return request},createRequestCallback:function(request,operation,callback,scope){var me=this;return function(success,response,errorType){delete me.lastRequest;me.processResponse(success,operation,request,response,callback,scope)}},setException:function(operation,response){operation.setException(operation.request.jsonp.errorType)},buildUrl:function(request){var me=this,url=me.callParent(arguments),params=Ext.apply({},request.params),filters=params.filters,records,filter,i;delete params.filters;if(me.autoAppendParams){url=Ext.urlAppend(url,Ext.Object.toQueryString(params))}if(filters&&filters.length){for(i=0;i<filters.length;i++){filter=filters[i];if(filter.value){url=Ext.urlAppend(url,filter.property+"="+filter.value)}}}records=request.records;if(Ext.isArray(records)&&records.length>0){url=Ext.urlAppend(url,Ext.String.format("{0}={1}",me.recordParam,me.encodeRecords(records)))}return url},destroy:function(){this.abort();this.callParent()},abort:function(){var lastRequest=this.lastRequest;if(lastRequest){Ext.data.JsonP.abort(lastRequest.jsonp)}},encodeRecords:function(records){var encoded="",i=0,len=records.length;for(;i<len;i++){encoded+=Ext.Object.toQueryString(records[i].data)}return encoded}});Ext.define("Ext.data.proxy.WebStorage",{extend:"Ext.data.proxy.Client",alternateClassName:"Ext.data.WebStorageProxy",id:undefined,constructor:function(config){this.callParent(arguments);this.cache={};this.id=this.id||(this.store?this.store.storeId:undefined);this.initialize()},create:function(operation,callback,scope){var records=operation.records,length=records.length,ids=this.getIds(),id,record,i;operation.setStarted();for(i=0;i<length;i++){record=records[i];if(record.phantom){record.phantom=false;id=this.getNextId()}else{id=record.getId()}this.setRecord(record,id);ids.push(id)}this.setIds(ids);operation.setCompleted();operation.setSuccessful();if(typeof callback=="function"){callback.call(scope||this,operation)}},read:function(operation,callback,scope){var records=[],ids=this.getIds(),length=ids.length,i,recordData,record;if(operation.id){record=this.getRecord(operation.id);if(record){records.push(record);operation.setSuccessful()}}else{for(i=0;i<length;i++){records.push(this.getRecord(ids[i]))}operation.setSuccessful()}operation.setCompleted();operation.resultSet=Ext.create("Ext.data.ResultSet",{records:records,total:records.length,loaded:true});if(typeof callback=="function"){callback.call(scope||this,operation)}},update:function(operation,callback,scope){var records=operation.records,length=records.length,ids=this.getIds(),record,id,i;operation.setStarted();for(i=0;i<length;i++){record=records[i];this.setRecord(record);id=record.getId();if(id!==undefined&&Ext.Array.indexOf(ids,id)==-1){ids.push(id)}}this.setIds(ids);operation.setCompleted();operation.setSuccessful();if(typeof callback=="function"){callback.call(scope||this,operation)}},destroy:function(operation,callback,scope){var records=operation.records,length=records.length,ids=this.getIds(),newIds=[].concat(ids),i;for(i=0;i<length;i++){Ext.Array.remove(newIds,records[i].getId());this.removeRecord(records[i],false)}this.setIds(newIds);operation.setCompleted();operation.setSuccessful();if(typeof callback=="function"){callback.call(scope||this,operation)}},getRecord:function(id){if(this.cache[id]===undefined){var rawData=Ext.decode(this.getStorageObject().getItem(this.getRecordKey(id))),data={},Model=this.model,fields=Model.prototype.fields.items,length=fields.length,i,field,name,record;for(i=0;i<length;i++){field=fields[i];name=field.name;if(typeof field.decode=="function"){data[name]=field.decode(rawData[name])}else{data[name]=rawData[name]}}record=new Model(data,id);record.phantom=false;this.cache[id]=record}return this.cache[id]},setRecord:function(record,id){if(id){record.setId(id)}else{id=record.getId()}var me=this,rawData=record.data,data={},model=me.model,fields=model.prototype.fields.items,length=fields.length,i=0,field,name,obj,key;for(;i<length;i++){field=fields[i];name=field.name;if(typeof field.encode=="function"){data[name]=field.encode(rawData[name],record)}else{data[name]=rawData[name]}}obj=me.getStorageObject();key=me.getRecordKey(id);me.cache[id]=record;obj.removeItem(key);obj.setItem(key,Ext.encode(data))},removeRecord:function(id,updateIds){var me=this,ids;if(id.isModel){id=id.getId()}if(updateIds!==false){ids=me.getIds();Ext.Array.remove(ids,id);me.setIds(ids)}me.getStorageObject().removeItem(me.getRecordKey(id))},getRecordKey:function(id){if(id.isModel){id=id.getId()}return Ext.String.format("{0}-{1}",this.id,id)},getRecordCounterKey:function(){return Ext.String.format("{0}-counter",this.id)},getIds:function(){var ids=(this.getStorageObject().getItem(this.id)||"").split(","),length=ids.length,i;if(length==1&&ids[0]===""){ids=[]}else{for(i=0;i<length;i++){ids[i]=parseInt(ids[i],10)}}return ids},setIds:function(ids){var obj=this.getStorageObject(),str=ids.join(",");obj.removeItem(this.id);if(!Ext.isEmpty(str)){obj.setItem(this.id,str)}},getNextId:function(){var obj=this.getStorageObject(),key=this.getRecordCounterKey(),last=obj.getItem(key),ids,id;if(last===null){ids=this.getIds();last=ids[ids.length-1]||0}id=parseInt(last,10)+1;obj.setItem(key,id);return id},initialize:function(){var storageObject=this.getStorageObject();storageObject.setItem(this.id,storageObject.getItem(this.id)||"")},clear:function(){var obj=this.getStorageObject(),ids=this.getIds(),len=ids.length,i;for(i=0;i<len;i++){this.removeRecord(ids[i])}obj.removeItem(this.getRecordCounterKey());obj.removeItem(this.id)},getStorageObject:function(){}});Ext.define("Ext.data.proxy.LocalStorage",{extend:"Ext.data.proxy.WebStorage",alias:"proxy.localstorage",alternateClassName:"Ext.data.LocalStorageProxy",getStorageObject:function(){return window.localStorage}});Ext.define("Ext.data.proxy.Memory",{extend:"Ext.data.proxy.Client",alias:"proxy.memory",alternateClassName:"Ext.data.MemoryProxy",constructor:function(config){this.callParent([config]);this.setReader(this.reader)},read:function(operation,callback,scope){var me=this,reader=me.getReader(),result=reader.read(me.data);Ext.apply(operation,{resultSet:result});operation.setCompleted();operation.setSuccessful();Ext.callback(callback,scope||me,[operation])},clear:Ext.emptyFn});Ext.define("Ext.data.proxy.Rest",{extend:"Ext.data.proxy.Ajax",alternateClassName:"Ext.data.RestProxy",alias:"proxy.rest",appendId:true,batchActions:false,buildUrl:function(request){var me=this,operation=request.operation,records=operation.records||[],record=records[0],format=me.format,url=me.getUrl(request),id=record?record.getId():operation.id;if(me.appendId&&id){if(!url.match(/\/$/)){url+="/"}url+=id}if(format){if(!url.match(/\.$/)){url+="."}url+=format}request.url=url;return me.callParent(arguments)}},function(){Ext.apply(this.prototype,{actionMethods:{create:"POST",read:"GET",update:"PUT",destroy:"DELETE"}})});Ext.define("Ext.data.proxy.SessionStorage",{extend:"Ext.data.proxy.WebStorage",alias:"proxy.sessionstorage",alternateClassName:"Ext.data.SessionStorageProxy",getStorageObject:function(){return window.sessionStorage}});Ext.define("Ext.data.reader.Array",{extend:"Ext.data.reader.Json",alternateClassName:"Ext.data.ArrayReader",alias:"reader.array",buildExtractors:function(){this.callParent(arguments);var fields=this.model.prototype.fields.items,i=0,length=fields.length,extractorFunctions=[],map;for(;i<length;i++){map=fields[i].mapping;extractorFunctions.push(function(index){return function(data){return data[index]}}(map!==null?map:i))}this.extractorFunctions=extractorFunctions}});Ext.define("Ext.data.reader.Xml",{extend:"Ext.data.reader.Reader",alternateClassName:"Ext.data.XmlReader",alias:"reader.xml",createAccessor:function(expr){var me=this;if(Ext.isEmpty(expr)){return Ext.emptyFn}if(Ext.isFunction(expr)){return expr}return function(root){return me.getNodeValue(Ext.DomQuery.selectNode(expr,root))}},getNodeValue:function(node){if(node&&node.firstChild){return node.firstChild.nodeValue}return undefined},getResponseData:function(response){var xml=response.responseXML;return xml},getData:function(data){return data.documentElement||data},getRoot:function(data){var nodeName=data.nodeName,root=this.root;if(!root||(nodeName&&nodeName==root)){return data}else{if(Ext.DomQuery.isXml(data)){return Ext.DomQuery.selectNode(root,data)}}},extractData:function(root){var recordName=this.record;if(recordName!=root.nodeName){root=Ext.DomQuery.select(recordName,root)}else{root=[root]}return this.callParent([root])},getAssociatedDataRoot:function(data,associationName){return Ext.DomQuery.select(associationName,data)[0]},readRecords:function(doc){if(Ext.isArray(doc)){doc=doc[0]}this.xmlData=doc;return this.callParent([doc])}});Ext.define("Ext.data.writer.Xml",{extend:"Ext.data.writer.Writer",alternateClassName:"Ext.data.XmlWriter",alias:"writer.xml",documentRoot:"xmlData",defaultDocumentRoot:"xmlData",header:"",record:"record",writeRecords:function(request,data){var me=this,xml=[],i=0,len=data.length,root=me.documentRoot,record=me.record,needsRoot=data.length!==1,item,key;xml.push(me.header||"");if(!root&&needsRoot){root=me.defaultDocumentRoot}if(root){xml.push("<",root,">")}for(;i<len;++i){item=data[i];xml.push("<",record,">");for(key in item){if(item.hasOwnProperty(key)){xml.push("<",key,">",item[key],"</",key,">")}}xml.push("</",record,">")}if(root){xml.push("</",root,">")}request.xmlData=xml.join("");return request}});Ext.define("Ext.direct.Event",{alias:"direct.event",requires:["Ext.direct.Manager"],status:true,constructor:function(config){Ext.apply(this,config)},getData:function(){return this.data}});Ext.define("Ext.direct.RemotingEvent",{extend:"Ext.direct.Event",alias:"direct.rpc",getTransaction:function(){return this.transaction||Ext.direct.Manager.getTransaction(this.tid)}});Ext.define("Ext.direct.ExceptionEvent",{extend:"Ext.direct.RemotingEvent",alias:"direct.exception",status:false});Ext.define("Ext.direct.Provider",{alias:"direct.provider",mixins:{observable:"Ext.util.Observable"},constructor:function(config){var me=this;Ext.apply(me,config);me.addEvents("connect","disconnect","data","exception");me.mixins.observable.constructor.call(me,config)},isConnected:function(){return false},connect:Ext.emptyFn,disconnect:Ext.emptyFn});Ext.define("Ext.direct.JsonProvider",{extend:"Ext.direct.Provider",alias:"direct.jsonprovider",uses:["Ext.direct.ExceptionEvent"],parseResponse:function(response){if(!Ext.isEmpty(response.responseText)){if(Ext.isObject(response.responseText)){return response.responseText}return Ext.decode(response.responseText)}return null},createEvents:function(response){var data=null,events=[],event,i=0,len;try{data=this.parseResponse(response)}catch(e){event=Ext.create("Ext.direct.ExceptionEvent",{data:e,xhr:response,code:Ext.direct.Manager.self.exceptions.PARSE,message:"Error parsing json response: \n\n "+data});return[event]}if(Ext.isArray(data)){for(len=data.length;i<len;++i){events.push(this.createEvent(data[i]))}}else{events.push(this.createEvent(data))}return events},createEvent:function(response){return Ext.create("direct."+response.type,response)}});Ext.define("Ext.direct.PollingProvider",{extend:"Ext.direct.JsonProvider",alias:"direct.pollingprovider",uses:["Ext.direct.ExceptionEvent"],requires:["Ext.Ajax","Ext.util.DelayedTask"],interval:3000,constructor:function(config){this.callParent(arguments);this.addEvents("beforepoll","poll")},isConnected:function(){return !!this.pollTask},connect:function(){var me=this,url=me.url;if(url&&!me.pollTask){me.pollTask=Ext.TaskManager.start({run:function(){if(me.fireEvent("beforepoll",me)!==false){if(Ext.isFunction(url)){url(me.baseParams)}else{Ext.Ajax.request({url:url,callback:me.onData,scope:me,params:me.baseParams})}}},interval:me.interval,scope:me});me.fireEvent("connect",me)}else{if(!url){}}},disconnect:function(){var me=this;if(me.pollTask){Ext.TaskManager.stop(me.pollTask);delete me.pollTask;me.fireEvent("disconnect",me)}},onData:function(opt,success,response){var me=this,i=0,len,events;if(success){events=me.createEvents(response);for(len=events.length;i<len;++i){me.fireEvent("data",me,events[i])}}else{me.fireEvent("data",me,Ext.create("Ext.direct.ExceptionEvent",{data:null,code:Ext.direct.Manager.self.exceptions.TRANSPORT,message:"Unable to connect to the server.",xhr:response}))}}});Ext.define("Ext.direct.RemotingMethod",{constructor:function(config){var me=this,params=Ext.isDefined(config.params)?config.params:config.len,name;me.name=config.name;me.formHandler=config.formHandler;if(Ext.isNumber(params)){me.len=params;me.ordered=true}else{me.params=[];Ext.each(params,function(param){name=Ext.isObject(param)?param.name:param;me.params.push(name)})}},getCallData:function(args){var me=this,data=null,len=me.len,params=me.params,callback,scope,name;if(me.ordered){callback=args[len];scope=args[len+1];if(len!==0){data=args.slice(0,len)}}else{data=Ext.apply({},args[0]);callback=args[1];scope=args[2];for(name in data){if(data.hasOwnProperty(name)){if(!Ext.Array.contains(params,name)){delete data[name]}}}}return{data:data,callback:callback,scope:scope}}});Ext.define("Ext.direct.Transaction",{alias:"direct.transaction",alternateClassName:"Ext.Direct.Transaction",statics:{TRANSACTION_ID:0},constructor:function(config){var me=this;Ext.apply(me,config);me.id=++me.self.TRANSACTION_ID;me.retryCount=0},send:function(){this.provider.queueTransaction(this)},retry:function(){this.retryCount++;this.send()},getProvider:function(){return this.provider}});Ext.define("Ext.direct.RemotingProvider",{alias:"direct.remotingprovider",extend:"Ext.direct.JsonProvider",requires:["Ext.util.MixedCollection","Ext.util.DelayedTask","Ext.direct.Transaction","Ext.direct.RemotingMethod"],enableBuffer:10,maxRetries:1,timeout:undefined,constructor:function(config){var me=this;me.callParent(arguments);me.addEvents("beforecall","call");me.namespace=(Ext.isString(me.namespace))?Ext.ns(me.namespace):me.namespace||window;me.transactions=Ext.create("Ext.util.MixedCollection");me.callBuffer=[]},initAPI:function(){var actions=this.actions,namespace=this.namespace,action,cls,methods,i,len,method;for(action in actions){cls=namespace[action];if(!cls){cls=namespace[action]={}}methods=actions[action];for(i=0,len=methods.length;i<len;++i){method=Ext.create("Ext.direct.RemotingMethod",methods[i]);cls[method.name]=this.createHandler(action,method)}}},createHandler:function(action,method){var me=this,handler;if(!method.formHandler){handler=function(){me.configureRequest(action,method,Array.prototype.slice.call(arguments,0))}}else{handler=function(form,callback,scope){me.configureFormRequest(action,method,form,callback,scope)}}handler.directCfg={action:action,method:method};return handler},isConnected:function(){return !!this.connected},connect:function(){var me=this;if(me.url){me.initAPI();me.connected=true;me.fireEvent("connect",me)}else{if(!me.url){}}},disconnect:function(){var me=this;if(me.connected){me.connected=false;me.fireEvent("disconnect",me)}},runCallback:function(transaction,event){var funcName=event.status?"success":"failure",callback,result;if(transaction&&transaction.callback){callback=transaction.callback;result=Ext.isDefined(event.result)?event.result:event.data;if(Ext.isFunction(callback)){callback(result,event)}else{Ext.callback(callback[funcName],callback.scope,[result,event]);Ext.callback(callback.callback,callback.scope,[result,event])}}},onData:function(options,success,response){var me=this,i=0,len,events,event,transaction,transactions;if(success){events=me.createEvents(response);for(len=events.length;i<len;++i){event=events[i];transaction=me.getTransaction(event);me.fireEvent("data",me,event);if(transaction){me.runCallback(transaction,event,true);Ext.direct.Manager.removeTransaction(transaction)}}}else{transactions=[].concat(options.transaction);for(len=transactions.length;i<len;++i){transaction=me.getTransaction(transactions[i]);if(transaction&&transaction.retryCount<me.maxRetries){transaction.retry()}else{event=Ext.create("Ext.direct.ExceptionEvent",{data:null,transaction:transaction,code:Ext.direct.Manager.self.exceptions.TRANSPORT,message:"Unable to connect to the server.",xhr:response});me.fireEvent("data",me,event);if(transaction){me.runCallback(transaction,event,false);Ext.direct.Manager.removeTransaction(transaction)}}}}},getTransaction:function(options){return options&&options.tid?Ext.direct.Manager.getTransaction(options.tid):null},configureRequest:function(action,method,args){var me=this,callData=method.getCallData(args),data=callData.data,callback=callData.callback,scope=callData.scope,transaction;transaction=Ext.create("Ext.direct.Transaction",{provider:me,args:args,action:action,method:method.name,data:data,callback:scope&&Ext.isFunction(callback)?Ext.Function.bind(callback,scope):callback});if(me.fireEvent("beforecall",me,transaction,method)!==false){Ext.direct.Manager.addTransaction(transaction);me.queueTransaction(transaction);me.fireEvent("call",me,transaction,method)}},getCallData:function(transaction){return{action:transaction.action,method:transaction.method,data:transaction.data,type:"rpc",tid:transaction.id}},sendRequest:function(data){var me=this,request={url:me.url,callback:me.onData,scope:me,transaction:data,timeout:me.timeout},callData,enableUrlEncode=me.enableUrlEncode,i=0,len,params;if(Ext.isArray(data)){callData=[];for(len=data.length;i<len;++i){callData.push(me.getCallData(data[i]))}}else{callData=me.getCallData(data)}if(enableUrlEncode){params={};params[Ext.isString(enableUrlEncode)?enableUrlEncode:"data"]=Ext.encode(callData);request.params=params}else{request.jsonData=callData}Ext.Ajax.request(request)},queueTransaction:function(transaction){var me=this,enableBuffer=me.enableBuffer;if(transaction.form){me.sendFormRequest(transaction);return}me.callBuffer.push(transaction);if(enableBuffer){if(!me.callTask){me.callTask=Ext.create("Ext.util.DelayedTask",me.combineAndSend,me)}me.callTask.delay(Ext.isNumber(enableBuffer)?enableBuffer:10)}else{me.combineAndSend()}},combineAndSend:function(){var buffer=this.callBuffer,len=buffer.length;if(len>0){this.sendRequest(len==1?buffer[0]:buffer);this.callBuffer=[]}},configureFormRequest:function(action,method,form,callback,scope){var me=this,transaction=Ext.create("Ext.direct.Transaction",{provider:me,action:action,method:method.name,args:[form,callback,scope],callback:scope&&Ext.isFunction(callback)?Ext.Function.bind(callback,scope):callback,isForm:true}),isUpload,params;if(me.fireEvent("beforecall",me,transaction,method)!==false){Ext.direct.Manager.addTransaction(transaction);isUpload=String(form.getAttribute("enctype")).toLowerCase()=="multipart/form-data";params={extTID:transaction.id,extAction:action,extMethod:method.name,extType:"rpc",extUpload:String(isUpload)};Ext.apply(transaction,{form:Ext.getDom(form),isUpload:isUpload,params:callback&&Ext.isObject(callback.params)?Ext.apply(params,callback.params):params});me.fireEvent("call",me,transaction,method);me.sendFormRequest(transaction)}},sendFormRequest:function(transaction){Ext.Ajax.request({url:this.url,params:transaction.params,callback:this.onData,scope:this,form:transaction.form,isUpload:transaction.isUpload,transaction:transaction})}});Ext.define("Ext.draw.Matrix",{requires:["Ext.draw.Draw"],constructor:function(a,b,c,d,e,f){if(a!=null){this.matrix=[[a,c,e],[b,d,f],[0,0,1]]}else{this.matrix=[[1,0,0],[0,1,0],[0,0,1]]}},add:function(a,b,c,d,e,f){var me=this,out=[[],[],[]],matrix=[[a,c,e],[b,d,f],[0,0,1]],x,y,z,res;for(x=0;x<3;x++){for(y=0;y<3;y++){res=0;for(z=0;z<3;z++){res+=me.matrix[x][z]*matrix[z][y]}out[x][y]=res}}me.matrix=out},prepend:function(a,b,c,d,e,f){var me=this,out=[[],[],[]],matrix=[[a,c,e],[b,d,f],[0,0,1]],x,y,z,res;for(x=0;x<3;x++){for(y=0;y<3;y++){res=0;for(z=0;z<3;z++){res+=matrix[x][z]*me.matrix[z][y]}out[x][y]=res}}me.matrix=out},invert:function(){var matrix=this.matrix,a=matrix[0][0],b=matrix[1][0],c=matrix[0][1],d=matrix[1][1],e=matrix[0][2],f=matrix[1][2],x=a*d-b*c;return new Ext.draw.Matrix(d/x,-b/x,-c/x,a/x,(c*f-d*e)/x,(b*e-a*f)/x)},clone:function(){var matrix=this.matrix,a=matrix[0][0],b=matrix[1][0],c=matrix[0][1],d=matrix[1][1],e=matrix[0][2],f=matrix[1][2];return new Ext.draw.Matrix(a,b,c,d,e,f)},translate:function(x,y){this.prepend(1,0,0,1,x,y)},scale:function(x,y,cx,cy){var me=this;if(y==null){y=x}me.add(1,0,0,1,cx,cy);me.add(x,0,0,y,0,0);me.add(1,0,0,1,-cx,-cy)},rotate:function(a,x,y){a=Ext.draw.Draw.rad(a);var me=this,cos=+Math.cos(a).toFixed(9),sin=+Math.sin(a).toFixed(9);me.add(cos,sin,-sin,cos,x,y);me.add(1,0,0,1,-x,-y)},x:function(x,y){var matrix=this.matrix;return x*matrix[0][0]+y*matrix[0][1]+matrix[0][2]},y:function(x,y){var matrix=this.matrix;return x*matrix[1][0]+y*matrix[1][1]+matrix[1][2]},get:function(i,j){return +this.matrix[i][j].toFixed(4)},toString:function(){var me=this;return[me.get(0,0),me.get(0,1),me.get(1,0),me.get(1,1),0,0].join()},toSvg:function(){var me=this;return"matrix("+[me.get(0,0),me.get(1,0),me.get(0,1),me.get(1,1),me.get(0,2),me.get(1,2)].join()+")"},toFilter:function(){var me=this;return"progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand',FilterType=bilinear,M11="+me.get(0,0)+", M12="+me.get(0,1)+", M21="+me.get(1,0)+", M22="+me.get(1,1)+", Dx="+me.get(0,2)+", Dy="+me.get(1,2)+")"},offset:function(){var matrix=this.matrix;return[(matrix[0][2]||0).toFixed(4),(matrix[1][2]||0).toFixed(4)]},split:function(){function norm(a){return a[0]*a[0]+a[1]*a[1]}function normalize(a){var mag=Math.sqrt(norm(a));a[0]/=mag;a[1]/=mag}var matrix=this.matrix,out={translateX:matrix[0][2],translateY:matrix[1][2]},row;row=[[matrix[0][0],matrix[0][1]],[matrix[1][0],matrix[1][1]]];out.scaleX=Math.sqrt(norm(row[0]));normalize(row[0]);out.shear=row[0][0]*row[1][0]+row[0][1]*row[1][1];row[1]=[row[1][0]-row[0][0]*out.shear,row[1][1]-row[0][1]*out.shear];out.scaleY=Math.sqrt(norm(row[1]));normalize(row[1]);out.shear/=out.scaleY;out.rotate=Math.asin(-row[0][1]);out.isSimple=!+out.shear.toFixed(9)&&(out.scaleX.toFixed(9)==out.scaleY.toFixed(9)||!out.rotate);return out}});Ext.define("Ext.draw.SpriteDD",{extend:"Ext.dd.DragSource",constructor:function(sprite,cfg){var me=this,el=sprite.el;me.sprite=sprite;me.el=el;me.dragData={el:el,sprite:sprite};me.callParent([el,cfg]);me.sprite.setStyle("cursor","move")},showFrame:Ext.emptyFn,createFrame:Ext.emptyFn,getDragEl:function(e){return this.el},getRegion:function(){var me=this,el=me.el,pos,x1,x2,y1,y2,t,r,b,l,bbox,sprite;sprite=me.sprite;bbox=sprite.getBBox();try{pos=Ext.Element.getXY(el)}catch(e){}if(!pos){return null}x1=pos[0];x2=x1+bbox.width;y1=pos[1];y2=y1+bbox.height;return Ext.create("Ext.util.Region",y1,x2,y2,x1)},startDrag:function(x,y){var me=this,attr=me.sprite.attr;me.prev=me.sprite.surface.transformToViewBox(x,y)},onDrag:function(e){var xy=e.getXY(),me=this,sprite=me.sprite,attr=sprite.attr,dx,dy;xy=me.sprite.surface.transformToViewBox(xy[0],xy[1]);dx=xy[0]-me.prev[0];dy=xy[1]-me.prev[1];sprite.setAttributes({translate:{x:attr.translation.x+dx,y:attr.translation.y+dy}},true);me.prev=xy},setDragElPos:function(){return false}});Ext.define("Ext.draw.Sprite",{mixins:{observable:"Ext.util.Observable",animate:"Ext.util.Animate"},requires:["Ext.draw.SpriteDD"],dirty:false,dirtyHidden:false,dirtyTransform:false,dirtyPath:true,dirtyFont:true,zIndexDirty:true,isSprite:true,zIndex:0,fontProperties:["font","font-size","font-weight","font-style","font-family","text-anchor","text"],pathProperties:["x","y","d","path","height","width","radius","r","rx","ry","cx","cy"],constructor:function(config){var me=this;config=config||{};me.id=Ext.id(null,"ext-sprite-");me.transformations=[];Ext.copyTo(this,config,"surface,group,type,draggable");me.bbox={};me.attr={zIndex:0,translation:{x:null,y:null},rotation:{degrees:null,x:null,y:null},scaling:{x:null,y:null,cx:null,cy:null}};delete config.surface;delete config.group;delete config.type;delete config.draggable;me.setAttributes(config);me.addEvents("beforedestroy","destroy","render","mousedown","mouseup","mouseover","mouseout","mousemove","click");me.mixins.observable.constructor.apply(this,arguments)},initDraggable:function(){var me=this;me.draggable=true;if(!me.el){me.surface.createSpriteElement(me)}me.dd=Ext.create("Ext.draw.SpriteDD",me,Ext.isBoolean(me.draggable)?null:me.draggable);me.on("beforedestroy",me.dd.destroy,me.dd)},setAttributes:function(attrs,redraw){var me=this,fontProps=me.fontProperties,fontPropsLength=fontProps.length,pathProps=me.pathProperties,pathPropsLength=pathProps.length,hasSurface=!!me.surface,custom=hasSurface&&me.surface.customAttributes||{},spriteAttrs=me.attr,attr,i,translate,translation,rotate,rotation,scale,scaling;attrs=Ext.apply({},attrs);for(attr in custom){if(attrs.hasOwnProperty(attr)&&typeof custom[attr]=="function"){Ext.apply(attrs,custom[attr].apply(me,[].concat(attrs[attr])))}}if(!!attrs.hidden!==!!spriteAttrs.hidden){me.dirtyHidden=true}for(i=0;i<pathPropsLength;i++){attr=pathProps[i];if(attr in attrs&&attrs[attr]!==spriteAttrs[attr]){me.dirtyPath=true;break}}if("zIndex" in attrs){me.zIndexDirty=true}for(i=0;i<fontPropsLength;i++){attr=fontProps[i];if(attr in attrs&&attrs[attr]!==spriteAttrs[attr]){me.dirtyFont=true;break}}translate=attrs.translate;translation=spriteAttrs.translation;if(translate){if((translate.x&&translate.x!==translation.x)||(translate.y&&translate.y!==translation.y)){Ext.apply(translation,translate);me.dirtyTransform=true}delete attrs.translate}rotate=attrs.rotate;rotation=spriteAttrs.rotation;if(rotate){if((rotate.x&&rotate.x!==rotation.x)||(rotate.y&&rotate.y!==rotation.y)||(rotate.degrees&&rotate.degrees!==rotation.degrees)){Ext.apply(rotation,rotate);me.dirtyTransform=true}delete attrs.rotate}scale=attrs.scale;scaling=spriteAttrs.scaling;if(scale){if((scale.x&&scale.x!==scaling.x)||(scale.y&&scale.y!==scaling.y)||(scale.cx&&scale.cx!==scaling.cx)||(scale.cy&&scale.cy!==scaling.cy)){Ext.apply(scaling,scale);me.dirtyTransform=true}delete attrs.scale}Ext.apply(spriteAttrs,attrs);me.dirty=true;if(redraw===true&&hasSurface){me.redraw()}return this},getBBox:function(){return this.surface.getBBox(this)},setText:function(text){return this.surface.setText(this,text)},hide:function(redraw){this.setAttributes({hidden:true},redraw);return this},show:function(redraw){this.setAttributes({hidden:false},redraw);return this},remove:function(){if(this.surface){this.surface.remove(this);return true}return false},onRemove:function(){this.surface.onRemove(this)},destroy:function(){var me=this;if(me.fireEvent("beforedestroy",me)!==false){me.remove();me.surface.onDestroy(me);me.clearListeners();me.fireEvent("destroy")}},redraw:function(){this.surface.renderItem(this);return this},setStyle:function(){this.el.setStyle.apply(this.el,arguments);return this},addCls:function(obj){this.surface.addCls(this,obj);return this},removeCls:function(obj){this.surface.removeCls(this,obj);return this}});Ext.define("Ext.draw.engine.Svg",{extend:"Ext.draw.Surface",requires:["Ext.draw.Draw","Ext.draw.Sprite","Ext.draw.Matrix","Ext.Element"],engine:"Svg",trimRe:/^\s+|\s+$/g,spacesRe:/\s+/,xlink:"http://www.w3.org/1999/xlink",translateAttrs:{radius:"r",radiusX:"rx",radiusY:"ry",path:"d",lineWidth:"stroke-width",fillOpacity:"fill-opacity",strokeOpacity:"stroke-opacity",strokeLinejoin:"stroke-linejoin"},parsers:{},minDefaults:{circle:{cx:0,cy:0,r:0,fill:"none",stroke:null,"stroke-width":null,opacity:null,"fill-opacity":null,"stroke-opacity":null},ellipse:{cx:0,cy:0,rx:0,ry:0,fill:"none",stroke:null,"stroke-width":null,opacity:null,"fill-opacity":null,"stroke-opacity":null},rect:{x:0,y:0,width:0,height:0,rx:0,ry:0,fill:"none",stroke:null,"stroke-width":null,opacity:null,"fill-opacity":null,"stroke-opacity":null},text:{x:0,y:0,"text-anchor":"start","font-family":null,"font-size":null,"font-weight":null,"font-style":null,fill:"#000",stroke:null,"stroke-width":null,opacity:null,"fill-opacity":null,"stroke-opacity":null},path:{d:"M0,0",fill:"none",stroke:null,"stroke-width":null,opacity:null,"fill-opacity":null,"stroke-opacity":null},image:{x:0,y:0,width:0,height:0,preserveAspectRatio:"none",opacity:null}},createSvgElement:function(type,attrs){var el=this.domRef.createElementNS("http://www.w3.org/2000/svg",type),key;if(attrs){for(key in attrs){el.setAttribute(key,String(attrs[key]))}}return el},createSpriteElement:function(sprite){var el=this.createSvgElement(sprite.type);el.id=sprite.id;if(el.style){el.style.webkitTapHighlightColor="rgba(0,0,0,0)"}sprite.el=Ext.get(el);this.applyZIndex(sprite);sprite.matrix=Ext.create("Ext.draw.Matrix");sprite.bbox={plain:0,transform:0};sprite.fireEvent("render",sprite);return el},getBBox:function(sprite,isWithoutTransform){var realPath=this["getPath"+sprite.type](sprite);if(isWithoutTransform){sprite.bbox.plain=sprite.bbox.plain||Ext.draw.Draw.pathDimensions(realPath);return sprite.bbox.plain}sprite.bbox.transform=sprite.bbox.transform||Ext.draw.Draw.pathDimensions(Ext.draw.Draw.mapPath(realPath,sprite.matrix));return sprite.bbox.transform},getBBoxText:function(sprite){var bbox={},bb,height,width,i,ln,el;if(sprite&&sprite.el){el=sprite.el.dom;try{bbox=el.getBBox();return bbox}catch(e){}bbox={x:bbox.x,y:Infinity,width:0,height:0};ln=el.getNumberOfChars();for(i=0;i<ln;i++){bb=el.getExtentOfChar(i);bbox.y=Math.min(bb.y,bbox.y);height=bb.y+bb.height-bbox.y;bbox.height=Math.max(bbox.height,height);width=bb.x+bb.width-bbox.x;bbox.width=Math.max(bbox.width,width)}return bbox}},hide:function(){Ext.get(this.el).hide()},show:function(){Ext.get(this.el).show()},hidePrim:function(sprite){this.addCls(sprite,Ext.baseCSSPrefix+"hide-visibility")},showPrim:function(sprite){this.removeCls(sprite,Ext.baseCSSPrefix+"hide-visibility")},getDefs:function(){return this._defs||(this._defs=this.createSvgElement("defs"))},transform:function(sprite){var me=this,matrix=Ext.create("Ext.draw.Matrix"),transforms=sprite.transformations,transformsLength=transforms.length,i=0,transform,type;for(;i<transformsLength;i++){transform=transforms[i];type=transform.type;if(type=="translate"){matrix.translate(transform.x,transform.y)}else{if(type=="rotate"){matrix.rotate(transform.degrees,transform.x,transform.y)}else{if(type=="scale"){matrix.scale(transform.x,transform.y,transform.centerX,transform.centerY)}}}}sprite.matrix=matrix;sprite.el.set({transform:matrix.toSvg()})},setSize:function(w,h){var me=this,el=me.el;w=+w||me.width;h=+h||me.height;me.width=w;me.height=h;el.setSize(w,h);el.set({width:w,height:h});me.callParent([w,h])},getRegion:function(){var svgXY=this.el.getXY(),rectXY=this.bgRect.getXY(),max=Math.max,x=max(svgXY[0],rectXY[0]),y=max(svgXY[1],rectXY[1]);return{left:x,top:y,right:x+this.width,bottom:y+this.height}},onRemove:function(sprite){if(sprite.el){sprite.el.remove();delete sprite.el}this.callParent(arguments)},setViewBox:function(x,y,width,height){if(isFinite(x)&&isFinite(y)&&isFinite(width)&&isFinite(height)){this.callParent(arguments);this.el.dom.setAttribute("viewBox",[x,y,width,height].join(" "))}},render:function(container){var me=this;if(!me.el){var width=me.width||10,height=me.height||10,el=me.createSvgElement("svg",{xmlns:"http://www.w3.org/2000/svg",version:1.1,width:width,height:height}),defs=me.getDefs(),bgRect=me.createSvgElement("rect",{width:"100%",height:"100%",fill:"#000",stroke:"none",opacity:0}),webkitRect;if(Ext.isSafari3){webkitRect=me.createSvgElement("rect",{x:-10,y:-10,width:"110%",height:"110%",fill:"none",stroke:"#000"})}el.appendChild(defs);if(Ext.isSafari3){el.appendChild(webkitRect)}el.appendChild(bgRect);container.appendChild(el);me.el=Ext.get(el);me.bgRect=Ext.get(bgRect);if(Ext.isSafari3){me.webkitRect=Ext.get(webkitRect);me.webkitRect.hide()}me.el.on({scope:me,mouseup:me.onMouseUp,mousedown:me.onMouseDown,mouseover:me.onMouseOver,mouseout:me.onMouseOut,mousemove:me.onMouseMove,mouseenter:me.onMouseEnter,mouseleave:me.onMouseLeave,click:me.onClick})}me.renderAll()},onMouseEnter:function(e){if(this.el.parent().getRegion().contains(e.getPoint())){this.fireEvent("mouseenter",e)}},onMouseLeave:function(e){if(!this.el.parent().getRegion().contains(e.getPoint())){this.fireEvent("mouseleave",e)}},processEvent:function(name,e){var target=e.getTarget(),surface=this.surface,sprite;this.fireEvent(name,e);if(target.nodeName=="tspan"&&target.parentNode){target=target.parentNode}sprite=this.items.get(target.id);if(sprite){sprite.fireEvent(name,sprite,e)}},tuneText:function(sprite,attrs){var el=sprite.el.dom,tspans=[],height,tspan,text,i,ln,texts,factor;if(attrs.hasOwnProperty("text")){tspans=this.setText(sprite,attrs.text)}if(tspans.length){height=this.getBBoxText(sprite).height;for(i=0,ln=tspans.length;i<ln;i++){factor=(Ext.isFF3_0||Ext.isFF3_5)?2:4;tspans[i].setAttribute("dy",i?height*1.2:height/factor)}sprite.dirty=true}},setText:function(sprite,textString){var me=this,el=sprite.el.dom,x=el.getAttribute("x"),tspans=[],height,tspan,text,i,ln,texts;while(el.firstChild){el.removeChild(el.firstChild)}texts=String(textString).split("\n");for(i=0,ln=texts.length;i<ln;i++){text=texts[i];if(text){tspan=me.createSvgElement("tspan");tspan.appendChild(document.createTextNode(Ext.htmlDecode(text)));tspan.setAttribute("x",x);el.appendChild(tspan);tspans[i]=tspan}}return tspans},renderAll:function(){this.items.each(this.renderItem,this)},renderItem:function(sprite){if(!this.el){return}if(!sprite.el){this.createSpriteElement(sprite)}if(sprite.zIndexDirty){this.applyZIndex(sprite)}if(sprite.dirty){this.applyAttrs(sprite);this.applyTransformations(sprite)}},redraw:function(sprite){sprite.dirty=sprite.zIndexDirty=true;this.renderItem(sprite)},applyAttrs:function(sprite){var me=this,el=sprite.el,group=sprite.group,sattr=sprite.attr,parsers=me.parsers,gradientsMap=me.gradientsMap||{},safariFix=Ext.isSafari&&!Ext.isStrict,groups,i,ln,attrs,font,key,style,name,rect;if(group){groups=[].concat(group);ln=groups.length;for(i=0;i<ln;i++){group=groups[i];me.getGroup(group).add(sprite)}delete sprite.group}attrs=me.scrubAttrs(sprite)||{};sprite.bbox.plain=0;sprite.bbox.transform=0;if(sprite.type=="circle"||sprite.type=="ellipse"){attrs.cx=attrs.cx||attrs.x;attrs.cy=attrs.cy||attrs.y}else{if(sprite.type=="rect"){attrs.rx=attrs.ry=attrs.r}else{if(sprite.type=="path"&&attrs.d){attrs.d=Ext.draw.Draw.pathToString(Ext.draw.Draw.pathToAbsolute(attrs.d))}}}sprite.dirtyPath=false;if(attrs["clip-rect"]){me.setClip(sprite,attrs);delete attrs["clip-rect"]}if(sprite.type=="text"&&attrs.font&&sprite.dirtyFont){el.set({style:"font: "+attrs.font});sprite.dirtyFont=false}if(sprite.type=="image"){el.dom.setAttributeNS(me.xlink,"href",attrs.src)}Ext.applyIf(attrs,me.minDefaults[sprite.type]);if(sprite.dirtyHidden){(sattr.hidden)?me.hidePrim(sprite):me.showPrim(sprite);sprite.dirtyHidden=false}for(key in attrs){if(attrs.hasOwnProperty(key)&&attrs[key]!=null){if(safariFix&&("color|stroke|fill".indexOf(key)>-1)&&(attrs[key] in gradientsMap)){attrs[key]=gradientsMap[attrs[key]]}if(key in parsers){el.dom.setAttribute(key,parsers[key](attrs[key],sprite,me))}else{el.dom.setAttribute(key,attrs[key])}}}if(sprite.type=="text"){me.tuneText(sprite,attrs)}style=sattr.style;if(style){el.setStyle(style)}sprite.dirty=false;if(Ext.isSafari3){me.webkitRect.show();setTimeout(function(){me.webkitRect.hide()})}},setClip:function(sprite,params){var me=this,rect=params["clip-rect"],clipEl,clipPath;if(rect){if(sprite.clip){sprite.clip.parentNode.parentNode.removeChild(sprite.clip.parentNode)}clipEl=me.createSvgElement("clipPath");clipPath=me.createSvgElement("rect");clipEl.id=Ext.id(null,"ext-clip-");clipPath.setAttribute("x",rect.x);clipPath.setAttribute("y",rect.y);clipPath.setAttribute("width",rect.width);clipPath.setAttribute("height",rect.height);clipEl.appendChild(clipPath);me.getDefs().appendChild(clipEl);sprite.el.dom.setAttribute("clip-path","url(#"+clipEl.id+")");sprite.clip=clipPath}},applyZIndex:function(sprite){var me=this,items=me.items,idx=items.indexOf(sprite),el=sprite.el,prevEl;if(me.el.dom.childNodes[idx+2]!==el.dom){if(idx>0){do{prevEl=items.getAt(--idx).el}while(!prevEl&&idx>0)}el.insertAfter(prevEl||me.bgRect)}sprite.zIndexDirty=false},createItem:function(config){var sprite=Ext.create("Ext.draw.Sprite",config);sprite.surface=this;return sprite},addGradient:function(gradient){gradient=Ext.draw.Draw.parseGradient(gradient);var me=this,ln=gradient.stops.length,vector=gradient.vector,usePlain=Ext.isSafari&&!Ext.isStrict,gradientEl,stop,stopEl,i,gradientsMap;gradientsMap=me.gradientsMap||{};if(!usePlain){if(gradient.type=="linear"){gradientEl=me.createSvgElement("linearGradient");gradientEl.setAttribute("x1",vector[0]);gradientEl.setAttribute("y1",vector[1]);gradientEl.setAttribute("x2",vector[2]);gradientEl.setAttribute("y2",vector[3])}else{gradientEl=me.createSvgElement("radialGradient");gradientEl.setAttribute("cx",gradient.centerX);gradientEl.setAttribute("cy",gradient.centerY);gradientEl.setAttribute("r",gradient.radius);if(Ext.isNumber(gradient.focalX)&&Ext.isNumber(gradient.focalY)){gradientEl.setAttribute("fx",gradient.focalX);gradientEl.setAttribute("fy",gradient.focalY)}}gradientEl.id=gradient.id;me.getDefs().appendChild(gradientEl);for(i=0;i<ln;i++){stop=gradient.stops[i];stopEl=me.createSvgElement("stop");stopEl.setAttribute("offset",stop.offset+"%");stopEl.setAttribute("stop-color",stop.color);stopEl.setAttribute("stop-opacity",stop.opacity);gradientEl.appendChild(stopEl)}}else{gradientsMap["url(#"+gradient.id+")"]=gradient.stops[0].color}me.gradientsMap=gradientsMap},hasCls:function(sprite,className){return className&&(" "+(sprite.el.dom.getAttribute("class")||"")+" ").indexOf(" "+className+" ")!=-1},addCls:function(sprite,className){var el=sprite.el,i,len,v,cls=[],curCls=el.getAttribute("class")||"";if(!Ext.isArray(className)){if(typeof className=="string"&&!this.hasCls(sprite,className)){el.set({"class":curCls+" "+className})}}else{for(i=0,len=className.length;i<len;i++){v=className[i];if(typeof v=="string"&&(" "+curCls+" ").indexOf(" "+v+" ")==-1){cls.push(v)}}if(cls.length){el.set({"class":" "+cls.join(" ")})}}},removeCls:function(sprite,className){var me=this,el=sprite.el,curCls=el.getAttribute("class")||"",i,idx,len,cls,elClasses;if(!Ext.isArray(className)){className=[className]}if(curCls){elClasses=curCls.replace(me.trimRe," ").split(me.spacesRe);for(i=0,len=className.length;i<len;i++){cls=className[i];if(typeof cls=="string"){cls=cls.replace(me.trimRe,"");idx=Ext.Array.indexOf(elClasses,cls);if(idx!=-1){Ext.Array.erase(elClasses,idx,1)}}}el.set({"class":elClasses.join(" ")})}},destroy:function(){var me=this;me.callParent();if(me.el){me.el.remove()}delete me.el}});Ext.define("Ext.draw.engine.Vml",{extend:"Ext.draw.Surface",requires:["Ext.draw.Draw","Ext.draw.Color","Ext.draw.Sprite","Ext.draw.Matrix","Ext.Element"],engine:"Vml",map:{M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},bitesRe:/([clmz]),?([^clmz]*)/gi,valRe:/-?[^,\s-]+/g,fillUrlRe:/^url\(\s*['"]?([^\)]+?)['"]?\s*\)$/i,pathlike:/^(path|rect)$/,NonVmlPathRe:/[ahqstv]/ig,partialPathRe:/[clmz]/g,fontFamilyRe:/^['"]+|['"]+$/g,baseVmlCls:Ext.baseCSSPrefix+"vml-base",vmlGroupCls:Ext.baseCSSPrefix+"vml-group",spriteCls:Ext.baseCSSPrefix+"vml-sprite",measureSpanCls:Ext.baseCSSPrefix+"vml-measure-span",zoom:21600,coordsize:1000,coordorigin:"0 0",orderSpritesByZIndex:false,path2vml:function(path){var me=this,nonVML=me.NonVmlPathRe,map=me.map,val=me.valRe,zoom=me.zoom,bites=me.bitesRe,command=Ext.Function.bind(Ext.draw.Draw.pathToAbsolute,Ext.draw.Draw),res,pa,p,r,i,ii,j,jj;if(String(path).match(nonVML)){command=Ext.Function.bind(Ext.draw.Draw.path2curve,Ext.draw.Draw)}else{if(!String(path).match(me.partialPathRe)){res=String(path).replace(bites,function(all,command,args){var vals=[],isMove=command.toLowerCase()=="m",res=map[command];args.replace(val,function(value){if(isMove&&vals[length]==2){res+=vals+map[command=="m"?"l":"L"];vals=[]}vals.push(Math.round(value*zoom))});return res+vals});return res}}pa=command(path);res=[];for(i=0,ii=pa.length;i<ii;i++){p=pa[i];r=pa[i][0].toLowerCase();if(r=="z"){r="x"}for(j=1,jj=p.length;j<jj;j++){r+=Math.round(p[j]*me.zoom)+(j!=jj-1?",":"")}res.push(r)}return res.join(" ")},translateAttrs:{radius:"r",radiusX:"rx",radiusY:"ry",lineWidth:"stroke-width",fillOpacity:"fill-opacity",strokeOpacity:"stroke-opacity",strokeLinejoin:"stroke-linejoin"},minDefaults:{circle:{fill:"none",stroke:null,"stroke-width":null,opacity:null,"fill-opacity":null,"stroke-opacity":null},ellipse:{cx:0,cy:0,rx:0,ry:0,fill:"none",stroke:null,"stroke-width":null,opacity:null,"fill-opacity":null,"stroke-opacity":null},rect:{x:0,y:0,width:0,height:0,rx:0,ry:0,fill:"none",stroke:null,"stroke-width":null,opacity:null,"fill-opacity":null,"stroke-opacity":null},text:{x:0,y:0,"text-anchor":"start",font:'10px "Arial"',fill:"#000",stroke:null,"stroke-width":null,opacity:null,"fill-opacity":null,"stroke-opacity":null},path:{d:"M0,0",fill:"none",stroke:null,"stroke-width":null,opacity:null,"fill-opacity":null,"stroke-opacity":null},image:{x:0,y:0,width:0,height:0,preserveAspectRatio:"none",opacity:null}},onMouseEnter:function(e){this.fireEvent("mouseenter",e)},onMouseLeave:function(e){this.fireEvent("mouseleave",e)},processEvent:function(name,e){var target=e.getTarget(),surface=this.surface,sprite;this.fireEvent(name,e);sprite=this.items.get(target.id);if(sprite){sprite.fireEvent(name,sprite,e)}},createSpriteElement:function(sprite){var me=this,attr=sprite.attr,type=sprite.type,zoom=me.zoom,vml=sprite.vml||(sprite.vml={}),round=Math.round,el=me.createNode("shape"),path,skew,textPath;el.coordsize=zoom+" "+zoom;el.coordorigin=attr.coordorigin||"0 0";Ext.get(el).addCls(me.spriteCls);if(type=="text"){vml.path=path=me.createNode("path");path.textpathok=true;vml.textpath=textPath=me.createNode("textpath");textPath.on=true;el.appendChild(textPath);el.appendChild(path)}el.id=sprite.id;sprite.el=Ext.get(el);me.el.appendChild(el);if(type!=="image"){skew=me.createNode("skew");skew.on=true;el.appendChild(skew);sprite.skew=skew}sprite.matrix=Ext.create("Ext.draw.Matrix");sprite.bbox={plain:null,transform:null};sprite.fireEvent("render",sprite);return sprite.el},getBBox:function(sprite,isWithoutTransform){var realPath=this["getPath"+sprite.type](sprite);if(isWithoutTransform){sprite.bbox.plain=sprite.bbox.plain||Ext.draw.Draw.pathDimensions(realPath);return sprite.bbox.plain}sprite.bbox.transform=sprite.bbox.transform||Ext.draw.Draw.pathDimensions(Ext.draw.Draw.mapPath(realPath,sprite.matrix));return sprite.bbox.transform},getBBoxText:function(sprite){var vml=sprite.vml;return{x:vml.X+(vml.bbx||0)-vml.W/2,y:vml.Y-vml.H/2,width:vml.W,height:vml.H}},applyAttrs:function(sprite){var me=this,vml=sprite.vml,group=sprite.group,spriteAttr=sprite.attr,el=sprite.el,dom=el.dom,style,name,groups,i,ln,scrubbedAttrs,font,key,bbox;if(group){groups=[].concat(group);ln=groups.length;for(i=0;i<ln;i++){group=groups[i];me.getGroup(group).add(sprite)}delete sprite.group}scrubbedAttrs=me.scrubAttrs(sprite)||{};if(sprite.zIndexDirty){me.setZIndex(sprite)}Ext.applyIf(scrubbedAttrs,me.minDefaults[sprite.type]);if(dom.href){dom.href=scrubbedAttrs.href}if(dom.title){dom.title=scrubbedAttrs.title}if(dom.target){dom.target=scrubbedAttrs.target}if(dom.cursor){dom.cursor=scrubbedAttrs.cursor}if(sprite.dirtyHidden){(scrubbedAttrs.hidden)?me.hidePrim(sprite):me.showPrim(sprite);sprite.dirtyHidden=false}if(sprite.dirtyPath){if(sprite.type=="circle"||sprite.type=="ellipse"){var cx=scrubbedAttrs.x,cy=scrubbedAttrs.y,rx=scrubbedAttrs.rx||scrubbedAttrs.r||0,ry=scrubbedAttrs.ry||scrubbedAttrs.r||0;dom.path=Ext.String.format("ar{0},{1},{2},{3},{4},{1},{4},{1}",Math.round((cx-rx)*me.zoom),Math.round((cy-ry)*me.zoom),Math.round((cx+rx)*me.zoom),Math.round((cy+ry)*me.zoom),Math.round(cx*me.zoom));sprite.dirtyPath=false}else{if(sprite.type!=="text"){sprite.attr.path=scrubbedAttrs.path=me.setPaths(sprite,scrubbedAttrs)||scrubbedAttrs.path;dom.path=me.path2vml(scrubbedAttrs.path);sprite.dirtyPath=false}}}if("clip-rect" in scrubbedAttrs){me.setClip(sprite,scrubbedAttrs)}if(sprite.type=="text"){me.setTextAttributes(sprite,scrubbedAttrs)}if(sprite.type=="image"||scrubbedAttrs.opacity||scrubbedAttrs["fill-opacity"]||scrubbedAttrs.fill){me.setFill(sprite,scrubbedAttrs)}if(scrubbedAttrs.stroke||scrubbedAttrs["stroke-opacity"]||scrubbedAttrs.fill){me.setStroke(sprite,scrubbedAttrs)}style=spriteAttr.style;if(style){el.setStyle(style)}sprite.dirty=false},setZIndex:function(sprite){if(sprite.el){if(sprite.attr.zIndex!=undefined){sprite.el.setStyle("zIndex",sprite.attr.zIndex)}sprite.zIndexDirty=false}},setPaths:function(sprite,params){var spriteAttr=sprite.attr;sprite.bbox.plain=null;sprite.bbox.transform=null;if(sprite.type=="circle"){spriteAttr.rx=spriteAttr.ry=params.r;return Ext.draw.Draw.ellipsePath(sprite)}else{if(sprite.type=="ellipse"){spriteAttr.rx=params.rx;spriteAttr.ry=params.ry;return Ext.draw.Draw.ellipsePath(sprite)}else{if(sprite.type=="rect"||sprite.type=="image"){spriteAttr.rx=spriteAttr.ry=params.r;return Ext.draw.Draw.rectPath(sprite)}else{if(sprite.type=="path"&&spriteAttr.path){return Ext.draw.Draw.pathToAbsolute(spriteAttr.path)}}}}return false},setFill:function(sprite,params){var me=this,el=sprite.el,dom=el.dom,fillEl=dom.getElementsByTagName("fill")[0],opacity,gradient,fillUrl,rotation,angle;if(fillEl){dom.removeChild(fillEl)}else{fillEl=me.createNode("fill")}if(Ext.isArray(params.fill)){params.fill=params.fill[0]}if(sprite.type=="image"){fillEl.on=true;fillEl.src=params.src;fillEl.type="tile";fillEl.rotate=true}else{if(params.fill=="none"){fillEl.on=false}else{if(typeof params.opacity=="number"){fillEl.opacity=params.opacity}if(typeof params["fill-opacity"]=="number"){fillEl.opacity=params["fill-opacity"]}fillEl.on=true;if(typeof params.fill=="string"){fillUrl=params.fill.match(me.fillUrlRe);if(fillUrl){fillUrl=fillUrl[1];if(fillUrl.charAt(0)=="#"){gradient=me.gradientsColl.getByKey(fillUrl.substring(1))}if(gradient){rotation=params.rotation;angle=-(gradient.angle+270+(rotation?rotation.degrees:0))%360;if(angle===0){angle=180}fillEl.angle=angle;fillEl.type="gradient";fillEl.method="sigma";fillEl.colors=gradient.colors}else{fillEl.src=fillUrl;fillEl.type="tile";fillEl.rotate=true}}else{fillEl.color=Ext.draw.Color.toHex(params.fill)||params.fill;fillEl.src="";fillEl.type="solid"}}}}dom.appendChild(fillEl)},setStroke:function(sprite,params){var me=this,el=sprite.el.dom,strokeEl=sprite.strokeEl,newStroke=false,width,opacity;if(!strokeEl){strokeEl=sprite.strokeEl=me.createNode("stroke");newStroke=true}if(Ext.isArray(params.stroke)){params.stroke=params.stroke[0]}if(!params.stroke||params.stroke=="none"||params.stroke==0||params["stroke-width"]==0){strokeEl.on=false}else{strokeEl.on=true;if(params.stroke&&!params.stroke.match(me.fillUrlRe)){strokeEl.color=Ext.draw.Color.toHex(params.stroke)}strokeEl.joinstyle=params["stroke-linejoin"];strokeEl.endcap=params["stroke-linecap"]||"round";strokeEl.miterlimit=params["stroke-miterlimit"]||8;width=parseFloat(params["stroke-width"]||1)*0.75;opacity=params["stroke-opacity"]||1;if(Ext.isNumber(width)&&width<1){strokeEl.weight=1;strokeEl.opacity=opacity*width}else{strokeEl.weight=width;strokeEl.opacity=opacity}}if(newStroke){el.appendChild(strokeEl)}},setClip:function(sprite,params){var me=this,el=sprite.el,clipEl=sprite.clipEl,rect=String(params["clip-rect"]).split(me.separatorRe);if(!clipEl){clipEl=sprite.clipEl=me.el.insertFirst(Ext.getDoc().dom.createElement("div"));clipEl.addCls(Ext.baseCSSPrefix+"vml-sprite")}if(rect.length==4){rect[2]=+rect[2]+(+rect[0]);rect[3]=+rect[3]+(+rect[1]);clipEl.setStyle("clip",Ext.String.format("rect({1}px {2}px {3}px {0}px)",rect[0],rect[1],rect[2],rect[3]));clipEl.setSize(me.el.width,me.el.height)}else{clipEl.setStyle("clip","")}},setTextAttributes:function(sprite,params){var me=this,vml=sprite.vml,textStyle=vml.textpath.style,spanCacheStyle=me.span.style,zoom=me.zoom,round=Math.round,fontObj={fontSize:"font-size",fontWeight:"font-weight",fontStyle:"font-style"},fontProp,paramProp;if(sprite.dirtyFont){if(params.font){textStyle.font=spanCacheStyle.font=params.font}if(params["font-family"]){textStyle.fontFamily='"'+params["font-family"].split(",")[0].replace(me.fontFamilyRe,"")+'"';spanCacheStyle.fontFamily=params["font-family"]}for(fontProp in fontObj){paramProp=params[fontObj[fontProp]];if(paramProp){textStyle[fontProp]=spanCacheStyle[fontProp]=paramProp}}me.setText(sprite,params.text);if(vml.textpath.string){me.span.innerHTML=String(vml.textpath.string).replace(/</g,"&#60;").replace(/&/g,"&#38;").replace(/\n/g,"<br>")}vml.W=me.span.offsetWidth;vml.H=me.span.offsetHeight+2;if(params["text-anchor"]=="middle"){textStyle["v-text-align"]="center"}else{if(params["text-anchor"]=="end"){textStyle["v-text-align"]="right";vml.bbx=-Math.round(vml.W/2)}else{textStyle["v-text-align"]="left";vml.bbx=Math.round(vml.W/2)}}}vml.X=params.x;vml.Y=params.y;vml.path.v=Ext.String.format("m{0},{1}l{2},{1}",Math.round(vml.X*zoom),Math.round(vml.Y*zoom),Math.round(vml.X*zoom)+1);sprite.bbox.plain=null;sprite.bbox.transform=null;sprite.dirtyFont=false},setText:function(sprite,text){sprite.vml.textpath.string=Ext.htmlDecode(text)},hide:function(){this.el.hide()},show:function(){this.el.show()},hidePrim:function(sprite){sprite.el.addCls(Ext.baseCSSPrefix+"hide-visibility")},showPrim:function(sprite){sprite.el.removeCls(Ext.baseCSSPrefix+"hide-visibility")},setSize:function(width,height){var me=this;width=width||me.width;height=height||me.height;me.width=width;me.height=height;if(me.el){if(width!=undefined){me.el.setWidth(width)}if(height!=undefined){me.el.setHeight(height)}me.applyViewBox();me.callParent(arguments)}},setViewBox:function(x,y,width,height){this.callParent(arguments);this.viewBox={x:x,y:y,width:width,height:height};this.applyViewBox()},applyViewBox:function(){var me=this,viewBox=me.viewBox,width=me.width,height=me.height,viewBoxX,viewBoxY,viewBoxWidth,viewBoxHeight,relativeHeight,relativeWidth,size;if(viewBox&&(width||height)){viewBoxX=viewBox.x;viewBoxY=viewBox.y;viewBoxWidth=viewBox.width;viewBoxHeight=viewBox.height;relativeHeight=height/viewBoxHeight;relativeWidth=width/viewBoxWidth;if(viewBoxWidth*relativeHeight<width){viewBoxX-=(width-viewBoxWidth*relativeHeight)/2/relativeHeight}if(viewBoxHeight*relativeWidth<height){viewBoxY-=(height-viewBoxHeight*relativeWidth)/2/relativeWidth}size=1/Math.max(viewBoxWidth/width,viewBoxHeight/height);me.viewBoxShift={dx:-viewBoxX,dy:-viewBoxY,scale:size};me.items.each(function(item){me.transform(item)})}},onAdd:function(item){this.callParent(arguments);if(this.el){this.renderItem(item)}},onRemove:function(sprite){if(sprite.el){sprite.el.remove();delete sprite.el}this.callParent(arguments)},createNode:(function(){try{var doc=Ext.getDoc().dom;if(!doc.namespaces.rvml){doc.namespaces.add("rvml","urn:schemas-microsoft-com:vml")}return function(tagName){return doc.createElement("<rvml:"+tagName+' class="rvml">')}}catch(e){return function(tagName){return doc.createElement("<"+tagName+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}})(),render:function(container){var me=this,doc=Ext.getDoc().dom;if(!me.el){var el=doc.createElement("div");me.el=Ext.get(el);me.el.addCls(me.baseVmlCls);me.span=doc.createElement("span");Ext.get(me.span).addCls(me.measureSpanCls);el.appendChild(me.span);me.el.setSize(me.width||10,me.height||10);container.appendChild(el);me.el.on({scope:me,mouseup:me.onMouseUp,mousedown:me.onMouseDown,mouseover:me.onMouseOver,mouseout:me.onMouseOut,mousemove:me.onMouseMove,mouseenter:me.onMouseEnter,mouseleave:me.onMouseLeave,click:me.onClick})}me.renderAll()},renderAll:function(){this.items.each(this.renderItem,this)},redraw:function(sprite){sprite.dirty=true;this.renderItem(sprite)},renderItem:function(sprite){if(!this.el){return}if(!sprite.el){this.createSpriteElement(sprite)}if(sprite.dirty){this.applyAttrs(sprite);if(sprite.dirtyTransform){this.applyTransformations(sprite)}}},rotationCompensation:function(deg,dx,dy){var matrix=Ext.create("Ext.draw.Matrix");matrix.rotate(-deg,0.5,0.5);return{x:matrix.x(dx,dy),y:matrix.y(dx,dy)}},extractTransform:function(sprite){var me=this,matrix=Ext.create("Ext.draw.Matrix"),scale,transformstions,tranformationsLength,transform,i=0,shift=me.viewBoxShift;for(transformstions=sprite.transformations,tranformationsLength=transformstions.length;i<tranformationsLength;i++){transform=transformstions[i];switch(transform.type){case"translate":matrix.translate(transform.x,transform.y);break;case"rotate":matrix.rotate(transform.degrees,transform.x,transform.y);break;case"scale":matrix.scale(transform.x||transform.scale,transform.y||transform.scale,transform.centerX,transform.centerY);break}}if(shift){matrix.add(1,0,0,1,shift.dx,shift.dy);matrix.prepend(shift.scale,0,0,shift.scale,0,0)}return sprite.matrix=matrix},setSimpleCoords:function(sprite,sx,sy,dx,dy,rotate){var me=this,matrix=sprite.matrix,dom=sprite.el.dom,style=dom.style,yFlipper=1,flip="",fill=dom.getElementsByTagName("fill")[0],kx=me.zoom/sx,ky=me.zoom/sy,rotationCompensation;if(!sx||!sy){return}dom.coordsize=Math.abs(kx)+" "+Math.abs(ky);style.rotation=rotate*(sx*sy<0?-1:1);if(rotate){rotationCompensation=me.rotationCompensation(rotate,dx,dy);dx=rotationCompensation.x;dy=rotationCompensation.y}if(sx<0){flip+="x"}if(sy<0){flip+=" y";yFlipper=-1}style.flip=flip;dom.coordorigin=(dx*-kx)+" "+(dy*-ky);if(fill){dom.removeChild(fill);rotationCompensation=me.rotationCompensation(rotate,matrix.x(sprite.x,sprite.y),matrix.y(sprite.x,sprite.y));fill.position=rotationCompensation.x*yFlipper+" "+rotationCompensation.y*yFlipper;fill.size=sprite.width*Math.abs(sx)+" "+sprite.height*Math.abs(sy);dom.appendChild(fill)}},transform:function(sprite){var me=this,el=sprite.el,skew=sprite.skew,dom=el.dom,domStyle=dom.style,matrix=me.extractTransform(sprite).clone(),split,zoom=me.zoom,fill=dom.getElementsByTagName("fill")[0],isPatt=!String(sprite.fill).indexOf("url("),offset,c;if(sprite.type!="image"&&skew&&!isPatt){skew.matrix=matrix.toString();offset=matrix.offset();if(offset[0]>32767){offset[0]=32767}else{if(offset[0]<-32768){offset[0]=-32768}}if(offset[1]>32767){offset[1]=32767}else{if(offset[1]<-32768){offset[1]=-32768}}skew.offset=offset}else{if(skew){skew.matrix="1 0 0 1";skew.offset="0 0"}split=matrix.split();if(split.isSimple){domStyle.filter="";me.setSimpleCoords(sprite,split.scaleX,split.scaleY,split.translateX,split.translateY,split.rotate/Math.PI*180)}else{domStyle.filter=matrix.toFilter();var bb=me.getBBox(sprite),dx=bb.x-sprite.x,dy=bb.y-sprite.y;dom.coordorigin=(dx*-zoom)+" "+(dy*-zoom);if(fill){dom.removeChild(fill);fill.position=dx+" "+dy;fill.size=sprite.width*sprite.scale.x+" "+sprite.height*1.1;dom.appendChild(fill)}}}},createItem:function(config){return Ext.create("Ext.draw.Sprite",config)},getRegion:function(){return this.el.getRegion()},addCls:function(sprite,className){if(sprite&&sprite.el){sprite.el.addCls(className)}},removeCls:function(sprite,className){if(sprite&&sprite.el){sprite.el.removeCls(className)}},addGradient:function(gradient){var gradients=this.gradientsColl||(this.gradientsColl=Ext.create("Ext.util.MixedCollection")),colors=[],stops=Ext.create("Ext.util.MixedCollection");stops.addAll(gradient.stops);stops.sortByKey("ASC",function(a,b){a=parseInt(a,10);b=parseInt(b,10);return a>b?1:(a<b?-1:0)});stops.eachKey(function(k,v){colors.push(k+"% "+v.color)});gradients.add(gradient.id,{colors:colors.join(","),angle:gradient.angle})},destroy:function(){var me=this;me.callParent(arguments);if(me.el){me.el.remove()}delete me.el}});Ext.define("Ext.fx.target.ElementCSS",{extend:"Ext.fx.target.Element",setAttr:function(targetData,isFirstFrame){var cssArr={attrs:[],duration:[],easing:[]},ln=targetData.length,attributes,attrs,attr,easing,duration,o,i,j,ln2;for(i=0;i<ln;i++){attrs=targetData[i];duration=attrs.duration;easing=attrs.easing;attrs=attrs.attrs;for(attr in attrs){if(Ext.Array.indexOf(cssArr.attrs,attr)==-1){cssArr.attrs.push(attr.replace(/[A-Z]/g,function(v){return"-"+v.toLowerCase()}));cssArr.duration.push(duration+"ms");cssArr.easing.push(easing)}}}attributes=cssArr.attrs.join(",");duration=cssArr.duration.join(",");easing=cssArr.easing.join(", ");for(i=0;i<ln;i++){attrs=targetData[i].attrs;for(attr in attrs){ln2=attrs[attr].length;for(j=0;j<ln2;j++){o=attrs[attr][j];o[0].setStyle(Ext.supports.CSS3Prefix+"TransitionProperty",isFirstFrame?"":attributes);o[0].setStyle(Ext.supports.CSS3Prefix+"TransitionDuration",isFirstFrame?"":duration);o[0].setStyle(Ext.supports.CSS3Prefix+"TransitionTimingFunction",isFirstFrame?"":easing);o[0].setStyle(attr,o[1]);if(isFirstFrame){o=o[0].dom.offsetWidth}else{o[0].on(Ext.supports.CSS3TransitionEnd,function(){this.setStyle(Ext.supports.CSS3Prefix+"TransitionProperty",null);this.setStyle(Ext.supports.CSS3Prefix+"TransitionDuration",null);this.setStyle(Ext.supports.CSS3Prefix+"TransitionTimingFunction",null)},o[0],{single:true})}}}}}});Ext.define("Ext.fx.target.CompositeElementCSS",{extend:"Ext.fx.target.CompositeElement",requires:["Ext.fx.target.ElementCSS"],setAttr:function(){return Ext.fx.target.ElementCSS.prototype.setAttr.apply(this,arguments)}});Ext.define("Ext.layout.container.AbstractFit",{extend:"Ext.layout.container.Container",itemCls:Ext.baseCSSPrefix+"fit-item",targetCls:Ext.baseCSSPrefix+"layout-fit",type:"fit"});Ext.define("Ext.layout.container.Fit",{extend:"Ext.layout.container.AbstractFit",alias:"layout.fit",alternateClassName:"Ext.layout.FitLayout",requires:["Ext.layout.container.Box"],defaultMargins:{top:0,right:0,bottom:0,left:0},onLayout:function(){var me=this,size,item,margins;me.callParent();if(me.owner.items.length){item=me.owner.items.get(0);margins=item.margins||me.defaultMargins;size=me.getLayoutTargetSize();size.width-=margins.width;size.height-=margins.height;me.setItemBox(item,size);if(margins.left||margins.top){item.setPosition(margins.left,margins.top)}}},getTargetBox:function(){return this.getLayoutTargetSize()},setItemBox:function(item,box){var me=this;if(item&&box.height>0){if(!me.owner.isFixedWidth()){box.width=undefined}if(!me.owner.isFixedHeight()){box.height=undefined}me.setItemSize(item,box.width,box.height)}},configureItem:function(item){item.layoutManagedHeight=0;item.layoutManagedWidth=0;this.callParent(arguments)}},function(){this.prototype.renderItem=Ext.layout.container.Box.prototype.renderItem});Ext.define("Ext.layout.container.AbstractCard",{extend:"Ext.layout.container.Fit",type:"card",sizeAllCards:false,hideInactive:true,deferredRender:false,beforeLayout:function(){var me=this;me.getActiveItem();if(me.activeItem&&me.deferredRender){me.renderItems([me.activeItem],me.getRenderTarget());return true}else{return this.callParent(arguments)}},renderChildren:function(){if(!this.deferredRender){this.getActiveItem();this.callParent()}},onLayout:function(){var me=this,activeItem=me.activeItem,items=me.getVisibleItems(),ln=items.length,targetBox=me.getTargetBox(),i,item;for(i=0;i<ln;i++){item=items[i];me.setItemBox(item,targetBox)}if(!me.firstActivated&&activeItem){if(activeItem.fireEvent("beforeactivate",activeItem)!==false){activeItem.fireEvent("activate",activeItem)}me.firstActivated=true}},isValidParent:function(item,target,position){var itemEl=item.el?item.el.dom:Ext.getDom(item);return(itemEl&&itemEl.parentNode===(target.dom||target))||false},getActiveItem:function(){var me=this;if(!me.activeItem&&me.owner){me.activeItem=me.parseActiveItem(me.owner.activeItem)}if(me.activeItem&&me.owner.items.indexOf(me.activeItem)!=-1){return me.activeItem}return null},parseActiveItem:function(item){if(item&&item.isComponent){return item}else{if(typeof item=="number"||item===undefined){return this.getLayoutItems()[item||0]}else{return this.owner.getComponent(item)}}},configureItem:function(item,position){this.callParent([item,position]);if(this.hideInactive&&this.activeItem!==item){item.hide()}else{item.show()}},onRemove:function(component){if(component===this.activeItem){this.activeItem=null;if(this.owner.items.getCount()===0){this.firstActivated=false}}},getAnimation:function(newCard,owner){var newAnim=(newCard||{}).cardSwitchAnimation;if(newAnim===false){return false}return newAnim||owner.cardSwitchAnimation},getNext:function(){var wrap=arguments[0];var items=this.getLayoutItems(),index=Ext.Array.indexOf(items,this.activeItem);return items[index+1]||(wrap?items[0]:false)},next:function(){var anim=arguments[0],wrap=arguments[1];return this.setActiveItem(this.getNext(wrap),anim)},getPrev:function(){var wrap=arguments[0];var items=this.getLayoutItems(),index=Ext.Array.indexOf(items,this.activeItem);return items[index-1]||(wrap?items[items.length-1]:false)},prev:function(){var anim=arguments[0],wrap=arguments[1];return this.setActiveItem(this.getPrev(wrap),anim)}});Ext.define("Ext.selection.Model",{extend:"Ext.util.Observable",alternateClassName:"Ext.AbstractSelectionModel",requires:["Ext.data.StoreManager"],allowDeselect:false,selected:null,pruneRemoved:true,constructor:function(cfg){var me=this;cfg=cfg||{};Ext.apply(me,cfg);me.addEvents("selectionchange");me.modes={SINGLE:true,SIMPLE:true,MULTI:true};me.setSelectionMode(cfg.mode||me.mode);me.selected=Ext.create("Ext.util.MixedCollection");me.callParent(arguments)},bind:function(store,initial){var me=this;if(!initial&&me.store){if(store!==me.store&&me.store.autoDestroy){me.store.destroyStore()}else{me.store.un("add",me.onStoreAdd,me);me.store.un("clear",me.onStoreClear,me);me.store.un("remove",me.onStoreRemove,me);me.store.un("update",me.onStoreUpdate,me)}}if(store){store=Ext.data.StoreManager.lookup(store);store.on({add:me.onStoreAdd,clear:me.onStoreClear,remove:me.onStoreRemove,update:me.onStoreUpdate,scope:me})}me.store=store;if(store&&!initial){me.refresh()}},selectAll:function(suppressEvent){var me=this,selections=me.store.getRange(),i=0,len=selections.length,start=me.getSelection().length;me.bulkChange=true;for(;i<len;i++){me.doSelect(selections[i],true,suppressEvent)}delete me.bulkChange;me.maybeFireSelectionChange(me.getSelection().length!==start)},deselectAll:function(suppressEvent){var me=this,selections=me.getSelection(),i=0,len=selections.length,start=me.getSelection().length;me.bulkChange=true;for(;i<len;i++){me.doDeselect(selections[i],suppressEvent)}delete me.bulkChange;me.maybeFireSelectionChange(me.getSelection().length!==start)},selectWithEvent:function(record,e,keepExisting){var me=this;switch(me.selectionMode){case"MULTI":if(e.ctrlKey&&me.isSelected(record)){me.doDeselect(record,false)}else{if(e.shiftKey&&me.lastFocused){me.selectRange(me.lastFocused,record,e.ctrlKey)}else{if(e.ctrlKey){me.doSelect(record,true,false)}else{if(me.isSelected(record)&&!e.shiftKey&&!e.ctrlKey&&me.selected.getCount()>1){me.doSelect(record,keepExisting,false)}else{me.doSelect(record,false)}}}}break;case"SIMPLE":if(me.isSelected(record)){me.doDeselect(record)}else{me.doSelect(record,true)}break;case"SINGLE":if(me.allowDeselect&&me.isSelected(record)){me.doDeselect(record)}else{me.doSelect(record,false)}break}},selectRange:function(startRow,endRow,keepExisting,dir){var me=this,store=me.store,selectedCount=0,i,tmp,dontDeselect,records=[];if(me.isLocked()){return}if(!keepExisting){me.deselectAll(true)}if(!Ext.isNumber(startRow)){startRow=store.indexOf(startRow)}if(!Ext.isNumber(endRow)){endRow=store.indexOf(endRow)}if(startRow>endRow){tmp=endRow;endRow=startRow;startRow=tmp}for(i=startRow;i<=endRow;i++){if(me.isSelected(store.getAt(i))){selectedCount++}}if(!dir){dontDeselect=-1}else{dontDeselect=(dir=="up")?startRow:endRow}for(i=startRow;i<=endRow;i++){if(selectedCount==(endRow-startRow+1)){if(i!=dontDeselect){me.doDeselect(i,true)}}else{records.push(store.getAt(i))}}me.doMultiSelect(records,true)},select:function(records,keepExisting,suppressEvent){if(Ext.isDefined(records)){this.doSelect(records,keepExisting,suppressEvent)}},deselect:function(records,suppressEvent){this.doDeselect(records,suppressEvent)},doSelect:function(records,keepExisting,suppressEvent){var me=this,record;if(me.locked){return}if(typeof records==="number"){records=[me.store.getAt(records)]}if(me.selectionMode=="SINGLE"&&records){record=records.length?records[0]:records;me.doSingleSelect(record,suppressEvent)}else{me.doMultiSelect(records,keepExisting,suppressEvent)}},doMultiSelect:function(records,keepExisting,suppressEvent){var me=this,selected=me.selected,change=false,i=0,len,record;if(me.locked){return}records=!Ext.isArray(records)?[records]:records;len=records.length;if(!keepExisting&&selected.getCount()>0){if(me.doDeselect(me.getSelection(),suppressEvent)===false){return}}function commit(){selected.add(record);change=true}for(;i<len;i++){record=records[i];if(keepExisting&&me.isSelected(record)){continue}me.lastSelected=record;me.onSelectChange(record,true,suppressEvent,commit)}me.setLastFocused(record,suppressEvent);me.maybeFireSelectionChange(change&&!suppressEvent)},doDeselect:function(records,suppressEvent){var me=this,selected=me.selected,i=0,len,record,attempted=0,accepted=0;if(me.locked){return false}if(typeof records==="number"){records=[me.store.getAt(records)]}else{if(!Ext.isArray(records)){records=[records]}}function commit(){++accepted;selected.remove(record)}len=records.length;for(;i<len;i++){record=records[i];if(me.isSelected(record)){if(me.lastSelected==record){me.lastSelected=selected.last()}++attempted;me.onSelectChange(record,false,suppressEvent,commit)}}me.maybeFireSelectionChange(accepted>0&&!suppressEvent);return accepted===attempted},doSingleSelect:function(record,suppressEvent){var me=this,changed=false,selected=me.selected;if(me.locked){return}if(me.isSelected(record)){return}function commit(){me.bulkChange=true;if(selected.getCount()>0&&me.doDeselect(me.lastSelected,suppressEvent)===false){delete me.bulkChange;return false}delete me.bulkChange;selected.add(record);me.lastSelected=record;changed=true}me.onSelectChange(record,true,suppressEvent,commit);if(changed){if(!suppressEvent){me.setLastFocused(record)}me.maybeFireSelectionChange(!suppressEvent)}},setLastFocused:function(record,supressFocus){var me=this,recordBeforeLast=me.lastFocused;me.lastFocused=record;me.onLastFocusChanged(recordBeforeLast,record,supressFocus)},isFocused:function(record){return record===this.getLastFocused()},maybeFireSelectionChange:function(fireEvent){var me=this;if(fireEvent&&!me.bulkChange){me.fireEvent("selectionchange",me,me.getSelection())}},getLastSelected:function(){return this.lastSelected},getLastFocused:function(){return this.lastFocused},getSelection:function(){return this.selected.getRange()},getSelectionMode:function(){return this.selectionMode},setSelectionMode:function(selMode){selMode=selMode?selMode.toUpperCase():"SINGLE";this.selectionMode=this.modes[selMode]?selMode:"SINGLE"},isLocked:function(){return this.locked},setLocked:function(locked){this.locked=!!locked},isSelected:function(record){record=Ext.isNumber(record)?this.store.getAt(record):record;return this.selected.indexOf(record)!==-1},hasSelection:function(){return this.selected.getCount()>0},refresh:function(){var me=this,toBeSelected=[],oldSelections=me.getSelection(),len=oldSelections.length,selection,change,i=0,lastFocused=this.getLastFocused();for(;i<len;i++){selection=oldSelections[i];if(!this.pruneRemoved||me.store.indexOf(selection)!==-1){toBeSelected.push(selection)}}if(me.selected.getCount()!=toBeSelected.length){change=true}me.clearSelections();if(me.store.indexOf(lastFocused)!==-1){this.setLastFocused(lastFocused,true)}if(toBeSelected.length){me.doSelect(toBeSelected,false,true)}me.maybeFireSelectionChange(change)},clearSelections:function(){this.selected.clear();this.lastSelected=null;this.setLastFocused(null)},onStoreAdd:function(){},onStoreClear:function(){if(this.selected.getCount>0){this.clearSelections();this.maybeFireSelectionChange(true)}},onStoreRemove:function(store,record){var me=this,selected=me.selected;if(me.locked||!me.pruneRemoved){return}if(selected.remove(record)){if(me.lastSelected==record){me.lastSelected=null}if(me.getLastFocused()==record){me.setLastFocused(null)}me.maybeFireSelectionChange(true)}},getCount:function(){return this.selected.getCount()},destroy:function(){},onStoreUpdate:function(){},onSelectChange:function(record,isSelected,suppressEvent){},onLastFocusChanged:function(oldFocused,newFocused){},onEditorKey:function(field,e){},bindComponent:function(cmp){}});Ext.define("Ext.selection.DataViewModel",{extend:"Ext.selection.Model",requires:["Ext.util.KeyNav"],deselectOnContainerClick:true,enableKeyNav:true,constructor:function(cfg){this.addEvents("beforedeselect","beforeselect","deselect","select");this.callParent(arguments)},bindComponent:function(view){var me=this,eventListeners={refresh:me.refresh,scope:me};me.view=view;me.bind(view.getStore());view.on(view.triggerEvent,me.onItemClick,me);view.on(view.triggerCtEvent,me.onContainerClick,me);view.on(eventListeners);if(me.enableKeyNav){me.initKeyNav(view)}},onItemClick:function(view,record,item,index,e){this.selectWithEvent(record,e)},onContainerClick:function(){if(this.deselectOnContainerClick){this.deselectAll()}},initKeyNav:function(view){var me=this;if(!view.rendered){view.on("render",Ext.Function.bind(me.initKeyNav,me,[view],0),me,{single:true});return}view.el.set({tabIndex:-1});me.keyNav=Ext.create("Ext.util.KeyNav",view.el,{down:Ext.pass(me.onNavKey,[1],me),right:Ext.pass(me.onNavKey,[1],me),left:Ext.pass(me.onNavKey,[-1],me),up:Ext.pass(me.onNavKey,[-1],me),scope:me})},onNavKey:function(step){step=step||1;var me=this,view=me.view,selected=me.getSelection()[0],numRecords=me.view.store.getCount(),idx;if(selected){idx=view.indexOf(view.getNode(selected))+step}else{idx=0}if(idx<0){idx=numRecords-1}else{if(idx>=numRecords){idx=0}}me.select(idx)},onSelectChange:function(record,isSelected,suppressEvent,commitFn){var me=this,view=me.view,eventName=isSelected?"select":"deselect";if((suppressEvent||me.fireEvent("before"+eventName,me,record))!==false&&commitFn()!==false){if(isSelected){view.onItemSelect(record)}else{view.onItemDeselect(record)}if(!suppressEvent){me.fireEvent(eventName,me,record)}}},destroy:function(){Ext.destroy(this.keyNav);this.callParent()}});Ext.define("Ext.state.CookieProvider",{extend:"Ext.state.Provider",constructor:function(config){var me=this;me.path="/";me.expires=new Date(new Date().getTime()+(1000*60*60*24*7));me.domain=null;me.secure=false;me.callParent(arguments);me.state=me.readCookies()},set:function(name,value){var me=this;if(typeof value=="undefined"||value===null){me.clear(name);return}me.setCookie(name,value);me.callParent(arguments)},clear:function(name){this.clearCookie(name);this.callParent(arguments)},readCookies:function(){var cookies={},c=document.cookie+";",re=/\s?(.*?)=(.*?);/g,prefix=this.prefix,len=prefix.length,matches,name,value;while((matches=re.exec(c))!=null){name=matches[1];value=matches[2];if(name&&name.substring(0,len)==prefix){cookies[name.substr(len)]=this.decodeValue(value)}}return cookies},setCookie:function(name,value){var me=this;document.cookie=me.prefix+name+"="+me.encodeValue(value)+((me.expires==null)?"":("; expires="+me.expires.toGMTString()))+((me.path==null)?"":("; path="+me.path))+((me.domain==null)?"":("; domain="+me.domain))+((me.secure==true)?"; secure":"")},clearCookie:function(name){var me=this;document.cookie=me.prefix+name+"=null; expires=Thu, 01-Jan-70 00:00:01 GMT"+((me.path==null)?"":("; path="+me.path))+((me.domain==null)?"":("; domain="+me.domain))+((me.secure==true)?"; secure":"")}});Ext.define("Ext.state.LocalStorageProvider",{extend:"Ext.state.Provider",alias:"state.localstorage",constructor:function(){var me=this;me.callParent(arguments);me.store=me.getStorageObject();me.state=me.readLocalStorage()},readLocalStorage:function(){var store=this.store,i=0,len=store.length,prefix=this.prefix,prefixLen=prefix.length,data={},key;for(;i<len;++i){key=store.key(i);if(key.substring(0,prefixLen)==prefix){data[key.substr(prefixLen)]=this.decodeValue(store.getItem(key))}}return data},set:function(name,value){var me=this;me.clear(name);if(typeof value=="undefined"||value===null){return}me.store.setItem(me.prefix+name,me.encodeValue(value));me.callParent(arguments)},clear:function(name){this.store.removeItem(this.prefix+name);this.callParent(arguments)},getStorageObject:function(){try{var supports="localStorage" in window&&window.localStorage!==null;if(supports){return window.localStorage}}catch(e){return false}}});Ext.define("Ext.util.Point",{extend:"Ext.util.Region",statics:{fromEvent:function(e){e=(e.changedTouches&&e.changedTouches.length>0)?e.changedTouches[0]:e;return new this(e.pageX,e.pageY)}},constructor:function(x,y){this.callParent([y,x,y,x])},toString:function(){return"Point["+this.x+","+this.y+"]"},equals:function(p){return(this.x==p.x&&this.y==p.y)},isWithin:function(p,threshold){if(!Ext.isObject(threshold)){threshold={x:threshold,y:threshold}}return(this.x<=p.x+threshold.x&&this.x>=p.x-threshold.x&&this.y<=p.y+threshold.y&&this.y>=p.y-threshold.y)},roundedEquals:function(p){return(Math.round(this.x)==Math.round(p.x)&&Math.round(this.y)==Math.round(p.y))}},function(){this.prototype.translate=Ext.util.Region.prototype.translateBy});Ext.define("Ext.LoadMask",{extend:"Ext.Component",alias:"widget.loadmask",mixins:{floating:"Ext.util.Floating"},uses:["Ext.data.StoreManager"],msg:"Loading...",msgCls:Ext.baseCSSPrefix+"mask-loading",useMsg:true,disabled:false,baseCls:Ext.baseCSSPrefix+"mask-msg",renderTpl:'<div style="position:relative" class="{msgCls}"></div>',modal:true,floating:{shadow:"frame"},focusOnToFront:false,constructor:function(el,config){var me=this;if(el.isComponent){me.ownerCt=el;me.bindComponent(el)}else{me.ownerCt=new Ext.Component({el:Ext.get(el),rendered:true,componentLayoutCounter:1});me.container=el}me.callParent([config]);if(me.store){me.bindStore(me.store,true)}me.renderData={msgCls:me.msgCls};me.renderSelectors={msgEl:"div"}},bindComponent:function(comp){this.mon(comp,{resize:this.onComponentResize,scope:this})},afterRender:function(){this.callParent(arguments);this.container=this.floatParent.getContentTarget()},onComponentResize:function(){var me=this;if(me.rendered&&me.isVisible()){me.toFront();me.center()}},bindStore:function(store,initial){var me=this;if(!initial&&me.store){me.mun(me.store,{scope:me,beforeload:me.onBeforeLoad,load:me.onLoad,exception:me.onLoad});if(!store){me.store=null}}if(store){store=Ext.data.StoreManager.lookup(store);me.mon(store,{scope:me,beforeload:me.onBeforeLoad,load:me.onLoad,exception:me.onLoad})}me.store=store;if(store&&store.isLoading()){me.onBeforeLoad()}},onDisable:function(){this.callParent(arguments);if(this.loading){this.onLoad()}},onBeforeLoad:function(){var me=this,owner=me.ownerCt||me.floatParent,origin;if(!this.disabled){if(owner.componentLayoutCounter){Ext.Component.prototype.show.call(me)}else{origin=owner.afterComponentLayout;owner.afterComponentLayout=function(){owner.afterComponentLayout=origin;origin.apply(owner,arguments);if(me.loading){Ext.Component.prototype.show.call(me)}}}}},onHide:function(){var me=this;me.callParent(arguments);me.showOnParentShow=true},onShow:function(){var me=this,msgEl=me.msgEl;me.callParent(arguments);me.loading=true;if(me.useMsg){msgEl.show().update(me.msg)}else{msgEl.parent().hide()}},afterShow:function(){this.callParent(arguments);this.center()},onLoad:function(){this.loading=false;Ext.Component.prototype.hide.call(this)}});Ext.define("Ext.view.AbstractView",{extend:"Ext.Component",alternateClassName:"Ext.view.AbstractView",requires:["Ext.LoadMask","Ext.data.StoreManager","Ext.CompositeElementLite","Ext.DomQuery","Ext.selection.DataViewModel"],inheritableStatics:{getRecord:function(node){return this.getBoundView(node).getRecord(node)},getBoundView:function(node){return Ext.getCmp(node.boundView)}},deferInitialRefresh:true,itemCls:Ext.baseCSSPrefix+"dataview-item",loadingText:"Loading...",loadMask:true,loadingUseMsg:true,selectedItemCls:Ext.baseCSSPrefix+"item-selected",emptyText:"",deferEmptyText:true,trackOver:false,blockRefresh:false,last:false,triggerEvent:"itemclick",triggerCtEvent:"containerclick",addCmpEvents:function(){},initComponent:function(){var me=this,isDef=Ext.isDefined,itemTpl=me.itemTpl,memberFn={};if(itemTpl){if(Ext.isArray(itemTpl)){itemTpl=itemTpl.join("")}else{if(Ext.isObject(itemTpl)){memberFn=Ext.apply(memberFn,itemTpl.initialConfig);itemTpl=itemTpl.html}}if(!me.itemSelector){me.itemSelector="."+me.itemCls}itemTpl=Ext.String.format('<tpl for="."><div class="{0}">{1}</div></tpl>',me.itemCls,itemTpl);me.tpl=Ext.create("Ext.XTemplate",itemTpl,memberFn)}me.callParent();if(Ext.isString(me.tpl)||Ext.isArray(me.tpl)){me.tpl=Ext.create("Ext.XTemplate",me.tpl)}me.addEvents("beforerefresh","refresh","viewready","itemupdate","itemadd","itemremove");me.addCmpEvents();me.store=Ext.data.StoreManager.lookup(me.store||"ext-empty-store");me.all=new Ext.CompositeElementLite()},onRender:function(){var me=this,mask=me.loadMask,cfg={msg:me.loadingText,msgCls:me.loadingCls,useMsg:me.loadingUseMsg};me.callParent(arguments);if(mask){if(Ext.isObject(mask)){cfg=Ext.apply(cfg,mask)}me.loadMask=Ext.create("Ext.LoadMask",me,cfg);me.loadMask.on({scope:me,beforeshow:me.onMaskBeforeShow,hide:me.onMaskHide})}},onMaskBeforeShow:function(){var loadingHeight=this.loadingHeight;this.getSelectionModel().deselectAll();if(loadingHeight){this.setCalculatedSize(undefined,loadingHeight)}},onMaskHide:function(){var me=this;if(!me.destroying&&me.loadingHeight){me.setHeight(me.height)}},afterRender:function(){this.callParent(arguments);this.getSelectionModel().bindComponent(this)},getSelectionModel:function(){var me=this,mode="SINGLE";if(!me.selModel){me.selModel={}}if(me.simpleSelect){mode="SIMPLE"}else{if(me.multiSelect){mode="MULTI"}}Ext.applyIf(me.selModel,{allowDeselect:me.allowDeselect,mode:mode});if(!me.selModel.events){me.selModel=Ext.create("Ext.selection.DataViewModel",me.selModel)}if(!me.selModel.hasRelaySetup){me.relayEvents(me.selModel,["selectionchange","beforeselect","beforedeselect","select","deselect"]);me.selModel.hasRelaySetup=true}if(me.disableSelection){me.selModel.locked=true}return me.selModel},refresh:function(){var me=this,el,records;if(!me.rendered||me.isDestroyed){return}me.fireEvent("beforerefresh",me);el=me.getTargetEl();records=me.store.getRange();el.update("");if(records.length<1){if(!me.deferEmptyText||me.hasSkippedEmptyText){el.update(me.emptyText)}me.all.clear()}else{me.tpl.overwrite(el,me.collectData(records,0));me.all.fill(Ext.query(me.getItemSelector(),el.dom));me.updateIndexes(0)}me.selModel.refresh();me.hasSkippedEmptyText=true;me.fireEvent("refresh",me);if(!me.viewReady){me.viewReady=true;me.fireEvent("viewready",me)}},prepareData:function(data,index,record){if(record){Ext.apply(data,record.getAssociatedData())}return data},collectData:function(records,startIndex){var r=[],i=0,len=records.length,record;for(;i<len;i++){record=records[i];r[r.length]=this.prepareData(record[record.persistenceProperty],startIndex+i,record)}return r},bufferRender:function(records,index){var div=document.createElement("div");this.tpl.overwrite(div,this.collectData(records,index));return Ext.query(this.getItemSelector(),div)},onUpdate:function(ds,record){var me=this,index=me.store.indexOf(record),node;if(index>-1){node=me.bufferRender([record],index)[0];if(me.getNode(record)){me.all.replaceElement(index,node,true);me.updateIndexes(index,index);me.selModel.refresh();me.fireEvent("itemupdate",record,index,node)}}},onAdd:function(ds,records,index){var me=this,nodes;if(me.all.getCount()===0){me.refresh();return}nodes=me.bufferRender(records,index);me.doAdd(nodes,records,index);me.selModel.refresh();me.updateIndexes(index);me.fireEvent("itemadd",records,index,nodes)},doAdd:function(nodes,records,index){var all=this.all;if(index<all.getCount()){all.item(index).insertSibling(nodes,"before",true)}else{all.last().insertSibling(nodes,"after",true)}Ext.Array.insert(all.elements,index,nodes)},onRemove:function(ds,record,index){var me=this;me.doRemove(record,index);me.updateIndexes(index);if(me.store.getCount()===0){me.refresh()}me.fireEvent("itemremove",record,index)},doRemove:function(record,index){this.all.removeElement(index,true)},refreshNode:function(index){this.onUpdate(this.store,this.store.getAt(index))},updateIndexes:function(startIndex,endIndex){var ns=this.all.elements,records=this.store.getRange(),i;startIndex=startIndex||0;endIndex=endIndex||((endIndex===0)?0:(ns.length-1));for(i=startIndex;i<=endIndex;i++){ns[i].viewIndex=i;ns[i].viewRecordId=records[i].internalId;if(!ns[i].boundView){ns[i].boundView=this.id}}},getStore:function(){return this.store},bindStore:function(store,initial){var me=this,maskStore;if(!initial&&me.store){if(store!==me.store&&me.store.autoDestroy){me.store.destroyStore()}else{me.mun(me.store,{scope:me,datachanged:me.onDataChanged,add:me.onAdd,remove:me.onRemove,update:me.onUpdate,clear:me.refresh})}if(!store){if(me.loadMask&&me.loadMask.bindStore){me.loadMask.bindStore(null)}me.store=null}}if(store){store=Ext.data.StoreManager.lookup(store);me.mon(store,{scope:me,datachanged:me.onDataChanged,add:me.onAdd,remove:me.onRemove,update:me.onUpdate,clear:me.refresh});if(me.loadMask&&me.loadMask.bindStore){if(Ext.Array.contains(store.alias,"store.node")){maskStore=this.ownerCt.store}else{maskStore=store}me.loadMask.bindStore(maskStore)}}me.viewReady=false;me.store=store;me.getSelectionModel().bind(store);if(store){if(initial&&me.deferInitialRefresh){Ext.Function.defer(function(){if(!me.isDestroyed){me.refresh(true)}},1)}else{me.refresh(true)}}},onDataChanged:function(){if(this.blockRefresh!==true){this.refresh.apply(this,arguments)}},findItemByChild:function(node){return Ext.fly(node).findParent(this.getItemSelector(),this.getTargetEl())},findTargetByEvent:function(e){return e.getTarget(this.getItemSelector(),this.getTargetEl())},getSelectedNodes:function(){var nodes=[],records=this.selModel.getSelection(),ln=records.length,i=0;for(;i<ln;i++){nodes.push(this.getNode(records[i]))}return nodes},getRecords:function(nodes){var records=[],i=0,len=nodes.length,data=this.store.data;for(;i<len;i++){records[records.length]=data.getByKey(nodes[i].viewRecordId)}return records},getRecord:function(node){return this.store.data.getByKey(Ext.getDom(node).viewRecordId)},isSelected:function(node){var r=this.getRecord(node);return this.selModel.isSelected(r)},select:function(records,keepExisting,suppressEvent){this.selModel.select(records,keepExisting,suppressEvent)},deselect:function(records,suppressEvent){this.selModel.deselect(records,suppressEvent)},getNode:function(nodeInfo){if(!this.rendered){return null}if(Ext.isString(nodeInfo)){return document.getElementById(nodeInfo)}if(Ext.isNumber(nodeInfo)){return this.all.elements[nodeInfo]}if(nodeInfo instanceof Ext.data.Model){return this.getNodeByRecord(nodeInfo)}return nodeInfo},getNodeByRecord:function(record){var ns=this.all.elements,ln=ns.length,i=0;for(;i<ln;i++){if(ns[i].viewRecordId===record.internalId){return ns[i]}}return null},getNodes:function(start,end){var ns=this.all.elements,nodes=[],i;start=start||0;end=!Ext.isDefined(end)?Math.max(ns.length-1,0):end;if(start<=end){for(i=start;i<=end&&ns[i];i++){nodes.push(ns[i])}}else{for(i=start;i>=end&&ns[i];i--){nodes.push(ns[i])}}return nodes},indexOf:function(node){node=this.getNode(node);if(Ext.isNumber(node.viewIndex)){return node.viewIndex}return this.all.indexOf(node)},onDestroy:function(){var me=this;me.all.clear();me.callParent();me.bindStore(null);me.selModel.destroy()},onItemSelect:function(record){var node=this.getNode(record);if(node){Ext.fly(node).addCls(this.selectedItemCls)}},onItemDeselect:function(record){var node=this.getNode(record);if(node){Ext.fly(node).removeCls(this.selectedItemCls)}},getItemSelector:function(){return this.itemSelector}},function(){Ext.deprecate("extjs","4.0",function(){Ext.view.AbstractView.override({getSelectionCount:function(){if(Ext.global.console){Ext.global.console.warn("DataView: getSelectionCount will be removed, please interact with the Ext.selection.DataViewModel")}return this.selModel.getSelection().length},getSelectedRecords:function(){if(Ext.global.console){Ext.global.console.warn("DataView: getSelectedRecords will be removed, please interact with the Ext.selection.DataViewModel")}return this.selModel.getSelection()},select:function(records,keepExisting,supressEvents){if(Ext.global.console){Ext.global.console.warn("DataView: select will be removed, please access select through a DataView's SelectionModel, ie: view.getSelectionModel().select()")}var sm=this.getSelectionModel();return sm.select.apply(sm,arguments)},clearSelections:function(){if(Ext.global.console){Ext.global.console.warn("DataView: clearSelections will be removed, please access deselectAll through DataView's SelectionModel, ie: view.getSelectionModel().deselectAll()")}var sm=this.getSelectionModel();return sm.deselectAll()}})})});Ext.define("Ext.Action",{constructor:function(config){this.initialConfig=config;this.itemId=config.itemId=(config.itemId||config.id||Ext.id());this.items=[]},isAction:true,setText:function(text){this.initialConfig.text=text;this.callEach("setText",[text])},getText:function(){return this.initialConfig.text},setIconCls:function(cls){this.initialConfig.iconCls=cls;this.callEach("setIconCls",[cls])},getIconCls:function(){return this.initialConfig.iconCls},setDisabled:function(v){this.initialConfig.disabled=v;this.callEach("setDisabled",[v])},enable:function(){this.setDisabled(false)},disable:function(){this.setDisabled(true)},isDisabled:function(){return this.initialConfig.disabled},setHidden:function(v){this.initialConfig.hidden=v;this.callEach("setVisible",[!v])},show:function(){this.setHidden(false)},hide:function(){this.setHidden(true)},isHidden:function(){return this.initialConfig.hidden},setHandler:function(fn,scope){this.initialConfig.handler=fn;this.initialConfig.scope=scope;this.callEach("setHandler",[fn,scope])},each:function(fn,scope){Ext.each(this.items,fn,scope)},callEach:function(fnName,args){var items=this.items,i=0,len=items.length;for(;i<len;i++){items[i][fnName].apply(items[i],args)}},addComponent:function(comp){this.items.push(comp);comp.on("destroy",this.removeComponent,this)},removeComponent:function(comp){Ext.Array.remove(this.items,comp)},execute:function(){this.initialConfig.handler.apply(this.initialConfig.scope||Ext.global,arguments)}});Ext.define("Ext.layout.component.Editor",{alias:["layout.editor"],extend:"Ext.layout.component.Component",onLayout:function(width,height){var me=this,owner=me.owner,autoSize=owner.autoSize;if(autoSize===true){autoSize={width:"field",height:"field"}}if(autoSize){width=me.getDimension(owner,autoSize.width,"Width",width);height=me.getDimension(owner,autoSize.height,"Height",height)}me.setTargetSize(width,height);owner.field.setSize(width,height)},getDimension:function(owner,type,dimension,actual){var method="get"+dimension;switch(type){case"boundEl":return owner.boundEl[method]();case"field":return owner.field[method]();default:return actual}}});Ext.define("Ext.Editor",{extend:"Ext.Component",alias:"widget.editor",requires:["Ext.layout.component.Editor"],componentLayout:"editor",allowBlur:true,revertInvalid:true,value:"",alignment:"c-c?",offsets:[0,0],shadow:"frame",constrain:false,swallowKeys:true,completeOnEnter:true,cancelOnEsc:true,updateEl:false,hidden:true,baseCls:Ext.baseCSSPrefix+"editor",initComponent:function(){var me=this,field=me.field=Ext.ComponentManager.create(me.field,"textfield");Ext.apply(field,{inEditor:true,msgTarget:field.msgTarget=="title"?"title":"qtip"});me.mon(field,{scope:me,blur:{fn:me.onBlur,delay:1},specialkey:me.onSpecialKey});if(field.grow){me.mon(field,"autosize",me.onAutoSize,me,{delay:1})}me.floating={constrain:me.constrain};me.callParent(arguments);me.addEvents("beforestartedit","startedit","beforecomplete","complete","canceledit","specialkey")},onAutoSize:function(){this.doComponentLayout()},onRender:function(ct,position){var me=this,field=me.field,inputEl=field.inputEl;me.callParent(arguments);field.render(me.el);if(inputEl){inputEl.dom.name="";if(me.swallowKeys){inputEl.swallowEvent(["keypress","keydown"])}}},onSpecialKey:function(field,event){var me=this,key=event.getKey(),complete=me.completeOnEnter&&key==event.ENTER,cancel=me.cancelOnEsc&&key==event.ESC;if(complete||cancel){event.stopEvent();Ext.defer(function(){if(complete){me.completeEdit()}else{me.cancelEdit()}if(field.triggerBlur){field.triggerBlur()}},10)}this.fireEvent("specialkey",this,field,event)},startEdit:function(el,value){var me=this,field=me.field;me.completeEdit();me.boundEl=Ext.get(el);value=Ext.isDefined(value)?value:me.boundEl.dom.innerHTML;if(!me.rendered){me.render(me.parentEl||document.body)}if(me.fireEvent("beforestartedit",me,me.boundEl,value)!==false){me.startValue=value;me.show();field.reset();field.setValue(value);me.realign(true);field.focus(false,10);if(field.autoSize){field.autoSize()}me.editing=true}},realign:function(autoSize){var me=this;if(autoSize===true){me.doComponentLayout()}me.alignTo(me.boundEl,me.alignment,me.offsets)},completeEdit:function(remainVisible){var me=this,field=me.field,value;if(!me.editing){return}if(field.assertValue){field.assertValue()}value=me.getValue();if(!field.isValid()){if(me.revertInvalid!==false){me.cancelEdit(remainVisible)}return}if(String(value)===String(me.startValue)&&me.ignoreNoChange){me.hideEdit(remainVisible);return}if(me.fireEvent("beforecomplete",me,value,me.startValue)!==false){value=me.getValue();if(me.updateEl&&me.boundEl){me.boundEl.update(value)}me.hideEdit(remainVisible);me.fireEvent("complete",me,value,me.startValue)}},onShow:function(){var me=this;me.callParent(arguments);if(me.hideEl!==false){me.boundEl.hide()}me.fireEvent("startedit",me.boundEl,me.startValue)},cancelEdit:function(remainVisible){var me=this,startValue=me.startValue,value;if(me.editing){value=me.getValue();me.setValue(startValue);me.hideEdit(remainVisible);me.fireEvent("canceledit",me,value,startValue)}},hideEdit:function(remainVisible){if(remainVisible!==true){this.editing=false;this.hide()}},onBlur:function(){var me=this;if(me.allowBlur===true&&me.editing&&me.selectSameEditor!==true){me.completeEdit()}},onHide:function(){var me=this,field=me.field;if(me.editing){me.completeEdit();return}field.blur();if(field.collapse){field.collapse()}if(me.hideEl!==false){me.boundEl.show()}me.callParent(arguments)},setValue:function(value){this.field.setValue(value)},getValue:function(){return this.field.getValue()},beforeDestroy:function(){var me=this;Ext.destroy(me.field);delete me.field;delete me.parentEl;delete me.boundEl;me.callParent(arguments)}});Ext.define("Ext.Img",{extend:"Ext.Component",alias:["widget.image","widget.imagecomponent"],src:"",getElConfig:function(){return{tag:"img",src:this.src}},initRenderTpl:Ext.emptyFn,setSrc:function(src){var me=this,img=me.el;me.src=src;if(img){img.dom.src=src}}});Ext.define("Ext.Layer",{uses:["Ext.Shadow"],statics:{shims:[]},extend:"Ext.Element",constructor:function(config,existingEl){config=config||{};var me=this,dh=Ext.DomHelper,cp=config.parentEl,pel=cp?Ext.getDom(cp):document.body,hm=config.hideMode;if(existingEl){me.dom=Ext.getDom(existingEl)}if(!me.dom){me.dom=dh.append(pel,config.dh||{tag:"div",cls:Ext.baseCSSPrefix+"layer"})}else{me.addCls(Ext.baseCSSPrefix+"layer");if(!me.dom.parentNode){pel.appendChild(me.dom)}}if(config.cls){me.addCls(config.cls)}me.constrain=config.constrain!==false;if(hm){me.setVisibilityMode(Ext.Element[hm.toUpperCase()]);if(me.visibilityMode==Ext.Element.ASCLASS){me.visibilityCls=config.visibilityCls}}else{if(config.useDisplay){me.setVisibilityMode(Ext.Element.DISPLAY)}else{me.setVisibilityMode(Ext.Element.VISIBILITY)}}if(config.id){me.id=me.dom.id=config.id}else{me.id=Ext.id(me.dom)}me.position("absolute");if(config.shadow){me.shadowOffset=config.shadowOffset||4;me.shadow=Ext.create("Ext.Shadow",{offset:me.shadowOffset,mode:config.shadow});me.disableShadow()}else{me.shadowOffset=0}me.useShim=config.shim!==false&&Ext.useShims;if(config.hidden===true){me.hide()}else{me.show()}},getZIndex:function(){return parseInt((this.getShim()||this).getStyle("z-index"),10)},getShim:function(){var me=this,shim,pn;if(!me.useShim){return null}if(!me.shim){shim=me.self.shims.shift();if(!shim){shim=me.createShim();shim.enableDisplayMode("block");shim.hide()}pn=me.dom.parentNode;if(shim.dom.parentNode!=pn){pn.insertBefore(shim.dom,me.dom)}me.shim=shim}return me.shim},hideShim:function(){var me=this;if(me.shim){me.shim.setDisplayed(false);me.self.shims.push(me.shim);delete me.shim}},disableShadow:function(){var me=this;if(me.shadow&&!me.shadowDisabled){me.shadowDisabled=true;me.shadow.hide();me.lastShadowOffset=me.shadowOffset;me.shadowOffset=0}},enableShadow:function(show){var me=this;if(me.shadow&&me.shadowDisabled){me.shadowDisabled=false;me.shadowOffset=me.lastShadowOffset;delete me.lastShadowOffset;if(show){me.sync(true)}}},sync:function(doShow){var me=this,shadow=me.shadow,shadowPos,shimStyle,shadowSize;if(!me.updating&&me.isVisible()&&(shadow||me.useShim)){var shim=me.getShim(),l=me.getLeft(true),t=me.getTop(true),w=me.dom.offsetWidth,h=me.dom.offsetHeight,shimIndex;if(shadow&&!me.shadowDisabled){if(doShow&&!shadow.isVisible()){shadow.show(me)}else{shadow.realign(l,t,w,h)}if(shim){shimIndex=shim.getStyle("z-index");if(shimIndex>me.zindex){me.shim.setStyle("z-index",me.zindex-2)}shim.show();if(shadow.isVisible()){shadowPos=shadow.el.getXY();shimStyle=shim.dom.style;shadowSize=shadow.el.getSize();if(Ext.supports.CSS3BoxShadow){shadowSize.height+=6;shadowSize.width+=4;shadowPos[0]-=2;shadowPos[1]-=4}shimStyle.left=(shadowPos[0])+"px";shimStyle.top=(shadowPos[1])+"px";shimStyle.width=(shadowSize.width)+"px";shimStyle.height=(shadowSize.height)+"px"}else{shim.setSize(w,h);shim.setLeftTop(l,t)}}}else{if(shim){shimIndex=shim.getStyle("z-index");if(shimIndex>me.zindex){me.shim.setStyle("z-index",me.zindex-2)}shim.show();shim.setSize(w,h);shim.setLeftTop(l,t)}}}return me},remove:function(){this.hideUnders();this.callParent()},beginUpdate:function(){this.updating=true},endUpdate:function(){this.updating=false;this.sync(true)},hideUnders:function(){if(this.shadow){this.shadow.hide()}this.hideShim()},constrainXY:function(){if(this.constrain){var vw=Ext.Element.getViewWidth(),vh=Ext.Element.getViewHeight(),s=Ext.getDoc().getScroll(),xy=this.getXY(),x=xy[0],y=xy[1],so=this.shadowOffset,w=this.dom.offsetWidth+so,h=this.dom.offsetHeight+so,moved=false;if((x+w)>vw+s.left){x=vw-w-so;moved=true}if((y+h)>vh+s.top){y=vh-h-so;moved=true}if(x<s.left){x=s.left;moved=true}if(y<s.top){y=s.top;moved=true}if(moved){Ext.Layer.superclass.setXY.call(this,[x,y]);this.sync()}}return this},getConstrainOffset:function(){return this.shadowOffset},setVisible:function(visible,animate,duration,callback,easing){var me=this,cb;cb=function(){if(visible){me.sync(true)}if(callback){callback()}};if(!visible){me.hideUnders(true)}me.callParent([visible,animate,duration,callback,easing]);if(!animate){cb()}return me},beforeFx:function(){this.beforeAction();return this.callParent(arguments)},afterFx:function(){this.callParent(arguments);this.sync(this.isVisible())},beforeAction:function(){if(!this.updating&&this.shadow){this.shadow.hide()}},setLeft:function(left){this.callParent(arguments);return this.sync()},setTop:function(top){this.callParent(arguments);return this.sync()},setLeftTop:function(left,top){this.callParent(arguments);return this.sync()},setXY:function(xy,animate,duration,callback,easing){var me=this;callback=me.createCB(callback);me.fixDisplay();me.beforeAction();me.callParent([xy,animate,duration,callback,easing]);if(!animate){callback()}return me},createCB:function(callback){var me=this,showShadow=me.shadow&&me.shadow.isVisible();return function(){me.constrainXY();me.sync(showShadow);if(callback){callback()}}},setX:function(x,animate,duration,callback,easing){this.setXY([x,this.getY()],animate,duration,callback,easing);return this},setY:function(y,animate,duration,callback,easing){this.setXY([this.getX(),y],animate,duration,callback,easing);return this},setSize:function(w,h,animate,duration,callback,easing){var me=this;callback=me.createCB(callback);me.beforeAction();me.callParent([w,h,animate,duration,callback,easing]);if(!animate){callback()}return me},setWidth:function(w,animate,duration,callback,easing){var me=this;callback=me.createCB(callback);me.beforeAction();me.callParent([w,animate,duration,callback,easing]);if(!animate){callback()}return me},setHeight:function(h,animate,duration,callback,easing){var me=this;callback=me.createCB(callback);me.beforeAction();me.callParent([h,animate,duration,callback,easing]);if(!animate){callback()}return me},setBounds:function(x,y,width,height,animate,duration,callback,easing){var me=this;callback=me.createCB(callback);me.beforeAction();if(!animate){Ext.Layer.superclass.setXY.call(me,[x,y]);Ext.Layer.superclass.setSize.call(me,width,height);callback()}else{me.callParent([x,y,width,height,animate,duration,callback,easing])}return me},setZIndex:function(zindex){var me=this;me.zindex=zindex;if(me.getShim()){me.shim.setStyle("z-index",zindex++)}if(me.shadow){me.shadow.setZIndex(zindex++)}return me.setStyle("z-index",zindex)},setOpacity:function(opacity){if(this.shadow){this.shadow.setOpacity(opacity)}return this.callParent(arguments)}});Ext.define("Ext.layout.component.ProgressBar",{alias:["layout.progressbar"],extend:"Ext.layout.component.Component",type:"progressbar",onLayout:function(width,height){var me=this,owner=me.owner,textEl=owner.textEl;me.setElementSize(owner.el,width,height);textEl.setWidth(owner.el.getWidth(true));me.callParent([width,height]);owner.updateProgress(owner.value)}});Ext.define("Ext.ProgressBar",{extend:"Ext.Component",alias:"widget.progressbar",requires:["Ext.Template","Ext.CompositeElement","Ext.TaskManager","Ext.layout.component.ProgressBar"],uses:["Ext.fx.Anim"],baseCls:Ext.baseCSSPrefix+"progress",config:{animate:false,text:""},waitTimer:null,renderTpl:['<div class="{baseCls}-text {baseCls}-text-back">',"<div>&#160;</div>","</div>",'<div id="{id}-bar" class="{baseCls}-bar">','<div class="{baseCls}-text">',"<div>&#160;</div>","</div>","</div>"],componentLayout:"progressbar",initComponent:function(){this.callParent();this.addChildEls("bar");this.addEvents("update")},afterRender:function(){var me=this;me.textEl=me.textEl?Ext.get(me.textEl):me.el.select("."+me.baseCls+"-text");me.callParent(arguments);if(me.value){me.updateProgress(me.value,me.text)}else{me.updateText(me.text)}},updateProgress:function(value,text,animate){var me=this,newWidth;me.value=value||0;if(text){me.updateText(text)}if(me.rendered&&!me.isDestroyed){if(me.isVisible(true)){newWidth=Math.floor(me.value*me.el.getWidth(true));if(Ext.isForcedBorderBox){newWidth+=me.bar.getBorderWidth("lr")}if(animate===true||(animate!==false&&me.animate)){me.bar.stopAnimation();me.bar.animate(Ext.apply({to:{width:newWidth+"px"}},me.animate))}else{me.bar.setWidth(newWidth)}}else{me.doComponentLayout()}}me.fireEvent("update",me,me.value,text);return me},updateText:function(text){var me=this;me.text=text;if(me.rendered){me.textEl.update(me.text)}return me},applyText:function(text){this.updateText(text)},wait:function(o){var me=this;if(!me.waitTimer){scope=me;o=o||{};me.updateText(o.text);me.waitTimer=Ext.TaskManager.start({run:function(i){var inc=o.increment||10;i-=1;me.updateProgress(((((i+inc)%inc)+1)*(100/inc))*0.01,null,o.animate)},interval:o.interval||1000,duration:o.duration,onStop:function(){if(o.fn){o.fn.apply(o.scope||me)}me.reset()},scope:scope})}return me},isWaiting:function(){return this.waitTimer!==null},reset:function(hide){var me=this;me.updateProgress(0);me.clearTimer();if(hide===true){me.hide()}return me},clearTimer:function(){var me=this;if(me.waitTimer){me.waitTimer.onStop=null;Ext.TaskManager.stop(me.waitTimer);me.waitTimer=null}},onDestroy:function(){var me=this;me.clearTimer();if(me.rendered){if(me.textEl.isComposite){me.textEl.clear()}Ext.destroyMembers(me,"textEl","progressBar")}me.callParent()}});Ext.define("Ext.ShadowPool",{singleton:true,requires:["Ext.DomHelper"],markup:function(){if(Ext.supports.CSS3BoxShadow){return'<div class="'+Ext.baseCSSPrefix+'css-shadow" role="presentation"></div>'}else{if(Ext.isIE){return'<div class="'+Ext.baseCSSPrefix+'ie-shadow" role="presentation"></div>'}else{return'<div class="'+Ext.baseCSSPrefix+'frame-shadow" role="presentation"><div class="xst" role="presentation"><div class="xstl" role="presentation"></div><div class="xstc" role="presentation"></div><div class="xstr" role="presentation"></div></div><div class="xsc" role="presentation"><div class="xsml" role="presentation"></div><div class="xsmc" role="presentation"></div><div class="xsmr" role="presentation"></div></div><div class="xsb" role="presentation"><div class="xsbl" role="presentation"></div><div class="xsbc" role="presentation"></div><div class="xsbr" role="presentation"></div></div></div>'}}}(),shadows:[],pull:function(){var sh=this.shadows.shift();if(!sh){sh=Ext.get(Ext.DomHelper.insertHtml("beforeBegin",document.body.firstChild,this.markup));sh.autoBoxAdjust=false}return sh},push:function(sh){this.shadows.push(sh)},reset:function(){Ext.Array.each(this.shadows,function(shadow){shadow.remove()});this.shadows=[]}});Ext.define("Ext.Shadow",{requires:["Ext.ShadowPool"],constructor:function(config){var me=this,adjusts={h:0},offset,rad;Ext.apply(me,config);if(!Ext.isString(me.mode)){me.mode=me.defaultMode}offset=me.offset;rad=Math.floor(offset/2);me.opacity=50;switch(me.mode.toLowerCase()){case"drop":if(Ext.supports.CSS3BoxShadow){adjusts.w=adjusts.h=-offset;adjusts.l=adjusts.t=offset}else{adjusts.w=0;adjusts.l=adjusts.t=offset;adjusts.t-=1;if(Ext.isIE){adjusts.l-=offset+rad;adjusts.t-=offset+rad;adjusts.w-=rad;adjusts.h-=rad;adjusts.t+=1}}break;case"sides":if(Ext.supports.CSS3BoxShadow){adjusts.h-=offset;adjusts.t=offset;adjusts.l=adjusts.w=0}else{adjusts.w=(offset*2);adjusts.l=-offset;adjusts.t=offset-1;if(Ext.isIE){adjusts.l-=(offset-rad);adjusts.t-=offset+rad;adjusts.l+=1;adjusts.w-=(offset-rad)*2;adjusts.w-=rad+1;adjusts.h-=1}}break;case"frame":if(Ext.supports.CSS3BoxShadow){adjusts.l=adjusts.w=adjusts.t=0}else{adjusts.w=adjusts.h=(offset*2);adjusts.l=adjusts.t=-offset;adjusts.t+=1;adjusts.h-=2;if(Ext.isIE){adjusts.l-=(offset-rad);adjusts.t-=(offset-rad);adjusts.l+=1;adjusts.w-=(offset+rad+1);adjusts.h-=(offset+rad);adjusts.h+=1}break}}me.adjusts=adjusts},offset:4,defaultMode:"drop",show:function(target){var me=this,index;target=Ext.get(target);if(!me.el){me.el=Ext.ShadowPool.pull();if(me.el.dom.nextSibling!=target.dom){me.el.insertBefore(target)}}index=(parseInt(target.getStyle("z-index"),10)-1)||0;me.el.setStyle("z-index",me.zIndex||index);if(Ext.isIE&&!Ext.supports.CSS3BoxShadow){me.el.dom.style.filter="progid:DXImageTransform.Microsoft.alpha(opacity="+me.opacity+") progid:DXImageTransform.Microsoft.Blur(pixelradius="+(me.offset)+")"}me.realign(target.getLeft(true),target.getTop(true),target.dom.offsetWidth,target.dom.offsetHeight);me.el.dom.style.display="block"},isVisible:function(){return this.el?true:false},realign:function(l,t,targetWidth,targetHeight){if(!this.el){return}var adjusts=this.adjusts,d=this.el.dom,targetStyle=d.style,shadowWidth,shadowHeight,cn,sww,sws,shs;targetStyle.left=(l+adjusts.l)+"px";targetStyle.top=(t+adjusts.t)+"px";shadowWidth=Math.max(targetWidth+adjusts.w,0);shadowHeight=Math.max(targetHeight+adjusts.h,0);sws=shadowWidth+"px";shs=shadowHeight+"px";if(targetStyle.width!=sws||targetStyle.height!=shs){targetStyle.width=sws;targetStyle.height=shs;if(Ext.supports.CSS3BoxShadow){targetStyle.boxShadow="0 0 "+this.offset+"px 0 #888"}else{if(!Ext.isIE){cn=d.childNodes;sww=Math.max(0,(shadowWidth-12))+"px";cn[0].childNodes[1].style.width=sww;cn[1].childNodes[1].style.width=sww;cn[2].childNodes[1].style.width=sww;cn[1].style.height=Math.max(0,(shadowHeight-12))+"px"}}}},hide:function(){var me=this;if(me.el){me.el.dom.style.display="none";Ext.ShadowPool.push(me.el);delete me.el}},setZIndex:function(z){this.zIndex=z;if(this.el){this.el.setStyle("z-index",z)}},setOpacity:function(opacity){if(this.el){if(Ext.isIE&&!Ext.supports.CSS3BoxShadow){opacity=Math.floor(opacity*100/2)/100}this.opacity=opacity;this.el.setOpacity(opacity)}}});Ext.define("Ext.button.Split",{alias:"widget.splitbutton",extend:"Ext.button.Button",alternateClassName:"Ext.SplitButton",arrowCls:"split",split:true,initComponent:function(){this.callParent();this.addEvents("arrowclick")},setArrowHandler:function(handler,scope){this.arrowHandler=handler;this.scope=scope},onClick:function(e,t){var me=this;e.preventDefault();if(!me.disabled){if(me.overMenuTrigger){me.maybeShowMenu();me.fireEvent("arrowclick",me,e);if(me.arrowHandler){me.arrowHandler.call(me.scope||me,me,e)}}else{me.doToggle();me.fireHandler()}}}});Ext.define("Ext.button.Cycle",{alias:"widget.cycle",extend:"Ext.button.Split",alternateClassName:"Ext.CycleButton",getButtonText:function(item){var me=this,text="";if(item&&me.showText===true){if(me.prependText){text+=me.prependText}text+=item.text;return text}return me.text},setActiveItem:function(item,suppressEvent){var me=this;if(!Ext.isObject(item)){item=me.menu.getComponent(item)}if(item){if(!me.rendered){me.text=me.getButtonText(item);me.iconCls=item.iconCls}else{me.setText(me.getButtonText(item));me.setIconCls(item.iconCls)}me.activeItem=item;if(!item.checked){item.setChecked(true,false)}if(me.forceIcon){me.setIconCls(me.forceIcon)}if(!suppressEvent){me.fireEvent("change",me,item)}}},getActiveItem:function(){return this.activeItem},initComponent:function(){var me=this,checked=0,items;me.addEvents("change");if(me.changeHandler){me.on("change",me.changeHandler,me.scope||me);delete me.changeHandler}items=(me.menu.items||[]).concat(me.items||[]);me.menu=Ext.applyIf({cls:Ext.baseCSSPrefix+"cycle-menu",items:[]},me.menu);Ext.each(items,function(item,i){item=Ext.applyIf({group:me.id,itemIndex:i,checkHandler:me.checkHandler,scope:me,checked:item.checked||false},item);me.menu.items.push(item);if(item.checked){checked=i}});me.itemCount=me.menu.items.length;me.callParent(arguments);me.on("click",me.toggleSelected,me);me.setActiveItem(checked,me);if(me.width&&me.showText){me.addCls(Ext.baseCSSPrefix+"cycle-fixed-width")}},checkHandler:function(item,pressed){if(pressed){this.setActiveItem(item)}},toggleSelected:function(){var me=this,m=me.menu,checkItem;checkItem=me.activeItem.next(":not([disabled])")||m.items.getAt(0);checkItem.setChecked(true)}});Ext.define("Ext.container.ButtonGroup",{extend:"Ext.panel.Panel",alias:"widget.buttongroup",alternateClassName:"Ext.ButtonGroup",baseCls:Ext.baseCSSPrefix+"btn-group",layout:{type:"table"},defaultType:"button",frame:true,frameHeader:false,internalDefaults:{removeMode:"container",hideParent:true},initComponent:function(){var me=this,cols=me.columns;me.noTitleCls=me.baseCls+"-notitle";if(cols){me.layout=Ext.apply({},{columns:cols},me.layout)}if(!me.title){me.addCls(me.noTitleCls)}me.callParent(arguments)},afterLayout:function(){var me=this;me.callParent(arguments);if(me.layout.table&&(Ext.isIEQuirks||Ext.isIE6)&&!me.width){var t=me.getTargetEl();t.setWidth(me.layout.table.offsetWidth+t.getPadding("lr"))}if(Ext.isIE7){me.el.repaint()}},afterRender:function(){var me=this;if(me.header){delete me.header.items.items[0].flex;me.suspendLayout=true;me.header.insert(1,{xtype:"component",ui:me.ui,flex:1});me.header.insert(0,{xtype:"component",ui:me.ui,flex:1});me.suspendLayout=false}me.callParent(arguments)},onBeforeAdd:function(component){if(component.is("button")){component.ui=component.ui+"-toolbar"}this.callParent(arguments)},applyDefaults:function(c){if(!Ext.isString(c)){c=this.callParent(arguments);var d=this.internalDefaults;if(c.events){Ext.applyIf(c.initialConfig,d);Ext.apply(c,d)}else{Ext.applyIf(c,d)}}return c}});Ext.define("Ext.container.Viewport",{extend:"Ext.container.Container",alias:"widget.viewport",requires:["Ext.EventManager"],alternateClassName:"Ext.Viewport",isViewport:true,ariaRole:"application",initComponent:function(){var me=this,html=Ext.fly(document.body.parentNode),el;me.callParent(arguments);html.addCls(Ext.baseCSSPrefix+"viewport");if(me.autoScroll){html.setStyle("overflow","auto")}me.el=el=Ext.getBody();el.setHeight=Ext.emptyFn;el.setWidth=Ext.emptyFn;el.setSize=Ext.emptyFn;el.dom.scroll="no";me.allowDomMove=false;Ext.EventManager.onWindowResize(me.fireResize,me);me.renderTo=me.el;me.width=Ext.Element.getViewportWidth();me.height=Ext.Element.getViewportHeight()},fireResize:function(w,h){this.setSize(w,h)}});Ext.define("Ext.dd.DDTarget",{extend:"Ext.dd.DragDrop",constructor:function(id,sGroup,config){if(id){this.initTarget(id,sGroup,config)}},getDragEl:Ext.emptyFn,isValidHandleChild:Ext.emptyFn,startDrag:Ext.emptyFn,endDrag:Ext.emptyFn,onDrag:Ext.emptyFn,onDragDrop:Ext.emptyFn,onDragEnter:Ext.emptyFn,onDragOut:Ext.emptyFn,onDragOver:Ext.emptyFn,onInvalidDrop:Ext.emptyFn,onMouseDown:Ext.emptyFn,onMouseUp:Ext.emptyFn,setXConstraint:Ext.emptyFn,setYConstraint:Ext.emptyFn,resetConstraints:Ext.emptyFn,clearConstraints:Ext.emptyFn,clearTicks:Ext.emptyFn,setInitPosition:Ext.emptyFn,setDragElId:Ext.emptyFn,setHandleElId:Ext.emptyFn,setOuterHandleElId:Ext.emptyFn,addInvalidHandleClass:Ext.emptyFn,addInvalidHandleId:Ext.emptyFn,addInvalidHandleType:Ext.emptyFn,removeInvalidHandleClass:Ext.emptyFn,removeInvalidHandleId:Ext.emptyFn,removeInvalidHandleType:Ext.emptyFn,toString:function(){return("DDTarget "+this.id)}});Ext.define("Ext.dd.DragTracker",{uses:["Ext.util.Region"],mixins:{observable:"Ext.util.Observable"},active:false,trackOver:false,tolerance:5,autoStart:false,constructor:function(config){Ext.apply(this,config);this.addEvents("mouseover","mouseout","mousedown","mouseup","mousemove","beforedragstart","dragstart","dragend","drag");this.dragRegion=Ext.create("Ext.util.Region",0,0,0,0);if(this.el){this.initEl(this.el)}this.mixins.observable.constructor.call(this);if(this.disabled){this.disable()}},initEl:function(el){this.el=Ext.get(el);this.handle=Ext.get(this.delegate);this.delegate=this.handle?undefined:this.delegate;if(!this.handle){this.handle=this.el}this.mon(this.handle,{mousedown:this.onMouseDown,delegate:this.delegate,scope:this});if(this.trackOver||this.overCls){this.mon(this.handle,{mouseover:this.onMouseOver,mouseout:this.onMouseOut,delegate:this.delegate,scope:this})}},disable:function(){this.disabled=true},enable:function(){this.disabled=false},destroy:function(){this.clearListeners();delete this.el},onMouseOver:function(e,target){var me=this;if(!me.disabled){if(Ext.EventManager.contains(e)||me.delegate){me.mouseIsOut=false;if(me.overCls){me.el.addCls(me.overCls)}me.fireEvent("mouseover",me,e,me.delegate?e.getTarget(me.delegate,target):me.handle)}}},onMouseOut:function(e){if(this.mouseIsDown){this.mouseIsOut=true}else{if(this.overCls){this.el.removeCls(this.overCls)}this.fireEvent("mouseout",this,e)}},onMouseDown:function(e,target){if(this.disabled||e.dragTracked){return}this.dragTarget=this.delegate?target:this.handle.dom;this.startXY=this.lastXY=e.getXY();this.startRegion=Ext.fly(this.dragTarget).getRegion();if(this.fireEvent("mousedown",this,e)===false||this.fireEvent("beforedragstart",this,e)===false||this.onBeforeStart(e)===false){return}this.mouseIsDown=true;e.dragTracked=true;if(this.preventDefault!==false){e.preventDefault()}Ext.getDoc().on({scope:this,mouseup:this.onMouseUp,mousemove:this.onMouseMove,selectstart:this.stopSelect});if(this.autoStart){this.timer=Ext.defer(this.triggerStart,this.autoStart===true?1000:this.autoStart,this,[e])}},onMouseMove:function(e,target){if(this.active&&Ext.isIE&&!e.browserEvent.button){e.preventDefault();this.onMouseUp(e);return}e.preventDefault();var xy=e.getXY(),s=this.startXY;this.lastXY=xy;if(!this.active){if(Math.max(Math.abs(s[0]-xy[0]),Math.abs(s[1]-xy[1]))>this.tolerance){this.triggerStart(e)}else{return}}if(this.fireEvent("mousemove",this,e)===false){this.onMouseUp(e)}else{this.onDrag(e);this.fireEvent("drag",this,e)}},onMouseUp:function(e){this.mouseIsDown=false;if(this.mouseIsOut){this.mouseIsOut=false;this.onMouseOut(e)}e.preventDefault();this.fireEvent("mouseup",this,e);this.endDrag(e)},endDrag:function(e){var doc=Ext.getDoc(),wasActive=this.active;doc.un("mousemove",this.onMouseMove,this);doc.un("mouseup",this.onMouseUp,this);doc.un("selectstart",this.stopSelect,this);this.clearStart();this.active=false;if(wasActive){this.onEnd(e);this.fireEvent("dragend",this,e)}delete this._constrainRegion;delete Ext.EventObject.dragTracked},triggerStart:function(e){this.clearStart();this.active=true;this.onStart(e);this.fireEvent("dragstart",this,e)},clearStart:function(){if(this.timer){clearTimeout(this.timer);delete this.timer}},stopSelect:function(e){e.stopEvent();return false},onBeforeStart:function(e){},onStart:function(xy){},onDrag:function(e){},onEnd:function(e){},getDragTarget:function(){return this.dragTarget},getDragCt:function(){return this.el},getConstrainRegion:function(){if(this.constrainTo){if(this.constrainTo instanceof Ext.util.Region){return this.constrainTo}if(!this._constrainRegion){this._constrainRegion=Ext.fly(this.constrainTo).getViewRegion()}}else{if(!this._constrainRegion){this._constrainRegion=this.getDragCt().getViewRegion()}}return this._constrainRegion},getXY:function(constrain){return constrain?this.constrainModes[constrain](this,this.lastXY):this.lastXY},getOffset:function(constrain){var xy=this.getXY(constrain),s=this.startXY;return[xy[0]-s[0],xy[1]-s[1]]},constrainModes:{point:function(me,xy){var dr=me.dragRegion,constrainTo=me.getConstrainRegion();if(!constrainTo){return xy}dr.x=dr.left=dr[0]=dr.right=xy[0];dr.y=dr.top=dr[1]=dr.bottom=xy[1];dr.constrainTo(constrainTo);return[dr.left,dr.top]},dragTarget:function(me,xy){var s=me.startXY,dr=me.startRegion.copy(),constrainTo=me.getConstrainRegion(),adjust;if(!constrainTo){return xy}dr.translateBy(xy[0]-s[0],xy[1]-s[1]);if(dr.right>constrainTo.right){xy[0]+=adjust=(constrainTo.right-dr.right);dr.left+=adjust}if(dr.left<constrainTo.left){xy[0]+=(constrainTo.left-dr.left)}if(dr.bottom>constrainTo.bottom){xy[1]+=adjust=(constrainTo.bottom-dr.bottom);dr.top+=adjust}if(dr.top<constrainTo.top){xy[1]+=(constrainTo.top-dr.top)}return xy}}});Ext.define("Ext.dd.DragZone",{extend:"Ext.dd.DragSource",constructor:function(el,config){this.callParent([el,config]);if(this.containerScroll){Ext.dd.ScrollManager.register(this.el)}},getDragData:function(e){return Ext.dd.Registry.getHandleFromEvent(e)},onInitDrag:function(x,y){this.proxy.update(this.dragData.ddel.cloneNode(true));this.onStartDrag(x,y);return true},afterRepair:function(){var me=this;if(Ext.enableFx){Ext.fly(me.dragData.ddel).highlight(me.repairHighlightColor)}me.dragging=false},getRepairXY:function(e){return Ext.Element.fly(this.dragData.ddel).getXY()},destroy:function(){this.callParent();if(this.containerScroll){Ext.dd.ScrollManager.unregister(this.el)}}});Ext.define("Ext.dd.ScrollManager",{singleton:true,requires:["Ext.dd.DragDropManager"],constructor:function(){var ddm=Ext.dd.DragDropManager;ddm.fireEvents=Ext.Function.createSequence(ddm.fireEvents,this.onFire,this);ddm.stopDrag=Ext.Function.createSequence(ddm.stopDrag,this.onStop,this);this.doScroll=Ext.Function.bind(this.doScroll,this);this.ddmInstance=ddm;this.els={};this.dragEl=null;this.proc={}},onStop:function(e){var sm=Ext.dd.ScrollManager;sm.dragEl=null;sm.clearProc()},triggerRefresh:function(){if(this.ddmInstance.dragCurrent){this.ddmInstance.refreshCache(this.ddmInstance.dragCurrent.groups)}},doScroll:function(){if(this.ddmInstance.dragCurrent){var proc=this.proc,procEl=proc.el,ddScrollConfig=proc.el.ddScrollConfig,inc=ddScrollConfig?ddScrollConfig.increment:this.increment;if(!this.animate){if(procEl.scroll(proc.dir,inc)){this.triggerRefresh()}}else{procEl.scroll(proc.dir,inc,true,this.animDuration,this.triggerRefresh)}}},clearProc:function(){var proc=this.proc;if(proc.id){clearInterval(proc.id)}proc.id=0;proc.el=null;proc.dir=""},startProc:function(el,dir){this.clearProc();this.proc.el=el;this.proc.dir=dir;var group=el.ddScrollConfig?el.ddScrollConfig.ddGroup:undefined,freq=(el.ddScrollConfig&&el.ddScrollConfig.frequency)?el.ddScrollConfig.frequency:this.frequency;if(group===undefined||this.ddmInstance.dragCurrent.ddGroup==group){this.proc.id=setInterval(this.doScroll,freq)}},onFire:function(e,isDrop){if(isDrop||!this.ddmInstance.dragCurrent){return}if(!this.dragEl||this.dragEl!=this.ddmInstance.dragCurrent){this.dragEl=this.ddmInstance.dragCurrent;this.refreshCache()}var xy=e.getXY(),pt=e.getPoint(),proc=this.proc,els=this.els;for(var id in els){var el=els[id],r=el._region;var c=el.ddScrollConfig?el.ddScrollConfig:this;if(r&&r.contains(pt)&&el.isScrollable()){if(r.bottom-pt.y<=c.vthresh){if(proc.el!=el){this.startProc(el,"down")}return}else{if(r.right-pt.x<=c.hthresh){if(proc.el!=el){this.startProc(el,"left")}return}else{if(pt.y-r.top<=c.vthresh){if(proc.el!=el){this.startProc(el,"up")}return}else{if(pt.x-r.left<=c.hthresh){if(proc.el!=el){this.startProc(el,"right")}return}}}}}}this.clearProc()},register:function(el){if(Ext.isArray(el)){for(var i=0,len=el.length;i<len;i++){this.register(el[i])}}else{el=Ext.get(el);this.els[el.id]=el}},unregister:function(el){if(Ext.isArray(el)){for(var i=0,len=el.length;i<len;i++){this.unregister(el[i])}}else{el=Ext.get(el);delete this.els[el.id]}},vthresh:25,hthresh:25,increment:100,frequency:500,animate:true,animDuration:0.4,ddGroup:undefined,refreshCache:function(){var els=this.els,id;for(id in els){if(typeof els[id]=="object"){els[id]._region=els[id].getRegion()}}}});Ext.define("Ext.dd.DropTarget",{extend:"Ext.dd.DDTarget",requires:["Ext.dd.ScrollManager"],constructor:function(el,config){this.el=Ext.get(el);Ext.apply(this,config);if(this.containerScroll){Ext.dd.ScrollManager.register(this.el)}this.callParent([this.el.dom,this.ddGroup||this.group,{isTarget:true}])},dropAllowed:Ext.baseCSSPrefix+"dd-drop-ok",dropNotAllowed:Ext.baseCSSPrefix+"dd-drop-nodrop",isTarget:true,isNotifyTarget:true,notifyEnter:function(dd,e,data){if(this.overClass){this.el.addCls(this.overClass)}return this.dropAllowed},notifyOver:function(dd,e,data){return this.dropAllowed},notifyOut:function(dd,e,data){if(this.overClass){this.el.removeCls(this.overClass)}},notifyDrop:function(dd,e,data){return false},destroy:function(){this.callParent();if(this.containerScroll){Ext.dd.ScrollManager.unregister(this.el)}}});Ext.define("Ext.dd.Registry",{singleton:true,constructor:function(){this.elements={};this.handles={};this.autoIdSeed=0},getId:function(el,autogen){if(typeof el=="string"){return el}var id=el.id;if(!id&&autogen!==false){id="extdd-"+(++this.autoIdSeed);el.id=id}return id},register:function(el,data){data=data||{};if(typeof el=="string"){el=document.getElementById(el)}data.ddel=el;this.elements[this.getId(el)]=data;if(data.isHandle!==false){this.handles[data.ddel.id]=data}if(data.handles){var hs=data.handles;for(var i=0,len=hs.length;i<len;i++){this.handles[this.getId(hs[i])]=data}}},unregister:function(el){var id=this.getId(el,false);var data=this.elements[id];if(data){delete this.elements[id];if(data.handles){var hs=data.handles;for(var i=0,len=hs.length;i<len;i++){delete this.handles[this.getId(hs[i],false)]}}}},getHandle:function(id){if(typeof id!="string"){id=id.id}return this.handles[id]},getHandleFromEvent:function(e){var t=e.getTarget();return t?this.handles[t.id]:null},getTarget:function(id){if(typeof id!="string"){id=id.id}return this.elements[id]},getTargetFromEvent:function(e){var t=e.getTarget();return t?this.elements[t.id]||this.handles[t.id]:null}});Ext.define("Ext.dd.DropZone",{extend:"Ext.dd.DropTarget",requires:["Ext.dd.Registry"],getTargetFromEvent:function(e){return Ext.dd.Registry.getTargetFromEvent(e)},onNodeEnter:function(n,dd,e,data){},onNodeOver:function(n,dd,e,data){return this.dropAllowed},onNodeOut:function(n,dd,e,data){},onNodeDrop:function(n,dd,e,data){return false},onContainerOver:function(dd,e,data){return this.dropNotAllowed},onContainerDrop:function(dd,e,data){return false},notifyEnter:function(dd,e,data){return this.dropNotAllowed},notifyOver:function(dd,e,data){var n=this.getTargetFromEvent(e);if(!n){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,dd,e,data);this.lastOverNode=null}return this.onContainerOver(dd,e,data)}if(this.lastOverNode!=n){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,dd,e,data)}this.onNodeEnter(n,dd,e,data);this.lastOverNode=n}return this.onNodeOver(n,dd,e,data)},notifyOut:function(dd,e,data){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,dd,e,data);this.lastOverNode=null}},notifyDrop:function(dd,e,data){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,dd,e,data);this.lastOverNode=null}var n=this.getTargetFromEvent(e);return n?this.onNodeDrop(n,dd,e,data):this.onContainerDrop(dd,e,data)},triggerCacheRefresh:function(){Ext.dd.DDM.refreshCache(this.groups)}});Ext.define("Ext.flash.Component",{extend:"Ext.Component",alternateClassName:"Ext.FlashComponent",alias:"widget.flash",flashVersion:"9.0.115",backgroundColor:"#ffffff",wmode:"opaque",swfWidth:"100%",swfHeight:"100%",expressInstall:false,renderTpl:['<div id="{swfId}"></div>'],initComponent:function(){this.callParent();this.addEvents("success","failure")},onRender:function(){var me=this,params,vars,undef,swfId=me.getSwfId();me.renderData.swfId=swfId;me.callParent(arguments);params=Ext.apply({allowScriptAccess:"always",bgcolor:me.backgroundColor,wmode:me.wmode},me.flashParams);vars=Ext.apply({allowedDomain:document.location.hostname},me.flashVars);new swfobject.embedSWF(me.url,swfId,me.swfWidth,me.swfHeight,me.flashVersion,me.expressInstall?me.statics.EXPRESS_INSTALL_URL:undef,vars,params,me.flashAttributes,Ext.bind(me.swfCallback,me))},swfCallback:function(e){var me=this;if(e.success){me.swf=Ext.get(e.ref);me.onSuccess();me.fireEvent("success",me)}else{me.onFailure();me.fireEvent("failure",me)}},getSwfId:function(){return this.swfId||(this.swfId="extswf"+this.getAutoId())},onSuccess:function(){this.swf.setStyle("visibility","inherit")},onFailure:Ext.emptyFn,beforeDestroy:function(){var me=this,swf=me.swf;if(swf){swfobject.removeSWF(me.getSwfId());Ext.destroy(swf);delete me.swf}me.callParent()},statics:{EXPRESS_INSTALL_URL:"http://swfobject.googlecode.com/svn/trunk/swfobject/expressInstall.swf"}});Ext.define("Ext.form.action.Action",{alternateClassName:"Ext.form.Action",submitEmptyText:true,constructor:function(config){if(config){Ext.apply(this,config)}var params=config.params;if(Ext.isString(params)){this.params=Ext.Object.fromQueryString(params)}},run:Ext.emptyFn,onFailure:function(response){this.response=response;this.failureType=Ext.form.action.Action.CONNECT_FAILURE;this.form.afterAction(this,false)},processResponse:function(response){this.response=response;if(!response.responseText&&!response.responseXML){return true}return(this.result=this.handleResponse(response))},getUrl:function(){return this.url||this.form.url},getMethod:function(){return(this.method||this.form.method||"POST").toUpperCase()},getParams:function(){return Ext.apply({},this.params,this.form.baseParams)},createCallback:function(){var me=this,undef,form=me.form;return{success:me.onSuccess,failure:me.onFailure,scope:me,timeout:(this.timeout*1000)||(form.timeout*1000),upload:form.fileUpload?me.onSuccess:undef}},statics:{CLIENT_INVALID:"client",SERVER_INVALID:"server",CONNECT_FAILURE:"connect",LOAD_FAILURE:"load"}});Ext.define("Ext.form.action.Submit",{extend:"Ext.form.action.Action",alternateClassName:"Ext.form.Action.Submit",alias:"formaction.submit",type:"submit",run:function(){var form=this.form;if(this.clientValidation===false||form.isValid()){this.doSubmit()}else{this.failureType=Ext.form.action.Action.CLIENT_INVALID;form.afterAction(this,false)}},doSubmit:function(){var formEl,ajaxOptions=Ext.apply(this.createCallback(),{url:this.getUrl(),method:this.getMethod(),headers:this.headers});if(this.form.hasUpload()){formEl=ajaxOptions.form=this.buildForm();ajaxOptions.isUpload=true}else{ajaxOptions.params=this.getParams()}Ext.Ajax.request(ajaxOptions);if(formEl){Ext.removeNode(formEl)}},getParams:function(){var nope=false,configParams=this.callParent(),fieldParams=this.form.getValues(nope,nope,this.submitEmptyText!==nope);return Ext.apply({},fieldParams,configParams)},buildForm:function(){var fieldsSpec=[],formSpec,formEl,basicForm=this.form,params=this.getParams(),uploadFields=[];basicForm.getFields().each(function(field){if(field.isFileUpload()){uploadFields.push(field)}});function addField(name,val){fieldsSpec.push({tag:"input",type:"hidden",name:name,value:Ext.String.htmlEncode(val)})}Ext.iterate(params,function(key,val){if(Ext.isArray(val)){Ext.each(val,function(v){addField(key,v)})}else{addField(key,val)}});formSpec={tag:"form",action:this.getUrl(),method:this.getMethod(),target:this.target||"_self",style:"display:none",cn:fieldsSpec};if(uploadFields.length){formSpec.encoding=formSpec.enctype="multipart/form-data"}formEl=Ext.DomHelper.append(Ext.getBody(),formSpec);Ext.Array.each(uploadFields,function(field){if(field.rendered){formEl.appendChild(field.extractFileInput())}});return formEl},onSuccess:function(response){var form=this.form,success=true,result=this.processResponse(response);if(result!==true&&!result.success){if(result.errors){form.markInvalid(result.errors)}this.failureType=Ext.form.action.Action.SERVER_INVALID;success=false}form.afterAction(this,success)},handleResponse:function(response){var form=this.form,errorReader=form.errorReader,rs,errors,i,len,records;if(errorReader){rs=errorReader.read(response);records=rs.records;errors=[];if(records){for(i=0,len=records.length;i<len;i++){errors[i]=records[i].data}}if(errors.length<1){errors=null}return{success:rs.success,errors:errors}}return Ext.decode(response.responseText)}});Ext.define("Ext.util.ComponentDragger",{extend:"Ext.dd.DragTracker",autoStart:500,constructor:function(comp,config){this.comp=comp;this.initialConstrainTo=config.constrainTo;this.callParent([config])},onStart:function(e){var me=this,comp=me.comp;this.startPosition=comp.getPosition();if(comp.ghost&&!comp.liveDrag){me.proxy=comp.ghost();me.dragTarget=me.proxy.header.el}if(me.constrain||me.constrainDelegate){me.constrainTo=me.calculateConstrainRegion()}},calculateConstrainRegion:function(){var me=this,comp=me.comp,c=me.initialConstrainTo,delegateRegion,elRegion,shadowSize=comp.el.shadow?comp.el.shadow.offset:0;if(!(c instanceof Ext.util.Region)){c=Ext.fly(c).getViewRegion()}if(shadowSize){c.adjust(0,-shadowSize,-shadowSize,shadowSize)}if(!me.constrainDelegate){delegateRegion=Ext.fly(me.dragTarget).getRegion();elRegion=me.proxy?me.proxy.el.getRegion():comp.el.getRegion();c.adjust(delegateRegion.top-elRegion.top,delegateRegion.right-elRegion.right,delegateRegion.bottom-elRegion.bottom,delegateRegion.left-elRegion.left)}return c},onDrag:function(e){var me=this,comp=(me.proxy&&!me.comp.liveDrag)?me.proxy:me.comp,offset=me.getOffset(me.constrain||me.constrainDelegate?"dragTarget":null);comp.setPosition(me.startPosition[0]+offset[0],me.startPosition[1]+offset[1])},onEnd:function(e){if(this.proxy&&!this.comp.liveDrag){this.comp.unghost()}}});Ext.define("Ext.form.Labelable",{requires:["Ext.XTemplate"],labelableRenderTpl:['<tpl if="!hideLabel && !(!fieldLabel && hideEmptyLabel)">','<label id="{id}-labelEl"<tpl if="inputId"> for="{inputId}"</tpl> class="{labelCls}"','<tpl if="labelStyle"> style="{labelStyle}"</tpl>>','<tpl if="fieldLabel">{fieldLabel}{labelSeparator}</tpl>',"</label>","</tpl>",'<div class="{baseBodyCls} {fieldBodyCls}" id="{id}-bodyEl" role="presentation">{subTplMarkup}</div>','<div id="{id}-errorEl" class="{errorMsgCls}" style="display:none"></div>','<div class="{clearCls}" role="presentation"><!-- --></div>',{compiled:true,disableFormats:true}],activeErrorsTpl:['<tpl if="errors && errors.length">','<ul><tpl for="errors"><li<tpl if="xindex == xcount"> class="last"</tpl>>{.}</li></tpl></ul>',"</tpl>"],isFieldLabelable:true,formItemCls:Ext.baseCSSPrefix+"form-item",labelCls:Ext.baseCSSPrefix+"form-item-label",errorMsgCls:Ext.baseCSSPrefix+"form-error-msg",baseBodyCls:Ext.baseCSSPrefix+"form-item-body",fieldBodyCls:"",clearCls:Ext.baseCSSPrefix+"clear",invalidCls:Ext.baseCSSPrefix+"form-invalid",fieldLabel:undefined,labelAlign:"left",labelWidth:100,labelPad:5,labelSeparator:":",hideLabel:false,hideEmptyLabel:true,preventMark:false,autoFitErrors:true,msgTarget:"qtip",initLabelable:function(){this.addCls(this.formItemCls);this.addEvents("errorchange")},getFieldLabel:function(){return this.fieldLabel||""},getLabelableRenderData:function(){var me=this,labelAlign=me.labelAlign,labelCls=me.labelCls,labelClsExtra=me.labelClsExtra,labelPad=me.labelPad,labelStyle;if(labelAlign==="top"){labelStyle="margin-bottom:"+labelPad+"px;"}else{labelStyle="margin-right:"+labelPad+"px;";if(Ext.isBorderBox){labelStyle+="width:"+me.labelWidth+"px;"}}return Ext.copyTo({inputId:me.getInputId(),fieldLabel:me.getFieldLabel(),labelCls:labelClsExtra?labelCls+" "+labelClsExtra:labelCls,labelStyle:labelStyle+(me.labelStyle||""),subTplMarkup:me.getSubTplMarkup()},me,"hideLabel,hideEmptyLabel,fieldBodyCls,baseBodyCls,errorMsgCls,clearCls,labelSeparator",true)},onLabelableRender:function(){this.addChildEls("labelEl","bodyEl","errorEl")},getSubTplMarkup:function(){return""},getInputId:function(){return""},getActiveError:function(){return this.activeError||""},hasActiveError:function(){return !!this.getActiveError()},setActiveError:function(msg){this.activeError=msg;this.activeErrors=[msg];this.renderActiveError()},getActiveErrors:function(){return this.activeErrors||[]},setActiveErrors:function(errors){this.activeErrors=errors;this.activeError=this.getTpl("activeErrorsTpl").apply({errors:errors});this.renderActiveError()},unsetActiveError:function(){delete this.activeError;delete this.activeErrors;this.renderActiveError()},renderActiveError:function(){var me=this,activeError=me.getActiveError(),hasError=!!activeError;if(activeError!==me.lastActiveError){me.fireEvent("errorchange",me,activeError);me.lastActiveError=activeError}if(me.rendered&&!me.isDestroyed&&!me.preventMark){me.el[hasError?"addCls":"removeCls"](me.invalidCls);me.getActionEl().dom.setAttribute("aria-invalid",hasError);me.errorEl.dom.innerHTML=activeError}},setFieldDefaults:function(defaults){var me=this;Ext.iterate(defaults,function(key,val){if(!me.hasOwnProperty(key)){me[key]=val}})},getBodyNaturalWidth:function(){return this.bodyEl.getWidth()}});Ext.define("Ext.form.field.Field",{isFormField:true,disabled:false,submitValue:true,validateOnChange:true,suspendCheckChange:0,initField:function(){this.addEvents("change","validitychange","dirtychange");this.initValue()},initValue:function(){var me=this;me.originalValue=me.lastValue=me.value;me.suspendCheckChange++;me.setValue(me.value);me.suspendCheckChange--},getName:function(){return this.name},getValue:function(){return this.value},setValue:function(value){var me=this;me.value=value;me.checkChange();return me},isEqual:function(value1,value2){return String(value1)===String(value2)},isEqualAsString:function(value1,value2){return String(Ext.value(value1,""))===String(Ext.value(value2,""))},getSubmitData:function(){var me=this,data=null;if(!me.disabled&&me.submitValue&&!me.isFileUpload()){data={};data[me.getName()]=""+me.getValue()}return data},getModelData:function(){var me=this,data=null;if(!me.disabled&&!me.isFileUpload()){data={};data[me.getName()]=me.getValue()}return data},reset:function(){var me=this;me.setValue(me.originalValue);me.clearInvalid();delete me.wasValid},resetOriginalValue:function(){this.originalValue=this.getValue();this.checkDirty()},checkChange:function(){if(!this.suspendCheckChange){var me=this,newVal=me.getValue(),oldVal=me.lastValue;if(!me.isEqual(newVal,oldVal)&&!me.isDestroyed){me.lastValue=newVal;me.fireEvent("change",me,newVal,oldVal);me.onChange(newVal,oldVal)}}},onChange:function(newVal,oldVal){if(this.validateOnChange){this.validate()}this.checkDirty()},isDirty:function(){var me=this;return !me.disabled&&!me.isEqual(me.getValue(),me.originalValue)},checkDirty:function(){var me=this,isDirty=me.isDirty();if(isDirty!==me.wasDirty){me.fireEvent("dirtychange",me,isDirty);me.onDirtyChange(isDirty);me.wasDirty=isDirty}},onDirtyChange:Ext.emptyFn,getErrors:function(value){return[]},isValid:function(){var me=this;return me.disabled||Ext.isEmpty(me.getErrors())},validate:function(){var me=this,isValid=me.isValid();if(isValid!==me.wasValid){me.wasValid=isValid;me.fireEvent("validitychange",me,isValid)}return isValid},batchChanges:function(fn){try{this.suspendCheckChange++;fn()}catch(e){throw e}finally{this.suspendCheckChange--}this.checkChange()},isFileUpload:function(){return false},extractFileInput:function(){return null},markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn});Ext.define("Ext.layout.component.field.Field",{alias:["layout.field"],extend:"Ext.layout.component.Component",uses:["Ext.tip.QuickTip","Ext.util.TextMetrics"],type:"field",beforeLayout:function(width,height){var me=this;return me.callParent(arguments)||(!me.owner.preventMark&&me.activeError!==me.owner.getActiveError())},onLayout:function(width,height){var me=this,owner=me.owner,labelStrategy=me.getLabelStrategy(),errorStrategy=me.getErrorStrategy(),isDefined=Ext.isDefined,isNumber=Ext.isNumber,lastSize,autoWidth,autoHeight,info,undef;lastSize=me.lastComponentSize||{};if(!isDefined(width)){width=lastSize.width;if(width<0){width=undef}}if(!isDefined(height)){height=lastSize.height;if(height<0){height=undef}}autoWidth=!isNumber(width);autoHeight=!isNumber(height);info={autoWidth:autoWidth,autoHeight:autoHeight,width:autoWidth?owner.getBodyNaturalWidth():width,height:height,setOuterWidth:false,insets:{top:0,right:0,bottom:0,left:0}};labelStrategy.prepare(owner,info);errorStrategy.prepare(owner,info);labelStrategy.adjustHorizInsets(owner,info);errorStrategy.adjustHorizInsets(owner,info);labelStrategy.layoutHoriz(owner,info);errorStrategy.layoutHoriz(owner,info);labelStrategy.adjustVertInsets(owner,info);errorStrategy.adjustVertInsets(owner,info);labelStrategy.layoutVert(owner,info);errorStrategy.layoutVert(owner,info);if(autoWidth&&autoHeight){me.setElementSize(owner.el,(info.setOuterWidth?info.width:undef),info.height)}else{me.setTargetSize((!autoWidth||info.setOuterWidth?info.width:undef),info.height)}me.sizeBody(info);me.activeError=owner.getActiveError()},onFocus:function(){this.getErrorStrategy().onFocus(this.owner)},sizeBody:function(info){var me=this,owner=me.owner,insets=info.insets,totalWidth=info.width,totalHeight=info.height,width=Ext.isNumber(totalWidth)?totalWidth-insets.left-insets.right:totalWidth,height=Ext.isNumber(totalHeight)?totalHeight-insets.top-insets.bottom:totalHeight;me.setElementSize(owner.bodyEl,width,height);me.sizeBodyContents(width,height)},sizeBodyContents:Ext.emptyFn,getLabelStrategy:function(){var me=this,strategies=me.labelStrategies,labelAlign=me.owner.labelAlign;return strategies[labelAlign]||strategies.base},getErrorStrategy:function(){var me=this,owner=me.owner,strategies=me.errorStrategies,msgTarget=owner.msgTarget;return !owner.preventMark&&Ext.isString(msgTarget)?(strategies[msgTarget]||strategies.elementId):strategies.none},labelStrategies:(function(){var applyIf=Ext.applyIf,emptyFn=Ext.emptyFn,base={prepare:function(owner,info){var cls=owner.labelCls+"-"+owner.labelAlign,labelEl=owner.labelEl;if(labelEl&&!labelEl.hasCls(cls)){labelEl.addCls(cls)}},adjustHorizInsets:emptyFn,adjustVertInsets:emptyFn,layoutHoriz:emptyFn,layoutVert:emptyFn},left=applyIf({prepare:function(owner,info){base.prepare(owner,info);if(info.autoWidth){info.width+=(!owner.labelEl?0:owner.labelWidth+owner.labelPad)}info.setOuterWidth=true},adjustHorizInsets:function(owner,info){if(owner.labelEl){info.insets.left+=owner.labelWidth+owner.labelPad}},layoutHoriz:function(owner,info){var labelEl=owner.labelEl;if(labelEl&&!owner.isLabelSized&&!Ext.isBorderBox){labelEl.setWidth(owner.labelWidth);owner.isLabelSized=true}}},base);return{base:base,top:applyIf({adjustVertInsets:function(owner,info){var labelEl=owner.labelEl;if(labelEl){info.insets.top+=Ext.util.TextMetrics.measure(labelEl,owner.fieldLabel,info.width).height+labelEl.getFrameWidth("tb")+owner.labelPad}}},base),left:left,right:left}})(),errorStrategies:(function(){function setDisplayed(el,displayed){var wasDisplayed=el.getStyle("display")!=="none";if(displayed!==wasDisplayed){el.setDisplayed(displayed)}}function setStyle(el,name,value){if(el.getStyle(name)!==value){el.setStyle(name,value)}}function showTip(owner){var tip=Ext.layout.component.field.Field.tip,target;if(tip&&tip.isVisible()){target=tip.activeTarget;if(target&&target.el===owner.getActionEl().dom){tip.toFront(true)}}}var applyIf=Ext.applyIf,emptyFn=Ext.emptyFn,base={prepare:function(owner){setDisplayed(owner.errorEl,false)},adjustHorizInsets:emptyFn,adjustVertInsets:emptyFn,layoutHoriz:emptyFn,layoutVert:emptyFn,onFocus:emptyFn};return{none:base,side:applyIf({prepare:function(owner){var errorEl=owner.errorEl;errorEl.addCls(Ext.baseCSSPrefix+"form-invalid-icon");Ext.layout.component.field.Field.initTip();errorEl.dom.setAttribute("data-errorqtip",owner.getActiveError()||"");setDisplayed(errorEl,owner.hasActiveError())},adjustHorizInsets:function(owner,info){if(owner.autoFitErrors&&owner.hasActiveError()){info.insets.right+=owner.errorEl.getWidth()}},layoutHoriz:function(owner,info){if(owner.hasActiveError()){setStyle(owner.errorEl,"left",info.width-info.insets.right+"px")}},layoutVert:function(owner,info){if(owner.hasActiveError()){setStyle(owner.errorEl,"top",info.insets.top+"px")}},onFocus:showTip},base),under:applyIf({prepare:function(owner){var errorEl=owner.errorEl,cls=Ext.baseCSSPrefix+"form-invalid-under";if(!errorEl.hasCls(cls)){errorEl.addCls(cls)}setDisplayed(errorEl,owner.hasActiveError())},adjustVertInsets:function(owner,info){if(owner.autoFitErrors){info.insets.bottom+=owner.errorEl.getHeight()}},layoutHoriz:function(owner,info){var errorEl=owner.errorEl,insets=info.insets;setStyle(errorEl,"width",info.width-insets.right-insets.left+"px");setStyle(errorEl,"marginLeft",insets.left+"px")}},base),qtip:applyIf({prepare:function(owner){setDisplayed(owner.errorEl,false);Ext.layout.component.field.Field.initTip();owner.getActionEl().dom.setAttribute("data-errorqtip",owner.getActiveError()||"")},onFocus:showTip},base),title:applyIf({prepare:function(owner){setDisplayed(owner.errorEl,false);owner.el.dom.title=owner.getActiveError()||""}},base),elementId:applyIf({prepare:function(owner){setDisplayed(owner.errorEl,false);var targetEl=Ext.fly(owner.msgTarget);if(targetEl){targetEl.dom.innerHTML=owner.getActiveError()||"";targetEl.setDisplayed(owner.hasActiveError())}}},base)}})(),statics:{initTip:function(){var tip=this.tip;if(!tip){tip=this.tip=Ext.create("Ext.tip.QuickTip",{baseCls:Ext.baseCSSPrefix+"form-invalid-tip",renderTo:Ext.getBody()});tip.tagConfig=Ext.apply({},{attribute:"errorqtip"},tip.tagConfig)}},destroyTip:function(){var tip=this.tip;if(tip){tip.destroy();delete this.tip}}}});Ext.define("Ext.form.field.VTypes",(function(){var alpha=/^[a-zA-Z_]+$/,alphanum=/^[a-zA-Z0-9_]+$/,email=/^(\w+)([\-+.][\w]+)*@(\w[\-\w]*\.){1,5}([A-Za-z]){2,6}$/,url=/(((^https?)|(^ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i;return{singleton:true,alternateClassName:"Ext.form.VTypes",email:function(v){return email.test(v)},emailText:'This field should be an e-mail address in the format "user@example.com"',emailMask:/[a-z0-9_\.\-@\+]/i,url:function(v){return url.test(v)},urlText:'This field should be a URL in the format "http://www.example.com"',alpha:function(v){return alpha.test(v)},alphaText:"This field should only contain letters and _",alphaMask:/[a-z_]/i,alphanum:function(v){return alphanum.test(v)},alphanumText:"This field should only contain letters, numbers and _",alphanumMask:/[a-z0-9_]/i}})());Ext.define("Ext.layout.component.field.Text",{extend:"Ext.layout.component.field.Field",alias:"layout.textfield",requires:["Ext.util.TextMetrics"],type:"textfield",beforeLayout:function(width,height){var me=this,owner=me.owner,lastValue=this.lastValue,value=owner.getRawValue();this.lastValue=value;return me.callParent(arguments)||(owner.grow&&value!==lastValue)},sizeBodyContents:function(width,height){var size=this.adjustForGrow(width,height);this.setElementSize(this.owner.inputEl,size[0],size[1])},adjustForGrow:function(width,height){var me=this,owner=me.owner,inputEl,value,calcWidth,result=[width,height];if(owner.grow){inputEl=owner.inputEl;value=(inputEl.dom.value||(owner.hasFocus?"":owner.emptyText)||"")+owner.growAppend;calcWidth=inputEl.getTextWidth(value)+inputEl.getBorderWidth("lr")+inputEl.getPadding("lr");result[0]=Ext.Number.constrain(calcWidth,owner.growMin,Math.max(owner.growMin,Math.min(owner.growMax,Ext.isNumber(width)?width:Infinity)))}return result}});Ext.define("Ext.layout.component.field.TextArea",{extend:"Ext.layout.component.field.Text",alias:"layout.textareafield",type:"textareafield",adjustForGrow:function(width,height){var me=this,owner=me.owner,inputEl,value,max,curWidth,curHeight,calcHeight,result=[width,height];if(owner.grow){inputEl=owner.inputEl;curWidth=inputEl.getWidth(true);curHeight=inputEl.getHeight();value=inputEl.dom.value||"&#160;";value+=owner.growAppend;value=value.replace(/\n/g,"<br>");calcHeight=Ext.util.TextMetrics.measure(inputEl,value,curWidth).height+inputEl.getBorderWidth("tb")+inputEl.getPadding("tb");max=owner.growMax;if(Ext.isNumber(height)){max=Math.min(max,height)}result[1]=Ext.Number.constrain(calcHeight,owner.growMin,max)}return result}});Ext.define("Ext.layout.container.Anchor",{alias:"layout.anchor",extend:"Ext.layout.container.Container",alternateClassName:"Ext.layout.AnchorLayout",type:"anchor",defaultAnchor:"100%",parseAnchorRE:/^(r|right|b|bottom)$/i,onLayout:function(){this.callParent(arguments);var me=this,size=me.getLayoutTargetSize(),owner=me.owner,target=me.getTarget(),ownerWidth=size.width,ownerHeight=size.height,overflow=target.getStyle("overflow"),components=me.getVisibleItems(owner),len=components.length,boxes=[],box,newTargetSize,component,anchorSpec,calcWidth,calcHeight,i,el,cleaner;if(ownerWidth<20&&ownerHeight<20){return}if(!me.clearEl){me.clearEl=target.createChild({cls:Ext.baseCSSPrefix+"clear",role:"presentation"})}if(!Ext.supports.RightMargin){cleaner=Ext.Element.getRightMarginFixCleaner(target);target.addCls(Ext.baseCSSPrefix+"inline-children")}for(i=0;i<len;i++){component=components[i];el=component.el;anchorSpec=component.anchorSpec;if(anchorSpec){if(anchorSpec.right){calcWidth=me.adjustWidthAnchor(anchorSpec.right(ownerWidth)-el.getMargin("lr"),component)}else{calcWidth=undefined}if(anchorSpec.bottom){calcHeight=me.adjustHeightAnchor(anchorSpec.bottom(ownerHeight)-el.getMargin("tb"),component)}else{calcHeight=undefined}boxes.push({component:component,anchor:true,width:calcWidth||undefined,height:calcHeight||undefined})}else{boxes.push({component:component,anchor:false})}}if(!Ext.supports.RightMargin){target.removeCls(Ext.baseCSSPrefix+"inline-children");cleaner()}for(i=0;i<len;i++){box=boxes[i];me.setItemSize(box.component,box.width,box.height)}if(overflow&&overflow!="hidden"&&!me.adjustmentPass){newTargetSize=me.getLayoutTargetSize();if(newTargetSize.width!=size.width||newTargetSize.height!=size.height){me.adjustmentPass=true;me.onLayout()}}delete me.adjustmentPass},parseAnchor:function(a,start,cstart){if(a&&a!="none"){var ratio;if(this.parseAnchorRE.test(a)){var diff=cstart-start;return function(v){return v-diff}}else{if(a.indexOf("%")!=-1){ratio=parseFloat(a.replace("%",""))*0.01;return function(v){return Math.floor(v*ratio)}}else{a=parseInt(a,10);if(!isNaN(a)){return function(v){return v+a}}}}}return null},adjustWidthAnchor:function(value,comp){return value},adjustHeightAnchor:function(value,comp){return value},configureItem:function(item){var me=this,owner=me.owner,anchor=item.anchor,anchorsArray,anchorSpec,anchorWidth,anchorHeight;if(!item.anchor&&item.items&&!Ext.isNumber(item.width)&&!(Ext.isIE6&&Ext.isStrict)){item.anchor=anchor=me.defaultAnchor}if(owner.anchorSize){if(typeof owner.anchorSize=="number"){anchorWidth=owner.anchorSize}else{anchorWidth=owner.anchorSize.width;anchorHeight=owner.anchorSize.height}}else{anchorWidth=owner.initialConfig.width;anchorHeight=owner.initialConfig.height}if(anchor){anchorsArray=anchor.split(" ");item.anchorSpec=anchorSpec={right:me.parseAnchor(anchorsArray[0],item.initialConfig.width,anchorWidth),bottom:me.parseAnchor(anchorsArray[1],item.initialConfig.height,anchorHeight)};if(anchorSpec.right){item.layoutManagedWidth=1}else{item.layoutManagedWidth=2}if(anchorSpec.bottom){item.layoutManagedHeight=1}else{item.layoutManagedHeight=2}}else{item.layoutManagedWidth=2;item.layoutManagedHeight=2}this.callParent(arguments)}});Ext.define("Ext.form.action.Load",{extend:"Ext.form.action.Action",requires:["Ext.data.Connection"],alternateClassName:"Ext.form.Action.Load",alias:"formaction.load",type:"load",run:function(){Ext.Ajax.request(Ext.apply(this.createCallback(),{method:this.getMethod(),url:this.getUrl(),headers:this.headers,params:this.getParams()}))},onSuccess:function(response){var result=this.processResponse(response),form=this.form;if(result===true||!result.success||!result.data){this.failureType=Ext.form.action.Action.LOAD_FAILURE;form.afterAction(this,false);return}form.clearInvalid();form.setValues(result.data);form.afterAction(this,true)},handleResponse:function(response){var reader=this.form.reader,rs,data;if(reader){rs=reader.read(response);data=rs.records&&rs.records[0]?rs.records[0].data:null;return{success:rs.success,data:data}}return Ext.decode(response.responseText)}});Ext.define("Ext.window.Window",{extend:"Ext.panel.Panel",alternateClassName:"Ext.Window",requires:["Ext.util.ComponentDragger","Ext.util.Region","Ext.EventManager"],alias:"widget.window",baseCls:Ext.baseCSSPrefix+"window",resizable:true,draggable:true,constrain:false,constrainHeader:false,plain:false,minimizable:false,maximizable:false,minHeight:100,minWidth:200,expandOnShow:true,collapsible:false,closable:true,hidden:true,autoRender:true,hideMode:"visibility",floating:true,ariaRole:"alertdialog",itemCls:"x-window-item",overlapHeader:true,ignoreHeaderBorderManagement:true,initComponent:function(){var me=this;me.callParent();me.addEvents("resize","maximize","minimize","restore");if(me.plain){me.addClsWithUI("plain")}if(me.modal){me.ariaRole="dialog"}},initStateEvents:function(){var events=this.stateEvents;Ext.each(["maximize","restore","resize","dragend"],function(event){if(Ext.Array.indexOf(events,event)){events.push(event)}});this.callParent()},getState:function(){var me=this,state=me.callParent()||{},maximized=!!me.maximized;state.maximized=maximized;Ext.apply(state,{size:maximized?me.restoreSize:me.getSize(),pos:maximized?me.restorePos:me.getPosition()});return state},applyState:function(state){var me=this;if(state){me.maximized=state.maximized;if(me.maximized){me.hasSavedRestore=true;me.restoreSize=state.size;me.restorePos=state.pos}else{Ext.apply(me,{width:state.size.width,height:state.size.height,x:state.pos[0],y:state.pos[1]})}}},onMouseDown:function(e){var preventFocus;if(this.floating){if(Ext.fly(e.getTarget()).focusable()){preventFocus=true}this.toFront(preventFocus)}},onRender:function(ct,position){var me=this;me.callParent(arguments);me.focusEl=me.el;if(me.maximizable){me.header.on({dblclick:{fn:me.toggleMaximize,element:"el",scope:me}})}},afterRender:function(){var me=this,hidden=me.hidden,keyMap;me.hidden=false;me.callParent();me.hidden=hidden;me.proxy=me.getProxy();me.mon(me.el,"mousedown",me.onMouseDown,me);me.el.set({tabIndex:-1});if(me.maximized){me.maximized=false;me.maximize()}if(me.closable){keyMap=me.getKeyMap();keyMap.on(27,me.onEsc,me);keyMap.disable()}if(!hidden){me.syncMonitorWindowResize();me.doConstrain()}},initDraggable:function(){var me=this,ddConfig;if(!me.header){me.updateHeader(true)}if(me.header){ddConfig=Ext.applyIf({el:me.el,delegate:"#"+me.header.id},me.draggable);if(me.constrain||me.constrainHeader){ddConfig.constrain=me.constrain;ddConfig.constrainDelegate=me.constrainHeader;ddConfig.constrainTo=me.constrainTo||me.container}me.dd=Ext.create("Ext.util.ComponentDragger",this,ddConfig);me.relayEvents(me.dd,["dragstart","drag","dragend"])}},onEsc:function(k,e){e.stopEvent();this[this.closeAction]()},beforeDestroy:function(){var me=this;if(me.rendered){delete this.animateTarget;me.hide();Ext.destroy(me.keyMap)}me.callParent()},addTools:function(){var me=this;me.callParent();if(me.minimizable){me.addTool({type:"minimize",handler:Ext.Function.bind(me.minimize,me,[])})}if(me.maximizable){me.addTool({type:"maximize",handler:Ext.Function.bind(me.maximize,me,[])});me.addTool({type:"restore",handler:Ext.Function.bind(me.restore,me,[]),hidden:true})}},getFocusEl:function(){var me=this,f=me.focusEl,defaultComp=me.defaultButton||me.defaultFocus,t=typeof db,el,ct;if(Ext.isDefined(defaultComp)){if(Ext.isNumber(defaultComp)){f=me.query("button")[defaultComp]}else{if(Ext.isString(defaultComp)){f=me.down("#"+defaultComp)}else{f=defaultComp}}}return f||me.focusEl},beforeShow:function(){this.callParent();if(this.expandOnShow){this.expand(false)}},afterShow:function(animateTarget){var me=this,animating=animateTarget||me.animateTarget;me.callParent(arguments);if(me.maximized){me.fitContainer()}me.syncMonitorWindowResize();if(!animating){me.doConstrain()}if(me.keyMap){me.keyMap.enable()}},doClose:function(){var me=this;if(me.hidden){me.fireEvent("close",me);if(me.closeAction=="destroy"){this.destroy()}}else{me.hide(me.animateTarget,me.doClose,me)}},afterHide:function(){var me=this;me.syncMonitorWindowResize();if(me.keyMap){me.keyMap.disable()}me.callParent(arguments)},onWindowResize:function(){if(this.maximized){this.fitContainer()}this.doConstrain()},minimize:function(){this.fireEvent("minimize",this);return this},afterCollapse:function(){var me=this;if(me.maximizable){me.tools.maximize.hide();me.tools.restore.hide()}if(me.resizer){me.resizer.disable()}me.callParent(arguments)},afterExpand:function(){var me=this;if(me.maximized){me.tools.restore.show()}else{if(me.maximizable){me.tools.maximize.show()}}if(me.resizer){me.resizer.enable()}me.callParent(arguments)},maximize:function(){var me=this;if(!me.maximized){me.expand(false);if(!me.hasSavedRestore){me.restoreSize=me.getSize();me.restorePos=me.getPosition(true)}if(me.maximizable){me.tools.maximize.hide();me.tools.restore.show()}me.maximized=true;me.el.disableShadow();if(me.dd){me.dd.disable()}if(me.collapseTool){me.collapseTool.hide()}me.el.addCls(Ext.baseCSSPrefix+"window-maximized");me.container.addCls(Ext.baseCSSPrefix+"window-maximized-ct");me.syncMonitorWindowResize();me.setPosition(0,0);me.fitContainer();me.fireEvent("maximize",me)}return me},restore:function(){var me=this,tools=me.tools;if(me.maximized){delete me.hasSavedRestore;me.removeCls(Ext.baseCSSPrefix+"window-maximized");if(tools.restore){tools.restore.hide()}if(tools.maximize){tools.maximize.show()}if(me.collapseTool){me.collapseTool.show()}me.setPosition(me.restorePos);me.setSize(me.restoreSize);delete me.restorePos;delete me.restoreSize;me.maximized=false;me.el.enableShadow(true);if(me.dd){me.dd.enable()}me.container.removeCls(Ext.baseCSSPrefix+"window-maximized-ct");me.syncMonitorWindowResize();me.doConstrain();me.fireEvent("restore",me)}return me},syncMonitorWindowResize:function(){var me=this,currentlyMonitoring=me._monitoringResize,yes=me.monitorResize||me.constrain||me.constrainHeader||me.maximized,veto=me.hidden||me.destroying||me.isDestroyed;if(yes&&!veto){if(!currentlyMonitoring){Ext.EventManager.onWindowResize(me.onWindowResize,me);me._monitoringResize=true}}else{if(currentlyMonitoring){Ext.EventManager.removeResizeListener(me.onWindowResize,me);me._monitoringResize=false}}},toggleMaximize:function(){return this[this.maximized?"restore":"maximize"]()}});Ext.define("Ext.form.field.Base",{extend:"Ext.Component",mixins:{labelable:"Ext.form.Labelable",field:"Ext.form.field.Field"},alias:"widget.field",alternateClassName:["Ext.form.Field","Ext.form.BaseField"],requires:["Ext.util.DelayedTask","Ext.XTemplate","Ext.layout.component.field.Field"],fieldSubTpl:['<input id="{id}" type="{type}" ','<tpl if="name">name="{name}" </tpl>','<tpl if="size">size="{size}" </tpl>','<tpl if="tabIdx">tabIndex="{tabIdx}" </tpl>','class="{fieldCls} {typeCls}" autocomplete="off" />',{compiled:true,disableFormats:true}],inputType:"text",invalidText:"The value in this field is invalid",fieldCls:Ext.baseCSSPrefix+"form-field",focusCls:Ext.baseCSSPrefix+"form-focus",dirtyCls:Ext.baseCSSPrefix+"form-dirty",checkChangeEvents:Ext.isIE&&(!document.documentMode||document.documentMode<9)?["change","propertychange"]:["change","input","textInput","keyup","dragdrop"],checkChangeBuffer:50,componentLayout:"field",readOnly:false,readOnlyCls:Ext.baseCSSPrefix+"form-readonly",validateOnBlur:true,hasFocus:false,baseCls:Ext.baseCSSPrefix+"field",maskOnDisable:false,initComponent:function(){var me=this;me.callParent();me.subTplData=me.subTplData||{};me.addEvents("focus","blur","specialkey");me.initLabelable();me.initField();if(!me.name){me.name=me.getInputId()}},getInputId:function(){return this.inputId||(this.inputId=Ext.id())},getSubTplData:function(){var me=this,type=me.inputType,inputId=me.getInputId();return Ext.applyIf(me.subTplData,{id:inputId,cmpId:me.id,name:me.name||inputId,type:type,size:me.size||20,cls:me.cls,fieldCls:me.fieldCls,tabIdx:me.tabIndex,typeCls:Ext.baseCSSPrefix+"form-"+(type==="password"?"text":type)})},afterRender:function(){this.callParent();if(this.inputEl){this.inputEl.selectable()}},getSubTplMarkup:function(){return this.getTpl("fieldSubTpl").apply(this.getSubTplData())},initRenderTpl:function(){var me=this;if(!me.hasOwnProperty("renderTpl")){me.renderTpl=me.getTpl("labelableRenderTpl")}return me.callParent()},initRenderData:function(){return Ext.applyIf(this.callParent(),this.getLabelableRenderData())},setFieldStyle:function(style){var me=this,inputEl=me.inputEl;if(inputEl){inputEl.applyStyles(style)}me.fieldStyle=style},onRender:function(){var me=this,fieldStyle=me.fieldStyle;me.onLabelableRender();me.addChildEls({name:"inputEl",id:me.getInputId()});me.callParent(arguments);me.setRawValue(me.rawValue);if(me.readOnly){me.setReadOnly(true)}if(me.disabled){me.disable()}if(fieldStyle){me.setFieldStyle(fieldStyle)}me.renderActiveError()},initAria:function(){var me=this;me.callParent();me.getActionEl().dom.setAttribute("aria-describedby",Ext.id(me.errorEl))},getFocusEl:function(){return this.inputEl},isFileUpload:function(){return this.inputType==="file"},extractFileInput:function(){var me=this,fileInput=me.isFileUpload()?me.inputEl.dom:null,clone;if(fileInput){clone=fileInput.cloneNode(true);fileInput.parentNode.replaceChild(clone,fileInput);me.inputEl=Ext.get(clone)}return fileInput},getSubmitData:function(){var me=this,data=null,val;if(!me.disabled&&me.submitValue&&!me.isFileUpload()){val=me.getSubmitValue();if(val!==null){data={};data[me.getName()]=val}}return data},getSubmitValue:function(){return this.processRawValue(this.getRawValue())},getRawValue:function(){var me=this,v=(me.inputEl?me.inputEl.getValue():Ext.value(me.rawValue,""));me.rawValue=v;return v},setRawValue:function(value){var me=this;value=Ext.value(value,"");me.rawValue=value;if(me.inputEl){me.inputEl.dom.value=value}return value},valueToRaw:function(value){return""+Ext.value(value,"")},rawToValue:function(rawValue){return rawValue},processRawValue:function(value){return value},getValue:function(){var me=this,val=me.rawToValue(me.processRawValue(me.getRawValue()));me.value=val;return val},setValue:function(value){var me=this;me.setRawValue(me.valueToRaw(value));return me.mixins.field.setValue.call(me,value)},onDisable:function(){var me=this,inputEl=me.inputEl;me.callParent();if(inputEl){inputEl.dom.disabled=true}},onEnable:function(){var me=this,inputEl=me.inputEl;me.callParent();if(inputEl){inputEl.dom.disabled=false}},setReadOnly:function(readOnly){var me=this,inputEl=me.inputEl;if(inputEl){inputEl.dom.readOnly=readOnly;inputEl.dom.setAttribute("aria-readonly",readOnly)}me[readOnly?"addCls":"removeCls"](me.readOnlyCls);me.readOnly=readOnly},fireKey:function(e){if(e.isSpecialKey()){this.fireEvent("specialkey",this,Ext.create("Ext.EventObjectImpl",e))}},initEvents:function(){var me=this,inputEl=me.inputEl,onChangeTask,onChangeEvent;if(inputEl){me.mon(inputEl,Ext.EventManager.getKeyEvent(),me.fireKey,me);me.mon(inputEl,"focus",me.onFocus,me);me.mon(inputEl,"blur",me.onBlur,me,me.inEditor?{buffer:10}:null);onChangeTask=Ext.create("Ext.util.DelayedTask",me.checkChange,me);me.onChangeEvent=onChangeEvent=function(){onChangeTask.delay(me.checkChangeBuffer)};Ext.each(me.checkChangeEvents,function(eventName){if(eventName==="propertychange"){me.usesPropertychange=true}me.mon(inputEl,eventName,onChangeEvent)},me)}me.callParent()},doComponentLayout:function(){var me=this,inputEl=me.inputEl,usesPropertychange=me.usesPropertychange,ename="propertychange",onChangeEvent=me.onChangeEvent;if(usesPropertychange){me.mun(inputEl,ename,onChangeEvent)}me.callParent(arguments);if(usesPropertychange){me.mon(inputEl,ename,onChangeEvent)}},preFocus:Ext.emptyFn,onFocus:function(){var me=this,focusCls=me.focusCls,inputEl=me.inputEl;me.preFocus();if(focusCls&&inputEl){inputEl.addCls(focusCls)}if(!me.hasFocus){me.hasFocus=true;me.componentLayout.onFocus();me.fireEvent("focus",me)}},beforeBlur:Ext.emptyFn,onBlur:function(){var me=this,focusCls=me.focusCls,inputEl=me.inputEl;if(me.destroying){return}me.beforeBlur();if(focusCls&&inputEl){inputEl.removeCls(focusCls)}if(me.validateOnBlur){me.validate()}me.hasFocus=false;me.fireEvent("blur",me);me.postBlur()},postBlur:Ext.emptyFn,onDirtyChange:function(isDirty){this[isDirty?"addCls":"removeCls"](this.dirtyCls)},isValid:function(){var me=this;return me.disabled||me.validateValue(me.processRawValue(me.getRawValue()))},validateValue:function(value){var me=this,errors=me.getErrors(value),isValid=Ext.isEmpty(errors);if(!me.preventMark){if(isValid){me.clearInvalid()}else{me.markInvalid(errors)}}return isValid},markInvalid:function(errors){var me=this,oldMsg=me.getActiveError();me.setActiveErrors(Ext.Array.from(errors));if(oldMsg!==me.getActiveError()){me.doComponentLayout()}},clearInvalid:function(){var me=this,hadError=me.hasActiveError();me.unsetActiveError();if(hadError){me.doComponentLayout()}},renderActiveError:function(){var me=this,hasError=me.hasActiveError();if(me.inputEl){me.inputEl[hasError?"addCls":"removeCls"](me.invalidCls+"-field")}me.mixins.labelable.renderActiveError.call(me)},getActionEl:function(){return this.inputEl||this.el}});Ext.define("Ext.form.field.Text",{extend:"Ext.form.field.Base",alias:"widget.textfield",requires:["Ext.form.field.VTypes","Ext.layout.component.field.Text"],alternateClassName:["Ext.form.TextField","Ext.form.Text"],size:20,growMin:30,growMax:800,growAppend:"W",allowBlank:true,minLength:0,maxLength:Number.MAX_VALUE,minLengthText:"The minimum length for this field is {0}",maxLengthText:"The maximum length for this field is {0}",blankText:"This field is required",regexText:"",emptyCls:Ext.baseCSSPrefix+"form-empty-field",ariaRole:"textbox",componentLayout:"textfield",initComponent:function(){this.callParent();this.addEvents("autosize","keydown","keyup","keypress")},initEvents:function(){var me=this,el=me.inputEl;me.callParent();if(me.selectOnFocus||me.emptyText){me.mon(el,"mousedown",me.onMouseDown,me)}if(me.maskRe||(me.vtype&&me.disableKeyFilter!==true&&(me.maskRe=Ext.form.field.VTypes[me.vtype+"Mask"]))){me.mon(el,"keypress",me.filterKeys,me)}if(me.enableKeyEvents){me.mon(el,{scope:me,keyup:me.onKeyUp,keydown:me.onKeyDown,keypress:me.onKeyPress})}},isEqual:function(value1,value2){return this.isEqualAsString(value1,value2)},onChange:function(){this.callParent();this.autoSize()},afterRender:function(){var me=this;if(me.enforceMaxLength){me.inputEl.dom.maxLength=me.maxLength}me.applyEmptyText();me.autoSize();me.callParent()},onMouseDown:function(e){var me=this;if(!me.hasFocus){me.mon(me.inputEl,"mouseup",Ext.emptyFn,me,{single:true,preventDefault:true})}},processRawValue:function(value){var me=this,stripRe=me.stripCharsRe,newValue;if(stripRe){newValue=value.replace(stripRe,"");if(newValue!==value){me.setRawValue(newValue);value=newValue}}return value},onDisable:function(){this.callParent();if(Ext.isIE){this.inputEl.dom.unselectable="on"}},onEnable:function(){this.callParent();if(Ext.isIE){this.inputEl.dom.unselectable=""}},onKeyDown:function(e){this.fireEvent("keydown",this,e)},onKeyUp:function(e){this.fireEvent("keyup",this,e)},onKeyPress:function(e){this.fireEvent("keypress",this,e)},reset:function(){this.callParent();this.applyEmptyText()},applyEmptyText:function(){var me=this,emptyText=me.emptyText,isEmpty;if(me.rendered&&emptyText){isEmpty=me.getRawValue().length<1&&!me.hasFocus;if(Ext.supports.Placeholder){me.inputEl.dom.placeholder=emptyText}else{if(isEmpty){me.setRawValue(emptyText)}}if(isEmpty){me.inputEl.addCls(me.emptyCls)}me.autoSize()}},preFocus:function(){var me=this,inputEl=me.inputEl,emptyText=me.emptyText,isEmpty;if(emptyText&&!Ext.supports.Placeholder&&inputEl.dom.value===emptyText){me.setRawValue("");isEmpty=true;inputEl.removeCls(me.emptyCls)}else{if(Ext.supports.Placeholder){me.inputEl.removeCls(me.emptyCls)}}if(me.selectOnFocus||isEmpty){inputEl.dom.select()}},onFocus:function(){var me=this;me.callParent(arguments);if(me.emptyText){me.autoSize()}},postBlur:function(){this.applyEmptyText()},filterKeys:function(e){if(e.ctrlKey&&!e.altKey){return}var key=e.getKey(),charCode=String.fromCharCode(e.getCharCode());if(Ext.isGecko&&(e.isNavKeyPress()||key===e.BACKSPACE||(key===e.DELETE&&e.button===-1))){return}if(!Ext.isGecko&&e.isSpecialKey()&&!charCode){return}if(!this.maskRe.test(charCode)){e.stopEvent()}},getRawValue:function(){var me=this,v=me.callParent();if(v===me.emptyText){v=""}return v},setValue:function(value){var me=this,inputEl=me.inputEl;if(inputEl&&me.emptyText&&!Ext.isEmpty(value)){inputEl.removeCls(me.emptyCls)}me.callParent(arguments);me.applyEmptyText();return me},getErrors:function(value){var me=this,errors=me.callParent(arguments),validator=me.validator,emptyText=me.emptyText,allowBlank=me.allowBlank,vtype=me.vtype,vtypes=Ext.form.field.VTypes,regex=me.regex,format=Ext.String.format,msg;value=value||me.processRawValue(me.getRawValue());if(Ext.isFunction(validator)){msg=validator.call(me,value);if(msg!==true){errors.push(msg)}}if(value.length<1||value===emptyText){if(!allowBlank){errors.push(me.blankText)}return errors}if(value.length<me.minLength){errors.push(format(me.minLengthText,me.minLength))}if(value.length>me.maxLength){errors.push(format(me.maxLengthText,me.maxLength))}if(vtype){if(!vtypes[vtype](value,me)){errors.push(me.vtypeText||vtypes[vtype+"Text"])}}if(regex&&!regex.test(value)){errors.push(me.regexText||me.invalidText)}return errors},selectText:function(start,end){var me=this,v=me.getRawValue(),doFocus=true,el=me.inputEl.dom,undef,range;if(v.length>0){start=start===undef?0:start;end=end===undef?v.length:end;if(el.setSelectionRange){el.setSelectionRange(start,end)}else{if(el.createTextRange){range=el.createTextRange();range.moveStart("character",start);range.moveEnd("character",end-v.length);range.select()}}doFocus=Ext.isGecko||Ext.isOpera}if(doFocus){me.focus()}},autoSize:function(){var me=this,width;if(me.grow&&me.rendered){me.doComponentLayout();width=me.inputEl.getWidth();if(width!==me.lastInputWidth){me.fireEvent("autosize",width);me.lastInputWidth=width}}},initAria:function(){this.callParent();this.getActionEl().dom.setAttribute("aria-required",this.allowBlank===false)},getBodyNaturalWidth:function(){return Math.round(this.size*6.5)+20}});Ext.define("Ext.form.field.TextArea",{extend:"Ext.form.field.Text",alias:["widget.textareafield","widget.textarea"],alternateClassName:"Ext.form.TextArea",requires:["Ext.XTemplate","Ext.layout.component.field.TextArea"],fieldSubTpl:['<textarea id="{id}" ','<tpl if="name">name="{name}" </tpl>','<tpl if="rows">rows="{rows}" </tpl>','<tpl if="cols">cols="{cols}" </tpl>','<tpl if="tabIdx">tabIndex="{tabIdx}" </tpl>','class="{fieldCls} {typeCls}" ','autocomplete="off">',"</textarea>",{compiled:true,disableFormats:true}],growMin:60,growMax:1000,growAppend:"\n-",cols:20,rows:4,enterIsSpecial:false,preventScrollbars:false,componentLayout:"textareafield",onRender:function(ct,position){var me=this;Ext.applyIf(me.subTplData,{cols:me.cols,rows:me.rows});me.callParent(arguments)},afterRender:function(){var me=this;me.callParent(arguments);if(me.grow){if(me.preventScrollbars){me.inputEl.setStyle("overflow","hidden")}me.inputEl.setHeight(me.growMin)}},fireKey:function(e){if(e.isSpecialKey()&&(this.enterIsSpecial||(e.getKey()!==e.ENTER||e.hasModifier()))){this.fireEvent("specialkey",this,e)}},autoSize:function(){var me=this,height;if(me.grow&&me.rendered){me.doComponentLayout();height=me.inputEl.getHeight();if(height!==me.lastInputHeight){me.fireEvent("autosize",height);me.lastInputHeight=height}}},initAria:function(){this.callParent(arguments);this.getActionEl().dom.setAttribute("aria-multiline",true)},getBodyNaturalWidth:function(){return Math.round(this.cols*6.5)+20}});Ext.define("Ext.window.MessageBox",{extend:"Ext.window.Window",requires:["Ext.toolbar.Toolbar","Ext.form.field.Text","Ext.form.field.TextArea","Ext.button.Button","Ext.layout.container.Anchor","Ext.layout.container.HBox","Ext.ProgressBar"],alias:"widget.messagebox",OK:1,YES:2,NO:4,CANCEL:8,OKCANCEL:9,YESNO:6,YESNOCANCEL:14,INFO:"ext-mb-info",WARNING:"ext-mb-warning",QUESTION:"ext-mb-question",ERROR:"ext-mb-error",hideMode:"offsets",closeAction:"hide",resizable:false,title:"&#160;",width:600,height:500,minWidth:250,maxWidth:600,minHeight:110,maxHeight:500,constrain:true,cls:Ext.baseCSSPrefix+"message-box",layout:{type:"anchor"},defaultTextHeight:75,minProgressWidth:250,minPromptWidth:250,buttonText:{ok:"OK",yes:"Yes",no:"No",cancel:"Cancel"},buttonIds:["ok","yes","no","cancel"],titleText:{confirm:"Confirm",prompt:"Prompt",wait:"Loading...",alert:"Attention"},iconHeight:35,makeButton:function(btnIdx){var btnId=this.buttonIds[btnIdx];return Ext.create("Ext.button.Button",{handler:this.btnCallback,itemId:btnId,scope:this,text:this.buttonText[btnId],minWidth:75})},btnCallback:function(btn){var me=this,value,field;if(me.cfg.prompt||me.cfg.multiline){if(me.cfg.multiline){field=me.textArea}else{field=me.textField}value=field.getValue();field.reset()}btn.blur();me.hide();me.userCallback(btn.itemId,value,me.cfg)},hide:function(){var me=this;me.dd.endDrag();me.progressBar.reset();me.removeCls(me.cfg.cls);me.callParent()},initComponent:function(){var me=this,i,button;me.title="&#160;";me.topContainer=Ext.create("Ext.container.Container",{anchor:"100%",style:{padding:"10px",overflow:"hidden"},items:[me.iconComponent=Ext.create("Ext.Component",{cls:"ext-mb-icon",width:50,height:me.iconHeight,style:{"float":"left"}}),me.promptContainer=Ext.create("Ext.container.Container",{layout:{type:"anchor"},items:[me.msg=Ext.create("Ext.Component",{autoEl:{tag:"span"},cls:"ext-mb-text"}),me.textField=Ext.create("Ext.form.field.Text",{anchor:"100%",enableKeyEvents:true,listeners:{keydown:me.onPromptKey,scope:me}}),me.textArea=Ext.create("Ext.form.field.TextArea",{anchor:"100%",height:75})]})]});me.progressBar=Ext.create("Ext.ProgressBar",{anchor:"-10",style:"margin-left:10px"});me.items=[me.topContainer,me.progressBar];me.msgButtons=[];for(i=0;i<4;i++){button=me.makeButton(i);me.msgButtons[button.itemId]=button;me.msgButtons.push(button)}me.bottomTb=Ext.create("Ext.toolbar.Toolbar",{ui:"footer",dock:"bottom",layout:{pack:"center"},items:[me.msgButtons[0],me.msgButtons[1],me.msgButtons[2],me.msgButtons[3]]});me.dockedItems=[me.bottomTb];me.callParent()},onPromptKey:function(textField,e){var me=this,blur;if(e.keyCode===Ext.EventObject.RETURN||e.keyCode===10){if(me.msgButtons.ok.isVisible()){blur=true;me.msgButtons.ok.handler.call(me,me.msgButtons.ok)}else{if(me.msgButtons.yes.isVisible()){me.msgButtons.yes.handler.call(me,me.msgButtons.yes);blur=true}}if(blur){me.textField.blur()}}},reconfigure:function(cfg){var me=this,buttons=cfg.buttons||0,hideToolbar=true,initialWidth=me.maxWidth,i;cfg=cfg||{};me.cfg=cfg;if(cfg.width){initialWidth=cfg.width}delete me.defaultFocus;me.animateTarget=cfg.animateTarget||undefined;me.modal=cfg.modal!==false;if(cfg.title){me.setTitle(cfg.title||"&#160;")}if(!me.rendered){me.width=initialWidth;me.render(Ext.getBody())}else{me.setSize(initialWidth,me.maxHeight)}me.setPosition(-10000,-10000);me.closable=cfg.closable&&!cfg.wait;me.header.child("[type=close]").setVisible(cfg.closable!==false);if(!cfg.title&&!me.closable){me.header.hide()}else{me.header.show()}me.liveDrag=!cfg.proxyDrag;me.userCallback=Ext.Function.bind(cfg.callback||cfg.fn||Ext.emptyFn,cfg.scope||Ext.global);me.setIcon(cfg.icon);if(cfg.msg){me.msg.update(cfg.msg);me.msg.show()}else{me.msg.hide()}if(cfg.prompt||cfg.multiline){me.multiline=cfg.multiline;if(cfg.multiline){me.textArea.setValue(cfg.value);me.textArea.setHeight(cfg.defaultTextHeight||me.defaultTextHeight);me.textArea.show();me.textField.hide();me.defaultFocus=me.textArea}else{me.textField.setValue(cfg.value);me.textArea.hide();me.textField.show();me.defaultFocus=me.textField}}else{me.textArea.hide();me.textField.hide()}if(cfg.progress||cfg.wait){me.progressBar.show();me.updateProgress(0,cfg.progressText);if(cfg.wait===true){me.progressBar.wait(cfg.waitConfig)}}else{me.progressBar.hide()}for(i=0;i<4;i++){if(buttons&Math.pow(2,i)){if(!me.defaultFocus){me.defaultFocus=me.msgButtons[i]}me.msgButtons[i].show();hideToolbar=false}else{me.msgButtons[i].hide()}}if(hideToolbar){me.bottomTb.hide()}else{me.bottomTb.show()}},show:function(cfg){var me=this;me.reconfigure(cfg);me.addCls(cfg.cls);if(cfg.animateTarget){me.doAutoSize(true);me.callParent()}else{me.callParent();me.doAutoSize(true)}return me},afterShow:function(){if(this.animateTarget){this.center()}this.callParent(arguments)},doAutoSize:function(center){var me=this,icon=me.iconComponent,iconHeight=me.iconHeight;if(!Ext.isDefined(me.frameWidth)){me.frameWidth=me.el.getWidth()-me.body.getWidth()}icon.setHeight(iconHeight);me.minWidth=me.cfg.minWidth||Ext.getClass(this).prototype.minWidth;me.topContainer.doLayout();if(Ext.isIE6||Ext.isIEQuirks){me.textField.setCalculatedSize(9);me.textArea.setCalculatedSize(9)}var width=me.cfg.width||me.msg.getWidth()+icon.getWidth()+25,height=(me.header.rendered?me.header.getHeight():0)+Math.max(me.promptContainer.getHeight(),icon.getHeight())+me.progressBar.getHeight()+(me.bottomTb.rendered?me.bottomTb.getHeight():0)+20;icon.setHeight(Math.max(iconHeight,me.msg.getHeight()));me.setSize(width+me.frameWidth,height+me.frameWidth);if(center){me.center()}return me},updateText:function(text){this.msg.update(text);return this.doAutoSize(true)},setIcon:function(icon){var me=this;me.iconComponent.removeCls(me.iconCls);if(icon){me.iconComponent.show();me.iconComponent.addCls(Ext.baseCSSPrefix+"dlg-icon");me.iconComponent.addCls(me.iconCls=icon)}else{me.iconComponent.removeCls(Ext.baseCSSPrefix+"dlg-icon");me.iconComponent.hide()}return me},updateProgress:function(value,progressText,msg){this.progressBar.updateProgress(value,progressText);if(msg){this.updateText(msg)}return this},onEsc:function(){if(this.closable!==false){this.callParent(arguments)}},confirm:function(cfg,msg,fn,scope){if(Ext.isString(cfg)){cfg={title:cfg,icon:"ext-mb-question",msg:msg,buttons:this.YESNO,callback:fn,scope:scope}}return this.show(cfg)},prompt:function(cfg,msg,fn,scope,multiline,value){if(Ext.isString(cfg)){cfg={prompt:true,title:cfg,minWidth:this.minPromptWidth,msg:msg,buttons:this.OKCANCEL,callback:fn,scope:scope,multiline:multiline,value:value}}return this.show(cfg)},wait:function(cfg,title,config){if(Ext.isString(cfg)){cfg={title:title,msg:cfg,closable:false,wait:true,modal:true,minWidth:this.minProgressWidth,waitConfig:config}}return this.show(cfg)},alert:function(cfg,msg,fn,scope){if(Ext.isString(cfg)){cfg={title:cfg,msg:msg,buttons:this.OK,fn:fn,scope:scope,minWidth:this.minWidth}}return this.show(cfg)},progress:function(cfg,msg,progressText){if(Ext.isString(cfg)){cfg={title:cfg,msg:msg,progress:true,progressText:progressText}}return this.show(cfg)}},function(){Ext.MessageBox=Ext.Msg=new this()});Ext.define("Ext.form.Basic",{extend:"Ext.util.Observable",alternateClassName:"Ext.form.BasicForm",requires:["Ext.util.MixedCollection","Ext.form.action.Load","Ext.form.action.Submit","Ext.window.MessageBox","Ext.data.Errors","Ext.util.DelayedTask"],constructor:function(owner,config){var me=this,onItemAddOrRemove=me.onItemAddOrRemove;me.owner=owner;me.mon(owner,{add:onItemAddOrRemove,remove:onItemAddOrRemove,scope:me});Ext.apply(me,config);if(Ext.isString(me.paramOrder)){me.paramOrder=me.paramOrder.split(/[\s,|]/)}me.checkValidityTask=Ext.create("Ext.util.DelayedTask",me.checkValidity,me);me.addEvents("beforeaction","actionfailed","actioncomplete","validitychange","dirtychange");me.callParent()},initialize:function(){this.initialized=true;this.onValidityChange(!this.hasInvalidField())},timeout:30,paramsAsHash:false,waitTitle:"Please Wait...",trackResetOnLoad:false,wasDirty:false,destroy:function(){this.clearListeners();this.checkValidityTask.cancel()},onItemAddOrRemove:function(parent,child){var me=this,isAdding=!!child.ownerCt,isContainer=child.isContainer;function handleField(field){me[isAdding?"mon":"mun"](field,{validitychange:me.checkValidity,dirtychange:me.checkDirty,scope:me,buffer:100});delete me._fields}if(child.isFormField){handleField(child)}else{if(isContainer){if(child.isDestroyed){delete me._fields}else{Ext.Array.forEach(child.query("[isFormField]"),handleField)}}}delete this._boundItems;if(me.initialized){me.checkValidityTask.delay(10)}},getFields:function(){var fields=this._fields;if(!fields){fields=this._fields=Ext.create("Ext.util.MixedCollection");fields.addAll(this.owner.query("[isFormField]"))}return fields},getBoundItems:function(){var boundItems=this._boundItems;if(!boundItems||boundItems.getCount()===0){boundItems=this._boundItems=Ext.create("Ext.util.MixedCollection");boundItems.addAll(this.owner.query("[formBind]"))}return boundItems},hasInvalidField:function(){return !!this.getFields().findBy(function(field){var preventMark=field.preventMark,isValid;field.preventMark=true;isValid=field.isValid();field.preventMark=preventMark;return !isValid})},isValid:function(){var me=this,invalid;me.batchLayouts(function(){invalid=me.getFields().filterBy(function(field){return !field.validate()})});return invalid.length<1},checkValidity:function(){var me=this,valid=!me.hasInvalidField();if(valid!==me.wasValid){me.onValidityChange(valid);me.fireEvent("validitychange",me,valid);me.wasValid=valid}},onValidityChange:function(valid){var boundItems=this.getBoundItems();if(boundItems){boundItems.each(function(cmp){if(cmp.disabled===valid){cmp.setDisabled(!valid)}})}},isDirty:function(){return !!this.getFields().findBy(function(f){return f.isDirty()})},checkDirty:function(){var dirty=this.isDirty();if(dirty!==this.wasDirty){this.fireEvent("dirtychange",this,dirty);this.wasDirty=dirty}},hasUpload:function(){return !!this.getFields().findBy(function(f){return f.isFileUpload()})},doAction:function(action,options){if(Ext.isString(action)){action=Ext.ClassManager.instantiateByAlias("formaction."+action,Ext.apply({},options,{form:this}))}if(this.fireEvent("beforeaction",this,action)!==false){this.beforeAction(action);Ext.defer(action.run,100,action)}return this},submit:function(options){return this.doAction(this.standardSubmit?"standardsubmit":this.api?"directsubmit":"submit",options)},load:function(options){return this.doAction(this.api?"directload":"load",options)},updateRecord:function(record){var fields=record.fields,values=this.getFieldValues(),name,obj={};fields.each(function(f){name=f.name;if(name in values){obj[name]=values[name]}});record.beginEdit();record.set(obj);record.endEdit();return this},loadRecord:function(record){this._record=record;return this.setValues(record.data)},getRecord:function(){return this._record},beforeAction:function(action){var waitMsg=action.waitMsg,maskCls=Ext.baseCSSPrefix+"mask-loading",waitMsgTarget;this.getFields().each(function(f){if(f.isFormField&&f.syncValue){f.syncValue()}});if(waitMsg){waitMsgTarget=this.waitMsgTarget;if(waitMsgTarget===true){this.owner.el.mask(waitMsg,maskCls)}else{if(waitMsgTarget){waitMsgTarget=this.waitMsgTarget=Ext.get(waitMsgTarget);waitMsgTarget.mask(waitMsg,maskCls)}else{Ext.MessageBox.wait(waitMsg,action.waitTitle||this.waitTitle)}}}},afterAction:function(action,success){if(action.waitMsg){var MessageBox=Ext.MessageBox,waitMsgTarget=this.waitMsgTarget;if(waitMsgTarget===true){this.owner.el.unmask()}else{if(waitMsgTarget){waitMsgTarget.unmask()}else{MessageBox.updateProgress(1);MessageBox.hide()}}}if(success){if(action.reset){this.reset()}Ext.callback(action.success,action.scope||action,[this,action]);this.fireEvent("actioncomplete",this,action)}else{Ext.callback(action.failure,action.scope||action,[this,action]);this.fireEvent("actionfailed",this,action)}},findField:function(id){return this.getFields().findBy(function(f){return f.id===id||f.getName()===id})},markInvalid:function(errors){var me=this;function mark(fieldId,msg){var field=me.findField(fieldId);if(field){field.markInvalid(msg)}}if(Ext.isArray(errors)){Ext.each(errors,function(err){mark(err.id,err.msg)})}else{if(errors instanceof Ext.data.Errors){errors.each(function(err){mark(err.field,err.message)})}else{Ext.iterate(errors,mark)}}return this},setValues:function(values){var me=this;function setVal(fieldId,val){var field=me.findField(fieldId);if(field){field.setValue(val);if(me.trackResetOnLoad){field.resetOriginalValue()}}}if(Ext.isArray(values)){Ext.each(values,function(val){setVal(val.id,val.value)})}else{Ext.iterate(values,setVal)}return this},getValues:function(asString,dirtyOnly,includeEmptyText,useDataValues){var values={};this.getFields().each(function(field){if(!dirtyOnly||field.isDirty()){var data=field[useDataValues?"getModelData":"getSubmitData"](includeEmptyText);if(Ext.isObject(data)){Ext.iterate(data,function(name,val){if(includeEmptyText&&val===""){val=field.emptyText||""}if(name in values){var bucket=values[name],isArray=Ext.isArray;if(!isArray(bucket)){bucket=values[name]=[bucket]}if(isArray(val)){values[name]=bucket.concat(val)}else{bucket.push(val)}}else{values[name]=val}})}}});if(asString){values=Ext.Object.toQueryString(values)}return values},getFieldValues:function(dirtyOnly){return this.getValues(false,dirtyOnly,false,true)},clearInvalid:function(){var me=this;me.batchLayouts(function(){me.getFields().each(function(f){f.clearInvalid()})});return me},reset:function(){var me=this;me.batchLayouts(function(){me.getFields().each(function(f){f.reset()})});return me},applyToFields:function(obj){this.getFields().each(function(f){Ext.apply(f,obj)});return this},applyIfToFields:function(obj){this.getFields().each(function(f){Ext.applyIf(f,obj)});return this},batchLayouts:function(fn){var me=this,suspended=new Ext.util.HashMap();me.getFields().each(function(field){var ownerCt=field.ownerCt;if(!suspended.contains(ownerCt)){suspended.add(ownerCt);ownerCt.oldSuspendLayout=ownerCt.suspendLayout;ownerCt.suspendLayout=true}});fn();suspended.each(function(id,ct){ct.suspendLayout=ct.oldSuspendLayout;delete ct.oldSuspendLayout});me.owner.doComponentLayout()}});Ext.define("Ext.form.FieldAncestor",{initFieldAncestor:function(){var me=this,onSubtreeChange=me.onFieldAncestorSubtreeChange;me.addEvents("fieldvaliditychange","fielderrorchange");me.on("add",onSubtreeChange,me);me.on("remove",onSubtreeChange,me);me.initFieldDefaults()},initFieldDefaults:function(){if(!this.fieldDefaults){this.fieldDefaults={}}},onFieldAncestorSubtreeChange:function(parent,child){var me=this,isAdding=!!child.ownerCt;function handleCmp(cmp){var isLabelable=cmp.isFieldLabelable,isField=cmp.isFormField;if(isLabelable||isField){if(isLabelable){me["onLabelable"+(isAdding?"Added":"Removed")](cmp)}if(isField){me["onField"+(isAdding?"Added":"Removed")](cmp)}}else{if(cmp.isContainer){Ext.Array.forEach(cmp.getRefItems(),handleCmp)}}}handleCmp(child)},onLabelableAdded:function(labelable){var me=this;me.mon(labelable,"errorchange",me.handleFieldErrorChange,me,{buffer:10});labelable.setFieldDefaults(me.fieldDefaults)},onFieldAdded:function(field){var me=this;me.mon(field,"validitychange",me.handleFieldValidityChange,me)},onLabelableRemoved:function(labelable){var me=this;me.mun(labelable,"errorchange",me.handleFieldErrorChange,me)},onFieldRemoved:function(field){var me=this;me.mun(field,"validitychange",me.handleFieldValidityChange,me)},handleFieldValidityChange:function(field,isValid){var me=this;me.fireEvent("fieldvaliditychange",me,field,isValid);me.onFieldValidityChange()},handleFieldErrorChange:function(labelable,activeError){var me=this;me.fireEvent("fielderrorchange",me,labelable,activeError);me.onFieldErrorChange()},onFieldValidityChange:Ext.emptyFn,onFieldErrorChange:Ext.emptyFn});Ext.define("Ext.layout.container.CheckboxGroup",{extend:"Ext.layout.container.Container",alias:["layout.checkboxgroup"],onLayout:function(){var numCols=this.getColCount(),shadowCt=this.getShadowCt(),owner=this.owner,items=owner.items,shadowItems=shadowCt.items,numItems=items.length,colIndex=0,i,numRows;shadowItems.each(function(col){col.items.clear()});while(shadowItems.length>numCols){shadowCt.remove(shadowItems.last())}while(shadowItems.length<numCols){shadowCt.add({xtype:"container",cls:owner.groupCls,flex:1})}if(owner.vertical){numRows=Math.ceil(numItems/numCols);for(i=0;i<numItems;i++){if(i>0&&i%numRows===0){colIndex++}shadowItems.getAt(colIndex).items.add(items.getAt(i))}}else{for(i=0;i<numItems;i++){colIndex=i%numCols;shadowItems.getAt(colIndex).items.add(items.getAt(i))}}if(!shadowCt.rendered){shadowCt.render(this.getRenderTarget())}else{shadowItems.each(function(col){var layout=col.getLayout();layout.renderItems(layout.getLayoutItems(),layout.getRenderTarget())})}shadowCt.doComponentLayout()},renderItems:Ext.emptyFn,getShadowCt:function(){var me=this,shadowCt=me.shadowCt,owner,items,item,columns,columnsIsArray,numCols,i;if(!shadowCt){owner=me.owner;columns=owner.columns;columnsIsArray=Ext.isArray(columns);numCols=me.getColCount();items=[];for(i=0;i<numCols;i++){item={xtype:"container",cls:owner.groupCls};if(columnsIsArray){if(columns[i]<1){item.flex=columns[i]}else{item.width=columns[i]}}else{item.flex=1}items.push(item)}shadowCt=me.shadowCt=Ext.createWidget("container",{layout:"hbox",items:items,ownerCt:owner})}return shadowCt},getColCount:function(){var owner=this.owner,colsCfg=owner.columns;return Ext.isArray(colsCfg)?colsCfg.length:(Ext.isNumber(colsCfg)?colsCfg:owner.items.length)}});Ext.define("Ext.form.FieldContainer",{extend:"Ext.container.Container",mixins:{labelable:"Ext.form.Labelable",fieldAncestor:"Ext.form.FieldAncestor"},alias:"widget.fieldcontainer",componentLayout:"field",combineLabels:false,labelConnector:", ",combineErrors:false,maskOnDisable:false,initComponent:function(){var me=this,onSubCmpAddOrRemove=me.onSubCmpAddOrRemove;me.initLabelable();me.initFieldAncestor();me.callParent()},onLabelableAdded:function(labelable){var me=this;me.mixins.fieldAncestor.onLabelableAdded.call(this,labelable);me.updateLabel()},onLabelableRemoved:function(labelable){var me=this;me.mixins.fieldAncestor.onLabelableRemoved.call(this,labelable);me.updateLabel()},onRender:function(){var me=this;me.onLabelableRender();me.callParent(arguments)},initRenderTpl:function(){var me=this;if(!me.hasOwnProperty("renderTpl")){me.renderTpl=me.getTpl("labelableRenderTpl")}return me.callParent()},initRenderData:function(){return Ext.applyIf(this.callParent(),this.getLabelableRenderData())},getFieldLabel:function(){var label=this.fieldLabel||"";if(!label&&this.combineLabels){label=Ext.Array.map(this.query("[isFieldLabelable]"),function(field){return field.getFieldLabel()}).join(this.labelConnector)}return label},updateLabel:function(){var me=this,label=me.labelEl;if(label){label.update(me.getFieldLabel())}},onFieldErrorChange:function(field,activeError){if(this.combineErrors){var me=this,oldError=me.getActiveError(),invalidFields=Ext.Array.filter(me.query("[isFormField]"),function(field){return field.hasActiveError()}),newErrors=me.getCombinedErrors(invalidFields);if(newErrors){me.setActiveErrors(newErrors)}else{me.unsetActiveError()}if(oldError!==me.getActiveError()){me.doComponentLayout()}}},getCombinedErrors:function(invalidFields){var forEach=Ext.Array.forEach,errors=[];forEach(invalidFields,function(field){forEach(field.getActiveErrors(),function(error){var label=field.getFieldLabel();errors.push((label?label+": ":"")+error)})});return errors},getTargetEl:function(){return this.bodyEl||this.callParent()}});Ext.define("Ext.form.CheckboxGroup",{extend:"Ext.form.FieldContainer",mixins:{field:"Ext.form.field.Field"},alias:"widget.checkboxgroup",requires:["Ext.layout.container.CheckboxGroup","Ext.form.field.Base"],columns:"auto",vertical:false,allowBlank:true,blankText:"You must select at least one item in this group",defaultType:"checkboxfield",groupCls:Ext.baseCSSPrefix+"form-check-group",fieldBodyCls:Ext.baseCSSPrefix+"form-checkboxgroup-body",layout:"checkboxgroup",initComponent:function(){var me=this;me.callParent();me.initField()},initValue:function(){var me=this,valueCfg=me.value;me.originalValue=me.lastValue=valueCfg||me.getValue();if(valueCfg){me.setValue(valueCfg)}},onFieldAdded:function(field){var me=this;if(field.isCheckbox){me.mon(field,"change",me.checkChange,me)}me.callParent(arguments)},onFieldRemoved:function(field){var me=this;if(field.isCheckbox){me.mun(field,"change",me.checkChange,me)}me.callParent(arguments)},isEqual:function(value1,value2){var toQueryString=Ext.Object.toQueryString;return toQueryString(value1)===toQueryString(value2)},getErrors:function(){var errors=[];if(!this.allowBlank&&Ext.isEmpty(this.getChecked())){errors.push(this.blankText)}return errors},getBoxes:function(){return this.query("[isCheckbox]")},eachBox:function(fn,scope){Ext.Array.forEach(this.getBoxes(),fn,scope||this)},getChecked:function(){return Ext.Array.filter(this.getBoxes(),function(cb){return cb.getValue()})},isDirty:function(){return Ext.Array.some(this.getBoxes(),function(cb){return cb.isDirty()})},setReadOnly:function(readOnly){this.eachBox(function(cb){cb.setReadOnly(readOnly)});this.readOnly=readOnly},reset:function(){var me=this,hadError=me.hasActiveError(),preventMark=me.preventMark;me.preventMark=true;me.batchChanges(function(){me.eachBox(function(cb){cb.reset()})});me.preventMark=preventMark;me.unsetActiveError();if(hadError){me.doComponentLayout()}},resetOriginalValue:function(){Ext.defer(function(){this.callParent()},1,this)},setValue:function(value){var me=this;me.batchChanges(function(){me.eachBox(function(cb){var name=cb.getName(),cbValue=false;if(value&&name in value){if(Ext.isArray(value[name])){cbValue=Ext.Array.contains(value[name],cb.inputValue)}else{cbValue=value[name]}}cb.setValue(cbValue)})});return me},getValue:function(){var values={};this.eachBox(function(cb){var name=cb.getName(),inputValue=cb.inputValue,bucket;if(cb.getValue()){if(name in values){bucket=values[name];if(!Ext.isArray(bucket)){bucket=values[name]=[bucket]}bucket.push(inputValue)}else{values[name]=inputValue}}});return values},getSubmitData:function(){return null},getModelData:function(){return null},validate:function(){var me=this,errors=me.getErrors(),isValid=Ext.isEmpty(errors),wasValid=!me.hasActiveError();if(isValid){me.unsetActiveError()}else{me.setActiveError(errors)}if(isValid!==wasValid){me.fireEvent("validitychange",me,isValid);me.doComponentLayout()}return isValid}},function(){this.borrow(Ext.form.field.Base,["markInvalid","clearInvalid"])});Ext.define("Ext.form.CheckboxManager",{extend:"Ext.util.MixedCollection",singleton:true,getByName:function(name){return this.filterBy(function(item){return item.name==name})},getWithValue:function(name,value){return this.filterBy(function(item){return item.name==name&&item.inputValue==value})},getChecked:function(name){return this.filterBy(function(item){return item.name==name&&item.checked})}});Ext.define("Ext.form.FieldSet",{extend:"Ext.container.Container",alias:"widget.fieldset",uses:["Ext.form.field.Checkbox","Ext.panel.Tool","Ext.layout.container.Anchor","Ext.layout.component.FieldSet"],collapsed:false,baseCls:Ext.baseCSSPrefix+"fieldset",layout:"anchor",componentLayout:"fieldset",ariaRole:"",renderTpl:['<div id="{id}-body" class="{baseCls}-body"></div>'],maskOnDisable:false,getElConfig:function(){return{tag:"fieldset",id:this.id}},initComponent:function(){var me=this,baseCls=me.baseCls;me.callParent();me.initLegend();me.addChildEls("body");if(me.collapsed){me.addCls(baseCls+"-collapsed");me.collapse()}},onRender:function(container,position){this.callParent(arguments);this.initLegend()},initLegend:function(){var me=this,legendItems,legend=me.legend;if(!legend&&(me.title||me.checkboxToggle||me.collapsible)){legendItems=[];if(me.checkboxToggle){legendItems.push(me.createCheckboxCmp())}else{if(me.collapsible){legendItems.push(me.createToggleCmp())}}legendItems.push(me.createTitleCmp());legend=me.legend=Ext.create("Ext.container.Container",{baseCls:me.baseCls+"-header",ariaRole:"",ownerCt:this,getElConfig:function(){var result={tag:"legend",cls:this.baseCls};if(!Ext.isGecko3){result.children=[{cls:Ext.baseCSSPrefix+"clear"}]}return result},items:legendItems})}if(legend&&!legend.rendered&&me.rendered){me.legend.render(me.el,me.body)}},createTitleCmp:function(){var me=this;me.titleCmp=Ext.create("Ext.Component",{html:me.title,getElConfig:function(){return{tag:Ext.isGecko3?"span":"div",cls:me.titleCmp.cls,id:me.titleCmp.id}},cls:me.baseCls+"-header-text"});return me.titleCmp},createCheckboxCmp:function(){var me=this,suffix="-checkbox";me.checkboxCmp=Ext.create("Ext.form.field.Checkbox",{getElConfig:function(){return{tag:Ext.isGecko3?"span":"div",id:me.checkboxCmp.id,cls:me.checkboxCmp.cls}},name:me.checkboxName||me.id+suffix,cls:me.baseCls+"-header"+suffix,checked:!me.collapsed,listeners:{change:me.onCheckChange,scope:me}});return me.checkboxCmp},createToggleCmp:function(){var me=this;me.toggleCmp=Ext.create("Ext.panel.Tool",{getElConfig:function(){return{tag:Ext.isGecko3?"span":"div",id:me.toggleCmp.id,cls:me.toggleCmp.cls}},type:"toggle",handler:me.toggle,scope:me});return me.toggleCmp},setTitle:function(title){var me=this;me.title=title;me.initLegend();me.titleCmp.update(title);return me},getTargetEl:function(){return this.body||this.frameBody||this.el},getContentTarget:function(){return this.body},getRefItems:function(deep){var refItems=this.callParent(arguments),legend=this.legend;if(legend){refItems.unshift(legend);if(deep){refItems.unshift.apply(refItems,legend.getRefItems(true))}}return refItems},expand:function(){return this.setExpanded(true)},collapse:function(){return this.setExpanded(false)},setExpanded:function(expanded){var me=this,checkboxCmp=me.checkboxCmp;expanded=!!expanded;if(checkboxCmp){checkboxCmp.setValue(expanded)}if(expanded){me.removeCls(me.baseCls+"-collapsed")}else{me.addCls(me.baseCls+"-collapsed")}me.collapsed=!expanded;if(expanded){me.getComponentLayout().childrenChanged=true}me.doComponentLayout();return me},toggle:function(){this.setExpanded(!!this.collapsed)},onCheckChange:function(cmp,checked){this.setExpanded(checked)},beforeDestroy:function(){var legend=this.legend;if(legend){legend.destroy()}this.callParent()}});Ext.define("Ext.form.Label",{extend:"Ext.Component",alias:"widget.label",requires:["Ext.util.Format"],maskOnDisable:false,getElConfig:function(){var me=this;return{tag:"label",id:me.id,htmlFor:me.forId||"",html:me.text?Ext.util.Format.htmlEncode(me.text):(me.html||"")}},setText:function(text,encode){var me=this;encode=encode!==false;if(encode){me.text=text;delete me.html}else{me.html=text;delete me.text}if(me.rendered){me.el.dom.innerHTML=encode!==false?Ext.util.Format.htmlEncode(text):text}return this}});Ext.define("Ext.form.Panel",{extend:"Ext.panel.Panel",mixins:{fieldAncestor:"Ext.form.FieldAncestor"},alias:"widget.form",alternateClassName:["Ext.FormPanel","Ext.form.FormPanel"],requires:["Ext.form.Basic","Ext.util.TaskRunner"],layout:"anchor",ariaRole:"form",initComponent:function(){var me=this;if(me.frame){me.border=false}me.initFieldAncestor();me.callParent();me.relayEvents(me.form,["beforeaction","actionfailed","actioncomplete","validitychange","dirtychange"]);if(me.pollForChanges){me.startPolling(me.pollInterval||500)}},initItems:function(){var me=this;me.form=me.createForm();me.callParent();me.form.initialize()},createForm:function(){return Ext.create("Ext.form.Basic",this,Ext.applyIf({listeners:{}},this.initialConfig))},getForm:function(){return this.form},loadRecord:function(record){return this.getForm().loadRecord(record)},getRecord:function(){return this.getForm().getRecord()},getValues:function(){return this.getForm().getValues()},beforeDestroy:function(){this.stopPolling();this.form.destroy();this.callParent()},load:function(options){this.form.load(options)},submit:function(options){this.form.submit(options)},disable:function(silent){this.callParent(arguments);this.form.getFields().each(function(field){field.disable()})},enable:function(silent){this.callParent(arguments);this.form.getFields().each(function(field){field.enable()})},startPolling:function(interval){this.stopPolling();var task=Ext.create("Ext.util.TaskRunner",interval);task.start({interval:0,run:this.checkChange,scope:this});this.pollTask=task},stopPolling:function(){var task=this.pollTask;if(task){task.stopAll();delete this.pollTask}},checkChange:function(){this.form.getFields().each(function(field){field.checkChange()})}});Ext.define("Ext.form.RadioGroup",{extend:"Ext.form.CheckboxGroup",alias:"widget.radiogroup",allowBlank:true,blankText:"You must select one item in this group",defaultType:"radiofield",groupCls:Ext.baseCSSPrefix+"form-radio-group",getBoxes:function(){return this.query("[isRadio]")},setValue:function(value){var me=this;if(Ext.isObject(value)){Ext.Object.each(value,function(name,cbValue){var radios=Ext.form.RadioManager.getWithValue(name,cbValue);radios.each(function(cb){cb.setValue(true)})})}return me}});Ext.define("Ext.form.RadioManager",{extend:"Ext.util.MixedCollection",singleton:true,getByName:function(name){return this.filterBy(function(item){return item.name==name})},getWithValue:function(name,value){return this.filterBy(function(item){return item.name==name&&item.inputValue==value})},getChecked:function(name){return this.findBy(function(item){return item.name==name&&item.checked})}});Ext.define("Ext.form.action.DirectLoad",{extend:"Ext.form.action.Load",requires:["Ext.direct.Manager"],alternateClassName:"Ext.form.Action.DirectLoad",alias:"formaction.directload",type:"directload",run:function(){this.form.api.load.apply(window,this.getArgs())},getArgs:function(){var me=this,args=[],form=me.form,paramOrder=form.paramOrder,params=me.getParams(),i,len;if(paramOrder){for(i=0,len=paramOrder.length;i<len;i++){args.push(params[paramOrder[i]])}}else{if(form.paramsAsHash){args.push(params)}}args.push(me.onSuccess,me);return args},processResponse:function(result){return(this.result=result)},onSuccess:function(result,trans){if(trans.type==Ext.direct.Manager.self.exceptions.SERVER){result={}}this.callParent([result])}});Ext.define("Ext.form.action.DirectSubmit",{extend:"Ext.form.action.Submit",requires:["Ext.direct.Manager"],alternateClassName:"Ext.form.Action.DirectSubmit",alias:"formaction.directsubmit",type:"directsubmit",doSubmit:function(){var me=this,callback=Ext.Function.bind(me.onSuccess,me),formEl=me.buildForm();me.form.api.submit(formEl,callback,me);Ext.removeNode(formEl)},processResponse:function(result){return(this.result=result)},onSuccess:function(response,trans){if(trans.type===Ext.direct.Manager.self.exceptions.SERVER){response={}}this.callParent([response])}});Ext.define("Ext.form.action.StandardSubmit",{extend:"Ext.form.action.Submit",alias:"formaction.standardsubmit",doSubmit:function(){var form=this.buildForm();form.submit();Ext.removeNode(form)}});Ext.define("Ext.form.field.Checkbox",{extend:"Ext.form.field.Base",alias:["widget.checkboxfield","widget.checkbox"],alternateClassName:"Ext.form.Checkbox",requires:["Ext.XTemplate","Ext.form.CheckboxManager"],fieldSubTpl:["<tpl if=\"boxLabel && boxLabelAlign == 'before'\">",'<label id="{cmpId}-boxLabelEl" class="{boxLabelCls} {boxLabelCls}-{boxLabelAlign}" for="{id}">{boxLabel}</label>',"</tpl>",'<input type="button" id="{id}" ','<tpl if="tabIdx">tabIndex="{tabIdx}" </tpl>','class="{fieldCls} {typeCls}" autocomplete="off" hidefocus="true" />',"<tpl if=\"boxLabel && boxLabelAlign == 'after'\">",'<label id="{cmpId}-boxLabelEl" class="{boxLabelCls} {boxLabelCls}-{boxLabelAlign}" for="{id}">{boxLabel}</label>',"</tpl>",{disableFormats:true,compiled:true}],isCheckbox:true,focusCls:Ext.baseCSSPrefix+"form-cb-focus",fieldBodyCls:Ext.baseCSSPrefix+"form-cb-wrap",checked:false,checkedCls:Ext.baseCSSPrefix+"form-cb-checked",boxLabelCls:Ext.baseCSSPrefix+"form-cb-label",boxLabelAlign:"after",inputValue:"on",checkChangeEvents:[],inputType:"checkbox",ariaRole:"checkbox",onRe:/^on$/i,initComponent:function(){this.callParent(arguments);this.getManager().add(this)},initValue:function(){var me=this,checked=!!me.checked;me.originalValue=me.lastValue=checked;me.setValue(checked)},onRender:function(ct,position){var me=this;me.addChildEls("boxLabelEl");Ext.applyIf(me.subTplData,{boxLabel:me.boxLabel,boxLabelCls:me.boxLabelCls,boxLabelAlign:me.boxLabelAlign});me.callParent(arguments)},initEvents:function(){var me=this;me.callParent();me.mon(me.inputEl,"click",me.onBoxClick,me)},onBoxClick:function(e){var me=this;if(!me.disabled&&!me.readOnly){this.setValue(!this.checked)}},getRawValue:function(){return this.checked},getValue:function(){return this.checked},getSubmitValue:function(){var unchecked=this.uncheckedValue,uncheckedVal=Ext.isDefined(unchecked)?unchecked:null;return this.checked?this.inputValue:uncheckedVal},setRawValue:function(value){var me=this,inputEl=me.inputEl,inputValue=me.inputValue,checked=(value===true||value==="true"||value==="1"||value===1||(((Ext.isString(value)||Ext.isNumber(value))&&inputValue)?value==inputValue:me.onRe.test(value)));if(inputEl){inputEl.dom.setAttribute("aria-checked",checked);me[checked?"addCls":"removeCls"](me.checkedCls)}me.checked=me.rawValue=checked;return checked},setValue:function(checked){var me=this;if(Ext.isArray(checked)){me.getManager().getByName(me.name).each(function(cb){cb.setValue(Ext.Array.contains(checked,cb.inputValue))})}else{me.callParent(arguments)}return me},valueToRaw:function(value){return value},onChange:function(newVal,oldVal){var me=this,handler=me.handler;if(handler){handler.call(me.scope||me,me,newVal)}me.callParent(arguments)},beforeDestroy:function(){this.callParent();this.getManager().removeAtKey(this.id)},getManager:function(){return Ext.form.CheckboxManager},onEnable:function(){var me=this,inputEl=me.inputEl;me.callParent();if(inputEl){inputEl.dom.disabled=me.readOnly}},setReadOnly:function(readOnly){var me=this,inputEl=me.inputEl;if(inputEl){inputEl.dom.disabled=readOnly||me.disabled}me.readOnly=readOnly},getBodyNaturalWidth:function(){var me=this,bodyEl=me.bodyEl,ws="white-space",width;bodyEl.setStyle(ws,"nowrap");width=bodyEl.getWidth();bodyEl.setStyle(ws,"");return width}});Ext.define("Ext.layout.component.field.Trigger",{alias:["layout.triggerfield"],extend:"Ext.layout.component.field.Field",type:"triggerfield",sizeBodyContents:function(width,height){var me=this,owner=me.owner,inputEl=owner.inputEl,triggerWrap=owner.triggerWrap,triggerWidth=owner.getTriggerWidth();if(owner.hideTrigger||owner.readOnly||triggerWidth>0){me.setElementSize(inputEl,Ext.isNumber(width)?width-triggerWidth:width);triggerWrap.setWidth(triggerWidth)}}});Ext.define("Ext.view.View",{extend:"Ext.view.AbstractView",alternateClassName:"Ext.DataView",alias:"widget.dataview",inheritableStatics:{EventMap:{mousedown:"MouseDown",mouseup:"MouseUp",click:"Click",dblclick:"DblClick",contextmenu:"ContextMenu",mouseover:"MouseOver",mouseout:"MouseOut",mouseenter:"MouseEnter",mouseleave:"MouseLeave",keydown:"KeyDown",focus:"Focus"}},addCmpEvents:function(){this.addEvents("beforeitemmousedown","beforeitemmouseup","beforeitemmouseenter","beforeitemmouseleave","beforeitemclick","beforeitemdblclick","beforeitemcontextmenu","beforeitemkeydown","itemmousedown","itemmouseup","itemmouseenter","itemmouseleave","itemclick","itemdblclick","itemcontextmenu","itemkeydown","beforecontainermousedown","beforecontainermouseup","beforecontainermouseover","beforecontainermouseout","beforecontainerclick","beforecontainerdblclick","beforecontainercontextmenu","beforecontainerkeydown","containermouseup","containermouseover","containermouseout","containerclick","containerdblclick","containercontextmenu","containerkeydown","selectionchange","beforeselect")},afterRender:function(){var me=this,listeners;me.callParent();listeners={scope:me,freezeEvent:true,click:me.handleEvent,mousedown:me.handleEvent,mouseup:me.handleEvent,dblclick:me.handleEvent,contextmenu:me.handleEvent,mouseover:me.handleEvent,mouseout:me.handleEvent,keydown:me.handleEvent};me.mon(me.getTargetEl(),listeners);if(me.store){me.bindStore(me.store,true)}},handleEvent:function(e){if(this.processUIEvent(e)!==false){this.processSpecialEvent(e)}},processItemEvent:Ext.emptyFn,processContainerEvent:Ext.emptyFn,processSpecialEvent:Ext.emptyFn,stillOverItem:function(event,overItem){var nowOver;if(overItem&&typeof(overItem.offsetParent)==="object"){nowOver=(event.type=="mouseout")?event.getRelatedTarget():event.getTarget();return Ext.fly(overItem).contains(nowOver)}return false},processUIEvent:function(e){var me=this,item=e.getTarget(me.getItemSelector(),me.getTargetEl()),map=this.statics().EventMap,index,record,type=e.type,overItem=me.mouseOverItem,newType;if(!item){if(type=="mouseover"&&me.stillOverItem(e,overItem)){item=overItem}if(type=="keydown"){record=me.getSelectionModel().getLastSelected();if(record){item=me.getNode(record)}}}if(item){index=me.indexOf(item);if(!record){record=me.getRecord(item)}if(me.processItemEvent(record,item,index,e)===false){return false}newType=me.isNewItemEvent(item,e);if(newType===false){return false}if((me["onBeforeItem"+map[newType]](record,item,index,e)===false)||(me.fireEvent("beforeitem"+newType,me,record,item,index,e)===false)||(me["onItem"+map[newType]](record,item,index,e)===false)){return false}me.fireEvent("item"+newType,me,record,item,index,e)}else{if((me.processContainerEvent(e)===false)||(me["onBeforeContainer"+map[type]](e)===false)||(me.fireEvent("beforecontainer"+type,me,e)===false)||(me["onContainer"+map[type]](e)===false)){return false}me.fireEvent("container"+type,me,e)}return true},isNewItemEvent:function(item,e){var me=this,overItem=me.mouseOverItem,type=e.type;switch(type){case"mouseover":if(item===overItem){return false}me.mouseOverItem=item;return"mouseenter";case"mouseout":if(me.stillOverItem(e,overItem)){return false}me.mouseOverItem=null;return"mouseleave"}return type},onItemMouseEnter:function(record,item,index,e){if(this.trackOver){this.highlightItem(item)}},onItemMouseLeave:function(record,item,index,e){if(this.trackOver){this.clearHighlight()}},onItemMouseDown:Ext.emptyFn,onItemMouseUp:Ext.emptyFn,onItemFocus:Ext.emptyFn,onItemClick:Ext.emptyFn,onItemDblClick:Ext.emptyFn,onItemContextMenu:Ext.emptyFn,onItemKeyDown:Ext.emptyFn,onBeforeItemMouseDown:Ext.emptyFn,onBeforeItemMouseUp:Ext.emptyFn,onBeforeItemFocus:Ext.emptyFn,onBeforeItemMouseEnter:Ext.emptyFn,onBeforeItemMouseLeave:Ext.emptyFn,onBeforeItemClick:Ext.emptyFn,onBeforeItemDblClick:Ext.emptyFn,onBeforeItemContextMenu:Ext.emptyFn,onBeforeItemKeyDown:Ext.emptyFn,onContainerMouseDown:Ext.emptyFn,onContainerMouseUp:Ext.emptyFn,onContainerMouseOver:Ext.emptyFn,onContainerMouseOut:Ext.emptyFn,onContainerClick:Ext.emptyFn,onContainerDblClick:Ext.emptyFn,onContainerContextMenu:Ext.emptyFn,onContainerKeyDown:Ext.emptyFn,onBeforeContainerMouseDown:Ext.emptyFn,onBeforeContainerMouseUp:Ext.emptyFn,onBeforeContainerMouseOver:Ext.emptyFn,onBeforeContainerMouseOut:Ext.emptyFn,onBeforeContainerClick:Ext.emptyFn,onBeforeContainerDblClick:Ext.emptyFn,onBeforeContainerContextMenu:Ext.emptyFn,onBeforeContainerKeyDown:Ext.emptyFn,highlightItem:function(item){var me=this;me.clearHighlight();me.highlightedItem=item;Ext.fly(item).addCls(me.overItemCls)},clearHighlight:function(){var me=this,highlighted=me.highlightedItem;if(highlighted){Ext.fly(highlighted).removeCls(me.overItemCls);delete me.highlightedItem}},refresh:function(){var me=this;me.clearHighlight();me.callParent(arguments);if(!me.isFixedHeight()){me.doComponentLayout()}}});Ext.define("Ext.layout.component.BoundList",{extend:"Ext.layout.component.Component",alias:"layout.boundlist",type:"component",beforeLayout:function(){return this.callParent(arguments)||this.owner.refreshed>0},onLayout:function(width,height){var me=this,owner=me.owner,floating=owner.floating,el=owner.el,xy=el.getXY(),isNumber=Ext.isNumber,minWidth,maxWidth,minHeight,maxHeight,naturalWidth,naturalHeight,constrainedWidth,constrainedHeight,undef;if(floating){el.setXY([-9999,-9999])}me.setTargetSize(width,height);if(!isNumber(width)){minWidth=owner.minWidth;maxWidth=owner.maxWidth;if(isNumber(minWidth)||isNumber(maxWidth)){naturalWidth=el.getWidth();if(naturalWidth<minWidth){constrainedWidth=minWidth}else{if(naturalWidth>maxWidth){constrainedWidth=maxWidth}}if(constrainedWidth){me.setTargetSize(constrainedWidth)}}}if(!isNumber(height)){minHeight=owner.minHeight;maxHeight=owner.maxHeight;if(isNumber(minHeight)||isNumber(maxHeight)){naturalHeight=el.getHeight();if(naturalHeight<minHeight){constrainedHeight=minHeight}else{if(naturalHeight>maxHeight){constrainedHeight=maxHeight}}if(constrainedHeight){me.setTargetSize(undef,constrainedHeight)}}}if(floating){el.setXY(xy)}},afterLayout:function(){var me=this,toolbar=me.owner.pagingToolbar;me.callParent();if(toolbar){toolbar.doComponentLayout()}},setTargetSize:function(width,height){var me=this,owner=me.owner,listHeight=null,toolbar;if(Ext.isNumber(height)){listHeight=height-owner.el.getFrameWidth("tb");toolbar=owner.pagingToolbar;if(toolbar){listHeight-=toolbar.getHeight()}}me.setElementSize(owner.listEl,null,listHeight);me.callParent(arguments)}});Ext.define("Ext.toolbar.TextItem",{extend:"Ext.toolbar.Item",requires:["Ext.XTemplate"],alias:"widget.tbtext",alternateClassName:"Ext.Toolbar.TextItem",text:"",renderTpl:"{text}",baseCls:Ext.baseCSSPrefix+"toolbar-text",onRender:function(){Ext.apply(this.renderData,{text:this.text});this.callParent(arguments)},setText:function(t){if(this.rendered){this.el.update(t);this.ownerCt.doLayout()}else{this.text=t}}});Ext.define("Ext.form.field.Trigger",{extend:"Ext.form.field.Text",alias:["widget.triggerfield","widget.trigger"],requires:["Ext.DomHelper","Ext.util.ClickRepeater","Ext.layout.component.field.Trigger"],alternateClassName:["Ext.form.TriggerField","Ext.form.TwinTriggerField","Ext.form.Trigger"],fieldSubTpl:['<input id="{id}" type="{type}" ','<tpl if="name">name="{name}" </tpl>','<tpl if="size">size="{size}" </tpl>','<tpl if="tabIdx">tabIndex="{tabIdx}" </tpl>','class="{fieldCls} {typeCls}" autocomplete="off" />','<div id="{cmpId}-triggerWrap" class="{triggerWrapCls}" role="presentation">',"{triggerEl}",'<div class="{clearCls}" role="presentation"></div>',"</div>",{compiled:true,disableFormats:true}],triggerBaseCls:Ext.baseCSSPrefix+"form-trigger",triggerWrapCls:Ext.baseCSSPrefix+"form-trigger-wrap",hideTrigger:false,editable:true,readOnly:false,repeatTriggerClick:false,autoSize:Ext.emptyFn,monitorTab:true,mimicing:false,triggerIndexRe:/trigger-index-(\d+)/,componentLayout:"triggerfield",initComponent:function(){this.wrapFocusCls=this.triggerWrapCls+"-focus";this.callParent(arguments)},onRender:function(ct,position){var me=this,triggerCls,triggerBaseCls=me.triggerBaseCls,triggerWrapCls=me.triggerWrapCls,triggerConfigs=[],i;if(!me.trigger1Cls){me.trigger1Cls=me.triggerCls}for(i=0;(triggerCls=me["trigger"+(i+1)+"Cls"])||i<1;i++){triggerConfigs.push({cls:[Ext.baseCSSPrefix+"trigger-index-"+i,triggerBaseCls,triggerCls].join(" "),role:"button"})}triggerConfigs[i-1].cls+=" "+triggerBaseCls+"-last";me.addChildEls("triggerWrap");Ext.applyIf(me.subTplData,{triggerWrapCls:triggerWrapCls,triggerEl:Ext.DomHelper.markup(triggerConfigs),clearCls:me.clearCls});me.callParent(arguments);me.triggerEl=Ext.select("."+triggerBaseCls,true,me.triggerWrap.dom);me.doc=Ext.getDoc();me.initTrigger()},onEnable:function(){this.callParent();this.triggerWrap.unmask()},onDisable:function(){this.callParent();this.triggerWrap.mask()},afterRender:function(){this.callParent();this.updateEditState();this.triggerEl.unselectable()},updateEditState:function(){var me=this,inputEl=me.inputEl,triggerWrap=me.triggerWrap,noeditCls=Ext.baseCSSPrefix+"trigger-noedit",displayed,readOnly;if(me.rendered){if(me.readOnly){inputEl.addCls(noeditCls);readOnly=true;displayed=false}else{if(me.editable){inputEl.removeCls(noeditCls);readOnly=false}else{inputEl.addCls(noeditCls);readOnly=true}displayed=!me.hideTrigger}triggerWrap.setDisplayed(displayed);inputEl.dom.readOnly=readOnly;me.doComponentLayout()}},getTriggerWidth:function(){var me=this,triggerWrap=me.triggerWrap,totalTriggerWidth=0;if(triggerWrap&&!me.hideTrigger&&!me.readOnly){me.triggerEl.each(function(trigger){totalTriggerWidth+=trigger.getWidth()});totalTriggerWidth+=me.triggerWrap.getFrameWidth("lr")}return totalTriggerWidth},setHideTrigger:function(hideTrigger){if(hideTrigger!=this.hideTrigger){this.hideTrigger=hideTrigger;this.updateEditState()}},setEditable:function(editable){if(editable!=this.editable){this.editable=editable;this.updateEditState()}},setReadOnly:function(readOnly){if(readOnly!=this.readOnly){this.readOnly=readOnly;this.updateEditState()}},initTrigger:function(){var me=this,triggerWrap=me.triggerWrap,triggerEl=me.triggerEl;if(me.repeatTriggerClick){me.triggerRepeater=Ext.create("Ext.util.ClickRepeater",triggerWrap,{preventDefault:true,handler:function(cr,e){me.onTriggerWrapClick(e)}})}else{me.mon(me.triggerWrap,"click",me.onTriggerWrapClick,me)}triggerEl.addClsOnOver(me.triggerBaseCls+"-over");triggerEl.each(function(el,c,i){el.addClsOnOver(me["trigger"+(i+1)+"Cls"]+"-over")});triggerEl.addClsOnClick(me.triggerBaseCls+"-click");triggerEl.each(function(el,c,i){el.addClsOnClick(me["trigger"+(i+1)+"Cls"]+"-click")})},onDestroy:function(){var me=this;Ext.destroyMembers(me,"triggerRepeater","triggerWrap","triggerEl");delete me.doc;me.callParent()},onFocus:function(){var me=this;me.callParent();if(!me.mimicing){me.bodyEl.addCls(me.wrapFocusCls);me.mimicing=true;me.mon(me.doc,"mousedown",me.mimicBlur,me,{delay:10});if(me.monitorTab){me.on("specialkey",me.checkTab,me)}}},checkTab:function(me,e){if(!this.ignoreMonitorTab&&e.getKey()==e.TAB){this.triggerBlur()}},onBlur:Ext.emptyFn,mimicBlur:function(e){if(!this.isDestroyed&&!this.bodyEl.contains(e.target)&&this.validateBlur(e)){this.triggerBlur()}},triggerBlur:function(){var me=this;me.mimicing=false;me.mun(me.doc,"mousedown",me.mimicBlur,me);if(me.monitorTab&&me.inputEl){me.un("specialkey",me.checkTab,me)}Ext.form.field.Trigger.superclass.onBlur.call(me);if(me.bodyEl){me.bodyEl.removeCls(me.wrapFocusCls)}},beforeBlur:Ext.emptyFn,validateBlur:function(e){return true},onTriggerWrapClick:function(e){var me=this,t=e&&e.getTarget("."+Ext.baseCSSPrefix+"form-trigger",null),match=t&&t.className.match(me.triggerIndexRe),idx,triggerClickMethod;if(match&&!me.readOnly){idx=parseInt(match[1],10);triggerClickMethod=me["onTrigger"+(idx+1)+"Click"]||me.onTriggerClick;if(triggerClickMethod){triggerClickMethod.call(me,e)}}},onTriggerClick:Ext.emptyFn});Ext.define("Ext.form.field.Picker",{extend:"Ext.form.field.Trigger",alias:"widget.pickerfield",alternateClassName:"Ext.form.Picker",requires:["Ext.util.KeyNav"],matchFieldWidth:true,pickerAlign:"tl-bl?",openCls:Ext.baseCSSPrefix+"pickerfield-open",editable:true,initComponent:function(){this.callParent();this.addEvents("expand","collapse","select")},initEvents:function(){var me=this;me.callParent();me.keyNav=Ext.create("Ext.util.KeyNav",me.inputEl,{down:function(){if(!me.isExpanded){me.onTriggerClick()}},esc:me.collapse,scope:me,forceKeyDown:true});if(!me.editable){me.mon(me.inputEl,"click",me.onTriggerClick,me)}if(Ext.isGecko){me.inputEl.dom.setAttribute("autocomplete","off")}},expand:function(){var me=this,bodyEl,picker,collapseIf;if(me.rendered&&!me.isExpanded&&!me.isDestroyed){bodyEl=me.bodyEl;picker=me.getPicker();collapseIf=me.collapseIf;picker.show();me.isExpanded=true;me.alignPicker();bodyEl.addCls(me.openCls);me.mon(Ext.getDoc(),{mousewheel:collapseIf,mousedown:collapseIf,scope:me});Ext.EventManager.onWindowResize(me.alignPicker,me);me.fireEvent("expand",me);me.onExpand()}},onExpand:Ext.emptyFn,alignPicker:function(){var me=this,picker;if(me.isExpanded){picker=me.getPicker();if(me.matchFieldWidth){picker.setSize(me.bodyEl.getWidth(),picker.store&&picker.store.getCount()?null:0)}if(picker.isFloating()){me.doAlign()}}},doAlign:function(){var me=this,picker=me.picker,aboveSfx="-above",isAbove;me.picker.alignTo(me.inputEl,me.pickerAlign,me.pickerOffset);isAbove=picker.el.getY()<me.inputEl.getY();me.bodyEl[isAbove?"addCls":"removeCls"](me.openCls+aboveSfx);picker[isAbove?"addCls":"removeCls"](picker.baseCls+aboveSfx)},collapse:function(){if(this.isExpanded&&!this.isDestroyed){var me=this,openCls=me.openCls,picker=me.picker,doc=Ext.getDoc(),collapseIf=me.collapseIf,aboveSfx="-above";picker.hide();me.isExpanded=false;me.bodyEl.removeCls([openCls,openCls+aboveSfx]);picker.el.removeCls(picker.baseCls+aboveSfx);doc.un("mousewheel",collapseIf,me);doc.un("mousedown",collapseIf,me);Ext.EventManager.removeResizeListener(me.alignPicker,me);me.fireEvent("collapse",me);me.onCollapse()}},onCollapse:Ext.emptyFn,collapseIf:function(e){var me=this;if(!me.isDestroyed&&!e.within(me.bodyEl,false,true)&&!e.within(me.picker.el,false,true)){me.collapse()}},getPicker:function(){var me=this;return me.picker||(me.picker=me.createPicker())},createPicker:Ext.emptyFn,onTriggerClick:function(){var me=this;if(!me.readOnly&&!me.disabled){if(me.isExpanded){me.collapse()}else{me.expand()}me.inputEl.focus()}},mimicBlur:function(e){var me=this,picker=me.picker;if(!picker||!e.within(picker.el,false,true)){me.callParent(arguments)}},onDestroy:function(){var me=this,picker=me.picker;Ext.EventManager.removeResizeListener(me.alignPicker,me);Ext.destroy(me.keyNav);if(picker){delete picker.pickerField;picker.destroy()}me.callParent()}});Ext.define("Ext.form.field.Spinner",{extend:"Ext.form.field.Trigger",alias:"widget.spinnerfield",alternateClassName:"Ext.form.Spinner",requires:["Ext.util.KeyNav"],trigger1Cls:Ext.baseCSSPrefix+"form-spinner-up",trigger2Cls:Ext.baseCSSPrefix+"form-spinner-down",spinUpEnabled:true,spinDownEnabled:true,keyNavEnabled:true,mouseWheelEnabled:true,repeatTriggerClick:true,onSpinUp:Ext.emptyFn,onSpinDown:Ext.emptyFn,initComponent:function(){this.callParent();this.addEvents("spin","spinup","spindown")},onRender:function(){var me=this,triggers;me.callParent(arguments);triggers=me.triggerEl;me.spinUpEl=triggers.item(0);me.spinDownEl=triggers.item(1);me.setSpinUpEnabled(me.spinUpEnabled);me.setSpinDownEnabled(me.spinDownEnabled);if(me.keyNavEnabled){me.spinnerKeyNav=Ext.create("Ext.util.KeyNav",me.inputEl,{scope:me,up:me.spinUp,down:me.spinDown})}if(me.mouseWheelEnabled){me.mon(me.bodyEl,"mousewheel",me.onMouseWheel,me)}},getTriggerWidth:function(){return this.hideTrigger||this.readOnly?0:this.spinUpEl.getWidth()+this.triggerWrap.getFrameWidth("lr")},onTrigger1Click:function(){this.spinUp()},onTrigger2Click:function(){this.spinDown()},spinUp:function(){var me=this;if(me.spinUpEnabled&&!me.disabled){me.fireEvent("spin",me,"up");me.fireEvent("spinup",me);me.onSpinUp()}},spinDown:function(){var me=this;if(me.spinDownEnabled&&!me.disabled){me.fireEvent("spin",me,"down");me.fireEvent("spindown",me);me.onSpinDown()}},setSpinUpEnabled:function(enabled){var me=this,wasEnabled=me.spinUpEnabled;me.spinUpEnabled=enabled;if(wasEnabled!==enabled&&me.rendered){me.spinUpEl[enabled?"removeCls":"addCls"](me.trigger1Cls+"-disabled")}},setSpinDownEnabled:function(enabled){var me=this,wasEnabled=me.spinDownEnabled;me.spinDownEnabled=enabled;if(wasEnabled!==enabled&&me.rendered){me.spinDownEl[enabled?"removeCls":"addCls"](me.trigger2Cls+"-disabled")}},onMouseWheel:function(e){var me=this,delta;if(me.hasFocus){delta=e.getWheelDelta();if(delta>0){me.spinUp()}else{if(delta<0){me.spinDown()}}e.stopEvent()}},onDestroy:function(){Ext.destroyMembers(this,"spinnerKeyNav","spinUpEl","spinDownEl");this.callParent()}});Ext.define("Ext.form.field.Number",{extend:"Ext.form.field.Spinner",alias:"widget.numberfield",alternateClassName:["Ext.form.NumberField","Ext.form.Number"],allowDecimals:true,decimalSeparator:".",decimalPrecision:2,minValue:Number.NEGATIVE_INFINITY,maxValue:Number.MAX_VALUE,step:1,minText:"The minimum value for this field is {0}",maxText:"The maximum value for this field is {0}",nanText:"{0} is not a valid number",negativeText:"The value cannot be negative",baseChars:"0123456789",autoStripChars:false,initComponent:function(){var me=this,allowed;me.callParent();me.setMinValue(me.minValue);me.setMaxValue(me.maxValue);if(me.disableKeyFilter!==true){allowed=me.baseChars+"";if(me.allowDecimals){allowed+=me.decimalSeparator}if(me.minValue<0){allowed+="-"}allowed=Ext.String.escapeRegex(allowed);me.maskRe=new RegExp("["+allowed+"]");if(me.autoStripChars){me.stripCharsRe=new RegExp("[^"+allowed+"]","gi")}}},getErrors:function(value){var me=this,errors=me.callParent(arguments),format=Ext.String.format,num;value=Ext.isDefined(value)?value:this.processRawValue(this.getRawValue());if(value.length<1){return errors}value=String(value).replace(me.decimalSeparator,".");if(isNaN(value)){errors.push(format(me.nanText,value))}num=me.parseValue(value);if(me.minValue===0&&num<0){errors.push(this.negativeText)}else{if(num<me.minValue){errors.push(format(me.minText,me.minValue))}}if(num>me.maxValue){errors.push(format(me.maxText,me.maxValue))}return errors},rawToValue:function(rawValue){var value=this.fixPrecision(this.parseValue(rawValue));if(value===null){value=rawValue||null}return value},valueToRaw:function(value){var me=this,decimalSeparator=me.decimalSeparator;value=me.parseValue(value);value=me.fixPrecision(value);value=Ext.isNumber(value)?value:parseFloat(String(value).replace(decimalSeparator,"."));value=isNaN(value)?"":String(value).replace(".",decimalSeparator);return value},onChange:function(){var me=this,value=me.getValue(),valueIsNull=value===null;me.callParent(arguments);me.setSpinUpEnabled(valueIsNull||value<me.maxValue);me.setSpinDownEnabled(valueIsNull||value>me.minValue)},setMinValue:function(value){this.minValue=Ext.Number.from(value,Number.NEGATIVE_INFINITY)},setMaxValue:function(value){this.maxValue=Ext.Number.from(value,Number.MAX_VALUE)},parseValue:function(value){value=parseFloat(String(value).replace(this.decimalSeparator,"."));return isNaN(value)?null:value},fixPrecision:function(value){var me=this,nan=isNaN(value),precision=me.decimalPrecision;if(nan||!value){return nan?"":value}else{if(!me.allowDecimals||precision<=0){precision=0}}return parseFloat(Ext.Number.toFixed(parseFloat(value),precision))},beforeBlur:function(){var me=this,v=me.parseValue(me.getRawValue());if(!Ext.isEmpty(v)){me.setValue(v)}},onSpinUp:function(){var me=this;if(!me.readOnly){me.setValue(Ext.Number.constrain(me.getValue()+me.step,me.minValue,me.maxValue))}},onSpinDown:function(){var me=this;if(!me.readOnly){me.setValue(Ext.Number.constrain(me.getValue()-me.step,me.minValue,me.maxValue))}}});Ext.define("Ext.toolbar.Paging",{extend:"Ext.toolbar.Toolbar",alias:"widget.pagingtoolbar",alternateClassName:"Ext.PagingToolbar",requires:["Ext.toolbar.TextItem","Ext.form.field.Number"],displayInfo:false,prependButtons:false,displayMsg:"Displaying {0} - {1} of {2}",emptyMsg:"No data to display",beforePageText:"Page",afterPageText:"of {0}",firstText:"First Page",prevText:"Previous Page",nextText:"Next Page",lastText:"Last Page",refreshText:"Refresh",inputItemWidth:30,getPagingItems:function(){var me=this;return[{itemId:"first",tooltip:me.firstText,overflowText:me.firstText,iconCls:Ext.baseCSSPrefix+"tbar-page-first",disabled:true,handler:me.moveFirst,scope:me},{itemId:"prev",tooltip:me.prevText,overflowText:me.prevText,iconCls:Ext.baseCSSPrefix+"tbar-page-prev",disabled:true,handler:me.movePrevious,scope:me},"-",me.beforePageText,{xtype:"numberfield",itemId:"inputItem",name:"inputItem",cls:Ext.baseCSSPrefix+"tbar-page-number",allowDecimals:false,minValue:1,hideTrigger:true,enableKeyEvents:true,selectOnFocus:true,submitValue:false,width:me.inputItemWidth,margins:"-1 2 3 2",listeners:{scope:me,keydown:me.onPagingKeyDown,blur:me.onPagingBlur}},{xtype:"tbtext",itemId:"afterTextItem",text:Ext.String.format(me.afterPageText,1)},"-",{itemId:"next",tooltip:me.nextText,overflowText:me.nextText,iconCls:Ext.baseCSSPrefix+"tbar-page-next",disabled:true,handler:me.moveNext,scope:me},{itemId:"last",tooltip:me.lastText,overflowText:me.lastText,iconCls:Ext.baseCSSPrefix+"tbar-page-last",disabled:true,handler:me.moveLast,scope:me},"-",{itemId:"refresh",tooltip:me.refreshText,overflowText:me.refreshText,iconCls:Ext.baseCSSPrefix+"tbar-loading",handler:me.doRefresh,scope:me}]},initComponent:function(){var me=this,pagingItems=me.getPagingItems(),userItems=me.items||me.buttons||[];if(me.prependButtons){me.items=userItems.concat(pagingItems)}else{me.items=pagingItems.concat(userItems)}delete me.buttons;if(me.displayInfo){me.items.push("->");me.items.push({xtype:"tbtext",itemId:"displayItem"})}me.callParent();me.addEvents("change","beforechange");me.on("afterlayout",me.onLoad,me,{single:true});me.bindStore(me.store||"ext-empty-store",true)},updateInfo:function(){var me=this,displayItem=me.child("#displayItem"),store=me.store,pageData=me.getPageData(),count,msg;if(displayItem){count=store.getCount();if(count===0){msg=me.emptyMsg}else{msg=Ext.String.format(me.displayMsg,pageData.fromRecord,pageData.toRecord,pageData.total)}displayItem.setText(msg);me.doComponentLayout()}},onLoad:function(){var me=this,pageData,currPage,pageCount,afterText;if(!me.rendered){return}pageData=me.getPageData();currPage=pageData.currentPage;pageCount=pageData.pageCount;afterText=Ext.String.format(me.afterPageText,isNaN(pageCount)?1:pageCount);me.child("#afterTextItem").setText(afterText);me.child("#inputItem").setValue(currPage);me.child("#first").setDisabled(currPage===1);me.child("#prev").setDisabled(currPage===1);me.child("#next").setDisabled(currPage===pageCount);me.child("#last").setDisabled(currPage===pageCount);me.child("#refresh").enable();me.updateInfo();me.fireEvent("change",me,pageData)},getPageData:function(){var store=this.store,totalCount=store.getTotalCount();return{total:totalCount,currentPage:store.currentPage,pageCount:Math.ceil(totalCount/store.pageSize),fromRecord:((store.currentPage-1)*store.pageSize)+1,toRecord:Math.min(store.currentPage*store.pageSize,totalCount)}},onLoadError:function(){if(!this.rendered){return}this.child("#refresh").enable()},readPageFromInput:function(pageData){var v=this.child("#inputItem").getValue(),pageNum=parseInt(v,10);if(!v||isNaN(pageNum)){this.child("#inputItem").setValue(pageData.currentPage);return false}return pageNum},onPagingFocus:function(){this.child("#inputItem").select()},onPagingBlur:function(e){var curPage=this.getPageData().currentPage;this.child("#inputItem").setValue(curPage)},onPagingKeyDown:function(field,e){var me=this,k=e.getKey(),pageData=me.getPageData(),increment=e.shiftKey?10:1,pageNum;if(k==e.RETURN){e.stopEvent();pageNum=me.readPageFromInput(pageData);if(pageNum!==false){pageNum=Math.min(Math.max(1,pageNum),pageData.pageCount);if(me.fireEvent("beforechange",me,pageNum)!==false){me.store.loadPage(pageNum)}}}else{if(k==e.HOME||k==e.END){e.stopEvent();pageNum=k==e.HOME?1:pageData.pageCount;field.setValue(pageNum)}else{if(k==e.UP||k==e.PAGEUP||k==e.DOWN||k==e.PAGEDOWN){e.stopEvent();pageNum=me.readPageFromInput(pageData);if(pageNum){if(k==e.DOWN||k==e.PAGEDOWN){increment*=-1}pageNum+=increment;if(pageNum>=1&&pageNum<=pageData.pages){field.setValue(pageNum)}}}}}},beforeLoad:function(){if(this.rendered&&this.refresh){this.refresh.disable()}},doLoad:function(start){if(this.fireEvent("beforechange",this,o)!==false){this.store.load()}},moveFirst:function(){if(this.fireEvent("beforechange",this,1)!==false){this.store.loadPage(1)}},movePrevious:function(){var me=this,prev=me.store.currentPage-1;if(prev>0){if(me.fireEvent("beforechange",me,prev)!==false){me.store.previousPage()}}},moveNext:function(){var me=this,total=me.getPageData().pageCount,next=me.store.currentPage+1;if(next<=total){if(me.fireEvent("beforechange",me,next)!==false){me.store.nextPage()}}},moveLast:function(){var me=this,last=me.getPageData().pageCount;if(me.fireEvent("beforechange",me,last)!==false){me.store.loadPage(last)}},doRefresh:function(){var me=this,current=me.store.currentPage;if(me.fireEvent("beforechange",me,current)!==false){me.store.loadPage(current)}},bindStore:function(store,initial){var me=this;if(!initial&&me.store){if(store!==me.store&&me.store.autoDestroy){me.store.destroyStore()}else{me.store.un("beforeload",me.beforeLoad,me);me.store.un("load",me.onLoad,me);me.store.un("exception",me.onLoadError,me)}if(!store){me.store=null}}if(store){store=Ext.data.StoreManager.lookup(store);store.on({scope:me,beforeload:me.beforeLoad,load:me.onLoad,exception:me.onLoadError})}me.store=store},unbind:function(store){this.bindStore(null)},bind:function(store){this.bindStore(store)},onDestroy:function(){this.bindStore(null);this.callParent()}});Ext.define("Ext.view.BoundList",{extend:"Ext.view.View",alias:"widget.boundlist",alternateClassName:"Ext.BoundList",requires:["Ext.layout.component.BoundList","Ext.toolbar.Paging"],pageSize:0,autoScroll:true,baseCls:Ext.baseCSSPrefix+"boundlist",itemCls:Ext.baseCSSPrefix+"boundlist-item",listItemCls:"",shadow:false,trackOver:true,refreshed:0,ariaRole:"listbox",componentLayout:"boundlist",renderTpl:['<div id="{id}-listEl" class="list-ct"></div>'],initComponent:function(){var me=this,baseCls=me.baseCls,itemCls=me.itemCls;me.selectedItemCls=baseCls+"-selected";me.overItemCls=baseCls+"-item-over";me.itemSelector="."+itemCls;if(me.floating){me.addCls(baseCls+"-floating")}if(!me.tpl){me.tpl=Ext.create("Ext.XTemplate",'<ul><tpl for=".">','<li role="option" class="'+itemCls+'">'+me.getInnerTpl(me.displayField)+"</li>","</tpl></ul>")}else{if(Ext.isString(me.tpl)){me.tpl=Ext.create("Ext.XTemplate",me.tpl)}}if(me.pageSize){me.pagingToolbar=me.createPagingToolbar()}me.callParent();me.addChildEls("listEl")},createPagingToolbar:function(){return Ext.widget("pagingtoolbar",{pageSize:this.pageSize,store:this.store,border:false})},onRender:function(){var me=this,toolbar=me.pagingToolbar;me.callParent(arguments);if(toolbar){toolbar.render(me.el)}},bindStore:function(store,initial){var me=this,toolbar=me.pagingToolbar;me.callParent(arguments);if(toolbar){toolbar.bindStore(store,initial)}},getTargetEl:function(){return this.listEl||this.el},getInnerTpl:function(displayField){return"{"+displayField+"}"},refresh:function(){var me=this;me.callParent();if(me.isVisible()){me.refreshed++;me.doComponentLayout();me.refreshed--}},initAria:function(){this.callParent();var selModel=this.getSelectionModel(),mode=selModel.getSelectionMode(),actionEl=this.getActionEl();if(mode!=="SINGLE"){actionEl.dom.setAttribute("aria-multiselectable",true)}},onDestroy:function(){Ext.destroyMembers(this,"pagingToolbar","listEl");this.callParent()}});Ext.define("Ext.view.BoundListKeyNav",{extend:"Ext.util.KeyNav",requires:"Ext.view.BoundList",constructor:function(el,config){var me=this;me.boundList=config.boundList;me.callParent([el,Ext.apply({},config,me.defaultHandlers)])},defaultHandlers:{up:function(){var me=this,boundList=me.boundList,allItems=boundList.all,oldItem=boundList.highlightedItem,oldItemIdx=oldItem?boundList.indexOf(oldItem):-1,newItemIdx=oldItemIdx>0?oldItemIdx-1:allItems.getCount()-1;me.highlightAt(newItemIdx)},down:function(){var me=this,boundList=me.boundList,allItems=boundList.all,oldItem=boundList.highlightedItem,oldItemIdx=oldItem?boundList.indexOf(oldItem):-1,newItemIdx=oldItemIdx<allItems.getCount()-1?oldItemIdx+1:0;me.highlightAt(newItemIdx)},pageup:function(){},pagedown:function(){},home:function(){this.highlightAt(0)},end:function(){var me=this;me.highlightAt(me.boundList.all.getCount()-1)},enter:function(e){this.selectHighlighted(e)}},highlightAt:function(index){var boundList=this.boundList,item=boundList.all.item(index);if(item){item=item.dom;boundList.highlightItem(item);boundList.getTargetEl().scrollChildIntoView(item,false)}},selectHighlighted:function(e){var me=this,boundList=me.boundList,highlighted=boundList.highlightedItem,selModel=boundList.getSelectionModel();if(highlighted){selModel.selectWithEvent(boundList.getRecord(highlighted),e)}}});Ext.define("Ext.form.field.ComboBox",{extend:"Ext.form.field.Picker",requires:["Ext.util.DelayedTask","Ext.EventObject","Ext.view.BoundList","Ext.view.BoundListKeyNav","Ext.data.StoreManager"],alternateClassName:"Ext.form.ComboBox",alias:["widget.combobox","widget.combo"],triggerCls:Ext.baseCSSPrefix+"form-arrow-trigger",hiddenDataCls:Ext.baseCSSPrefix+"hide-display "+Ext.baseCSSPrefix+"form-data-hidden",fieldSubTpl:['<div class="{hiddenDataCls}" role="presentation"></div>','<input id="{id}" type="{type}" ','<tpl if="size">size="{size}" </tpl>','<tpl if="tabIdx">tabIndex="{tabIdx}" </tpl>','class="{fieldCls} {typeCls}" autocomplete="off" />','<div id="{cmpId}-triggerWrap" class="{triggerWrapCls}" role="presentation">',"{triggerEl}",'<div class="{clearCls}" role="presentation"></div>',"</div>",{compiled:true,disableFormats:true}],getSubTplData:function(){var me=this;Ext.applyIf(me.subTplData,{hiddenDataCls:me.hiddenDataCls});return me.callParent(arguments)},afterRender:function(){var me=this;me.callParent(arguments);me.setHiddenValue(me.value)},multiSelect:false,delimiter:", ",displayField:"text",triggerAction:"all",allQuery:"",queryParam:"query",queryMode:"remote",queryCaching:true,pageSize:0,autoSelect:true,typeAhead:false,typeAheadDelay:250,selectOnTab:true,forceSelection:false,defaultListConfig:{emptyText:"",loadingText:"Loading...",loadingHeight:70,minWidth:70,maxHeight:300,shadow:"sides"},ignoreSelection:0,initComponent:function(){var me=this,isDefined=Ext.isDefined,store=me.store,transform=me.transform,transformSelect,isLocalMode;Ext.applyIf(me.renderSelectors,{hiddenDataEl:"."+me.hiddenDataCls.split(" ").join(".")});this.addEvents("beforequery","select","beforeselect","beforedeselect");if(transform){transformSelect=Ext.getDom(transform);if(transformSelect){store=Ext.Array.map(Ext.Array.from(transformSelect.options),function(option){return[option.value,option.text]});if(!me.name){me.name=transformSelect.name}if(!("value" in me)){me.value=transformSelect.value}}}me.bindStore(store||"ext-empty-store",true);store=me.store;if(store.autoCreated){me.queryMode="local";me.valueField=me.displayField="field1";if(!store.expanded){me.displayField="field2"}}if(!isDefined(me.valueField)){me.valueField=me.displayField}isLocalMode=me.queryMode==="local";if(!isDefined(me.queryDelay)){me.queryDelay=isLocalMode?10:500}if(!isDefined(me.minChars)){me.minChars=isLocalMode?0:4}if(!me.displayTpl){me.displayTpl=Ext.create("Ext.XTemplate",'<tpl for=".">{[typeof values === "string" ? values : values["'+me.displayField+'"]]}<tpl if="xindex < xcount">'+me.delimiter+"</tpl></tpl>")}else{if(Ext.isString(me.displayTpl)){me.displayTpl=Ext.create("Ext.XTemplate",me.displayTpl)}}me.callParent();me.doQueryTask=Ext.create("Ext.util.DelayedTask",me.doRawQuery,me);if(me.store.getCount()>0){me.setValue(me.value)}if(transformSelect){me.render(transformSelect.parentNode,transformSelect);Ext.removeNode(transformSelect);delete me.renderTo}},getStore:function(){return this.store},beforeBlur:function(){this.doQueryTask.cancel();this.assertValue()},assertValue:function(){var me=this,value=me.getRawValue(),rec;if(me.forceSelection){if(me.multiSelect){if(value!==me.getDisplayValue()){me.setValue(me.lastSelection)}}else{rec=me.findRecordByDisplay(value);if(rec){me.select(rec)}else{me.setValue(me.lastSelection)}}}me.collapse()},onTypeAhead:function(){var me=this,displayField=me.displayField,record=me.store.findRecord(displayField,me.getRawValue()),boundList=me.getPicker(),newValue,len,selStart;if(record){newValue=record.get(displayField);len=newValue.length;selStart=me.getRawValue().length;boundList.highlightItem(boundList.getNode(record));if(selStart!==0&&selStart!==len){me.setRawValue(newValue);me.selectText(selStart,newValue.length)}}},resetToDefault:function(){},bindStore:function(store,initial){var me=this,oldStore=me.store;if(oldStore&&!initial){if(oldStore!==store&&oldStore.autoDestroy){oldStore.destroyStore()}else{oldStore.un({scope:me,load:me.onLoad,exception:me.collapse})}if(!store){me.store=null;if(me.picker){me.picker.bindStore(null)}}}if(store){if(!initial){me.resetToDefault()}me.store=Ext.data.StoreManager.lookup(store);me.store.on({scope:me,load:me.onLoad,exception:me.collapse});if(me.picker){me.picker.bindStore(store)}}},onLoad:function(){var me=this,value=me.value;if(me.rawQuery){me.rawQuery=false;me.syncSelection();if(me.picker&&!me.picker.getSelectionModel().hasSelection()){me.doAutoSelect()}}else{if(me.value){me.setValue(me.value)}else{if(me.store.getCount()){me.doAutoSelect()}else{me.setValue("")}}}},doRawQuery:function(){this.doQuery(this.getRawValue(),false,true)},doQuery:function(queryString,forceAll,rawQuery){queryString=queryString||"";var me=this,qe={query:queryString,forceAll:forceAll,combo:me,cancel:false},store=me.store,isLocalMode=me.queryMode==="local";if(me.fireEvent("beforequery",qe)===false||qe.cancel){return false}queryString=qe.query;forceAll=qe.forceAll;if(forceAll||(queryString.length>=me.minChars)){me.expand();if(!me.queryCaching||me.lastQuery!==queryString){me.lastQuery=queryString;if(isLocalMode){if(forceAll){store.clearFilter()}else{store.clearFilter(true);store.filter(me.displayField,queryString)}}else{me.rawQuery=rawQuery;if(me.pageSize){me.loadPage(1)}else{store.load({params:me.getParams(queryString)})}}}if(me.getRawValue()!==me.getDisplayValue()){me.ignoreSelection++;me.picker.getSelectionModel().deselectAll();me.ignoreSelection--}if(isLocalMode){me.doAutoSelect()}if(me.typeAhead){me.doTypeAhead()}}return true},loadPage:function(pageNum){this.store.loadPage(pageNum,{params:this.getParams(this.lastQuery)})},onPageChange:function(toolbar,newPage){this.loadPage(newPage);return false},getParams:function(queryString){var params={},param=this.queryParam;if(param){params[param]=queryString}return params},doAutoSelect:function(){var me=this,picker=me.picker,lastSelected,itemNode;if(picker&&me.autoSelect&&me.store.getCount()>0){lastSelected=picker.getSelectionModel().lastSelected;itemNode=picker.getNode(lastSelected||0);if(itemNode){picker.highlightItem(itemNode);picker.listEl.scrollChildIntoView(itemNode,false)}}},doTypeAhead:function(){if(!this.typeAheadTask){this.typeAheadTask=Ext.create("Ext.util.DelayedTask",this.onTypeAhead,this)}if(this.lastKey!=Ext.EventObject.BACKSPACE&&this.lastKey!=Ext.EventObject.DELETE){this.typeAheadTask.delay(this.typeAheadDelay)}},onTriggerClick:function(){var me=this;if(!me.readOnly&&!me.disabled){if(me.isExpanded){me.collapse()}else{me.onFocus({});if(me.triggerAction==="all"){me.doQuery(me.allQuery,true)}else{me.doQuery(me.getRawValue(),false,true)}}me.inputEl.focus()}},onKeyUp:function(e,t){var me=this,key=e.getKey();if(!me.readOnly&&!me.disabled&&me.editable){me.lastKey=key;if(!e.isSpecialKey()||key==e.BACKSPACE||key==e.DELETE){me.doQueryTask.delay(me.queryDelay)}}if(me.enableKeyEvents){me.callParent(arguments)}},initEvents:function(){var me=this;me.callParent();if(!me.enableKeyEvents){me.mon(me.inputEl,"keyup",me.onKeyUp,me)}},onDestroy:function(){this.bindStore(null);this.callParent()},createPicker:function(){var me=this,picker,menuCls=Ext.baseCSSPrefix+"menu",opts=Ext.apply({pickerField:me,selModel:{mode:me.multiSelect?"SIMPLE":"SINGLE"},floating:true,hidden:true,ownerCt:me.ownerCt,cls:me.el.up("."+menuCls)?menuCls:"",store:me.store,displayField:me.displayField,focusOnToFront:false,pageSize:me.pageSize,tpl:me.tpl},me.listConfig,me.defaultListConfig);picker=me.picker=Ext.create("Ext.view.BoundList",opts);if(me.pageSize){picker.pagingToolbar.on("beforechange",me.onPageChange,me)}me.mon(picker,{itemclick:me.onItemClick,refresh:me.onListRefresh,scope:me});me.mon(picker.getSelectionModel(),{beforeselect:me.onBeforeSelect,beforedeselect:me.onBeforeDeselect,selectionchange:me.onListSelectionChange,scope:me});return picker},alignPicker:function(){var me=this,picker=me.picker,heightAbove=me.getPosition()[1]-Ext.getBody().getScroll().top,heightBelow=Ext.Element.getViewHeight()-heightAbove-me.getHeight(),space=Math.max(heightAbove,heightBelow);me.callParent();if(picker.getHeight()>space){picker.setHeight(space-5);me.doAlign()}},onListRefresh:function(){this.alignPicker();this.syncSelection()},onItemClick:function(picker,record){var me=this,lastSelection=me.lastSelection,valueField=me.valueField,selected;if(!me.multiSelect&&lastSelection){selected=lastSelection[0];if(selected&&(record.get(valueField)===selected.get(valueField))){me.displayTplData=[record.data];me.setRawValue(me.getDisplayValue());me.collapse()}}},onBeforeSelect:function(list,record){return this.fireEvent("beforeselect",this,record,record.index)},onBeforeDeselect:function(list,record){return this.fireEvent("beforedeselect",this,record,record.index)},onListSelectionChange:function(list,selectedRecords){var me=this,isMulti=me.multiSelect,hasRecords=selectedRecords.length>0;if(!me.ignoreSelection&&me.isExpanded){if(!isMulti){Ext.defer(me.collapse,1,me)}if(isMulti||hasRecords){me.setValue(selectedRecords,false)}if(hasRecords){me.fireEvent("select",me,selectedRecords)}me.inputEl.focus()}},onExpand:function(){var me=this,keyNav=me.listKeyNav,selectOnTab=me.selectOnTab,picker=me.getPicker();if(keyNav){keyNav.enable()}else{keyNav=me.listKeyNav=Ext.create("Ext.view.BoundListKeyNav",this.inputEl,{boundList:picker,forceKeyDown:true,tab:function(e){if(selectOnTab){this.selectHighlighted(e);me.triggerBlur()}return true}})}if(selectOnTab){me.ignoreMonitorTab=true}Ext.defer(keyNav.enable,1,keyNav);me.inputEl.focus()},onCollapse:function(){var me=this,keyNav=me.listKeyNav;if(keyNav){keyNav.disable();me.ignoreMonitorTab=false}},select:function(r){this.setValue(r,true)},findRecord:function(field,value){var ds=this.store,idx=ds.findExact(field,value);return idx!==-1?ds.getAt(idx):false},findRecordByValue:function(value){return this.findRecord(this.valueField,value)},findRecordByDisplay:function(value){return this.findRecord(this.displayField,value)},setValue:function(value,doSelect){var me=this,valueNotFoundText=me.valueNotFoundText,inputEl=me.inputEl,i,len,record,models=[],displayTplData=[],processedValue=[];if(me.store.loading){me.value=value;me.setHiddenValue(me.value);return me}value=Ext.Array.from(value);for(i=0,len=value.length;i<len;i++){record=value[i];if(!record||!record.isModel){record=me.findRecordByValue(record)}if(record){models.push(record);displayTplData.push(record.data);processedValue.push(record.get(me.valueField))}else{if(!me.forceSelection){displayTplData.push(value[i]);processedValue.push(value[i])}else{if(Ext.isDefined(valueNotFoundText)){displayTplData.push(valueNotFoundText)}}}}me.setHiddenValue(processedValue);me.value=me.multiSelect?processedValue:processedValue[0];if(!Ext.isDefined(me.value)){me.value=null}me.displayTplData=displayTplData;me.lastSelection=me.valueModels=models;if(inputEl&&me.emptyText&&!Ext.isEmpty(value)){inputEl.removeCls(me.emptyCls)}me.setRawValue(me.getDisplayValue());me.checkChange();if(doSelect!==false){me.syncSelection()}me.applyEmptyText();return me},setHiddenValue:function(values){var me=this,i;if(!me.hiddenDataEl){return}values=Ext.Array.from(values);var dom=me.hiddenDataEl.dom,childNodes=dom.childNodes,input=childNodes[0],valueCount=values.length,childrenCount=childNodes.length;if(!input&&valueCount>0){me.hiddenDataEl.update(Ext.DomHelper.markup({tag:"input",type:"hidden",name:me.name}));childrenCount=1;input=dom.firstChild}while(childrenCount>valueCount){dom.removeChild(childNodes[0]);--childrenCount}while(childrenCount<valueCount){dom.appendChild(input.cloneNode(true));++childrenCount}for(i=0;i<valueCount;i++){childNodes[i].value=values[i]}},getDisplayValue:function(){return this.displayTpl.apply(this.displayTplData)},getValue:function(){var me=this,picker=me.picker,rawValue=me.getRawValue(),value=me.value;if(me.getDisplayValue()!==rawValue){value=rawValue;me.value=me.displayTplData=me.valueModels=null;if(picker){me.ignoreSelection++;picker.getSelectionModel().deselectAll();me.ignoreSelection--}}return value},getSubmitValue:function(){return this.getValue()},isEqual:function(v1,v2){var fromArray=Ext.Array.from,i,len;v1=fromArray(v1);v2=fromArray(v2);len=v1.length;if(len!==v2.length){return false}for(i=0;i<len;i++){if(v2[i]!==v1[i]){return false}}return true},clearValue:function(){this.setValue([])},syncSelection:function(){var me=this,ExtArray=Ext.Array,picker=me.picker,selection,selModel;if(picker){selection=[];ExtArray.forEach(me.valueModels||[],function(value){if(value&&value.isModel&&me.store.indexOf(value)>=0){selection.push(value)}});me.ignoreSelection++;selModel=picker.getSelectionModel();selModel.deselectAll();if(selection.length){selModel.select(selection)}me.ignoreSelection--}}});Ext.define("Ext.picker.Month",{extend:"Ext.Component",requires:["Ext.XTemplate","Ext.util.ClickRepeater","Ext.Date","Ext.button.Button"],alias:"widget.monthpicker",alternateClassName:"Ext.MonthPicker",renderTpl:['<div id="{id}-bodyEl" class="{baseCls}-body">','<div class="{baseCls}-months">','<tpl for="months">','<div class="{parent.baseCls}-item {parent.baseCls}-month"><a href="#" hidefocus="on">{.}</a></div>',"</tpl>","</div>",'<div class="{baseCls}-years">','<div class="{baseCls}-yearnav">','<button id="{id}-prevEl" class="{baseCls}-yearnav-prev"></button>','<button id="{id}-nextEl" class="{baseCls}-yearnav-next"></button>',"</div>",'<tpl for="years">','<div class="{parent.baseCls}-item {parent.baseCls}-year"><a href="#" hidefocus="on">{.}</a></div>',"</tpl>","</div>",'<div class="'+Ext.baseCSSPrefix+'clear"></div>',"</div>",'<tpl if="showButtons">','<div id="{id}-buttonsEl" class="{baseCls}-buttons"></div>',"</tpl>"],okText:"OK",cancelText:"Cancel",baseCls:Ext.baseCSSPrefix+"monthpicker",showButtons:true,width:178,smallCls:Ext.baseCSSPrefix+"monthpicker-small",totalYears:10,yearOffset:5,monthOffset:6,initComponent:function(){var me=this;me.selectedCls=me.baseCls+"-selected";me.addEvents("cancelclick","monthclick","monthdblclick","okclick","select","yearclick","yeardblclick");if(me.small){me.addCls(me.smallCls)}me.setValue(me.value);me.activeYear=me.getYear(new Date().getFullYear()-4,-4);this.callParent()},onRender:function(ct,position){var me=this,i=0,months=[],shortName=Ext.Date.getShortMonthName,monthLen=me.monthOffset;for(;i<monthLen;++i){months.push(shortName(i),shortName(i+monthLen))}Ext.apply(me.renderData,{months:months,years:me.getYears(),showButtons:me.showButtons});me.addChildEls("bodyEl","prevEl","nextEl","buttonsEl");me.callParent(arguments)},afterRender:function(){var me=this,body=me.bodyEl,buttonsEl=me.buttonsEl;me.callParent();me.mon(body,"click",me.onBodyClick,me);me.mon(body,"dblclick",me.onBodyClick,me);me.years=body.select("."+me.baseCls+"-year a");me.months=body.select("."+me.baseCls+"-month a");if(me.showButtons){me.okBtn=Ext.create("Ext.button.Button",{text:me.okText,renderTo:buttonsEl,handler:me.onOkClick,scope:me});me.cancelBtn=Ext.create("Ext.button.Button",{text:me.cancelText,renderTo:buttonsEl,handler:me.onCancelClick,scope:me})}me.backRepeater=Ext.create("Ext.util.ClickRepeater",me.prevEl,{handler:Ext.Function.bind(me.adjustYear,me,[-me.totalYears])});me.prevEl.addClsOnOver(me.baseCls+"-yearnav-prev-over");me.nextRepeater=Ext.create("Ext.util.ClickRepeater",me.nextEl,{handler:Ext.Function.bind(me.adjustYear,me,[me.totalYears])});me.nextEl.addClsOnOver(me.baseCls+"-yearnav-next-over");me.updateBody()},setValue:function(value){var me=this,active=me.activeYear,offset=me.monthOffset,year,index;if(!value){me.value=[null,null]}else{if(Ext.isDate(value)){me.value=[value.getMonth(),value.getFullYear()]}else{me.value=[value[0],value[1]]}}if(me.rendered){year=me.value[1];if(year!==null){if((year<active||year>active+me.yearOffset)){me.activeYear=year-me.yearOffset+1}}me.updateBody()}return me},getValue:function(){return this.value},hasSelection:function(){var value=this.value;return value[0]!==null&&value[1]!==null},getYears:function(){var me=this,offset=me.yearOffset,start=me.activeYear,end=start+offset,i=start,years=[];for(;i<end;++i){years.push(i,i+offset)}return years},updateBody:function(){var me=this,years=me.years,months=me.months,yearNumbers=me.getYears(),cls=me.selectedCls,value=me.getYear(null),month=me.value[0],monthOffset=me.monthOffset,year;if(me.rendered){years.removeCls(cls);months.removeCls(cls);years.each(function(el,all,index){year=yearNumbers[index];el.dom.innerHTML=year;if(year==value){el.dom.className=cls}});if(month!==null){if(month<monthOffset){month=month*2}else{month=(month-monthOffset)*2+1}months.item(month).addCls(cls)}}},getYear:function(defaultValue,offset){var year=this.value[1];offset=offset||0;return year===null?defaultValue:year+offset},onBodyClick:function(e,t){var me=this,isDouble=e.type=="dblclick";if(e.getTarget("."+me.baseCls+"-month")){e.stopEvent();me.onMonthClick(t,isDouble)}else{if(e.getTarget("."+me.baseCls+"-year")){e.stopEvent();me.onYearClick(t,isDouble)}}},adjustYear:function(offset){if(typeof offset!="number"){offset=this.totalYears}this.activeYear+=offset;this.updateBody()},onOkClick:function(){this.fireEvent("okclick",this,this.value)},onCancelClick:function(){this.fireEvent("cancelclick",this)},onMonthClick:function(target,isDouble){var me=this;me.value[0]=me.resolveOffset(me.months.indexOf(target),me.monthOffset);me.updateBody();me.fireEvent("month"+(isDouble?"dbl":"")+"click",me,me.value);me.fireEvent("select",me,me.value)},onYearClick:function(target,isDouble){var me=this;me.value[1]=me.activeYear+me.resolveOffset(me.years.indexOf(target),me.yearOffset);me.updateBody();me.fireEvent("year"+(isDouble?"dbl":"")+"click",me,me.value);me.fireEvent("select",me,me.value)},resolveOffset:function(index,offset){if(index%2===0){return(index/2)}else{return offset+Math.floor(index/2)}},beforeDestroy:function(){var me=this;me.years=me.months=null;Ext.destroyMembers(me,"backRepeater","nextRepeater","okBtn","cancelBtn");me.callParent()}});Ext.define("Ext.picker.Date",{extend:"Ext.Component",requires:["Ext.XTemplate","Ext.button.Button","Ext.button.Split","Ext.util.ClickRepeater","Ext.util.KeyNav","Ext.EventObject","Ext.fx.Manager","Ext.picker.Month"],alias:"widget.datepicker",alternateClassName:"Ext.DatePicker",renderTpl:['<div class="{cls}" id="{id}" role="grid" title="{ariaTitle} {value:this.longDay}">','<div role="presentation" class="{baseCls}-header">','<div class="{baseCls}-prev"><a id="{id}-prevEl" href="#" role="button" title="{prevText}"></a></div>','<div class="{baseCls}-month" id="{id}-middleBtnEl"></div>','<div class="{baseCls}-next"><a id="{id}-nextEl" href="#" role="button" title="{nextText}"></a></div>',"</div>",'<table id="{id}-eventEl" class="{baseCls}-inner" cellspacing="0" role="presentation">','<thead role="presentation"><tr role="presentation">','<tpl for="dayNames">','<th role="columnheader" title="{.}"><span>{.:this.firstInitial}</span></th>',"</tpl>","</tr></thead>",'<tbody role="presentation"><tr role="presentation">','<tpl for="days">',"{#:this.isEndOfWeek}",'<td role="gridcell" id="{[Ext.id()]}">','<a role="presentation" href="#" hidefocus="on" class="{parent.baseCls}-date" tabIndex="1">','<em role="presentation"><span role="presentation"></span></em>',"</a>","</td>","</tpl>","</tr></tbody>","</table>",'<tpl if="showToday">','<div id="{id}-footerEl" role="presentation" class="{baseCls}-footer"></div>',"</tpl>","</div>",{firstInitial:function(value){return value.substr(0,1)},isEndOfWeek:function(value){value--;var end=value%7===0&&value!==0;return end?'</tr><tr role="row">':""},longDay:function(value){return Ext.Date.format(value,this.longDayFormat)}}],ariaTitle:"Date Picker",todayText:"Today",todayTip:"{0} (Spacebar)",minText:"This date is before the minimum date",maxText:"This date is after the maximum date",disabledDaysText:"Disabled",disabledDatesText:"Disabled",nextText:"Next Month (Control+Right)",prevText:"Previous Month (Control+Left)",monthYearText:"Choose a month (Control+Up/Down to move years)",startDay:0,showToday:true,disableAnim:false,baseCls:Ext.baseCSSPrefix+"datepicker",longDayFormat:"F d, Y",focusOnShow:false,focusOnSelect:true,width:178,initHour:12,numDays:42,initComponent:function(){var me=this,clearTime=Ext.Date.clearTime;me.selectedCls=me.baseCls+"-selected";me.disabledCellCls=me.baseCls+"-disabled";me.prevCls=me.baseCls+"-prevday";me.activeCls=me.baseCls+"-active";me.nextCls=me.baseCls+"-prevday";me.todayCls=me.baseCls+"-today";me.dayNames=me.dayNames.slice(me.startDay).concat(me.dayNames.slice(0,me.startDay));this.callParent();me.value=me.value?clearTime(me.value,true):clearTime(new Date());me.addEvents("select");me.initDisabledDays()},onRender:function(container,position){var me=this,days=new Array(me.numDays),today=Ext.Date.format(new Date(),me.format);Ext.applyIf(me,{renderData:{}});Ext.apply(me.renderData,{dayNames:me.dayNames,ariaTitle:me.ariaTitle,value:me.value,showToday:me.showToday,prevText:me.prevText,nextText:me.nextText,days:days});me.getTpl("renderTpl").longDayFormat=me.longDayFormat;me.addChildEls("eventEl","prevEl","nextEl","middleBtnEl","footerEl");this.callParent(arguments);me.el.unselectable();me.cells=me.eventEl.select("tbody td");me.textNodes=me.eventEl.query("tbody td span");me.monthBtn=Ext.create("Ext.button.Split",{text:"",tooltip:me.monthYearText,renderTo:me.middleBtnEl});me.todayBtn=Ext.create("Ext.button.Button",{renderTo:me.footerEl,text:Ext.String.format(me.todayText,today),tooltip:Ext.String.format(me.todayTip,today),handler:me.selectToday,scope:me})},initEvents:function(){var me=this,eDate=Ext.Date,day=eDate.DAY;this.callParent();me.prevRepeater=Ext.create("Ext.util.ClickRepeater",me.prevEl,{handler:me.showPrevMonth,scope:me,preventDefault:true,stopDefault:true});me.nextRepeater=Ext.create("Ext.util.ClickRepeater",me.nextEl,{handler:me.showNextMonth,scope:me,preventDefault:true,stopDefault:true});me.keyNav=Ext.create("Ext.util.KeyNav",me.eventEl,Ext.apply({scope:me,left:function(e){if(e.ctrlKey){me.showPrevMonth()}else{me.update(eDate.add(me.activeDate,day,-1))}},right:function(e){if(e.ctrlKey){me.showNextMonth()}else{me.update(eDate.add(me.activeDate,day,1))}},up:function(e){if(e.ctrlKey){me.showNextYear()}else{me.update(eDate.add(me.activeDate,day,-7))}},down:function(e){if(e.ctrlKey){me.showPrevYear()}else{me.update(eDate.add(me.activeDate,day,7))}},pageUp:me.showNextMonth,pageDown:me.showPrevMonth,enter:function(e){e.stopPropagation();return true}},me.keyNavConfig));if(me.showToday){me.todayKeyListener=me.eventEl.addKeyListener(Ext.EventObject.SPACE,me.selectToday,me)}me.mon(me.eventEl,"mousewheel",me.handleMouseWheel,me);me.mon(me.eventEl,"click",me.handleDateClick,me,{delegate:"a."+me.baseCls+"-date"});me.mon(me.monthBtn,"click",me.showMonthPicker,me);me.mon(me.monthBtn,"arrowclick",me.showMonthPicker,me);me.update(me.value)},initDisabledDays:function(){var me=this,dd=me.disabledDates,re="(?:",len;if(!me.disabledDatesRE&&dd){len=dd.length-1;Ext.each(dd,function(d,i){re+=Ext.isDate(d)?"^"+Ext.String.escapeRegex(Ext.Date.dateFormat(d,me.format))+"$":dd[i];if(i!=len){re+="|"}},me);me.disabledDatesRE=new RegExp(re+")")}},setDisabledDates:function(dd){var me=this;if(Ext.isArray(dd)){me.disabledDates=dd;me.disabledDatesRE=null}else{me.disabledDatesRE=dd}me.initDisabledDays();me.update(me.value,true);return me},setDisabledDays:function(dd){this.disabledDays=dd;return this.update(this.value,true)},setMinDate:function(dt){this.minDate=dt;return this.update(this.value,true)},setMaxDate:function(dt){this.maxDate=dt;return this.update(this.value,true)},setValue:function(value){this.value=Ext.Date.clearTime(value,true);return this.update(this.value)},getValue:function(){return this.value},focus:function(){this.update(this.activeDate)},onEnable:function(){this.callParent();this.setDisabledStatus(false);this.update(this.activeDate)},onDisable:function(){this.callParent();this.setDisabledStatus(true)},setDisabledStatus:function(disabled){var me=this;me.keyNav.setDisabled(disabled);me.prevRepeater.setDisabled(disabled);me.nextRepeater.setDisabled(disabled);if(me.showToday){me.todayKeyListener.setDisabled(disabled);me.todayBtn.setDisabled(disabled)}},getActive:function(){return this.activeDate||this.value},runAnimation:function(isHide){var picker=this.monthPicker,options={duration:200,callback:function(){if(isHide){picker.hide()}else{picker.show()}}};if(isHide){picker.el.slideOut("t",options)}else{picker.el.slideIn("t",options)}},hideMonthPicker:function(animate){var me=this,picker=me.monthPicker;if(picker){if(me.shouldAnimate(animate)){me.runAnimation(true)}else{picker.hide()}}return me},showMonthPicker:function(animate){var me=this,picker;if(me.rendered&&!me.disabled){picker=me.createMonthPicker();picker.setValue(me.getActive());picker.setSize(me.getSize());picker.setPosition(-1,-1);if(me.shouldAnimate(animate)){me.runAnimation(false)}else{picker.show()}}return me},shouldAnimate:function(animate){return Ext.isDefined(animate)?animate:!this.disableAnim},createMonthPicker:function(){var me=this,picker=me.monthPicker;if(!picker){me.monthPicker=picker=Ext.create("Ext.picker.Month",{renderTo:me.el,floating:true,shadow:false,small:me.showToday===false,listeners:{scope:me,cancelclick:me.onCancelClick,okclick:me.onOkClick,yeardblclick:me.onOkClick,monthdblclick:me.onOkClick}});if(!me.disableAnim){picker.el.setStyle("display","none")}me.on("beforehide",Ext.Function.bind(me.hideMonthPicker,me,[false]))}return picker},onOkClick:function(picker,value){var me=this,month=value[0],year=value[1],date=new Date(year,month,me.getActive().getDate());if(date.getMonth()!==month){date=new Date(year,month,1).getLastDateOfMonth()}me.update(date);me.hideMonthPicker()},onCancelClick:function(){this.hideMonthPicker()},showPrevMonth:function(e){return this.update(Ext.Date.add(this.activeDate,Ext.Date.MONTH,-1))},showNextMonth:function(e){return this.update(Ext.Date.add(this.activeDate,Ext.Date.MONTH,1))},showPrevYear:function(){this.update(Ext.Date.add(this.activeDate,Ext.Date.YEAR,-1))},showNextYear:function(){this.update(Ext.Date.add(this.activeDate,Ext.Date.YEAR,1))},handleMouseWheel:function(e){e.stopEvent();if(!this.disabled){var delta=e.getWheelDelta();if(delta>0){this.showPrevMonth()}else{if(delta<0){this.showNextMonth()}}}},handleDateClick:function(e,t){var me=this,handler=me.handler;e.stopEvent();if(!me.disabled&&t.dateValue&&!Ext.fly(t.parentNode).hasCls(me.disabledCellCls)){me.cancelFocus=me.focusOnSelect===false;me.setValue(new Date(t.dateValue));delete me.cancelFocus;me.fireEvent("select",me,me.value);if(handler){handler.call(me.scope||me,me,me.value)}me.onSelect()}},onSelect:function(){if(this.hideOnSelect){this.hide()}},selectToday:function(){var me=this,btn=me.todayBtn,handler=me.handler;if(btn&&!btn.disabled){me.setValue(Ext.Date.clearTime(new Date()));me.fireEvent("select",me,me.value);if(handler){handler.call(me.scope||me,me,me.value)}me.onSelect()}return me},selectedUpdate:function(date,active){var me=this,t=date.getTime(),cells=me.cells,cls=me.selectedCls;cells.removeCls(cls);cells.each(function(c){if(c.dom.firstChild.dateValue==t){me.el.dom.setAttribute("aria-activedescendent",c.dom.id);c.addCls(cls);if(me.isVisible()&&!me.cancelFocus){Ext.fly(c.dom.firstChild).focus(50)}return false}},this)},fullUpdate:function(date,active){var me=this,cells=me.cells.elements,textNodes=me.textNodes,disabledCls=me.disabledCellCls,eDate=Ext.Date,i=0,extraDays=0,visible=me.isVisible(),sel=+eDate.clearTime(date,true),today=+eDate.clearTime(new Date()),min=me.minDate?eDate.clearTime(me.minDate,true):Number.NEGATIVE_INFINITY,max=me.maxDate?eDate.clearTime(me.maxDate,true):Number.POSITIVE_INFINITY,ddMatch=me.disabledDatesRE,ddText=me.disabledDatesText,ddays=me.disabledDays?me.disabledDays.join(""):false,ddaysText=me.disabledDaysText,format=me.format,days=eDate.getDaysInMonth(date),firstOfMonth=eDate.getFirstDateOfMonth(date),startingPos=firstOfMonth.getDay()-me.startDay,previousMonth=eDate.add(date,eDate.MONTH,-1),longDayFormat=me.longDayFormat,prevStart,current,disableToday,tempDate,setCellClass,html,cls,formatValue,value;if(startingPos<0){startingPos+=7}days+=startingPos;prevStart=eDate.getDaysInMonth(previousMonth)-startingPos;current=new Date(previousMonth.getFullYear(),previousMonth.getMonth(),prevStart,me.initHour);if(me.showToday){tempDate=eDate.clearTime(new Date());disableToday=(tempDate<min||tempDate>max||(ddMatch&&format&&ddMatch.test(eDate.dateFormat(tempDate,format)))||(ddays&&ddays.indexOf(tempDate.getDay())!=-1));if(!me.disabled){me.todayBtn.setDisabled(disableToday);me.todayKeyListener.setDisabled(disableToday)}}setCellClass=function(cell){value=+eDate.clearTime(current,true);cell.title=eDate.format(current,longDayFormat);cell.firstChild.dateValue=value;if(value==today){cell.className+=" "+me.todayCls;cell.title=me.todayText}if(value==sel){cell.className+=" "+me.selectedCls;me.el.dom.setAttribute("aria-activedescendant",cell.id);if(visible&&me.floating){Ext.fly(cell.firstChild).focus(50)}}if(value<min){cell.className=disabledCls;cell.title=me.minText;return}if(value>max){cell.className=disabledCls;cell.title=me.maxText;return}if(ddays){if(ddays.indexOf(current.getDay())!=-1){cell.title=ddaysText;cell.className=disabledCls}}if(ddMatch&&format){formatValue=eDate.dateFormat(current,format);if(ddMatch.test(formatValue)){cell.title=ddText.replace("%0",formatValue);cell.className=disabledCls}}};for(;i<me.numDays;++i){if(i<startingPos){html=(++prevStart);cls=me.prevCls}else{if(i>=days){html=(++extraDays);cls=me.nextCls}else{html=i-startingPos+1;cls=me.activeCls}}textNodes[i].innerHTML=html;cells[i].className=cls;current.setDate(current.getDate()+1);setCellClass(cells[i])}me.monthBtn.setText(me.monthNames[date.getMonth()]+" "+date.getFullYear())},update:function(date,forceRefresh){var me=this,active=me.activeDate;if(me.rendered){me.activeDate=date;if(!forceRefresh&&active&&me.el&&active.getMonth()==date.getMonth()&&active.getFullYear()==date.getFullYear()){me.selectedUpdate(date,active)}else{me.fullUpdate(date,active)}}return me},beforeDestroy:function(){var me=this;if(me.rendered){Ext.destroy(me.todayKeyListener,me.keyNav,me.monthPicker,me.monthBtn,me.nextRepeater,me.prevRepeater,me.todayBtn);delete me.textNodes;delete me.cells.elements}me.callParent()},onShow:function(){this.callParent(arguments);if(this.focusOnShow){this.focus()}}},function(){var proto=this.prototype;proto.monthNames=Ext.Date.monthNames;proto.dayNames=Ext.Date.dayNames;proto.format=Ext.Date.defaultFormat});Ext.define("Ext.form.field.Date",{extend:"Ext.form.field.Picker",alias:"widget.datefield",requires:["Ext.picker.Date"],alternateClassName:["Ext.form.DateField","Ext.form.Date"],format:"m/d/Y",altFormats:"m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d|n-j|n/j",disabledDaysText:"Disabled",disabledDatesText:"Disabled",minText:"The date in this field must be equal to or after {0}",maxText:"The date in this field must be equal to or before {0}",invalidText:"{0} is not a valid date - it must be in the format {1}",triggerCls:Ext.baseCSSPrefix+"form-date-trigger",showToday:true,initTime:"12",initTimeFormat:"H",matchFieldWidth:false,startDay:0,initComponent:function(){var me=this,isString=Ext.isString,min,max;min=me.minValue;max=me.maxValue;if(isString(min)){me.minValue=me.parseDate(min)}if(isString(max)){me.maxValue=me.parseDate(max)}me.disabledDatesRE=null;me.initDisabledDays();me.callParent()},initValue:function(){var me=this,value=me.value;if(Ext.isString(value)){me.value=me.rawToValue(value)}me.callParent()},initDisabledDays:function(){if(this.disabledDates){var dd=this.disabledDates,len=dd.length-1,re="(?:";Ext.each(dd,function(d,i){re+=Ext.isDate(d)?"^"+Ext.String.escapeRegex(d.dateFormat(this.format))+"$":dd[i];if(i!==len){re+="|"}},this);this.disabledDatesRE=new RegExp(re+")")}},setDisabledDates:function(dd){var me=this,picker=me.picker;me.disabledDates=dd;me.initDisabledDays();if(picker){picker.setDisabledDates(me.disabledDatesRE)}},setDisabledDays:function(dd){var picker=this.picker;this.disabledDays=dd;if(picker){picker.setDisabledDays(dd)}},setMinValue:function(dt){var me=this,picker=me.picker,minValue=(Ext.isString(dt)?me.parseDate(dt):dt);me.minValue=minValue;if(picker){picker.minText=Ext.String.format(me.minText,me.formatDate(me.minValue));picker.setMinDate(minValue)}},setMaxValue:function(dt){var me=this,picker=me.picker,maxValue=(Ext.isString(dt)?me.parseDate(dt):dt);me.maxValue=maxValue;if(picker){picker.maxText=Ext.String.format(me.maxText,me.formatDate(me.maxValue));picker.setMaxDate(maxValue)}},getErrors:function(value){var me=this,format=Ext.String.format,clearTime=Ext.Date.clearTime,errors=me.callParent(arguments),disabledDays=me.disabledDays,disabledDatesRE=me.disabledDatesRE,minValue=me.minValue,maxValue=me.maxValue,len=disabledDays?disabledDays.length:0,i=0,svalue,fvalue,day,time;value=me.formatDate(value||me.processRawValue(me.getRawValue()));if(value===null||value.length<1){return errors}svalue=value;value=me.parseDate(value);if(!value){errors.push(format(me.invalidText,svalue,me.format));return errors}time=value.getTime();if(minValue&&time<clearTime(minValue).getTime()){errors.push(format(me.minText,me.formatDate(minValue)))}if(maxValue&&time>clearTime(maxValue).getTime()){errors.push(format(me.maxText,me.formatDate(maxValue)))}if(disabledDays){day=value.getDay();for(;i<len;i++){if(day===disabledDays[i]){errors.push(me.disabledDaysText);break}}}fvalue=me.formatDate(value);if(disabledDatesRE&&disabledDatesRE.test(fvalue)){errors.push(format(me.disabledDatesText,fvalue))}return errors},rawToValue:function(rawValue){return this.parseDate(rawValue)||rawValue||null},valueToRaw:function(value){return this.formatDate(this.parseDate(value))},safeParse:function(value,format){var me=this,utilDate=Ext.Date,parsedDate,result=null;if(utilDate.formatContainsHourInfo(format)){result=utilDate.parse(value,format)}else{parsedDate=utilDate.parse(value+" "+me.initTime,format+" "+me.initTimeFormat);if(parsedDate){result=utilDate.clearTime(parsedDate)}}return result},getSubmitValue:function(){var format=this.submitFormat||this.format,value=this.getValue();return value?Ext.Date.format(value,format):""},parseDate:function(value){if(!value||Ext.isDate(value)){return value}var me=this,val=me.safeParse(value,me.format),altFormats=me.altFormats,altFormatsArray=me.altFormatsArray,i=0,len;if(!val&&altFormats){altFormatsArray=altFormatsArray||altFormats.split("|");len=altFormatsArray.length;for(;i<len&&!val;++i){val=me.safeParse(value,altFormatsArray[i])}}return val},formatDate:function(date){return Ext.isDate(date)?Ext.Date.dateFormat(date,this.format):date},createPicker:function(){var me=this,format=Ext.String.format;return Ext.create("Ext.picker.Date",{pickerField:me,ownerCt:me.ownerCt,renderTo:document.body,floating:true,hidden:true,focusOnShow:true,minDate:me.minValue,maxDate:me.maxValue,disabledDatesRE:me.disabledDatesRE,disabledDatesText:me.disabledDatesText,disabledDays:me.disabledDays,disabledDaysText:me.disabledDaysText,format:me.format,showToday:me.showToday,startDay:me.startDay,minText:format(me.minText,me.formatDate(me.minValue)),maxText:format(me.maxText,me.formatDate(me.maxValue)),listeners:{scope:me,select:me.onSelect},keyNavConfig:{esc:function(){me.collapse()}}})},onSelect:function(m,d){var me=this;me.setValue(d);me.fireEvent("select",me,d);me.collapse()},onExpand:function(){var value=this.getValue();this.picker.setValue(Ext.isDate(value)?value:new Date())},onCollapse:function(){this.focus(false,60)},beforeBlur:function(){var me=this,v=me.parseDate(me.getRawValue()),focusTask=me.focusTask;if(focusTask){focusTask.cancel()}if(v){me.setValue(v)}}});Ext.define("Ext.form.field.Display",{extend:"Ext.form.field.Base",alias:"widget.displayfield",requires:["Ext.util.Format","Ext.XTemplate"],alternateClassName:["Ext.form.DisplayField","Ext.form.Display"],fieldSubTpl:['<div id="{id}" class="{fieldCls}"></div>',{compiled:true,disableFormats:true}],fieldCls:Ext.baseCSSPrefix+"form-display-field",htmlEncode:false,validateOnChange:false,initEvents:Ext.emptyFn,submitValue:false,isValid:function(){return true},validate:function(){return true},getRawValue:function(){return this.rawValue},setRawValue:function(value){var me=this;value=Ext.value(value,"");me.rawValue=value;if(me.rendered){me.inputEl.dom.innerHTML=me.htmlEncode?Ext.util.Format.htmlEncode(value):value}return value},getContentTarget:function(){return this.inputEl}});Ext.define("Ext.form.field.File",{extend:"Ext.form.field.Text",alias:["widget.filefield","widget.fileuploadfield"],alternateClassName:["Ext.form.FileUploadField","Ext.ux.form.FileUploadField","Ext.form.File"],uses:["Ext.button.Button","Ext.layout.component.field.File"],buttonText:"Browse...",buttonOnly:false,buttonMargin:3,fieldBodyCls:Ext.baseCSSPrefix+"form-file-wrap",readOnly:true,componentLayout:"filefield",onRender:function(){var me=this,inputEl;me.callParent(arguments);me.createButton();me.createFileInput();if(me.disabled){me.disableItems()}inputEl=me.inputEl;inputEl.dom.removeAttribute("name");if(me.buttonOnly){inputEl.setDisplayed(false)}},createButton:function(){var me=this;me.button=Ext.widget("button",Ext.apply({ui:me.ui,renderTo:me.bodyEl,text:me.buttonText,cls:Ext.baseCSSPrefix+"form-file-btn",preventDefault:false,style:me.buttonOnly?"":"margin-left:"+me.buttonMargin+"px"},me.buttonConfig))},createFileInput:function(){var me=this;me.fileInputEl=me.button.el.createChild({name:me.getName(),cls:Ext.baseCSSPrefix+"form-file-input",tag:"input",type:"file",size:1}).on("change",me.onFileChange,me)},onFileChange:function(){this.lastValue=null;Ext.form.field.File.superclass.setValue.call(this,this.fileInputEl.dom.value)},setValue:Ext.emptyFn,reset:function(){var me=this;if(me.rendered){me.fileInputEl.remove();me.createFileInput();me.inputEl.dom.value=""}me.callParent()},onDisable:function(){this.callParent();this.disableItems()},disableItems:function(){var file=this.fileInputEl,button=this.button;if(file){file.dom.disabled=true}if(button){button.disable()}},onEnable:function(){var me=this;me.callParent();me.fileInputEl.dom.disabled=false;me.button.enable()},isFileUpload:function(){return true},extractFileInput:function(){var fileInput=this.fileInputEl.dom;this.reset();return fileInput},onDestroy:function(){Ext.destroyMembers(this,"fileInputEl","button");this.callParent()}});Ext.define("Ext.form.field.Hidden",{extend:"Ext.form.field.Base",alias:["widget.hiddenfield","widget.hidden"],alternateClassName:"Ext.form.Hidden",inputType:"hidden",hideLabel:true,initComponent:function(){this.formItemCls+="-hidden";this.callParent()},isEqual:function(value1,value2){return this.isEqualAsString(value1,value2)},initEvents:Ext.emptyFn,setSize:Ext.emptyFn,setWidth:Ext.emptyFn,setHeight:Ext.emptyFn,setPosition:Ext.emptyFn,setPagePosition:Ext.emptyFn,markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn});Ext.define("Ext.picker.Color",{extend:"Ext.Component",requires:"Ext.XTemplate",alias:"widget.colorpicker",alternateClassName:"Ext.ColorPalette",componentCls:Ext.baseCSSPrefix+"color-picker",selectedCls:Ext.baseCSSPrefix+"color-picker-selected",value:null,clickEvent:"click",allowReselect:false,colors:["000000","993300","333300","003300","003366","000080","333399","333333","800000","FF6600","808000","008000","008080","0000FF","666699","808080","FF0000","FF9900","99CC00","339966","33CCCC","3366FF","800080","969696","FF00FF","FFCC00","FFFF00","00FF00","00FFFF","00CCFF","993366","C0C0C0","FF99CC","FFCC99","FFFF99","CCFFCC","CCFFFF","99CCFF","CC99FF","FFFFFF"],colorRe:/(?:^|\s)color-(.{6})(?:\s|$)/,renderTpl:['<tpl for="colors">','<a href="#" class="color-{.}" hidefocus="on">','<em><span style="background:#{.}" unselectable="on">&#160;</span></em>',"</a>","</tpl>"],initComponent:function(){var me=this;me.callParent(arguments);me.addEvents("select");if(me.handler){me.on("select",me.handler,me.scope,true)}},onRender:function(container,position){var me=this,clickEvent=me.clickEvent;Ext.apply(me.renderData,{itemCls:me.itemCls,colors:me.colors});me.callParent(arguments);me.mon(me.el,clickEvent,me.handleClick,me,{delegate:"a"});if(clickEvent!="click"){me.mon(me.el,"click",Ext.emptyFn,me,{delegate:"a",stopEvent:true})}},afterRender:function(){var me=this,value;me.callParent(arguments);if(me.value){value=me.value;me.value=null;me.select(value,true)}},handleClick:function(event,target){var me=this,color;event.stopEvent();if(!me.disabled){color=target.className.match(me.colorRe)[1];me.select(color.toUpperCase())}},select:function(color,suppressEvent){var me=this,selectedCls=me.selectedCls,value=me.value,el;color=color.replace("#","");if(!me.rendered){me.value=color;return}if(color!=value||me.allowReselect){el=me.el;if(me.value){el.down("a.color-"+value).removeCls(selectedCls)}el.down("a.color-"+color).addCls(selectedCls);me.value=color;if(suppressEvent!==true){me.fireEvent("select",me,color)}}},getValue:function(){return this.value||null}});Ext.define("Ext.layout.component.field.HtmlEditor",{extend:"Ext.layout.component.field.Field",alias:["layout.htmleditor"],type:"htmleditor",sizeBodyContents:function(width,height){var me=this,owner=me.owner,bodyEl=owner.bodyEl,toolbar=owner.getToolbar(),textarea=owner.textareaEl,iframe=owner.iframeEl,editorHeight;if(Ext.isNumber(width)){width-=bodyEl.getFrameWidth("lr")}toolbar.setWidth(width);textarea.setWidth(width);iframe.setWidth(width);if(Ext.isNumber(height)){editorHeight=height-toolbar.getHeight()-bodyEl.getFrameWidth("tb");textarea.setHeight(editorHeight);iframe.setHeight(editorHeight)}}});Ext.define("Ext.form.field.HtmlEditor",{extend:"Ext.Component",mixins:{labelable:"Ext.form.Labelable",field:"Ext.form.field.Field"},alias:"widget.htmleditor",alternateClassName:"Ext.form.HtmlEditor",requires:["Ext.tip.QuickTipManager","Ext.picker.Color","Ext.toolbar.Item","Ext.toolbar.Toolbar","Ext.util.Format","Ext.layout.component.field.HtmlEditor"],fieldSubTpl:['<div id="{cmpId}-toolbarWrap" class="{toolbarWrapCls}"></div>','<textarea id="{cmpId}-textareaEl" name="{name}" tabIndex="-1" class="{textareaCls}" ','style="{size}" autocomplete="off"></textarea>','<iframe id="{cmpId}-iframeEl" name="{iframeName}" frameBorder="0" style="overflow:auto;{size}" src="{iframeSrc}"></iframe>',{compiled:true,disableFormats:true}],enableFormat:true,enableFontSize:true,enableColors:true,enableAlignments:true,enableLists:true,enableSourceEdit:true,enableLinks:true,enableFont:true,createLinkText:"Please enter the URL for the link:",defaultLinkValue:"http://",fontFamilies:["Arial","Courier New","Tahoma","Times New Roman","Verdana"],defaultFont:"tahoma",defaultValue:(Ext.isOpera||Ext.isIE6)?"&#160;":"&#8203;",fieldBodyCls:Ext.baseCSSPrefix+"html-editor-wrap",componentLayout:"htmleditor",initialized:false,activated:false,sourceEditMode:false,iframePad:3,hideMode:"offsets",maskOnDisable:true,initComponent:function(){var me=this;me.addEvents("initialize","activate","beforesync","beforepush","sync","push","editmodechange");me.callParent(arguments);me.initLabelable();me.initField()},createToolbar:function(editor){var me=this,items=[],tipsEnabled=Ext.tip.QuickTipManager&&Ext.tip.QuickTipManager.isEnabled(),baseCSSPrefix=Ext.baseCSSPrefix,fontSelectItem,toolbar,undef;function btn(id,toggle,handler){return{itemId:id,cls:baseCSSPrefix+"btn-icon",iconCls:baseCSSPrefix+"edit-"+id,enableToggle:toggle!==false,scope:editor,handler:handler||editor.relayBtnCmd,clickEvent:"mousedown",tooltip:tipsEnabled?editor.buttonTips[id]||undef:undef,overflowText:editor.buttonTips[id].title||undef,tabIndex:-1}}if(me.enableFont&&!Ext.isSafari2){fontSelectItem=Ext.widget("component",{renderTpl:['<select id="{id}-selectEl" class="{cls}">','<tpl for="fonts">','<option value="{[values.toLowerCase()]}" style="font-family:{.}"<tpl if="values.toLowerCase()==parent.defaultFont"> selected</tpl>>{.}</option>',"</tpl>","</select>"],renderData:{cls:baseCSSPrefix+"font-select",fonts:me.fontFamilies,defaultFont:me.defaultFont},childEls:["selectEl"],onDisable:function(){var selectEl=this.selectEl;if(selectEl){selectEl.dom.disabled=true}Ext.Component.superclass.onDisable.apply(this,arguments)},onEnable:function(){var selectEl=this.selectEl;if(selectEl){selectEl.dom.disabled=false}Ext.Component.superclass.onEnable.apply(this,arguments)}});items.push(fontSelectItem,"-")}if(me.enableFormat){items.push(btn("bold"),btn("italic"),btn("underline"))}if(me.enableFontSize){items.push("-",btn("increasefontsize",false,me.adjustFont),btn("decreasefontsize",false,me.adjustFont))}if(me.enableColors){items.push("-",{itemId:"forecolor",cls:baseCSSPrefix+"btn-icon",iconCls:baseCSSPrefix+"edit-forecolor",overflowText:editor.buttonTips.forecolor.title,tooltip:tipsEnabled?editor.buttonTips.forecolor||undef:undef,tabIndex:-1,menu:Ext.widget("menu",{plain:true,items:[{xtype:"colorpicker",allowReselect:true,focus:Ext.emptyFn,value:"000000",plain:true,clickEvent:"mousedown",handler:function(cp,color){me.execCmd("forecolor",Ext.isWebKit||Ext.isIE?"#"+color:color);me.deferFocus();this.up("menu").hide()}}]})},{itemId:"backcolor",cls:baseCSSPrefix+"btn-icon",iconCls:baseCSSPrefix+"edit-backcolor",overflowText:editor.buttonTips.backcolor.title,tooltip:tipsEnabled?editor.buttonTips.backcolor||undef:undef,tabIndex:-1,menu:Ext.widget("menu",{plain:true,items:[{xtype:"colorpicker",focus:Ext.emptyFn,value:"FFFFFF",plain:true,allowReselect:true,clickEvent:"mousedown",handler:function(cp,color){if(Ext.isGecko){me.execCmd("useCSS",false);me.execCmd("hilitecolor",color);me.execCmd("useCSS",true);me.deferFocus()}else{me.execCmd(Ext.isOpera?"hilitecolor":"backcolor",Ext.isWebKit||Ext.isIE?"#"+color:color);me.deferFocus()}this.up("menu").hide()}}]})})}if(me.enableAlignments){items.push("-",btn("justifyleft"),btn("justifycenter"),btn("justifyright"))}if(!Ext.isSafari2){if(me.enableLinks){items.push("-",btn("createlink",false,me.createLink))}if(me.enableLists){items.push("-",btn("insertorderedlist"),btn("insertunorderedlist"))}if(me.enableSourceEdit){items.push("-",btn("sourceedit",true,function(btn){me.toggleSourceEdit(!me.sourceEditMode)}))}}toolbar=Ext.widget("toolbar",{renderTo:me.toolbarWrap,enableOverflow:true,items:items});if(fontSelectItem){me.fontSelect=fontSelectItem.selectEl;me.mon(me.fontSelect,"change",function(){me.relayCmd("fontname",me.fontSelect.dom.value);me.deferFocus()})}me.mon(toolbar.el,"click",function(e){e.preventDefault()});me.toolbar=toolbar},onDisable:function(){this.bodyEl.mask();this.callParent(arguments)},onEnable:function(){this.bodyEl.unmask();this.callParent(arguments)},setReadOnly:function(readOnly){var me=this,textareaEl=me.textareaEl,iframeEl=me.iframeEl,body;me.readOnly=readOnly;if(textareaEl){textareaEl.dom.readOnly=readOnly}if(me.initialized){body=me.getEditorBody();if(Ext.isIE){iframeEl.setDisplayed(false);body.contentEditable=!readOnly;iframeEl.setDisplayed(true)}else{me.setDesignMode(!readOnly)}if(body){body.style.cursor=readOnly?"default":"text"}me.disableItems(readOnly)}},getDocMarkup:function(){var me=this,h=me.iframeEl.getHeight()-me.iframePad*2;return Ext.String.format('<html><head><style type="text/css">body{border:0;margin:0;padding:{0}px;height:{1}px;box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;cursor:text}</style></head><body></body></html>',me.iframePad,h)},getEditorBody:function(){var doc=this.getDoc();return doc.body||doc.documentElement},getDoc:function(){return(!Ext.isIE&&this.iframeEl.dom.contentDocument)||this.getWin().document},getWin:function(){return Ext.isIE?this.iframeEl.dom.contentWindow:window.frames[this.iframeEl.dom.name]},onRender:function(){var me=this;me.onLabelableRender();me.addChildEls("toolbarWrap","iframeEl","textareaEl");me.callParent(arguments);me.textareaEl.dom.value=me.value||"";me.monitorTask=Ext.TaskManager.start({run:me.checkDesignMode,scope:me,interval:100});me.createToolbar(me);me.disableItems(true)},initRenderTpl:function(){var me=this;if(!me.hasOwnProperty("renderTpl")){me.renderTpl=me.getTpl("labelableRenderTpl")}return me.callParent()},initRenderData:function(){return Ext.applyIf(this.callParent(),this.getLabelableRenderData())},getSubTplData:function(){var cssPrefix=Ext.baseCSSPrefix;return{cmpId:this.id,id:this.getInputId(),toolbarWrapCls:cssPrefix+"html-editor-tb",textareaCls:cssPrefix+"hidden",iframeName:Ext.id(),iframeSrc:Ext.SSL_SECURE_URL,size:"height:100px;"}},getSubTplMarkup:function(){var data=this.getSubTplData();return this.getTpl("fieldSubTpl").apply(data)},getBodyNaturalWidth:function(){return 565},initFrameDoc:function(){var me=this,doc,task;Ext.TaskManager.stop(me.monitorTask);doc=me.getDoc();me.win=me.getWin();doc.open();doc.write(me.getDocMarkup());doc.close();task={run:function(){var doc=me.getDoc();if(doc.body||doc.readyState==="complete"){Ext.TaskManager.stop(task);me.setDesignMode(true);Ext.defer(me.initEditor,10,me)}},interval:10,duration:10000,scope:me};Ext.TaskManager.start(task)},checkDesignMode:function(){var me=this,doc=me.getDoc();if(doc&&(!doc.editorInitialized||me.getDesignMode()!=="on")){me.initFrameDoc()}},setDesignMode:function(mode){var me=this,doc=me.getDoc();if(doc){if(me.readOnly){mode=false}doc.designMode=(/on|true/i).test(String(mode).toLowerCase())?"on":"off"}},getDesignMode:function(){var doc=this.getDoc();return !doc?"":String(doc.designMode).toLowerCase()},disableItems:function(disabled){this.getToolbar().items.each(function(item){if(item.getItemId()!=="sourceedit"){item.setDisabled(disabled)}})},toggleSourceEdit:function(sourceEditMode){var me=this,iframe=me.iframeEl,textarea=me.textareaEl,hiddenCls=Ext.baseCSSPrefix+"hidden",btn=me.getToolbar().getComponent("sourceedit");if(!Ext.isBoolean(sourceEditMode)){sourceEditMode=!me.sourceEditMode}me.sourceEditMode=sourceEditMode;if(btn.pressed!==sourceEditMode){btn.toggle(sourceEditMode)}if(sourceEditMode){me.disableItems(true);me.syncValue();iframe.addCls(hiddenCls);textarea.removeCls(hiddenCls);textarea.dom.removeAttribute("tabIndex");textarea.focus()}else{if(me.initialized){me.disableItems(me.readOnly)}me.pushValue();iframe.removeCls(hiddenCls);textarea.addCls(hiddenCls);textarea.dom.setAttribute("tabIndex",-1);me.deferFocus()}me.fireEvent("editmodechange",me,sourceEditMode);me.doComponentLayout()},createLink:function(){var url=prompt(this.createLinkText,this.defaultLinkValue);if(url&&url!=="http://"){this.relayCmd("createlink",url)}},clearInvalid:Ext.emptyFn,setValue:function(value){var me=this,textarea=me.textareaEl;me.mixins.field.setValue.call(me,value);if(value===null||value===undefined){value=""}if(textarea){textarea.dom.value=value}me.pushValue();return this},cleanHtml:function(html){html=String(html);if(Ext.isWebKit){html=html.replace(/\sclass="(?:Apple-style-span|khtml-block-placeholder)"/gi,"")}if(html.charCodeAt(0)===this.defaultValue.replace(/\D/g,"")){html=html.substring(1)}return html},syncValue:function(){var me=this,body,html,bodyStyle,match;if(me.initialized){body=me.getEditorBody();html=body.innerHTML;if(Ext.isWebKit){bodyStyle=body.getAttribute("style");match=bodyStyle.match(/text-align:(.*?);/i);if(match&&match[1]){html='<div style="'+match[0]+'">'+html+"</div>"}}html=me.cleanHtml(html);if(me.fireEvent("beforesync",me,html)!==false){me.textareaEl.dom.value=html;me.fireEvent("sync",me,html)}}},getValue:function(){var me=this,value;if(!me.sourceEditMode){me.syncValue()}value=me.rendered?me.textareaEl.dom.value:me.value;me.value=value;return value},pushValue:function(){var me=this,v;if(me.initialized){v=me.textareaEl.dom.value||"";if(!me.activated&&v.length<1){v=me.defaultValue}if(me.fireEvent("beforepush",me,v)!==false){me.getEditorBody().innerHTML=v;if(Ext.isGecko){me.setDesignMode(false);me.setDesignMode(true)}me.fireEvent("push",me,v)}}},deferFocus:function(){this.focus(false,true)},getFocusEl:function(){var me=this,win=me.win;return win&&!me.sourceEditMode?win:me.textareaEl},initEditor:function(){try{var me=this,dbody=me.getEditorBody(),ss=me.textareaEl.getStyles("font-size","font-family","background-image","background-repeat","background-color","color"),doc,fn;ss["background-attachment"]="fixed";dbody.bgProperties="fixed";Ext.DomHelper.applyStyles(dbody,ss);doc=me.getDoc();if(doc){try{Ext.EventManager.removeAll(doc)}catch(e){}}fn=Ext.Function.bind(me.onEditorEvent,me);Ext.EventManager.on(doc,{mousedown:fn,dblclick:fn,click:fn,keyup:fn,buffer:100});fn=me.onRelayedEvent;Ext.EventManager.on(doc,{mousedown:fn,mousemove:fn,mouseup:fn,click:fn,dblclick:fn,scope:me});if(Ext.isGecko){Ext.EventManager.on(doc,"keypress",me.applyCommand,me)}if(me.fixKeys){Ext.EventManager.on(doc,"keydown",me.fixKeys,me)}Ext.EventManager.on(window,"unload",me.beforeDestroy,me);doc.editorInitialized=true;me.initialized=true;me.pushValue();me.setReadOnly(me.readOnly);me.fireEvent("initialize",me)}catch(ex){}},beforeDestroy:function(){var me=this,monitorTask=me.monitorTask,doc,prop;if(monitorTask){Ext.TaskManager.stop(monitorTask)}if(me.rendered){try{doc=me.getDoc();if(doc){Ext.EventManager.removeAll(doc);for(prop in doc){if(doc.hasOwnProperty(prop)){delete doc[prop]}}}}catch(e){}Ext.destroyMembers(me,"tb","toolbarWrap","iframeEl","textareaEl")}me.callParent()},onRelayedEvent:function(event){var iframeEl=this.iframeEl,iframeXY=iframeEl.getXY(),eventXY=event.getXY();event.xy=[iframeXY[0]+eventXY[0],iframeXY[1]+eventXY[1]];event.injectEvent(iframeEl);event.xy=eventXY},onFirstFocus:function(){var me=this,selection,range;me.activated=true;me.disableItems(me.readOnly);if(Ext.isGecko){me.win.focus();selection=me.win.getSelection();if(!selection.focusNode||selection.focusNode.nodeType!==3){range=selection.getRangeAt(0);range.selectNodeContents(me.getEditorBody());range.collapse(true);me.deferFocus()}try{me.execCmd("useCSS",true);me.execCmd("styleWithCSS",false)}catch(e){}}me.fireEvent("activate",me)},adjustFont:function(btn){var adjust=btn.getItemId()==="increasefontsize"?1:-1,size=this.getDoc().queryCommandValue("FontSize")||"2",isPxSize=Ext.isString(size)&&size.indexOf("px")!==-1,isSafari;size=parseInt(size,10);if(isPxSize){if(size<=10){size=1+adjust}else{if(size<=13){size=2+adjust}else{if(size<=16){size=3+adjust}else{if(size<=18){size=4+adjust}else{if(size<=24){size=5+adjust}else{size=6+adjust}}}}}size=Ext.Number.constrain(size,1,6)}else{isSafari=Ext.isSafari;if(isSafari){adjust*=2}size=Math.max(1,size+adjust)+(isSafari?"px":0)}this.execCmd("FontSize",size)},onEditorEvent:function(e){this.updateToolbar()},updateToolbar:function(){var me=this,btns,doc,name,fontSelect;if(me.readOnly){return}if(!me.activated){me.onFirstFocus();return}btns=me.getToolbar().items.map;doc=me.getDoc();if(me.enableFont&&!Ext.isSafari2){name=(doc.queryCommandValue("FontName")||me.defaultFont).toLowerCase();fontSelect=me.fontSelect.dom;if(name!==fontSelect.value){fontSelect.value=name}}function updateButtons(){Ext.Array.forEach(Ext.Array.toArray(arguments),function(name){btns[name].toggle(doc.queryCommandState(name))})}if(me.enableFormat){updateButtons("bold","italic","underline")}if(me.enableAlignments){updateButtons("justifyleft","justifycenter","justifyright")}if(!Ext.isSafari2&&me.enableLists){updateButtons("insertorderedlist","insertunorderedlist")}Ext.menu.Manager.hideAll();me.syncValue()},relayBtnCmd:function(btn){this.relayCmd(btn.getItemId())},relayCmd:function(cmd,value){Ext.defer(function(){var me=this;me.focus();me.execCmd(cmd,value);me.updateToolbar()},10,this)},execCmd:function(cmd,value){var me=this,doc=me.getDoc(),undef;doc.execCommand(cmd,false,value===undef?null:value);me.syncValue()},applyCommand:function(e){if(e.ctrlKey){var me=this,c=e.getCharCode(),cmd;if(c>0){c=String.fromCharCode(c);switch(c){case"b":cmd="bold";break;case"i":cmd="italic";break;case"u":cmd="underline";break}if(cmd){me.win.focus();me.execCmd(cmd);me.deferFocus();e.preventDefault()}}}},insertAtCursor:function(text){var me=this,range;if(me.activated){me.win.focus();if(Ext.isIE){range=me.getDoc().selection.createRange();if(range){range.pasteHTML(text);me.syncValue();me.deferFocus()}}else{me.execCmd("InsertHTML",text);me.deferFocus()}}},fixKeys:function(){if(Ext.isIE){return function(e){var me=this,k=e.getKey(),doc=me.getDoc(),range,target;if(k===e.TAB){e.stopEvent();range=doc.selection.createRange();if(range){range.collapse(true);range.pasteHTML("&nbsp;&nbsp;&nbsp;&nbsp;");me.deferFocus()}}else{if(k===e.ENTER){range=doc.selection.createRange();if(range){target=range.parentElement();if(!target||target.tagName.toLowerCase()!=="li"){e.stopEvent();range.pasteHTML("<br />");range.collapse(false);range.select()}}}}}}if(Ext.isOpera){return function(e){var me=this;if(e.getKey()===e.TAB){e.stopEvent();me.win.focus();me.execCmd("InsertHTML","&nbsp;&nbsp;&nbsp;&nbsp;");me.deferFocus()}}}if(Ext.isWebKit){return function(e){var me=this,k=e.getKey();if(k===e.TAB){e.stopEvent();me.execCmd("InsertText","\t");me.deferFocus()}else{if(k===e.ENTER){e.stopEvent();me.execCmd("InsertHtml","<br /><br />");me.deferFocus()}}}}return null}(),getToolbar:function(){return this.toolbar},buttonTips:{bold:{title:"Bold (Ctrl+B)",text:"Make the selected text bold.",cls:Ext.baseCSSPrefix+"html-editor-tip"},italic:{title:"Italic (Ctrl+I)",text:"Make the selected text italic.",cls:Ext.baseCSSPrefix+"html-editor-tip"},underline:{title:"Underline (Ctrl+U)",text:"Underline the selected text.",cls:Ext.baseCSSPrefix+"html-editor-tip"},increasefontsize:{title:"Grow Text",text:"Increase the font size.",cls:Ext.baseCSSPrefix+"html-editor-tip"},decreasefontsize:{title:"Shrink Text",text:"Decrease the font size.",cls:Ext.baseCSSPrefix+"html-editor-tip"},backcolor:{title:"Text Highlight Color",text:"Change the background color of the selected text.",cls:Ext.baseCSSPrefix+"html-editor-tip"},forecolor:{title:"Font Color",text:"Change the color of the selected text.",cls:Ext.baseCSSPrefix+"html-editor-tip"},justifyleft:{title:"Align Text Left",text:"Align text to the left.",cls:Ext.baseCSSPrefix+"html-editor-tip"},justifycenter:{title:"Center Text",text:"Center text in the editor.",cls:Ext.baseCSSPrefix+"html-editor-tip"},justifyright:{title:"Align Text Right",text:"Align text to the right.",cls:Ext.baseCSSPrefix+"html-editor-tip"},insertunorderedlist:{title:"Bullet List",text:"Start a bulleted list.",cls:Ext.baseCSSPrefix+"html-editor-tip"},insertorderedlist:{title:"Numbered List",text:"Start a numbered list.",cls:Ext.baseCSSPrefix+"html-editor-tip"},createlink:{title:"Hyperlink",text:"Make the selected text a hyperlink.",cls:Ext.baseCSSPrefix+"html-editor-tip"},sourceedit:{title:"Source Edit",text:"Switch to source editing mode.",cls:Ext.baseCSSPrefix+"html-editor-tip"}}});Ext.define("Ext.form.field.Radio",{extend:"Ext.form.field.Checkbox",alias:["widget.radiofield","widget.radio"],alternateClassName:"Ext.form.Radio",requires:["Ext.form.RadioManager"],isRadio:true,inputType:"radio",ariaRole:"radio",getGroupValue:function(){var selected=this.getManager().getChecked(this.name);return selected?selected.inputValue:null},onBoxClick:function(e){var me=this;if(!me.disabled&&!me.readOnly){this.setValue(true)}},setValue:function(v){var me=this,active;if(Ext.isBoolean(v)){me.callParent(arguments)}else{active=me.getManager().getWithValue(me.name,v).getAt(0);if(active){active.setValue(true)}}return me},getSubmitValue:function(){return this.checked?this.inputValue:null},getModelData:function(){return this.getSubmitData()},onChange:function(newVal,oldVal){var me=this;me.callParent(arguments);if(newVal){this.getManager().getByName(me.name).each(function(item){if(item!==me){item.setValue(false)}},me)}},getManager:function(){return Ext.form.RadioManager}});Ext.define("Ext.picker.Time",{extend:"Ext.view.BoundList",alias:"widget.timepicker",requires:["Ext.data.Store","Ext.Date"],increment:15,format:"g:i A",displayField:"disp",initDate:[2008,0,1],componentCls:Ext.baseCSSPrefix+"timepicker",loadMask:false,initComponent:function(){var me=this,dateUtil=Ext.Date,clearTime=dateUtil.clearTime,initDate=me.initDate;me.absMin=clearTime(new Date(initDate[0],initDate[1],initDate[2]));me.absMax=dateUtil.add(clearTime(new Date(initDate[0],initDate[1],initDate[2])),"mi",(24*60)-1);me.store=me.createStore();me.updateList();me.callParent()},setMinValue:function(value){this.minValue=value;this.updateList()},setMaxValue:function(value){this.maxValue=value;this.updateList()},normalizeDate:function(date){var initDate=this.initDate;date.setFullYear(initDate[0],initDate[1],initDate[2]);return date},updateList:function(){var me=this,min=me.normalizeDate(me.minValue||me.absMin),max=me.normalizeDate(me.maxValue||me.absMax);me.store.filterBy(function(record){var date=record.get("date");return date>=min&&date<=max})},createStore:function(){var me=this,utilDate=Ext.Date,times=[],min=me.absMin,max=me.absMax;while(min<=max){times.push({disp:utilDate.dateFormat(min,me.format),date:min});min=utilDate.add(min,"mi",me.increment)}return Ext.create("Ext.data.Store",{fields:["disp","date"],data:times})}});Ext.define("Ext.form.field.Time",{extend:"Ext.form.field.Picker",alias:"widget.timefield",requires:["Ext.form.field.Date","Ext.picker.Time","Ext.view.BoundListKeyNav","Ext.Date"],alternateClassName:["Ext.form.TimeField","Ext.form.Time"],triggerCls:Ext.baseCSSPrefix+"form-time-trigger",minText:"The time in this field must be equal to or after {0}",maxText:"The time in this field must be equal to or before {0}",invalidText:"{0} is not a valid time",format:"g:i A",altFormats:"g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H|gi a|hi a|giA|hiA|gi A|hi A",increment:15,pickerMaxHeight:300,selectOnTab:true,initDate:"1/1/2008",initDateFormat:"j/n/Y",initComponent:function(){var me=this,min=me.minValue,max=me.maxValue;if(min){me.setMinValue(min)}if(max){me.setMaxValue(max)}this.callParent()},initValue:function(){var me=this,value=me.value;if(Ext.isString(value)){me.value=me.rawToValue(value)}me.callParent()},setMinValue:function(value){var me=this,picker=me.picker;me.setLimit(value,true);if(picker){picker.setMinValue(me.minValue)}},setMaxValue:function(value){var me=this,picker=me.picker;me.setLimit(value,false);if(picker){picker.setMaxValue(me.maxValue)}},setLimit:function(value,isMin){var me=this,d,val;if(Ext.isString(value)){d=me.parseDate(value)}else{if(Ext.isDate(value)){d=value}}if(d){val=Ext.Date.clearTime(new Date(me.initDate));val.setHours(d.getHours(),d.getMinutes(),d.getSeconds(),d.getMilliseconds());me[isMin?"minValue":"maxValue"]=val}},rawToValue:function(rawValue){return this.parseDate(rawValue)||rawValue||null},valueToRaw:function(value){return this.formatDate(this.parseDate(value))},getErrors:function(value){var me=this,format=Ext.String.format,errors=me.callParent(arguments),minValue=me.minValue,maxValue=me.maxValue,date;value=me.formatDate(value||me.processRawValue(me.getRawValue()));if(value===null||value.length<1){return errors}date=me.parseDate(value);if(!date){errors.push(format(me.invalidText,value,me.format));return errors}if(minValue&&date<minValue){errors.push(format(me.minText,me.formatDate(minValue)))}if(maxValue&&date>maxValue){errors.push(format(me.maxText,me.formatDate(maxValue)))}return errors},formatDate:function(){return Ext.form.field.Date.prototype.formatDate.apply(this,arguments)},parseDate:function(value){if(!value||Ext.isDate(value)){return value}var me=this,val=me.safeParse(value,me.format),altFormats=me.altFormats,altFormatsArray=me.altFormatsArray,i=0,len;if(!val&&altFormats){altFormatsArray=altFormatsArray||altFormats.split("|");len=altFormatsArray.length;for(;i<len&&!val;++i){val=me.safeParse(value,altFormatsArray[i])}}return val},safeParse:function(value,format){var me=this,utilDate=Ext.Date,parsedDate,result=null;if(utilDate.formatContainsDateInfo(format)){result=utilDate.parse(value,format)}else{parsedDate=utilDate.parse(me.initDate+" "+value,me.initDateFormat+" "+format);if(parsedDate){result=parsedDate}}return result},getSubmitValue:function(){var me=this,format=me.submitFormat||me.format,value=me.getValue();return value?Ext.Date.format(value,format):null},createPicker:function(){var me=this,picker=Ext.create("Ext.picker.Time",{pickerField:me,selModel:{mode:"SINGLE"},floating:true,hidden:true,minValue:me.minValue,maxValue:me.maxValue,increment:me.increment,format:me.format,ownerCt:this.ownerCt,renderTo:document.body,maxHeight:me.pickerMaxHeight,focusOnToFront:false});me.mon(picker.getSelectionModel(),{selectionchange:me.onListSelect,scope:me});return picker},onExpand:function(){var me=this,keyNav=me.pickerKeyNav,selectOnTab=me.selectOnTab,picker=me.getPicker(),lastSelected=picker.getSelectionModel().lastSelected,itemNode;if(!keyNav){keyNav=me.pickerKeyNav=Ext.create("Ext.view.BoundListKeyNav",this.inputEl,{boundList:picker,forceKeyDown:true,tab:function(e){if(selectOnTab){if(me.picker.highlightedItem){this.selectHighlighted(e)}else{me.collapse()}me.triggerBlur()}return true}});if(selectOnTab){me.ignoreMonitorTab=true}}Ext.defer(keyNav.enable,1,keyNav);if(lastSelected){itemNode=picker.getNode(lastSelected);if(itemNode){picker.highlightItem(itemNode);picker.el.scrollChildIntoView(itemNode,false)}}},onCollapse:function(){var me=this,keyNav=me.pickerKeyNav;if(keyNav){keyNav.disable();me.ignoreMonitorTab=false}},onChange:function(){var me=this,picker=me.picker;me.callParent(arguments);if(picker){picker.clearHighlight()}},onListSelect:function(list,recordArray){var me=this,record=recordArray[0],val=record?record.get("date"):null;me.setValue(val);me.fireEvent("select",me,val);me.picker.clearHighlight();me.collapse();me.inputEl.focus()}});Ext.define("Ext.grid.CellEditor",{extend:"Ext.Editor",constructor:function(config){config=Ext.apply({},config);if(config.field){config.field.monitorTab=false}if(!Ext.isDefined(config.autoSize)){config.autoSize={width:"boundEl"}}this.callParent([config])},onShow:function(){var first=this.boundEl.first();if(first){first.hide()}this.callParent(arguments)},onHide:function(){var first=this.boundEl.first();if(first){first.show()}this.callParent(arguments)},afterRender:function(){this.callParent(arguments);var field=this.field;if(field.isXType("checkboxfield")){field.mon(field.inputEl,"mousedown",this.onCheckBoxMouseDown,this);field.mon(field.inputEl,"click",this.onCheckBoxClick,this)}},onCheckBoxMouseDown:function(){this.completeEdit=Ext.emptyFn},onCheckBoxClick:function(){delete this.completeEdit;this.field.focus(false,10)},alignment:"tl-tl",hideEl:false,cls:Ext.baseCSSPrefix+"small-editor "+Ext.baseCSSPrefix+"grid-editor",shim:false,shadow:false});Ext.define("Ext.grid.ColumnLayout",{extend:"Ext.layout.container.HBox",alias:"layout.gridcolumn",type:"column",reserveOffset:false,shrinkToFit:false,clearInnerCtOnLayout:true,beforeLayout:function(){var me=this,i=0,items=me.getLayoutItems(),len=items.length,item,returnValue,s;if(!Ext.isDefined(me.availableSpaceOffset)){s=me.owner.up("tablepanel").verticalScroller;me.availableSpaceOffset=s?s.width-1:0}returnValue=me.callParent(arguments);me.innerCt.setHeight(23);for(;i<len;i++){item=items[i];item.el.setStyle({height:"auto"});item.titleContainer.setStyle({height:"auto",paddingTop:"0"});if(item.componentLayout&&item.componentLayout.lastComponentSize){item.componentLayout.lastComponentSize.height=item.el.dom.offsetHeight}}return returnValue},calculateChildBoxes:function(visibleItems,targetSize){var me=this,calculations=me.callParent(arguments),boxes=calculations.boxes,metaData=calculations.meta,len=boxes.length,i=0,box,item;if(targetSize.width&&!me.isHeader){if(me.owner.forceFit){for(;i<len;i++){box=boxes[i];item=box.component;item.minWidth=Ext.grid.plugin.HeaderResizer.prototype.minColWidth;item.flex=box.width}calculations=me.callParent(arguments)}else{if(metaData.tooNarrow){targetSize.width=metaData.desiredSize}}}return calculations},afterLayout:function(){var me=this,owner=me.owner,topGrid,bothHeaderCts,otherHeaderCt,thisHeight,otherHeight,modifiedGrid,i=0,items,len,headerHeight;me.callParent(arguments);if(!me.owner.hideHeaders){if(owner.lockableInjected){topGrid=owner.up("tablepanel").up("tablepanel");bothHeaderCts=topGrid.query("headercontainer:not([isHeader])");otherHeaderCt=(bothHeaderCts[0]===owner)?bothHeaderCts[1]:bothHeaderCts[0];if(!otherHeaderCt.rendered){return}otherHeight=otherHeaderCt.layout.getRenderTarget().getViewSize().height;if(!otherHeight){return}thisHeight=this.getRenderTarget().getViewSize().height;if(!thisHeight){return}topGrid.componentLayout.layoutBusy=true;headerHeight=thisHeight;if(thisHeight>otherHeight){otherHeaderCt.layout.align="stretch";otherHeaderCt.setCalculatedSize(otherHeaderCt.getWidth(),owner.getHeight(),otherHeaderCt.ownerCt);delete otherHeaderCt.layout.align;modifiedGrid=otherHeaderCt.up("tablepanel")}else{if(otherHeight>thisHeight){headerHeight=otherHeight;this.align="stretch";owner.setCalculatedSize(owner.getWidth(),otherHeaderCt.getHeight(),owner.ownerCt);delete this.align;modifiedGrid=owner.up("tablepanel")}}topGrid.componentLayout.layoutBusy=false;items=bothHeaderCts[0].layout.getLayoutItems().concat(bothHeaderCts[1].layout.getLayoutItems())}else{headerHeight=this.getRenderTarget().getViewSize().height;items=me.getLayoutItems()}len=items.length;for(;i<len;i++){items[i].setPadding(headerHeight)}if(modifiedGrid){setTimeout(function(){modifiedGrid.doLayout()},1)}}},updateInnerCtSize:function(tSize,calcs){var me=this,extra;if(!me.isHeader){me.tooNarrow=calcs.meta.tooNarrow;extra=(me.reserveOffset?me.availableSpaceOffset:0);if(calcs.meta.tooNarrow){tSize.width=calcs.meta.desiredSize+extra}else{tSize.width+=extra}}return me.callParent(arguments)},doOwnerCtLayouts:function(){var ownerCt=this.owner.ownerCt;if(!ownerCt.componentLayout.layoutBusy){ownerCt.doComponentLayout()}}});Ext.define("Ext.grid.LockingView",{mixins:{observable:"Ext.util.Observable"},eventRelayRe:/^(beforeitem|beforecontainer|item|container|cell)/,constructor:function(config){var me=this,eventNames=[],eventRe=me.eventRelayRe,locked=config.locked.getView(),normal=config.normal.getView(),events,event;Ext.apply(me,{lockedView:locked,normalView:normal,lockedGrid:config.locked,normalGrid:config.normal,panel:config.panel});me.mixins.observable.constructor.call(me,config);events=locked.events;for(event in events){if(events.hasOwnProperty(event)&&eventRe.test(event)){eventNames.push(event)}}me.relayEvents(locked,eventNames);me.relayEvents(normal,eventNames);normal.on({scope:me,itemmouseleave:me.onItemMouseLeave,itemmouseenter:me.onItemMouseEnter});locked.on({scope:me,itemmouseleave:me.onItemMouseLeave,itemmouseenter:me.onItemMouseEnter})},getGridColumns:function(){var cols=this.lockedGrid.headerCt.getGridColumns();return cols.concat(this.normalGrid.headerCt.getGridColumns())},getEl:function(column){return this.getViewForColumn(column).getEl()},getViewForColumn:function(column){var view=this.lockedView,inLocked;view.headerCt.cascade(function(col){if(col===column){inLocked=true;return false}});return inLocked?view:this.normalView},onItemMouseEnter:function(view,record){var me=this,locked=me.lockedView,other=me.normalView,item;if(view.trackOver){if(view!==locked){other=locked}item=other.getNode(record);other.highlightItem(item)}},onItemMouseLeave:function(view,record){var me=this,locked=me.lockedView,other=me.normalView;if(view.trackOver){if(view!==locked){other=locked}other.clearHighlight()}},relayFn:function(name,args){args=args||[];var view=this.lockedView;view[name].apply(view,args||[]);view=this.normalView;view[name].apply(view,args||[])},getSelectionModel:function(){return this.panel.getSelectionModel()},getStore:function(){return this.panel.store},getNode:function(nodeInfo){return this.normalView.getNode(nodeInfo)},getCell:function(record,column){var view=this.getViewForColumn(column),row;row=view.getNode(record);return Ext.fly(row).down(column.getCellSelector())},getRecord:function(node){var result=this.lockedView.getRecord(node);if(!node){result=this.normalView.getRecord(node)}return result},addElListener:function(eventName,fn,scope){this.relayFn("addElListener",arguments)},refreshNode:function(){this.relayFn("refreshNode",arguments)},refresh:function(){this.relayFn("refresh",arguments)},bindStore:function(){this.relayFn("bindStore",arguments)},addRowCls:function(){this.relayFn("addRowCls",arguments)},removeRowCls:function(){this.relayFn("removeRowCls",arguments)}});Ext.define("Ext.grid.Lockable",{requires:["Ext.grid.LockingView"],syncRowHeight:true,spacerHidden:true,headerCounter:0,unlockText:"Unlock",lockText:"Lock",determineXTypeToCreate:function(){var me=this,typeToCreate;if(me.subGridXType){typeToCreate=me.subGridXType}else{var xtypes=this.getXTypes().split("/"),xtypesLn=xtypes.length,xtype=xtypes[xtypesLn-1],superxtype=xtypes[xtypesLn-2];if(superxtype!=="tablepanel"){typeToCreate=superxtype}else{typeToCreate=xtype}}return typeToCreate},injectLockable:function(){this.lockable=true;this.hasView=true;var me=this,xtype=me.determineXTypeToCreate(),selModel=me.getSelectionModel(),lockedGrid={xtype:xtype,enableAnimations:false,scroll:false,scrollerOwner:false,selModel:selModel,border:false,cls:Ext.baseCSSPrefix+"grid-inner-locked"},normalGrid={xtype:xtype,enableAnimations:false,scrollerOwner:false,selModel:selModel,border:false},i=0,columns,lockedHeaderCt,normalHeaderCt;me.addCls(Ext.baseCSSPrefix+"grid-locked");Ext.copyTo(normalGrid,me,me.normalCfgCopy);Ext.copyTo(lockedGrid,me,me.lockedCfgCopy);for(;i<me.normalCfgCopy.length;i++){delete me[me.normalCfgCopy[i]]}for(i=0;i<me.lockedCfgCopy.length;i++){delete me[me.lockedCfgCopy[i]]}me.addEvents("lockcolumn","unlockcolumn");me.addStateEvents(["lockcolumn","unlockcolumn"]);me.lockedHeights=[];me.normalHeights=[];columns=me.processColumns(me.columns);lockedGrid.width=columns.lockedWidth+Ext.num(selModel.headerWidth,0);lockedGrid.columns=columns.locked;normalGrid.columns=columns.normal;me.store=Ext.StoreManager.lookup(me.store);lockedGrid.store=me.store;normalGrid.store=me.store;normalGrid.flex=1;lockedGrid.viewConfig=me.lockedViewConfig||{};lockedGrid.viewConfig.loadingUseMsg=false;normalGrid.viewConfig=me.normalViewConfig||{};Ext.applyIf(lockedGrid.viewConfig,me.viewConfig);Ext.applyIf(normalGrid.viewConfig,me.viewConfig);me.normalGrid=Ext.ComponentManager.create(normalGrid);me.lockedGrid=Ext.ComponentManager.create(lockedGrid);me.view=Ext.create("Ext.grid.LockingView",{locked:me.lockedGrid,normal:me.normalGrid,panel:me});if(me.syncRowHeight){me.lockedGrid.getView().on({refresh:me.onLockedGridAfterRefresh,itemupdate:me.onLockedGridAfterUpdate,scope:me});me.normalGrid.getView().on({refresh:me.onNormalGridAfterRefresh,itemupdate:me.onNormalGridAfterUpdate,scope:me})}lockedHeaderCt=me.lockedGrid.headerCt;normalHeaderCt=me.normalGrid.headerCt;lockedHeaderCt.lockedCt=true;lockedHeaderCt.lockableInjected=true;normalHeaderCt.lockableInjected=true;lockedHeaderCt.on({columnshow:me.onLockedHeaderShow,columnhide:me.onLockedHeaderHide,columnmove:me.onLockedHeaderMove,sortchange:me.onLockedHeaderSortChange,columnresize:me.onLockedHeaderResize,scope:me});normalHeaderCt.on({columnmove:me.onNormalHeaderMove,sortchange:me.onNormalHeaderSortChange,scope:me});me.normalGrid.on({scrollershow:me.onScrollerShow,scrollerhide:me.onScrollerHide,scope:me});me.lockedGrid.on("afterlayout",me.onLockedGridAfterLayout,me,{single:true});me.modifyHeaderCt();me.items=[me.lockedGrid,me.normalGrid];me.relayHeaderCtEvents(lockedHeaderCt);me.relayHeaderCtEvents(normalHeaderCt);me.layout={type:"hbox",align:"stretch"}},processColumns:function(columns){var i=0,len=columns.length,lockedWidth=1,lockedHeaders=[],normalHeaders=[],column;for(;i<len;++i){column=columns[i];column.processed=true;if(column.locked){if(!column.hidden){lockedWidth+=column.width||Ext.grid.header.Container.prototype.defaultWidth}lockedHeaders.push(column)}else{normalHeaders.push(column)}if(!column.headerId){column.headerId=(column.initialConfig||column).id||("L"+(++this.headerCounter))}}return{lockedWidth:lockedWidth,locked:lockedHeaders,normal:normalHeaders}},onLockedGridAfterLayout:function(){var me=this,lockedView=me.lockedGrid.getView();lockedView.on({beforerefresh:me.destroySpacer,scope:me})},onLockedHeaderMove:function(){if(this.syncRowHeight){this.onNormalGridAfterRefresh()}},onNormalHeaderMove:function(){if(this.syncRowHeight){this.onLockedGridAfterRefresh()}},getSpacerEl:function(){var me=this,w,view,el;if(!me.spacerEl){w=Ext.getScrollBarWidth()+(Ext.isIE?2:0);view=me.lockedGrid.getView();el=view.el;me.spacerEl=Ext.DomHelper.append(el,{cls:me.spacerHidden?(Ext.baseCSSPrefix+"hidden"):"",style:"height: "+w+"px;"},true)}return me.spacerEl},destroySpacer:function(){var me=this;if(me.spacerEl){me.spacerEl.destroy();delete me.spacerEl}},onLockedGridAfterRefresh:function(){var me=this,view=me.lockedGrid.getView(),el=view.el,rowEls=el.query(view.getItemSelector()),ln=rowEls.length,i=0;me.lockedHeights=[];for(;i<ln;i++){me.lockedHeights[i]=rowEls[i].clientHeight}me.syncRowHeights()},onNormalGridAfterRefresh:function(){var me=this,view=me.normalGrid.getView(),el=view.el,rowEls=el.query(view.getItemSelector()),ln=rowEls.length,i=0;me.normalHeights=[];for(;i<ln;i++){me.normalHeights[i]=rowEls[i].clientHeight}me.syncRowHeights()},onLockedGridAfterUpdate:function(record,index,node){this.lockedHeights[index]=node.clientHeight;this.syncRowHeights()},onNormalGridAfterUpdate:function(record,index,node){this.normalHeights[index]=node.clientHeight;this.syncRowHeights()},syncRowHeights:function(){var me=this,lockedHeights=me.lockedHeights,normalHeights=me.normalHeights,calcHeights=[],ln=lockedHeights.length,i=0,lockedView,normalView,lockedRowEls,normalRowEls,vertScroller=me.getVerticalScroller(),scrollTop;if(lockedHeights.length&&normalHeights.length){lockedView=me.lockedGrid.getView();normalView=me.normalGrid.getView();lockedRowEls=lockedView.el.query(lockedView.getItemSelector());normalRowEls=normalView.el.query(normalView.getItemSelector());for(;i<ln;i++){if(!isNaN(lockedHeights[i])&&!isNaN(normalHeights[i])){if(lockedHeights[i]>normalHeights[i]){Ext.fly(normalRowEls[i]).setHeight(lockedHeights[i])}else{if(lockedHeights[i]<normalHeights[i]){Ext.fly(lockedRowEls[i]).setHeight(normalHeights[i])}}}}me.normalGrid.invalidateScroller();if(vertScroller&&vertScroller.setViewScrollTop){vertScroller.setViewScrollTop(me.virtualScrollTop)}else{scrollTop=normalView.el.dom.scrollTop;normalView.el.dom.scrollTop=scrollTop;lockedView.el.dom.scrollTop=scrollTop}me.lockedHeights=[];me.normalHeights=[]}},onScrollerShow:function(scroller,direction){if(direction==="horizontal"){this.spacerHidden=false;this.getSpacerEl().removeCls(Ext.baseCSSPrefix+"hidden")}},onScrollerHide:function(scroller,direction){if(direction==="horizontal"){this.spacerHidden=true;if(this.spacerEl){this.spacerEl.addCls(Ext.baseCSSPrefix+"hidden")}}},modifyHeaderCt:function(){var me=this;me.lockedGrid.headerCt.getMenuItems=me.getMenuItems(true);me.normalGrid.headerCt.getMenuItems=me.getMenuItems(false)},onUnlockMenuClick:function(){this.unlock()},onLockMenuClick:function(){this.lock()},getMenuItems:function(locked){var me=this,unlockText=me.unlockText,lockText=me.lockText,unlockCls=Ext.baseCSSPrefix+"hmenu-unlock",lockCls=Ext.baseCSSPrefix+"hmenu-lock",unlockHandler=Ext.Function.bind(me.onUnlockMenuClick,me),lockHandler=Ext.Function.bind(me.onLockMenuClick,me);return function(){var o=Ext.grid.header.Container.prototype.getMenuItems.call(this);o.push("-",{cls:unlockCls,text:unlockText,handler:unlockHandler,disabled:!locked});o.push({cls:lockCls,text:lockText,handler:lockHandler,disabled:locked});return o}},lock:function(activeHd,toIdx){var me=this,normalGrid=me.normalGrid,lockedGrid=me.lockedGrid,normalHCt=normalGrid.headerCt,lockedHCt=lockedGrid.headerCt;activeHd=activeHd||normalHCt.getMenu().activeHeader;if(activeHd.flex){activeHd.width=activeHd.getWidth();delete activeHd.flex}normalHCt.remove(activeHd,false);lockedHCt.suspendLayout=true;activeHd.locked=true;if(Ext.isDefined(toIdx)){lockedHCt.insert(toIdx,activeHd)}else{lockedHCt.add(activeHd)}lockedHCt.suspendLayout=false;me.syncLockedSection();me.fireEvent("lockcolumn",me,activeHd)},syncLockedSection:function(){var me=this;me.syncLockedWidth();me.lockedGrid.getView().refresh();me.normalGrid.getView().refresh()},syncLockedWidth:function(){var me=this,width=me.lockedGrid.headerCt.getFullWidth(true);me.lockedGrid.setWidth(width+1);me.doComponentLayout()},onLockedHeaderResize:function(){this.syncLockedWidth()},onLockedHeaderHide:function(){this.syncLockedWidth()},onLockedHeaderShow:function(){this.syncLockedWidth()},onLockedHeaderSortChange:function(headerCt,header,sortState){if(sortState){this.normalGrid.headerCt.clearOtherSortStates(null,true)}},onNormalHeaderSortChange:function(headerCt,header,sortState){if(sortState){this.lockedGrid.headerCt.clearOtherSortStates(null,true)}},unlock:function(activeHd,toIdx){var me=this,normalGrid=me.normalGrid,lockedGrid=me.lockedGrid,normalHCt=normalGrid.headerCt,lockedHCt=lockedGrid.headerCt;if(!Ext.isDefined(toIdx)){toIdx=0}activeHd=activeHd||lockedHCt.getMenu().activeHeader;lockedHCt.remove(activeHd,false);me.syncLockedWidth();me.lockedGrid.getView().refresh();activeHd.locked=false;normalHCt.insert(toIdx,activeHd);me.normalGrid.getView().refresh();me.fireEvent("unlockcolumn",me,activeHd)},applyColumnsState:function(columns){var me=this,lockedGrid=me.lockedGrid,lockedHeaderCt=lockedGrid.headerCt,normalHeaderCt=me.normalGrid.headerCt,lockedCols=lockedHeaderCt.items,normalCols=normalHeaderCt.items,existing,locked=[],normal=[],lockedDefault,lockedWidth=1;Ext.each(columns,function(col){function matches(item){return item.headerId==col.id}lockedDefault=true;if(!(existing=lockedCols.findBy(matches))){existing=normalCols.findBy(matches);lockedDefault=false}if(existing){if(existing.applyColumnState){existing.applyColumnState(col)}if(!Ext.isDefined(existing.locked)){existing.locked=lockedDefault}if(existing.locked){locked.push(existing);if(!existing.hidden&&Ext.isNumber(existing.width)){lockedWidth+=existing.width}}else{normal.push(existing)}}});if(locked.length+normal.length==lockedCols.getCount()+normalCols.getCount()){lockedHeaderCt.removeAll(false);normalHeaderCt.removeAll(false);lockedHeaderCt.add(locked);normalHeaderCt.add(normal);lockedGrid.setWidth(lockedWidth)}},getColumnsState:function(){var me=this,locked=me.lockedGrid.headerCt.getColumnsState(),normal=me.normalGrid.headerCt.getColumnsState();return locked.concat(normal)},reconfigureLockable:function(store,columns){var me=this,lockedGrid=me.lockedGrid,normalGrid=me.normalGrid;if(columns){lockedGrid.headerCt.suspendLayout=true;normalGrid.headerCt.suspendLayout=true;lockedGrid.headerCt.removeAll();normalGrid.headerCt.removeAll();columns=me.processColumns(columns);lockedGrid.setWidth(columns.lockedWidth);lockedGrid.headerCt.add(columns.locked);normalGrid.headerCt.add(columns.normal)}if(store){store=Ext.data.StoreManager.lookup(store);me.store=store;lockedGrid.bindStore(store);normalGrid.bindStore(store)}else{lockedGrid.getView().refresh();normalGrid.getView().refresh()}if(columns){lockedGrid.headerCt.suspendLayout=false;normalGrid.headerCt.suspendLayout=false;lockedGrid.headerCt.forceComponentLayout();normalGrid.headerCt.forceComponentLayout()}}});Ext.define("Ext.grid.Scroller",{extend:"Ext.Component",alias:"widget.gridscroller",weight:110,baseCls:Ext.baseCSSPrefix+"scroller",focusable:false,reservedSpace:0,renderTpl:['<div class="'+Ext.baseCSSPrefix+'scroller-ct" id="{baseId}_ct">','<div class="'+Ext.baseCSSPrefix+'stretcher" id="{baseId}_stretch"></div>',"</div>"],initComponent:function(){var me=this,dock=me.dock,cls=Ext.baseCSSPrefix+"scroller-vertical";me.offsets={bottom:0};me.scrollProp="scrollTop";me.vertical=true;me.sizeProp="width";if(dock==="top"||dock==="bottom"){cls=Ext.baseCSSPrefix+"scroller-horizontal";me.sizeProp="height";me.scrollProp="scrollLeft";me.vertical=false;me.weight+=5}me.cls+=(" "+cls);Ext.applyIf(me.renderSelectors,{stretchEl:"."+Ext.baseCSSPrefix+"stretcher",scrollEl:"."+Ext.baseCSSPrefix+"scroller-ct"});me.callParent()},ensureDimension:function(){var me=this,sizeProp=me.sizeProp;me[sizeProp]=me.scrollerSize=Ext.getScrollbarSize()[sizeProp]},initRenderData:function(){var me=this,ret=me.callParent(arguments)||{};ret.baseId=me.id;return ret},afterRender:function(){var me=this;me.callParent();me.mon(me.scrollEl,"scroll",me.onElScroll,me);Ext.cache[me.el.id].skipGarbageCollection=true},onAdded:function(container){this.ownerGrid=container;this.callParent(arguments)},getSizeCalculation:function(){var me=this,owner=me.getPanel(),width=1,height=1,view,tbl;if(!me.vertical){var items=owner.query("tableview"),center=items[1]||items[0];if(!center){return false}width=center.headerCt.getFullWidth();if(Ext.isIEQuirks){width--}}else{view=owner.down("tableview:not([lockableInjected])");if(!view||!view.el){return false}tbl=view.el.child("table",true);if(!tbl){return false}height=tbl.offsetHeight}if(isNaN(width)){width=1}if(isNaN(height)){height=1}return{width:width,height:height}},invalidate:function(firstPass){var me=this,stretchEl=me.stretchEl;if(!stretchEl||!me.ownerCt){return}var size=me.getSizeCalculation(),scrollEl=me.scrollEl,elDom=scrollEl.dom,reservedSpace=me.reservedSpace,pos,extra=5;if(size){stretchEl.setSize(size);size=me.el.getSize(true);if(me.vertical){size.width+=extra;size.height-=reservedSpace;pos="left"}else{size.width-=reservedSpace;size.height+=extra;pos="top"}scrollEl.setSize(size);elDom.style[pos]=(-extra)+"px";elDom.scrollTop=elDom.scrollTop}},afterComponentLayout:function(){this.callParent(arguments);this.invalidate()},restoreScrollPos:function(){var me=this,el=this.scrollEl,elDom=el&&el.dom;if(me._scrollPos!==null&&elDom){elDom[me.scrollProp]=me._scrollPos;me._scrollPos=null}},setReservedSpace:function(reservedSpace){var me=this;if(me.reservedSpace!==reservedSpace){me.reservedSpace=reservedSpace;me.invalidate()}},saveScrollPos:function(){var me=this,el=this.scrollEl,elDom=el&&el.dom;me._scrollPos=elDom?elDom[me.scrollProp]:null},setScrollTop:function(scrollTop){var el=this.scrollEl,elDom=el&&el.dom;if(elDom){return elDom.scrollTop=Ext.Number.constrain(scrollTop,0,elDom.scrollHeight-elDom.clientHeight)}},setScrollLeft:function(scrollLeft){var el=this.scrollEl,elDom=el&&el.dom;if(elDom){return elDom.scrollLeft=Ext.Number.constrain(scrollLeft,0,elDom.scrollWidth-elDom.clientWidth)}},scrollByDeltaY:function(delta){var el=this.scrollEl,elDom=el&&el.dom;if(elDom){return this.setScrollTop(elDom.scrollTop+delta)}},scrollByDeltaX:function(delta){var el=this.scrollEl,elDom=el&&el.dom;if(elDom){return this.setScrollLeft(elDom.scrollLeft+delta)}},scrollToTop:function(){this.setScrollTop(0)},onElScroll:function(event,target){this.fireEvent("bodyscroll",event,target)},getPanel:function(){var me=this;if(!me.panel){me.panel=this.up("[scrollerOwner]")}return me.panel}});Ext.define("Ext.grid.PagingScroller",{extend:"Ext.grid.Scroller",alias:"widget.paginggridscroller",percentageFromEdge:0.35,scrollToLoadBuffer:200,activePrefetch:true,chunkSize:50,snapIncrement:25,syncScroll:true,initComponent:function(){var me=this,ds=me.store;ds.on("guaranteedrange",me.onGuaranteedRange,me);me.callParent(arguments)},onGuaranteedRange:function(range,start,end){var me=this,ds=me.store,rs;if(range.length&&me.visibleStart<range[0].index){return}ds.loadRecords(range);if(!me.firstLoad){if(me.rendered){me.invalidate()}else{me.on("afterrender",me.invalidate,me,{single:true})}me.firstLoad=true}else{if(me.scrollEl&&me.scrollEl.dom&&me.scrollEl.dom.scrollHeight){me.syncTo()}}},syncTo:function(){var me=this,pnl=me.getPanel(),store=pnl.store,scrollerElDom=this.scrollEl.dom,rowOffset=me.visibleStart-store.guaranteedStart,scrollBy=rowOffset*me.rowHeight,scrollHeight=scrollerElDom.scrollHeight,clientHeight=scrollerElDom.clientHeight,scrollTop=scrollerElDom.scrollTop,useMaximum;if(Ext.isIE9&&Ext.isStrict){clientHeight=scrollerElDom.offsetHeight+2}useMaximum=(scrollHeight-clientHeight-scrollTop<=0);this.setViewScrollTop(scrollBy,useMaximum)},getPageData:function(){var panel=this.getPanel(),store=panel.store,totalCount=store.getTotalCount();return{total:totalCount,currentPage:store.currentPage,pageCount:Math.ceil(totalCount/store.pageSize),fromRecord:((store.currentPage-1)*store.pageSize)+1,toRecord:Math.min(store.currentPage*store.pageSize,totalCount)}},onElScroll:function(e,t){var me=this,panel=me.getPanel(),store=panel.store,pageSize=store.pageSize,guaranteedStart=store.guaranteedStart,guaranteedEnd=store.guaranteedEnd,totalCount=store.getTotalCount(),numFromEdge=Math.ceil(me.percentageFromEdge*pageSize),position=t.scrollTop,visibleStart=Math.floor(position/me.rowHeight),view=panel.down("tableview"),viewEl=view.el,visibleHeight=viewEl.getHeight(),visibleAhead=Math.ceil(visibleHeight/me.rowHeight),visibleEnd=visibleStart+visibleAhead,prevPage=Math.floor(visibleStart/pageSize),nextPage=Math.floor(visibleEnd/pageSize)+2,lastPage=Math.ceil(totalCount/pageSize),snap=me.snapIncrement,requestStart=Math.floor(visibleStart/snap)*snap,requestEnd=requestStart+pageSize-1,activePrefetch=me.activePrefetch;me.visibleStart=visibleStart;me.visibleEnd=visibleEnd;me.syncScroll=true;if(totalCount>=pageSize){if(requestEnd>totalCount-1){me.cancelLoad();if(store.rangeSatisfied(totalCount-pageSize,totalCount-1)){me.syncScroll=true}store.guaranteeRange(totalCount-pageSize,totalCount-1)}else{if(visibleStart<=guaranteedStart||visibleEnd>guaranteedEnd){if(visibleStart<=guaranteedStart){requestStart-=snap;requestEnd-=snap;if(requestStart<0){requestStart=0;requestEnd=pageSize}}if(store.rangeSatisfied(requestStart,requestEnd)){me.cancelLoad();store.guaranteeRange(requestStart,requestEnd)}else{store.mask();me.attemptLoad(requestStart,requestEnd)}me.syncScroll=false}else{if(activePrefetch&&visibleStart<(guaranteedStart+numFromEdge)&&prevPage>0){me.syncScroll=true;store.prefetchPage(prevPage)}else{if(activePrefetch&&visibleEnd>(guaranteedEnd-numFromEdge)&&nextPage<lastPage){me.syncScroll=true;store.prefetchPage(nextPage)}}}}}if(me.syncScroll){me.syncTo()}},getSizeCalculation:function(){var me=this,owner=me.ownerGrid,view=owner.getView(),store=me.store,dock=me.dock,elDom=me.el.dom,width=1,height=1;if(!me.rowHeight){me.rowHeight=view.el.down(view.getItemSelector()).getHeight(false,true)}height=store[(!store.remoteFilter&&store.isFiltered())?"getCount":"getTotalCount"]()*me.rowHeight;if(isNaN(width)){width=1}if(isNaN(height)){height=1}return{width:width,height:height}},attemptLoad:function(start,end){var me=this;if(!me.loadTask){me.loadTask=Ext.create("Ext.util.DelayedTask",me.doAttemptLoad,me,[])}me.loadTask.delay(me.scrollToLoadBuffer,me.doAttemptLoad,me,[start,end])},cancelLoad:function(){if(this.loadTask){this.loadTask.cancel()}},doAttemptLoad:function(start,end){var store=this.getPanel().store;store.guaranteeRange(start,end)},setViewScrollTop:function(scrollTop,useMax){var me=this,owner=me.getPanel(),items=owner.query("tableview"),i=0,len=items.length,center,centerEl,calcScrollTop,maxScrollTop,scrollerElDom=me.el.dom;owner.virtualScrollTop=scrollTop;center=items[1]||items[0];centerEl=center.el.dom;maxScrollTop=((owner.store.pageSize*me.rowHeight)-centerEl.clientHeight);calcScrollTop=(scrollTop%((owner.store.pageSize*me.rowHeight)+1));if(useMax){calcScrollTop=maxScrollTop}if(calcScrollTop>maxScrollTop){return}for(;i<len;i++){items[i].el.dom.scrollTop=calcScrollTop}}});Ext.define("Ext.panel.Table",{extend:"Ext.panel.Panel",alias:"widget.tablepanel",uses:["Ext.selection.RowModel","Ext.grid.Scroller","Ext.grid.header.Container","Ext.grid.Lockable"],extraBaseCls:Ext.baseCSSPrefix+"grid",extraBodyCls:Ext.baseCSSPrefix+"grid-body",layout:"fit",hasView:false,viewType:null,selType:"rowmodel",scrollDelta:40,scroll:true,deferRowRender:true,sortableColumns:true,enableLocking:false,verticalScrollDock:"right",verticalScrollerType:"gridscroller",horizontalScrollerPresentCls:Ext.baseCSSPrefix+"horizontal-scroller-present",verticalScrollerPresentCls:Ext.baseCSSPrefix+"vertical-scroller-present",scrollerOwner:true,invalidateScrollerOnRefresh:true,enableColumnMove:true,enableColumnResize:true,enableColumnHide:true,initComponent:function(){var me=this,scroll=me.scroll,vertical=false,horizontal=false,headerCtCfg=me.columns||me.colModel,i=0,view,border=me.border;if(me.hideHeaders){border=false}me.store=Ext.data.StoreManager.lookup(me.store||"ext-empty-store");if(headerCtCfg instanceof Ext.grid.header.Container){me.headerCt=headerCtCfg;me.headerCt.border=border;me.columns=me.headerCt.items.items}else{if(Ext.isArray(headerCtCfg)){headerCtCfg={items:headerCtCfg,border:border}}Ext.apply(headerCtCfg,{forceFit:me.forceFit,sortable:me.sortableColumns,enableColumnMove:me.enableColumnMove,enableColumnResize:me.enableColumnResize,enableColumnHide:me.enableColumnHide,border:border});me.columns=headerCtCfg.items;if(me.enableLocking||Ext.ComponentQuery.query("{locked !== undefined}{processed != true}",me.columns).length){me.self.mixin("lockable",Ext.grid.Lockable);me.injectLockable()}}me.addEvents("reconfigure","viewready","scrollerhide","scrollershow");me.bodyCls=me.bodyCls||"";me.bodyCls+=(" "+me.extraBodyCls);me.cls=me.cls||"";me.cls+=(" "+me.extraBaseCls);delete me.autoScroll;if(!me.hasView){if(!me.headerCt){me.headerCt=Ext.create("Ext.grid.header.Container",headerCtCfg)}me.columns=me.headerCt.items.items;if(me.hideHeaders){me.headerCt.height=0;me.headerCt.border=false;me.headerCt.addCls(Ext.baseCSSPrefix+"grid-header-ct-hidden");me.addCls(Ext.baseCSSPrefix+"grid-header-hidden");if(Ext.isIEQuirks){me.headerCt.style={display:"none"}}}if(scroll===true||scroll==="both"){vertical=horizontal=true}else{if(scroll==="horizontal"){horizontal=true}else{if(scroll==="vertical"){vertical=true}else{me.headerCt.availableSpaceOffset=0}}}if(vertical){me.verticalScroller=Ext.ComponentManager.create(me.initVerticalScroller());me.mon(me.verticalScroller,{bodyscroll:me.onVerticalScroll,scope:me})}if(horizontal){me.horizontalScroller=Ext.ComponentManager.create(me.initHorizontalScroller());me.mon(me.horizontalScroller,{bodyscroll:me.onHorizontalScroll,scope:me})}me.headerCt.on("resize",me.onHeaderResize,me);me.relayHeaderCtEvents(me.headerCt);me.features=me.features||[];if(!Ext.isArray(me.features)){me.features=[me.features]}me.dockedItems=me.dockedItems||[];me.dockedItems.unshift(me.headerCt);me.viewConfig=me.viewConfig||{};me.viewConfig.invalidateScrollerOnRefresh=me.invalidateScrollerOnRefresh;view=me.getView();view.on({afterrender:function(){view.el.scroll=Ext.Function.bind(me.elScroll,me);me.mon(view.el,{mousewheel:me.onMouseWheel,scope:me})},single:true});me.items=[view];me.hasView=true;me.mon(view.store,{load:me.onStoreLoad,scope:me});me.mon(view,{viewReady:me.onViewReady,resize:me.onViewResize,refresh:{fn:me.onViewRefresh,scope:me,buffer:50},scope:me});this.relayEvents(view,["beforeitemmousedown","beforeitemmouseup","beforeitemmouseenter","beforeitemmouseleave","beforeitemclick","beforeitemdblclick","beforeitemcontextmenu","itemmousedown","itemmouseup","itemmouseenter","itemmouseleave","itemclick","itemdblclick","itemcontextmenu","beforecontainermousedown","beforecontainermouseup","beforecontainermouseover","beforecontainermouseout","beforecontainerclick","beforecontainerdblclick","beforecontainercontextmenu","containermouseup","containermouseover","containermouseout","containerclick","containerdblclick","containercontextmenu","selectionchange","beforeselect","select","beforedeselect","deselect"])}me.callParent(arguments)},onRender:function(){var vScroll=this.verticalScroller,hScroll=this.horizontalScroller;if(vScroll){vScroll.ensureDimension()}if(hScroll){hScroll.ensureDimension()}this.callParent(arguments)},initStateEvents:function(){var events=this.stateEvents;Ext.each(["columnresize","columnmove","columnhide","columnshow","sortchange"],function(event){if(Ext.Array.indexOf(events,event)){events.push(event)}});this.callParent()},initHorizontalScroller:function(){var me=this,ret={xtype:"gridscroller",dock:"bottom",section:me,store:me.store};return ret},initVerticalScroller:function(){var me=this,ret=me.verticalScroller||{};Ext.applyIf(ret,{xtype:me.verticalScrollerType,dock:me.verticalScrollDock,store:me.store});return ret},relayHeaderCtEvents:function(headerCt){this.relayEvents(headerCt,["columnresize","columnmove","columnhide","columnshow","sortchange"])},getState:function(){var me=this,state=me.callParent(),sorter=me.store.sorters.first();state.columns=(me.headerCt||me).getColumnsState();if(sorter){state.sort={property:sorter.property,direction:sorter.direction}}return state},applyState:function(state){var me=this,sorter=state.sort,store=me.store,columns=state.columns;delete state.columns;me.callParent(arguments);if(columns){(me.headerCt||me).applyColumnsState(columns)}if(sorter){if(store.remoteSort){store.sorters.add(Ext.create("Ext.util.Sorter",{property:sorter.property,direction:sorter.direction}))}else{store.sort(sorter.property,sorter.direction)}}},getStore:function(){return this.store},getView:function(){var me=this,sm;if(!me.view){sm=me.getSelectionModel();me.view=me.createComponent(Ext.apply({},me.viewConfig,{deferInitialRefresh:me.deferRowRender,xtype:me.viewType,store:me.store,headerCt:me.headerCt,selModel:sm,features:me.features,panel:me}));me.mon(me.view,{uievent:me.processEvent,scope:me});sm.view=me.view;me.headerCt.view=me.view;me.relayEvents(me.view,["cellclick","celldblclick"])}return me.view},setAutoScroll:Ext.emptyFn,elScroll:function(direction,distance,animate){var me=this,scroller;if(direction==="up"||direction==="left"){distance=-distance}if(direction==="down"||direction==="up"){scroller=me.getVerticalScroller();if(scroller){scroller.scrollByDeltaY(distance)}}else{scroller=me.getHorizontalScroller();if(scroller){scroller.scrollByDeltaX(distance)}}},processEvent:function(type,view,cell,recordIndex,cellIndex,e){var me=this,header;if(cellIndex!==-1){header=me.headerCt.getGridColumns()[cellIndex];return header.processEvent.apply(header,arguments)}},determineScrollbars:function(){if(this.determineScrollbarsRunning){return}this.determineScrollbarsRunning=true;var me=this,view=me.view,box,tableEl,scrollWidth,clientWidth,scrollHeight,clientHeight,verticalScroller=me.verticalScroller,horizontalScroller=me.horizontalScroller,curScrollbars=(verticalScroller&&verticalScroller.ownerCt===me?1:0)|(horizontalScroller&&horizontalScroller.ownerCt===me?2:0),reqScrollbars=0;if(!me.collapsed&&view&&view.viewReady){box=view.el.getSize();clientWidth=box.width+((curScrollbars&1)?verticalScroller.width:0);clientHeight=box.height+((curScrollbars&2)?horizontalScroller.height:0);scrollWidth=(me.headerCt.query("[flex]").length&&!me.headerCt.layout.tooNarrow)?0:me.headerCt.getFullWidth();if(verticalScroller&&verticalScroller.el){scrollHeight=verticalScroller.getSizeCalculation().height}else{tableEl=view.el.child("table",true);scrollHeight=tableEl?tableEl.offsetHeight:0}if(scrollHeight>clientHeight){reqScrollbars=1;if(horizontalScroller&&((clientWidth-scrollWidth)<verticalScroller.width)){reqScrollbars=3}}else{if(scrollWidth>clientWidth){reqScrollbars=2;if(verticalScroller&&((clientHeight-scrollHeight)<horizontalScroller.height)){reqScrollbars=3}}}if(reqScrollbars!==curScrollbars){me.suspendLayout=true;if(reqScrollbars&1){me.showVerticalScroller()}else{me.hideVerticalScroller()}if(reqScrollbars&2){me.showHorizontalScroller()}else{me.hideHorizontalScroller()}me.suspendLayout=false;me.doComponentLayout();me.getLayout().layout()}}delete me.determineScrollbarsRunning},onViewResize:function(){this.determineScrollbars()},afterComponentLayout:function(){this.callParent(arguments);this.determineScrollbars();this.invalidateScroller()},onHeaderResize:function(){if(!this.componentLayout.layoutBusy&&this.view&&this.view.rendered){this.determineScrollbars();this.invalidateScroller()}},afterCollapse:function(){var me=this;if(me.verticalScroller){me.verticalScroller.saveScrollPos()}if(me.horizontalScroller){me.horizontalScroller.saveScrollPos()}me.callParent(arguments)},afterExpand:function(){var me=this;me.callParent(arguments);if(me.verticalScroller){me.verticalScroller.restoreScrollPos()}if(me.horizontalScroller){me.horizontalScroller.restoreScrollPos()}},hideHorizontalScroller:function(){var me=this;if(me.horizontalScroller&&me.horizontalScroller.ownerCt===me){me.verticalScroller.setReservedSpace(0);me.removeDocked(me.horizontalScroller,false);me.removeCls(me.horizontalScrollerPresentCls);me.fireEvent("scrollerhide",me.horizontalScroller,"horizontal")}},showHorizontalScroller:function(){var me=this;if(me.verticalScroller){me.verticalScroller.setReservedSpace(Ext.getScrollbarSize().height-1)}if(me.horizontalScroller&&me.horizontalScroller.ownerCt!==me){me.addDocked(me.horizontalScroller);me.addCls(me.horizontalScrollerPresentCls);me.fireEvent("scrollershow",me.horizontalScroller,"horizontal")}},hideVerticalScroller:function(){var me=this;me.setHeaderReserveOffset(false);if(me.verticalScroller&&me.verticalScroller.ownerCt===me){me.removeDocked(me.verticalScroller,false);me.removeCls(me.verticalScrollerPresentCls);me.fireEvent("scrollerhide",me.verticalScroller,"vertical")}},showVerticalScroller:function(){var me=this;me.setHeaderReserveOffset(true);if(me.verticalScroller&&me.verticalScroller.ownerCt!==me){me.addDocked(me.verticalScroller);me.addCls(me.verticalScrollerPresentCls);me.fireEvent("scrollershow",me.verticalScroller,"vertical")}},setHeaderReserveOffset:function(reserveOffset){var headerCt=this.headerCt,layout=headerCt.layout;if(layout&&layout.reserveOffset!==reserveOffset){layout.reserveOffset=reserveOffset;if(!this.suspendLayout){headerCt.doLayout()}}},invalidateScroller:function(){var me=this,vScroll=me.verticalScroller,hScroll=me.horizontalScroller;if(vScroll){vScroll.invalidate()}if(hScroll){hScroll.invalidate()}},onHeaderMove:function(headerCt,header,fromIdx,toIdx){this.view.refresh()},onHeaderHide:function(headerCt,header){this.invalidateScroller()},onHeaderShow:function(headerCt,header){this.invalidateScroller()},getVerticalScroller:function(){return this.getScrollerOwner().down("gridscroller[dock="+this.verticalScrollDock+"]")},getHorizontalScroller:function(){return this.getScrollerOwner().down("gridscroller[dock=bottom]")},onMouseWheel:function(e){var me=this,vertScroller=me.getVerticalScroller(),horizScroller=me.getHorizontalScroller(),scrollDelta=-me.scrollDelta,deltas=e.getWheelDeltas(),deltaX=scrollDelta*deltas.x,deltaY=scrollDelta*deltas.y,vertScrollerEl,horizScrollerEl,vertScrollerElDom,horizScrollerElDom,horizontalCanScrollLeft,horizontalCanScrollRight,verticalCanScrollDown,verticalCanScrollUp;if(horizScroller){horizScrollerEl=horizScroller.scrollEl;if(horizScrollerEl){horizScrollerElDom=horizScrollerEl.dom;horizontalCanScrollRight=horizScrollerElDom.scrollLeft!==horizScrollerElDom.scrollWidth-horizScrollerElDom.clientWidth;horizontalCanScrollLeft=horizScrollerElDom.scrollLeft!==0}}if(vertScroller){vertScrollerEl=vertScroller.scrollEl;if(vertScrollerEl){vertScrollerElDom=vertScrollerEl.dom;verticalCanScrollDown=vertScrollerElDom.scrollTop!==vertScrollerElDom.scrollHeight-vertScrollerElDom.clientHeight;verticalCanScrollUp=vertScrollerElDom.scrollTop!==0}}if(horizScroller){if((deltaX<0&&horizontalCanScrollLeft)||(deltaX>0&&horizontalCanScrollRight)){e.stopEvent();horizScroller.scrollByDeltaX(deltaX)}}if(vertScroller){if((deltaY<0&&verticalCanScrollUp)||(deltaY>0&&verticalCanScrollDown)){e.stopEvent();vertScroller.scrollByDeltaY(deltaY)}}},onViewReady:function(){var me=this;me.fireEvent("viewready",me);if(me.deferRowRender){me.determineScrollbars();me.invalidateScroller()}},onViewRefresh:function(){var me=this;if(!me.rendering){this.determineScrollbars();if(this.invalidateScrollerOnRefresh){this.invalidateScroller()}}},setScrollTop:function(top){var me=this,rootCmp=me.getScrollerOwner(),verticalScroller=me.getVerticalScroller();rootCmp.virtualScrollTop=top;if(verticalScroller){verticalScroller.setScrollTop(top)}},getScrollerOwner:function(){var rootCmp=this;if(!this.scrollerOwner){rootCmp=this.up("[scrollerOwner]")}return rootCmp},scrollByDeltaY:function(deltaY){var verticalScroller=this.getVerticalScroller();if(verticalScroller){verticalScroller.scrollByDeltaY(deltaY)}},scrollByDeltaX:function(deltaX){var horizontalScroller=this.getHorizontalScroller();if(horizontalScroller){horizontalScroller.scrollByDeltaX(deltaX)}},getLhsMarker:function(){var me=this;if(!me.lhsMarker){me.lhsMarker=Ext.DomHelper.append(me.el,{cls:Ext.baseCSSPrefix+"grid-resize-marker"},true)}return me.lhsMarker},getRhsMarker:function(){var me=this;if(!me.rhsMarker){me.rhsMarker=Ext.DomHelper.append(me.el,{cls:Ext.baseCSSPrefix+"grid-resize-marker"},true)}return me.rhsMarker},getSelectionModel:function(){if(!this.selModel){this.selModel={}}var mode="SINGLE",type;if(this.simpleSelect){mode="SIMPLE"}else{if(this.multiSelect){mode="MULTI"}}Ext.applyIf(this.selModel,{allowDeselect:this.allowDeselect,mode:mode});if(!this.selModel.events){type=this.selModel.selType||this.selType;this.selModel=Ext.create("selection."+type,this.selModel)}if(!this.selModel.hasRelaySetup){this.relayEvents(this.selModel,["selectionchange","beforeselect","beforedeselect","select","deselect"]);this.selModel.hasRelaySetup=true}if(this.disableSelection){this.selModel.locked=true}return this.selModel},onVerticalScroll:function(event,target){var owner=this.getScrollerOwner(),items=owner.query("tableview"),i=0,len=items.length;for(;i<len;i++){items[i].el.dom.scrollTop=target.scrollTop}},onHorizontalScroll:function(event,target){var owner=this.getScrollerOwner(),items=owner.query("tableview"),center=items[1]||items[0];center.el.dom.scrollLeft=target.scrollLeft;this.headerCt.el.dom.scrollLeft=target.scrollLeft},onStoreLoad:Ext.emptyFn,getEditorParent:function(){return this.body},bindStore:function(store){var me=this;me.store=store;me.getView().bindStore(store)},beforeDestroy:function(){Ext.destroy(this.horizontalScroller,this.verticalScroller);this.callParent()},reconfigure:function(store,columns){var me=this,headerCt=me.headerCt;if(me.lockable){me.reconfigureLockable(store,columns)}else{if(columns){headerCt.suspendLayout=true;headerCt.removeAll();headerCt.add(columns)}if(store){store=Ext.StoreManager.lookup(store);me.bindStore(store)}else{me.getView().refresh()}if(columns){headerCt.suspendLayout=false;me.forceComponentLayout()}}me.fireEvent("reconfigure",me)}});Ext.define("Ext.view.Table",{extend:"Ext.view.View",alias:"widget.tableview",uses:["Ext.view.TableChunker","Ext.util.DelayedTask","Ext.util.MixedCollection"],baseCls:Ext.baseCSSPrefix+"grid-view",itemSelector:"."+Ext.baseCSSPrefix+"grid-row",cellSelector:"."+Ext.baseCSSPrefix+"grid-cell",selectedItemCls:Ext.baseCSSPrefix+"grid-row-selected",selectedCellCls:Ext.baseCSSPrefix+"grid-cell-selected",focusedItemCls:Ext.baseCSSPrefix+"grid-row-focused",overItemCls:Ext.baseCSSPrefix+"grid-row-over",altRowCls:Ext.baseCSSPrefix+"grid-row-alt",rowClsRe:/(?:^|\s*)grid-row-(first|last|alt)(?:\s+|$)/g,cellRe:new RegExp("x-grid-cell-([^\\s]+) ",""),trackOver:true,getRowClass:null,initComponent:function(){var me=this;me.scrollState={};me.selModel.view=me;me.headerCt.view=me;me.initFeatures();me.tpl="<div></div>";me.callParent();me.mon(me.store,{load:me.onStoreLoad,scope:me})},onStoreLoad:function(){var me=this;if(me.invalidateScrollerOnRefresh){if(Ext.isGecko){if(!me.scrollToTopTask){me.scrollToTopTask=Ext.create("Ext.util.DelayedTask",me.scrollToTop,me)}me.scrollToTopTask.delay(1)}else{me.scrollToTop()}}},scrollToTop:Ext.emptyFn,addElListener:function(eventName,fn,scope){this.mon(this,eventName,fn,scope,{element:"el"})},getGridColumns:function(){return this.headerCt.getGridColumns()},getHeaderAtIndex:function(index){return this.headerCt.getHeaderAtIndex(index)},getCell:function(record,column){var row=this.getNode(record);return Ext.fly(row).down(column.getCellSelector())},getFeature:function(id){var features=this.featuresMC;if(features){return features.get(id)}},initFeatures:function(){var me=this,i=0,features,len;me.features=me.features||[];features=me.features;len=features.length;me.featuresMC=Ext.create("Ext.util.MixedCollection");for(;i<len;i++){if(!features[i].isFeature){features[i]=Ext.create("feature."+features[i].ftype,features[i])}features[i].view=me;me.featuresMC.add(features[i])}},attachEventsForFeatures:function(){var features=this.features,ln=features.length,i=0;for(;i<ln;i++){if(features[i].isFeature){features[i].attachEvents()}}},afterRender:function(){var me=this;me.callParent();me.mon(me.el,{scroll:me.fireBodyScroll,scope:me});me.el.unselectable();me.attachEventsForFeatures()},fireBodyScroll:function(e,t){this.fireEvent("bodyscroll",e,t)},prepareData:function(data,idx,record){var me=this,orig=me.headerCt.prepareData(data,idx,record,me,me.ownerCt),features=me.features,ln=features.length,i=0,node,feature;for(;i<ln;i++){feature=features[i];if(feature.isFeature){Ext.apply(orig,feature.getAdditionalData(data,idx,record,orig,me))}}return orig},collectData:function(records,startIndex){var preppedRecords=this.callParent(arguments),headerCt=this.headerCt,fullWidth=headerCt.getFullWidth(),features=this.features,ln=features.length,o={rows:preppedRecords,fullWidth:fullWidth},i=0,feature,j=0,jln,rowParams;jln=preppedRecords.length;if(this.getRowClass){for(;j<jln;j++){rowParams={};preppedRecords[j]["rowCls"]=this.getRowClass(records[j],j,rowParams,this.store)}}for(;i<ln;i++){feature=features[i];if(feature.isFeature&&feature.collectData&&!feature.disabled){o=feature.collectData(records,preppedRecords,startIndex,fullWidth,o);break}}return o},onHeaderResize:function(header,w,suppressFocus){var me=this,el=me.el;if(el){me.saveScrollState();if(Ext.isIE6||Ext.isIE7){if(header.el.hasCls(Ext.baseCSSPrefix+"column-header-first")){w+=1}}el.select("."+Ext.baseCSSPrefix+"grid-col-resizer-"+header.id).setWidth(w);el.select("."+Ext.baseCSSPrefix+"grid-table-resizer").setWidth(me.headerCt.getFullWidth());me.restoreScrollState();if(!me.ignoreTemplate){me.setNewTemplate()}if(!suppressFocus){me.el.focus()}}},onHeaderShow:function(headerCt,header,suppressFocus){var me=this;me.ignoreTemplate=true;if(header.oldWidth){me.onHeaderResize(header,header.oldWidth,suppressFocus);delete header.oldWidth}else{if(header.width&&!header.flex){me.onHeaderResize(header,header.width,suppressFocus)}}delete me.ignoreTemplate;me.setNewTemplate()},onHeaderHide:function(headerCt,header,suppressFocus){this.onHeaderResize(header,0,suppressFocus)},setNewTemplate:function(){var me=this,columns=me.headerCt.getColumnsForTpl(true);me.tpl=me.getTableChunker().getTableTpl({columns:columns,features:me.features})},getTableChunker:function(){return this.chunker||Ext.view.TableChunker},addRowCls:function(rowInfo,cls){var row=this.getNode(rowInfo);if(row){Ext.fly(row).addCls(cls)}},removeRowCls:function(rowInfo,cls){var row=this.getNode(rowInfo);if(row){Ext.fly(row).removeCls(cls)}},onRowSelect:function(rowIdx){this.addRowCls(rowIdx,this.selectedItemCls)},onRowDeselect:function(rowIdx){var me=this;me.removeRowCls(rowIdx,me.selectedItemCls);me.removeRowCls(rowIdx,me.focusedItemCls)},onCellSelect:function(position){var cell=this.getCellByPosition(position);if(cell){cell.addCls(this.selectedCellCls)}},onCellDeselect:function(position){var cell=this.getCellByPosition(position);if(cell){cell.removeCls(this.selectedCellCls)}},onCellFocus:function(position){this.focusCell(position)},getCellByPosition:function(position){var row=position.row,column=position.column,store=this.store,node=this.getNode(row),header=this.headerCt.getHeaderAtIndex(column),cellSelector,cell=false;if(header&&node){cellSelector=header.getCellSelector();cell=Ext.fly(node).down(cellSelector)}return cell},onRowFocus:function(rowIdx,highlight,supressFocus){var me=this,row=me.getNode(rowIdx);if(highlight){me.addRowCls(rowIdx,me.focusedItemCls);if(!supressFocus){me.focusRow(rowIdx)}}else{me.removeRowCls(rowIdx,me.focusedItemCls)}},focusRow:function(rowIdx){var me=this,row=me.getNode(rowIdx),el=me.el,adjustment=0,panel=me.ownerCt,rowRegion,elRegion,record;if(row&&el){elRegion=el.getRegion();rowRegion=Ext.fly(row).getRegion();if(rowRegion.top<elRegion.top){adjustment=rowRegion.top-elRegion.top}else{if(rowRegion.bottom>elRegion.bottom){adjustment=rowRegion.bottom-elRegion.bottom}}record=me.getRecord(row);rowIdx=me.store.indexOf(record);if(adjustment){panel.scrollByDeltaY(adjustment)}me.fireEvent("rowfocus",record,row,rowIdx)}},focusCell:function(position){var me=this,cell=me.getCellByPosition(position),el=me.el,adjustmentY=0,adjustmentX=0,elRegion=el.getRegion(),panel=me.ownerCt,cellRegion,record;if(cell){cellRegion=cell.getRegion();if(cellRegion.top<elRegion.top){adjustmentY=cellRegion.top-elRegion.top}else{if(cellRegion.bottom>elRegion.bottom){adjustmentY=cellRegion.bottom-elRegion.bottom}}if(cellRegion.left<elRegion.left){adjustmentX=cellRegion.left-elRegion.left}else{if(cellRegion.right>elRegion.right){adjustmentX=cellRegion.right-elRegion.right}}if(adjustmentY){panel.scrollByDeltaY(adjustmentY)}if(adjustmentX){panel.scrollByDeltaX(adjustmentX)}el.focus();me.fireEvent("cellfocus",record,cell,position)}},scrollByDelta:function(delta,dir){dir=dir||"scrollTop";var elDom=this.el.dom;elDom[dir]=(elDom[dir]+=delta)},onUpdate:function(ds,index){this.callParent(arguments)},saveScrollState:function(){if(this.rendered){var dom=this.el.dom,state=this.scrollState;state.left=dom.scrollLeft;state.top=dom.scrollTop}},restoreScrollState:function(){if(this.rendered){var dom=this.el.dom,state=this.scrollState,headerEl=this.headerCt.el.dom;headerEl.scrollLeft=dom.scrollLeft=state.left;dom.scrollTop=state.top}},refresh:function(){this.setNewTemplate();this.callParent(arguments)},processItemEvent:function(record,row,rowIndex,e){var me=this,cell=e.getTarget(me.cellSelector,row),cellIndex=cell?cell.cellIndex:-1,map=me.statics().EventMap,selModel=me.getSelectionModel(),type=e.type,result;if(type=="keydown"&&!cell&&selModel.getCurrentPosition){cell=me.getCellByPosition(selModel.getCurrentPosition());if(cell){cell=cell.dom;cellIndex=cell.cellIndex}}result=me.fireEvent("uievent",type,me,cell,rowIndex,cellIndex,e);if(result===false||me.callParent(arguments)===false){return false}if(type=="mouseover"||type=="mouseout"){return true}return !((me["onBeforeCell"+map[type]](cell,cellIndex,record,row,rowIndex,e)===false)||(me.fireEvent("beforecell"+type,me,cell,cellIndex,record,row,rowIndex,e)===false)||(me["onCell"+map[type]](cell,cellIndex,record,row,rowIndex,e)===false)||(me.fireEvent("cell"+type,me,cell,cellIndex,record,row,rowIndex,e)===false))},processSpecialEvent:function(e){var me=this,map=me.statics().EventMap,features=me.features,ln=features.length,type=e.type,i,feature,prefix,featureTarget,beforeArgs,args,panel=me.ownerCt;me.callParent(arguments);if(type=="mouseover"||type=="mouseout"){return}for(i=0;i<ln;i++){feature=features[i];if(feature.hasFeatureEvent){featureTarget=e.getTarget(feature.eventSelector,me.getTargetEl());if(featureTarget){prefix=feature.eventPrefix;beforeArgs=feature.getFireEventArgs("before"+prefix+type,me,featureTarget,e);args=feature.getFireEventArgs(prefix+type,me,featureTarget,e);if((me.fireEvent.apply(me,beforeArgs)===false)||(panel.fireEvent.apply(panel,beforeArgs)===false)||(me.fireEvent.apply(me,args)===false)||(panel.fireEvent.apply(panel,args)===false)){return false}}}}return true},onCellMouseDown:Ext.emptyFn,onCellMouseUp:Ext.emptyFn,onCellClick:Ext.emptyFn,onCellDblClick:Ext.emptyFn,onCellContextMenu:Ext.emptyFn,onCellKeyDown:Ext.emptyFn,onBeforeCellMouseDown:Ext.emptyFn,onBeforeCellMouseUp:Ext.emptyFn,onBeforeCellClick:Ext.emptyFn,onBeforeCellDblClick:Ext.emptyFn,onBeforeCellContextMenu:Ext.emptyFn,onBeforeCellKeyDown:Ext.emptyFn,expandToFit:function(header){if(header){var maxWidth=this.getMaxContentWidth(header);delete header.flex;header.setWidth(maxWidth)}},getMaxContentWidth:function(header){var cellSelector=header.getCellInnerSelector(),cells=this.el.query(cellSelector),i=0,ln=cells.length,maxWidth=header.el.dom.scrollWidth,scrollWidth;for(;i<ln;i++){scrollWidth=cells[i].scrollWidth;if(scrollWidth>maxWidth){maxWidth=scrollWidth}}return maxWidth},getPositionByEvent:function(e){var me=this,cellNode=e.getTarget(me.cellSelector),rowNode=e.getTarget(me.itemSelector),record=me.getRecord(rowNode),header=me.getHeaderByCell(cellNode);return me.getPosition(record,header)},getHeaderByCell:function(cell){if(cell){var m=cell.className.match(this.cellRe);if(m&&m[1]){return Ext.getCmp(m[1])}}return false},walkCells:function(pos,direction,e,preventWrap,verifierFn,scope){var me=this,row=pos.row,column=pos.column,rowCount=me.store.getCount(),firstCol=me.getFirstVisibleColumnIndex(),lastCol=me.getLastVisibleColumnIndex(),newPos={row:row,column:column},activeHeader=me.headerCt.getHeaderAtIndex(column);if(!activeHeader||activeHeader.hidden){return false}e=e||{};direction=direction.toLowerCase();switch(direction){case"right":if(column===lastCol){if(preventWrap||row===rowCount-1){return false}if(!e.ctrlKey){newPos.row=row+1;newPos.column=firstCol}}else{if(!e.ctrlKey){newPos.column=column+me.getRightGap(activeHeader)}else{newPos.column=lastCol}}break;case"left":if(column===firstCol){if(preventWrap||row===0){return false}if(!e.ctrlKey){newPos.row=row-1;newPos.column=lastCol}}else{if(!e.ctrlKey){newPos.column=column+me.getLeftGap(activeHeader)}else{newPos.column=firstCol}}break;case"up":if(row===0){return false}else{if(!e.ctrlKey){newPos.row=row-1}else{newPos.row=0}}break;case"down":if(row===rowCount-1){return false}else{if(!e.ctrlKey){newPos.row=row+1}else{newPos.row=rowCount-1}}break}if(verifierFn&&verifierFn.call(scope||window,newPos)!==true){return false}else{return newPos}},getFirstVisibleColumnIndex:function(){var headerCt=this.getHeaderCt(),allColumns=headerCt.getGridColumns(),visHeaders=Ext.ComponentQuery.query(":not([hidden])",allColumns),firstHeader=visHeaders[0];return headerCt.getHeaderIndex(firstHeader)},getLastVisibleColumnIndex:function(){var headerCt=this.getHeaderCt(),allColumns=headerCt.getGridColumns(),visHeaders=Ext.ComponentQuery.query(":not([hidden])",allColumns),lastHeader=visHeaders[visHeaders.length-1];return headerCt.getHeaderIndex(lastHeader)},getHeaderCt:function(){return this.headerCt},getPosition:function(record,header){var me=this,store=me.store,gridCols=me.headerCt.getGridColumns();return{row:store.indexOf(record),column:Ext.Array.indexOf(gridCols,header)}},getRightGap:function(activeHeader){var headerCt=this.getHeaderCt(),headers=headerCt.getGridColumns(),activeHeaderIdx=Ext.Array.indexOf(headers,activeHeader),i=activeHeaderIdx+1,nextIdx;for(;i<=headers.length;i++){if(!headers[i].hidden){nextIdx=i;break}}return nextIdx-activeHeaderIdx},beforeDestroy:function(){if(this.rendered){this.el.removeAllListeners()}this.callParent(arguments)},getLeftGap:function(activeHeader){var headerCt=this.getHeaderCt(),headers=headerCt.getGridColumns(),activeHeaderIdx=Ext.Array.indexOf(headers,activeHeader),i=activeHeaderIdx-1,prevIdx;for(;i>=0;i--){if(!headers[i].hidden){prevIdx=i;break}}return prevIdx-activeHeaderIdx}});Ext.define("Ext.grid.View",{extend:"Ext.view.Table",alias:"widget.gridview",stripeRows:true,invalidateScrollerOnRefresh:true,scrollToTop:function(){if(this.rendered){var section=this.ownerCt,verticalScroller=section.verticalScroller;if(verticalScroller){verticalScroller.scrollToTop()}}},onAdd:function(ds,records,index){this.callParent(arguments);this.doStripeRows(index)},onRemove:function(ds,records,index){this.callParent(arguments);this.doStripeRows(index)},onUpdate:function(ds,record,operation){var index=ds.indexOf(record);this.callParent(arguments);this.doStripeRows(index,index)},doStripeRows:function(startRow,endRow){if(this.stripeRows){var rows=this.getNodes(startRow,endRow),rowsLn=rows.length,i=0,row;for(;i<rowsLn;i++){row=rows[i];row.className=row.className.replace(this.rowClsRe," ");startRow++;if(startRow%2===0){row.className+=(" "+this.altRowCls)}}}},refresh:function(firstPass){this.callParent(arguments);this.doStripeRows(0);var g=this.up("gridpanel");if(g&&this.invalidateScrollerOnRefresh){g.invalidateScroller()}}});Ext.define("Ext.grid.Panel",{extend:"Ext.panel.Table",requires:["Ext.grid.View"],alias:["widget.gridpanel","widget.grid"],alternateClassName:["Ext.list.ListView","Ext.ListView","Ext.grid.GridPanel"],viewType:"gridview",lockable:false,normalCfgCopy:["invalidateScrollerOnRefresh","verticalScroller","verticalScrollDock","verticalScrollerType","scroll"],lockedCfgCopy:["invalidateScrollerOnRefresh"],initComponent:function(){var me=this;if(me.columnLines){me.setColumnLines(me.columnLines)}me.callParent()},setColumnLines:function(show){var me=this,method=(show)?"addClsWithUI":"removeClsWithUI";me[method]("with-col-lines")}});Ext.define("Ext.grid.RowEditor",{extend:"Ext.form.Panel",requires:["Ext.tip.ToolTip","Ext.util.HashMap","Ext.util.KeyNav"],saveBtnText:"Update",cancelBtnText:"Cancel",errorsText:"Errors",dirtyText:"You need to commit or cancel your changes",lastScrollLeft:0,lastScrollTop:0,border:false,hideMode:"offsets",initComponent:function(){var me=this,form;me.cls=Ext.baseCSSPrefix+"grid-row-editor";me.layout={type:"hbox",align:"middle"};me.columns=Ext.create("Ext.util.HashMap");me.columns.getKey=function(columnHeader){var f;if(columnHeader.getEditor){f=columnHeader.getEditor();if(f){return f.id}}return columnHeader.id};me.mon(me.columns,{add:me.onFieldAdd,remove:me.onFieldRemove,replace:me.onFieldReplace,scope:me});me.callParent(arguments);if(me.fields){me.setField(me.fields);delete me.fields}form=me.getForm();form.trackResetOnLoad=true},onFieldChange:function(){var me=this,form=me.getForm(),valid=form.isValid();if(me.errorSummary&&me.isVisible()){me[valid?"hideToolTip":"showToolTip"]()}if(me.floatingButtons){me.floatingButtons.child("#update").setDisabled(!valid)}me.isValid=valid},afterRender:function(){var me=this,plugin=me.editingPlugin;me.callParent(arguments);me.mon(me.renderTo,"scroll",me.onCtScroll,me,{buffer:100});me.mon(me.el,{click:Ext.emptyFn,stopPropagation:true});me.el.swallowEvent(["keypress","keydown"]);me.keyNav=Ext.create("Ext.util.KeyNav",me.el,{enter:plugin.completeEdit,esc:plugin.onEscKey,scope:plugin});me.mon(plugin.view,{beforerefresh:me.onBeforeViewRefresh,refresh:me.onViewRefresh,scope:me})},onBeforeViewRefresh:function(view){var me=this,viewDom=view.el.dom;if(me.el.dom.parentNode===viewDom){viewDom.removeChild(me.el.dom)}},onViewRefresh:function(view){var me=this,viewDom=view.el.dom,context=me.context,idx;viewDom.appendChild(me.el.dom);if(context&&(idx=context.store.indexOf(context.record))>=0){context.row=view.getNode(idx);me.reposition();if(me.tooltip&&me.tooltip.isVisible()){me.tooltip.setTarget(context.row)}}else{me.editingPlugin.cancelEdit()}},onCtScroll:function(e,target){var me=this,scrollTop=target.scrollTop,scrollLeft=target.scrollLeft;if(scrollTop!==me.lastScrollTop){me.lastScrollTop=scrollTop;if((me.tooltip&&me.tooltip.isVisible())||me.hiddenTip){me.repositionTip()}}if(scrollLeft!==me.lastScrollLeft){me.lastScrollLeft=scrollLeft;me.reposition()}},onColumnAdd:function(column){this.setField(column)},onColumnRemove:function(column){this.columns.remove(column)},onColumnResize:function(column,width){column.getEditor().setWidth(width-2);if(this.isVisible()){this.reposition()}},onColumnHide:function(column){column.getEditor().hide();if(this.isVisible()){this.reposition()}},onColumnShow:function(column){var field=column.getEditor();field.setWidth(column.getWidth()-2).show();if(this.isVisible()){this.reposition()}},onColumnMove:function(column,fromIdx,toIdx){var field=column.getEditor();if(this.items.indexOf(field)!=toIdx){this.move(fromIdx,toIdx)}},onFieldAdd:function(map,fieldId,column){var me=this,colIdx=me.editingPlugin.grid.headerCt.getHeaderIndex(column),field=column.getEditor({xtype:"displayfield"});me.insert(colIdx,field)},onFieldRemove:function(map,fieldId,column){var me=this,field=column.getEditor(),fieldEl=field.el;me.remove(field,false);if(fieldEl){fieldEl.remove()}},onFieldReplace:function(map,fieldId,column,oldColumn){var me=this;me.onFieldRemove(map,fieldId,oldColumn)},clearFields:function(){var me=this,map=me.columns;map.each(function(fieldId){map.removeAtKey(fieldId)})},getFloatingButtons:function(){var me=this,cssPrefix=Ext.baseCSSPrefix,btnsCss=cssPrefix+"grid-row-editor-buttons",plugin=me.editingPlugin,btns;if(!me.floatingButtons){btns=me.floatingButtons=Ext.create("Ext.Container",{renderTpl:['<div class="{baseCls}-ml"></div>','<div class="{baseCls}-mr"></div>','<div class="{baseCls}-bl"></div>','<div class="{baseCls}-br"></div>','<div class="{baseCls}-bc"></div>'],renderTo:me.el,baseCls:btnsCss,layout:{type:"hbox",align:"middle"},defaults:{margins:"0 1 0 1"},items:[{itemId:"update",flex:1,xtype:"button",handler:plugin.completeEdit,scope:plugin,text:me.saveBtnText,disabled:!me.isValid},{flex:1,xtype:"button",handler:plugin.cancelEdit,scope:plugin,text:me.cancelBtnText}]});me.mon(btns.el,{mousedown:Ext.emptyFn,click:Ext.emptyFn,stopEvent:true})}return me.floatingButtons},reposition:function(animateConfig){var me=this,context=me.context,row=context&&Ext.get(context.row),btns=me.getFloatingButtons(),btnEl=btns.el,grid=me.editingPlugin.grid,viewEl=grid.view.el,scroller=grid.verticalScroller,mainBodyWidth=grid.headerCt.getFullWidth(),scrollerWidth=grid.getWidth(),width=Math.min(mainBodyWidth,scrollerWidth),scrollLeft=grid.view.el.dom.scrollLeft,btnWidth=btns.getWidth(),left=(width-btnWidth)/2+scrollLeft,y,rowH,newHeight,invalidateScroller=function(){if(scroller){scroller.invalidate();btnEl.scrollIntoView(viewEl,false)}if(animateConfig&&animateConfig.callback){animateConfig.callback.call(animateConfig.scope||me)}};if(row&&Ext.isElement(row.dom)){row.scrollIntoView(viewEl,false);y=row.getXY()[1]-5;rowH=row.getHeight();newHeight=rowH+10;if(Ext.isIE){newHeight+=2}if(me.getHeight()!=newHeight){me.setHeight(newHeight);me.el.setLeft(0)}if(animateConfig){var animObj={to:{y:y},duration:animateConfig.duration||125,listeners:{afteranimate:function(){invalidateScroller();y=row.getXY()[1]-5;me.el.setY(y)}}};me.animate(animObj)}else{me.el.setY(y);invalidateScroller()}}if(me.getWidth()!=mainBodyWidth){me.setWidth(mainBodyWidth)}btnEl.setLeft(left)},getEditor:function(fieldInfo){var me=this;if(Ext.isNumber(fieldInfo)){return me.query(">[isFormField]")[fieldInfo]}else{if(fieldInfo instanceof Ext.grid.column.Column){return fieldInfo.getEditor()}}},removeField:function(field){var me=this;field=me.getEditor(field);me.mun(field,"validitychange",me.onValidityChange,me);me.columns.removeKey(field.id)},setField:function(column){var me=this,field;if(Ext.isArray(column)){Ext.Array.forEach(column,me.setField,me);return}field=column.getEditor(null,{xtype:"displayfield",getModelData:function(){return null}});field.margins="0 0 0 2";field.setWidth(column.getDesiredWidth()-2);me.mon(field,"change",me.onFieldChange,me);me.columns.add(field.id,column);if(column.hidden){me.onColumnHide(column)}if(me.isVisible()&&me.context){me.renderColumnData(field,me.context.record)}},loadRecord:function(record){var me=this,form=me.getForm();form.loadRecord(record);if(form.isValid()){me.hideToolTip()}else{me.showToolTip()}Ext.Array.forEach(me.query(">displayfield"),function(field){me.renderColumnData(field,record)},me)},renderColumnData:function(field,record){var me=this,grid=me.editingPlugin.grid,headerCt=grid.headerCt,view=grid.view,store=view.store,column=me.columns.get(field.id),value=record.get(column.dataIndex);if(column.renderer){var metaData={tdCls:"",style:""},rowIdx=store.indexOf(record),colIdx=headerCt.getHeaderIndex(column);value=column.renderer.call(column.scope||headerCt.ownerCt,value,metaData,record,rowIdx,colIdx,store,view)}field.setRawValue(value);field.resetOriginalValue()},beforeEdit:function(){var me=this;if(me.isVisible()&&!me.autoCancel&&me.isDirty()){me.showToolTip();return false}},startEdit:function(record,columnHeader){var me=this,grid=me.editingPlugin.grid,view=grid.getView(),store=grid.store,context=me.context=Ext.apply(me.editingPlugin.context,{view:grid.getView(),store:store});context.grid.getSelectionModel().select(record);me.loadRecord(record);if(!me.isVisible()){me.show();me.focusContextCell()}else{me.reposition({callback:this.focusContextCell})}},focusContextCell:function(){var field=this.getEditor(this.context.colIdx);if(field&&field.focus){field.focus()}},cancelEdit:function(){var me=this,form=me.getForm();me.hide();form.clearInvalid();form.reset()},completeEdit:function(){var me=this,form=me.getForm();if(!form.isValid()){return}form.updateRecord(me.context.record);me.hide();return true},onShow:function(){var me=this;me.callParent(arguments);me.reposition()},onHide:function(){var me=this;me.callParent(arguments);me.hideToolTip();me.invalidateScroller();if(me.context){me.context.view.focus();me.context=null}},isDirty:function(){var me=this,form=me.getForm();return form.isDirty()},getToolTip:function(){var me=this,tip;if(!me.tooltip){tip=me.tooltip=Ext.createWidget("tooltip",{cls:Ext.baseCSSPrefix+"grid-row-editor-errors",title:me.errorsText,autoHide:false,closable:true,closeAction:"disable",anchor:"left"})}return me.tooltip},hideToolTip:function(){var me=this,tip=me.getToolTip();if(tip.rendered){tip.disable()}me.hiddenTip=false},showToolTip:function(){var me=this,tip=me.getToolTip(),context=me.context,row=Ext.get(context.row),viewEl=context.grid.view.el;tip.setTarget(row);tip.showAt([-10000,-10000]);tip.body.update(me.getErrors());tip.mouseOffset=[viewEl.getWidth()-row.getWidth()+me.lastScrollLeft+15,0];me.repositionTip();tip.doLayout();tip.enable()},repositionTip:function(){var me=this,tip=me.getToolTip(),context=me.context,row=Ext.get(context.row),viewEl=context.grid.view.el,viewHeight=viewEl.getHeight(),viewTop=me.lastScrollTop,viewBottom=viewTop+viewHeight,rowHeight=row.getHeight(),rowTop=row.dom.offsetTop,rowBottom=rowTop+rowHeight;if(rowBottom>viewTop&&rowTop<viewBottom){tip.show();me.hiddenTip=false}else{tip.hide();me.hiddenTip=true}},getErrors:function(){var me=this,dirtyText=!me.autoCancel&&me.isDirty()?me.dirtyText+"<br />":"",errors=[];Ext.Array.forEach(me.query(">[isFormField]"),function(field){errors=errors.concat(Ext.Array.map(field.getErrors(),function(e){return"<li>"+e+"</li>"}))},me);return dirtyText+"<ul>"+errors.join("")+"</ul>"},invalidateScroller:function(){var me=this,context=me.context,scroller=context.grid.verticalScroller;if(scroller){scroller.invalidate()}}});Ext.define("Ext.grid.header.Container",{extend:"Ext.container.Container",uses:["Ext.grid.ColumnLayout","Ext.grid.column.Column","Ext.menu.Menu","Ext.menu.CheckItem","Ext.menu.Separator","Ext.grid.plugin.HeaderResizer","Ext.grid.plugin.HeaderReorderer"],border:true,alias:"widget.headercontainer",baseCls:Ext.baseCSSPrefix+"grid-header-ct",dock:"top",weight:100,defaultType:"gridcolumn",defaultWidth:100,sortAscText:"Sort Ascending",sortDescText:"Sort Descending",sortClearText:"Clear Sort",columnsText:"Columns",lastHeaderCls:Ext.baseCSSPrefix+"column-header-last",firstHeaderCls:Ext.baseCSSPrefix+"column-header-first",headerOpenCls:Ext.baseCSSPrefix+"column-header-open",triStateSort:false,ddLock:false,dragging:false,sortable:true,initComponent:function(){var me=this;me.headerCounter=0;me.plugins=me.plugins||[];if(!me.isHeader){me.resizer=Ext.create("Ext.grid.plugin.HeaderResizer");me.reorderer=Ext.create("Ext.grid.plugin.HeaderReorderer");if(!me.enableColumnResize){me.resizer.disable()}if(!me.enableColumnMove){me.reorderer.disable()}me.plugins.push(me.reorderer,me.resizer)}if(me.isHeader&&!me.items){me.layout="auto"}else{me.layout={type:"gridcolumn",availableSpaceOffset:me.availableSpaceOffset,align:"stretchmax",resetStretch:true}}me.defaults=me.defaults||{};Ext.applyIf(me.defaults,{width:me.defaultWidth,triStateSort:me.triStateSort,sortable:me.sortable});me.callParent();me.addEvents("columnresize","headerclick","headertriggerclick","columnmove","columnhide","columnshow","sortchange","menucreate")},onDestroy:function(){Ext.destroy(this.resizer,this.reorderer);this.callParent()},applyDefaults:function(config){if(config&&!config.isComponent&&config.xtype=="rownumberer"){return config}return this.callParent([config])},applyColumnsState:function(columns){if(!columns||!columns.length){return}var me=this,i=0,index,col;Ext.each(columns,function(columnState){col=me.down("gridcolumn[headerId="+columnState.id+"]");if(col){index=me.items.indexOf(col);if(i!==index){me.moveHeader(index,i)}if(col.applyColumnState){col.applyColumnState(columnState)}++i}})},getColumnsState:function(){var me=this,columns=[],state;me.items.each(function(col){state=col.getColumnState&&col.getColumnState();if(state){columns.push(state)}});return columns},onAdd:function(c){var me=this;if(!c.headerId){c.headerId=c.initialConfig.id||("h"+(++me.headerCounter))}me.callParent(arguments);me.purgeCache()},onRemove:function(c){var me=this;me.callParent(arguments);me.purgeCache()},afterRender:function(){this.callParent();var store=this.up("[store]").store,sorters=store.sorters,first=sorters.first(),hd;if(first){hd=this.down("gridcolumn[dataIndex="+first.property+"]");if(hd){hd.setSortState(first.direction,false,true)}}},afterLayout:function(){if(!this.isHeader){var me=this,topHeaders=me.query(">gridcolumn:not([hidden])"),viewEl,firstHeaderEl,lastHeaderEl;me.callParent(arguments);if(topHeaders.length){firstHeaderEl=topHeaders[0].el;if(firstHeaderEl!==me.pastFirstHeaderEl){if(me.pastFirstHeaderEl){me.pastFirstHeaderEl.removeCls(me.firstHeaderCls)}firstHeaderEl.addCls(me.firstHeaderCls);me.pastFirstHeaderEl=firstHeaderEl}lastHeaderEl=topHeaders[topHeaders.length-1].el;if(lastHeaderEl!==me.pastLastHeaderEl){if(me.pastLastHeaderEl){me.pastLastHeaderEl.removeCls(me.lastHeaderCls)}lastHeaderEl.addCls(me.lastHeaderCls);me.pastLastHeaderEl=lastHeaderEl}}}},onHeaderShow:function(header,preventLayout){var me=this,gridSection=me.ownerCt,menu=me.getMenu(),topItems,topItemsVisible,colCheckItem,itemToEnable,len,i;if(menu){colCheckItem=menu.down("menucheckitem[headerId="+header.id+"]");if(colCheckItem){colCheckItem.setChecked(true,true)}topItems=menu.query("#columnItem>menucheckitem[checked]");topItemsVisible=topItems.length;if((me.getVisibleGridColumns().length>1)&&me.disabledMenuItems&&me.disabledMenuItems.length){if(topItemsVisible==1){Ext.Array.remove(me.disabledMenuItems,topItems[0])}for(i=0,len=me.disabledMenuItems.length;i<len;i++){itemToEnable=me.disabledMenuItems[i];if(!itemToEnable.isDestroyed){itemToEnable[itemToEnable.menu?"enableCheckChange":"enable"]()}}if(topItemsVisible==1){me.disabledMenuItems=topItems}else{me.disabledMenuItems=[]}}}if(!header.isGroupHeader){if(me.view){me.view.onHeaderShow(me,header,true)}if(gridSection){gridSection.onHeaderShow(me,header)}}me.fireEvent("columnshow",me,header);if(preventLayout!==true){me.doLayout()}},doComponentLayout:function(){var me=this;if(me.view&&me.view.saveScrollState){me.view.saveScrollState()}me.callParent(arguments);if(me.view&&me.view.restoreScrollState){me.view.restoreScrollState()}},onHeaderHide:function(header,suppressLayout){var me=this,gridSection=me.ownerCt,menu=me.getMenu(),colCheckItem;if(menu){colCheckItem=menu.down("menucheckitem[headerId="+header.id+"]");if(colCheckItem){colCheckItem.setChecked(false,true)}me.setDisabledItems()}if(!header.isGroupHeader){if(me.view){me.view.onHeaderHide(me,header,true)}if(gridSection){gridSection.onHeaderHide(me,header)}if(!suppressLayout){me.doLayout()}}me.fireEvent("columnhide",me,header)},setDisabledItems:function(){var me=this,menu=me.getMenu(),i=0,len,itemsToDisable,itemToDisable;itemsToDisable=menu.query("#columnItem>menucheckitem[checked]");if((itemsToDisable.length===1)){if(!me.disabledMenuItems){me.disabledMenuItems=[]}if((me.getVisibleGridColumns().length===1)&&itemsToDisable[0].menu){itemsToDisable=itemsToDisable.concat(itemsToDisable[0].menu.query("menucheckitem[checked]"))}len=itemsToDisable.length;for(i=0;i<len;i++){itemToDisable=itemsToDisable[i];if(!Ext.Array.contains(me.disabledMenuItems,itemToDisable)){itemToDisable.disabled=false;itemToDisable[itemToDisable.menu?"disableCheckChange":"disable"]();me.disabledMenuItems.push(itemToDisable)}}}},tempLock:function(){this.ddLock=true;Ext.Function.defer(function(){this.ddLock=false},200,this)},onHeaderResize:function(header,w,suppressFocus){this.tempLock();if(this.view&&this.view.rendered){this.view.onHeaderResize(header,w,suppressFocus)}},onHeaderClick:function(header,e,t){this.fireEvent("headerclick",this,header,e,t)},onHeaderTriggerClick:function(header,e,t){if(this.fireEvent("headertriggerclick",this,header,e,t)!==false){this.showMenuBy(t,header)}},showMenuBy:function(t,header){var menu=this.getMenu(),ascItem=menu.down("#ascItem"),descItem=menu.down("#descItem"),sortableMth;menu.activeHeader=menu.ownerCt=header;menu.setFloatParent(header);header.titleContainer.addCls(this.headerOpenCls);sortableMth=header.sortable?"enable":"disable";if(ascItem){ascItem[sortableMth]()}if(descItem){descItem[sortableMth]()}menu.showBy(t)},onMenuDeactivate:function(){var menu=this.getMenu();menu.activeHeader.titleContainer.removeCls(this.headerOpenCls)},moveHeader:function(fromIdx,toIdx){this.tempLock();this.onHeaderMoved(this.move(fromIdx,toIdx),fromIdx,toIdx)},purgeCache:function(){var me=this;delete me.gridDataColumns;delete me.hideableColumns;if(me.menu){me.menu.destroy();delete me.menu}},onHeaderMoved:function(header,fromIdx,toIdx){var me=this,gridSection=me.ownerCt;if(gridSection&&gridSection.onHeaderMove){gridSection.onHeaderMove(me,header,fromIdx,toIdx)}me.fireEvent("columnmove",me,header,fromIdx,toIdx)},getMenu:function(){var me=this;if(!me.menu){me.menu=Ext.create("Ext.menu.Menu",{hideOnParentHide:false,items:me.getMenuItems(),listeners:{deactivate:me.onMenuDeactivate,scope:me}});me.setDisabledItems();me.fireEvent("menucreate",me,me.menu)}return me.menu},getMenuItems:function(){var me=this,menuItems=[],hideableColumns=me.enableColumnHide?me.getColumnMenu(me):null;if(me.sortable){menuItems=[{itemId:"ascItem",text:me.sortAscText,cls:Ext.baseCSSPrefix+"hmenu-sort-asc",handler:me.onSortAscClick,scope:me},{itemId:"descItem",text:me.sortDescText,cls:Ext.baseCSSPrefix+"hmenu-sort-desc",handler:me.onSortDescClick,scope:me}]}if(hideableColumns&&hideableColumns.length){menuItems.push("-",{itemId:"columnItem",text:me.columnsText,cls:Ext.baseCSSPrefix+"cols-icon",menu:hideableColumns})}return menuItems},onSortAscClick:function(){var menu=this.getMenu(),activeHeader=menu.activeHeader;activeHeader.setSortState("ASC")},onSortDescClick:function(){var menu=this.getMenu(),activeHeader=menu.activeHeader;activeHeader.setSortState("DESC")},getColumnMenu:function(headerContainer){var menuItems=[],i=0,item,items=headerContainer.query(">gridcolumn[hideable]"),itemsLn=items.length,menuItem;for(;i<itemsLn;i++){item=items[i];menuItem=Ext.create("Ext.menu.CheckItem",{text:item.text,checked:!item.hidden,hideOnClick:false,headerId:item.id,menu:item.isGroupHeader?this.getColumnMenu(item):undefined,checkHandler:this.onColumnCheckChange,scope:this});if(itemsLn===1){menuItem.disabled=true}menuItems.push(menuItem);item.on({destroy:Ext.Function.bind(menuItem.destroy,menuItem)})}return menuItems},onColumnCheckChange:function(checkItem,checked){var header=Ext.getCmp(checkItem.headerId);header[checked?"show":"hide"]()},getColumnsForTpl:function(flushCache){var cols=[],headers=this.getGridColumns(flushCache),headersLn=headers.length,i=0,header,width;for(;i<headersLn;i++){header=headers[i];if(header.hidden||header.up("headercontainer[hidden=true]")){width=0}else{width=header.getDesiredWidth();if((i===0)&&(Ext.isIE6||Ext.isIE7)){width+=1}}cols.push({dataIndex:header.dataIndex,align:header.align,width:width,id:header.id,cls:header.tdCls,columnId:header.getItemId()})}return cols},getColumnCount:function(){return this.getGridColumns().length},getFullWidth:function(flushCache){var fullWidth=0,headers=this.getVisibleGridColumns(flushCache),headersLn=headers.length,i=0;for(;i<headersLn;i++){if(!isNaN(headers[i].width)){if(headers[i].getDesiredWidth){fullWidth+=headers[i].getDesiredWidth()}else{fullWidth+=headers[i].getWidth()}}}return fullWidth},clearOtherSortStates:function(activeHeader){var headers=this.getGridColumns(),headersLn=headers.length,i=0,oldSortState;for(;i<headersLn;i++){if(headers[i]!==activeHeader){oldSortState=headers[i].sortState;headers[i].setSortState(null,true)}}},getVisibleGridColumns:function(refreshCache){return Ext.ComponentQuery.query(":not([hidden])",this.getGridColumns(refreshCache))},getGridColumns:function(refreshCache){var me=this,result=refreshCache?null:me.gridDataColumns;if(!result){me.gridDataColumns=result=[];me.cascade(function(c){if((c!==me)&&!c.isGroupHeader){result.push(c)}})}return result},getHideableColumns:function(refreshCache){var me=this,result=refreshCache?null:me.hideableColumns;if(!result){result=me.hideableColumns=me.query("[hideable]")}return result},getHeaderIndex:function(header){var columns=this.getGridColumns();return Ext.Array.indexOf(columns,header)},getHeaderAtIndex:function(index){var columns=this.getGridColumns();return columns[index]},prepareData:function(data,rowIdx,record,view,panel){var obj={},headers=this.gridDataColumns||this.getGridColumns(),headersLn=headers.length,colIdx=0,header,headerId,renderer,value,metaData,store=panel.store;for(;colIdx<headersLn;colIdx++){metaData={tdCls:"",style:""};header=headers[colIdx];headerId=header.id;renderer=header.renderer;value=data[header.dataIndex];if(typeof renderer==="string"){header.renderer=renderer=Ext.util.Format[renderer]}if(typeof renderer==="function"){value=renderer.call(header.scope||this.ownerCt,value,metaData,record,rowIdx,colIdx,store,view)}obj[headerId+"-modified"]=record.isModified(header.dataIndex)?Ext.baseCSSPrefix+"grid-dirty-cell":"";obj[headerId+"-tdCls"]=metaData.tdCls;obj[headerId+"-tdAttr"]=metaData.tdAttr;obj[headerId+"-style"]=metaData.style;if(value===undefined||value===null||value===""){value="&#160;"}obj[headerId]=value}return obj},expandToFit:function(header){if(this.view){this.view.expandToFit(header)}}});Ext.define("Ext.grid.column.Column",{extend:"Ext.grid.header.Container",alias:"widget.gridcolumn",requires:["Ext.util.KeyNav"],alternateClassName:"Ext.grid.Column",baseCls:Ext.baseCSSPrefix+"column-header "+Ext.baseCSSPrefix+"unselectable",hoverCls:Ext.baseCSSPrefix+"column-header-over",handleWidth:5,sortState:null,possibleSortStates:["ASC","DESC"],renderTpl:'<div id="{id}-titleContainer" class="'+Ext.baseCSSPrefix+'column-header-inner"><span id="{id}-textEl" class="'+Ext.baseCSSPrefix+'column-header-text">{text}</span><tpl if="!values.menuDisabled"><div id="{id}-triggerEl" class="'+Ext.baseCSSPrefix+'column-header-trigger"></div></tpl></div>',dataIndex:null,text:"&#160;",sortable:true,hideable:true,menuDisabled:false,renderer:false,align:"left",draggable:true,initDraggable:Ext.emptyFn,isHeader:true,initComponent:function(){var me=this,i,len,item;if(Ext.isDefined(me.header)){me.text=me.header;delete me.header}if(me.flex){me.minWidth=me.minWidth||Ext.grid.plugin.HeaderResizer.prototype.minColWidth}else{me.minWidth=me.width}if(!me.triStateSort){me.possibleSortStates.length=2}if(Ext.isDefined(me.columns)){me.isGroupHeader=true;me.items=me.columns;delete me.columns;delete me.flex;me.width=0;for(i=0,len=me.items.length;i<len;i++){item=me.items[i];if(!item.hidden){me.width+=item.width||Ext.grid.header.Container.prototype.defaultWidth}}me.minWidth=me.width;me.cls=(me.cls||"")+" "+Ext.baseCSSPrefix+"group-header";me.sortable=false;me.resizable=false;me.align="center"}me.addChildEls("titleContainer","triggerEl","textEl");me.callParent(arguments)},onAdd:function(childHeader){childHeader.isSubHeader=true;childHeader.addCls(Ext.baseCSSPrefix+"group-sub-header");this.callParent(arguments)},onRemove:function(childHeader){childHeader.isSubHeader=false;childHeader.removeCls(Ext.baseCSSPrefix+"group-sub-header");this.callParent(arguments)},initRenderData:function(){var me=this;Ext.applyIf(me.renderData,{text:me.text,menuDisabled:me.menuDisabled});return me.callParent(arguments)},applyColumnState:function(state){var me=this,defined=Ext.isDefined;me.applyColumnsState(state.columns);if(defined(state.hidden)){me.hidden=state.hidden}if(defined(state.locked)){me.locked=state.locked}if(defined(state.sortable)){me.sortable=state.sortable}if(defined(state.width)){delete me.flex;me.width=state.width}else{if(defined(state.flex)){delete me.width;me.flex=state.flex}}},getColumnState:function(){var me=this,columns=[],state={id:me.headerId};me.savePropsToState(["hidden","sortable","locked","flex","width"],state);if(me.isGroupHeader){me.items.each(function(column){columns.push(column.getColumnState())});if(columns.length){state.columns=columns}}else{if(me.isSubHeader&&me.ownerCt.hidden){delete me.hidden}}if("width" in state){delete state.flex}return state},setText:function(text){this.text=text;if(this.rendered){this.textEl.update(text)}},getOwnerHeaderCt:function(){return this.up(":not([isHeader])")},getIndex:function(){return this.isGroupColumn?false:this.getOwnerHeaderCt().getHeaderIndex(this)},onRender:function(){var me=this,grid=me.up("tablepanel");if(grid&&(!me.sortable||grid.sortableColumns===false)&&!me.groupable&&!me.lockable&&(grid.enableColumnHide===false||!me.getOwnerHeaderCt().getHideableColumns().length)){me.menuDisabled=true}me.callParent(arguments)},afterRender:function(){var me=this,el=me.el;me.callParent(arguments);el.addCls(Ext.baseCSSPrefix+"column-header-align-"+me.align).addClsOnOver(me.overCls);me.mon(el,{click:me.onElClick,dblclick:me.onElDblClick,scope:me});if(!Ext.isIE8||!Ext.isStrict){me.mon(me.getFocusEl(),{focus:me.onTitleMouseOver,blur:me.onTitleMouseOut,scope:me})}me.mon(me.titleContainer,{mouseenter:me.onTitleMouseOver,mouseleave:me.onTitleMouseOut,scope:me});me.keyNav=Ext.create("Ext.util.KeyNav",el,{enter:me.onEnterKey,down:me.onDownKey,scope:me})},setWidth:function(width,doLayout){var me=this,headerCt=me.ownerCt,siblings,len,i,oldWidth=me.getWidth(),groupWidth=0,sibling;if(width!==oldWidth){me.oldWidth=oldWidth;me.minWidth=me.width=width;if(headerCt.isGroupHeader){siblings=headerCt.items.items;len=siblings.length;for(i=0;i<len;i++){sibling=siblings[i];if(!sibling.hidden){groupWidth+=(sibling===me)?width:sibling.getWidth()}}headerCt.setWidth(groupWidth,doLayout)}else{if(doLayout!==false){headerCt.doLayout()}}}},afterComponentLayout:function(width,height){var me=this,ownerHeaderCt=this.getOwnerHeaderCt();me.callParent(arguments);if(width&&!me.isGroupHeader&&ownerHeaderCt){ownerHeaderCt.onHeaderResize(me,width,true)}if(me.oldWidth&&(width!==me.oldWidth)){ownerHeaderCt.fireEvent("columnresize",ownerHeaderCt,this,width)}delete me.oldWidth},setPadding:function(headerHeight){var me=this,lineHeight=Ext.util.TextMetrics.measure(me.textEl.dom,me.text).height;if(!me.isGroupHeader){if(me.titleContainer.getHeight()<headerHeight){me.titleContainer.dom.style.height=headerHeight+"px"}}headerHeight=me.titleContainer.getViewSize().height;if(lineHeight){me.titleContainer.setStyle({paddingTop:Math.max(((headerHeight-lineHeight)/2),0)+"px"})}if(Ext.isIE&&me.triggerEl){me.triggerEl.setHeight(headerHeight)}},onDestroy:function(){var me=this;Ext.destroy(me.textEl,me.keyNav);delete me.keyNav;me.callParent(arguments)},onTitleMouseOver:function(){this.titleContainer.addCls(this.hoverCls)},onTitleMouseOut:function(){this.titleContainer.removeCls(this.hoverCls)},onDownKey:function(e){if(this.triggerEl){this.onElClick(e,this.triggerEl.dom||this.el.dom)}},onEnterKey:function(e){this.onElClick(e,this.el.dom)},onElDblClick:function(e,t){var me=this,ownerCt=me.ownerCt;if(ownerCt&&Ext.Array.indexOf(ownerCt.items,me)!==0&&me.isOnLeftEdge(e)){ownerCt.expandToFit(me.previousSibling("gridcolumn"))}},onElClick:function(e,t){var me=this,ownerHeaderCt=me.getOwnerHeaderCt();if(ownerHeaderCt&&!ownerHeaderCt.ddLock){if(me.triggerEl&&(e.target===me.triggerEl.dom||t===me.triggerEl.dom||e.within(me.triggerEl))){ownerHeaderCt.onHeaderTriggerClick(me,e,t)}else{if(e.getKey()||(!me.isOnLeftEdge(e)&&!me.isOnRightEdge(e))){me.toggleSortState();ownerHeaderCt.onHeaderClick(me,e,t)}}}},processEvent:function(type,view,cell,recordIndex,cellIndex,e){return this.fireEvent.apply(this,arguments)},toggleSortState:function(){var me=this,idx,nextIdx;if(me.sortable){idx=Ext.Array.indexOf(me.possibleSortStates,me.sortState);nextIdx=(idx+1)%me.possibleSortStates.length;me.setSortState(me.possibleSortStates[nextIdx])}},doSort:function(state){var ds=this.up("tablepanel").store;ds.sort({property:this.getSortParam(),direction:state})},getSortParam:function(){return this.dataIndex},setSortState:function(state,skipClear,initial){var me=this,colSortClsPrefix=Ext.baseCSSPrefix+"column-header-sort-",ascCls=colSortClsPrefix+"ASC",descCls=colSortClsPrefix+"DESC",nullCls=colSortClsPrefix+"null",ownerHeaderCt=me.getOwnerHeaderCt(),oldSortState=me.sortState;if(oldSortState!==state&&me.getSortParam()){me.addCls(colSortClsPrefix+state);if(state&&!initial){me.doSort(state)}switch(state){case"DESC":me.removeCls([ascCls,nullCls]);break;case"ASC":me.removeCls([descCls,nullCls]);break;case null:me.removeCls([ascCls,descCls]);break}if(ownerHeaderCt&&!me.triStateSort&&!skipClear){ownerHeaderCt.clearOtherSortStates(me)}me.sortState=state;ownerHeaderCt.fireEvent("sortchange",ownerHeaderCt,me,state)}},hide:function(){var me=this,items,len,i,lb,newWidth=0,ownerHeaderCt=me.getOwnerHeaderCt();me.oldWidth=me.getWidth();if(me.isGroupHeader){items=me.items.items;me.callParent(arguments);ownerHeaderCt.onHeaderHide(me);for(i=0,len=items.length;i<len;i++){items[i].hidden=true;ownerHeaderCt.onHeaderHide(items[i],true)}return}lb=me.ownerCt.componentLayout.layoutBusy;me.ownerCt.componentLayout.layoutBusy=true;me.callParent(arguments);me.ownerCt.componentLayout.layoutBusy=lb;ownerHeaderCt.onHeaderHide(me);if(me.ownerCt.isGroupHeader){items=me.ownerCt.query(">:not([hidden])");if(!items.length){me.ownerCt.hide()}else{for(i=0,len=items.length;i<len;i++){newWidth+=items[i].getWidth()}me.ownerCt.minWidth=newWidth;me.ownerCt.setWidth(newWidth)}}},show:function(){var me=this,ownerCt=me.ownerCt,ownerCtCompLayout=ownerCt.componentLayout,ownerCtCompLayoutBusy=ownerCtCompLayout.layoutBusy,ownerCtLayout=ownerCt.layout,ownerCtLayoutBusy=ownerCtLayout.layoutBusy,items,len,i,item,newWidth=0;ownerCtCompLayout.layoutBusy=ownerCtLayout.layoutBusy=true;me.callParent(arguments);ownerCtCompLayout.layoutBusy=ownerCtCompLayoutBusy;ownerCtLayout.layoutBusy=ownerCtLayoutBusy;if(me.isSubHeader){if(!ownerCt.isVisible()){ownerCt.show()}}if(me.isGroupHeader&&!me.query(":not([hidden])").length){items=me.query(">*");for(i=0,len=items.length;i<len;i++){item=items[i];item.preventLayout=true;item.show();newWidth+=item.getWidth();delete item.preventLayout}me.setWidth(newWidth)}if(ownerCt.isGroupHeader&&me.preventLayout!==true){items=ownerCt.query(">:not([hidden])");for(i=0,len=items.length;i<len;i++){newWidth+=items[i].getWidth()}ownerCt.minWidth=newWidth;ownerCt.setWidth(newWidth)}ownerCt=me.getOwnerHeaderCt();if(ownerCt){ownerCt.onHeaderShow(me,me.preventLayout)}},getDesiredWidth:function(){var me=this;if(me.rendered&&me.componentLayout&&me.componentLayout.lastComponentSize){return me.componentLayout.lastComponentSize.width}else{if(me.flex){return me.width}else{return me.width}}},getCellSelector:function(){return"."+Ext.baseCSSPrefix+"grid-cell-"+this.getItemId()},getCellInnerSelector:function(){return this.getCellSelector()+" ."+Ext.baseCSSPrefix+"grid-cell-inner"},isOnLeftEdge:function(e){return(e.getXY()[0]-this.el.getLeft()<=this.handleWidth)},isOnRightEdge:function(e){return(this.el.getRight()-e.getXY()[0]<=this.handleWidth)}});Ext.define("Ext.grid.RowNumberer",{extend:"Ext.grid.column.Column",alias:"widget.rownumberer",text:"&#160",width:23,sortable:false,align:"right",constructor:function(config){this.callParent(arguments);if(this.rowspan){this.renderer=Ext.Function.bind(this.renderer,this)}},resizable:false,hideable:false,menuDisabled:true,dataIndex:"",cls:Ext.baseCSSPrefix+"row-numberer",rowspan:undefined,renderer:function(value,metaData,record,rowIdx,colIdx,store){if(this.rowspan){metaData.cellAttr='rowspan="'+this.rowspan+'"'}metaData.tdCls=Ext.baseCSSPrefix+"grid-cell-special";return store.indexOfTotal(record)+1}});Ext.define("Ext.view.DropZone",{extend:"Ext.dd.DropZone",indicatorHtml:'<div class="x-grid-drop-indicator-left"></div><div class="x-grid-drop-indicator-right"></div>',indicatorCls:"x-grid-drop-indicator",constructor:function(config){var me=this;Ext.apply(me,config);if(!me.ddGroup){me.ddGroup="view-dd-zone-"+me.view.id}me.callParent([me.view.el])},fireViewEvent:function(){var me=this,result;me.lock();result=me.view.fireEvent.apply(me.view,arguments);me.unlock();return result},getTargetFromEvent:function(e){var node=e.getTarget(this.view.getItemSelector()),mouseY,nodeList,testNode,i,len,box;if(!node){mouseY=e.getPageY();for(i=0,nodeList=this.view.getNodes(),len=nodeList.length;i<len;i++){testNode=nodeList[i];box=Ext.fly(testNode).getBox();if(mouseY<=box.bottom){return testNode}}}return node},getIndicator:function(){var me=this;if(!me.indicator){me.indicator=Ext.createWidget("component",{html:me.indicatorHtml,cls:me.indicatorCls,ownerCt:me.view,floating:true,shadow:false})}return me.indicator},getPosition:function(e,node){var y=e.getXY()[1],region=Ext.fly(node).getRegion(),pos;if((region.bottom-y)>=(region.bottom-region.top)/2){pos="before"}else{pos="after"}return pos},containsRecordAtOffset:function(records,record,offset){if(!record){return false}var view=this.view,recordIndex=view.indexOf(record),nodeBefore=view.getNode(recordIndex+offset),recordBefore=nodeBefore?view.getRecord(nodeBefore):null;return recordBefore&&Ext.Array.contains(records,recordBefore)},positionIndicator:function(node,data,e){var me=this,view=me.view,pos=me.getPosition(e,node),overRecord=view.getRecord(node),draggingRecords=data.records,indicator,indicatorY;if(!Ext.Array.contains(draggingRecords,overRecord)&&(pos=="before"&&!me.containsRecordAtOffset(draggingRecords,overRecord,-1)||pos=="after"&&!me.containsRecordAtOffset(draggingRecords,overRecord,1))){me.valid=true;if(me.overRecord!=overRecord||me.currentPosition!=pos){indicatorY=Ext.fly(node).getY()-view.el.getY()-1;if(pos=="after"){indicatorY+=Ext.fly(node).getHeight()}me.getIndicator().setWidth(Ext.fly(view.el).getWidth()).showAt(0,indicatorY);me.overRecord=overRecord;me.currentPosition=pos}}else{me.invalidateDrop()}},invalidateDrop:function(){if(this.valid){this.valid=false;this.getIndicator().hide()}},onNodeOver:function(node,dragZone,e,data){var me=this;if(!Ext.Array.contains(data.records,me.view.getRecord(node))){me.positionIndicator(node,data,e)}return me.valid?me.dropAllowed:me.dropNotAllowed},notifyOut:function(node,dragZone,e,data){var me=this;me.callParent(arguments);delete me.overRecord;delete me.currentPosition;if(me.indicator){me.indicator.hide()}},onContainerOver:function(dd,e,data){var me=this,view=me.view,count=view.store.getCount();if(count){me.positionIndicator(view.getNode(count-1),data,e)}else{delete me.overRecord;delete me.currentPosition;me.getIndicator().setWidth(Ext.fly(view.el).getWidth()).showAt(0,0);me.valid=true}return me.dropAllowed},onContainerDrop:function(dd,e,data){return this.onNodeDrop(dd,null,e,data)},onNodeDrop:function(node,dragZone,e,data){var me=this,dropped=false,processDrop=function(){me.invalidateDrop();me.handleNodeDrop(data,me.overRecord,me.currentPosition);dropped=true;me.fireViewEvent("drop",node,data,me.overRecord,me.currentPosition)},performOperation=false;if(me.valid){performOperation=me.fireViewEvent("beforedrop",node,data,me.overRecord,me.currentPosition,processDrop);if(performOperation!==false){if(!dropped){processDrop()}}}return performOperation},destroy:function(){Ext.destroy(this.indicator);delete this.indicator;this.callParent()}});Ext.define("Ext.grid.ViewDropZone",{extend:"Ext.view.DropZone",indicatorHtml:'<div class="x-grid-drop-indicator-left"></div><div class="x-grid-drop-indicator-right"></div>',indicatorCls:"x-grid-drop-indicator",handleNodeDrop:function(data,record,position){var view=this.view,store=view.getStore(),index,records,i,len;if(data.copy){records=data.records;data.records=[];for(i=0,len=records.length;i<len;i++){data.records.push(records[i].copy(records[i].getId()))}}else{data.view.store.remove(data.records,data.view===view)}index=store.indexOf(record);if(position!=="before"){index++}store.insert(index,data.records);view.getSelectionModel().select(data.records)}});Ext.define("Ext.grid.column.Action",{extend:"Ext.grid.column.Column",alias:["widget.actioncolumn"],alternateClassName:"Ext.grid.ActionColumn",header:"&#160;",actionIdRe:new RegExp(Ext.baseCSSPrefix+"action-col-(\\d+)"),altText:"",sortable:false,constructor:function(config){var me=this,cfg=Ext.apply({},config),items=cfg.items||[me],l=items.length,i,item;delete cfg.items;me.callParent([cfg]);me.items=items;me.renderer=function(v,meta){v=Ext.isFunction(cfg.renderer)?cfg.renderer.apply(this,arguments)||"":"";meta.tdCls+=" "+Ext.baseCSSPrefix+"action-col-cell";for(i=0;i<l;i++){item=items[i];item.disable=Ext.Function.bind(me.disableAction,me,[i]);item.enable=Ext.Function.bind(me.enableAction,me,[i]);v+='<img alt="'+(item.altText||me.altText)+'" src="'+(item.icon||Ext.BLANK_IMAGE_URL)+'" class="'+Ext.baseCSSPrefix+"action-col-icon "+Ext.baseCSSPrefix+"action-col-"+String(i)+" "+(item.disabled?Ext.baseCSSPrefix+"item-disabled":" ")+(item.iconCls||"")+" "+(Ext.isFunction(item.getClass)?item.getClass.apply(item.scope||me.scope||me,arguments):(me.iconCls||""))+'"'+((item.tooltip)?' data-qtip="'+item.tooltip+'"':"")+" />"}return v}},enableAction:function(index){var me=this;if(!index){index=0}else{if(!Ext.isNumber(index)){index=Ext.Array.indexOf(me.items,index)}}me.items[index].disabled=false;me.up("tablepanel").el.select("."+Ext.baseCSSPrefix+"action-col-"+index).removeCls(me.disabledCls)},disableAction:function(index){var me=this;if(!index){index=0}else{if(!Ext.isNumber(index)){index=Ext.Array.indexOf(me.items,index)}}me.items[index].disabled=true;me.up("tablepanel").el.select("."+Ext.baseCSSPrefix+"action-col-"+index).addCls(me.disabledCls)},destroy:function(){delete this.items;delete this.renderer;return this.callParent(arguments)},processEvent:function(type,view,cell,recordIndex,cellIndex,e){var me=this,match=e.getTarget().className.match(me.actionIdRe),item,fn;if(match){item=me.items[parseInt(match[1],10)];if(item){if(type=="click"){fn=item.handler||me.handler;if(fn&&!item.disabled){fn.call(item.scope||me.scope||me,view,recordIndex,cellIndex,item,e)}}else{if(type=="mousedown"&&item.stopSelection!==false){return false}}}}return me.callParent(arguments)},cascade:function(fn,scope){fn.call(scope||this,this)},getRefItems:function(){return[]}});Ext.define("Ext.grid.column.Boolean",{extend:"Ext.grid.column.Column",alias:["widget.booleancolumn"],alternateClassName:"Ext.grid.BooleanColumn",trueText:"true",falseText:"false",undefinedText:"&#160;",constructor:function(cfg){this.callParent(arguments);var trueText=this.trueText,falseText=this.falseText,undefinedText=this.undefinedText;this.renderer=function(value){if(value===undefined){return undefinedText}if(!value||value==="false"){return falseText}return trueText}}});Ext.define("Ext.grid.column.Date",{extend:"Ext.grid.column.Column",alias:["widget.datecolumn"],requires:["Ext.Date"],alternateClassName:"Ext.grid.DateColumn",initComponent:function(){var me=this;me.callParent(arguments);if(!me.format){me.format=Ext.Date.defaultFormat}me.renderer=Ext.util.Format.dateRenderer(me.format)}});Ext.define("Ext.grid.column.Number",{extend:"Ext.grid.column.Column",alias:["widget.numbercolumn"],requires:["Ext.util.Format"],alternateClassName:"Ext.grid.NumberColumn",format:"0,000.00",constructor:function(cfg){this.callParent(arguments);this.renderer=Ext.util.Format.numberRenderer(this.format)}});Ext.define("Ext.grid.column.Template",{extend:"Ext.grid.column.Column",alias:["widget.templatecolumn"],requires:["Ext.XTemplate"],alternateClassName:"Ext.grid.TemplateColumn",constructor:function(cfg){var me=this,tpl;me.callParent(arguments);tpl=me.tpl=(!Ext.isPrimitive(me.tpl)&&me.tpl.compile)?me.tpl:Ext.create("Ext.XTemplate",me.tpl);me.renderer=function(value,p,record){var data=Ext.apply({},record.data,record.getAssociatedData());return tpl.apply(data)}}});Ext.define("Ext.grid.feature.Feature",{extend:"Ext.util.Observable",alias:"feature.feature",isFeature:true,disabled:false,hasFeatureEvent:true,eventPrefix:null,eventSelector:null,view:null,grid:null,collectData:false,getFeatureTpl:function(){return""},getFireEventArgs:function(eventName,view,featureTarget,e){return[eventName,view,featureTarget,e]},attachEvents:function(){},getFragmentTpl:function(){return},mutateMetaRowTpl:function(metaRowTplArray){},getMetaRowTplFragments:function(){return{}},getTableFragments:function(){return{}},getAdditionalData:function(data,idx,record,orig){return{}},enable:function(){this.disabled=false},disable:function(){this.disabled=true}});Ext.define("Ext.grid.feature.AbstractSummary",{extend:"Ext.grid.feature.Feature",alias:"feature.abstractsummary",showSummaryRow:true,nestedIdRe:/\{\{id\}([\w\-]*)\}/g,toggleSummaryRow:function(visible){this.showSummaryRow=!!visible},getSummaryFragments:function(){var fragments={};if(this.showSummaryRow){Ext.apply(fragments,{printSummaryRow:Ext.bind(this.printSummaryRow,this)})}return fragments},printSummaryRow:function(index){var inner=this.view.getTableChunker().metaRowTpl.join(""),prefix=Ext.baseCSSPrefix;inner=inner.replace(prefix+"grid-row",prefix+"grid-row-summary");inner=inner.replace("{{id}}","{gridSummaryValue}");inner=inner.replace(this.nestedIdRe,"{id$1}");inner=inner.replace("{[this.embedRowCls()]}","{rowCls}");inner=inner.replace("{[this.embedRowAttr()]}","{rowAttr}");inner=Ext.create("Ext.XTemplate",inner,{firstOrLastCls:Ext.view.TableChunker.firstOrLastCls});return inner.applyTemplate({columns:this.getPrintData(index)})},getColumnValue:function(column,summaryData){var comp=Ext.getCmp(column.id),value=summaryData[column.id],renderer=comp.summaryRenderer;if(renderer){value=renderer.call(comp.scope||this,value,summaryData,column.dataIndex)}return value},getSummary:function(store,type,field,group){if(type){if(Ext.isFunction(type)){return store.aggregate(type,null,group)}switch(type){case"count":return store.count(group);case"min":return store.min(field,group);case"max":return store.max(field,group);case"sum":return store.sum(field,group);case"average":return store.average(field,group);default:return group?{}:""}}}});Ext.define("Ext.grid.feature.Chunking",{extend:"Ext.grid.feature.Feature",alias:"feature.chunking",chunkSize:20,rowHeight:Ext.isIE?27:26,visibleChunk:0,hasFeatureEvent:false,attachEvents:function(){var grid=this.view.up("gridpanel"),scroller=grid.down("gridscroller[dock=right]");scroller.el.on("scroll",this.onBodyScroll,this,{buffer:300})},onBodyScroll:function(e,t){var view=this.view,top=t.scrollTop,nextChunk=Math.floor(top/this.rowHeight/this.chunkSize);if(nextChunk!==this.visibleChunk){this.visibleChunk=nextChunk;view.refresh();view.el.dom.scrollTop=top;view.el.dom.scrollTop=top}},collectData:function(records,preppedRecords,startIndex,fullWidth,orig){var o={fullWidth:orig.fullWidth,chunks:[]},recordCount=orig.rows.length,start=0,i=0,visibleChunk=this.visibleChunk,chunk,rows,chunkLength;for(;start<recordCount;start+=this.chunkSize,i++){if(start+this.chunkSize>recordCount){chunkLength=recordCount-start}else{chunkLength=this.chunkSize}if(i>=visibleChunk-1&&i<=visibleChunk+1){rows=orig.rows.slice(start,start+this.chunkSize)}else{rows=[]}o.chunks.push({rows:rows,fullWidth:fullWidth,chunkHeight:chunkLength*this.rowHeight})}return o},getTableFragments:function(){return{openTableWrap:function(){return'<tpl for="chunks"><div class="'+Ext.baseCSSPrefix+'grid-chunk" style="height: {chunkHeight}px;">'},closeTableWrap:function(){return"</div></tpl>"}}}});Ext.define("Ext.grid.feature.Grouping",{extend:"Ext.grid.feature.Feature",alias:"feature.grouping",eventPrefix:"group",eventSelector:"."+Ext.baseCSSPrefix+"grid-group-hd",constructor:function(){var me=this;me.collapsedState={};me.callParent(arguments)},groupHeaderTpl:"Group: {name}",depthToIndent:17,collapsedCls:Ext.baseCSSPrefix+"grid-group-collapsed",hdCollapsedCls:Ext.baseCSSPrefix+"grid-group-hd-collapsed",groupByText:"Group By This Field",showGroupsText:"Show in Groups",hideGroupedHeader:false,startCollapsed:false,enableGroupingMenu:true,enableNoGroups:true,enable:function(){var me=this,view=me.view,store=view.store,groupToggleMenuItem;me.lastGroupField=me.getGroupField();if(me.lastGroupIndex){store.group(me.lastGroupIndex)}me.callParent();groupToggleMenuItem=me.view.headerCt.getMenu().down("#groupToggleMenuItem");groupToggleMenuItem.setChecked(true,true);me.refreshIf()},disable:function(){var me=this,view=me.view,store=view.store,remote=store.remoteGroup,groupToggleMenuItem,lastGroup;lastGroup=store.groupers.first();if(lastGroup){me.lastGroupIndex=lastGroup.property;me.block();store.clearGrouping();me.unblock()}me.callParent();groupToggleMenuItem=me.view.headerCt.getMenu().down("#groupToggleMenuItem");groupToggleMenuItem.setChecked(true,true);groupToggleMenuItem.setChecked(false,true);if(!remote){view.refresh()}},refreshIf:function(){if(this.blockRefresh!==true){this.view.refresh()}},getFeatureTpl:function(values,parent,x,xcount){var me=this;return["<tpl if=\"typeof rows !== 'undefined'\">",'<tr class="'+Ext.baseCSSPrefix+"grid-group-hd "+(me.startCollapsed?me.hdCollapsedCls:"")+' {hdCollapsedCls}"><td class="'+Ext.baseCSSPrefix+'grid-cell" colspan="'+parent.columns.length+'" {[this.indentByDepth(values)]}><div class="'+Ext.baseCSSPrefix+'grid-cell-inner"><div class="'+Ext.baseCSSPrefix+'grid-group-title">{collapsed}'+me.groupHeaderTpl+"</div></div></td></tr>",'<tr id="{viewId}-gp-{name}" class="'+Ext.baseCSSPrefix+"grid-group-body "+(me.startCollapsed?me.collapsedCls:"")+' {collapsedCls}"><td colspan="'+parent.columns.length+'">{[this.recurse(values)]}</td></tr>',"</tpl>"].join("")},getFragmentTpl:function(){return{indentByDepth:this.indentByDepth,depthToIndent:this.depthToIndent}},indentByDepth:function(values){var depth=values.depth||0;return'style="padding-left:'+depth*this.depthToIndent+'px;"'},destroy:function(){var me=this;delete me.view;delete me.prunedHeader},attachEvents:function(){var me=this,view=me.view;view.on({scope:me,groupclick:me.onGroupClick,rowfocus:me.onRowFocus});view.store.on("groupchange",me.onGroupChange,me);me.pruneGroupedHeader();if(me.enableGroupingMenu){me.injectGroupingMenu()}me.lastGroupField=me.getGroupField();me.block();me.onGroupChange();me.unblock()},injectGroupingMenu:function(){var me=this,view=me.view,headerCt=view.headerCt;headerCt.showMenuBy=me.showMenuBy;headerCt.getMenuItems=me.getMenuItems()},showMenuBy:function(t,header){var menu=this.getMenu(),groupMenuItem=menu.down("#groupMenuItem"),groupableMth=header.groupable===false?"disable":"enable";groupMenuItem[groupableMth]();Ext.grid.header.Container.prototype.showMenuBy.apply(this,arguments)},getMenuItems:function(){var me=this,groupByText=me.groupByText,disabled=me.disabled,showGroupsText=me.showGroupsText,enableNoGroups=me.enableNoGroups,groupMenuItemClick=Ext.Function.bind(me.onGroupMenuItemClick,me),groupToggleMenuItemClick=Ext.Function.bind(me.onGroupToggleMenuItemClick,me);return function(){var o=Ext.grid.header.Container.prototype.getMenuItems.call(this);o.push("-",{iconCls:Ext.baseCSSPrefix+"group-by-icon",itemId:"groupMenuItem",text:groupByText,handler:groupMenuItemClick});if(enableNoGroups){o.push({itemId:"groupToggleMenuItem",text:showGroupsText,checked:!disabled,checkHandler:groupToggleMenuItemClick})}return o}},onGroupMenuItemClick:function(menuItem,e){var me=this,menu=menuItem.parentMenu,hdr=menu.activeHeader,view=me.view,store=view.store,remote=store.remoteGroup;delete me.lastGroupIndex;me.block();me.enable();store.group(hdr.dataIndex);me.pruneGroupedHeader();me.unblock();if(!remote){view.refresh()}},block:function(){this.blockRefresh=this.view.blockRefresh=true},unblock:function(){this.blockRefresh=this.view.blockRefresh=false},onGroupToggleMenuItemClick:function(menuItem,checked){this[checked?"enable":"disable"]()},pruneGroupedHeader:function(){var me=this,view=me.view,store=view.store,groupField=me.getGroupField(),headerCt=view.headerCt,header=headerCt.down("header[dataIndex="+groupField+"]");if(header){if(me.prunedHeader){me.prunedHeader.show()}me.prunedHeader=header;header.hide()}},getGroupField:function(){var group=this.view.store.groupers.first();if(group){return group.property}return""},onRowFocus:function(rowIdx){var node=this.view.getNode(rowIdx),groupBd=Ext.fly(node).up("."+this.collapsedCls);if(groupBd){this.expand(groupBd)}},expand:function(groupBd){var me=this,view=me.view,grid=view.up("gridpanel"),groupBdDom=Ext.getDom(groupBd);me.collapsedState[groupBdDom.id]=false;groupBd.removeCls(me.collapsedCls);groupBd.prev().removeCls(me.hdCollapsedCls);grid.determineScrollbars();grid.invalidateScroller();view.fireEvent("groupexpand")},collapse:function(groupBd){var me=this,view=me.view,grid=view.up("gridpanel"),groupBdDom=Ext.getDom(groupBd);me.collapsedState[groupBdDom.id]=true;groupBd.addCls(me.collapsedCls);groupBd.prev().addCls(me.hdCollapsedCls);grid.determineScrollbars();grid.invalidateScroller();view.fireEvent("groupcollapse")},onGroupChange:function(){var me=this,field=me.getGroupField(),menuItem;if(me.hideGroupedHeader){if(me.lastGroupField){menuItem=me.getMenuItem(me.lastGroupField);if(menuItem){menuItem.setChecked(true)}}if(field){menuItem=me.getMenuItem(field);if(menuItem){menuItem.setChecked(false)}}}if(me.blockRefresh!==true){me.view.refresh()}me.lastGroupField=field},getMenuItem:function(dataIndex){var view=this.view,header=view.headerCt.down("gridcolumn[dataIndex="+dataIndex+"]"),menu=view.headerCt.getMenu();return menu.down("menuitem[headerId="+header.id+"]")},onGroupClick:function(view,group,idx,foo,e){var me=this,toggleCls=me.toggleCls,groupBd=Ext.fly(group.nextSibling,"_grouping");if(groupBd.hasCls(me.collapsedCls)){me.expand(groupBd)}else{me.collapse(groupBd)}},getMetaRowTplFragments:function(){return{isRow:this.isRow,closeRow:this.closeRow}},isRow:function(){return"<tpl if=\"typeof rows === 'undefined'\">"},closeRow:function(){return"</tpl>"},mutateMetaRowTpl:function(metaRowTpl){metaRowTpl.unshift("{[this.isRow()]}");metaRowTpl.push("{[this.closeRow()]}")},getAdditionalData:function(data,idx,record,orig){var view=this.view,hCt=view.headerCt,col=hCt.items.getAt(0),o={},tdAttrKey=col.id+"-tdAttr";o[tdAttrKey]=this.indentByDepth(data)+" "+(orig[tdAttrKey]?orig[tdAttrKey]:"");o.collapsed="true";return o},getGroupRows:function(group,records,preppedRecords,fullWidth){var me=this,children=group.children,rows=group.rows=[],view=me.view;group.viewId=view.id;Ext.Array.each(records,function(record,idx){if(Ext.Array.indexOf(children,record)!=-1){rows.push(Ext.apply(preppedRecords[idx],{depth:1}))}});delete group.children;group.fullWidth=fullWidth;if(me.collapsedState[view.id+"-gp-"+group.name]){group.collapsedCls=me.collapsedCls;group.hdCollapsedCls=me.hdCollapsedCls}return group},collectData:function(records,preppedRecords,startIndex,fullWidth,o){var me=this,store=me.view.store,groups;if(!me.disabled&&store.isGrouped()){groups=store.getGroups();Ext.Array.each(groups,function(group,idx){me.getGroupRows(group,records,preppedRecords,fullWidth)},me);return{rows:groups,fullWidth:fullWidth}}return o},getFireEventArgs:function(type,view,featureTarget,e){var returnArray=[type,view,featureTarget],groupBd=Ext.fly(featureTarget.nextSibling,"_grouping"),groupBdId=Ext.getDom(groupBd).id,prefix=view.id+"-gp-",groupName=groupBdId.substr(prefix.length);returnArray.push(groupName,e);return returnArray}});Ext.define("Ext.grid.feature.GroupingSummary",{extend:"Ext.grid.feature.Grouping",alias:"feature.groupingsummary",mixins:{summary:"Ext.grid.feature.AbstractSummary"},getFeatureTpl:function(){var tpl=this.callParent(arguments);if(this.showSummaryRow){tpl=tpl.replace("</tpl>","");tpl+="{[this.printSummaryRow(xindex)]}</tpl>"}return tpl},getFragmentTpl:function(){var me=this,fragments=me.callParent();Ext.apply(fragments,me.getSummaryFragments());if(me.showSummaryRow){me.summaryGroups=me.view.store.getGroups();me.summaryData=me.generateSummaryData()}return fragments},getPrintData:function(index){var me=this,columns=me.view.headerCt.getColumnsForTpl(),i=0,length=columns.length,data=[],name=me.summaryGroups[index-1].name,active=me.summaryData[name],column;for(;i<length;++i){column=columns[i];column.gridSummaryValue=this.getColumnValue(column,active);data.push(column)}return data},generateSummaryData:function(){var me=this,data={},remoteData={},store=me.view.store,groupField=this.getGroupField(),reader=store.proxy.reader,groups=me.summaryGroups,columns=me.view.headerCt.getColumnsForTpl(),remote,i,length,fieldData,root,key,comp;for(i=0,length=groups.length;i<length;++i){data[groups[i].name]={}}if(me.remoteRoot&&reader.rawData){root=reader.root;reader.root=me.remoteRoot;reader.buildExtractors(true);Ext.Array.each(reader.getRoot(reader.rawData),function(value){remoteData[value[groupField]]=value});reader.root=root;reader.buildExtractors(true)}for(i=0,length=columns.length;i<length;++i){comp=Ext.getCmp(columns[i].id);fieldData=me.getSummary(store,comp.summaryType,comp.dataIndex,true);for(key in fieldData){if(fieldData.hasOwnProperty(key)){data[key][comp.id]=fieldData[key]}}for(key in remoteData){if(remoteData.hasOwnProperty(key)){remote=remoteData[key][comp.dataIndex];if(remote!==undefined&&data[key]!==undefined){data[key][comp.id]=remote}}}}return data}});Ext.define("Ext.grid.feature.RowBody",{extend:"Ext.grid.feature.Feature",alias:"feature.rowbody",rowBodyHiddenCls:Ext.baseCSSPrefix+"grid-row-body-hidden",rowBodyTrCls:Ext.baseCSSPrefix+"grid-rowbody-tr",rowBodyTdCls:Ext.baseCSSPrefix+"grid-cell-rowbody",rowBodyDivCls:Ext.baseCSSPrefix+"grid-rowbody",eventPrefix:"rowbody",eventSelector:"."+Ext.baseCSSPrefix+"grid-rowbody-tr",getRowBody:function(values){return['<tr class="'+this.rowBodyTrCls+' {rowBodyCls}">','<td class="'+this.rowBodyTdCls+'" colspan="{rowBodyColspan}">','<div class="'+this.rowBodyDivCls+'">{rowBody}</div>',"</td>","</tr>"].join("")},getMetaRowTplFragments:function(){return{getRowBody:this.getRowBody,rowBodyTrCls:this.rowBodyTrCls,rowBodyTdCls:this.rowBodyTdCls,rowBodyDivCls:this.rowBodyDivCls}},mutateMetaRowTpl:function(metaRowTpl){metaRowTpl.push("{[this.getRowBody(values)]}")},getAdditionalData:function(data,idx,record,orig){var headerCt=this.view.headerCt,colspan=headerCt.getColumnCount();return{rowBody:"",rowBodyCls:this.rowBodyCls,rowBodyColspan:colspan}}});Ext.define("Ext.grid.feature.RowWrap",{extend:"Ext.grid.feature.Feature",alias:"feature.rowwrap",hasFeatureEvent:false,mutateMetaRowTpl:function(metaRowTpl){metaRowTpl[0]=metaRowTpl[0].replace(Ext.baseCSSPrefix+"grid-row","");metaRowTpl[0]=metaRowTpl[0].replace("{[this.embedRowCls()]}","");metaRowTpl.unshift('<table class="'+Ext.baseCSSPrefix+"grid-table "+Ext.baseCSSPrefix+'grid-table-resizer" style="width: {[this.embedFullWidth()]}px;">');metaRowTpl.unshift('<tr class="'+Ext.baseCSSPrefix+'grid-row {[this.embedRowCls()]}"><td colspan="{[this.embedColSpan()]}"><div class="'+Ext.baseCSSPrefix+'grid-rowwrap-div">');metaRowTpl.push("</table>");metaRowTpl.push("</div></td></tr>")},embedColSpan:function(){return"{colspan}"},embedFullWidth:function(){return"{fullWidth}"},getAdditionalData:function(data,idx,record,orig){var headerCt=this.view.headerCt,colspan=headerCt.getColumnCount(),fullWidth=headerCt.getFullWidth(),items=headerCt.query("gridcolumn"),itemsLn=items.length,i=0,o={colspan:colspan,fullWidth:fullWidth},id,tdClsKey,colResizerCls;for(;i<itemsLn;i++){id=items[i].id;tdClsKey=id+"-tdCls";colResizerCls=Ext.baseCSSPrefix+"grid-col-resizer-"+id;o[tdClsKey]=colResizerCls+" "+(orig[tdClsKey]?orig[tdClsKey]:"");o[id+"-tdAttr"]=' style="width: '+(items[i].hidden?0:items[i].getDesiredWidth())+'px;" ';if(orig[id+"-tdAttr"]){o[id+"-tdAttr"]+=orig[id+"-tdAttr"]}}return o},getMetaRowTplFragments:function(){return{embedFullWidth:this.embedFullWidth,embedColSpan:this.embedColSpan}}});Ext.define("Ext.grid.feature.Summary",{extend:"Ext.grid.feature.AbstractSummary",alias:"feature.summary",getFragmentTpl:function(){this.summaryData=this.generateSummaryData();return this.getSummaryFragments()},getTableFragments:function(){if(this.showSummaryRow){return{closeRows:this.closeRows}}},closeRows:function(){return"</tpl>{[this.printSummaryRow()]}"},getPrintData:function(index){var me=this,columns=me.view.headerCt.getColumnsForTpl(),i=0,length=columns.length,data=[],active=me.summaryData,column;for(;i<length;++i){column=columns[i];column.gridSummaryValue=this.getColumnValue(column,active);data.push(column)}return data},generateSummaryData:function(){var me=this,data={},store=me.view.store,columns=me.view.headerCt.getColumnsForTpl(),i=0,length=columns.length,fieldData,key,comp;for(i=0,length=columns.length;i<length;++i){comp=Ext.getCmp(columns[i].id);data[comp.id]=me.getSummary(store,comp.summaryType,comp.dataIndex,false)}return data}});Ext.define("Ext.grid.header.DragZone",{extend:"Ext.dd.DragZone",colHeaderCls:Ext.baseCSSPrefix+"column-header",maxProxyWidth:120,constructor:function(headerCt){this.headerCt=headerCt;this.ddGroup=this.getDDGroup();this.callParent([headerCt.el]);this.proxy.el.addCls(Ext.baseCSSPrefix+"grid-col-dd")},getDDGroup:function(){return"header-dd-zone-"+this.headerCt.up("[scrollerOwner]").id},getDragData:function(e){var header=e.getTarget("."+this.colHeaderCls),headerCmp;if(header){headerCmp=Ext.getCmp(header.id);if(!this.headerCt.dragging&&headerCmp.draggable&&!(headerCmp.isOnLeftEdge(e)||headerCmp.isOnRightEdge(e))){var ddel=document.createElement("div");ddel.innerHTML=Ext.getCmp(header.id).text;return{ddel:ddel,header:headerCmp}}}return false},onBeforeDrag:function(){return !(this.headerCt.dragging||this.disabled)},onInitDrag:function(){this.headerCt.dragging=true;this.callParent(arguments)},onDragDrop:function(){this.headerCt.dragging=false;this.callParent(arguments)},afterRepair:function(){this.callParent();this.headerCt.dragging=false},getRepairXY:function(){return this.dragData.header.el.getXY()},disable:function(){this.disabled=true},enable:function(){this.disabled=false}});Ext.define("Ext.grid.header.DropZone",{extend:"Ext.dd.DropZone",colHeaderCls:Ext.baseCSSPrefix+"column-header",proxyOffsets:[-4,-9],constructor:function(headerCt){this.headerCt=headerCt;this.ddGroup=this.getDDGroup();this.callParent([headerCt.el])},getDDGroup:function(){return"header-dd-zone-"+this.headerCt.up("[scrollerOwner]").id},getTargetFromEvent:function(e){return e.getTarget("."+this.colHeaderCls)},getTopIndicator:function(){if(!this.topIndicator){this.topIndicator=Ext.DomHelper.append(Ext.getBody(),{cls:"col-move-top",html:"&#160;"},true)}return this.topIndicator},getBottomIndicator:function(){if(!this.bottomIndicator){this.bottomIndicator=Ext.DomHelper.append(Ext.getBody(),{cls:"col-move-bottom",html:"&#160;"},true)}return this.bottomIndicator},getLocation:function(e,t){var x=e.getXY()[0],region=Ext.fly(t).getRegion(),pos,header;if((region.right-x)<=(region.right-region.left)/2){pos="after"}else{pos="before"}return{pos:pos,header:Ext.getCmp(t.id),node:t}},positionIndicator:function(draggedHeader,node,e){var location=this.getLocation(e,node),header=location.header,pos=location.pos,nextHd=draggedHeader.nextSibling("gridcolumn:not([hidden])"),prevHd=draggedHeader.previousSibling("gridcolumn:not([hidden])"),region,topIndicator,bottomIndicator,topAnchor,bottomAnchor,topXY,bottomXY,headerCtEl,minX,maxX;if(!header.draggable&&header.getIndex()==0){return false}this.lastLocation=location;if((draggedHeader!==header)&&((pos==="before"&&nextHd!==header)||(pos==="after"&&prevHd!==header))&&!header.isDescendantOf(draggedHeader)){var allDropZones=Ext.dd.DragDropManager.getRelated(this),ln=allDropZones.length,i=0,dropZone;for(;i<ln;i++){dropZone=allDropZones[i];if(dropZone!==this&&dropZone.invalidateDrop){dropZone.invalidateDrop()}}this.valid=true;topIndicator=this.getTopIndicator();bottomIndicator=this.getBottomIndicator();if(pos==="before"){topAnchor="tl";bottomAnchor="bl"}else{topAnchor="tr";bottomAnchor="br"}topXY=header.el.getAnchorXY(topAnchor);bottomXY=header.el.getAnchorXY(bottomAnchor);headerCtEl=this.headerCt.el;minX=headerCtEl.getLeft();maxX=headerCtEl.getRight();topXY[0]=Ext.Number.constrain(topXY[0],minX,maxX);bottomXY[0]=Ext.Number.constrain(bottomXY[0],minX,maxX);topXY[0]-=4;topXY[1]-=9;bottomXY[0]-=4;topIndicator.setXY(topXY);bottomIndicator.setXY(bottomXY);topIndicator.show();bottomIndicator.show()}else{this.invalidateDrop()}},invalidateDrop:function(){this.valid=false;this.hideIndicators()},onNodeOver:function(node,dragZone,e,data){if(data.header.el.dom!==node){this.positionIndicator(data.header,node,e)}return this.valid?this.dropAllowed:this.dropNotAllowed},hideIndicators:function(){this.getTopIndicator().hide();this.getBottomIndicator().hide()},onNodeOut:function(){this.hideIndicators()},onNodeDrop:function(node,dragZone,e,data){if(this.valid){this.invalidateDrop();var hd=data.header,lastLocation=this.lastLocation,fromCt=hd.ownerCt,fromIdx=fromCt.items.indexOf(hd),toCt=lastLocation.header.ownerCt,toIdx=toCt.items.indexOf(lastLocation.header),headerCt=this.headerCt,groupCt,scrollerOwner;if(lastLocation.pos==="after"){toIdx++}if(fromCt!==toCt&&fromCt.lockableInjected&&toCt.lockableInjected&&toCt.lockedCt){scrollerOwner=fromCt.up("[scrollerOwner]");scrollerOwner.lock(hd,toIdx)}else{if(fromCt!==toCt&&fromCt.lockableInjected&&toCt.lockableInjected&&fromCt.lockedCt){scrollerOwner=fromCt.up("[scrollerOwner]");scrollerOwner.unlock(hd,toIdx)}else{if((fromCt===toCt)&&(toIdx>fromCt.items.indexOf(hd))){toIdx--}if(fromCt!==toCt){fromCt.suspendLayout=true;fromCt.remove(hd,false);fromCt.suspendLayout=false}if(fromCt.isGroupHeader){if(!fromCt.items.getCount()){groupCt=fromCt.ownerCt;groupCt.suspendLayout=true;groupCt.remove(fromCt,false);fromCt.el.dom.parentNode.removeChild(fromCt.el.dom);groupCt.suspendLayout=false}else{fromCt.minWidth=fromCt.getWidth()-hd.getWidth();fromCt.setWidth(fromCt.minWidth)}}toCt.suspendLayout=true;if(fromCt===toCt){toCt.move(fromIdx,toIdx)}else{toCt.insert(toIdx,hd)}toCt.suspendLayout=false;if(toCt.isGroupHeader){hd.savedFlex=hd.flex;delete hd.flex;hd.width=hd.getWidth();toCt.minWidth=toCt.getWidth()+hd.getWidth()-(hd.savedFlex?1:0);toCt.setWidth(toCt.minWidth)}else{if(hd.savedFlex){hd.flex=hd.savedFlex;delete hd.width}}headerCt.purgeCache();headerCt.doLayout();headerCt.onHeaderMoved(hd,fromIdx,toIdx);if(!fromCt.items.getCount()){fromCt.destroy()}}}}}});Ext.define("Ext.grid.plugin.Editing",{alias:"editing.editing",requires:["Ext.grid.column.Column","Ext.util.KeyNav"],mixins:{observable:"Ext.util.Observable"},clicksToEdit:2,defaultFieldXType:"textfield",editStyle:"",constructor:function(config){var me=this;Ext.apply(me,config);me.addEvents("beforeedit","edit","validateedit");me.mixins.observable.constructor.call(me);me.relayEvents(me,["afteredit"],"after")},init:function(grid){var me=this;me.grid=grid;me.view=grid.view;me.initEvents();me.mon(grid,"reconfigure",me.onReconfigure,me);me.onReconfigure();grid.relayEvents(me,["beforeedit","edit","validateedit"]);grid.isEditable=true;grid.editingPlugin=grid.view.editingPlugin=me},onReconfigure:function(){this.initFieldAccessors(this.view.getGridColumns())},destroy:function(){var me=this,grid=me.grid,headerCt=grid.headerCt,events=grid.events;Ext.destroy(me.keyNav);me.removeFieldAccessors(grid.getView().getGridColumns());me.clearListeners();delete me.grid.editingPlugin;delete me.grid.view.editingPlugin;delete me.grid;delete me.view;delete me.editor;delete me.keyNav},getEditStyle:function(){return this.editStyle},initFieldAccessors:function(column){var me=this;if(Ext.isArray(column)){Ext.Array.forEach(column,me.initFieldAccessors,me);return}Ext.applyIf(column,{getEditor:function(record,defaultField){return me.getColumnField(this,defaultField)},setEditor:function(field){me.setColumnField(this,field)}})},removeFieldAccessors:function(column){var me=this;if(Ext.isArray(column)){Ext.Array.forEach(column,me.removeFieldAccessors,me);return}delete column.getEditor;delete column.setEditor},getColumnField:function(columnHeader,defaultField){var field=columnHeader.field;if(!field&&columnHeader.editor){field=columnHeader.editor;delete columnHeader.editor}if(!field&&defaultField){field=defaultField}if(field){if(Ext.isString(field)){field={xtype:field}}if(Ext.isObject(field)&&!field.isFormField){field=Ext.ComponentManager.create(field,this.defaultFieldXType);columnHeader.field=field}Ext.apply(field,{name:columnHeader.dataIndex});return field}},setColumnField:function(column,field){if(Ext.isObject(field)&&!field.isFormField){field=Ext.ComponentManager.create(field,this.defaultFieldXType)}column.field=field},initEvents:function(){var me=this;me.initEditTriggers();me.initCancelTriggers()},initCancelTriggers:Ext.emptyFn,initEditTriggers:function(){var me=this,view=me.view,clickEvent=me.clicksToEdit===1?"click":"dblclick";me.mon(view,"cell"+clickEvent,me.startEditByClick,me);view.on("render",function(){me.keyNav=Ext.create("Ext.util.KeyNav",view.el,{enter:me.onEnterKey,esc:me.onEscKey,scope:me})},me,{single:true})},onEnterKey:function(e){var me=this,grid=me.grid,selModel=grid.getSelectionModel(),record,columnHeader=grid.headerCt.getHeaderAtIndex(0);if(selModel.getCurrentPosition){pos=selModel.getCurrentPosition();record=grid.store.getAt(pos.row);columnHeader=grid.headerCt.getHeaderAtIndex(pos.column)}else{record=selModel.getLastSelected()}me.startEdit(record,columnHeader)},onEscKey:function(e){this.cancelEdit()},startEditByClick:function(view,cell,colIdx,record,row,rowIdx,e){this.startEdit(record,view.getHeaderAtIndex(colIdx))},beforeEdit:Ext.emptyFn,startEdit:function(record,columnHeader){var me=this,context=me.getEditingContext(record,columnHeader);if(me.beforeEdit(context)===false||me.fireEvent("beforeedit",context)===false||context.cancel){return false}me.context=context;me.editing=true},getEditingContext:function(record,columnHeader){var me=this,grid=me.grid,store=grid.store,rowIdx,colIdx,view=grid.getView(),value;if(Ext.isNumber(record)){rowIdx=record;record=store.getAt(rowIdx)}else{rowIdx=store.indexOf(record)}if(Ext.isNumber(columnHeader)){colIdx=columnHeader;columnHeader=grid.headerCt.getHeaderAtIndex(colIdx)}else{colIdx=columnHeader.getIndex()}value=record.get(columnHeader.dataIndex);return{grid:grid,record:record,field:columnHeader.dataIndex,value:value,row:view.getNode(rowIdx),column:columnHeader,rowIdx:rowIdx,colIdx:colIdx}},cancelEdit:function(){this.editing=false},completeEdit:function(){var me=this;if(me.editing&&me.validateEdit()){me.fireEvent("edit",me.context)}delete me.context;me.editing=false},validateEdit:function(){var me=this,context=me.context;return me.fireEvent("validateedit",me,context)!==false&&!context.cancel}});Ext.define("Ext.grid.plugin.CellEditing",{alias:"plugin.cellediting",extend:"Ext.grid.plugin.Editing",requires:["Ext.grid.CellEditor","Ext.util.DelayedTask"],constructor:function(){this.callParent(arguments);this.editors=Ext.create("Ext.util.MixedCollection",false,function(editor){return editor.editorId});this.editTask=Ext.create("Ext.util.DelayedTask")},onReconfigure:function(){this.editors.clear();this.callParent()},destroy:function(){var me=this;me.editTask.cancel();me.editors.each(Ext.destroy,Ext);me.editors.clear();me.callParent(arguments)},onBodyScroll:function(){var ed=this.getActiveEditor();if(ed&&ed.field){if(ed.field.triggerBlur){ed.field.triggerBlur()}else{ed.field.blur()}}},initCancelTriggers:function(){var me=this,grid=me.grid,view=grid.view;view.addElListener("mousewheel",me.cancelEdit,me);me.mon(view,"bodyscroll",me.onBodyScroll,me);me.mon(grid,{columnresize:me.cancelEdit,columnmove:me.cancelEdit,scope:me})},startEdit:function(record,columnHeader){var me=this,value=record.get(columnHeader.dataIndex),context=me.getEditingContext(record,columnHeader),ed;record=context.record;columnHeader=context.column;me.completeEdit();context.originalValue=context.value=value;if(me.beforeEdit(context)===false||me.fireEvent("beforeedit",context)===false||context.cancel){return false}if(columnHeader&&!columnHeader.getEditor(record)){return false}ed=me.getEditor(record,columnHeader);if(ed){me.context=context;me.setActiveEditor(ed);me.setActiveRecord(record);me.setActiveColumn(columnHeader);me.editTask.delay(15,ed.startEdit,ed,[me.getCell(record,columnHeader),value])}else{me.grid.getView().getEl(columnHeader).focus((Ext.isWebKit||Ext.isIE)?10:false)}},completeEdit:function(){var activeEd=this.getActiveEditor();if(activeEd){activeEd.completeEdit()}},setActiveEditor:function(ed){this.activeEditor=ed},getActiveEditor:function(){return this.activeEditor},setActiveColumn:function(column){this.activeColumn=column},getActiveColumn:function(){return this.activeColumn},setActiveRecord:function(record){this.activeRecord=record},getActiveRecord:function(){return this.activeRecord},getEditor:function(record,column){var me=this,editors=me.editors,editorId=column.getItemId(),editor=editors.getByKey(editorId);if(editor){return editor}else{editor=column.getEditor(record);if(!editor){return false}if(!(editor instanceof Ext.grid.CellEditor)){editor=Ext.create("Ext.grid.CellEditor",{editorId:editorId,field:editor})}editor.parentEl=me.grid.getEditorParent();editor.on({scope:me,specialkey:me.onSpecialKey,complete:me.onEditComplete,canceledit:me.cancelEdit});editors.add(editor);return editor}},setColumnField:function(column,field){var ed=this.editors.getByKey(column.getItemId());Ext.destroy(ed,column.field);this.editors.removeAtKey(column.getItemId());this.callParent(arguments)},getCell:function(record,column){return this.grid.getView().getCell(record,column)},onSpecialKey:function(ed,field,e){var grid=this.grid,sm;if(e.getKey()===e.TAB){e.stopEvent();sm=grid.getSelectionModel();if(sm.onEditorTab){sm.onEditorTab(this,e)}}},onEditComplete:function(ed,value,startValue){var me=this,grid=me.grid,sm=grid.getSelectionModel(),activeColumn=me.getActiveColumn(),dataIndex;if(activeColumn){dataIndex=activeColumn.dataIndex;me.setActiveEditor(null);me.setActiveColumn(null);me.setActiveRecord(null);delete sm.wasEditing;if(!me.validateEdit()){return}if(value!==startValue){me.context.record.set(dataIndex,value)}else{grid.getView().getEl(activeColumn).focus()}me.context.value=value;me.fireEvent("edit",me,me.context)}},cancelEdit:function(){var me=this,activeEd=me.getActiveEditor(),viewEl=me.grid.getView().getEl(me.getActiveColumn());me.setActiveEditor(null);me.setActiveColumn(null);me.setActiveRecord(null);if(activeEd){activeEd.cancelEdit();viewEl.focus()}},startEditByPosition:function(position){var me=this,grid=me.grid,sm=grid.getSelectionModel(),editRecord=grid.store.getAt(position.row),editColumnHeader=grid.headerCt.getHeaderAtIndex(position.column);if(sm.selectByPosition){sm.selectByPosition(position)}me.startEdit(editRecord,editColumnHeader)}});Ext.define("Ext.grid.plugin.DragDrop",{extend:"Ext.AbstractPlugin",alias:"plugin.gridviewdragdrop",uses:["Ext.view.DragZone","Ext.grid.ViewDropZone"],dragText:"{0} selected row{1}",ddGroup:"GridDD",enableDrop:true,enableDrag:true,init:function(view){view.on("render",this.onViewRender,this,{single:true})},destroy:function(){Ext.destroy(this.dragZone,this.dropZone)},enable:function(){var me=this;if(me.dragZone){me.dragZone.unlock()}if(me.dropZone){me.dropZone.unlock()}me.callParent()},disable:function(){var me=this;if(me.dragZone){me.dragZone.lock()}if(me.dropZone){me.dropZone.lock()}me.callParent()},onViewRender:function(view){var me=this;if(me.enableDrag){me.dragZone=Ext.create("Ext.view.DragZone",{view:view,ddGroup:me.dragGroup||me.ddGroup,dragText:me.dragText})}if(me.enableDrop){me.dropZone=Ext.create("Ext.grid.ViewDropZone",{view:view,ddGroup:me.dropGroup||me.ddGroup})}}});Ext.define("Ext.grid.plugin.HeaderReorderer",{extend:"Ext.util.Observable",requires:["Ext.grid.header.DragZone","Ext.grid.header.DropZone"],alias:"plugin.gridheaderreorderer",init:function(headerCt){this.headerCt=headerCt;headerCt.on("render",this.onHeaderCtRender,this)},destroy:function(){Ext.destroy(this.dragZone,this.dropZone)},onHeaderCtRender:function(){this.dragZone=Ext.create("Ext.grid.header.DragZone",this.headerCt);this.dropZone=Ext.create("Ext.grid.header.DropZone",this.headerCt);if(this.disabled){this.dragZone.disable()}},enable:function(){this.disabled=false;if(this.dragZone){this.dragZone.enable()}},disable:function(){this.disabled=true;if(this.dragZone){this.dragZone.disable()}}});Ext.define("Ext.grid.plugin.HeaderResizer",{extend:"Ext.util.Observable",requires:["Ext.dd.DragTracker","Ext.util.Region"],alias:"plugin.gridheaderresizer",disabled:false,configs:{dynamic:true},colHeaderCls:Ext.baseCSSPrefix+"column-header",minColWidth:40,maxColWidth:1000,wResizeCursor:"col-resize",eResizeCursor:"col-resize",init:function(headerCt){this.headerCt=headerCt;headerCt.on("render",this.afterHeaderRender,this,{single:true})},destroy:function(){if(this.tracker){this.tracker.destroy()}},afterHeaderRender:function(){var headerCt=this.headerCt,el=headerCt.el;headerCt.mon(el,"mousemove",this.onHeaderCtMouseMove,this);this.tracker=Ext.create("Ext.dd.DragTracker",{disabled:this.disabled,onBeforeStart:Ext.Function.bind(this.onBeforeStart,this),onStart:Ext.Function.bind(this.onStart,this),onDrag:Ext.Function.bind(this.onDrag,this),onEnd:Ext.Function.bind(this.onEnd,this),tolerance:3,autoStart:300,el:el})},onHeaderCtMouseMove:function(e,t){if(this.headerCt.dragging){if(this.activeHd){this.activeHd.el.dom.style.cursor="";delete this.activeHd}}else{var headerEl=e.getTarget("."+this.colHeaderCls,3,true),overHeader,resizeHeader;if(headerEl){overHeader=Ext.getCmp(headerEl.id);if(overHeader.isOnLeftEdge(e)){resizeHeader=overHeader.previousNode("gridcolumn:not([hidden])")}else{if(overHeader.isOnRightEdge(e)){resizeHeader=overHeader}else{resizeHeader=null}}if(resizeHeader){if(resizeHeader.isGroupHeader){resizeHeader=resizeHeader.down(":not([isGroupHeader]):not([hidden]):last")}if(resizeHeader&&!(resizeHeader.fixed||(resizeHeader.resizable===false)||this.disabled)){this.activeHd=resizeHeader;overHeader.el.dom.style.cursor=this.eResizeCursor}}else{overHeader.el.dom.style.cursor="";delete this.activeHd}}}},onBeforeStart:function(e){var t=e.getTarget();this.dragHd=this.activeHd;if(!!this.dragHd&&!Ext.fly(t).hasCls("x-column-header-trigger")&&!this.headerCt.dragging){this.tracker.constrainTo=this.getConstrainRegion();return true}else{this.headerCt.dragging=false;return false}},getConstrainRegion:function(){var dragHdEl=this.dragHd.el,region=Ext.util.Region.getRegion(dragHdEl);return region.adjust(0,this.maxColWidth-dragHdEl.getWidth(),0,this.minColWidth)},onStart:function(e){var me=this,dragHd=me.dragHd,dragHdEl=dragHd.el,width=dragHdEl.getWidth(),headerCt=me.headerCt,t=e.getTarget();if(me.dragHd&&!Ext.fly(t).hasCls("x-column-header-trigger")){headerCt.dragging=true}me.origWidth=width;if(!me.dynamic){var xy=dragHdEl.getXY(),gridSection=headerCt.up("[scrollerOwner]"),dragHct=me.dragHd.up(":not([isGroupHeader])"),firstSection=dragHct.up(),lhsMarker=gridSection.getLhsMarker(),rhsMarker=gridSection.getRhsMarker(),el=rhsMarker.parent(),offsetLeft=el.getLeft(true),offsetTop=el.getTop(true),topLeft=el.translatePoints(xy),markerHeight=firstSection.body.getHeight()+headerCt.getHeight(),top=topLeft.top-offsetTop;lhsMarker.setTop(top);rhsMarker.setTop(top);lhsMarker.setHeight(markerHeight);rhsMarker.setHeight(markerHeight);lhsMarker.setLeft(topLeft.left-offsetLeft);rhsMarker.setLeft(topLeft.left+width-offsetLeft)}},onDrag:function(e){if(!this.dynamic){var xy=this.tracker.getXY("point"),gridSection=this.headerCt.up("[scrollerOwner]"),rhsMarker=gridSection.getRhsMarker(),el=rhsMarker.parent(),topLeft=el.translatePoints(xy),offsetLeft=el.getLeft(true);rhsMarker.setLeft(topLeft.left-offsetLeft)}else{this.doResize()}},onEnd:function(e){this.headerCt.dragging=false;if(this.dragHd){if(!this.dynamic){var dragHd=this.dragHd,gridSection=this.headerCt.up("[scrollerOwner]"),lhsMarker=gridSection.getLhsMarker(),rhsMarker=gridSection.getRhsMarker(),currWidth=dragHd.getWidth(),offset=this.tracker.getOffset("point"),offscreen=-9999;lhsMarker.setLeft(offscreen);rhsMarker.setLeft(offscreen)}this.doResize()}},doResize:function(){if(this.dragHd){var dragHd=this.dragHd,nextHd,offset=this.tracker.getOffset("point");if(dragHd.flex){delete dragHd.flex}this.headerCt.suspendLayout=true;dragHd.setWidth(this.origWidth+offset[0],false);if(this.headerCt.forceFit){nextHd=dragHd.nextNode("gridcolumn:not([hidden]):not([isGroupHeader])");if(nextHd){delete nextHd.flex;nextHd.setWidth(nextHd.getWidth()-offset[0],false)}}this.headerCt.suspendLayout=false;this.headerCt.doComponentLayout(this.headerCt.getFullWidth())}},disable:function(){this.disabled=true;if(this.tracker){this.tracker.disable()}},enable:function(){this.disabled=false;if(this.tracker){this.tracker.enable()}}});Ext.define("Ext.grid.plugin.RowEditing",{extend:"Ext.grid.plugin.Editing",alias:"plugin.rowediting",requires:["Ext.grid.RowEditor"],editStyle:"row",autoCancel:true,errorSummary:true,constructor:function(){var me=this;me.callParent(arguments);if(!me.clicksToMoveEditor){me.clicksToMoveEditor=me.clicksToEdit}me.autoCancel=!!me.autoCancel},destroy:function(){var me=this;Ext.destroy(me.editor);me.callParent(arguments)},startEdit:function(record,columnHeader){var me=this,editor=me.getEditor();if(me.callParent(arguments)===false){return false}if(editor.beforeEdit()!==false){editor.startEdit(me.context.record,me.context.column)}},cancelEdit:function(){var me=this;if(me.editing){me.getEditor().cancelEdit();me.callParent(arguments);me.fireEvent("canceledit",me.context)}},completeEdit:function(){var me=this;if(me.editing&&me.validateEdit()){me.editing=false;me.fireEvent("edit",me.context)}},validateEdit:function(){var me=this,editor=me.editor,context=me.context,record=context.record,newValues={},originalValues={},name;editor.items.each(function(item){name=item.name;newValues[name]=item.getValue();originalValues[name]=record.get(name)});Ext.apply(context,{newValues:newValues,originalValues:originalValues});return me.callParent(arguments)&&me.getEditor().completeEdit()},getEditor:function(){var me=this;if(!me.editor){me.editor=me.initEditor()}return me.editor},initEditor:function(){var me=this,grid=me.grid,view=me.view,headerCt=grid.headerCt;return Ext.create("Ext.grid.RowEditor",{autoCancel:me.autoCancel,errorSummary:me.errorSummary,fields:headerCt.getGridColumns(),hidden:true,editingPlugin:me,renderTo:view.el})},initEditTriggers:function(){var me=this,grid=me.grid,view=me.view,headerCt=grid.headerCt,moveEditorEvent=me.clicksToMoveEditor===1?"click":"dblclick";me.callParent(arguments);if(me.clicksToMoveEditor!==me.clicksToEdit){me.mon(view,"cell"+moveEditorEvent,me.moveEditorByClick,me)}view.on("render",function(){me.mon(headerCt,{add:me.onColumnAdd,remove:me.onColumnRemove,columnresize:me.onColumnResize,columnhide:me.onColumnHide,columnshow:me.onColumnShow,columnmove:me.onColumnMove,scope:me})},me,{single:true})},startEditByClick:function(){var me=this;if(!me.editing||me.clicksToMoveEditor===me.clicksToEdit){me.callParent(arguments)}},moveEditorByClick:function(){var me=this;if(me.editing){me.superclass.startEditByClick.apply(me,arguments)}},onColumnAdd:function(ct,column){if(column.isHeader){var me=this,editor;me.initFieldAccessors(column);editor=me.getEditor();if(editor&&editor.onColumnAdd){editor.onColumnAdd(column)}}},onColumnRemove:function(ct,column){if(column.isHeader){var me=this,editor=me.getEditor();if(editor&&editor.onColumnRemove){editor.onColumnRemove(column)}me.removeFieldAccessors(column)}},onColumnResize:function(ct,column,width){if(column.isHeader){var me=this,editor=me.getEditor();if(editor&&editor.onColumnResize){editor.onColumnResize(column,width)}}},onColumnHide:function(ct,column){var me=this,editor=me.getEditor();if(editor&&editor.onColumnHide){editor.onColumnHide(column)}},onColumnShow:function(ct,column){var me=this,editor=me.getEditor();if(editor&&editor.onColumnShow){editor.onColumnShow(column)}},onColumnMove:function(ct,column,fromIdx,toIdx){var me=this,editor=me.getEditor();if(editor&&editor.onColumnMove){editor.onColumnMove(column,fromIdx,toIdx)}},setColumnField:function(column,field){var me=this;me.callParent(arguments);me.getEditor().setField(column.field,column)}});Ext.define("Ext.grid.property.Grid",{extend:"Ext.grid.Panel",alias:"widget.propertygrid",alternateClassName:"Ext.grid.PropertyGrid",uses:["Ext.grid.plugin.CellEditing","Ext.grid.property.Store","Ext.grid.property.HeaderContainer","Ext.XTemplate","Ext.grid.CellEditor","Ext.form.field.Date","Ext.form.field.Text","Ext.form.field.Number"],valueField:"value",nameField:"name",enableColumnMove:false,columnLines:true,stripeRows:false,trackMouseOver:false,clicksToEdit:1,enableHdMenu:false,initComponent:function(){var me=this;me.addCls(Ext.baseCSSPrefix+"property-grid");me.plugins=me.plugins||[];me.plugins.push(Ext.create("Ext.grid.plugin.CellEditing",{clicksToEdit:me.clicksToEdit,startEdit:function(record,column){return this.self.prototype.startEdit.call(this,record,me.headerCt.child("#"+me.valueField))}}));me.selModel={selType:"cellmodel",onCellSelect:function(position){if(position.column!=1){position.column=1}return this.self.prototype.onCellSelect.call(this,position)}};me.customRenderers=me.customRenderers||{};me.customEditors=me.customEditors||{};if(!me.store){me.propStore=me.store=Ext.create("Ext.grid.property.Store",me,me.source)}me.store.sort("name","ASC");me.columns=Ext.create("Ext.grid.property.HeaderContainer",me,me.store);me.addEvents("beforepropertychange","propertychange");me.callParent();me.getView().walkCells=this.walkCells;me.editors={date:Ext.create("Ext.grid.CellEditor",{field:Ext.create("Ext.form.field.Date",{selectOnFocus:true})}),string:Ext.create("Ext.grid.CellEditor",{field:Ext.create("Ext.form.field.Text",{selectOnFocus:true})}),number:Ext.create("Ext.grid.CellEditor",{field:Ext.create("Ext.form.field.Number",{selectOnFocus:true})}),"boolean":Ext.create("Ext.grid.CellEditor",{field:Ext.create("Ext.form.field.ComboBox",{editable:false,store:[[true,me.headerCt.trueText],[false,me.headerCt.falseText]]})})};me.store.on("update",me.onUpdate,me)},onUpdate:function(store,record,operation){var me=this,v,oldValue;if(operation==Ext.data.Model.EDIT){v=record.get(me.valueField);oldValue=record.modified.value;if(me.fireEvent("beforepropertychange",me.source,record.getId(),v,oldValue)!==false){if(me.source){me.source[record.getId()]=v}record.commit();me.fireEvent("propertychange",me.source,record.getId(),v,oldValue)}else{record.reject()}}},walkCells:function(pos,direction,e,preventWrap,verifierFn,scope){if(direction=="left"){direction="up"}else{if(direction=="right"){direction="down"}}pos=Ext.view.Table.prototype.walkCells.call(this,pos,direction,e,preventWrap,verifierFn,scope);if(!pos.column){pos.column=1}return pos},getCellEditor:function(record,column){var me=this,propName=record.get(me.nameField),val=record.get(me.valueField),editor=me.customEditors[propName];if(editor){if(!(editor instanceof Ext.grid.CellEditor)){if(!(editor instanceof Ext.form.field.Base)){editor=Ext.ComponentManager.create(editor,"textfield")}editor=me.customEditors[propName]=Ext.create("Ext.grid.CellEditor",{field:editor})}}else{if(Ext.isDate(val)){editor=me.editors.date}else{if(Ext.isNumber(val)){editor=me.editors.number}else{if(Ext.isBoolean(val)){editor=me.editors["boolean"]}else{editor=me.editors.string}}}}editor.editorId=propName;return editor},beforeDestroy:function(){var me=this;me.callParent();me.destroyEditors(me.editors);me.destroyEditors(me.customEditors);delete me.source},destroyEditors:function(editors){for(var ed in editors){if(editors.hasOwnProperty(ed)){Ext.destroy(editors[ed])}}},setSource:function(source){this.source=source;this.propStore.setSource(source)},getSource:function(){return this.propStore.getSource()},setProperty:function(prop,value,create){this.propStore.setValue(prop,value,create)},removeProperty:function(prop){this.propStore.remove(prop)}});Ext.define("Ext.grid.property.HeaderContainer",{extend:"Ext.grid.header.Container",alternateClassName:"Ext.grid.PropertyColumnModel",nameWidth:115,nameText:"Name",valueText:"Value",dateFormat:"m/j/Y",trueText:"true",falseText:"false",nameColumnCls:Ext.baseCSSPrefix+"grid-property-name",constructor:function(grid,store){var me=this;me.grid=grid;me.store=store;me.callParent([{items:[{header:me.nameText,width:grid.nameColumnWidth||me.nameWidth,sortable:true,dataIndex:grid.nameField,renderer:Ext.Function.bind(me.renderProp,me),itemId:grid.nameField,menuDisabled:true,tdCls:me.nameColumnCls},{header:me.valueText,renderer:Ext.Function.bind(me.renderCell,me),getEditor:Ext.Function.bind(me.getCellEditor,me),flex:1,fixed:true,dataIndex:grid.valueField,itemId:grid.valueField,menuDisabled:true}]}])},getCellEditor:function(record){return this.grid.getCellEditor(record,this)},renderProp:function(v){return this.getPropertyName(v)},renderCell:function(val,meta,rec){var me=this,renderer=me.grid.customRenderers[rec.get(me.grid.nameField)],result=val;if(renderer){return renderer.apply(me,arguments)}if(Ext.isDate(val)){result=me.renderDate(val)}else{if(Ext.isBoolean(val)){result=me.renderBool(val)}}return Ext.util.Format.htmlEncode(result)},renderDate:Ext.util.Format.date,renderBool:function(bVal){return this[bVal?"trueText":"falseText"]},getPropertyName:function(name){var pn=this.grid.propertyNames;return pn&&pn[name]?pn[name]:name}});Ext.define("Ext.grid.property.Property",{extend:"Ext.data.Model",alternateClassName:"Ext.PropGridProperty",fields:[{name:"name",type:"string"},{name:"value"}],idProperty:"name"});Ext.define("Ext.grid.property.Store",{extend:"Ext.data.Store",alternateClassName:"Ext.grid.PropertyStore",uses:["Ext.data.reader.Reader","Ext.data.proxy.Proxy","Ext.data.ResultSet","Ext.grid.property.Property"],constructor:function(grid,source){var me=this;me.grid=grid;me.source=source;me.callParent([{data:source,model:Ext.grid.property.Property,proxy:me.getProxy()}])},getProxy:function(){if(!this.proxy){Ext.grid.property.Store.prototype.proxy=Ext.create("Ext.data.proxy.Memory",{model:Ext.grid.property.Property,reader:this.getReader()})}return this.proxy},getReader:function(){if(!this.reader){Ext.grid.property.Store.prototype.reader=Ext.create("Ext.data.reader.Reader",{model:Ext.grid.property.Property,buildExtractors:Ext.emptyFn,read:function(dataObject){return this.readRecords(dataObject)},readRecords:function(dataObject){var val,propName,result={records:[],success:true};for(propName in dataObject){if(dataObject.hasOwnProperty(propName)){val=dataObject[propName];if(this.isEditableValue(val)){result.records.push(new Ext.grid.property.Property({name:propName,value:val},propName))}}}result.total=result.count=result.records.length;return Ext.create("Ext.data.ResultSet",result)},isEditableValue:function(val){return Ext.isPrimitive(val)||Ext.isDate(val)}})}return this.reader},setSource:function(dataObject){var me=this;me.source=dataObject;me.suspendEvents();me.removeAll();me.proxy.data=dataObject;me.load();me.resumeEvents();me.fireEvent("datachanged",me)},getProperty:function(row){return Ext.isNumber(row)?this.getAt(row):this.getById(row)},setValue:function(prop,value,create){var me=this,rec=me.getRec(prop);if(rec){rec.set("value",value);me.source[prop]=value}else{if(create){me.source[prop]=value;rec=new Ext.grid.property.Property({name:prop,value:value},prop);me.add(rec)}}},remove:function(prop){var rec=this.getRec(prop);if(rec){this.callParent([rec]);delete this.source[prop]}},getRec:function(prop){return this.getById(prop)},getSource:function(){return this.source}});Ext.define("Ext.layout.component.Body",{alias:["layout.body"],extend:"Ext.layout.component.Component",uses:["Ext.layout.container.Container"],type:"body",onLayout:function(width,height){var me=this,owner=me.owner;me.setTargetSize(width,height);me.setBodySize.apply(me,arguments);if(owner&&owner.layout&&owner.layout.isLayout){if(!Ext.isNumber(owner.height)||!Ext.isNumber(owner.width)){owner.layout.bindToOwnerCtComponent=true}else{owner.layout.bindToOwnerCtComponent=false}}me.callParent(arguments)},setBodySize:function(width,height){var me=this,owner=me.owner,frameSize=owner.frameSize,isNumber=Ext.isNumber;if(isNumber(width)){width-=owner.el.getFrameWidth("lr")-frameSize.left-frameSize.right}if(isNumber(height)){height-=owner.el.getFrameWidth("tb")-frameSize.top-frameSize.bottom}me.setElementSize(owner.body,width,height)}});Ext.define("Ext.layout.component.FieldSet",{extend:"Ext.layout.component.Body",alias:["layout.fieldset"],type:"fieldset",doContainerLayout:function(){if(!this.owner.collapsed){this.callParent()}}});Ext.define("Ext.layout.component.Tab",{alias:["layout.tab"],extend:"Ext.layout.component.Button",beforeLayout:function(){var me=this,dirty=me.lastClosable!==me.owner.closable;if(dirty){delete me.adjWidth}return this.callParent(arguments)||dirty},onLayout:function(){var me=this;me.callParent(arguments);me.lastClosable=me.owner.closable}});Ext.define("Ext.layout.component.field.File",{alias:["layout.filefield"],extend:"Ext.layout.component.field.Field",type:"filefield",sizeBodyContents:function(width,height){var me=this,owner=me.owner;if(!owner.buttonOnly){me.setElementSize(owner.inputEl,Ext.isNumber(width)?width-owner.button.getWidth()-owner.buttonMargin:width)}}});Ext.define("Ext.layout.component.field.Slider",{alias:["layout.sliderfield"],extend:"Ext.layout.component.field.Field",type:"sliderfield",sizeBodyContents:function(width,height){var owner=this.owner,thumbs=owner.thumbs,length=thumbs.length,inputEl=owner.inputEl,innerEl=owner.innerEl,endEl=owner.endEl,i=0;for(;i<length;++i){thumbs[i].el.stopAnimation()}if(owner.vertical){inputEl.setHeight(height);innerEl.setHeight(Ext.isNumber(height)?height-inputEl.getPadding("t")-endEl.getPadding("b"):height)}else{inputEl.setWidth(width);innerEl.setWidth(Ext.isNumber(width)?width-inputEl.getPadding("l")-endEl.getPadding("r"):width)}owner.syncThumbs()}});Ext.define("Ext.layout.container.Absolute",{alias:"layout.absolute",extend:"Ext.layout.container.Anchor",alternateClassName:"Ext.layout.AbsoluteLayout",itemCls:Ext.baseCSSPrefix+"abs-layout-item",type:"absolute",onLayout:function(){var me=this,target=me.getTarget(),targetIsBody=target.dom===document.body;if(!targetIsBody){target.position()}me.paddingLeft=target.getPadding("l");me.paddingTop=target.getPadding("t");me.callParent(arguments)},adjustWidthAnchor:function(value,comp){return value?value-comp.getPosition(true)[0]:value},adjustHeightAnchor:function(value,comp){return value?value-comp.getPosition(true)[1]:value}});Ext.define("Ext.layout.container.Accordion",{extend:"Ext.layout.container.VBox",alias:["layout.accordion"],alternateClassName:"Ext.layout.AccordionLayout",itemCls:Ext.baseCSSPrefix+"box-item "+Ext.baseCSSPrefix+"accordion-item",align:"stretch",fill:true,autoWidth:true,titleCollapse:true,hideCollapseTool:false,collapseFirst:false,animate:true,activeOnTop:false,multi:false,constructor:function(){var me=this;me.callParent(arguments);me.initialAnimate=me.animate;me.animate=false;if(me.fill===false){me.itemCls=Ext.baseCSSPrefix+"accordion-item"}},beforeLayout:function(){var me=this;me.callParent(arguments);if(me.fill){if(!(me.owner.el.dom.style.height||me.getLayoutTargetSize().height)){return false}}else{me.owner.componentLayout.monitorChildren=false;me.autoSize=true;me.owner.setAutoScroll(true)}},renderItems:function(items,target){var me=this,ln=items.length,i=0,comp,targetSize=me.getLayoutTargetSize(),renderedPanels=[];for(;i<ln;i++){comp=items[i];if(!comp.rendered){renderedPanels.push(comp);if(me.collapseFirst){comp.collapseFirst=me.collapseFirst}if(me.hideCollapseTool){comp.hideCollapseTool=me.hideCollapseTool;comp.titleCollapse=true}else{if(me.titleCollapse){comp.titleCollapse=me.titleCollapse}}delete comp.hideHeader;comp.collapsible=true;comp.title=comp.title||"&#160;";comp.width=targetSize.width;if(me.fill){delete comp.height;delete comp.flex;if(me.expandedItem!==undefined){comp.collapsed=true}else{if(comp.hasOwnProperty("collapsed")&&comp.collapsed===false){comp.flex=1;me.expandedItem=i}else{comp.collapsed=true}}me.owner.mon(comp,{show:me.onComponentShow,beforeexpand:me.onComponentExpand,beforecollapse:me.onComponentCollapse,scope:me})}else{delete comp.flex;comp.animCollapse=me.initialAnimate;comp.autoHeight=true;comp.autoScroll=false}comp.border=comp.collapsed}}if(ln&&me.expandedItem===undefined){me.expandedItem=0;comp=items[0];comp.collapsed=comp.border=false;if(me.fill){comp.flex=1}}me.callParent(arguments);ln=renderedPanels.length;for(i=0;i<ln;i++){comp=renderedPanels[i];delete comp.width;comp.header.addCls(Ext.baseCSSPrefix+"accordion-hd");comp.body.addCls(Ext.baseCSSPrefix+"accordion-body")}},onLayout:function(){var me=this;if(me.fill){me.callParent(arguments)}else{var targetSize=me.getLayoutTargetSize(),items=me.getVisibleItems(),len=items.length,i=0,comp;for(;i<len;i++){comp=items[i];if(comp.collapsed){items[i].setWidth(targetSize.width)}else{items[i].setSize(null,null)}}}me.updatePanelClasses();return me},updatePanelClasses:function(){var children=this.getLayoutItems(),ln=children.length,siblingCollapsed=true,i,child;for(i=0;i<ln;i++){child=children[i];if(Ext.isWindows){child.el.dom.scrollTop=0}if(siblingCollapsed){child.header.removeCls(Ext.baseCSSPrefix+"accordion-hd-sibling-expanded")}else{child.header.addCls(Ext.baseCSSPrefix+"accordion-hd-sibling-expanded")}if(i+1==ln&&child.collapsed){child.header.addCls(Ext.baseCSSPrefix+"accordion-hd-last-collapsed")}else{child.header.removeCls(Ext.baseCSSPrefix+"accordion-hd-last-collapsed")}siblingCollapsed=child.collapsed}},animCallback:function(){Ext.Array.forEach(this.toCollapse,function(comp){comp.fireEvent("collapse",comp)});Ext.Array.forEach(this.toExpand,function(comp){comp.fireEvent("expand",comp)})},setupEvents:function(){this.toCollapse=[];this.toExpand=[]},onComponentExpand:function(toExpand){var me=this,it=me.owner.items.items,len=it.length,i=0,comp;me.setupEvents();for(;i<len;i++){comp=it[i];if(comp===toExpand&&comp.collapsed){me.setExpanded(comp)}else{if(!me.multi&&(comp.rendered&&comp.header.rendered&&comp!==toExpand&&!comp.collapsed)){me.setCollapsed(comp)}}}me.animate=me.initialAnimate;if(me.activeOnTop){me.owner.insert(0,toExpand)}else{me.layout()}me.animate=false;return false},onComponentCollapse:function(comp){var me=this,toExpand=comp.next()||comp.prev(),expanded=me.multi?me.owner.query(">panel:not([collapsed])"):[];me.setupEvents();if(me.multi){me.setCollapsed(comp);if(expanded.length===1&&expanded[0]===comp){me.setExpanded(toExpand)}me.animate=me.initialAnimate;me.layout();me.animate=false}else{if(toExpand){me.onComponentExpand(toExpand)}}return false},onComponentShow:function(comp){this.onComponentExpand(comp)},setCollapsed:function(comp){var otherDocks=comp.getDockedItems(),dockItem,len=otherDocks.length,i=0;comp.hiddenDocked=[];for(;i<len;i++){dockItem=otherDocks[i];if((dockItem!==comp.header)&&!dockItem.hidden){dockItem.hidden=true;comp.hiddenDocked.push(dockItem)}}comp.addCls(comp.collapsedCls);comp.header.addCls(comp.collapsedHeaderCls);comp.height=comp.header.getHeight();comp.el.setHeight(comp.height);comp.collapsed=true;delete comp.flex;if(this.initialAnimate){this.toCollapse.push(comp)}else{comp.fireEvent("collapse",comp)}if(comp.collapseTool){comp.collapseTool.setType("expand-"+comp.getOppositeDirection(comp.collapseDirection))}},setExpanded:function(comp){var otherDocks=comp.hiddenDocked,len=otherDocks?otherDocks.length:0,i=0;for(;i<len;i++){otherDocks[i].show()}if(!comp.body.isVisible()){comp.body.show()}delete comp.collapsed;delete comp.height;delete comp.componentLayout.lastComponentSize;comp.suspendLayout=false;comp.flex=1;comp.removeCls(comp.collapsedCls);comp.header.removeCls(comp.collapsedHeaderCls);if(this.initialAnimate){this.toExpand.push(comp)}else{comp.fireEvent("expand",comp)}if(comp.collapseTool){comp.collapseTool.setType("collapse-"+comp.collapseDirection)}comp.setAutoScroll(comp.initialConfig.autoScroll)}});Ext.define("Ext.resizer.Splitter",{extend:"Ext.Component",requires:["Ext.XTemplate"],uses:["Ext.resizer.SplitterTracker"],alias:"widget.splitter",renderTpl:['<tpl if="collapsible===true">','<div id="{id}-collapseEl" class="',Ext.baseCSSPrefix,"collapse-el ",Ext.baseCSSPrefix,'layout-split-{collapseDir}">&nbsp;</div>',"</tpl>"],baseCls:Ext.baseCSSPrefix+"splitter",collapsedClsInternal:Ext.baseCSSPrefix+"splitter-collapsed",collapsible:false,collapseOnDblClick:true,defaultSplitMin:40,defaultSplitMax:1000,width:5,height:5,collapseTarget:"next",onRender:function(){var me=this,target=me.getCollapseTarget(),collapseDir=me.getCollapseDirection();Ext.applyIf(me.renderData,{collapseDir:collapseDir,collapsible:me.collapsible||target.collapsible});me.addChildEls("collapseEl");this.callParent(arguments);if(me.performCollapse!==false){if(me.renderData.collapsible){me.mon(me.collapseEl,"click",me.toggleTargetCmp,me)}if(me.collapseOnDblClick){me.mon(me.el,"dblclick",me.toggleTargetCmp,me)}}me.mon(target,"collapse",me.onTargetCollapse,me);me.mon(target,"expand",me.onTargetExpand,me);me.el.addCls(me.baseCls+"-"+me.orientation);me.el.unselectable();me.tracker=Ext.create("Ext.resizer.SplitterTracker",{el:me.el});me.relayEvents(me.tracker,["beforedragstart","dragstart","dragend"])},getCollapseDirection:function(){var me=this,idx,type=me.ownerCt.layout.type;if(me.collapseTarget.isComponent){idx=Number(me.ownerCt.items.indexOf(me.collapseTarget)==me.ownerCt.items.indexOf(me)-1)<<1|Number(type=="hbox")}else{idx=Number(me.collapseTarget=="prev")<<1|Number(type=="hbox")}me.orientation=["horizontal","vertical"][idx&1];return["bottom","right","top","left"][idx]},getCollapseTarget:function(){var me=this;return me.collapseTarget.isComponent?me.collapseTarget:me.collapseTarget=="prev"?me.previousSibling():me.nextSibling()},onTargetCollapse:function(target){this.el.addCls([this.collapsedClsInternal,this.collapsedCls])},onTargetExpand:function(target){this.el.removeCls([this.collapsedClsInternal,this.collapsedCls])},toggleTargetCmp:function(e,t){var cmp=this.getCollapseTarget();if(cmp.isVisible()){if(cmp.collapsed){cmp.expand(cmp.animCollapse)}else{cmp.collapse(this.renderData.collapseDir,cmp.animCollapse)}}},setSize:function(){var me=this;me.callParent(arguments);if(Ext.isIE){me.el.repaint()}}});Ext.define("Ext.layout.container.Border",{alias:["layout.border"],extend:"Ext.layout.container.Container",requires:["Ext.resizer.Splitter","Ext.container.Container","Ext.fx.Anim"],alternateClassName:"Ext.layout.BorderLayout",targetCls:Ext.baseCSSPrefix+"border-layout-ct",itemCls:Ext.baseCSSPrefix+"border-item",bindToOwnerCtContainer:true,percentageRe:/(\d+)%/,slideDirection:{north:"t",south:"b",west:"l",east:"r"},constructor:function(config){this.initialConfig=config;this.callParent(arguments)},onLayout:function(){var me=this;if(!me.borderLayoutInitialized){me.initializeBorderLayout()}me.fixHeightConstraints();me.shadowLayout.onLayout();if(me.embeddedContainer){me.embeddedContainer.layout.onLayout()}if(!me.initialCollapsedComplete){Ext.iterate(me.regions,function(name,region){if(region.borderCollapse){me.onBeforeRegionCollapse(region,region.collapseDirection,false,0)}});me.initialCollapsedComplete=true}},isValidParent:function(item,target,position){if(!this.borderLayoutInitialized){this.initializeBorderLayout()}return this.shadowLayout.isValidParent(item,target,position)},beforeLayout:function(){if(!this.borderLayoutInitialized){this.initializeBorderLayout()}this.shadowLayout.beforeLayout()},renderItems:function(items,target){},renderItem:function(item){},renderChildren:function(){if(!this.borderLayoutInitialized){this.initializeBorderLayout()}this.shadowLayout.renderChildren()},getVisibleItems:function(){return Ext.ComponentQuery.query(":not([slideOutAnim])",this.callParent(arguments))},initializeBorderLayout:function(){var me=this,i=0,items=me.getLayoutItems(),ln=items.length,regions=(me.regions={}),vBoxItems=[],hBoxItems=[],horizontalFlex=0,verticalFlex=0,comp,percentage;me.splitters={};for(;i<ln;i++){comp=items[i];regions[comp.region]=comp;if(comp.region!="center"&&comp.collapsible&&comp.collapseMode!="header"){comp.borderCollapse=comp.collapsed;comp.collapsed=false;comp.on({beforecollapse:me.onBeforeRegionCollapse,beforeexpand:me.onBeforeRegionExpand,destroy:me.onRegionDestroy,scope:me});me.setupState(comp)}}comp=regions.center;if(!comp.flex){comp.flex=1}delete comp.width;comp.maintainFlex=true;comp=regions.west;if(comp){comp.collapseDirection=Ext.Component.DIRECTION_LEFT;hBoxItems.push(comp);if(comp.split){hBoxItems.push(me.splitters.west=me.createSplitter(comp))}percentage=Ext.isString(comp.width)&&comp.width.match(me.percentageRe);if(percentage){horizontalFlex+=(comp.flex=parseInt(percentage[1],10)/100);delete comp.width}}comp=regions.north;if(comp){comp.collapseDirection=Ext.Component.DIRECTION_TOP;vBoxItems.push(comp);if(comp.split){vBoxItems.push(me.splitters.north=me.createSplitter(comp))}percentage=Ext.isString(comp.height)&&comp.height.match(me.percentageRe);if(percentage){verticalFlex+=(comp.flex=parseInt(percentage[1],10)/100);delete comp.height}}if(regions.north||regions.south){if(regions.east||regions.west){vBoxItems.push(me.embeddedContainer=Ext.create("Ext.container.Container",{xtype:"container",region:"center",id:me.owner.id+"-embedded-center",cls:Ext.baseCSSPrefix+"border-item",flex:regions.center.flex,maintainFlex:true,layout:{type:"hbox",align:"stretch",getVisibleItems:me.getVisibleItems}}));hBoxItems.push(regions.center)}else{vBoxItems.push(regions.center)}}else{hBoxItems.push(regions.center)}comp=regions.south;if(comp){comp.collapseDirection=Ext.Component.DIRECTION_BOTTOM;if(comp.split){vBoxItems.push(me.splitters.south=me.createSplitter(comp))}percentage=Ext.isString(comp.height)&&comp.height.match(me.percentageRe);if(percentage){verticalFlex+=(comp.flex=parseInt(percentage[1],10)/100);delete comp.height}vBoxItems.push(comp)}comp=regions.east;if(comp){comp.collapseDirection=Ext.Component.DIRECTION_RIGHT;if(comp.split){hBoxItems.push(me.splitters.east=me.createSplitter(comp))}percentage=Ext.isString(comp.width)&&comp.width.match(me.percentageRe);if(percentage){horizontalFlex+=(comp.flex=parseInt(percentage[1],10)/100);delete comp.width}hBoxItems.push(comp)}if(regions.north||regions.south){me.shadowContainer=Ext.create("Ext.container.Container",{ownerCt:me.owner,el:me.getTarget(),layout:Ext.applyIf({type:"vbox",align:"stretch",getVisibleItems:me.getVisibleItems},me.initialConfig)});me.createItems(me.shadowContainer,vBoxItems);if(me.splitters.north){me.splitters.north.ownerCt=me.shadowContainer}if(me.splitters.south){me.splitters.south.ownerCt=me.shadowContainer}if(me.embeddedContainer){me.embeddedContainer.ownerCt=me.shadowContainer;me.createItems(me.embeddedContainer,hBoxItems);if(me.splitters.east){me.splitters.east.ownerCt=me.embeddedContainer}if(me.splitters.west){me.splitters.west.ownerCt=me.embeddedContainer}Ext.each([me.splitters.north,me.splitters.south],function(splitter){if(splitter){splitter.on("beforedragstart",me.fixHeightConstraints,me)}});if(horizontalFlex){regions.center.flex-=horizontalFlex}if(verticalFlex){me.embeddedContainer.flex-=verticalFlex}}else{if(verticalFlex){regions.center.flex-=verticalFlex}}}else{me.shadowContainer=Ext.create("Ext.container.Container",{ownerCt:me.owner,el:me.getTarget(),layout:Ext.applyIf({type:(hBoxItems.length==1)?"fit":"hbox",align:"stretch"},me.initialConfig)});me.createItems(me.shadowContainer,hBoxItems);if(me.splitters.east){me.splitters.east.ownerCt=me.shadowContainer}if(me.splitters.west){me.splitters.west.ownerCt=me.shadowContainer}if(horizontalFlex){regions.center.flex-=verticalFlex}}for(i=0,items=me.shadowContainer.items.items,ln=items.length;i<ln;i++){items[i].shadowOwnerCt=me.shadowContainer}if(me.embeddedContainer){for(i=0,items=me.embeddedContainer.items.items,ln=items.length;i<ln;i++){items[i].shadowOwnerCt=me.embeddedContainer}}me.shadowLayout=me.shadowContainer.getLayout();me.borderLayoutInitialized=true},setupState:function(comp){var getState=comp.getState;comp.getState=function(){var state=getState.call(comp)||{},region=comp.region;state.collapsed=!!comp.collapsed;if(region=="west"||region=="east"){state.width=comp.getWidth()}else{state.height=comp.getHeight()}return state};comp.addStateEvents(["collapse","expand","resize"])},createItems:function(container,items){delete container.items;container.initItems();container.items.addAll(items)},createSplitter:function(comp){var me=this,interceptCollapse=(comp.collapseMode!="header"),resizer;resizer=Ext.create("Ext.resizer.Splitter",{hidden:!!comp.hidden,collapseTarget:comp,performCollapse:!interceptCollapse,listeners:interceptCollapse?{click:{fn:Ext.Function.bind(me.onSplitterCollapseClick,me,[comp]),element:"collapseEl"}}:null});if(comp.collapseMode=="mini"){comp.placeholder=resizer;resizer.collapsedCls=comp.collapsedCls}comp.on({hide:me.onRegionVisibilityChange,show:me.onRegionVisibilityChange,scope:me});return resizer},fixHeightConstraints:function(){var me=this,ct=me.embeddedContainer,maxHeight=1e+99,minHeight=-1;if(!ct){return}ct.items.each(function(item){if(Ext.isNumber(item.maxHeight)){maxHeight=Math.max(maxHeight,item.maxHeight)}if(Ext.isNumber(item.minHeight)){minHeight=Math.max(minHeight,item.minHeight)}});ct.maxHeight=maxHeight;ct.minHeight=minHeight},onRegionVisibilityChange:function(comp){this.splitters[comp.region][comp.hidden?"hide":"show"]();this.layout()},onSplitterCollapseClick:function(comp){if(comp.collapsed){this.onPlaceHolderToolClick(null,null,null,{client:comp})}else{comp.collapse()}},getPlaceholder:function(comp){var me=this,placeholder=comp.placeholder,shadowContainer=comp.shadowOwnerCt,shadowLayout=shadowContainer.layout,oppositeDirection=Ext.panel.Panel.prototype.getOppositeDirection(comp.collapseDirection),horiz=(comp.region=="north"||comp.region=="south");if(comp.collapseMode=="header"){return}if(!placeholder){if(comp.collapseMode=="mini"){placeholder=Ext.create("Ext.resizer.Splitter",{id:"collapse-placeholder-"+comp.id,collapseTarget:comp,performCollapse:false,listeners:{click:{fn:Ext.Function.bind(me.onSplitterCollapseClick,me,[comp]),element:"collapseEl"}}});placeholder.addCls(placeholder.collapsedCls)}else{placeholder={id:"collapse-placeholder-"+comp.id,margins:comp.initialConfig.margins||Ext.getClass(comp).prototype.margins,xtype:"header",orientation:horiz?"horizontal":"vertical",title:comp.title,textCls:comp.headerTextCls,iconCls:comp.iconCls,baseCls:comp.baseCls+"-header",ui:comp.ui,indicateDrag:comp.draggable,cls:Ext.baseCSSPrefix+"region-collapsed-placeholder "+Ext.baseCSSPrefix+"region-collapsed-"+comp.collapseDirection+"-placeholder "+comp.collapsedCls,listeners:comp.floatable?{click:{fn:function(e){me.floatCollapsedPanel(e,comp)},element:"el"}}:null};if((Ext.isIE6||Ext.isIE7||(Ext.isIEQuirks))&&!horiz){placeholder.width=25}if(!comp.hideCollapseTool){placeholder[horiz?"tools":"items"]=[{xtype:"tool",client:comp,type:"expand-"+oppositeDirection,handler:me.onPlaceHolderToolClick,scope:me}]}}placeholder=me.owner.createComponent(placeholder);if(comp.isXType("panel")){comp.on({titlechange:me.onRegionTitleChange,iconchange:me.onRegionIconChange,scope:me})}}comp.placeholder=placeholder;placeholder.comp=comp;return placeholder},onRegionTitleChange:function(comp,newTitle){comp.placeholder.setTitle(newTitle)},onRegionIconChange:function(comp,newIconCls){comp.placeholder.setIconCls(newIconCls)},calculateChildBox:function(comp){var me=this;if(me.shadowContainer.items.contains(comp)){return me.shadowContainer.layout.calculateChildBox(comp)}else{if(me.embeddedContainer&&me.embeddedContainer.items.contains(comp)){return me.embeddedContainer.layout.calculateChildBox(comp)}}},onBeforeRegionCollapse:function(comp,direction,animate){if(comp.collapsedChangingLayout){return false}comp.collapsedChangingLayout=true;var me=this,compEl=comp.el,width,miniCollapse=comp.collapseMode=="mini",shadowContainer=comp.shadowOwnerCt,shadowLayout=shadowContainer.layout,placeholder=comp.placeholder,sl=me.owner.suspendLayout,scsl=shadowContainer.suspendLayout,isNorthOrWest=(comp.region=="north"||comp.region=="west");me.owner.suspendLayout=true;shadowContainer.suspendLayout=true;shadowLayout.layoutBusy=true;if(shadowContainer.componentLayout){shadowContainer.componentLayout.layoutBusy=true}me.shadowContainer.layout.layoutBusy=true;me.layoutBusy=true;me.owner.componentLayout.layoutBusy=true;if(!placeholder){placeholder=me.getPlaceholder(comp)}if(placeholder.shadowOwnerCt===shadowContainer){placeholder.show()}else{shadowContainer.insert(shadowContainer.items.indexOf(comp)+(isNorthOrWest?0:1),placeholder);placeholder.shadowOwnerCt=shadowContainer;placeholder.ownerCt=me.owner}comp.hidden=true;if(!placeholder.rendered){shadowLayout.renderItem(placeholder,shadowLayout.innerCt);if(comp.region=="north"||comp.region=="south"){placeholder.setCalculatedSize(comp.getWidth())}else{placeholder.setCalculatedSize(undefined,comp.getHeight())}}function afterCollapse(){me.owner.suspendLayout=sl;shadowContainer.suspendLayout=scsl;delete shadowLayout.layoutBusy;if(shadowContainer.componentLayout){delete shadowContainer.componentLayout.layoutBusy}delete me.shadowContainer.layout.layoutBusy;delete me.layoutBusy;delete me.owner.componentLayout.layoutBusy;delete comp.collapsedChangingLayout;comp.collapsed=true;comp.fireEvent("collapse",comp)}if(comp.animCollapse&&me.initialCollapsedComplete){shadowLayout.layout();compEl.dom.style.zIndex=100;if(!miniCollapse){placeholder.el.hide()}compEl.slideOut(me.slideDirection[comp.region],{duration:Ext.Number.from(comp.animCollapse,Ext.fx.Anim.prototype.duration),listeners:{afteranimate:function(){compEl.show().setLeftTop(-10000,-10000);compEl.dom.style.zIndex="";if(!miniCollapse){placeholder.el.slideIn(me.slideDirection[comp.region],{easing:"linear",duration:100})}afterCollapse()}}})}else{compEl.setLeftTop(-10000,-10000);shadowLayout.layout();afterCollapse()}return false},onBeforeRegionExpand:function(comp,animate){this.onPlaceHolderToolClick(null,null,null,{client:comp,shouldFireBeforeexpand:false});return false},onPlaceHolderToolClick:function(e,target,owner,tool){var me=this,comp=tool.client,hidePlaceholder=(comp.collapseMode!="mini")||!comp.split,compEl=comp.el,toCompBox,placeholder=comp.placeholder,placeholderEl=placeholder.el,shadowContainer=comp.shadowOwnerCt,shadowLayout=shadowContainer.layout,curSize,sl=me.owner.suspendLayout,scsl=shadowContainer.suspendLayout,isFloating;if(comp.collapsedChangingLayout){return false}if(tool.shouldFireBeforeexpand!==false&&comp.fireEvent("beforeexpand",comp,true)===false){return false}comp.collapsedChangingLayout=true;if(comp.getActiveAnimation()){comp.stopAnimation()}if(comp.slideOutAnim){compEl.un(comp.panelMouseMon);placeholderEl.un(comp.placeholderMouseMon);delete comp.slideOutAnim;delete comp.panelMouseMon;delete comp.placeholderMouseMon;isFloating=true}me.owner.suspendLayout=true;shadowContainer.suspendLayout=true;shadowLayout.layoutBusy=true;if(shadowContainer.componentLayout){shadowContainer.componentLayout.layoutBusy=true}me.shadowContainer.layout.layoutBusy=true;me.layoutBusy=true;me.owner.componentLayout.layoutBusy=true;comp.hidden=false;comp.collapsed=false;if(hidePlaceholder){placeholder.hidden=true}toCompBox=shadowLayout.calculateChildBox(comp);if(comp.collapseTool){comp.collapseTool.show()}if(comp.animCollapse&&!isFloating){compEl.setStyle("visibility","hidden")}compEl.setLeftTop(toCompBox.left,toCompBox.top);curSize=comp.getSize();if(curSize.height!=toCompBox.height||curSize.width!=toCompBox.width){me.setItemSize(comp,toCompBox.width,toCompBox.height)}function afterExpand(){me.owner.suspendLayout=sl;shadowContainer.suspendLayout=scsl;delete shadowLayout.layoutBusy;if(shadowContainer.componentLayout){delete shadowContainer.componentLayout.layoutBusy}delete me.shadowContainer.layout.layoutBusy;delete me.layoutBusy;delete me.owner.componentLayout.layoutBusy;delete comp.collapsedChangingLayout;comp.removeCls(Ext.baseCSSPrefix+"border-region-slide-in");comp.fireEvent("expand",comp)}if(hidePlaceholder){placeholder.el.hide()}if(comp.animCollapse&&!isFloating){compEl.dom.style.zIndex=100;compEl.slideIn(me.slideDirection[comp.region],{duration:Ext.Number.from(comp.animCollapse,Ext.fx.Anim.prototype.duration),listeners:{afteranimate:function(){compEl.dom.style.zIndex="";comp.hidden=false;shadowLayout.onLayout();afterExpand()}}})}else{shadowLayout.onLayout();afterExpand()}},floatCollapsedPanel:function(e,comp){if(comp.floatable===false){return}var me=this,compEl=comp.el,placeholder=comp.placeholder,placeholderEl=placeholder.el,shadowContainer=comp.shadowOwnerCt,shadowLayout=shadowContainer.layout,placeholderBox=shadowLayout.getChildBox(placeholder),scsl=shadowContainer.suspendLayout,curSize,toCompBox,compAnim;if(e.getTarget("."+Ext.baseCSSPrefix+"tool")){return}if(compEl.getActiveAnimation()){return}if(comp.slideOutAnim){me.slideOutFloatedComponent(comp);return}function onMouseLeaveFloated(e){var slideRegion=compEl.getRegion().union(placeholderEl.getRegion()).adjust(1,-1,-1,1);if(!slideRegion.contains(e.getPoint())){me.slideOutFloatedComponent(comp)}}comp.placeholderMouseMon=placeholderEl.monitorMouseLeave(500,onMouseLeaveFloated);shadowContainer.suspendLayout=true;me.layoutBusy=true;me.owner.componentLayout.layoutBusy=true;if(comp.collapseTool){comp.collapseTool.hide()}comp.hidden=false;comp.collapsed=false;placeholder.hidden=true;toCompBox=shadowLayout.calculateChildBox(comp);placeholder.hidden=false;if(comp.region=="north"||comp.region=="west"){toCompBox[shadowLayout.parallelBefore]+=placeholderBox[shadowLayout.parallelPrefix]-1}else{toCompBox[shadowLayout.parallelBefore]-=(placeholderBox[shadowLayout.parallelPrefix]-1)}compEl.setStyle("visibility","hidden");compEl.setLeftTop(toCompBox.left,toCompBox.top);curSize=comp.getSize();if(curSize.height!=toCompBox.height||curSize.width!=toCompBox.width){me.setItemSize(comp,toCompBox.width,toCompBox.height)}compAnim={listeners:{afteranimate:function(){shadowContainer.suspendLayout=scsl;delete me.layoutBusy;delete me.owner.componentLayout.layoutBusy;compAnim.listeners={afterAnimate:function(){compEl.show().removeCls(Ext.baseCSSPrefix+"border-region-slide-in").setLeftTop(-10000,-10000);comp.hidden=true;comp.collapsed=true;delete comp.slideOutAnim;delete comp.panelMouseMon;delete comp.placeholderMouseMon}};comp.slideOutAnim=compAnim}},duration:500};compEl.addCls(Ext.baseCSSPrefix+"border-region-slide-in");compEl.slideIn(me.slideDirection[comp.region],compAnim);comp.panelMouseMon=compEl.monitorMouseLeave(500,onMouseLeaveFloated)},slideOutFloatedComponent:function(comp){var compEl=comp.el,slideOutAnim;compEl.un(comp.panelMouseMon);comp.placeholder.el.un(comp.placeholderMouseMon);compEl.slideOut(this.slideDirection[comp.region],comp.slideOutAnim);delete comp.slideOutAnim;delete comp.panelMouseMon;delete comp.placeholderMouseMon},onRegionDestroy:function(comp){var placeholder=comp.placeholder;if(placeholder){delete placeholder.ownerCt;placeholder.destroy()}},onDestroy:function(){var me=this,shadowContainer=me.shadowContainer,embeddedContainer=me.embeddedContainer;if(shadowContainer){delete shadowContainer.ownerCt;Ext.destroy(shadowContainer)}if(embeddedContainer){delete embeddedContainer.ownerCt;Ext.destroy(embeddedContainer)}delete me.regions;delete me.splitters;delete me.shadowContainer;delete me.embeddedContainer;me.callParent(arguments)}});Ext.define("Ext.layout.container.Card",{alias:["layout.card"],alternateClassName:"Ext.layout.CardLayout",extend:"Ext.layout.container.AbstractCard",setActiveItem:function(newCard){var me=this,owner=me.owner,oldCard=me.activeItem,newIndex;newCard=me.parseActiveItem(newCard);newIndex=owner.items.indexOf(newCard);if(newIndex==-1){newIndex=owner.items.items.length;owner.add(newCard)}if(newCard&&oldCard!=newCard){if(!newCard.rendered){me.renderItem(newCard,me.getRenderTarget(),owner.items.length);me.configureItem(newCard,0)}me.activeItem=newCard;if(newCard.fireEvent("beforeactivate",newCard,oldCard)===false){return false}if(oldCard&&oldCard.fireEvent("beforedeactivate",oldCard,newCard)===false){return false}if(me.sizeAllCards){me.onLayout()}else{me.setItemBox(newCard,me.getTargetBox())}me.owner.suspendLayout=true;if(oldCard){if(me.hideInactive){oldCard.hide()}oldCard.fireEvent("deactivate",oldCard,newCard)}me.owner.suspendLayout=false;if(newCard.hidden){newCard.show()}else{me.onLayout()}newCard.fireEvent("activate",newCard,oldCard);return newCard}return false},configureItem:function(item){item.layoutManagedHeight=0;item.layoutManagedWidth=0;this.callParent(arguments)}});Ext.define("Ext.layout.container.Column",{extend:"Ext.layout.container.Auto",alias:["layout.column"],alternateClassName:"Ext.layout.ColumnLayout",type:"column",itemCls:Ext.baseCSSPrefix+"column",targetCls:Ext.baseCSSPrefix+"column-layout-ct",scrollOffset:0,bindToOwnerCtComponent:false,getRenderTarget:function(){if(!this.innerCt){this.innerCt=this.getTarget().createChild({cls:Ext.baseCSSPrefix+"column-inner"});this.clearEl=this.innerCt.createChild({cls:Ext.baseCSSPrefix+"clear",role:"presentation"})}return this.innerCt},onLayout:function(){var me=this,target=me.getTarget(),items=me.getLayoutItems(),len=items.length,item,i,parallelMargins=[],itemParallelMargins,size,availableWidth,columnWidth;size=me.getLayoutTargetSize();if(size.width<len*10){return}if(me.adjustmentPass){if(Ext.isIE6||Ext.isIE7||Ext.isIEQuirks){size.width=me.adjustedWidth}}else{i=target.getStyle("overflow");if(i&&i!="hidden"){me.autoScroll=true;if(!(Ext.isIE6||Ext.isIE7||Ext.isIEQuirks)){target.setStyle("overflow","hidden");size=me.getLayoutTargetSize()}}}availableWidth=size.width-me.scrollOffset;me.innerCt.setWidth(availableWidth);for(i=0;i<len;i++){item=items[i];itemParallelMargins=parallelMargins[i]=item.getEl().getMargin("lr");if(!item.columnWidth){availableWidth-=(item.getWidth()+itemParallelMargins)}}availableWidth=availableWidth<0?0:availableWidth;for(i=0;i<len;i++){item=items[i];if(item.columnWidth){columnWidth=Math.floor(item.columnWidth*availableWidth)-parallelMargins[i];me.setItemSize(item,columnWidth,item.height)}else{me.layoutItem(item)}}if(!me.adjustmentPass&&me.autoScroll){target.setStyle("overflow","auto");me.adjustmentPass=(target.dom.scrollHeight>size.height);if(Ext.isIE6||Ext.isIE7||Ext.isIEQuirks){me.adjustedWidth=size.width-Ext.getScrollBarWidth()}else{target.setStyle("overflow","auto")}if(me.adjustmentPass){me.onLayout()}}delete me.adjustmentPass},configureItem:function(item){this.callParent(arguments);if(item.columnWidth){item.layoutManagedWidth=1}}});Ext.define("Ext.layout.container.Table",{alias:["layout.table"],extend:"Ext.layout.container.Auto",alternateClassName:"Ext.layout.TableLayout",monitorResize:false,type:"table",autoSize:true,clearEl:true,targetCls:Ext.baseCSSPrefix+"table-layout-ct",tableCls:Ext.baseCSSPrefix+"table-layout",cellCls:Ext.baseCSSPrefix+"table-layout-cell",tableAttrs:null,renderItems:function(items){var tbody=this.getTable().tBodies[0],rows=tbody.rows,i=0,len=items.length,cells,curCell,rowIdx,cellIdx,item,trEl,tdEl,itemCt;cells=this.calculateCells(items);for(;i<len;i++){curCell=cells[i];rowIdx=curCell.rowIdx;cellIdx=curCell.cellIdx;item=items[i];trEl=rows[rowIdx];if(!trEl){trEl=tbody.insertRow(rowIdx);if(this.trAttrs){trEl.set(this.trAttrs)}}itemCt=tdEl=Ext.get(trEl.cells[cellIdx]||trEl.insertCell(cellIdx));if(this.needsDivWrap()){itemCt=tdEl.first()||tdEl.createChild({tag:"div"});itemCt.setWidth(null)}if(!item.rendered){this.renderItem(item,itemCt,0)}else{if(!this.isValidParent(item,itemCt,0)){this.moveItem(item,itemCt,0)}}if(this.tdAttrs){tdEl.set(this.tdAttrs)}tdEl.set({colSpan:item.colspan||1,rowSpan:item.rowspan||1,id:item.cellId||"",cls:this.cellCls+" "+(item.cellCls||"")});if(!cells[i+1]||cells[i+1].rowIdx!==rowIdx){cellIdx++;while(trEl.cells[cellIdx]){trEl.deleteCell(cellIdx)}}}rowIdx++;while(tbody.rows[rowIdx]){tbody.deleteRow(rowIdx)}},afterLayout:function(){this.callParent();if(this.needsDivWrap()){Ext.Array.forEach(this.getLayoutItems(),function(item){Ext.fly(item.el.dom.parentNode).setWidth(item.getWidth())})}},calculateCells:function(items){var cells=[],rowIdx=0,colIdx=0,cellIdx=0,totalCols=this.columns||Infinity,rowspans=[],i=0,j,len=items.length,item;for(;i<len;i++){item=items[i];while(colIdx>=totalCols||rowspans[colIdx]>0){if(colIdx>=totalCols){colIdx=0;cellIdx=0;rowIdx++;for(j=0;j<totalCols;j++){if(rowspans[j]>0){rowspans[j]--}}}else{colIdx++}}cells.push({rowIdx:rowIdx,cellIdx:cellIdx});for(j=item.colspan||1;j;--j){rowspans[colIdx]=item.rowspan||1;++colIdx}++cellIdx}return cells},getTable:function(){var table=this.table;if(!table){table=this.table=this.getTarget().createChild(Ext.apply({tag:"table",role:"presentation",cls:this.tableCls,cellspacing:0,cn:{tag:"tbody"}},this.tableAttrs),null,true)}return table},needsDivWrap:function(){return Ext.isOpera10_5}});Ext.define("Ext.menu.Item",{extend:"Ext.Component",alias:"widget.menuitem",alternateClassName:"Ext.menu.TextItem",activeCls:Ext.baseCSSPrefix+"menu-item-active",ariaRole:"menuitem",canActivate:true,clickHideDelay:1,destroyMenu:true,disabledCls:Ext.baseCSSPrefix+"menu-item-disabled",hideOnClick:true,isMenuItem:true,menuAlign:"tl-tr?",menuExpandDelay:200,menuHideDelay:200,renderTpl:['<tpl if="plain">',"{text}","</tpl>",'<tpl if="!plain">','<a id="{id}-itemEl" class="'+Ext.baseCSSPrefix+'menu-item-link" href="{href}" <tpl if="hrefTarget">target="{hrefTarget}"</tpl> hidefocus="true" unselectable="on">','<img id="{id}-iconEl" src="{icon}" class="'+Ext.baseCSSPrefix+'menu-item-icon {iconCls}" />','<span id="{id}-textEl" class="'+Ext.baseCSSPrefix+'menu-item-text" <tpl if="menu">style="margin-right: 17px;"</tpl> >{text}</span>','<tpl if="menu">','<img id="{id}-arrowEl" src="{blank}" class="'+Ext.baseCSSPrefix+'menu-item-arrow" />',"</tpl>","</a>","</tpl>"],maskOnDisable:false,activate:function(){var me=this;if(!me.activated&&me.canActivate&&me.rendered&&!me.isDisabled()&&me.isVisible()){me.el.addCls(me.activeCls);me.focus();me.activated=true;me.fireEvent("activate",me)}},blur:function(){this.$focused=false;this.callParent(arguments)},deactivate:function(){var me=this;if(me.activated){me.el.removeCls(me.activeCls);me.blur();me.hideMenu();me.activated=false;me.fireEvent("deactivate",me)}},deferExpandMenu:function(){var me=this;if(!me.menu.rendered||!me.menu.isVisible()){me.parentMenu.activeChild=me.menu;me.menu.parentItem=me;me.menu.parentMenu=me.menu.ownerCt=me.parentMenu;me.menu.showBy(me,me.menuAlign)}},deferHideMenu:function(){if(this.menu.isVisible()){this.menu.hide()}},deferHideParentMenus:function(){Ext.menu.Manager.hideAll()},expandMenu:function(delay){var me=this;if(me.menu){clearTimeout(me.hideMenuTimer);if(delay===0){me.deferExpandMenu()}else{me.expandMenuTimer=Ext.defer(me.deferExpandMenu,Ext.isNumber(delay)?delay:me.menuExpandDelay,me)}}},focus:function(){this.$focused=true;this.callParent(arguments)},getRefItems:function(deep){var menu=this.menu,items;if(menu){items=menu.getRefItems(deep);items.unshift(menu)}return items||[]},hideMenu:function(delay){var me=this;if(me.menu){clearTimeout(me.expandMenuTimer);me.hideMenuTimer=Ext.defer(me.deferHideMenu,Ext.isNumber(delay)?delay:me.menuHideDelay,me)}},initComponent:function(){var me=this,prefix=Ext.baseCSSPrefix,cls=[prefix+"menu-item"];me.addEvents("activate","click","deactivate");if(me.plain){cls.push(prefix+"menu-item-plain")}if(me.cls){cls.push(me.cls)}me.cls=cls.join(" ");if(me.menu){me.menu=Ext.menu.Manager.get(me.menu)}me.callParent(arguments)},onClick:function(e){var me=this;if(!me.href){e.stopEvent()}if(me.disabled){return}if(me.hideOnClick){me.deferHideParentMenusTimer=Ext.defer(me.deferHideParentMenus,me.clickHideDelay,me)}Ext.callback(me.handler,me.scope||me,[me,e]);me.fireEvent("click",me,e);if(!me.hideOnClick){me.focus()}},onDestroy:function(){var me=this;clearTimeout(me.expandMenuTimer);clearTimeout(me.hideMenuTimer);clearTimeout(me.deferHideParentMenusTimer);if(me.menu){delete me.menu.parentItem;delete me.menu.parentMenu;delete me.menu.ownerCt;if(me.destroyMenu!==false){me.menu.destroy()}}me.callParent(arguments)},onRender:function(ct,pos){var me=this,blank=Ext.BLANK_IMAGE_URL;Ext.applyIf(me.renderData,{href:me.href||"#",hrefTarget:me.hrefTarget,icon:me.icon||blank,iconCls:me.iconCls+(me.checkChangeDisabled?" "+me.disabledCls:""),menu:Ext.isDefined(me.menu),plain:me.plain,text:me.text,blank:blank});me.addChildEls("itemEl","iconEl","textEl","arrowEl");me.callParent(arguments)},setHandler:function(fn,scope){this.handler=fn||null;this.scope=scope},setIconCls:function(iconCls){var me=this;if(me.iconEl){if(me.iconCls){me.iconEl.removeCls(me.iconCls)}if(iconCls){me.iconEl.addCls(iconCls)}}me.iconCls=iconCls},setText:function(text){var me=this,el=me.textEl||me.el;me.text=text;if(me.rendered){el.update(text||"");me.ownerCt.redoComponentLayout()}}});Ext.define("Ext.menu.CheckItem",{extend:"Ext.menu.Item",alias:"widget.menucheckitem",checkedCls:Ext.baseCSSPrefix+"menu-item-checked",uncheckedCls:Ext.baseCSSPrefix+"menu-item-unchecked",groupCls:Ext.baseCSSPrefix+"menu-group-icon",hideOnClick:false,afterRender:function(){var me=this;this.callParent();me.checked=!me.checked;me.setChecked(!me.checked,true)},initComponent:function(){var me=this;me.addEvents("beforecheckchange","checkchange");me.callParent(arguments);Ext.menu.Manager.registerCheckable(me);if(me.group){if(!me.iconCls){me.iconCls=me.groupCls}if(me.initialConfig.hideOnClick!==false){me.hideOnClick=true}}},disableCheckChange:function(){var me=this;if(me.iconEl){me.iconEl.addCls(me.disabledCls)}me.checkChangeDisabled=true},enableCheckChange:function(){var me=this;me.iconEl.removeCls(me.disabledCls);me.checkChangeDisabled=false},onClick:function(e){var me=this;if(!me.disabled&&!me.checkChangeDisabled&&!(me.checked&&me.group)){me.setChecked(!me.checked)}this.callParent([e])},onDestroy:function(){Ext.menu.Manager.unregisterCheckable(this);this.callParent(arguments)},setChecked:function(checked,suppressEvents){var me=this;if(me.checked!==checked&&(suppressEvents||me.fireEvent("beforecheckchange",me,checked)!==false)){if(me.el){me.el[checked?"addCls":"removeCls"](me.checkedCls)[!checked?"addCls":"removeCls"](me.uncheckedCls)}me.checked=checked;Ext.menu.Manager.onCheckChange(me,checked);if(!suppressEvents){Ext.callback(me.checkHandler,me.scope,[me,checked]);me.fireEvent("checkchange",me,checked)}}}});Ext.define("Ext.menu.KeyNav",{extend:"Ext.util.KeyNav",requires:["Ext.FocusManager"],constructor:function(menu){var me=this;me.menu=menu;me.callParent([menu.el,{down:me.down,enter:me.enter,esc:me.escape,left:me.left,right:me.right,space:me.enter,tab:me.tab,up:me.up}])},down:function(e){var me=this,fi=me.menu.focusedItem;if(fi&&e.getKey()==Ext.EventObject.DOWN&&me.isWhitelisted(fi)){return true}me.focusNextItem(1)},enter:function(e){var menu=this.menu,focused=menu.focusedItem;if(menu.activeItem){menu.onClick(e)}else{if(focused&&focused.isFormField){return true}}},escape:function(e){Ext.menu.Manager.hideAll()},focusNextItem:function(step){var menu=this.menu,items=menu.items,focusedItem=menu.focusedItem,startIdx=focusedItem?items.indexOf(focusedItem):-1,idx=startIdx+step;while(idx!=startIdx){if(idx<0){idx=items.length-1}else{if(idx>=items.length){idx=0}}var item=items.getAt(idx);if(menu.canActivateItem(item)){menu.setActiveItem(item);break}idx+=step}},isWhitelisted:function(item){return Ext.FocusManager.isWhitelisted(item)},left:function(e){var menu=this.menu,fi=menu.focusedItem,ai=menu.activeItem;if(fi&&this.isWhitelisted(fi)){return true}menu.hide();if(menu.parentMenu){menu.parentMenu.focus()}},right:function(e){var menu=this.menu,fi=menu.focusedItem,ai=menu.activeItem,am;if(fi&&this.isWhitelisted(fi)){return true}if(ai){am=menu.activeItem.menu;if(am){ai.expandMenu(0);Ext.defer(function(){am.setActiveItem(am.items.getAt(0))},25)}}},tab:function(e){var me=this;if(e.shiftKey){me.up(e)}else{me.down(e)}},up:function(e){var me=this,fi=me.menu.focusedItem;if(fi&&e.getKey()==Ext.EventObject.UP&&me.isWhitelisted(fi)){return true}me.focusNextItem(-1)}});Ext.define("Ext.menu.Separator",{extend:"Ext.menu.Item",alias:"widget.menuseparator",canActivate:false,focusable:false,hideOnClick:false,plain:true,separatorCls:Ext.baseCSSPrefix+"menu-item-separator",text:"&#160;",onRender:function(ct,pos){var me=this,sepCls=me.separatorCls;me.cls+=" "+sepCls;me.callParent(arguments)}});Ext.define("Ext.menu.Menu",{extend:"Ext.panel.Panel",alias:"widget.menu",requires:["Ext.layout.container.Fit","Ext.layout.container.VBox","Ext.menu.CheckItem","Ext.menu.Item","Ext.menu.KeyNav","Ext.menu.Manager","Ext.menu.Separator"],allowOtherMenus:false,ariaRole:"menu",defaultAlign:"tl-bl?",floating:true,constrain:true,hidden:true,hideMode:"visibility",ignoreParentClicks:false,isMenu:true,showSeparator:true,minWidth:120,initComponent:function(){var me=this,prefix=Ext.baseCSSPrefix,cls=[prefix+"menu"],bodyCls=me.bodyCls?[me.bodyCls]:[];me.addEvents("click","mouseenter","mouseleave","mouseover");Ext.menu.Manager.register(me);if(me.plain){cls.push(prefix+"menu-plain")}me.cls=cls.join(" ");bodyCls.unshift(prefix+"menu-body");me.bodyCls=bodyCls.join(" ");me.layout={type:"vbox",align:"stretchmax",autoSize:true,clearInnerCtOnLayout:true,overflowHandler:"Scroller"};if(me.floating===false&&me.initialConfig.hidden!==true){me.hidden=false}me.callParent(arguments);me.on("beforeshow",function(){var hasItems=!!me.items.length;if(hasItems&&me.rendered){me.el.setStyle("visibility",null)}return hasItems})},afterRender:function(ct){var me=this,prefix=Ext.baseCSSPrefix,space="&#160;";me.callParent(arguments);if(me.showSeparator){me.iconSepEl=me.layout.getRenderTarget().insertFirst({cls:prefix+"menu-icon-separator",html:space})}me.focusEl=me.el.createChild({cls:prefix+"menu-focus",tabIndex:"-1",html:space});me.mon(me.el,{click:me.onClick,mouseover:me.onMouseOver,scope:me});me.mouseMonitor=me.el.monitorMouseLeave(100,me.onMouseLeave,me);if(me.showSeparator&&((!Ext.isStrict&&Ext.isIE)||Ext.isIE6)){me.iconSepEl.setHeight(me.el.getHeight())}me.keyNav=Ext.create("Ext.menu.KeyNav",me)},afterLayout:function(){var me=this;me.callParent(arguments);if((!Ext.isStrict&&Ext.isIE)||Ext.isIE6){var innerCt=me.layout.getRenderTarget(),innerCtWidth=0,dis=me.dockedItems,l=dis.length,i=0,di,clone,newWidth;innerCtWidth=innerCt.getWidth();newWidth=innerCtWidth+me.body.getBorderWidth("lr")+me.body.getPadding("lr");me.body.setWidth(newWidth);for(;i<l,di=dis.getAt(i);i++){if(di.dock=="left"||di.dock=="right"){newWidth+=di.getWidth()}}me.el.setWidth(newWidth)}},getBubbleTarget:function(){return this.parentMenu||this.callParent()},canActivateItem:function(item){return item&&!item.isDisabled()&&item.isVisible()&&(item.canActivate||item.getXTypes().indexOf("menuitem")<0)},deactivateActiveItem:function(){var me=this;if(me.activeItem){me.activeItem.deactivate();if(!me.activeItem.activated){delete me.activeItem}}if(me.focusedItem&&!me.filtered){me.focusedItem.blur();if(!me.focusedItem.$focused){delete me.focusedItem}}},clearStretch:function(){if(this.rendered){this.items.each(function(item){if(item.componentLayout){delete item.componentLayout.lastComponentSize}if(item.el){item.el.setWidth(null)}})}},onAdd:function(){var me=this;me.clearStretch();me.callParent(arguments);if(Ext.isIE6||Ext.isIE7){Ext.Function.defer(me.doComponentLayout,10,me)}},onRemove:function(){this.clearStretch();this.callParent(arguments)},redoComponentLayout:function(){if(this.rendered){this.clearStretch();this.doComponentLayout()}},getFocusEl:function(){return this.focusEl},hide:function(){this.deactivateActiveItem();this.callParent(arguments)},getItemFromEvent:function(e){return this.getChildByElement(e.getTarget())},lookupComponent:function(cmp){var me=this;if(Ext.isString(cmp)){cmp=me.lookupItemFromString(cmp)}else{if(Ext.isObject(cmp)){cmp=me.lookupItemFromObject(cmp)}}cmp.minWidth=cmp.minWidth||me.minWidth;return cmp},lookupItemFromObject:function(cmp){var me=this,prefix=Ext.baseCSSPrefix,cls,intercept;if(!cmp.isComponent){if(!cmp.xtype){cmp=Ext.create("Ext.menu."+(Ext.isBoolean(cmp.checked)?"Check":"")+"Item",cmp)}else{cmp=Ext.ComponentManager.create(cmp,cmp.xtype)}}if(cmp.isMenuItem){cmp.parentMenu=me}if(!cmp.isMenuItem&&!cmp.dock){cls=[prefix+"menu-item",prefix+"menu-item-cmp"];intercept=Ext.Function.createInterceptor;cmp.focus=intercept(cmp.focus,function(){this.$focused=true},cmp);cmp.blur=intercept(cmp.blur,function(){this.$focused=false},cmp);if(!me.plain&&(cmp.indent===true||cmp.iconCls==="no-icon")){cls.push(prefix+"menu-item-indent")}if(cmp.rendered){cmp.el.addCls(cls)}else{cmp.cls=(cmp.cls?cmp.cls:"")+" "+cls.join(" ")}cmp.isMenuItem=true}return cmp},lookupItemFromString:function(cmp){return(cmp=="separator"||cmp=="-")?Ext.createWidget("menuseparator"):Ext.createWidget("menuitem",{canActivate:false,hideOnClick:false,plain:true,text:cmp})},onClick:function(e){var me=this,item;if(me.disabled){e.stopEvent();return}if((e.getTarget()==me.focusEl.dom)||e.within(me.layout.getRenderTarget())){item=me.getItemFromEvent(e)||me.activeItem;if(item){if(item.getXTypes().indexOf("menuitem")>=0){if(!item.menu||!me.ignoreParentClicks){item.onClick(e)}else{e.stopEvent()}}}me.fireEvent("click",me,item,e)}},onDestroy:function(){var me=this;Ext.menu.Manager.unregister(me);if(me.rendered){me.el.un(me.mouseMonitor);me.keyNav.destroy();delete me.keyNav}me.callParent(arguments)},onMouseLeave:function(e){var me=this;me.deactivateActiveItem();if(me.disabled){return}me.fireEvent("mouseleave",me,e)},onMouseOver:function(e){var me=this,fromEl=e.getRelatedTarget(),mouseEnter=!me.el.contains(fromEl),item=me.getItemFromEvent(e);if(mouseEnter&&me.parentMenu){me.parentMenu.setActiveItem(me.parentItem);me.parentMenu.mouseMonitor.mouseenter()}if(me.disabled){return}if(item){me.setActiveItem(item);if(item.activated&&item.expandMenu){item.expandMenu()}}if(mouseEnter){me.fireEvent("mouseenter",me,e)}me.fireEvent("mouseover",me,item,e)},setActiveItem:function(item){var me=this;if(item&&(item!=me.activeItem&&item!=me.focusedItem)){me.deactivateActiveItem();if(me.canActivateItem(item)){if(item.activate){item.activate();if(item.activated){me.activeItem=item;me.focusedItem=item;me.focus()}}else{item.focus();me.focusedItem=item}}item.el.scrollIntoView(me.layout.getRenderTarget())}},showBy:function(cmp,pos,off){var me=this,xy,region;if(me.floating&&cmp){me.layout.autoSize=true;me.doAutoRender();delete me.needsLayout;cmp=cmp.el||cmp;xy=me.el.getAlignToXY(cmp,pos||me.defaultAlign,off);if(me.floatParent){region=me.floatParent.getTargetEl().getViewRegion();xy[0]-=region.x;xy[1]-=region.y}me.showAt(xy)}return me},doConstrain:function(){var me=this,y=me.el.getY(),max,full,vector,returnY=y,normalY,parentEl,scrollTop,viewHeight;delete me.height;me.setSize();full=me.getHeight();if(me.floating){parentEl=Ext.fly(me.el.getScopeParent());scrollTop=parentEl.getScroll().top;viewHeight=parentEl.getViewSize().height;normalY=y-scrollTop;max=me.maxHeight?me.maxHeight:viewHeight-normalY;if(full>viewHeight){max=viewHeight;returnY=y-normalY}else{if(max<full){returnY=y-(full-max);max=full}}}else{max=me.getHeight()}if(me.maxHeight){max=Math.min(me.maxHeight,max)}if(full>max&&max>0){me.layout.autoSize=false;me.setHeight(max);if(me.showSeparator){me.iconSepEl.setHeight(me.layout.getRenderTarget().dom.scrollHeight)}}vector=me.getConstrainVector(me.el.getScopeParent());if(vector){me.setPosition(me.getPosition()[0]+vector[0])}me.el.setY(returnY)}});Ext.define("Ext.menu.ColorPicker",{extend:"Ext.menu.Menu",alias:"widget.colormenu",requires:["Ext.picker.Color"],hideOnClick:true,pickerId:null,initComponent:function(){var me=this,cfg=Ext.apply({},me.initialConfig);delete cfg.listeners;Ext.apply(me,{plain:true,showSeparator:false,items:Ext.applyIf({cls:Ext.baseCSSPrefix+"menu-color-item",id:me.pickerId,xtype:"colorpicker"},cfg)});me.callParent(arguments);me.picker=me.down("colorpicker");me.relayEvents(me.picker,["select"]);if(me.hideOnClick){me.on("select",me.hidePickerOnSelect,me)}},hidePickerOnSelect:function(){Ext.menu.Manager.hideAll()}});Ext.define("Ext.menu.DatePicker",{extend:"Ext.menu.Menu",alias:"widget.datemenu",requires:["Ext.picker.Date"],hideOnClick:true,pickerId:null,initComponent:function(){var me=this;Ext.apply(me,{showSeparator:false,plain:true,border:false,bodyPadding:0,items:Ext.applyIf({cls:Ext.baseCSSPrefix+"menu-date-item",id:me.pickerId,xtype:"datepicker"},me.initialConfig)});me.callParent(arguments);me.picker=me.down("datepicker");me.relayEvents(me.picker,["select"]);if(me.hideOnClick){me.on("select",me.hidePickerOnSelect,me)}},hidePickerOnSelect:function(){Ext.menu.Manager.hideAll()}});Ext.define("Ext.panel.Tool",{extend:"Ext.Component",requires:["Ext.tip.QuickTipManager"],alias:"widget.tool",baseCls:Ext.baseCSSPrefix+"tool",disabledCls:Ext.baseCSSPrefix+"tool-disabled",toolPressedCls:Ext.baseCSSPrefix+"tool-pressed",toolOverCls:Ext.baseCSSPrefix+"tool-over",ariaRole:"button",renderTpl:['<img id="{id}-toolEl" src="{blank}" class="{baseCls}-{type}" role="presentation"/>'],tooltipType:"qtip",stopEvent:true,initComponent:function(){var me=this;me.addEvents("click");me.type=me.type||me.id;Ext.applyIf(me.renderData,{baseCls:me.baseCls,blank:Ext.BLANK_IMAGE_URL,type:me.type});me.addChildEls("toolEl");me.tooltip=me.tooltip||me.qtip;me.callParent()},afterRender:function(){var me=this,attr;me.callParent(arguments);if(me.tooltip){if(Ext.isObject(me.tooltip)){Ext.tip.QuickTipManager.register(Ext.apply({target:me.id},me.tooltip))}else{attr=me.tooltipType=="qtip"?"data-qtip":"title";me.toolEl.dom.setAttribute(attr,me.tooltip)}}me.mon(me.toolEl,{click:me.onClick,mousedown:me.onMouseDown,mouseover:me.onMouseOver,mouseout:me.onMouseOut,scope:me})},setType:function(type){var me=this;me.type=type;if(me.rendered){me.toolEl.dom.className=me.baseCls+"-"+type}return me},bindTo:function(component){this.owner=component},onClick:function(e,target){var me=this,owner;if(me.disabled){return false}owner=me.owner||me.ownerCt;me.el.removeCls(me.toolPressedCls);me.el.removeCls(me.toolOverCls);if(me.stopEvent!==false){e.stopEvent()}Ext.callback(me.handler,me.scope||me,[e,target,owner,me]);me.fireEvent("click",me,e);return true},onDestroy:function(){if(Ext.isObject(this.tooltip)){Ext.tip.QuickTipManager.unregister(this.id)}this.callParent()},onMouseDown:function(){if(this.disabled){return false}this.el.addCls(this.toolPressedCls)},onMouseOver:function(){if(this.disabled){return false}this.el.addCls(this.toolOverCls)},onMouseOut:function(){this.el.removeCls(this.toolOverCls)}});Ext.define("Ext.resizer.Handle",{extend:"Ext.Component",handleCls:"",baseHandleCls:Ext.baseCSSPrefix+"resizable-handle",region:"",onRender:function(){this.addCls(this.baseHandleCls,this.baseHandleCls+"-"+this.region,this.handleCls);this.callParent(arguments);this.el.unselectable()}});Ext.define("Ext.resizer.Resizer",{mixins:{observable:"Ext.util.Observable"},uses:["Ext.resizer.ResizeTracker","Ext.Component"],alternateClassName:"Ext.Resizable",handleCls:Ext.baseCSSPrefix+"resizable-handle",pinnedCls:Ext.baseCSSPrefix+"resizable-pinned",overCls:Ext.baseCSSPrefix+"resizable-over",wrapCls:Ext.baseCSSPrefix+"resizable-wrap",dynamic:true,handles:"s e se",height:null,width:null,heightIncrement:0,widthIncrement:0,minHeight:20,minWidth:20,maxHeight:10000,maxWidth:10000,pinned:false,preserveRatio:false,transparent:false,possiblePositions:{n:"north",s:"south",e:"east",w:"west",se:"southeast",sw:"southwest",nw:"northwest",ne:"northeast"},constructor:function(config){var me=this,target,tag,handles=me.handles,handleCls,possibles,len,i=0,pos;this.addEvents("beforeresize","resizedrag","resize");if(Ext.isString(config)||Ext.isElement(config)||config.dom){target=config;config=arguments[1]||{};config.target=target}me.mixins.observable.constructor.call(me,config);target=me.target;if(target){if(target.isComponent){me.el=target.getEl();if(target.minWidth){me.minWidth=target.minWidth}if(target.minHeight){me.minHeight=target.minHeight}if(target.maxWidth){me.maxWidth=target.maxWidth}if(target.maxHeight){me.maxHeight=target.maxHeight}if(target.floating){if(!this.hasOwnProperty("handles")){this.handles="n ne e se s sw w nw"}}}else{me.el=me.target=Ext.get(target)}}else{me.target=me.el=Ext.get(me.el)}tag=me.el.dom.tagName;if(tag=="TEXTAREA"||tag=="IMG"){me.originalTarget=me.target;me.target=me.el=me.el.wrap({cls:me.wrapCls,id:me.el.id+"-rzwrap"});me.el.setPositioning(me.originalTarget.getPositioning());me.originalTarget.clearPositioning();var box=me.originalTarget.getBox();me.el.setBox(box)}me.el.position();if(me.pinned){me.el.addCls(me.pinnedCls)}me.resizeTracker=Ext.create("Ext.resizer.ResizeTracker",{disabled:me.disabled,target:me.target,constrainTo:me.constrainTo,overCls:me.overCls,throttle:me.throttle,originalTarget:me.originalTarget,delegate:"."+me.handleCls,dynamic:me.dynamic,preserveRatio:me.preserveRatio,heightIncrement:me.heightIncrement,widthIncrement:me.widthIncrement,minHeight:me.minHeight,maxHeight:me.maxHeight,minWidth:me.minWidth,maxWidth:me.maxWidth});me.resizeTracker.on("mousedown",me.onBeforeResize,me);me.resizeTracker.on("drag",me.onResize,me);me.resizeTracker.on("dragend",me.onResizeEnd,me);if(me.handles=="all"){me.handles="n s e w ne nw se sw"}handles=me.handles=me.handles.split(/ |\s*?[,;]\s*?/);possibles=me.possiblePositions;len=handles.length;handleCls=me.handleCls+" "+(this.target.isComponent?(me.target.baseCls+"-handle "):"")+me.handleCls+"-";for(;i<len;i++){if(handles[i]&&possibles[handles[i]]){pos=possibles[handles[i]];me[pos]=Ext.create("Ext.Component",{owner:this,region:pos,cls:handleCls+pos,renderTo:me.el});me[pos].el.unselectable();if(me.transparent){me[pos].el.setOpacity(0)}}}if(Ext.isNumber(me.width)){me.width=Ext.Number.constrain(me.width,me.minWidth,me.maxWidth)}if(Ext.isNumber(me.height)){me.height=Ext.Number.constrain(me.height,me.minHeight,me.maxHeight)}if(me.width!=null||me.height!=null){if(me.originalTarget){me.originalTarget.setWidth(me.width);me.originalTarget.setHeight(me.height)}me.resizeTo(me.width,me.height)}me.forceHandlesHeight()},disable:function(){this.resizeTracker.disable()},enable:function(){this.resizeTracker.enable()},onBeforeResize:function(tracker,e){var b=this.target.getBox();return this.fireEvent("beforeresize",this,b.width,b.height,e)},onResize:function(tracker,e){var me=this,b=me.target.getBox();me.forceHandlesHeight();return me.fireEvent("resizedrag",me,b.width,b.height,e)},onResizeEnd:function(tracker,e){var me=this,b=me.target.getBox();me.forceHandlesHeight();return me.fireEvent("resize",me,b.width,b.height,e)},resizeTo:function(width,height){this.target.setSize(width,height);this.fireEvent("resize",this,width,height,null)},getEl:function(){return this.el},getTarget:function(){return this.target},destroy:function(){var h;for(var i=0,l=this.handles.length;i<l;i++){h=this[this.possiblePositions[this.handles[i]]];delete h.owner;Ext.destroy(h)}},forceHandlesHeight:function(){var me=this,handle;if(Ext.isIE6){handle=me.east;if(handle){handle.setHeight(me.el.getHeight())}handle=me.west;if(handle){handle.setHeight(me.el.getHeight())}me.el.repaint()}}});Ext.define("Ext.resizer.ResizeTracker",{extend:"Ext.dd.DragTracker",dynamic:true,preserveRatio:false,constrainTo:null,proxyCls:Ext.baseCSSPrefix+"resizable-proxy",constructor:function(config){var me=this;if(!config.el){if(config.target.isComponent){me.el=config.target.getEl()}else{me.el=config.target}}this.callParent(arguments);if(me.preserveRatio&&me.minWidth&&me.minHeight){var widthRatio=me.minWidth/me.el.getWidth(),heightRatio=me.minHeight/me.el.getHeight();if(heightRatio>widthRatio){me.minWidth=me.el.getWidth()*heightRatio}else{me.minHeight=me.el.getHeight()*widthRatio}}if(me.throttle){var throttledResizeFn=Ext.Function.createThrottled(function(){Ext.resizer.ResizeTracker.prototype.resize.apply(me,arguments)},me.throttle);me.resize=function(box,direction,atEnd){if(atEnd){Ext.resizer.ResizeTracker.prototype.resize.apply(me,arguments)}else{throttledResizeFn.apply(null,arguments)}}}},onBeforeStart:function(e){this.startBox=this.el.getBox()},getDynamicTarget:function(){var me=this,target=me.target;if(me.dynamic){return target}else{if(!me.proxy){me.proxy=me.createProxy(target)}}me.proxy.show();return me.proxy},createProxy:function(target){var proxy,cls=this.proxyCls,renderTo;if(target.isComponent){proxy=target.getProxy().addCls(cls)}else{renderTo=Ext.getBody();if(Ext.scopeResetCSS){renderTo=Ext.getBody().createChild({cls:Ext.baseCSSPrefix+"reset"})}proxy=target.createProxy({tag:"div",cls:cls,id:target.id+"-rzproxy"},renderTo)}proxy.removeCls(Ext.baseCSSPrefix+"proxy-el");return proxy},onStart:function(e){this.activeResizeHandle=Ext.getCmp(this.getDragTarget().id);if(!this.dynamic){this.resize(this.startBox,{horizontal:"none",vertical:"none"})}},onDrag:function(e){if(this.dynamic||this.proxy){this.updateDimensions(e)}},updateDimensions:function(e,atEnd){var me=this,region=me.activeResizeHandle.region,offset=me.getOffset(me.constrainTo?"dragTarget":null),box=me.startBox,ratio,widthAdjust=0,heightAdjust=0,snappedWidth,snappedHeight,adjustX=0,adjustY=0,dragRatio,horizDir=offset[0]<0?"right":"left",vertDir=offset[1]<0?"down":"up",oppositeCorner,axis;switch(region){case"south":heightAdjust=offset[1];axis=2;break;case"north":heightAdjust=-offset[1];adjustY=-heightAdjust;axis=2;break;case"east":widthAdjust=offset[0];axis=1;break;case"west":widthAdjust=-offset[0];adjustX=-widthAdjust;axis=1;break;case"northeast":heightAdjust=-offset[1];adjustY=-heightAdjust;widthAdjust=offset[0];oppositeCorner=[box.x,box.y+box.height];axis=3;break;case"southeast":heightAdjust=offset[1];widthAdjust=offset[0];oppositeCorner=[box.x,box.y];axis=3;break;case"southwest":widthAdjust=-offset[0];adjustX=-widthAdjust;heightAdjust=offset[1];oppositeCorner=[box.x+box.width,box.y];axis=3;break;case"northwest":heightAdjust=-offset[1];adjustY=-heightAdjust;widthAdjust=-offset[0];adjustX=-widthAdjust;oppositeCorner=[box.x+box.width,box.y+box.height];axis=3;break}var newBox={width:box.width+widthAdjust,height:box.height+heightAdjust,x:box.x+adjustX,y:box.y+adjustY};snappedWidth=Ext.Number.snap(newBox.width,me.widthIncrement);snappedHeight=Ext.Number.snap(newBox.height,me.heightIncrement);if(snappedWidth!=newBox.width||snappedHeight!=newBox.height){switch(region){case"northeast":newBox.y-=snappedHeight-newBox.height;break;case"north":newBox.y-=snappedHeight-newBox.height;break;case"southwest":newBox.x-=snappedWidth-newBox.width;break;case"west":newBox.x-=snappedWidth-newBox.width;break;case"northwest":newBox.x-=snappedWidth-newBox.width;newBox.y-=snappedHeight-newBox.height}newBox.width=snappedWidth;newBox.height=snappedHeight}if(newBox.width<me.minWidth||newBox.width>me.maxWidth){newBox.width=Ext.Number.constrain(newBox.width,me.minWidth,me.maxWidth);if(adjustX){newBox.x=box.x+(box.width-newBox.width)}}else{me.lastX=newBox.x}if(newBox.height<me.minHeight||newBox.height>me.maxHeight){newBox.height=Ext.Number.constrain(newBox.height,me.minHeight,me.maxHeight);if(adjustY){newBox.y=box.y+(box.height-newBox.height)}}else{me.lastY=newBox.y}if(me.preserveRatio||e.shiftKey){var newHeight,newWidth;ratio=me.startBox.width/me.startBox.height;newHeight=Math.min(Math.max(me.minHeight,newBox.width/ratio),me.maxHeight);newWidth=Math.min(Math.max(me.minWidth,newBox.height*ratio),me.maxWidth);if(axis==1){newBox.height=newHeight}else{if(axis==2){newBox.width=newWidth}else{dragRatio=Math.abs(oppositeCorner[0]-this.lastXY[0])/Math.abs(oppositeCorner[1]-this.lastXY[1]);if(dragRatio>ratio){newBox.height=newHeight}else{newBox.width=newWidth}if(region=="northeast"){newBox.y=box.y-(newBox.height-box.height)}else{if(region=="northwest"){newBox.y=box.y-(newBox.height-box.height);newBox.x=box.x-(newBox.width-box.width)}else{if(region=="southwest"){newBox.x=box.x-(newBox.width-box.width)}}}}}}if(heightAdjust===0){vertDir="none"}if(widthAdjust===0){horizDir="none"}me.resize(newBox,{horizontal:horizDir,vertical:vertDir},atEnd)},getResizeTarget:function(atEnd){return atEnd?this.target:this.getDynamicTarget()},resize:function(box,direction,atEnd){var target=this.getResizeTarget(atEnd);if(target.isComponent){if(target.floating){target.setPagePosition(box.x,box.y)}target.setSize(box.width,box.height)}else{target.setBox(box);if(this.originalTarget){this.originalTarget.setBox(box)}}},onEnd:function(e){this.updateDimensions(e,true);if(this.proxy){this.proxy.hide()}}});Ext.define("Ext.resizer.SplitterTracker",{extend:"Ext.dd.DragTracker",requires:["Ext.util.Region"],enabled:true,overlayCls:Ext.baseCSSPrefix+"resizable-overlay",getPrevCmp:function(){var splitter=this.getSplitter();return splitter.previousSibling()},getNextCmp:function(){var splitter=this.getSplitter();return splitter.nextSibling()},onBeforeStart:function(e){var me=this,prevCmp=me.getPrevCmp(),nextCmp=me.getNextCmp(),collapseEl=me.getSplitter().collapseEl,overlay;if(collapseEl&&(e.getTarget()===me.getSplitter().collapseEl.dom)){return false}if(nextCmp.collapsed||prevCmp.collapsed){return false}overlay=me.overlay=Ext.getBody().createChild({cls:me.overlayCls,html:"&#160;"});overlay.unselectable();overlay.setSize(Ext.Element.getViewWidth(true),Ext.Element.getViewHeight(true));overlay.show();me.prevBox=prevCmp.getEl().getBox();me.nextBox=nextCmp.getEl().getBox();me.constrainTo=me.calculateConstrainRegion()},onStart:function(e){var splitter=this.getSplitter();splitter.addCls(splitter.baseCls+"-active")},calculateConstrainRegion:function(){var me=this,splitter=me.getSplitter(),splitWidth=splitter.getWidth(),defaultMin=splitter.defaultSplitMin,orient=splitter.orientation,prevBox=me.prevBox,prevCmp=me.getPrevCmp(),nextBox=me.nextBox,nextCmp=me.getNextCmp(),prevConstrainRegion,nextConstrainRegion;if(orient==="vertical"){prevConstrainRegion=Ext.create("Ext.util.Region",prevBox.y,(prevCmp.maxWidth?prevBox.x+prevCmp.maxWidth:nextBox.right-(nextCmp.minWidth||defaultMin))+splitWidth,prevBox.bottom,prevBox.x+(prevCmp.minWidth||defaultMin));nextConstrainRegion=Ext.create("Ext.util.Region",nextBox.y,nextBox.right-(nextCmp.minWidth||defaultMin),nextBox.bottom,(nextCmp.maxWidth?nextBox.right-nextCmp.maxWidth:prevBox.x+(prevBox.minWidth||defaultMin))-splitWidth)}else{prevConstrainRegion=Ext.create("Ext.util.Region",prevBox.y+(prevCmp.minHeight||defaultMin),prevBox.right,(prevCmp.maxHeight?prevBox.y+prevCmp.maxHeight:nextBox.bottom-(nextCmp.minHeight||defaultMin))+splitWidth,prevBox.x);nextConstrainRegion=Ext.create("Ext.util.Region",(nextCmp.maxHeight?nextBox.bottom-nextCmp.maxHeight:prevBox.y+(prevCmp.minHeight||defaultMin))-splitWidth,nextBox.right,nextBox.bottom-(nextCmp.minHeight||defaultMin),nextBox.x)}return prevConstrainRegion.intersect(nextConstrainRegion)},performResize:function(e){var me=this,offset=me.getOffset("dragTarget"),splitter=me.getSplitter(),orient=splitter.orientation,prevCmp=me.getPrevCmp(),nextCmp=me.getNextCmp(),owner=splitter.ownerCt,layout=owner.getLayout();owner.suspendLayout=true;if(orient==="vertical"){if(prevCmp){if(!prevCmp.maintainFlex){delete prevCmp.flex;prevCmp.setSize(me.prevBox.width+offset[0],prevCmp.getHeight())}}if(nextCmp){if(!nextCmp.maintainFlex){delete nextCmp.flex;nextCmp.setSize(me.nextBox.width-offset[0],nextCmp.getHeight())}}}else{if(prevCmp){if(!prevCmp.maintainFlex){delete prevCmp.flex;prevCmp.setSize(prevCmp.getWidth(),me.prevBox.height+offset[1])}}if(nextCmp){if(!nextCmp.maintainFlex){delete nextCmp.flex;nextCmp.setSize(prevCmp.getWidth(),me.nextBox.height-offset[1])}}}delete owner.suspendLayout;layout.onLayout()},endDrag:function(){var me=this;if(me.overlay){me.overlay.remove();delete me.overlay}me.callParent(arguments)},onEnd:function(e){var me=this,splitter=me.getSplitter();splitter.removeCls(splitter.baseCls+"-active");me.performResize()},onDrag:function(e){var me=this,offset=me.getOffset("dragTarget"),splitter=me.getSplitter(),splitEl=splitter.getEl(),orient=splitter.orientation;if(orient==="vertical"){splitEl.setX(me.startRegion.left+offset[0])}else{splitEl.setY(me.startRegion.top+offset[1])}},getSplitter:function(){return Ext.getCmp(this.getDragCt().id)}});Ext.define("Ext.selection.CellModel",{extend:"Ext.selection.Model",alias:"selection.cellmodel",requires:["Ext.util.KeyNav"],enableKeyNav:true,preventWrap:false,constructor:function(){this.addEvents("deselect","select");this.callParent(arguments)},bindComponent:function(view){var me=this;me.primaryView=view;me.views=me.views||[];me.views.push(view);me.bind(view.getStore(),true);view.on({cellmousedown:me.onMouseDown,refresh:me.onViewRefresh,scope:me});if(me.enableKeyNav){me.initKeyNav(view)}},initKeyNav:function(view){var me=this;if(!view.rendered){view.on("render",Ext.Function.bind(me.initKeyNav,me,[view],0),me,{single:true});return}view.el.set({tabIndex:-1});me.keyNav=Ext.create("Ext.util.KeyNav",view.el,{up:me.onKeyUp,down:me.onKeyDown,right:me.onKeyRight,left:me.onKeyLeft,tab:me.onKeyTab,scope:me})},getHeaderCt:function(){return this.primaryView.headerCt},onKeyUp:function(e,t){this.move("up",e)},onKeyDown:function(e,t){this.move("down",e)},onKeyLeft:function(e,t){this.move("left",e)},onKeyRight:function(e,t){this.move("right",e)},move:function(dir,e){var me=this,pos=me.primaryView.walkCells(me.getCurrentPosition(),dir,e,me.preventWrap);if(pos){me.setCurrentPosition(pos)}return pos},getCurrentPosition:function(){return this.position},setCurrentPosition:function(pos){var me=this;if(me.position){me.onCellDeselect(me.position)}if(pos){me.onCellSelect(pos)}me.position=pos},onMouseDown:function(view,cell,cellIndex,record,row,rowIndex,e){this.setCurrentPosition({row:rowIndex,column:cellIndex})},onCellSelect:function(position){var me=this,store=me.view.getStore(),record=store.getAt(position.row);me.doSelect(record);me.primaryView.onCellSelect(position);me.primaryView.onCellFocus(position);me.fireEvent("select",me,record,position.row,position.column)},onCellDeselect:function(position){var me=this,store=me.view.getStore(),record=store.getAt(position.row);me.doDeselect(record);me.primaryView.onCellDeselect(position);me.fireEvent("deselect",me,record,position.row,position.column)},onKeyTab:function(e,t){var me=this,direction=e.shiftKey?"left":"right",editingPlugin=me.view.editingPlugin,position=me.move(direction,e);if(editingPlugin&&position&&me.wasEditing){editingPlugin.startEditByPosition(position)}delete me.wasEditing},onEditorTab:function(editingPlugin,e){var me=this,direction=e.shiftKey?"left":"right",position=me.move(direction,e);if(position){editingPlugin.startEditByPosition(position);me.wasEditing=true}},refresh:function(){var pos=this.getCurrentPosition();if(pos){this.onCellSelect(pos)}},onViewRefresh:function(){var pos=this.getCurrentPosition();if(pos){this.onCellDeselect(pos);this.setCurrentPosition(null)}},selectByPosition:function(position){this.setCurrentPosition(position)}});Ext.define("Ext.selection.RowModel",{extend:"Ext.selection.Model",alias:"selection.rowmodel",requires:["Ext.util.KeyNav"],deltaScroll:5,enableKeyNav:true,ignoreRightMouseSelection:true,constructor:function(){this.addEvents("beforedeselect","beforeselect","deselect","select");this.callParent(arguments)},bindComponent:function(view){var me=this;me.views=me.views||[];me.views.push(view);me.bind(view.getStore(),true);view.on({itemmousedown:me.onRowMouseDown,scope:me});if(me.enableKeyNav){me.initKeyNav(view)}},initKeyNav:function(view){var me=this;if(!view.rendered){view.on("render",Ext.Function.bind(me.initKeyNav,me,[view],0),me,{single:true});return}view.el.set({tabIndex:-1});me.keyNav=new Ext.util.KeyNav(view.el,{up:me.onKeyUp,down:me.onKeyDown,right:me.onKeyRight,left:me.onKeyLeft,pageDown:me.onKeyPageDown,pageUp:me.onKeyPageUp,home:me.onKeyHome,end:me.onKeyEnd,scope:me});view.el.on(Ext.EventManager.getKeyEvent(),me.onKeyPress,me)},getRowsVisible:function(){var rowsVisible=false,view=this.views[0],row=view.getNode(0),rowHeight,gridViewHeight;if(row){rowHeight=Ext.fly(row).getHeight();gridViewHeight=view.el.getHeight();rowsVisible=Math.floor(gridViewHeight/rowHeight)}return rowsVisible},onKeyEnd:function(e,t){var me=this,last=me.store.getAt(me.store.getCount()-1);if(last){if(e.shiftKey){me.selectRange(last,me.lastFocused||0);me.setLastFocused(last)}else{if(e.ctrlKey){me.setLastFocused(last)}else{me.doSelect(last)}}}},onKeyHome:function(e,t){var me=this,first=me.store.getAt(0);if(first){if(e.shiftKey){me.selectRange(first,me.lastFocused||0);me.setLastFocused(first)}else{if(e.ctrlKey){me.setLastFocused(first)}else{me.doSelect(first,false)}}}},onKeyPageUp:function(e,t){var me=this,rowsVisible=me.getRowsVisible(),selIdx,prevIdx,prevRecord,currRec;if(rowsVisible){selIdx=me.lastFocused?me.store.indexOf(me.lastFocused):0;prevIdx=selIdx-rowsVisible;if(prevIdx<0){prevIdx=0}prevRecord=me.store.getAt(prevIdx);if(e.shiftKey){currRec=me.store.getAt(selIdx);me.selectRange(prevRecord,currRec,e.ctrlKey,"up");me.setLastFocused(prevRecord)}else{if(e.ctrlKey){e.preventDefault();me.setLastFocused(prevRecord)}else{me.doSelect(prevRecord)}}}},onKeyPageDown:function(e,t){var me=this,rowsVisible=me.getRowsVisible(),selIdx,nextIdx,nextRecord,currRec;if(rowsVisible){selIdx=me.lastFocused?me.store.indexOf(me.lastFocused):0;nextIdx=selIdx+rowsVisible;if(nextIdx>=me.store.getCount()){nextIdx=me.store.getCount()-1}nextRecord=me.store.getAt(nextIdx);if(e.shiftKey){currRec=me.store.getAt(selIdx);me.selectRange(nextRecord,currRec,e.ctrlKey,"down");me.setLastFocused(nextRecord)}else{if(e.ctrlKey){e.preventDefault();me.setLastFocused(nextRecord)}else{me.doSelect(nextRecord)}}}},onKeyPress:function(e,t){if(e.getKey()===e.SPACE){e.stopEvent();var me=this,record=me.lastFocused;if(record){if(me.isSelected(record)){me.doDeselect(record,false)}else{me.doSelect(record,true)}}}},onKeyUp:function(e,t){var me=this,view=me.views[0],idx=me.store.indexOf(me.lastFocused),record;if(idx>0){record=me.store.getAt(idx-1);if(e.shiftKey&&me.lastFocused){if(me.isSelected(me.lastFocused)&&me.isSelected(record)){me.doDeselect(me.lastFocused,true);me.setLastFocused(record)}else{if(!me.isSelected(me.lastFocused)){me.doSelect(me.lastFocused,true);me.doSelect(record,true)}else{me.doSelect(record,true)}}}else{if(e.ctrlKey){me.setLastFocused(record)}else{me.doSelect(record)}}}},onKeyDown:function(e,t){var me=this,view=me.views[0],idx=me.store.indexOf(me.lastFocused),record;if(idx+1<me.store.getCount()){record=me.store.getAt(idx+1);if(me.selected.getCount()===0){me.doSelect(record)}else{if(e.shiftKey&&me.lastFocused){if(me.isSelected(me.lastFocused)&&me.isSelected(record)){me.doDeselect(me.lastFocused,true);me.setLastFocused(record)}else{if(!me.isSelected(me.lastFocused)){me.doSelect(me.lastFocused,true);me.doSelect(record,true)}else{me.doSelect(record,true)}}}else{if(e.ctrlKey){me.setLastFocused(record)}else{me.doSelect(record)}}}}},scrollByDeltaX:function(delta){var view=this.views[0],section=view.up(),hScroll=section.horizontalScroller;if(hScroll){hScroll.scrollByDeltaX(delta)}},onKeyLeft:function(e,t){this.scrollByDeltaX(-this.deltaScroll)},onKeyRight:function(e,t){this.scrollByDeltaX(this.deltaScroll)},onRowMouseDown:function(view,record,item,index,e){view.el.focus();if(!this.allowRightMouseSelection(e)){return}this.selectWithEvent(record,e)},allowRightMouseSelection:function(e){var disallow=this.ignoreRightMouseSelection&&e.button!==0;if(disallow){disallow=this.hasSelection()}return !disallow},onSelectChange:function(record,isSelected,suppressEvent,commitFn){var me=this,views=me.views,viewsLn=views.length,store=me.store,rowIdx=store.indexOf(record),eventName=isSelected?"select":"deselect",i=0;if((suppressEvent||me.fireEvent("before"+eventName,me,record,rowIdx))!==false&&commitFn()!==false){for(;i<viewsLn;i++){if(isSelected){views[i].onRowSelect(rowIdx,suppressEvent)}else{views[i].onRowDeselect(rowIdx,suppressEvent)}}if(!suppressEvent){me.fireEvent(eventName,me,record,rowIdx)}}},onLastFocusChanged:function(oldFocused,newFocused,supressFocus){var views=this.views,viewsLn=views.length,store=this.store,rowIdx,i=0;if(oldFocused){rowIdx=store.indexOf(oldFocused);if(rowIdx!=-1){for(;i<viewsLn;i++){views[i].onRowFocus(rowIdx,false)}}}if(newFocused){rowIdx=store.indexOf(newFocused);if(rowIdx!=-1){for(i=0;i<viewsLn;i++){views[i].onRowFocus(rowIdx,true,supressFocus)}}}},onEditorTab:function(editingPlugin,e){var me=this,view=me.views[0],record=editingPlugin.getActiveRecord(),header=editingPlugin.getActiveColumn(),position=view.getPosition(record,header),direction=e.shiftKey?"left":"right",newPosition=view.walkCells(position,direction,e,this.preventWrap);if(newPosition){editingPlugin.startEditByPosition(newPosition)}},selectByPosition:function(position){var record=this.store.getAt(position.row);this.select(record)}});Ext.define("Ext.selection.CheckboxModel",{alias:"selection.checkboxmodel",extend:"Ext.selection.RowModel",mode:"MULTI",injectCheckbox:0,checkOnly:false,headerWidth:24,checkerOnCls:Ext.baseCSSPrefix+"grid-hd-checker-on",bindComponent:function(view){var me=this;me.sortable=false;me.callParent(arguments);if(!me.hasLockedHeader()||view.headerCt.lockedCt){view.headerCt.on("headerclick",me.onHeaderClick,me);me.addCheckbox(true);me.mon(view.ownerCt,"reconfigure",me.addCheckbox,me)}},hasLockedHeader:function(){var hasLocked=false;Ext.each(this.views,function(view){if(view.headerCt.lockedCt){hasLocked=true;return false}});return hasLocked},addCheckbox:function(initial){var me=this,checkbox=me.injectCheckbox,view=me.views[0],headerCt=view.headerCt;if(checkbox!==false){if(checkbox=="first"){checkbox=0}else{if(checkbox=="last"){checkbox=headerCt.getColumnCount()}}headerCt.add(checkbox,me.getHeaderConfig())}if(initial!==true){view.refresh()}},toggleUiHeader:function(isChecked){var view=this.views[0],headerCt=view.headerCt,checkHd=headerCt.child("gridcolumn[isCheckerHd]");if(checkHd){if(isChecked){checkHd.el.addCls(this.checkerOnCls)}else{checkHd.el.removeCls(this.checkerOnCls)}}},onHeaderClick:function(headerCt,header,e){if(header.isCheckerHd){e.stopEvent();var isChecked=header.el.hasCls(Ext.baseCSSPrefix+"grid-hd-checker-on");if(isChecked){this.deselectAll(true)}else{this.selectAll(true)}}},getHeaderConfig:function(){var me=this;return{isCheckerHd:true,text:"&#160;",width:me.headerWidth,sortable:false,draggable:false,resizable:false,hideable:false,menuDisabled:true,dataIndex:"",cls:Ext.baseCSSPrefix+"column-header-checkbox ",renderer:Ext.Function.bind(me.renderer,me),locked:me.hasLockedHeader()}},renderer:function(value,metaData,record,rowIndex,colIndex,store,view){metaData.tdCls=Ext.baseCSSPrefix+"grid-cell-special";return'<div class="'+Ext.baseCSSPrefix+'grid-row-checker">&#160;</div>'},onRowMouseDown:function(view,record,item,index,e){view.el.focus();var me=this,checker=e.getTarget("."+Ext.baseCSSPrefix+"grid-row-checker");if(!me.allowRightMouseSelection(e)){return}if(me.checkOnly&&!checker){return}if(checker){var mode=me.getSelectionMode();if(mode!=="SINGLE"){me.setSelectionMode("SIMPLE")}me.selectWithEvent(record,e);me.setSelectionMode(mode)}else{me.selectWithEvent(record,e)}},onSelectChange:function(){this.callParent(arguments);var hdSelectStatus=this.selected.getCount()===this.store.getCount();this.toggleUiHeader(hdSelectStatus)}});Ext.define("Ext.selection.TreeModel",{extend:"Ext.selection.RowModel",alias:"selection.treemodel",pruneRemoved:false,onKeyRight:function(e,t){var focused=this.getLastFocused(),view=this.view;if(focused){if(focused.isExpanded()){this.onKeyDown(e,t)}else{if(!focused.isLeaf()){view.expand(focused)}}}},onKeyLeft:function(e,t){var focused=this.getLastFocused(),view=this.view,viewSm=view.getSelectionModel(),parentNode,parentRecord;if(focused){parentNode=focused.parentNode;if(focused.isExpanded()){view.collapse(focused)}else{if(parentNode&&!parentNode.isRoot()){if(e.shiftKey){viewSm.selectRange(parentNode,focused,e.ctrlKey,"up");viewSm.setLastFocused(parentNode)}else{if(e.ctrlKey){viewSm.setLastFocused(parentNode)}else{viewSm.select(parentNode)}}}}}},onKeyPress:function(e,t){var key=e.getKey(),selected,checked;if(key===e.SPACE||key===e.ENTER){e.stopEvent();selected=this.getLastSelected();if(selected){this.view.onCheckChange(selected)}}else{this.callParent(arguments)}}});Ext.define("Ext.slider.Thumb",{requires:["Ext.dd.DragTracker","Ext.util.Format"],topZIndex:10000,constructor:function(config){var me=this;Ext.apply(me,config||{},{cls:Ext.baseCSSPrefix+"slider-thumb",constrain:false});me.callParent([config]);if(me.slider.vertical){Ext.apply(me,Ext.slider.Thumb.Vertical)}},render:function(){var me=this;me.el=me.slider.innerEl.insertFirst({cls:me.cls});if(me.disabled){me.disable()}me.initEvents()},move:function(v,animate){if(!animate){this.el.setLeft(v)}else{Ext.create("Ext.fx.Anim",{target:this.el,duration:350,to:{left:v}})}},bringToFront:function(){this.el.setStyle("zIndex",this.topZIndex)},sendToBack:function(){this.el.setStyle("zIndex","")},enable:function(){var me=this;me.disabled=false;if(me.el){me.el.removeCls(me.slider.disabledCls)}},disable:function(){var me=this;me.disabled=true;if(me.el){me.el.addCls(me.slider.disabledCls)}},initEvents:function(){var me=this,el=me.el;me.tracker=Ext.create("Ext.dd.DragTracker",{onBeforeStart:Ext.Function.bind(me.onBeforeDragStart,me),onStart:Ext.Function.bind(me.onDragStart,me),onDrag:Ext.Function.bind(me.onDrag,me),onEnd:Ext.Function.bind(me.onDragEnd,me),tolerance:3,autoStart:300,overCls:Ext.baseCSSPrefix+"slider-thumb-over"});me.tracker.initEl(el)},onBeforeDragStart:function(e){if(this.disabled){return false}else{this.slider.promoteThumb(this);return true}},onDragStart:function(e){var me=this;me.el.addCls(Ext.baseCSSPrefix+"slider-thumb-drag");me.dragging=true;me.dragStartValue=me.value;me.slider.fireEvent("dragstart",me.slider,e,me)},onDrag:function(e){var me=this,slider=me.slider,index=me.index,newValue=me.getNewValue(),above,below;if(me.constrain){above=slider.thumbs[index+1];below=slider.thumbs[index-1];if(below!==undefined&&newValue<=below.value){newValue=below.value}if(above!==undefined&&newValue>=above.value){newValue=above.value}}slider.setValue(index,newValue,false);slider.fireEvent("drag",slider,e,me)},getNewValue:function(){var slider=this.slider,pos=slider.innerEl.translatePoints(this.tracker.getXY());return Ext.util.Format.round(slider.reverseValue(pos.left),slider.decimalPrecision)},onDragEnd:function(e){var me=this,slider=me.slider,value=me.value;me.el.removeCls(Ext.baseCSSPrefix+"slider-thumb-drag");me.dragging=false;slider.fireEvent("dragend",slider,e);if(me.dragStartValue!=value){slider.fireEvent("changecomplete",slider,value,me)}},destroy:function(){Ext.destroy(this.tracker)},statics:{Vertical:{getNewValue:function(){var slider=this.slider,innerEl=slider.innerEl,pos=innerEl.translatePoints(this.tracker.getXY()),bottom=innerEl.getHeight()-pos.top;return Ext.util.Format.round(slider.reverseValue(bottom),slider.decimalPrecision)},move:function(v,animate){if(!animate){this.el.setBottom(v)}else{Ext.create("Ext.fx.Anim",{target:this.el,duration:350,to:{bottom:v}})}}}}});Ext.define("Ext.slider.Tip",{extend:"Ext.tip.Tip",minWidth:10,alias:"widget.slidertip",offsets:[0,-10],isSliderTip:true,init:function(slider){var me=this;slider.on({scope:me,dragstart:me.onSlide,drag:me.onSlide,dragend:me.hide,destroy:me.destroy})},onSlide:function(slider,e,thumb){var me=this;me.show();me.update(me.getText(thumb));me.doComponentLayout();me.el.alignTo(thumb.el,"b-t?",me.offsets)},getText:function(thumb){return String(thumb.value)}});Ext.define("Ext.slider.Multi",{extend:"Ext.form.field.Base",alias:"widget.multislider",alternateClassName:"Ext.slider.MultiSlider",requires:["Ext.slider.Thumb","Ext.slider.Tip","Ext.Number","Ext.util.Format","Ext.Template","Ext.layout.component.field.Slider"],fieldSubTpl:['<div id="{id}" class="'+Ext.baseCSSPrefix+'slider {fieldCls} {vertical}" aria-valuemin="{minValue}" aria-valuemax="{maxValue}" aria-valuenow="{value}" aria-valuetext="{value}">','<div id="{cmpId}-endEl" class="'+Ext.baseCSSPrefix+'slider-end" role="presentation">','<div id="{cmpId}-innerEl" class="'+Ext.baseCSSPrefix+'slider-inner" role="presentation">','<a id="{cmpId}-focusEl" class="'+Ext.baseCSSPrefix+'slider-focus" href="#" tabIndex="-1" hidefocus="on" role="presentation"></a>',"</div>","</div>","</div>",{disableFormats:true,compiled:true}],vertical:false,minValue:0,maxValue:100,decimalPrecision:0,keyIncrement:1,increment:0,clickRange:[5,15],clickToChange:true,animate:true,dragging:false,constrainThumbs:true,componentLayout:"sliderfield",useTips:true,tipText:null,ariaRole:"slider",initValue:function(){var me=this,extValue=Ext.value,values=extValue(me.values,[extValue(me.value,extValue(me.minValue,0))]),i=0,len=values.length;me.originalValue=values;for(;i<len;i++){me.addThumb(values[i])}},initComponent:function(){var me=this,tipPlug,hasTip;me.thumbs=[];me.keyIncrement=Math.max(me.increment,me.keyIncrement);me.addEvents("beforechange","change","changecomplete","dragstart","drag","dragend");if(me.vertical){Ext.apply(me,Ext.slider.Multi.Vertical)}me.callParent();if(me.useTips){tipPlug=me.tipText?{getText:me.tipText}:{};me.plugins=me.plugins||[];Ext.each(me.plugins,function(plug){if(plug.isSliderTip){hasTip=true;return false}});if(!hasTip){me.plugins.push(Ext.create("Ext.slider.Tip",tipPlug))}}},addThumb:function(value){var me=this,thumb=Ext.create("Ext.slider.Thumb",{value:value,slider:me,index:me.thumbs.length,constrain:me.constrainThumbs});me.thumbs.push(thumb);if(me.rendered){thumb.render()}return thumb},promoteThumb:function(topThumb){var thumbs=this.thumbs,ln=thumbs.length,zIndex,thumb,i;for(i=0;i<ln;i++){thumb=thumbs[i];if(thumb==topThumb){thumb.bringToFront()}else{thumb.sendToBack()}}},onRender:function(){var me=this,i=0,thumbs=me.thumbs,len=thumbs.length,thumb;Ext.applyIf(me.subTplData,{vertical:me.vertical?Ext.baseCSSPrefix+"slider-vert":Ext.baseCSSPrefix+"slider-horz",minValue:me.minValue,maxValue:me.maxValue,value:me.value});me.addChildEls("endEl","innerEl","focusEl");me.callParent(arguments);for(;i<len;i++){thumbs[i].render()}thumb=me.innerEl.down("."+Ext.baseCSSPrefix+"slider-thumb");me.halfThumb=(me.vertical?thumb.getHeight():thumb.getWidth())/2},onChange:function(slider,v){this.setValue(v,undefined,true)},initEvents:function(){var me=this;me.mon(me.el,{scope:me,mousedown:me.onMouseDown,keydown:me.onKeyDown,change:me.onChange});me.focusEl.swallowEvent("click",true)},onMouseDown:function(e){var me=this,thumbClicked=false,i=0,thumbs=me.thumbs,len=thumbs.length,local;if(me.disabled){return}for(;i<len;i++){thumbClicked=thumbClicked||e.target==thumbs[i].el.dom}if(me.clickToChange&&!thumbClicked){local=me.innerEl.translatePoints(e.getXY());me.onClickChange(local)}me.focus()},onClickChange:function(local){var me=this,thumb,index;if(local.top>me.clickRange[0]&&local.top<me.clickRange[1]){thumb=me.getNearest(local,"left");if(!thumb.disabled){index=thumb.index;me.setValue(index,Ext.util.Format.round(me.reverseValue(local.left),me.decimalPrecision),undefined,true)}}},getNearest:function(local,prop){var me=this,localValue=prop=="top"?me.innerEl.getHeight()-local[prop]:local[prop],clickValue=me.reverseValue(localValue),nearestDistance=(me.maxValue-me.minValue)+5,index=0,nearest=null,thumbs=me.thumbs,i=0,len=thumbs.length,thumb,value,dist;for(;i<len;i++){thumb=me.thumbs[i];value=thumb.value;dist=Math.abs(value-clickValue);if(Math.abs(dist<=nearestDistance)){nearest=thumb;index=i;nearestDistance=dist}}return nearest},onKeyDown:function(e){var me=this,k,val;if(me.disabled||me.thumbs.length!==1){e.preventDefault();return}k=e.getKey();switch(k){case e.UP:case e.RIGHT:e.stopEvent();val=e.ctrlKey?me.maxValue:me.getValue(0)+me.keyIncrement;me.setValue(0,val,undefined,true);break;case e.DOWN:case e.LEFT:e.stopEvent();val=e.ctrlKey?me.minValue:me.getValue(0)-me.keyIncrement;me.setValue(0,val,undefined,true);break;default:e.preventDefault()}},afterRender:function(){var me=this,i=0,thumbs=me.thumbs,len=thumbs.length,thumb,v;me.callParent(arguments);for(;i<len;i++){thumb=thumbs[i];if(thumb.value!==undefined){v=me.normalizeValue(thumb.value);if(v!==thumb.value){me.setValue(i,v,false)}else{thumb.move(me.translateValue(v),false)}}}},getRatio:function(){var w=this.innerEl.getWidth(),v=this.maxValue-this.minValue;return v===0?w:(w/v)},normalizeValue:function(v){var me=this;v=Ext.Number.snap(v,this.increment,this.minValue,this.maxValue);v=Ext.util.Format.round(v,me.decimalPrecision);v=Ext.Number.constrain(v,me.minValue,me.maxValue);return v},setMinValue:function(val){var me=this,i=0,thumbs=me.thumbs,len=thumbs.length,t;me.minValue=val;if(me.rendered){me.inputEl.dom.setAttribute("aria-valuemin",val)}for(;i<len;++i){t=thumbs[i];t.value=t.value<val?val:t.value}me.syncThumbs()},setMaxValue:function(val){var me=this,i=0,thumbs=me.thumbs,len=thumbs.length,t;me.maxValue=val;if(me.rendered){me.inputEl.dom.setAttribute("aria-valuemax",val)}for(;i<len;++i){t=thumbs[i];t.value=t.value>val?val:t.value}me.syncThumbs()},setValue:function(index,value,animate,changeComplete){var me=this,thumb=me.thumbs[index];value=me.normalizeValue(value);if(value!==thumb.value&&me.fireEvent("beforechange",me,value,thumb.value,thumb)!==false){thumb.value=value;if(me.rendered){me.inputEl.set({"aria-valuenow":value,"aria-valuetext":value});thumb.move(me.translateValue(value),Ext.isDefined(animate)?animate!==false:me.animate);me.fireEvent("change",me,value,thumb);if(changeComplete){me.fireEvent("changecomplete",me,value,thumb)}}}},translateValue:function(v){var ratio=this.getRatio();return(v*ratio)-(this.minValue*ratio)-this.halfThumb},reverseValue:function(pos){var ratio=this.getRatio();return(pos+(this.minValue*ratio))/ratio},focus:function(){this.focusEl.focus(10)},onDisable:function(){var me=this,i=0,thumbs=me.thumbs,len=thumbs.length,thumb,el,xy;me.callParent();for(;i<len;i++){thumb=thumbs[i];el=thumb.el;thumb.disable();if(Ext.isIE){xy=el.getXY();el.hide();me.innerEl.addCls(me.disabledCls).dom.disabled=true;if(!me.thumbHolder){me.thumbHolder=me.endEl.createChild({cls:Ext.baseCSSPrefix+"slider-thumb "+me.disabledCls})}me.thumbHolder.show().setXY(xy)}}},onEnable:function(){var me=this,i=0,thumbs=me.thumbs,len=thumbs.length,thumb,el;this.callParent();for(;i<len;i++){thumb=thumbs[i];el=thumb.el;thumb.enable();if(Ext.isIE){me.innerEl.removeCls(me.disabledCls).dom.disabled=false;if(me.thumbHolder){me.thumbHolder.hide()}el.show();me.syncThumbs()}}},syncThumbs:function(){if(this.rendered){var thumbs=this.thumbs,length=thumbs.length,i=0;for(;i<length;i++){thumbs[i].move(this.translateValue(thumbs[i].value))}}},getValue:function(index){return Ext.isNumber(index)?this.thumbs[index].value:this.getValues()},getValues:function(){var values=[],i=0,thumbs=this.thumbs,len=thumbs.length;for(;i<len;i++){values.push(thumbs[i].value)}return values},getSubmitValue:function(){var me=this;return(me.disabled||!me.submitValue)?null:me.getValue()},reset:function(){var me=this,Array=Ext.Array;Array.forEach(Array.from(me.originalValue),function(val,i){me.setValue(i,val)});me.clearInvalid();delete me.wasValid},beforeDestroy:function(){var me=this;Ext.destroy(me.innerEl,me.endEl,me.focusEl);Ext.each(me.thumbs,function(thumb){Ext.destroy(thumb)},me);me.callParent()},statics:{Vertical:{getRatio:function(){var h=this.innerEl.getHeight(),v=this.maxValue-this.minValue;return h/v},onClickChange:function(local){var me=this,thumb,index,bottom;if(local.left>me.clickRange[0]&&local.left<me.clickRange[1]){thumb=me.getNearest(local,"top");if(!thumb.disabled){index=thumb.index;bottom=me.reverseValue(me.innerEl.getHeight()-local.top);me.setValue(index,Ext.util.Format.round(me.minValue+bottom,me.decimalPrecision),undefined,true)}}}}}});Ext.define("Ext.slider.Single",{extend:"Ext.slider.Multi",alias:["widget.slider","widget.sliderfield"],alternateClassName:["Ext.Slider","Ext.form.SliderField","Ext.slider.SingleSlider","Ext.slider.Slider"],getValue:function(){return this.callParent([0])},setValue:function(value,animate){var args=Ext.toArray(arguments),len=args.length;if(len==1||(len<=3&&typeof arguments[1]!="number")){args.unshift(0)}return this.callParent(args)},getNearest:function(){return this.thumbs[0]}});Ext.define("Ext.tab.Tab",{extend:"Ext.button.Button",alias:"widget.tab",requires:["Ext.layout.component.Tab","Ext.util.KeyNav"],componentLayout:"tab",isTab:true,baseCls:Ext.baseCSSPrefix+"tab",activeCls:"active",closableCls:"closable",closable:true,closeText:"Close Tab",active:false,scale:false,position:"top",initComponent:function(){var me=this;me.addEvents("activate","deactivate","beforeclose","close");me.callParent(arguments);if(me.card){me.setCard(me.card)}},onRender:function(){var me=this,tabBar=me.up("tabbar"),tabPanel=me.up("tabpanel");me.addClsWithUI(me.position);me.syncClosableUI();if(!me.minWidth){me.minWidth=(tabBar)?tabBar.minTabWidth:me.minWidth;if(!me.minWidth&&tabPanel){me.minWidth=tabPanel.minTabWidth}if(me.minWidth&&me.iconCls){me.minWidth+=25}}if(!me.maxWidth){me.maxWidth=(tabBar)?tabBar.maxTabWidth:me.maxWidth;if(!me.maxWidth&&tabPanel){me.maxWidth=tabPanel.maxTabWidth}}me.callParent(arguments);if(me.active){me.activate(true)}me.syncClosableElements();me.keyNav=Ext.create("Ext.util.KeyNav",me.el,{enter:me.onEnterKey,del:me.onDeleteKey,scope:me})},enable:function(silent){var me=this;me.callParent(arguments);me.removeClsWithUI(me.position+"-disabled");return me},disable:function(silent){var me=this;me.callParent(arguments);me.addClsWithUI(me.position+"-disabled");return me},onDestroy:function(){var me=this;if(me.closeEl){me.closeEl.un("click",Ext.EventManager.preventDefault);me.closeEl=null}Ext.destroy(me.keyNav);delete me.keyNav;me.callParent(arguments)},setClosable:function(closable){var me=this;closable=(!arguments.length||!!closable);if(me.closable!=closable){me.closable=closable;if(me.card){me.card.closable=closable}me.syncClosableUI();if(me.rendered){me.syncClosableElements();me.doComponentLayout();if(me.ownerCt){me.ownerCt.doLayout()}}}},syncClosableElements:function(){var me=this;if(me.closable){if(!me.closeEl){me.closeEl=me.el.createChild({tag:"a",cls:me.baseCls+"-close-btn",href:"#",title:me.closeText}).on("click",Ext.EventManager.preventDefault)}}else{var closeEl=me.closeEl;if(closeEl){closeEl.un("click",Ext.EventManager.preventDefault);closeEl.remove();me.closeEl=null}}},syncClosableUI:function(){var me=this,classes=[me.closableCls,me.closableCls+"-"+me.position];if(me.closable){me.addClsWithUI(classes)}else{me.removeClsWithUI(classes)}},setCard:function(card){var me=this;me.card=card;me.setText(me.title||card.title);me.setIconCls(me.iconCls||card.iconCls)},onCloseClick:function(){var me=this;if(me.fireEvent("beforeclose",me)!==false){if(me.tabBar){if(me.tabBar.closeTab(me)===false){return}}else{me.fireEvent("close",me)}}},fireClose:function(){this.fireEvent("close",this)},onEnterKey:function(e){var me=this;if(me.tabBar){me.tabBar.onClick(e,me.el)}},onDeleteKey:function(e){var me=this;if(me.closable){me.onCloseClick()}},activate:function(supressEvent){var me=this;me.active=true;me.addClsWithUI([me.activeCls,me.position+"-"+me.activeCls]);if(supressEvent!==true){me.fireEvent("activate",me)}},deactivate:function(supressEvent){var me=this;me.active=false;me.removeClsWithUI([me.activeCls,me.position+"-"+me.activeCls]);if(supressEvent!==true){me.fireEvent("deactivate",me)}}});Ext.define("Ext.tab.Bar",{extend:"Ext.panel.Header",alias:"widget.tabbar",baseCls:Ext.baseCSSPrefix+"tab-bar",requires:["Ext.tab.Tab","Ext.FocusManager"],isTabBar:true,defaultType:"tab",plain:false,renderTpl:['<div id="{id}-body" class="{baseCls}-body <tpl if="bodyCls"> {bodyCls}</tpl> <tpl if="ui"> {baseCls}-body-{ui}<tpl for="uiCls"> {parent.baseCls}-body-{parent.ui}-{.}</tpl></tpl>"<tpl if="bodyStyle"> style="{bodyStyle}"</tpl>></div>','<div id="{id}-strip" class="{baseCls}-strip<tpl if="ui"> {baseCls}-strip-{ui}<tpl for="uiCls"> {parent.baseCls}-strip-{parent.ui}-{.}</tpl></tpl>"></div>'],initComponent:function(){var me=this,keys;if(me.plain){me.setUI(me.ui+"-plain")}me.addClsWithUI(me.dock);me.addEvents("change");me.addChildEls("body","strip");me.callParent(arguments);me.layout.align=(me.orientation=="vertical")?"left":"top";me.layout.overflowHandler=Ext.create("Ext.layout.container.boxOverflow.Scroller",me.layout);me.remove(me.titleCmp);delete me.titleCmp;keys=me.orientation=="vertical"?["up","down"]:["left","right"];Ext.FocusManager.subscribe(me,{keys:keys});Ext.apply(me.renderData,{bodyCls:me.bodyCls})},onAdd:function(tab){tab.position=this.dock;this.callParent(arguments)},onRemove:function(tab){var me=this;if(tab===me.previousTab){me.previousTab=null}if(me.items.getCount()===0){me.activeTab=null}me.callParent(arguments)},afterRender:function(){var me=this;me.mon(me.el,{scope:me,click:me.onClick,delegate:"."+Ext.baseCSSPrefix+"tab"});me.callParent(arguments)},afterComponentLayout:function(){var me=this;me.callParent(arguments);me.strip.setWidth(me.el.getWidth())},onClick:function(e,target){var tab=Ext.getCmp(target.id),tabPanel=this.tabPanel;target=e.getTarget();if(tab&&tab.isDisabled&&!tab.isDisabled()){if(tab.closable&&target===tab.closeEl.dom){tab.onCloseClick()}else{if(tabPanel){tabPanel.setActiveTab(tab.card)}else{this.setActiveTab(tab)}tab.focus()}}},closeTab:function(tab){var me=this,card=tab.card,tabPanel=me.tabPanel,nextTab;if(card&&card.fireEvent("beforeclose",card)===false){return false}if(tab.active&&me.items.getCount()>1){nextTab=me.previousTab||tab.next("tab")||me.items.first();me.setActiveTab(nextTab);if(tabPanel){tabPanel.setActiveTab(nextTab.card)}}tab.fireClose();me.remove(tab);if(tabPanel&&card){card.fireEvent("close",card);tabPanel.remove(card)}if(nextTab){nextTab.focus()}},setActiveTab:function(tab){if(tab.disabled){return}var me=this;if(me.activeTab){me.previousTab=me.activeTab;me.activeTab.deactivate()}tab.activate();if(me.rendered){me.layout.layout();tab.el&&tab.el.scrollIntoView(me.layout.getRenderTarget())}me.activeTab=tab;me.fireEvent("change",me,tab,tab.card)}});Ext.define("Ext.tab.Panel",{extend:"Ext.panel.Panel",alias:"widget.tabpanel",alternateClassName:["Ext.TabPanel"],requires:["Ext.layout.container.Card","Ext.tab.Bar"],tabPosition:"top",removePanelHeader:true,plain:false,itemCls:"x-tabpanel-child",minTabWidth:undefined,maxTabWidth:undefined,deferredRender:true,initComponent:function(){var me=this,dockedItems=me.dockedItems||[],activeTab=me.activeTab||0;me.layout=Ext.create("Ext.layout.container.Card",Ext.apply({owner:me,deferredRender:me.deferredRender,itemCls:me.itemCls},me.layout));me.tabBar=Ext.create("Ext.tab.Bar",Ext.apply({},me.tabBar,{dock:me.tabPosition,plain:me.plain,border:me.border,cardLayout:me.layout,tabPanel:me}));if(dockedItems&&!Ext.isArray(dockedItems)){dockedItems=[dockedItems]}dockedItems.push(me.tabBar);me.dockedItems=dockedItems;me.addEvents("beforetabchange","tabchange");me.callParent(arguments);me.setActiveTab(activeTab);me.on("afterlayout",me.afterInitialLayout,me,{single:true})},afterInitialLayout:function(){var me=this,card=me.getComponent(me.activeTab);if(card){me.layout.setActiveItem(card)}},setActiveTab:function(card){var me=this,previous;card=me.getComponent(card);if(card){previous=me.getActiveTab();if(previous&&previous!==card&&me.fireEvent("beforetabchange",me,card,previous)===false){return false}me.tabBar.setActiveTab(card.tab);me.activeTab=card;if(me.rendered){me.layout.setActiveItem(card)}if(previous&&previous!==card){me.fireEvent("tabchange",me,card,previous)}}},getActiveTab:function(){return this.activeTab},getTabBar:function(){return this.tabBar},onAdd:function(item,index){var me=this,cfg=item.tabConfig||{},defaultConfig={xtype:"tab",card:item,disabled:item.disabled,closable:item.closable,hidden:item.hidden,tabBar:me.tabBar};if(item.closeText){defaultConfig.closeText=item.closeText}cfg=Ext.applyIf(cfg,defaultConfig);item.tab=me.tabBar.insert(index,cfg);item.on({scope:me,enable:me.onItemEnable,disable:me.onItemDisable,beforeshow:me.onItemBeforeShow,iconchange:me.onItemIconChange,titlechange:me.onItemTitleChange});if(item.isPanel){if(me.removePanelHeader){item.preventHeader=true;if(item.rendered){item.updateHeader()}}if(item.isPanel&&me.border){item.setBorder(false)}}if(this.rendered&&me.items.getCount()===1){me.setActiveTab(0)}},onItemEnable:function(item){item.tab.enable()},onItemDisable:function(item){item.tab.disable()},onItemBeforeShow:function(item){if(item!==this.activeTab){this.setActiveTab(item);return false}},onItemIconChange:function(item,newIconCls){item.tab.setIconCls(newIconCls);this.getTabBar().doLayout()},onItemTitleChange:function(item,newTitle){item.tab.setText(newTitle);this.getTabBar().doLayout()},doRemove:function(item,autoDestroy){var me=this,items=me.items,hasItemsLeft=items.getCount()>1;if(me.destroying||!hasItemsLeft){me.activeTab=null}else{if(item===me.activeTab){me.setActiveTab(item.next()||items.getAt(0))}}me.callParent(arguments);delete item.tab.card;delete item.tab},onRemove:function(item,autoDestroy){var me=this;item.un({scope:me,enable:me.onItemEnable,disable:me.onItemDisable,beforeshow:me.onItemBeforeShow});if(!me.destroying&&item.tab.ownerCt==me.tabBar){me.tabBar.remove(item.tab)}}});Ext.define("Ext.toolbar.Spacer",{extend:"Ext.Component",alias:"widget.tbspacer",alternateClassName:"Ext.Toolbar.Spacer",baseCls:Ext.baseCSSPrefix+"toolbar-spacer",focusable:false});Ext.define("Ext.tree.Column",{extend:"Ext.grid.column.Column",alias:"widget.treecolumn",initComponent:function(){var origRenderer=this.renderer||this.defaultRenderer,origScope=this.scope||window;this.renderer=function(value,metaData,record,rowIdx,colIdx,store,view){var buf=[],format=Ext.String.format,depth=record.getDepth(),treePrefix=Ext.baseCSSPrefix+"tree-",elbowPrefix=treePrefix+"elbow-",expanderCls=treePrefix+"expander",imgText='<img src="{1}" class="{0}" />',checkboxText='<input type="button" role="checkbox" class="{0}" {1} />',formattedValue=origRenderer.apply(origScope,arguments),href=record.get("href"),target=record.get("hrefTarget"),cls=record.get("cls");while(record){if(!record.isRoot()||(record.isRoot()&&view.rootVisible)){if(record.getDepth()===depth){buf.unshift(format(imgText,treePrefix+"icon "+treePrefix+"icon"+(record.get("icon")?"-inline ":(record.isLeaf()?"-leaf ":"-parent "))+(record.get("iconCls")||""),record.get("icon")||Ext.BLANK_IMAGE_URL));if(record.get("checked")!==null){buf.unshift(format(checkboxText,(treePrefix+"checkbox")+(record.get("checked")?" "+treePrefix+"checkbox-checked":""),record.get("checked")?'aria-checked="true"':""));if(record.get("checked")){metaData.tdCls+=(" "+treePrefix+"checked")}}if(record.isLast()){if(record.isExpandable()){buf.unshift(format(imgText,(elbowPrefix+"end-plus "+expanderCls),Ext.BLANK_IMAGE_URL))}else{buf.unshift(format(imgText,(elbowPrefix+"end"),Ext.BLANK_IMAGE_URL))}}else{if(record.isExpandable()){buf.unshift(format(imgText,(elbowPrefix+"plus "+expanderCls),Ext.BLANK_IMAGE_URL))}else{buf.unshift(format(imgText,(treePrefix+"elbow"),Ext.BLANK_IMAGE_URL))}}}else{if(record.isLast()||record.getDepth()===0){buf.unshift(format(imgText,(elbowPrefix+"empty"),Ext.BLANK_IMAGE_URL))}else{if(record.getDepth()!==0){buf.unshift(format(imgText,(elbowPrefix+"line"),Ext.BLANK_IMAGE_URL))}}}}record=record.parentNode}if(href){buf.push('<a href="',href,'" target="',target,'">',formattedValue,"</a>")}else{buf.push(formattedValue)}if(cls){metaData.tdCls+=" "+cls}return buf.join("")};this.callParent(arguments)},defaultRenderer:function(value){return value}});Ext.define("Ext.tree.View",{extend:"Ext.view.Table",alias:"widget.treeview",loadingCls:Ext.baseCSSPrefix+"grid-tree-loading",expandedCls:Ext.baseCSSPrefix+"grid-tree-node-expanded",expanderSelector:"."+Ext.baseCSSPrefix+"tree-expander",checkboxSelector:"."+Ext.baseCSSPrefix+"tree-checkbox",expanderIconOverCls:Ext.baseCSSPrefix+"tree-expander-over",nodeAnimWrapCls:Ext.baseCSSPrefix+"tree-animator-wrap",blockRefresh:true,rootVisible:true,expandDuration:250,collapseDuration:250,toggleOnDblClick:true,initComponent:function(){var me=this;if(me.initialConfig.animate===undefined){me.animate=Ext.enableFx}me.store=Ext.create("Ext.data.NodeStore",{recursive:true,rootVisible:me.rootVisible,listeners:{beforeexpand:me.onBeforeExpand,expand:me.onExpand,beforecollapse:me.onBeforeCollapse,collapse:me.onCollapse,scope:me}});if(me.node){me.setRootNode(me.node)}me.animQueue={};me.callParent(arguments)},processUIEvent:function(e){if(e.getTarget("."+this.nodeAnimWrapCls,this.el)){return false}return this.callParent(arguments)},onClear:function(){this.store.removeAll()},setRootNode:function(node){var me=this;me.store.setNode(node);me.node=node;if(!me.rootVisible){node.expand()}},onRender:function(){var me=this,el;me.callParent(arguments);el=me.el;el.on({scope:me,delegate:me.expanderSelector,mouseover:me.onExpanderMouseOver,mouseout:me.onExpanderMouseOut});el.on({scope:me,delegate:me.checkboxSelector,click:me.onCheckboxChange})},onCheckboxChange:function(e,t){var me=this,item=e.getTarget(me.getItemSelector(),me.getTargetEl());if(item){me.onCheckChange(me.getRecord(item))}},onCheckChange:function(record){var checked=record.get("checked");if(Ext.isBoolean(checked)){checked=!checked;record.set("checked",checked);this.fireEvent("checkchange",record,checked)}},getChecked:function(){var checked=[];this.node.cascadeBy(function(rec){if(rec.get("checked")){checked.push(rec)}});return checked},isItemChecked:function(rec){return rec.get("checked")},createAnimWrap:function(record,index){var thHtml="",headerCt=this.panel.headerCt,headers=headerCt.getGridColumns(),i=0,len=headers.length,item,node=this.getNode(record),tmpEl,nodeEl;for(;i<len;i++){item=headers[i];thHtml+='<th style="width: '+(item.hidden?0:item.getDesiredWidth())+'px; height: 0px;"></th>'}nodeEl=Ext.get(node);tmpEl=nodeEl.insertSibling({tag:"tr",html:['<td colspan="'+headerCt.getColumnCount()+'">','<div class="'+this.nodeAnimWrapCls+'">','<table class="'+Ext.baseCSSPrefix+'grid-table" style="width: '+headerCt.getFullWidth()+'px;"><tbody>',thHtml,"</tbody></table>","</div>","</td>"].join("")},"after");return{record:record,node:node,el:tmpEl,expanding:false,collapsing:false,animating:false,animateEl:tmpEl.down("div"),targetEl:tmpEl.down("tbody")}},getAnimWrap:function(parent){if(!this.animate){return null}while(parent){if(parent.animWrap){return parent.animWrap}parent=parent.parentNode}return null},doAdd:function(nodes,records,index){var me=this,record=records[0],parent=record.parentNode,a=me.all.elements,relativeIndex=0,animWrap=me.getAnimWrap(parent),targetEl,children,len;if(!animWrap||!animWrap.expanding){me.resetScrollers();return me.callParent(arguments)}parent=animWrap.record;targetEl=animWrap.targetEl;children=targetEl.dom.childNodes;len=children.length-1;relativeIndex=index-me.indexOf(parent)-1;if(!len||relativeIndex>=len){targetEl.appendChild(nodes)}else{Ext.fly(children[relativeIndex+1]).insertSibling(nodes,"before",true)}Ext.Array.insert(a,index,nodes);if(animWrap.isAnimating){me.onExpand(parent)}},beginBulkUpdate:function(){this.bulkUpdate=true;this.ownerCt.changingScrollbars=true},endBulkUpdate:function(){var me=this,ownerCt=me.ownerCt;me.bulkUpdate=false;me.ownerCt.changingScrollbars=true;me.resetScrollers()},onRemove:function(ds,record,index){var me=this,bulk=me.bulkUpdate;me.doRemove(record,index);if(!bulk){me.updateIndexes(index)}if(me.store.getCount()===0){me.refresh()}if(!bulk){me.fireEvent("itemremove",record,index)}},doRemove:function(record,index){var me=this,parent=record.parentNode,all=me.all,animWrap=me.getAnimWrap(record),node=all.item(index).dom;if(!animWrap||!animWrap.collapsing){me.resetScrollers();return me.callParent(arguments)}animWrap.targetEl.appendChild(node);all.removeElement(index)},onBeforeExpand:function(parent,records,index){var me=this,animWrap;if(!me.rendered||!me.animate){return}if(me.getNode(parent)){animWrap=me.getAnimWrap(parent);if(!animWrap){animWrap=parent.animWrap=me.createAnimWrap(parent);animWrap.animateEl.setHeight(0)}else{if(animWrap.collapsing){animWrap.targetEl.select(me.itemSelector).remove()}}animWrap.expanding=true;animWrap.collapsing=false}},onExpand:function(parent){var me=this,queue=me.animQueue,id=parent.getId(),animWrap,animateEl,targetEl,queueItem;if(me.singleExpand){me.ensureSingleExpand(parent)}animWrap=me.getAnimWrap(parent);if(!animWrap){me.resetScrollers();return}animateEl=animWrap.animateEl;targetEl=animWrap.targetEl;animateEl.stopAnimation();queue[id]=true;animateEl.slideIn("t",{duration:me.expandDuration,listeners:{scope:me,lastframe:function(){animWrap.el.insertSibling(targetEl.query(me.itemSelector),"before");animWrap.el.remove();me.resetScrollers();delete animWrap.record.animWrap;delete queue[id]}}});animWrap.isAnimating=true},resetScrollers:function(){if(!this.bulkUpdate){var panel=this.panel;panel.determineScrollbars();panel.invalidateScroller()}},onBeforeCollapse:function(parent,records,index){var me=this,animWrap;if(!me.rendered||!me.animate){return}if(me.getNode(parent)){animWrap=me.getAnimWrap(parent);if(!animWrap){animWrap=parent.animWrap=me.createAnimWrap(parent,index)}else{if(animWrap.expanding){animWrap.targetEl.select(this.itemSelector).remove()}}animWrap.expanding=false;animWrap.collapsing=true}},onCollapse:function(parent){var me=this,queue=me.animQueue,id=parent.getId(),animWrap=me.getAnimWrap(parent),animateEl,targetEl;if(!animWrap){me.resetScrollers();return}animateEl=animWrap.animateEl;targetEl=animWrap.targetEl;queue[id]=true;animateEl.stopAnimation();animateEl.slideOut("t",{duration:me.collapseDuration,listeners:{scope:me,lastframe:function(){animWrap.el.remove();delete animWrap.record.animWrap;me.resetScrollers();delete queue[id]}}});animWrap.isAnimating=true},isAnimating:function(node){return !!this.animQueue[node.getId()]},collectData:function(records){var data=this.callParent(arguments),rows=data.rows,len=rows.length,i=0,row,record;for(;i<len;i++){row=rows[i];record=records[i];if(record.get("qtip")){row.rowAttr='data-qtip="'+record.get("qtip")+'"';if(record.get("qtitle")){row.rowAttr+=' data-qtitle="'+record.get("qtitle")+'"'}}if(record.isExpanded()){row.rowCls=(row.rowCls||"")+" "+this.expandedCls}if(record.isLoading()){row.rowCls=(row.rowCls||"")+" "+this.loadingCls}}return data},expand:function(record,deep,callback,scope){return record.expand(deep,callback,scope)},collapse:function(record,deep,callback,scope){return record.collapse(deep,callback,scope)},toggle:function(record){this[record.isExpanded()?"collapse":"expand"](record)},onItemDblClick:function(record,item,index){this.callParent(arguments);if(this.toggleOnDblClick){this.toggle(record)}},onBeforeItemMouseDown:function(record,item,index,e){if(e.getTarget(this.expanderSelector,item)){return false}return this.callParent(arguments)},onItemClick:function(record,item,index,e){if(e.getTarget(this.expanderSelector,item)){this.toggle(record);return false}return this.callParent(arguments)},onExpanderMouseOver:function(e,t){e.getTarget(this.cellSelector,10,true).addCls(this.expanderIconOverCls)},onExpanderMouseOut:function(e,t){e.getTarget(this.cellSelector,10,true).removeCls(this.expanderIconOverCls)},getTreeStore:function(){return this.panel.store},ensureSingleExpand:function(node){var parent=node.parentNode;if(parent){parent.eachChild(function(child){if(child!==node&&child.isExpanded()){child.collapse()}})}}});Ext.define("Ext.tree.Panel",{extend:"Ext.panel.Table",alias:"widget.treepanel",alternateClassName:["Ext.tree.TreePanel","Ext.TreePanel"],requires:["Ext.tree.View","Ext.selection.TreeModel","Ext.tree.Column"],viewType:"treeview",selType:"treemodel",treeCls:Ext.baseCSSPrefix+"tree-panel",deferRowRender:false,lines:true,useArrows:false,singleExpand:false,ddConfig:{enableDrag:true,enableDrop:true},rootVisible:true,displayField:"text",root:null,normalCfgCopy:["displayField","root","singleExpand","useArrows","lines","rootVisible","scroll"],lockedCfgCopy:["displayField","root","singleExpand","useArrows","lines","rootVisible"],constructor:function(config){config=config||{};if(config.animate===undefined){config.animate=Ext.enableFx}this.enableAnimations=config.animate;delete config.animate;this.callParent([config])},initComponent:function(){var me=this,cls=[me.treeCls];if(me.useArrows){cls.push(Ext.baseCSSPrefix+"tree-arrows");me.lines=false}if(me.lines){cls.push(Ext.baseCSSPrefix+"tree-lines")}else{if(!me.useArrows){cls.push(Ext.baseCSSPrefix+"tree-no-lines")}}if(Ext.isString(me.store)){me.store=Ext.StoreMgr.lookup(me.store)}else{if(!me.store||Ext.isObject(me.store)&&!me.store.isStore){me.store=Ext.create("Ext.data.TreeStore",Ext.apply({},me.store||{},{root:me.root,fields:me.fields,model:me.model,folderSort:me.folderSort}))}else{if(me.root){me.store=Ext.data.StoreManager.lookup(me.store);me.store.setRootNode(me.root);if(me.folderSort!==undefined){me.store.folderSort=me.folderSort;me.store.sort()}}}}me.viewConfig=Ext.applyIf(me.viewConfig||{},{rootVisible:me.rootVisible,animate:me.enableAnimations,singleExpand:me.singleExpand,node:me.store.getRootNode(),hideHeaders:me.hideHeaders});me.mon(me.store,{scope:me,rootchange:me.onRootChange,clear:me.onClear});me.relayEvents(me.store,["beforeload","load"]);me.store.on({append:me.createRelayer("itemappend"),remove:me.createRelayer("itemremove"),move:me.createRelayer("itemmove"),insert:me.createRelayer("iteminsert"),beforeappend:me.createRelayer("beforeitemappend"),beforeremove:me.createRelayer("beforeitemremove"),beforemove:me.createRelayer("beforeitemmove"),beforeinsert:me.createRelayer("beforeiteminsert"),expand:me.createRelayer("itemexpand"),collapse:me.createRelayer("itemcollapse"),beforeexpand:me.createRelayer("beforeitemexpand"),beforecollapse:me.createRelayer("beforeitemcollapse")});if(!me.columns){if(me.initialConfig.hideHeaders===undefined){me.hideHeaders=true}me.columns=[{xtype:"treecolumn",text:"Name",flex:1,dataIndex:me.displayField}]}if(me.cls){cls.push(me.cls)}me.cls=cls.join(" ");me.callParent();me.relayEvents(me.getView(),["checkchange"]);if(!me.getView().rootVisible&&!me.getRootNode()){me.setRootNode({expanded:true})}},onClear:function(){this.view.onClear()},setRootNode:function(){return this.store.setRootNode.apply(this.store,arguments)},getRootNode:function(){return this.store.getRootNode()},onRootChange:function(root){this.view.setRootNode(root)},getChecked:function(){return this.getView().getChecked()},isItemChecked:function(rec){return rec.get("checked")},expandAll:function(callback,scope){var root=this.getRootNode(),animate=this.enableAnimations,view=this.getView();if(root){if(!animate){view.beginBulkUpdate()}root.expand(true,callback,scope);if(!animate){view.endBulkUpdate()}}},collapseAll:function(callback,scope){var root=this.getRootNode(),animate=this.enableAnimations,view=this.getView();if(root){if(!animate){view.beginBulkUpdate()}if(view.rootVisible){root.collapse(true,callback,scope)}else{root.collapseChildren(true,callback,scope)}if(!animate){view.endBulkUpdate()}}},expandPath:function(path,field,separator,callback,scope){var me=this,current=me.getRootNode(),index=1,view=me.getView(),keys,expander;field=field||me.getRootNode().idProperty;separator=separator||"/";if(Ext.isEmpty(path)){Ext.callback(callback,scope||me,[false,null]);return}keys=path.split(separator);if(current.get(field)!=keys[1]){Ext.callback(callback,scope||me,[false,current]);return}expander=function(){if(++index===keys.length){Ext.callback(callback,scope||me,[true,current]);return}var node=current.findChild(field,keys[index]);if(!node){Ext.callback(callback,scope||me,[false,current]);return}current=node;current.expand(false,expander)};current.expand(false,expander)},selectPath:function(path,field,separator,callback,scope){var me=this,keys,last;field=field||me.getRootNode().idProperty;separator=separator||"/";keys=path.split(separator);last=keys.pop();me.expandPath(keys.join(separator),field,separator,function(success,node){var doSuccess=false;if(success&&node){node=node.findChild(field,last);if(node){me.getSelectionModel().select(node);Ext.callback(callback,scope||me,[true,node]);doSuccess=true}}else{if(node===me.getRootNode()){doSuccess=true}}Ext.callback(callback,scope||me,[doSuccess,node])},me)}});Ext.define("Ext.view.DragZone",{extend:"Ext.dd.DragZone",containerScroll:false,constructor:function(config){var me=this;Ext.apply(me,config);if(!me.ddGroup){me.ddGroup="view-dd-zone-"+me.view.id}me.callParent([me.view.el.dom.parentNode]);me.ddel=Ext.get(document.createElement("div"));me.ddel.addCls(Ext.baseCSSPrefix+"grid-dd-wrap")},init:function(id,sGroup,config){this.initTarget(id,sGroup,config);this.view.mon(this.view,{itemmousedown:this.onItemMouseDown,scope:this})},onItemMouseDown:function(view,record,item,index,e){if(!this.isPreventDrag(e,record,item,index)){this.handleMouseDown(e);if(view.getSelectionModel().selectionMode=="MULTI"&&!e.ctrlKey&&view.getSelectionModel().isSelected(record)){return false}}},isPreventDrag:function(e){return false},getDragData:function(e){var view=this.view,item=e.getTarget(view.getItemSelector()),record,selectionModel,records;if(item){record=view.getRecord(item);selectionModel=view.getSelectionModel();records=selectionModel.getSelection();return{copy:this.view.copy||(this.view.allowCopy&&e.ctrlKey),event:new Ext.EventObjectImpl(e),view:view,ddel:this.ddel,item:item,records:records,fromPosition:Ext.fly(item).getXY()}}},onInitDrag:function(x,y){var me=this,data=me.dragData,view=data.view,selectionModel=view.getSelectionModel(),record=view.getRecord(data.item),e=data.event;if(!selectionModel.isSelected(record)||e.hasModifier()){selectionModel.selectWithEvent(record,e,true)}data.records=selectionModel.getSelection();me.ddel.update(me.getDragText());me.proxy.update(me.ddel.dom);me.onStartDrag(x,y);return true},getDragText:function(){var count=this.dragData.records.length;return Ext.String.format(this.dragText,count,count==1?"":"s")},getRepairXY:function(e,data){return data?data.fromPosition:false}});Ext.define("Ext.tree.ViewDragZone",{extend:"Ext.view.DragZone",isPreventDrag:function(e,record){return(record.get("allowDrag")===false)||!!e.getTarget(this.view.expanderSelector)},afterRepair:function(){var me=this,view=me.view,selectedRowCls=view.selectedItemCls,records=me.dragData.records,fly=Ext.fly;if(Ext.enableFx&&me.repairHighlight){Ext.Array.forEach(records,function(record){var item=view.getNode(record);fly(item.firstChild).highlight(me.repairHighlightColor,{listeners:{beforeanimate:function(){if(view.isSelected(item)){fly(item).removeCls(selectedRowCls)}},afteranimate:function(){if(view.isSelected(item)){fly(item).addCls(selectedRowCls)}}}})})}me.dragging=false}});Ext.define("Ext.tree.ViewDropZone",{extend:"Ext.view.DropZone",allowParentInserts:false,allowContainerDrops:false,appendOnly:false,expandDelay:500,indicatorCls:"x-tree-ddindicator",expandNode:function(node){var view=this.view;if(!node.isLeaf()&&!node.isExpanded()){view.expand(node);this.expandProcId=false}},queueExpand:function(node){this.expandProcId=Ext.Function.defer(this.expandNode,this.expandDelay,this,[node])},cancelExpand:function(){if(this.expandProcId){clearTimeout(this.expandProcId);this.expandProcId=false}},getPosition:function(e,node){var view=this.view,record=view.getRecord(node),y=e.getPageY(),noAppend=record.isLeaf(),noBelow=false,region=Ext.fly(node).getRegion(),fragment;if(record.isRoot()){return"append"}if(this.appendOnly){return noAppend?false:"append"}if(!this.allowParentInsert){noBelow=record.hasChildNodes()&&record.isExpanded()}fragment=(region.bottom-region.top)/(noAppend?2:3);if(y>=region.top&&y<(region.top+fragment)){return"before"}else{if(!noBelow&&(noAppend||(y>=(region.bottom-fragment)&&y<=region.bottom))){return"after"}else{return"append"}}},isValidDropPoint:function(node,position,dragZone,e,data){if(!node||!data.item){return false}var view=this.view,targetNode=view.getRecord(node),draggedRecords=data.records,dataLength=draggedRecords.length,ln=draggedRecords.length,i,record;if(!(targetNode&&position&&dataLength)){return false}for(i=0;i<ln;i++){record=draggedRecords[i];if(record.isNode&&record.contains(targetNode)){return false}}if(position==="append"&&targetNode.get("allowDrop")===false){return false}else{if(position!="append"&&targetNode.parentNode.get("allowDrop")===false){return false}}if(Ext.Array.contains(draggedRecords,targetNode)){return false}return true},onNodeOver:function(node,dragZone,e,data){var position=this.getPosition(e,node),returnCls=this.dropNotAllowed,view=this.view,targetNode=view.getRecord(node),indicator=this.getIndicator(),indicatorX=0,indicatorY=0;this.cancelExpand();if(position=="append"&&!this.expandProcId&&!Ext.Array.contains(data.records,targetNode)&&!targetNode.isLeaf()&&!targetNode.isExpanded()){this.queueExpand(targetNode)}if(this.isValidDropPoint(node,position,dragZone,e,data)){this.valid=true;this.currentPosition=position;this.overRecord=targetNode;indicator.setWidth(Ext.fly(node).getWidth());indicatorY=Ext.fly(node).getY()-Ext.fly(view.el).getY()-1;if(position=="before"){returnCls=targetNode.isFirst()?Ext.baseCSSPrefix+"tree-drop-ok-above":Ext.baseCSSPrefix+"tree-drop-ok-between";indicator.showAt(0,indicatorY);dragZone.proxy.show()}else{if(position=="after"){returnCls=targetNode.isLast()?Ext.baseCSSPrefix+"tree-drop-ok-below":Ext.baseCSSPrefix+"tree-drop-ok-between";indicatorY+=Ext.fly(node).getHeight();indicator.showAt(0,indicatorY);dragZone.proxy.show()}else{returnCls=Ext.baseCSSPrefix+"tree-drop-ok-append";indicator.hide()}}}else{this.valid=false}this.currentCls=returnCls;return returnCls},onContainerOver:function(dd,e,data){return e.getTarget("."+this.indicatorCls)?this.currentCls:this.dropNotAllowed},notifyOut:function(){this.callParent(arguments);this.cancelExpand()},handleNodeDrop:function(data,targetNode,position){var me=this,view=me.view,parentNode=targetNode.parentNode,store=view.getStore(),recordDomNodes=[],records,i,len,insertionMethod,argList,needTargetExpand,transferData,processDrop;if(data.copy){records=data.records;data.records=[];for(i=0,len=records.length;i<len;i++){data.records.push(Ext.apply({},records[i].data))}}me.cancelExpand();if(position=="before"){insertionMethod=parentNode.insertBefore;argList=[null,targetNode];targetNode=parentNode}else{if(position=="after"){if(targetNode.nextSibling){insertionMethod=parentNode.insertBefore;argList=[null,targetNode.nextSibling]}else{insertionMethod=parentNode.appendChild;argList=[null]}targetNode=parentNode}else{if(!targetNode.isExpanded()){needTargetExpand=true}insertionMethod=targetNode.appendChild;argList=[null]}}transferData=function(){var node;for(i=0,len=data.records.length;i<len;i++){argList[0]=data.records[i];node=insertionMethod.apply(targetNode,argList);if(Ext.enableFx&&me.dropHighlight){recordDomNodes.push(view.getNode(node))}}if(Ext.enableFx&&me.dropHighlight){Ext.Array.forEach(recordDomNodes,function(n){if(n){Ext.fly(n.firstChild?n.firstChild:n).highlight(me.dropHighlightColor)}})}};if(needTargetExpand){targetNode.expand(false,transferData)}else{transferData()}}});Ext.define("Ext.tree.plugin.TreeViewDragDrop",{extend:"Ext.AbstractPlugin",alias:"plugin.treeviewdragdrop",uses:["Ext.tree.ViewDragZone","Ext.tree.ViewDropZone"],dragText:"{0} selected node{1}",allowParentInserts:false,allowContainerDrops:false,appendOnly:false,ddGroup:"TreeDD",expandDelay:1000,enableDrop:true,enableDrag:true,nodeHighlightColor:"c3daf9",nodeHighlightOnDrop:Ext.enableFx,nodeHighlightOnRepair:Ext.enableFx,init:function(view){view.on("render",this.onViewRender,this,{single:true})},destroy:function(){Ext.destroy(this.dragZone,this.dropZone)},onViewRender:function(view){var me=this;if(me.enableDrag){me.dragZone=Ext.create("Ext.tree.ViewDragZone",{view:view,ddGroup:me.dragGroup||me.ddGroup,dragText:me.dragText,repairHighlightColor:me.nodeHighlightColor,repairHighlight:me.nodeHighlightOnRepair})}if(me.enableDrop){me.dropZone=Ext.create("Ext.tree.ViewDropZone",{view:view,ddGroup:me.dropGroup||me.ddGroup,allowContainerDrops:me.allowContainerDrops,appendOnly:me.appendOnly,allowParentInserts:me.allowParentInserts,expandDelay:me.expandDelay,dropHighlightColor:me.nodeHighlightColor,dropHighlight:me.nodeHighlightOnDrop})}}});Ext.define("Ext.util.Cookies",{singleton:true,set:function(name,value){var argv=arguments,argc=arguments.length,expires=(argc>2)?argv[2]:null,path=(argc>3)?argv[3]:"/",domain=(argc>4)?argv[4]:null,secure=(argc>5)?argv[5]:false;document.cookie=name+"="+escape(value)+((expires===null)?"":("; expires="+expires.toGMTString()))+((path===null)?"":("; path="+path))+((domain===null)?"":("; domain="+domain))+((secure===true)?"; secure":"")},get:function(name){var arg=name+"=",alen=arg.length,clen=document.cookie.length,i=0,j=0;while(i<clen){j=i+alen;if(document.cookie.substring(i,j)==arg){return this.getCookieVal(j)}i=document.cookie.indexOf(" ",i)+1;if(i===0){break}}return null},clear:function(name,path){if(this.get(name)){path=path||"/";document.cookie=name+"=; expires=Thu, 01-Jan-70 00:00:01 GMT; path="+path}},getCookieVal:function(offset){var endstr=document.cookie.indexOf(";",offset);if(endstr==-1){endstr=document.cookie.length}return unescape(document.cookie.substring(offset,endstr))}});Ext.define("Ext.util.CSS",function(){var rules=null;var doc=document;var camelRe=/(-[a-z])/gi;var camelFn=function(m,a){return a.charAt(1).toUpperCase()};return{singleton:true,constructor:function(){this.rules={};this.initialized=false},createStyleSheet:function(cssText,id){var ss,head=doc.getElementsByTagName("head")[0],styleEl=doc.createElement("style");styleEl.setAttribute("type","text/css");if(id){styleEl.setAttribute("id",id)}if(Ext.isIE){head.appendChild(styleEl);ss=styleEl.styleSheet;ss.cssText=cssText}else{try{styleEl.appendChild(doc.createTextNode(cssText))}catch(e){styleEl.cssText=cssText}head.appendChild(styleEl);ss=styleEl.styleSheet?styleEl.styleSheet:(styleEl.sheet||doc.styleSheets[doc.styleSheets.length-1])}this.cacheStyleSheet(ss);return ss},removeStyleSheet:function(id){var existing=document.getElementById(id);if(existing){existing.parentNode.removeChild(existing)}},swapStyleSheet:function(id,url){var doc=document;this.removeStyleSheet(id);var ss=doc.createElement("link");ss.setAttribute("rel","stylesheet");ss.setAttribute("type","text/css");ss.setAttribute("id",id);ss.setAttribute("href",url);doc.getElementsByTagName("head")[0].appendChild(ss)},refreshCache:function(){return this.getRules(true)},cacheStyleSheet:function(ss){if(!rules){rules={}}try{var ssRules=ss.cssRules||ss.rules,selectorText,i=ssRules.length-1,j,selectors;for(;i>=0;--i){selectorText=ssRules[i].selectorText;if(selectorText){selectorText=selectorText.split(",");selectors=selectorText.length;for(j=0;j<selectors;j++){rules[Ext.String.trim(selectorText[j]).toLowerCase()]=ssRules[i]}}}}catch(e){}},getRules:function(refreshCache){if(rules===null||refreshCache){rules={};var ds=doc.styleSheets,i=0,len=ds.length;for(;i<len;i++){try{if(!ds[i].disabled){this.cacheStyleSheet(ds[i])}}catch(e){}}}return rules},getRule:function(selector,refreshCache){var rs=this.getRules(refreshCache);if(!Ext.isArray(selector)){return rs[selector.toLowerCase()]}for(var i=0;i<selector.length;i++){if(rs[selector[i]]){return rs[selector[i].toLowerCase()]}}return null},updateRule:function(selector,property,value){if(!Ext.isArray(selector)){var rule=this.getRule(selector);if(rule){rule.style[property.replace(camelRe,camelFn)]=value;return true}}else{for(var i=0;i<selector.length;i++){if(this.updateRule(selector[i],property,value)){return true}}}return false}}}());Ext.define("Ext.util.History",{singleton:true,alternateClassName:"Ext.History",mixins:{observable:"Ext.util.Observable"},constructor:function(){var me=this;me.oldIEMode=Ext.isIE6||Ext.isIE7||!Ext.isStrict&&Ext.isIE8;me.iframe=null;me.hiddenField=null;me.ready=false;me.currentToken=null},getHash:function(){var href=window.location.href,i=href.indexOf("#");return i>=0?href.substr(i+1):null},doSave:function(){this.hiddenField.value=this.currentToken},handleStateChange:function(token){this.currentToken=token;this.fireEvent("change",token)},updateIFrame:function(token){var html='<html><body><div id="state">'+Ext.util.Format.htmlEncode(token)+"</div></body></html>";try{var doc=this.iframe.contentWindow.document;doc.open();doc.write(html);doc.close();return true}catch(e){return false}},checkIFrame:function(){var me=this,contentWindow=me.iframe.contentWindow;if(!contentWindow||!contentWindow.document){Ext.Function.defer(this.checkIFrame,10,this);return}var doc=contentWindow.document,elem=doc.getElementById("state"),oldToken=elem?elem.innerText:null,oldHash=me.getHash();Ext.TaskManager.start({run:function(){var doc=contentWindow.document,elem=doc.getElementById("state"),newToken=elem?elem.innerText:null,newHash=me.getHash();if(newToken!==oldToken){oldToken=newToken;me.handleStateChange(newToken);window.top.location.hash=newToken;oldHash=newToken;me.doSave()}else{if(newHash!==oldHash){oldHash=newHash;me.updateIFrame(newHash)}}},interval:50,scope:me});me.ready=true;me.fireEvent("ready",me)},startUp:function(){var me=this;me.currentToken=me.hiddenField.value||this.getHash();if(me.oldIEMode){me.checkIFrame()}else{var hash=me.getHash();Ext.TaskManager.start({run:function(){var newHash=me.getHash();if(newHash!==hash){hash=newHash;me.handleStateChange(hash);me.doSave()}},interval:50,scope:me});me.ready=true;me.fireEvent("ready",me)}},fieldId:Ext.baseCSSPrefix+"history-field",iframeId:Ext.baseCSSPrefix+"history-frame",init:function(onReady,scope){var me=this;if(me.ready){Ext.callback(onReady,scope,[me]);return}if(!Ext.isReady){Ext.onReady(function(){me.init(onReady,scope)});return}me.hiddenField=Ext.getDom(me.fieldId);if(me.oldIEMode){me.iframe=Ext.getDom(me.iframeId)}me.addEvents("ready","change");if(onReady){me.on("ready",onReady,scope,{single:true})}me.startUp()},add:function(token,preventDup){var me=this;if(preventDup!==false){if(me.getToken()===token){return true}}if(me.oldIEMode){return me.updateIFrame(token)}else{window.top.location.hash=token;return true}},back:function(){window.history.go(-1)},forward:function(){window.history.go(1)},getToken:function(){return this.ready?this.currentToken:this.getHash()}});Ext.define("Ext.view.TableChunker",{singleton:true,requires:["Ext.XTemplate"],metaTableTpl:["{[this.openTableWrap()]}",'<table class="'+Ext.baseCSSPrefix+"grid-table "+Ext.baseCSSPrefix+'grid-table-resizer" border="0" cellspacing="0" cellpadding="0" {[this.embedFullWidth()]}>',"<tbody>",'<tr class="'+Ext.baseCSSPrefix+'grid-header-row">','<tpl for="columns">','<th class="'+Ext.baseCSSPrefix+'grid-col-resizer-{id}" style="width: {width}px; height: 0px;"></th>',"</tpl>","</tr>","{[this.openRows()]}","{row}",'<tpl for="features">',"{[this.embedFeature(values, parent, xindex, xcount)]}","</tpl>","{[this.closeRows()]}","</tbody>","</table>","{[this.closeTableWrap()]}"],constructor:function(){Ext.XTemplate.prototype.recurse=function(values,reference){return this.apply(reference?values[reference]:values)}},embedFeature:function(values,parent,x,xcount){var tpl="";if(!values.disabled){tpl=values.getFeatureTpl(values,parent,x,xcount)}return tpl},embedFullWidth:function(){return'style="width: {fullWidth}px;"'},openRows:function(){return'<tpl for="rows">'},closeRows:function(){return"</tpl>"},metaRowTpl:['<tr class="'+Ext.baseCSSPrefix+'grid-row {addlSelector} {[this.embedRowCls()]}" {[this.embedRowAttr()]}>','<tpl for="columns">','<td class="{cls} '+Ext.baseCSSPrefix+"grid-cell "+Ext.baseCSSPrefix+'grid-cell-{columnId} {{id}-modified} {{id}-tdCls} {[this.firstOrLastCls(xindex, xcount)]}" {{id}-tdAttr}><div unselectable="on" class="'+Ext.baseCSSPrefix+"grid-cell-inner "+Ext.baseCSSPrefix+'unselectable" style="{{id}-style}; text-align: {align};">{{id}}</div></td>',"</tpl>","</tr>"],firstOrLastCls:function(xindex,xcount){var cssCls="";if(xindex===1){cssCls=Ext.baseCSSPrefix+"grid-cell-first"}else{if(xindex===xcount){cssCls=Ext.baseCSSPrefix+"grid-cell-last"}}return cssCls},embedRowCls:function(){return"{rowCls}"},embedRowAttr:function(){return"{rowAttr}"},openTableWrap:function(){return""},closeTableWrap:function(){return""},getTableTpl:function(cfg,textOnly){var tpl,tableTplMemberFns={openRows:this.openRows,closeRows:this.closeRows,embedFeature:this.embedFeature,embedFullWidth:this.embedFullWidth,openTableWrap:this.openTableWrap,closeTableWrap:this.closeTableWrap},tplMemberFns={},features=cfg.features||[],ln=features.length,i=0,memberFns={embedRowCls:this.embedRowCls,embedRowAttr:this.embedRowAttr,firstOrLastCls:this.firstOrLastCls},metaRowTpl=Array.prototype.slice.call(this.metaRowTpl,0),metaTableTpl;for(;i<ln;i++){if(!features[i].disabled){features[i].mutateMetaRowTpl(metaRowTpl);Ext.apply(memberFns,features[i].getMetaRowTplFragments());Ext.apply(tplMemberFns,features[i].getFragmentTpl());Ext.apply(tableTplMemberFns,features[i].getTableFragments())}}metaRowTpl=Ext.create("Ext.XTemplate",metaRowTpl.join(""),memberFns);cfg.row=metaRowTpl.applyTemplate(cfg);metaTableTpl=Ext.create("Ext.XTemplate",this.metaTableTpl.join(""),tableTplMemberFns);tpl=metaTableTpl.applyTemplate(cfg);if(!textOnly){tpl=Ext.create("Ext.XTemplate",tpl,tplMemberFns)}return tpl}})})(this.Ext4||(this.Ext4={}));
