-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathapp-all.js
More file actions
executable file
·4 lines (4 loc) · 468 KB
/
Copy pathapp-all.js
File metadata and controls
executable file
·4 lines (4 loc) · 468 KB
1
2
3
4
/*
Copyright(c) 2011 Robert Dougan
*/
(function(){var global=this,objectPrototype=Object.prototype,toString=objectPrototype.toString,enumerables=true,enumerablesTest={toString:1},emptyFn=function(){},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:emptyFn,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)}}if(!superclass){Ext.Error.raise({sourceClass:"Ext",sourceMethod:"extend",msg:"Attempting to extend from a class which has not been loaded on the page."})}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.$isClass){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"}Ext.Error.raise({sourceClass:"Ext",sourceMethod:"typeOf",msg:'Failed to determine the type of the specified value "'+value+'". This is most likely a bug.'})},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]"},isSimpleObject:function(value){return value instanceof Object&&value.constructor===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),ln=args.length;if(ln>0){args[ln-1]="var Ext=window."+this.getUniqueGlobalNamespace()+";"+args[ln-1]}return Function.prototype.constructor.apply(Function.prototype,args)},globalEval:("execScript" in global)?function(code){global.execScript(code)}:function(code){(function(){eval(code)})()},Logger:{verbose:emptyFn,log:emptyFn,info:emptyFn,warn:emptyFn,error:function(message){throw new Error(message)},deprecate:emptyFn}});Ext.type=Ext.typeOf})();(function(){var a="4.1.0",b;Ext.Version=b=Ext.extend(Object,{constructor:function(c){var e,d;if(c instanceof b){return c}this.version=this.shortVersion=String(c).toLowerCase().replace(/_/g,".").replace(/[\-+]/g,"");d=this.version.search(/([^\d\.])/);if(d!==-1){this.release=this.version.substr(d,c.length);this.shortVersion=this.version.substr(0,d)}this.shortVersion=this.shortVersion.replace(/[^\d]/g,"");e=this.version.split(".");this.major=parseInt(e.shift()||0,10);this.minor=parseInt(e.shift()||0,10);this.patch=parseInt(e.shift()||0,10);this.build=parseInt(e.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(c){return b.compare(this.version,c)===1},isGreaterThanOrEqual:function(c){return b.compare(this.version,c)>=0},isLessThan:function(c){return b.compare(this.version,c)===-1},isLessThanOrEqual:function(c){return b.compare(this.version,c)<=0},equals:function(c){return b.compare(this.version,c)===0},match:function(c){c=String(c);return this.version.substr(0,c.length)===c},toArray:function(){return[this.getMajor(),this.getMinor(),this.getPatch(),this.getBuild(),this.getRelease()]},getShortVersion:function(){return this.shortVersion},gt:function(){return this.isGreaterThan.apply(this,arguments)},lt:function(){return this.isLessThan.apply(this,arguments)},gtEq:function(){return this.isGreaterThanOrEqual.apply(this,arguments)},ltEq:function(){return this.isLessThanOrEqual.apply(this,arguments)}});Ext.apply(b,{releaseValueMap:{dev:-6,alpha:-5,a:-5,beta:-4,b:-4,rc:-3,"#":-2,p:-1,pl:-1},getComponentValue:function(c){return !c?0:(isNaN(c)?this.releaseValueMap[c]||c:parseInt(c,10))},compare:function(g,f){var d,e,c;g=new b(g).toArray();f=new b(f).toArray();for(c=0;c<Math.max(g.length,f.length);c++){d=this.getComponentValue(g[c]);e=this.getComponentValue(f[c]);if(d<e){return -1}else{if(d>e){return 1}}}return 0}});Ext.apply(Ext,{versions:{},lastRegisteredVersion:null,setVersion:function(d,c){Ext.versions[d]=new b(c);Ext.lastRegisteredVersion=Ext.versions[d];return this},getVersion:function(c){if(c===undefined){return Ext.lastRegisteredVersion}return Ext.versions[c]},deprecate:function(c,e,f,d){if(b.compare(Ext.getVersion(c),e)<1){f.call(d)}}});Ext.setVersion("core",a)})();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 d={"&":"&",">":">","<":"<",'"':"""},b=[],c,a;for(c in d){b.push(c)}a=new RegExp("("+b.join("|")+")","g");return function(e){return(!e)?e:String(e).replace(a,function(g,f){return d[f]})}})(),htmlDecode:(function(){var d={"&":"&",">":">","<":"<",""":'"'},b=[],c,a;for(c in d){b.push(c)}a=new RegExp("("+b.join("|")+"|&#[0-9]{1,5};)","g");return function(e){return(!e)?e:String(e).replace(a,function(g,f){if(f in d){return d[f]}else{return String.fromCharCode(parseInt(f.substr(2),10))}})}})(),urlAppend:function(b,a){if(!Ext.isEmpty(a)){return b+(b.indexOf("?")===-1?"?":"&")+a}return b},trim:function(a){return a.replace(Ext.String.trimRegex,"")},capitalize:function(a){return a.charAt(0).toUpperCase()+a.substr(1)},ellipsis:function(c,a,d){if(c&&c.length>a){if(d){var e=c.substr(0,a-2),b=Math.max(e.lastIndexOf(" "),e.lastIndexOf("."),e.lastIndexOf("!"),e.lastIndexOf("?"));if(b!==-1&&b>=(a-15)){return e.substr(0,b)+"..."}}return c.substr(0,a-3)+"..."}return c},escapeRegex:function(a){return a.replace(Ext.String.escapeRegexRe,"\\$1")},escape:function(a){return a.replace(Ext.String.escapeRe,"\\$1")},toggle:function(b,c,a){return b===c?a:c},leftPad:function(b,c,d){var a=String(b);d=d||" ";while(a.length<c){a=d+a}return a},format:function(b){var a=Ext.Array.toArray(arguments,1);return b.replace(Ext.String.formatRe,function(c,d){return a[d]})},repeat:function(e,d,b){for(var a=[],c=d;c--;){a.push(e)}return a.join(b||"")}};Ext.htmlEncode=Ext.String.htmlEncode;Ext.htmlDecode=Ext.String.htmlDecode;Ext.urlAppend=Ext.String.urlAppend;(function(){var f=Array.prototype,n=f.slice,p=function(){var z=[],e,y=20;if(!z.splice){return false}while(y--){z.push("A")}z.splice(15,0,"F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F","F");e=z.length;z.splice(13,0,"XXX");if(e+1!=z.length){return false}return true}(),i="forEach" in f,t="map" in f,o="indexOf" in f,x="every" in f,c="some" in f,d="filter" in f,m=function(){var e=[1,2,3,4,5].sort(function(){return 0});return e[0]===1&&e[1]===2&&e[2]===3&&e[3]===4&&e[4]===5}(),j=true,a;try{if(typeof document!=="undefined"){n.call(document.getElementsByTagName("body"))}}catch(r){j=false}function l(y,e){return(e<0)?Math.max(0,y.length+e):Math.min(y.length,e)}function w(F,E,y,I){var J=I?I.length:0,A=F.length,G=l(F,E);if(G===A){if(J){F.push.apply(F,I)}}else{var D=Math.min(y,A-G),H=G+D,z=H+J-D,e=A-H,B=A-D,C;if(z<H){for(C=0;C<e;++C){F[z+C]=F[H+C]}}else{if(z>H){for(C=e;C--;){F[z+C]=F[H+C]}}}if(J&&G===B){F.length=B;F.push.apply(F,I)}else{F.length=B+J;for(C=0;C<J;++C){F[G+C]=I[C]}}}return F}function h(A,e,z,y){if(y&&y.length){if(e<A.length){A.splice.apply(A,[e,z].concat(y))}else{A.push.apply(A,y)}}else{A.splice(e,z)}return A}function b(z,e,y){return w(z,e,y)}function q(z,e,y){z.splice(e,y);return z}function k(B,e,z){var A=l(B,e),y=B.slice(e,l(B,A+z));if(arguments.length<4){w(B,A,z)}else{w(B,A,z,n.call(arguments,3))}return y}function g(e){return e.splice.apply(e,n.call(arguments,1))}var v=p?q:b,s=p?h:w,u=p?g:k;a=Ext.Array={each:function(C,A,z,e){C=a.from(C);var y,B=C.length;if(e!==true){for(y=0;y<B;y++){if(A.call(z||C[y],C[y],y,C)===false){return y}}}else{for(y=B-1;y>-1;y--){if(A.call(z||C[y],C[y],y,C)===false){return y}}}return true},forEach:i?function(z,y,e){return z.forEach(y,e)}:function(B,z,y){var e=0,A=B.length;for(;e<A;e++){z.call(y,B[e],e,B)}},indexOf:(o)?function(z,e,y){return z.indexOf(e,y)}:function(B,z,A){var e,y=B.length;for(e=(A<0)?Math.max(0,y+A):A||0;e<y;e++){if(B[e]===z){return e}}return -1},contains:o?function(y,e){return y.indexOf(e)!==-1}:function(A,z){var e,y;for(e=0,y=A.length;e<y;e++){if(A[e]===z){return true}}return false},toArray:function(z,B,e){if(!z||!z.length){return[]}if(typeof z==="string"){z=z.split("")}if(j){return n.call(z,B||0,e||z.length)}var A=[],y;B=B||0;e=e?((e<0)?z.length+e:e):z.length;for(y=B;y<e;y++){A.push(z[y])}return A},pluck:function(C,e){var y=[],z,B,A;for(z=0,B=C.length;z<B;z++){A=C[z];y.push(A[e])}return y},map:t?function(z,y,e){return z.map(y,e)}:function(C,B,A){var z=[],y=0,e=C.length;for(;y<e;y++){z[y]=B.call(A,C[y],y,C)}return z},every:function(B,z,y){if(!z){Ext.Error.raise("Ext.Array.every must have a callback function passed as second argument.")}if(x){return B.every(z,y)}var e=0,A=B.length;for(;e<A;++e){if(!z.call(y,B[e],e,B)){return false}}return true},some:function(B,z,y){if(!z){Ext.Error.raise("Ext.Array.some must have a callback function passed as second argument.")}if(c){return B.some(z,y)}var e=0,A=B.length;for(;e<A;++e){if(z.call(y,B[e],e,B)){return true}}return false},clean:function(B){var y=[],e=0,A=B.length,z;for(;e<A;e++){z=B[e];if(!Ext.isEmpty(z)){y.push(z)}}return y},unique:function(B){var A=[],e=0,z=B.length,y;for(;e<z;e++){y=B[e];if(a.indexOf(A,y)===-1){A.push(y)}}return A},filter:function(C,A,z){if(d){return C.filter(A,z)}var y=[],e=0,B=C.length;for(;e<B;e++){if(A.call(z,C[e],e,C)){y.push(C[e])}}return y},from:function(y,e){if(y===undefined||y===null){return[]}if(Ext.isArray(y)){return(e)?n.call(y):y}if(y&&y.length!==undefined&&typeof y!=="string"){return a.toArray(y)}return[y]},remove:function(z,y){var e=a.indexOf(z,y);if(e!==-1){v(z,e,1)}return z},include:function(y,e){if(!a.contains(y,e)){y.push(e)}},clone:function(e){return n.call(e)},merge:function(){var e=n.call(arguments),A=[],y,z;for(y=0,z=e.length;y<z;y++){A=A.concat(e[y])}return a.unique(A)},intersect:function(){var A=[],e=n.call(arguments),E,C,B,G,H,K,J,I,z,D;if(!e.length){return A}for(E=K=0,I=e.length;E<I,H=e[E];E++){if(!G||H.length<G.length){G=H;K=E}}G=a.unique(G);v(e,K,1);for(E=0,I=G.length;E<I,K=G[E];E++){var F=0;for(C=0,z=e.length;C<z,H=e[C];C++){for(B=0,D=H.length;B<D,J=H[B];B++){if(K===J){F++;break}}}if(F===z){A.push(K)}}return A},difference:function(y,e){var D=n.call(y),B=D.length,A,z,C;for(A=0,C=e.length;A<C;A++){for(z=0;z<B;z++){if(D[z]===e[A]){v(D,z,1);z--;B--}}}return D},slice:function(z,y,e){return n.call(z,y,e)},sort:function(E,D){if(m){if(D){return E.sort(D)}else{return E.sort()}}var B=E.length,A=0,C,e,z,y;for(;A<B;A++){z=A;for(e=A+1;e<B;e++){if(D){C=D(E[e],E[z]);if(C<0){z=e}}else{if(E[e]<E[z]){z=e}}}if(z!==A){y=E[A];E[A]=E[z];E[z]=y}}return E},flatten:function(z){var y=[];function e(A){var C,D,B;for(C=0,D=A.length;C<D;C++){B=A[C];if(Ext.isArray(B)){e(B)}else{y.push(B)}}return y}return e(z)},min:function(C,B){var y=C[0],e,A,z;for(e=0,A=C.length;e<A;e++){z=C[e];if(B){if(B(y,z)===1){y=z}}else{if(z<y){y=z}}}return y},max:function(C,B){var e=C[0],y,A,z;for(y=0,A=C.length;y<A;y++){z=C[y];if(B){if(B(e,z)===-1){e=z}}else{if(z>e){e=z}}}return e},mean:function(e){return e.length>0?a.sum(e)/e.length:undefined},sum:function(B){var y=0,e,A,z;for(e=0,A=B.length;e<A;e++){z=B[e];y+=z}return y},_replaceSim:w,_spliceSim:k,erase:v,insert:function(z,y,e){return s(z,y,0,e)},replace:s,splice:u};Ext.each=a.each;a.union=a.merge;Ext.min=a.min;Ext.max=a.max;Ext.sum=a.sum;Ext.mean=a.mean;Ext.flatten=a.flatten;Ext.clean=a.clean;Ext.unique=a.unique;Ext.pluck=a.pluck;Ext.toArray=function(){return a.toArray.apply(a,arguments)}})();(function(){var a=(0.9).toFixed()!=="1";Ext.Number={constrain:function(d,c,b){d=parseFloat(d);if(!isNaN(c)){d=Math.max(d,c)}if(!isNaN(b)){d=Math.min(d,b)}return d},snap:function(e,c,d,g){var f=e,b;if(!(c&&e)){return e}b=e%c;if(b!==0){f-=b;if(b*2>=c){f+=c}else{if(b*2<-c){f-=c}}}return Ext.Number.constrain(f,d,g)},toFixed:function(d,b){if(a){b=b||0;var c=Math.pow(10,b);return(Math.round(d*c)/c).toFixed(b)}return d.toFixed(b)},from:function(c,b){if(isFinite(c)){c=parseFloat(c)}return !isNaN(c)?c:b}}})();Ext.num=function(){return Ext.Number.from.apply(this,arguments)};(function(){var a=function(){};var b=Ext.Object={chain:function(d){a.prototype=d;var c=new a();a.prototype=null;return c},toQueryObjects:function(e,j,d){var c=b.toQueryObjects,h=[],f,g;if(Ext.isArray(j)){for(f=0,g=j.length;f<g;f++){if(d){h=h.concat(c(e+"["+f+"]",j[f],true))}else{h.push({name:e,value:j[f]})}}}else{if(Ext.isObject(j)){for(f in j){if(j.hasOwnProperty(f)){if(d){h=h.concat(c(e+"["+f+"]",j[f],true))}else{h.push({name:e,value:j[f]})}}}}else{h.push({name:e,value:j})}}return h},toQueryString:function(f,d){var g=[],e=[],k,h,l,c,m;for(k in f){if(f.hasOwnProperty(k)){g=g.concat(b.toQueryObjects(k,f[k],d))}}for(h=0,l=g.length;h<l;h++){c=g[h];m=c.value;if(Ext.isEmpty(m)){m=""}else{if(Ext.isDate(m)){m=Ext.Date.toString(m)}}e.push(encodeURIComponent(c.name)+"="+encodeURIComponent(String(m)))}return e.join("&")},fromQueryString:function(d,q){var l=d.replace(/^\?/,"").split("&"),t={},r,h,v,m,p,f,n,o,c,g,s,k,u,e;for(p=0,f=l.length;p<f;p++){n=l[p];if(n.length>0){h=n.split("=");v=decodeURIComponent(h[0]);m=(h[1]!==undefined)?decodeURIComponent(h[1]):"";if(!q){if(t.hasOwnProperty(v)){if(!Ext.isArray(t[v])){t[v]=[t[v]]}t[v].push(m)}else{t[v]=m}}else{g=v.match(/(\[):?([^\]]*)\]/g);s=v.match(/^([^\[]+)/);if(!s){throw new Error('[Ext.Object.fromQueryString] Malformed query string given, failed parsing name from "'+n+'"')}v=s[0];k=[];if(g===null){t[v]=m;continue}for(o=0,c=g.length;o<c;o++){u=g[o];u=(u.length===2)?"":u.substring(1,u.length-1);k.push(u)}k.unshift(v);r=t;for(o=0,c=k.length;o<c;o++){u=k[o];if(o===c-1){if(Ext.isArray(r)&&u===""){r.push(m)}else{r[u]=m}}else{if(r[u]===undefined||typeof r[u]==="string"){e=k[o+1];r[u]=(Ext.isNumeric(e)||e==="")?[]:{}}r=r[u]}}}}}return t},each:function(c,e,d){for(var f in c){if(c.hasOwnProperty(f)){if(e.call(d||c,f,c[f],c)===false){return}}}},merge:function(c){var h=1,j=arguments.length,d=b.merge,f=Ext.clone,g,l,k,e;for(;h<j;h++){g=arguments[h];for(l in g){k=g[l];if(k&&k.constructor===Object){e=c[l];if(e&&e.constructor===Object){d(e,k)}else{c[l]=f(k)}}else{c[l]=k}}}return c},mergeIf:function(j){var f=1,g=arguments.length,d=Ext.clone,c,e,h;for(;f<g;f++){c=arguments[f];for(e in c){if(!(e in j)){h=c[e];if(h&&h.constructor===Object){j[e]=d(h)}else{j[e]=h}}}}return j},getKey:function(c,e){for(var d in c){if(c.hasOwnProperty(d)&&c[d]===e){return d}}return null},getValues:function(d){var c=[],e;for(e in d){if(d.hasOwnProperty(e)){c.push(d[e])}}return c},getKeys:("keys" in Object)?Object.keys:function(c){var d=[],e;for(e in c){if(c.hasOwnProperty(e)){d.push(e)}}return d},getSize:function(c){var d=0,e;for(e in c){if(c.hasOwnProperty(e)){d++}}return d},classify:function(f){var e=f,h=[],d={},c=function(){var j=0,k=h.length,l;for(;j<k;j++){l=h[j];this[l]=new d[l]}},g,i;for(g in f){if(f.hasOwnProperty(g)){i=f[g];if(i&&i.constructor===Object){h.push(g);d[g]=b.classify(i)}}}c.prototype=e;return c},defineProperty:("defineProperty" in Object)?Object.defineProperty:function(d,c,e){if(e.get){d.__defineGetter__(c,e.get)}if(e.set){d.__defineSetter__(c,e.set)}}};Ext.merge=Ext.Object.merge;Ext.mergeIf=Ext.Object.mergeIf;Ext.urlEncode=function(){var c=Ext.Array.from(arguments),d="";if((typeof c[1]==="string")){d=c[1]+"&";c[1]=false}return d+b.toQueryString.apply(b,c)};Ext.urlDecode=function(){return b.fromQueryString.apply(b,arguments)}})();Ext.Function={flexSetter:function(a){return function(d,c){var e,f;if(d===null){return this}if(typeof d!=="string"){for(e in d){if(d.hasOwnProperty(e)){a.call(this,e,d[e])}}if(Ext.enumerables){for(f=Ext.enumerables.length;f--;){e=Ext.enumerables[f];if(d.hasOwnProperty(e)){a.call(this,e,d[e])}}}}else{a.call(this,d,c)}return this}},bind:function(d,c,b,a){if(arguments.length===2){return function(){return d.apply(c,arguments)}}var f=d,e=Array.prototype.slice;return function(){var g=b||arguments;if(a===true){g=e.call(arguments,0);g=g.concat(b)}else{if(typeof a=="number"){g=e.call(arguments,0);Ext.Array.insert(g,a,b)}}return f.apply(c||window,g)}},pass:function(c,a,b){if(!Ext.isArray(a)){a=Ext.Array.clone(a)}return function(){a.push.apply(a,arguments);return c.apply(b||this,a)}},alias:function(b,a){return function(){return b[a].apply(b,arguments)}},clone:function(a){return function(){return a.apply(this,arguments)}},createInterceptor:function(d,c,b,a){var e=d;if(!Ext.isFunction(c)){return d}else{return function(){var g=this,f=arguments;c.target=g;c.method=d;return(c.apply(b||g||window,f)!==false)?d.apply(g||window,f):a||null}}},createDelayed:function(e,c,d,b,a){if(d||b){e=Ext.Function.bind(e,d,b,a)}return function(){var g=this,f=Array.prototype.slice.call(arguments);setTimeout(function(){e.apply(g,f)},c)}},defer:function(e,c,d,b,a){e=Ext.Function.bind(e,d,b,a);if(c>0){return setTimeout(e,c)}e();return 0},createSequence:function(b,c,a){if(!c){return b}else{return function(){var d=b.apply(this,arguments);c.apply(a||this,arguments);return d}}},createBuffered:function(e,b,d,c){var a;return function(){if(!d){d=this}if(!c){c=Array.prototype.slice.call(arguments)}if(a){clearTimeout(a);a=null}a=setTimeout(function(){e.apply(d,c)},b)}},createThrottled:function(e,b,d){var f,a,c,h,g=function(){e.apply(d||this,c);f=new Date().getTime()};return function(){a=new Date().getTime()-f;c=arguments;clearTimeout(h);if(!f||(a>=b)){g()}else{h=setTimeout(g,b-a)}}},interceptBefore:function(b,a,c){var d=b[a]||Ext.emptyFn;return b[a]=function(){var e=c.apply(this,arguments);d.apply(this,arguments);return e}},interceptAfter:function(b,a,c){var d=b[a]||Ext.emptyFn;return b[a]=function(){d.apply(this,arguments);return c.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");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.Error={raise:function(a){throw new Error(a.msg)}};Ext.Date={now:Date.now,toString:function(a){if(!a){a=new Date()}var b=Ext.String.leftPad;return a.getFullYear()+"-"+b(a.getMonth()+1,2,"0")+"-"+b(a.getDate(),2,"0")+"T"+b(a.getHours(),2,"0")+":"+b(a.getMinutes(),2,"0")+":"+b(a.getSeconds(),2,"0")}};(function(a){var c=[],b=function(){};Ext.apply(b,{$className:"Ext.Base",$isClass:true,create:function(){return Ext.create.apply(Ext,[this].concat(Array.prototype.slice.call(arguments,0)))},extend:function(h){var d=h.prototype,l,f,g,j,e,k;f=this.prototype=Ext.Object.chain(d);f.self=this;this.superclass=f.superclass=d;if(!h.$isClass){l=Ext.Base.prototype;for(g in l){if(g in f){f[g]=l[g]}}}k=d.$inheritableStatics;if(k){for(g=0,j=k.length;g<j;g++){e=k[g];if(!this.hasOwnProperty(e)){this[e]=h[e]}}}if(h.$onExtended){this.$onExtended=h.$onExtended.slice()}f.config=f.defaultConfig=new f.configClass;f.initConfigList=f.initConfigList.slice();f.initConfigMap=Ext.Object.chain(f.initConfigMap)},"$onExtended":[],triggerExtended:function(){var f=this.$onExtended,e=f.length,d,g;if(e>0){for(d=0;d<e;d++){g=f[d];g.fn.apply(g.scope||this,arguments)}}},onExtended:function(e,d){this.$onExtended.push({fn:e,scope:d});return this},addConfig:function(f,i){var j=this.prototype,g=j.initConfigList,e=j.initConfigMap,h=j.defaultConfig,l,d,k;i=Boolean(i);for(d in f){if(f.hasOwnProperty(d)&&(i||!(d in h))){k=f[d];l=e[d];if(k!==null){if(!l){e[d]=true;g.push(d)}}else{if(l){e[d]=false;Ext.Array.remove(g,d)}}}}if(i){Ext.merge(h,f)}else{Ext.mergeIf(h,f)}j.configClass=Ext.Object.classify(h)},addStatics:function(d){var g,e;var f=Ext.getClassName(this);for(e in d){if(d.hasOwnProperty(e)){g=d[e];if(typeof g=="function"){g.displayName=f+"."+e}this[e]=g}}return this},addInheritableStatics:function(e){var i,d,g=this.prototype,f,j;i=g.$inheritableStatics;d=g.$hasInheritableStatics;if(!i){i=g.$inheritableStatics=[];d=g.$hasInheritableStatics={}}var h=Ext.getClassName(this);for(f in e){if(e.hasOwnProperty(f)){j=e[f];if(typeof j=="function"){j.displayName=h+"."+f}this[f]=j;if(!d[f]){d[f]=true;i.push(f)}}}return this},addMembers:function(e){var l=this.prototype,m=Ext.enumerables,k=[],g,j,d,f;var h=this.$className||"";for(d in e){k.push(d)}if(m){k.push.apply(k,m)}for(g=0,j=k.length;g<j;g++){d=k[g];if(e.hasOwnProperty(d)){f=e[d];if(typeof f=="function"&&!f.$isClass&&f!==Ext.emptyFn){f.$owner=this;f.$name=d;f.displayName=h+"#"+d}l[d]=f}}return this},addMember:function(d,e){if(typeof e=="function"&&!e.$isClass&&e!==Ext.emptyFn){e.$owner=this;e.$name=d;e.displayName=(this.$className||"")+"#"+d}this.prototype[d]=e;return this},implement:function(){this.addMembers.apply(this,arguments)},borrow:function(h,f){var n=this.prototype,m=h.prototype,k=Ext.getClassName(this),g,j,e,l,d;f=Ext.Array.from(f);for(g=0,j=f.length;g<j;g++){e=f[g];d=m[e];if(typeof d=="function"){l=function(){return d.apply(this,arguments)};if(k){l.displayName=k+"#"+e}l.$owner=this;l.$name=e;n[e]=l}else{n[e]=d}}return this},override:function(e){var m=this,o=Ext.enumerables,j=m.prototype,g=Ext.Function.clone,d,i,f,n,l,h;if(arguments.length===2){d=e;e={};e[d]=arguments[1];o=null}do{l=[];n=null;for(d in e){if(d=="statics"){n=e[d]}else{l.push(d)}}if(o){l.push.apply(l,o)}for(i=l.length;i--;){d=l[i];if(e.hasOwnProperty(d)){f=e[d];if(typeof f=="function"&&!f.$className&&f!==Ext.emptyFn){if(typeof f.$owner!="undefined"){f=g(f)}var k=m.$className;if(k){f.displayName=k+"#"+d}f.$owner=m;f.$name=d;h=j[d];if(h){f.$previous=h}}j[d]=f}}j=m;e=n}while(e);return this},callParent:function(d){var e;return(e=this.callParent.caller)&&(e.$previous||((e=e.$owner?e:e.caller)&&e.$owner.superclass.$class[e.$name])).apply(this,d||c)},mixin:function(f,h){var d=h.prototype,e=this.prototype,g;if(typeof d.onClassMixedIn!="undefined"){d.onClassMixedIn.call(h,this)}if(!e.hasOwnProperty("mixins")){if("mixins" in e){e.mixins=Ext.Object.chain(e.mixins)}else{e.mixins={}}}for(g in d){if(g==="mixins"){Ext.merge(e.mixins,d[g])}else{if(typeof e[g]=="undefined"&&g!="mixinId"&&g!="config"){e[g]=d[g]}}}if("config" in d){this.addConfig(d.config,false)}e.mixins[f]=d},getName:function(){return Ext.getClassName(this)},createAlias:a(function(e,d){this.override(e,function(){return this[d].apply(this,arguments)})}),addXtype:function(h){var e=this.prototype,g=e.xtypesMap,f=e.xtypes,d=e.xtypesChain;if(!e.hasOwnProperty("xtypesMap")){g=e.xtypesMap=Ext.merge({},e.xtypesMap||{});f=e.xtypes=e.xtypes?[].concat(e.xtypes):[];d=e.xtypesChain=e.xtypesChain?[].concat(e.xtypesChain):[];e.xtype=h}if(!g[h]){g[h]=true;f.push(h);d.push(h);Ext.ClassManager.setAlias(this,"widget."+h)}return this}});b.implement({isInstance:true,$className:"Ext.Base",configClass:Ext.emptyFn,initConfigList:[],initConfigMap:{},statics:function(){var e=this.statics.caller,d=this.self;if(!e){return d}return e.$owner},callParent:function(f){var h,d=(h=this.callParent.caller)&&(h.$previous||((h=h.$owner?h:h.caller)&&h.$owner.superclass[h.$name]));if(!d){h=this.callParent.caller;var g,e;if(!h.$owner){if(!h.caller){throw new Error("Attempting to call a protected method from the public scope, which is not allowed")}h=h.caller}g=h.$owner.superclass;e=h.$name;if(!(e in g)){throw new Error("this.callParent() was called but there's no such method ("+e+") found in the parent class ("+(Ext.getClassName(g)||"Object")+")")}}return d.apply(this,f||c)},self:b,constructor:function(){return this},wasInstantiated:false,initConfig:function(m){var l=Ext.Class.configNameCache,p=this.self.prototype,h=this.initConfigList,f=this.initConfigMap,g=new this.configClass,j=this.defaultConfig,k,o,e,q,n,d;this.initConfig=Ext.emptyFn;this.initialConfig=m||{};if(m){Ext.merge(g,m)}this.config=g;if(!p.hasOwnProperty("wasInstantiated")){p.wasInstantiated=true;for(k=0,o=h.length;k<o;k++){e=h[k];n=l[e];q=j[e];if(!(n.apply in p)&&!(n.update in p)&&p[n.set].$isDefault&&typeof q!="object"){p[n.internal]=j[e];f[e]=false;Ext.Array.remove(h,e);k--;o--}}}if(m){h=h.slice();for(e in m){if(e in j&&!f[e]){h.push(e)}}}for(k=0,o=h.length;k<o;k++){e=h[k];n=l[e];this[n.get]=this[n.initGet]}for(k=0,o=h.length;k<o;k++){e=h[k];n=l[e];d=n.get;if(this.hasOwnProperty(d)){this[n.set].call(this,g[e]);delete this[d]}}return this},getCurrentConfig:function(){var d=this.defaultConfig,g=Ext.Class.configNameCache,f={},e,h;for(e in d){if(d.hasOwnProperty(e)){h=g[e];f[e]=this[h.get].call(this)}}return f},setConfig:function(e,l){if(!e){return this}var h=Ext.Class.configNameCache,j=this.config,f=this.defaultConfig,p=this.initialConfig,k=[],d,o,g,n,m;l=Boolean(l);for(d in e){if((l&&(d in p))||!(d in f)){continue}o=e[d];j[d]=o;k.push(d);m=h[d];this[m.get]=this[m.initGet]}for(g=0,n=k.length;g<n;g++){d=k[g];m=h[d];this[m.set].call(this,e[d]);delete this[m.get]}return this},getConfig:function(d){return this[Ext.Class.configNameCache[d].get].call(this)},hasConfig:function(d){return(d in this.defaultConfig)},getInitialConfig:function(e){var d=this.config;if(!e){return d}else{return d[e]}},onConfigUpdate:function(k,m,n){var o=this.self,j=o.$className,f,h,d,g,l,e;k=Ext.Array.from(k);n=n||this;for(f=0,h=k.length;f<h;f++){d=k[f];g="update"+Ext.String.capitalize(d);l=this[g]||Ext.emptyFn;e=function(){l.apply(this,arguments);n[m].apply(n,arguments)};e.$name=g;e.$owner=o;e.displayName=j+"#"+g;this[g]=e}},destroy:function(){this.destroy=Ext.emptyFn;this.isDestroyed=true}});b.prototype.callOverridden=b.prototype.callParent;Ext.Base=b})(Ext.Function.flexSetter);(function(){var b,a=Ext.Base,e=[],d,c;for(d in a){if(a.hasOwnProperty(d)){e.push(d)}}c=e.length;Ext.Class=b=function(g,h,f){if(typeof g!="function"){f=h;h=g;g=null}if(!h){h={}}g=b.create(g);b.process(g,h,f);return g};Ext.apply(b,{onBeforeCreated:function(g,h,f){g.addMembers(h);f.onCreated.call(g,g)},create:function(f){var g,h;if(!f){f=function(){return this.constructor.apply(this,arguments)}}for(h=0;h<c;h++){g=e[h];f[g]=a[g]}return f},process:function(g,m,k){var j=m.preprocessors||b.defaultPreprocessors,q=this.preprocessors,t={onBeforeCreated:this.onBeforeCreated,onCreated:k||Ext.emptyFn},n=0,f,u,p,l,o,r,s,h;delete m.preprocessors;h=function(v,w,i){r=null;while(r===null){f=j[n++];if(f){u=q[f];p=u.properties;if(p===true){r=u.fn}else{for(l=0,o=p.length;l<o;l++){s=p[l];if(w.hasOwnProperty(s)){r=u.fn;break}}}}else{i.onBeforeCreated.apply(this,arguments);return}}if(r.call(this,v,w,i,h)!==false){h.apply(this,arguments)}};h.call(this,g,m,t)},preprocessors:{},registerPreprocessor:function(g,j,h,f,i){if(!f){f="last"}if(!h){h=[g]}this.preprocessors[g]={name:g,properties:h||false,fn:j};this.setDefaultPreprocessorPosition(g,f,i);return this},getPreprocessor:function(f){return this.preprocessors[f]},getPreprocessors:function(){return this.preprocessors},defaultPreprocessors:[],getDefaultPreprocessors:function(){return this.defaultPreprocessors},setDefaultPreprocessors:function(f){this.defaultPreprocessors=Ext.Array.from(f);return this},setDefaultPreprocessorPosition:function(h,j,i){var f=this.defaultPreprocessors,g;if(typeof j=="string"){if(j==="first"){f.unshift(h);return this}else{if(j==="last"){f.push(h);return this}}j=(j==="after")?1:-1}g=Ext.Array.indexOf(f,i);if(g!==-1){Ext.Array.splice(f,Math.max(0,g+j),0,h)}return this},configNameCache:{},getConfigNameMap:function(h){var g=this.configNameCache,i=g[h],f;if(!i){f=h.charAt(0).toUpperCase()+h.substr(1);i=g[h]={name:h,internal:"_"+h,initializing:"is"+f+"Initializing",apply:"apply"+f,update:"update"+f,set:"set"+f,get:"get"+f,initGet:"initGet"+f,doSet:"doSet"+f,changeEvent:h.toLowerCase()+"change"}}return i},generateSetter:function(i){var g=i.internal,h=i.get,f=i.apply,k=i.update,j;j=function(n){var m=this[g],l=this[f],o=this[k];delete this[h];if(l){n=l.call(this,n,m)}if(typeof n!="undefined"){this[g]=n;if(o&&n!==m){o.call(this,n,m)}}return this};j.$isDefault=true;return j},generateInitGetter:function(j){var f=j.name,i=j.set,g=j.get,h=j.initializing;return function(){this[h]=true;delete this[g];this[i].call(this,this.config[f]);delete this[h];return this[g].apply(this,arguments)}},generateGetter:function(g){var f=g.internal;return function(){return this[f]}}});b.registerPreprocessor("extend",function(g,k){var j=Ext.Base,l=j.prototype,m=k.extend,i,f,h;delete k.extend;if(m&&m!==Object){i=m}else{i=j}f=i.prototype;if(!i.$isClass){for(h in l){if(!f[h]){f[h]=l[h]}}}g.extend(i);g.triggerExtended.apply(g,arguments);if(k.onClassExtended){g.onExtended(k.onClassExtended,g);delete k.onClassExtended}},true);b.registerPreprocessor("statics",function(f,g){f.addStatics(g.statics);delete g.statics});b.registerPreprocessor("inheritableStatics",function(f,g){f.addInheritableStatics(g.inheritableStatics);delete g.inheritableStatics});b.registerPreprocessor("config",function(h,m){var j=m.config,p=h.prototype,l=p.config,o,g,n,f,i,k,q;delete m.config;for(g in j){if(j.hasOwnProperty(g)&&!(g in l)){q=j[g];o=this.getConfigNameMap(g);n=o.set;f=o.get;i=o.initGet;k=o.internal;m[i]=this.generateInitGetter(o);if(q===null&&!m.hasOwnProperty(k)){m[k]=null}if(!m.hasOwnProperty(f)){m[f]=this.generateGetter(o)}if(!m.hasOwnProperty(n)){m[n]=this.generateSetter(o)}}}h.addConfig(j,true)});b.registerPreprocessor("mixins",function(j,n,f){var g=n.mixins,k,h,l,m;delete n.mixins;Ext.Function.interceptBefore(f,"onCreated",function(){if(g instanceof Array){for(l=0,m=g.length;l<m;l++){h=g[l];k=h.prototype.mixinId||h.$className;j.mixin(k,h)}}else{for(k in g){if(g.hasOwnProperty(k)){j.mixin(k,g[k])}}}})});Ext.extend=function(h,i,g){if(arguments.length===2&&Ext.isObject(i)){g=i;i=h;h=null}var f;if(!i){throw new Error("[Ext.extend] Attempting to extend from a class which has not been loaded on the page.")}g.extend=i;g.preprocessors=["extend","statics","inheritableStatics","mixins","config"];if(h){f=new b(h,g)}else{f=new b(g)}f.prototype.override=function(k){for(var j in k){if(k.hasOwnProperty(j)){this[j]=k[j]}}};return f}})();(function(b,d,f,c,e){var a=Ext.ClassManager={classes:{},existCache:{},namespaceRewrites:[{from:"Ext.",to:Ext}],maps:{alternateToName:{},aliasToName:{},nameToAliases:{},nameToAlternates:{},overridesByName:{}},enableNamespaceParseCache:true,namespaceParseCache:{},instantiators:[],isCreated:function(l){var k=this.existCache,j,m,h,g,n;if(typeof l!="string"||l.length<1){throw new Error("[Ext.ClassManager] Invalid classname, must be a string and must not be empty")}if(this.classes[l]||k[l]){return true}g=e;n=this.parseNamespace(l);for(j=0,m=n.length;j<m;j++){h=n[j];if(typeof h!="string"){g=h}else{if(!g||!g[h]){return false}g=g[h]}}k[l]=true;this.triggerCreated(l);return true},createdListeners:[],nameCreatedListeners:{},triggerCreated:function(k){var j=this.createdListeners,h=this.nameCreatedListeners,g,l,m;for(g=0,l=j.length;g<l;g++){m=j[g];m.fn.call(m.scope,k)}j=h[k];if(j){for(g=0,l=j.length;g<l;g++){m=j[g];m.fn.call(m.scope,k)}delete h[k]}},onCreated:function(k,j,i){var h=this.createdListeners,g=this.nameCreatedListeners,l={fn:k,scope:j};if(i){if(this.isCreated(i)){k.call(j,i);return}if(!g[i]){g[i]=[]}g[i].push(l)}else{h.push(l)}},parseNamespace:function(j){if(typeof j!="string"){throw new Error("[Ext.ClassManager] Invalid namespace, must be a string")}var g=this.namespaceParseCache;if(this.enableNamespaceParseCache){if(g.hasOwnProperty(j)){return g[j]}}var k=[],m=this.namespaceRewrites,o=e,h=j,r,q,p,l,n;for(l=0,n=m.length;l<n;l++){r=m[l];q=r.from;p=r.to;if(h===q||h.substring(0,q.length)===q){h=h.substring(q.length);if(typeof p!="string"){o=p}else{k=k.concat(p.split("."))}break}}k.push(o);k=k.concat(h.split("."));if(this.enableNamespaceParseCache){g[j]=k}return k},setNamespace:function(k,n){var h=e,o=this.parseNamespace(k),m=o.length-1,g=o[m],l,j;for(l=0;l<m;l++){j=o[l];if(typeof j!="string"){h=j}else{if(!h[j]){h[j]={}}h=h[j]}}h[g]=n;return h[g]},createNamespaces:function(){var g=e,n,k,l,h,m,o;for(l=0,m=arguments.length;l<m;l++){n=this.parseNamespace(arguments[l]);for(h=0,o=n.length;h<o;h++){k=n[h];if(typeof k!="string"){g=k}else{if(!g[k]){g[k]={}}g=g[k]}}}return g},set:function(g,k){var j=this,m=j.maps,l=m.nameToAlternates,i=j.getName(k),h;j.classes[g]=j.setNamespace(g,k);if(i&&i!==g){m.alternateToName[g]=i;h=l[i]||(l[i]=[]);h.push(g)}return this},get:function(j){var l=this.classes;if(l[j]){return l[j]}var g=e,n=this.parseNamespace(j),h,k,m;for(k=0,m=n.length;k<m;k++){h=n[k];if(typeof h!="string"){g=h}else{if(!g||!g[h]){return null}g=g[h]}}return g},setAlias:function(g,h){var j=this.maps.aliasToName,k=this.maps.nameToAliases,i;if(typeof g=="string"){i=g}else{i=this.getName(g)}if(h&&j[h]!==i){if(j[h]&&Ext.isDefined(e.console)){e.console.log("[Ext.ClassManager] Overriding existing alias: '"+h+"' of: '"+j[h]+"' with: '"+i+"'. Be sure it's intentional.")}j[h]=i}if(!k[i]){k[i]=[]}if(h){Ext.Array.include(k[i],h)}return this},getByAlias:function(g){return this.get(this.getNameByAlias(g))},getNameByAlias:function(g){return this.maps.aliasToName[g]||""},getNameByAlternate:function(g){return this.maps.alternateToName[g]||""},getAliasesByName:function(g){return this.maps.nameToAliases[g]||[]},getName:function(g){return g&&g.$className||""},getClass:function(g){return g&&g.self||null},applyOverrides:function(g){var m=this,k=m.maps.overridesByName,n=k[g],l=n&&n.length||0,j=m.createOverride,h;delete k[g];for(h=0;h<l;++h){j.apply(m,n[h])}},create:function(h,i,g){if(typeof h!="string"){throw new Error("[Ext.define] Invalid class name '"+h+"' specified, must be a non-empty string")}i.$className=h;return new b(i,function(){var n=i.postprocessors||a.defaultPostprocessors,u=a.postprocessors,r=0,v=[],t,k,o,s,m,q,p,w,l;delete i.postprocessors;for(o=0,s=n.length;o<s;o++){t=n[o];if(typeof t=="string"){t=u[t];p=t.properties;if(p===true){v.push(t.fn)}else{if(p){for(m=0,q=p.length;m<q;m++){w=p[m];if(i.hasOwnProperty(w)){v.push(t.fn);break}}}}}else{v.push(t)}}k=function(x,j,y){t=v[r++];if(!t){a.set(h,j);if(g){g.call(j,j)}a.triggerCreated(h);return}if(t.call(this,x,j,y,k)!==false){k.apply(this,arguments)}};k.call(a,h,this,i);a.applyOverrides(h);l=a.maps.nameToAlternates[h];for(o=0,s=l&&l.length||0;o<s;++o){a.applyOverrides(l[o])}})},createOverride:function(h,j,g){var m=this,l=j.override,o=m.get(l),k,i,n;if(o){k=Ext.apply({},j);delete k.requires;delete k.uses;delete k.override;m.create(h,{constructor:function(){throw new Error("Cannot create instance of override '"+h+"'")},requires:j.requires,uses:j.uses,override:l},function(){this.active=true;if(o.override){o.override(k)}else{o.self.override(k)}if(g){g.call(o)}})}else{i=m.maps.overridesByName;n=i[l]||(i[l]=[]);n.push(Array.prototype.slice.call(arguments,0));m.setNamespace(h,{override:l})}},instantiateByAlias:function(){var h=arguments[0],g=f.call(arguments),i=this.getNameByAlias(h);if(!i){i=this.maps.aliasToName[h];if(!i){throw new Error("[Ext.createByAlias] Cannot create an instance of unrecognized alias: "+h)}if(e.console){e.console.warn("[Ext.Loader] Synchronously loading '"+i+"'; consider adding Ext.require('"+h+"') above Ext.onReady")}Ext.syncRequire(i)}g[0]=i;return this.instantiate.apply(this,g)},instantiate:function(){var i=arguments[0],h=f.call(arguments,1),j=i,k,g;if(typeof i!="function"){if((typeof i!="string"||i.length<1)){throw new Error("[Ext.create] Invalid class name or alias '"+i+"' specified, must be a non-empty string")}g=this.get(i)}else{g=i}if(!g){k=this.getNameByAlias(i);if(k){i=k;g=this.get(i)}}if(!g){k=this.getNameByAlternate(i);if(k){i=k;g=this.get(i)}}if(!g){if(e.console){e.console.warn("[Ext.Loader] Synchronously loading '"+i+"'; consider adding Ext.require('"+((k)?j:i)+"') above Ext.onReady")}Ext.syncRequire(i);g=this.get(i)}if(!g){throw new Error("[Ext.create] Cannot create an instance of unrecognized class name / alias: "+j)}if(typeof g!="function"){throw new Error("[Ext.create] '"+i+"' is a singleton and cannot be instantiated")}return this.getInstantiator(h.length)(g,h)},dynInstantiate:function(h,g){g=c(g,true);g.unshift(h);return this.instantiate.apply(this,g)},getInstantiator:function(k){var j=this.instantiators,l;l=j[k];if(!l){var h=k,g=[];for(h=0;h<k;h++){g.push("a["+h+"]")}l=j[k]=new Function("c","a","return new c("+g.join(",")+")");l.displayName="Ext.ClassManager.instantiate"+k}return l},postprocessors:{},defaultPostprocessors:[],registerPostprocessor:function(h,k,i,g,j){if(!g){g="last"}if(!i){i=[h]}this.postprocessors[h]={name:h,properties:i||false,fn:k};this.setDefaultPostprocessorPosition(h,g,j);return this},setDefaultPostprocessors:function(g){this.defaultPostprocessors=c(g);return this},setDefaultPostprocessorPosition:function(h,k,j){var i=this.defaultPostprocessors,g;if(typeof k=="string"){if(k==="first"){i.unshift(h);return this}else{if(k==="last"){i.push(h);return this}}k=(k==="after")?1:-1}g=Ext.Array.indexOf(i,j);if(g!==-1){Ext.Array.splice(i,Math.max(0,g+k),0,h)}return this},getNamesByExpression:function(o){var m=this.maps.nameToAliases,p=[],g,l,j,h,q,k,n;if(typeof o!="string"||o.length<1){throw new Error("[Ext.ClassManager.getNamesByExpression] Expression "+o+" is invalid, must be a non-empty string")}if(o.indexOf("*")!==-1){o=o.replace(/\*/g,"(.*?)");q=new RegExp("^"+o+"$");for(g in m){if(m.hasOwnProperty(g)){j=m[g];if(g.search(q)!==-1){p.push(g)}else{for(k=0,n=j.length;k<n;k++){l=j[k];if(l.search(q)!==-1){p.push(g);break}}}}}}else{h=this.getNameByAlias(o);if(h){p.push(h)}else{h=this.getNameByAlternate(o);if(h){p.push(h)}else{p.push(o)}}}return p}};a.registerPostprocessor("alias",function(j,h,m){var g=m.alias,k,l;for(k=0,l=g.length;k<l;k++){d=g[k];this.setAlias(h,d)}},["xtype","alias"]);a.registerPostprocessor("singleton",function(h,g,j,i){i.call(this,h,new g(),j);return false});a.registerPostprocessor("alternateClassName",function(h,g,m){var k=m.alternateClassName,j,l,n;if(!(k instanceof Array)){k=[k]}for(j=0,l=k.length;j<l;j++){n=k[j];if(typeof n!="string"){throw new Error("[Ext.define] Invalid alternate of: '"+n+"' for class: '"+h+"'; must be a valid string")}this.set(n,g)}});Ext.apply(Ext,{create:d(a,"instantiate"),widget:function(h){var g=f.call(arguments);g[0]="widget."+h;return a.instantiateByAlias.apply(a,g)},createByAlias:d(a,"instantiateByAlias"),define:function(h,i,g){if(i.override){return a.createOverride.apply(a,arguments)}return a.create.apply(a,arguments)},getClassName:d(a,"getName"),getDisplayName:function(g){if(g){if(g.displayName){return g.displayName}if(g.$name&&g.$class){return Ext.getClassName(g.$class)+"#"+g.$name}if(g.$className){return g.$className}}return"Anonymous"},getClass:d(a,"getClass"),namespace:d(a,"createNamespaces")});Ext.createWidget=Ext.widget;Ext.ns=Ext.namespace;b.registerPreprocessor("className",function(g,h){if(h.$className){g.$className=h.$className;g.displayName=g.$className}},true,"first");b.registerPreprocessor("alias",function(s,m){var q=s.prototype,j=c(m.xtype),g=c(m.alias),t="widget.",r=t.length,n=Array.prototype.slice.call(q.xtypesChain||[]),k=Ext.merge({},q.xtypesMap||{}),l,p,o,h;for(l=0,p=g.length;l<p;l++){o=g[l];if(typeof o!="string"||o.length<1){throw new Error("[Ext.define] Invalid alias of: '"+o+"' for class: '"+name+"'; must be a valid string")}if(o.substring(0,r)===t){h=o.substring(r);Ext.Array.include(j,h)}}s.xtype=m.xtype=j[0];m.xtypes=j;for(l=0,p=j.length;l<p;l++){h=j[l];if(!k[h]){k[h]=true;n.push(h)}}m.xtypesChain=n;m.xtypesMap=k;Ext.Function.interceptAfter(m,"onClassCreated",function(){var i=q.mixins,v,u;for(v in i){if(i.hasOwnProperty(v)){u=i[v];j=u.xtypes;if(j){for(l=0,p=j.length;l<p;l++){h=j[l];if(!k[h]){k[h]=true;n.push(h)}}}}}});for(l=0,p=j.length;l<p;l++){h=j[l];if(typeof h!="string"||h.length<1){throw new Error("[Ext.define] Invalid xtype of: '"+h+"' for class: '"+name+"'; must be a valid non-empty string")}Ext.Array.include(g,t+h)}m.alias=g},["xtype","alias"])})(Ext.Class,Ext.Function.alias,Array.prototype.slice,Ext.Array.from,Ext.global);(function(a,c,d,g,i,h,f,j){var e=["extend","mixins","requires"],b;b=Ext.Loader={isInHistory:{},history:[],config:{enabled:false,disableCaching:true,disableCachingParam:"_dc",paths:{Ext:"."}},setConfig:function(k,l){if(Ext.isObject(k)&&arguments.length===1){Ext.merge(this.config,k)}else{this.config[k]=(Ext.isObject(l))?Ext.merge(this.config[k],l):l}return this},getConfig:function(k){if(k){return this.config[k]}return this.config},setPath:d(function(k,l){this.config.paths[k]=l;return this}),getPath:function(k){var m="",n=this.config.paths,l=this.getPrefix(k);if(l.length>0){if(l===k){return n[l]}m=n[l];k=k.substring(l.length+1)}if(m.length>0){m+="/"}return m.replace(/\/\.\//g,"/")+k.replace(/\./g,"/")+".js"},getPrefix:function(l){var n=this.config.paths,m,k="";if(n.hasOwnProperty(l)){return l}for(m in n){if(n.hasOwnProperty(m)&&m+"."===l.substring(0,m.length+1)){if(m.length>k.length){k=m}}}return k},require:function(m,l,k,n){if(l){l.call(k)}},syncRequire:function(){},exclude:function(l){var k=this;return{require:function(o,n,m){return k.require(o,n,m,l)},syncRequire:function(o,n,m){return k.syncRequire(o,n,m,l)}}},onReady:function(n,m,o,k){var l;if(o!==false&&Ext.onDocumentReady){l=n;n=function(){Ext.onDocumentReady(l,m,k)}}n.call(m)}};Ext.apply(b,{documentHead:typeof document!="undefined"&&(document.head||document.getElementsByTagName("head")[0]),isLoading:false,queue:[],isClassFileLoaded:{},isFileLoaded:{},readyListeners:[],optionalRequires:[],requiresMap:{},numPendingFiles:0,numLoadedFiles:0,hasFileLoadError:false,classNameToFilePathMap:{},syncModeEnabled:false,scriptElements:{},refreshQueue:function(){var k=this.queue,q=k.length,n,p,l,o,m;if(q===0){this.triggerReady();return}for(n=0;n<q;n++){p=k[n];if(p){o=p.requires;m=p.references;if(o.length>this.numLoadedFiles){continue}l=0;do{if(a.isCreated(o[l])){f(o,l,1)}else{l++}}while(l<o.length);if(p.requires.length===0){f(k,n,1);p.callback.call(p.scope);this.refreshQueue();break}}}return this},injectScriptElement:function(m,o,q,n){var l=document.createElement("script"),p=this,k=function(){p.cleanupScriptElement(l);o.call(n)},r=function(){p.cleanupScriptElement(l);q.call(n)};l.type="text/javascript";l.src=m;l.onload=k;l.onerror=r;l.onreadystatechange=function(){if(this.readyState==="loaded"||this.readyState==="complete"){k()}};this.documentHead.appendChild(l);return l},removeScriptElement:function(l){var k=this.scriptElements;if(k[l]){this.cleanupScriptElement(k[l],true);delete k[l]}return this},cleanupScriptElement:function(l,k){l.onload=null;l.onreadystatechange=null;l.onerror=null;if(k){this.documentHead.removeChild(l)}return this},loadScriptFile:function(l,s,p,w,k){var r=this,x=this.isFileLoaded,n=this.scriptElements,v=l+(this.getConfig("disableCaching")?("?"+this.getConfig("disableCachingParam")+"="+Ext.Date.now()):""),m=false,u,o,t;if(x[l]){return this}w=w||this;this.isLoading=true;if(!k){t=function(){p.call(w,"Failed loading '"+l+"', please verify that the file exists",k)};if(!Ext.isReady&&Ext.onDocumentReady){Ext.onDocumentReady(function(){if(!x[l]){n[l]=r.injectScriptElement(v,s,t,w)}})}else{n[l]=this.injectScriptElement(v,s,t,w)}}else{if(typeof XMLHttpRequest!="undefined"){u=new XMLHttpRequest()}else{u=new ActiveXObject("Microsoft.XMLHTTP")}try{u.open("GET",v,false);u.send(null)}catch(q){m=true}o=(u.status===1223)?204:u.status;if(!m){m=(o===0)}if(m){p.call(this,"Failed loading synchronously via XHR: '"+l+"'; 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.",k)}else{if(o>=200&&o<300){Ext.globalEval(u.responseText+"\n//@ sourceURL="+l);s.call(w)}else{p.call(this,"Failed loading synchronously via XHR: '"+l+"'; please verify that the file exists. XHR status code: "+o,k)}}u=null}},syncRequire:function(){var k=this.syncModeEnabled;if(!k){this.syncModeEnabled=true}this.require.apply(this,arguments);if(!k){this.syncModeEnabled=false}this.refreshQueue()},require:function(F,t,n,q){var v={},m={},y=this.queue,C=this.classNameToFilePathMap,A=this.isClassFileLoaded,s=[],H=[],E=[],l=[],r,G,x,w,k,p,D,B,z,u,o;if(q){q=h(q);for(B=0,u=q.length;B<u;B++){k=q[B];if(typeof k=="string"&&k.length>0){s=a.getNamesByExpression(k);for(z=0,o=s.length;z<o;z++){v[s[z]]=true}}}}F=h(F);if(t){if(t.length>0){r=function(){var K=[],J,L,I;for(J=0,L=l.length;J<L;J++){I=l[J];K.push(a.get(I))}return t.apply(this,K)}}else{r=t}}else{r=Ext.emptyFn}n=n||Ext.global;for(B=0,u=F.length;B<u;B++){w=F[B];if(typeof w=="string"&&w.length>0){H=a.getNamesByExpression(w);o=H.length;for(z=0;z<o;z++){D=H[z];if(v[D]!==true){l.push(D);if(!a.isCreated(D)&&!m[D]){m[D]=true;E.push(D)}}}}}if(E.length>0){if(!this.config.enabled){throw new Error("Ext.Loader is not enabled, so dependencies cannot be resolved dynamically. Missing required class"+((E.length>1)?"es":"")+": "+E.join(", "))}}else{r.call(n);return this}G=this.syncModeEnabled;if(!G){y.push({requires:E.slice(),callback:r,scope:n})}u=E.length;for(B=0;B<u;B++){p=E[B];x=this.getPath(p);if(G&&A.hasOwnProperty(p)){this.numPendingFiles--;this.removeScriptElement(x);delete A[p]}if(!A.hasOwnProperty(p)){A[p]=false;C[p]=x;this.numPendingFiles++;this.loadScriptFile(x,i(this.onFileLoaded,[p,x],this),i(this.onFileLoadError,[p,x]),this,G)}}if(G){r.call(n);if(u===1){return a.get(p)}}return this},onFileLoaded:function(r,l){this.numLoadedFiles++;this.isClassFileLoaded[r]=true;this.isFileLoaded[l]=true;this.numPendingFiles--;if(this.numPendingFiles===0){this.refreshQueue()}if(!this.syncModeEnabled&&this.numPendingFiles===0&&this.isLoading&&!this.hasFileLoadError){var o=this.queue,t=[],k=[],s,n,q,m,p;for(n=0,q=o.length;n<q;n++){s=o[n].requires;for(m=0,p=s.length;m<p;m++){if(this.isClassFileLoaded[s[m]]){t.push(s[m])}}}if(t.length<1){return}t=Ext.Array.filter(Ext.Array.unique(t),function(u){return !this.requiresMap.hasOwnProperty(u)},this);for(n=0,q=t.length;n<q;n++){k.push(this.classNameToFilePathMap[t[n]])}throw new Error("The following classes are not declared even if their files have been loaded: '"+t.join("', '")+"'. Please check the source code of their corresponding files for possible typos: '"+k.join("', '"))}},onFileLoadError:function(m,l,k,n){this.numPendingFiles--;this.hasFileLoadError=true;throw new Error("[Ext.Loader] "+k)},addOptionalRequires:function(m){var o=this.optionalRequires,l,n,k;m=h(m);for(l=0,n=m.length;l<n;l++){k=m[l];j(o,k)}return this},triggerReady:function(l){var n=this.readyListeners,m=this.optionalRequires,k;if(this.isLoading||l){this.isLoading=false;if(m.length!==0){m=m.slice();this.optionalRequires.length=0;this.require(m,i(this.triggerReady,[true],this),this);return this}while(n.length){k=n.shift();k.fn.call(k.scope);if(this.isLoading){return this}}}return this},onReady:function(n,m,o,k){var l;if(o!==false&&Ext.onDocumentReady){l=n;n=function(){Ext.onDocumentReady(l,m,k)}}if(!this.isLoading){n.call(m)}else{this.readyListeners.push({fn:n,scope:m})}},historyPush:function(l){var k=this.isInHistory;if(l&&this.isClassFileLoaded.hasOwnProperty(l)&&!k[l]){k[l]=true;this.history.push(l)}return this}});Ext.require=g(b,"require");Ext.syncRequire=g(b,"syncRequire");Ext.exclude=g(b,"exclude");Ext.onReady=function(m,l,k){b.onReady(m,l,true,k)};c.registerPreprocessor("loader",function(A,n,z,y){var v=this,t=[],u=a.getName(A),o,m,s,r,w,q,k;for(o=0,s=e.length;o<s;o++){q=e[o];if(n.hasOwnProperty(q)){k=n[q];if(typeof k=="string"){t.push(k)}else{if(k instanceof Array){for(m=0,r=k.length;m<r;m++){w=k[m];if(typeof w=="string"){t.push(w)}}}else{if(typeof k!="function"){for(m in k){if(k.hasOwnProperty(m)){w=k[m];if(typeof w=="string"){t.push(w)}}}}}}}}if(t.length===0){return}var p=[],x=b.requiresMap,l;if(u){x[u]=t;if(!b.requiredByMap){b.requiredByMap={}}Ext.Array.each(t,function(B){if(!b.requiredByMap[B]){b.requiredByMap[B]=[]}b.requiredByMap[B].push(u)});l=function(B){p.push(B);if(x[B]){if(Ext.Array.contains(x[B],u)){throw new Error("Deadlock detected while loading dependencies! '"+u+"' and '"+p[1]+"' mutually require each other. Path: "+p.join(" -> ")+" -> "+p[0])}for(o=0,s=x[B].length;o<s;o++){l(x[B][o])}}};l(u)}b.require(t,function(){for(o=0,s=e.length;o<s;o++){q=e[o];if(n.hasOwnProperty(q)){k=n[q];if(typeof k=="string"){n[q]=a.get(k)}else{if(k instanceof Array){for(m=0,r=k.length;m<r;m++){w=k[m];if(typeof w=="string"){n[q][m]=a.get(w)}}}else{if(typeof k!="function"){for(var B in k){if(k.hasOwnProperty(B)){w=k[B];if(typeof w=="string"){n[q][B]=a.get(w)}}}}}}}}y.call(v,A,n,z)});return false},true,"after","className");a.registerPostprocessor("uses",function(n,l,r){var k=h(r.uses),m=[],o,q,p;for(o=0,q=k.length;o<q;o++){p=k[o];if(typeof p=="string"){m.push(p)}}b.addOptionalRequires(m)});a.onCreated(function(k){this.historyPush(k)},b)})(Ext.ClassManager,Ext.Class,Ext.Function.flexSetter,Ext.Function.alias,Ext.Function.pass,Ext.Array.from,Ext.Array.erase,Ext.Array.include);Ext.setVersion("touch","2.0.0.beta1");Ext.apply(Ext,{version:Ext.getVersion("touch"),idSeed:0,repaint:function(){var a=Ext.getBody().createChild({cls:Ext.baseCSSPrefix+"mask "+Ext.baseCSSPrefix+"mask-transparent"});setTimeout(function(){a.remove()},0)},id:function(a,b){if(a&&a.id){return a.id}a=Ext.getDom(a)||{};if(a===document||a===document.documentElement){a.id="ext-application"}else{if(a===document.body){a.id="ext-viewport"}else{if(a===window){a.id="ext-window"}}}a.id=a.id||((b||"ext-element-")+(++Ext.idSeed));return a.id},getBody:function(){if(!Ext.documentBodyElement){if(!document.body){throw new Error("[Ext.getBody] document.body does not exist at this point")}Ext.documentBodyElement=Ext.get(document.body)}return Ext.documentBodyElement},getHead:function(){if(!Ext.documentHeadElement){Ext.documentHeadElement=Ext.get(document.head||document.getElementsByTagName("head")[0])}return Ext.documentHeadElement},getDoc:function(){if(!Ext.documentElement){Ext.documentElement=Ext.get(document)}return Ext.documentElement},getCmp:function(a){return Ext.ComponentMgr.get(a)},copyTo:function(a,b,d,c){if(typeof d=="string"){d=d.split(/[,;\s]/)}Ext.each(d,function(e){if(c||b.hasOwnProperty(e)){a[e]=b[e]}},this);return a},destroy:function(){var c=arguments.length,b,a;for(b=0;b<c;b++){a=arguments[b];if(a){if(Ext.isArray(a)){this.destroy.apply(this,a)}else{if(Ext.isFunction(a.destroy)){a.destroy()}else{if(a.dom){a.remove()}}}}}},getDom:function(a){if(!a||!document){return null}return a.dom?a.dom:(typeof a=="string"?document.getElementById(a):a)},removeNode:function(a){if(a&&a.parentNode&&a.tagName!="BODY"){Ext.get(a).clearListeners();a.parentNode.removeChild(a);delete Ext.cache[a.id]}},defaultSetupConfig:{eventPublishers:{dom:{xclass:"Ext.event.publisher.Dom"},touchGesture:{xclass:"Ext.event.publisher.TouchGesture",recognizers:{drag:{xclass:"Ext.event.recognizer.Drag"},tap:{xclass:"Ext.event.recognizer.Tap"},doubleTap:{xclass:"Ext.event.recognizer.DoubleTap"},longPress:{xclass:"Ext.event.recognizer.LongPress"},swipe:{xclass:"Ext.event.recognizer.HorizontalSwipe"},pinch:{xclass:"Ext.event.recognizer.Pinch"},rotate:{xclass:"Ext.event.recognizer.Rotate"}}},componentDelegation:{xclass:"Ext.event.publisher.ComponentDelegation"},componentPaint:{xclass:"Ext.event.publisher.ComponentPaint"},componentSize:{xclass:"Ext.event.publisher.ComponentSize"}},logger:{enabled:true,xclass:"Ext.log.Logger",minPriority:"deprecate",writers:{console:{xclass:"Ext.log.writer.Console",throwOnErrors:true,formatter:{xclass:"Ext.log.formatter.Default"}}}},animator:{xclass:"Ext.fx.Runner"},viewport:{xclass:"Ext.viewport.Viewport"}},log:function(a){return Ext.Logger.log(a)},isSetup:false,setupListeners:[],onSetup:function(b,a){if(Ext.isSetup){b.call(a)}else{Ext.setupListeners.push({fn:b,scope:a})}},setup:function(s){var i=Ext.defaultSetupConfig,b=s.onReady||Ext.emptyFn,a=s.scope,c=Ext.Array.from(s.requires),n=Ext.onReady,o=s.icon,f,p,g;Ext.setup=function(){throw new Error("Ext.setup has already been called before")};delete s.requires;delete s.onReady;delete s.scope;Ext.require(["Ext.event.Dispatcher","Ext.MessageBox"]);f=function(){var v=Ext.setupListeners,w=v.length,u,x;delete Ext.setupListeners;Ext.isSetup=true;for(u=0;u<w;u++){x=v[u];x.fn.call(x.scope)}Ext.onReady=n;Ext.onReady(b,a)};Ext.onReady=function(w,v){var u=b;b=function(){u();Ext.onReady(w,v)}};s=Ext.merge({},i,s);Ext.onDocumentReady(function(){Ext.factoryConfig(s,function(u){Ext.event.Dispatcher.getInstance().setPublishers(u.eventPublishers);if(u.logger){Ext.Logger=u.logger}if(u.animator){Ext.Animator=u.animator}if(u.viewport){Ext.Viewport=p=u.viewport;if(!a){a=p}Ext.require(c,function(){Ext.Viewport.on("ready",f,null,{single:true})})}else{Ext.require(c,f)}})});if(!document.body){var k=s.phoneIcon,m=s.tabletIcon,l=s.tabletStartupScreen,d=s.statusBarStyle,q=s.phoneStartupScreen,j=Ext.os.is.iPad;document.write('<meta id="extViewportMeta" name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">');document.write('<meta name="apple-mobile-web-app-capable" content="yes">');document.write('<meta name="apple-touch-fullscreen" content="yes">');if(Ext.isString(d)){document.write('<meta name="apple-mobile-web-app-status-bar-style" content="'+d+'">')}if(l&&j){document.write('<link rel="apple-touch-startup-image" href="'+l+'">')}if(q&&!j){document.write('<link rel="apple-touch-startup-image" href="'+q+'">')}if(Ext.isString(o)||Ext.isString(k)||Ext.isString(m)){o={"57":k||m||o,"72":m||k||o,"114":k||m||o}}g=(s.glossOnIcon===false)?"-precomposed":"";if(o){var t=o["72"],e=o["57"],h=o["114"],r='<link rel="apple-touch-icon';if(j&&t){document.write(r+g+'" sizes="72x72" href="'+t+'">')}else{if(!j){if(e){document.write(r+g+'" href="'+e+'">')}if(h){document.write(r+g+'" sizes="114x114" href="'+h+'">')}}}}}},application:function(a){var c,b;if(!a){a={}}a.requires=Ext.Array.from(a.requires);a.requires.push("Ext.app.Application");c=a.onReady;b=a.scope;a.onReady=function(){new Ext.app.Application(a);if(c){c.call(b)}};Ext.setup(a)},factoryConfig:function(a,l){var g=Ext.isSimpleObject(a);if(g&&a.xclass){var f=a.xclass;delete a.xclass;Ext.require(f,function(){Ext.factoryConfig(a,function(i){l(Ext.create(f,i))})});return}var d=Ext.isArray(a),m=[],k,j,c,e;if(g||d){if(g){for(k in a){if(a.hasOwnProperty(k)){j=a[k];if(Ext.isSimpleObject(j)||Ext.isArray(j)){m.push(k)}}}}else{for(c=0,e=a.length;c<e;c++){j=a[c];if(Ext.isSimpleObject(j)||Ext.isArray(j)){m.push(c)}}}c=0;e=m.length;if(e===0){l(a);return}function h(i){a[k]=i;c++;b()}function b(){if(c>=e){l(a);return}k=m[c];j=a[k];Ext.factoryConfig(j,h)}b();return}l(a)},factory:function(b,e,a,f){var d=Ext.ClassManager,c;if(!b||b.isInstance){if(a&&a!==b){a.destroy()}return b}if(f){if(typeof b=="string"){return d.instantiateByAlias(f+"."+b)}else{if("type" in b){return d.instantiateByAlias(f+"."+b.type,b)}}}else{if(typeof b=="string"){return Ext.getCmp(b)}}if(b===true){if(a){return a}else{return d.instantiate(e)}}if(!Ext.isObject(b)){Ext.Logger.error("Invalid config, must be a valid config object")}if("xtype" in b){c=d.instantiateByAlias("widget."+b.xtype,b)}if("xclass" in b){c=d.instantiate(b.xclass,b)}if(c){if(a){a.destroy()}return c}if(a){return a.setConfig(b)}return d.instantiate(e,b)},deprecateClassMember:function(b,c,a,d){return this.deprecateProperty(b.prototype,c,a,d)},deprecateClassMembers:function(b,c){var d=b.prototype,e,a;for(e in c){if(c.hasOwnProperty(e)){a=c[e];this.deprecateProperty(d,e,a)}}},deprecateProperty:function(b,c,a,d){if(!d){d="'"+c+"' is deprecated, please use '"+a+"' instead"}Ext.Object.defineProperty(b,c,{get:function(){Ext.Logger.deprecate(d,1);return this[a]},set:function(e){Ext.Logger.deprecate(d,1);this[a]=e},configurable:true})},deprecatePropertyValue:function(b,a,d,c){Ext.Object.defineProperty(b,a,{get:function(){Ext.Logger.deprecate(c,1);return d},configurable:true})},deprecateMethod:function(b,a,d,c){b[a]=function(){Ext.Logger.deprecate(c,2);return d.apply(this,arguments)}},deprecateClassMethod:function(a,b,f,d){var c=typeof f=="string",e;if(!d){if(c){d="'"+b+"()' is deprecated, please use '"+f+"()' instead"}else{d="'"+b+"()' is deprecated."}}if(c){e=function(){Ext.Logger.deprecate(d,this);return this[f].apply(this,arguments)}}else{e=function(){Ext.Logger.deprecate(d,this);return f.apply(this,arguments)}}if(b in a.prototype){Ext.Object.defineProperty(a.prototype,b,{value:null,writable:true,configurable:true})}a.addMember(b,e)},deprecateClassConfigDirectAccess:function(a,d){var c=a.prototype,b=c.config;if(b){Ext.Object.each(b,function(g){if(!(g in c)){var i=Ext.String.capitalize(g),h="get"+i,f="set"+i;function e(){Ext.Logger.deprecate("Access to config '"+g+"' directly is deprecated, please use "+h+"() instead",1);var k=this[h];if(k===e.caller){throw new Error("Infinite recursion detected: accessing '"+g+"' config inside of "+h+"()")}return k.apply(this,arguments)}function j(){Ext.Logger.deprecate("Setting config '"+g+"' value directly is deprecated, please use "+f+"() instead",1);var k=this[f];if(k===j.caller){throw new Error("Infinite recursion detected: setting '"+g+"' config inside of "+f+"()")}return k.apply(this,arguments)}if("defineProperty" in Object){Object.defineProperty(object,oldName,{get:e,set:j})}else{object.__defineGetter__(oldName,e);object.__defineSetter__(oldName,j)}Object.defineProperty(c,g,{get:function e(){Ext.Logger.deprecate("Access to config '"+g+"' directly is deprecated, please use "+h+"() instead",1);var k=this[h];if(k===e.caller){throw new Error("Infinite recursion detected: accessing '"+g+"' config inside of "+h+"()")}return k.apply(this,arguments)},set:function j(){Ext.Logger.deprecate("Setting config '"+g+"' value directly is deprecated, please use "+f+"() instead",1);var k=this[f];if(k===j.caller){throw new Error("Infinite recursion detected: setting '"+g+"' config inside of "+f+"()")}return k.apply(this,arguments)}})}if(d&&g in d&&g in b){throw new Error("["+Ext.getClassName(a)+"] Defining class property: '"+g+"' with an already existing config item with the same name. Move it inside the 'config' object instead.")}})}},showLeaks:function(){var c=Ext.ComponentManager.all.map,a=[],b;Ext.Object.each(c,function(e,d){while((b=d.getParent())&&c.hasOwnProperty(b.getId())){d=b}if(a.indexOf(d)===-1){a.push(d)}});console.log(a)},isReady:false,readyListeners:[],triggerReady:function(){var b=Ext.readyListeners,a,c,d;if(!Ext.isReady){Ext.isReady=true;for(a=0,c=b.length;a<c;a++){d=b[a];d.fn.call(d.scope)}delete Ext.readyListeners}},onDocumentReady:function(c,b){if(Ext.isReady){c.call(b)}else{var a=Ext.triggerReady;Ext.readyListeners.push({fn:c,scope:b});if(Ext.browser.is.PhoneGap){if(!Ext.readyListenerAttached){Ext.readyListenerAttached=true;document.addEventListener("deviceready",a,false)}}else{if(document.readyState.match(/interactive|complete|loaded/)!==null){a()}else{if(!Ext.readyListenerAttached){Ext.readyListenerAttached=true;window.addEventListener("DOMContentLoaded",a,false)}}}}},callback:function(d,c,b,a){if(Ext.isFunction(d)){b=b||[];c=c||window;if(a){Ext.defer(d,a,c,b)}else{d.apply(c,b)}}}});Ext.define("Ext.env.Browser",{requires:["Ext.Version"],statics:{browserNames:{ie:"IE",firefox:"Firefox",safari:"Safari",chrome:"Chrome",opera:"Opera",dolfin:"Dolfin",webosbrowser:"webOSBrowser",other:"Other"},engineNames:{webkit:"WebKit",gecko:"Gecko",presto:"Presto",trident:"Trident",other:"Other"},enginePrefixes:{webkit:"AppleWebKit/",gecko:"Gecko/",presto:"Presto/",trident:"Trident/"},browserPrefixes:{ie:"MSIE ",firefox:"Firefox/",chrome:"Chrome/",safari:"Version/",opera:"Opera/",dolfin:"Dolfin/",webosbrowser:"wOSBrowser/"}},styleDashPrefixes:{WebKit:"-webkit-",Gecko:"-moz-",Trident:"-ms-",Presto:"-o-",Other:""},stylePrefixes:{WebKit:"Webkit",Gecko:"Moz",Trident:"ms",Presto:"O",Other:""},propertyPrefixes:{WebKit:"webkit",Gecko:"moz",Trident:"ms",Presto:"o",Other:""},is:Ext.emptyFn,name:null,version:null,engineName:null,engineVersion:null,setFlag:function(a,b){if(typeof b=="undefined"){b=true}this.is[a]=b;this.is[a.toLowerCase()]=b;return this},constructor:function(o){this.userAgent=o;e=this.is=function(i){return e[i]===true};var k=this.statics(),c=o.match(new RegExp("((?:"+Ext.Object.getValues(k.browserPrefixes).join(")|(?:")+"))([\\w\\._]+)")),b=o.match(new RegExp("((?:"+Ext.Object.getValues(k.enginePrefixes).join(")|(?:")+"))([\\w\\._]+)")),g=k.browserNames,j=g.other,f=k.engineNames,n=f.other,m="",l="",h=false,e,d,a;if(c){j=g[Ext.Object.getKey(k.browserPrefixes,c[1])];m=new Ext.Version(c[2])}if(b){n=f[Ext.Object.getKey(k.enginePrefixes,b[1])];l=new Ext.Version(b[2])}Ext.apply(this,{engineName:n,engineVersion:l,name:j,version:m});this.setFlag(j);if(m){this.setFlag(j+(m.getMajor()||""));this.setFlag(j+m.getShortVersion())}for(d in g){if(g.hasOwnProperty(d)){a=g[d];this.setFlag(a,j===a)}}this.setFlag(a);if(l){this.setFlag(n+(l.getMajor()||""));this.setFlag(n+l.getShortVersion())}for(d in f){if(f.hasOwnProperty(d)){a=f[d];this.setFlag(a,n===a)}}this.setFlag("Standalone",!!navigator.standalone);if(typeof window.PhoneGap!="undefined"){h=true;this.setFlag("PhoneGap")}else{if(!!window.isNK){h=true;this.setFlag("Sencha")}}this.setFlag("WebView",h);this.isStrict=document.compatMode=="CSS1Compat";this.isSecure=/^https/i.test(window.location.protocol);return this},getStyleDashPrefix:function(){return this.styleDashPrefixes[this.engineName]},getStylePrefix:function(){return this.stylePrefixes[this.engineName]},getVendorProperyName:function(a){var b=this.propertyPrefixes[this.engineName];if(b.length>0){return b+Ext.String.capitalize(a)}return a}},function(){var a=Ext.browser=new this(Ext.global.navigator.userAgent)});Ext.define("Ext.env.OS",{requires:["Ext.Version"],statics:{names:{ios:"iOS",android:"Android",webos:"webOS",blackberry:"BlackBerry",rimTablet:"RIMTablet",mac:"MacOS",win:"Windows",linux:"Linux",bada:"Bada",other:"Other"},prefixes:{ios:"i(?:Pad|Phone|Pod)(?:.*)CPU(?: iPhone)? OS ",android:"Android ",blackberry:"BlackBerry(?:.*)Version/",rimTablet:"RIM Tablet OS ",webos:"(?:webOS|hpwOS)/",bada:"Bada/"}},is:Ext.emptyFn,name:null,version:null,setFlag:function(a,b){if(typeof b=="undefined"){b=true}this.is[a]=b;this.is[a.toLowerCase()]=b;return this},constructor:function(m,b){var k=this.statics(),j=k.names,c=k.prefixes,a,h="",d,g,f,l,e;e=this.is=function(i){return this.is[i]===true};for(d in c){if(c.hasOwnProperty(d)){g=c[d];f=m.match(new RegExp("(?:"+g+")([^\\s;]+)"));if(f){a=j[d];h=new Ext.Version(f[f.length-1]);break}}}if(!a){a=j[(m.toLowerCase().match(/mac|win|linux/)||["other"])[0]];h=new Ext.Version("")}Ext.apply(this,{name:a,version:h});if(b){this.setFlag(b)}this.setFlag(a);if(h){this.setFlag(a+(h.getMajor()||""));this.setFlag(a+h.getShortVersion())}for(d in j){if(j.hasOwnProperty(d)){l=j[d];if(!e.hasOwnProperty(a)){this.setFlag(l,(a===l))}}}return this}},function(){var a=Ext.global.navigator,b,e,d;Ext.os=b=new this(a.userAgent,a.platform);e=b.name;var c=window.location.search.match(/deviceType=(Tablet|Phone)/);if(c&&c[1]){d=c[1]}else{if(/Windows|Linux|MacOS/.test(e)){d="Desktop"}else{if(b.is.iPad||b.is.Android3){d="Tablet"}else{d="Phone"}}}b.setFlag(d,true);b.deviceType=d});Ext.define("Ext.env.Feature",{requires:["Ext.env.Browser","Ext.env.OS"],constructor:function(){this.testElements={};this.has=function(a){return !!this.has[a]};return this},getTestElement:function(a,b){if(a===undefined){a="div"}else{if(typeof a!=="string"){return a}}if(b){return document.createElement(a)}if(!this.testElements[a]){this.testElements[a]=document.createElement(a)}return this.testElements[a]},isStyleSupported:function(c,b){var d=this.getTestElement(b).style,a=Ext.String.capitalize(c);if(typeof d[c]!=="undefined"||typeof d[Ext.browser.getStylePrefix(c)+a]!=="undefined"){return true}return false},isEventSupported:function(c,a){if(a===undefined){a=window}var e=this.getTestElement(a),b="on"+c.toLowerCase(),d=false;d=(b in e);if(!d){if(e.setAttribute&&e.removeAttribute){e.setAttribute(b,"");d=typeof e[b]==="function";if(typeof e[b]!=="undefined"){e[b]=undefined}e.removeAttribute(b)}}return d},getSupportedPropertyName:function(b,a){var c=Ext.browser.getVendorProperyName(a);if(c in b){return c}else{if(a in b){return a}}return null},registerTest:Ext.Function.flexSetter(function(a,b){this.has[a]=b.call(this);return this})},function(){Ext.feature=new this;var a=Ext.feature.has;Ext.feature.registerTest({Canvas:function(){var b=this.getTestElement("canvas");return !!(b&&b.getContext&&b.getContext("2d"))},Svg:function(){var b=document;return !!(b.createElementNS&&!!b.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect)},Vml:function(){var c=this.getTestElement(),b=false;c.innerHTML="<!--[if vml]><br><![endif]-->";b=(c.childNodes.length===1);c.innerHTML="";return b},Touch:function(){return this.isEventSupported("touchstart")&&!(Ext.os&&Ext.os.name.match(/Windows|MacOSX|Linux/))},Orientation:function(){return("orientation" in window)&&this.isEventSupported("orientationchange")},OrientationChange:function(){return this.isEventSupported("orientationchange")},DeviceMotion:function(){return this.isEventSupported("devicemotion")},Geolocation:function(){return"geolocation" in window.navigator},SqlDatabase:function(){return"openDatabase" in window},WebSockets:function(){return"WebSocket" in window},History:function(){return("history" in window&&"pushState" in window.history)},CssTransforms:function(){return this.isStyleSupported("transform")},Css3dTransforms:function(){return this.has("CssTransforms")&&this.isStyleSupported("perspective")&&!Ext.os.is.Android2},CssAnimations:function(){return this.isStyleSupported("animationName")},CssTransitions:function(){return this.isStyleSupported("transitionProperty")},Audio:function(){return !!this.getTestElement("audio").canPlayType},Video:function(){return !!this.getTestElement("video").canPlayType},ClassList:function(){return"classList" in this.getTestElement()}})});Ext.define("Ext.dom.Query",{select:function(h,b){var g=[],d,f,e,c,a;b=b||document;if(typeof b=="string"){b=document.getElementById(b)}h=h.split(",");for(f=0,c=h.length;f<c;f++){if(typeof h[f]=="string"){if(h[f][0]=="@"){d=b.getAttributeNode(h[f].substring(1));g.push(d)}else{d=b.querySelectorAll(h[f]);for(e=0,a=d.length;e<a;e++){g.push(d[e])}}}}return g},selectNode:function(b,a){return this.select(b,a)[0]},is:function(a,b){if(typeof a=="string"){a=document.getElementById(a)}return this.select(b).indexOf(a)!==-1},isXml:function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":false}},function(){Ext.ns("Ext.core");Ext.core.DomQuery=Ext.DomQuery=new this();Ext.query=Ext.Function.alias(Ext.DomQuery,"select")});Ext.define("Ext.dom.Helper",{emptyTags:/^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i,confRe:/tag|children|cn|html|tpl|tplData$/i,endRe:/end/i,attribXlat:{cls:"class",htmlFor:"for"},closeTags:{},decamelizeName:function(){var c=/([a-z])([A-Z])/g,b={};function a(d,f,e){return f+"-"+e.toLowerCase()}return function(d){return b[d]||(b[d]=d.replace(c,a))}}(),generateMarkup:function(d,c){var g=this,b,h,a,e,f;if(typeof d=="string"){c.push(d)}else{if(Ext.isArray(d)){for(e=0;e<d.length;e++){if(d[e]){g.generateMarkup(d[e],c)}}}else{a=d.tag||"div";c.push("<",a);for(b in d){if(d.hasOwnProperty(b)){h=d[b];if(!g.confRe.test(b)){if(typeof h=="object"){c.push(" ",b,'="');g.generateStyles(h,c).push('"')}else{c.push(" ",g.attribXlat[b]||b,'="',h,'"')}}}}if(g.emptyTags.test(a)){c.push("/>")}else{c.push(">");if((h=d.tpl)){h.applyOut(d.tplData,c)}if((h=d.html)){c.push(h)}if((h=d.cn||d.children)){g.generateMarkup(h,c)}f=g.closeTags;c.push(f[a]||(f[a]="</"+a+">"))}}}return c},generateStyles:function(e,c){var b=c||[],d;for(d in e){if(e.hasOwnProperty(d)){b.push(this.decamelizeName(d),":",e[d],";")}}return c||b.join("")},markup:function(a){if(typeof a=="string"){return a}var b=this.generateMarkup(a,[]);return b.join("")},applyStyles:function(d,e){if(e){var b=0,a,c;d=Ext.fly(d);if(typeof e=="function"){e=e.call()}if(typeof e=="string"){e=Ext.util.Format.trim(e).split(/\s*(?::|;)\s*/);for(a=e.length;b<a;){d.setStyle(e[b++],e[b++])}}else{if(Ext.isObject(e)){d.setStyle(e)}}}},insertHtml:function(f,a,g){var e={},c,i,h,j,d,b;f=f.toLowerCase();e.beforebegin=["BeforeBegin","previousSibling"];e.afterend=["AfterEnd","nextSibling"];h=a.ownerDocument.createRange();i="setStart"+(this.endRe.test(f)?"After":"Before");if(e[f]){h[i](a);j=h.createContextualFragment(g);a.parentNode.insertBefore(j,f=="beforebegin"?a:a.nextSibling);return a[(f=="beforebegin"?"previous":"next")+"Sibling"]}else{d=(f=="afterbegin"?"first":"last")+"Child";if(a.firstChild){h[i](a[d]);j=h.createContextualFragment(g);if(f=="afterbegin"){a.insertBefore(j,a.firstChild)}else{a.appendChild(j)}}else{a.innerHTML=g}return a[d]}throw'Illegal insertion point -> "'+f+'"'},insertBefore:function(a,c,b){return this.doInsert(a,c,b,"beforebegin")},insertAfter:function(a,c,b){return this.doInsert(a,c,b,"afterend","nextSibling")},insertFirst:function(a,c,b){return this.doInsert(a,c,b,"afterbegin","firstChild")},append:function(a,c,b){return this.doInsert(a,c,b,"beforeend","",true)},overwrite:function(a,c,b){a=Ext.getDom(a);a.innerHTML=this.markup(c);return b?Ext.get(a.firstChild):a.firstChild},doInsert:function(d,f,e,g,c,a){var b=this.insertHtml(g,Ext.getDom(d),this.markup(f));return e?Ext.get(b,true):b}},function(){Ext.ns("Ext.core");Ext.core.DomHelper=Ext.DomHelper=new this});Ext.define("Ext.dom.Element",{alternateClassName:"Ext.Element",requires:["Ext.dom.Query","Ext.dom.Helper"],observableType:"element",xtype:"element",statics:{CREATE_ATTRIBUTES:{style:"style",className:"className",cls:"cls",classList:"classList",text:"text",hidden:"hidden",html:"html",children:"children"},create:function(c,b){var f=this.CREATE_ATTRIBUTES,e,h,k,j,a,d,g;if(!c){c={}}if(c.isElement){return c.dom}else{if("nodeType" in c){return c}}if(typeof c=="string"){return document.createTextNode(c)}k=c.tag;if(!k){k="div"}e=document.createElement(k);h=e.style;for(a in c){if(a!="tag"&&c.hasOwnProperty(a)){j=c[a];switch(a){case f.style:if(typeof j=="string"){e.setAttribute(a,j)}else{for(d in j){if(j.hasOwnProperty(d)){h[d]=j[d]}}}break;case f.className:case f.cls:e.className=j;break;case f.classList:e.className=j.join(" ");break;case f.text:e.textContent=j;break;case f.hidden:if(j){e.style.display="none"}break;case f.html:e.innerHTML=j;break;case f.children:for(d=0,g=j.length;d<g;d++){e.appendChild(this.create(j[d],true))}break;default:e.setAttribute(a,j)}}}if(b){return e}else{return this.get(e)}},documentElement:null,cache:{},get:function(c){var b=this.cache,a,d,e;if(!c){return null}if(typeof c=="string"){if(b.hasOwnProperty(c)){return b[c]}if(!(d=document.getElementById(c))){return null}b[c]=a=new this(d);return a}if("tagName" in c){e=c.id;if(b.hasOwnProperty(e)){return b[e]}a=new this(c);b[a.getId()]=a;return a}if(c.isElement){return c}if(c.isComposite){return c}if(Ext.isArray(c)){return this.select(c)}if(c===document){if(!this.documentElement){this.documentElement=new this(document.documentElement);this.documentElement.setId("ext-application")}return this.documentElement}return null},data:function(c,b,e){var a=Ext.cache,f,d;c=this.get(c);if(!c){return null}f=c.id;d=a[f].data;if(!d){a[f].data=d={}}if(arguments.length==2){return d[b]}else{return(d[b]=e)}}},isElement:true,constructor:function(a){if(typeof a=="string"){a=document.getElementById(a)}if(!a){throw new Error("Invalid domNode reference or an id of an existing domNode: "+a)}this.dom=a;this.getUniqueId()},getUniqueId:function(){var b=this.id,a;if(!b){a=this.dom;if(a.id.length>0){this.id=b=a.id}else{a.id=b=this.mixins.identifiable.getUniqueId.call(this)}this.self.cache[b]=this}return b},setId:function(c){var a=this.id,b=this.self.cache;if(a){delete b[a]}this.dom.id=c;this.id=c;b[c]=this;return this},setHtml:function(a){this.dom.innerHTML=a},getHtml:function(){return this.dom.innerHTML},setText:function(a){this.dom.textContent=a},redraw:function(){var b=this.dom,a=b.style;a.display="none";b.offsetHeight;a.display=""},isPainted:function(){return Boolean(this.dom.offsetParent)},set:function(a,b){var e=this.dom,c,d;for(c in a){if(a.hasOwnProperty(c)){d=a[c];if(c=="style"){this.applyStyles(d)}else{if(c=="cls"){e.className=d}else{if(b!==false){if(d===undefined){e.removeAttribute(c)}else{e.setAttribute(c,d)}}else{e[c]=d}}}}}return this},is:function(a){return Ext.DomQuery.is(this.dom,a)},getValue:function(b){var a=this.dom.value;return b?parseInt(a,10):a},getAttribute:function(a,b){var c=this.dom;return c.getAttributeNS(b,a)||c.getAttribute(b+":"+a)||c.getAttribute(a)||c[a]},destroy:function(){this.destroy=Ext.emptyFn;this.isDestroyed=true;var a=Ext.Element.cache,b=this.dom;if(b&&b.parentNode&&b.tagName!="BODY"){b.parentNode.removeChild(b)}delete a[this.id];delete this.dom}},function(a){Ext.elements=Ext.cache=a.cache;this.addStatics({Fly:new Ext.Class({extend:a,constructor:function(b){this.dom=b}}),_flyweights:{},fly:function(d,b){var e=null,c=a._flyweights;b=b||"_global";d=Ext.getDom(d);if(d){e=c[b]||(c[b]=new a.Fly());e.dom=d;e.isSynchronized=false}return e}});Ext.get=function(b){return a.get.call(a,b)};Ext.fly=function(){return a.fly.apply(a,arguments)};Ext.ClassManager.onCreated(function(){a.mixin("observable",Ext.mixin.Observable)},null,"Ext.mixin.Observable")});Ext.dom.Element.addStatics({unitRe:/\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i,camelRe:/(-[a-z])/gi,cssRe:/([a-z0-9-]+)\s*:\s*([^;\s]+(?:\s*[^;\s]+)*);?/gi,opacityRe:/alpha\(opacity=(.*)\)/i,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:function(b,a){if(Ext.isNumber(b)){return b+(a||this.defaultUnit||"px")}if(b===""||b=="auto"||b===undefined||b===null){return b||""}if(!this.unitRe.test(b)){if(Ext.isDefined(Ext.global.console)){Ext.global.console.warn("Warning, size detected as NaN on Element.addUnits.")}return b||""}return b},isAncestor:function(b,d){var a=false;b=Ext.getDom(b);d=Ext.getDom(d);if(b&&d){if(b.contains){return b.contains(d)}else{if(b.compareDocumentPosition){return !!(b.compareDocumentPosition(d)&16)}else{while((d=d.parentNode)){a=d==b||a}}}}return a},parseBox:function(b){if(typeof b!="string"){b=b.toString()}var c=b.split(" "),a=c.length;if(a==1){c[1]=c[2]=c[3]=c[0]}else{if(a==2){c[2]=c[0];c[3]=c[1]}else{if(a==3){c[3]=c[1]}}}return{top:parseFloat(c[0])||0,right:parseFloat(c[1])||0,bottom:parseFloat(c[2])||0,left:parseFloat(c[3])||0}},unitizeBox:function(f,e){var d=this.addUnits,c=this.parseBox(f);return d(c.top,e)+" "+d(c.right,e)+" "+d(c.bottom,e)+" "+d(c.left,e)},camelReplaceFn:function(b,c){return c.charAt(1).toUpperCase()},normalize:function(a){return this.propertyCache[a]||(this.propertyCache[a]=a.replace(this.camelRe,this.camelReplaceFn))},fromPoint:function(a,b){return Ext.get(document.elementFromPoint(a,b))},parseStyles:function(c){var a={},b=this.cssRe,d;if(c){b.lastIndex=0;while((d=b.exec(c))){a[d[1]]=d[2]}}return a}});Ext.dom.Element.addMembers({appendChild:function(a){this.dom.appendChild(Ext.getDom(a));return this},append:function(){this.appendChild.apply(this,arguments)},appendTo:function(a){Ext.getDom(a).appendChild(this.dom);return this},insertBefore:function(a){a=Ext.getDom(a);a.parentNode.insertBefore(this.dom,a);return this},insertAfter:function(a){a=Ext.getDom(a);a.parentNode.insertBefore(this.dom,a.nextSibling);return this},insertFirst:function(b){var a=Ext.getDom(b),d=this.dom,c=d.firstChild;if(!c){d.appendChild(a)}else{d.insertBefore(a,c)}return this},insertSibling:function(e,c,d){var f=this,b,a=(c||"before").toLowerCase()=="after",g;if(Ext.isArray(e)){g=f;Ext.each(e,function(h){b=Ext.fly(g,"_internal").insertSibling(h,c,d);if(a){g=b}});return b}e=e||{};if(e.nodeType||e.dom){b=f.dom.parentNode.insertBefore(Ext.getDom(e),a?f.dom.nextSibling:f.dom);if(!d){b=Ext.get(b)}}else{if(a&&!f.dom.nextSibling){b=Ext.core.DomHelper.append(f.dom.parentNode,e,!d)}else{b=Ext.core.DomHelper[a?"insertAfter":"insertBefore"](f.dom,e,!d)}}return b},replace:function(a){a=Ext.get(a);this.insertBefore(a);a.remove();return this},replaceWith:function(a){var b=this;if(a.nodeType||a.dom||typeof a=="string"){a=Ext.get(a);b.dom.parentNode.insertBefore(a,b.dom)}else{a=Ext.core.DomHelper.insertBefore(b.dom,a)}delete Ext.cache[b.id];Ext.removeNode(b.dom);b.id=Ext.id(b.dom=a);Ext.dom.Element.addToCache(b.isFlyweight?new Ext.dom.Element(b.dom):b);return b},createChild:function(b,a,c){b=b||{tag:"div"};if(a){return Ext.core.DomHelper.insertBefore(a,b,c!==true)}else{return Ext.core.DomHelper[!this.dom.firstChild?"insertFirst":"append"](this.dom,b,c!==true)}},wrap:function(b,c){var e=this.dom,f=this.self.create(b,c),d=(c)?f:f.dom,a=e.parentNode;if(a){a.insertBefore(d,e)}d.appendChild(e);return f},wrapAllChildren:function(a){var d=this.dom,b=d.childNodes,e=this.self.create(a),c=e.dom;while(b.length>0){c.appendChild(d.firstChild)}d.appendChild(c);return e},unwrapAllChildren:function(){var c=this.dom,b=c.childNodes,a=c.parentNode;if(a){while(b.length>0){a.insertBefore(c,c.firstChild)}this.destroy()}},unwrap:function(){var c=this.dom,a=c.parentNode,b;if(a){b=a.parentNode;b.insertBefore(c,a);b.removeChild(a)}else{b=document.createDocumentFragment();b.appendChild(c)}return this},insertHtml:function(b,c,a){var d=Ext.core.DomHelper.insertHtml(b,this.dom,c);return a?Ext.get(d):d}});Ext.dom.Element.override({getX:function(a){return this.getXY(a)[0]},getY:function(a){return this.getXY(a)[1]},getXY:function(){var a=window.webkitConvertPointFromNodeToPage;if(a){return function(){var b=a(this.dom,new WebKitPoint(0,0));return[b.x,b.y]}}else{return function(){var c=this.dom.getBoundingClientRect(),b=Math.round;return[b(c.left+window.pageXOffset),b(c.top+window.pageYOffset)]}}}(),getOffsetsTo:function(a){var c=this.getXY(),b=Ext.fly(a,"_internal").getXY();return[c[0]-b[0],c[1]-b[1]]},setX:function(a){return this.setXY([a,this.getY()])},setY:function(a){return this.setXY([this.getX(),a])},setXY:function(d){var b=this;if(arguments.length>1){d=[d,arguments[1]]}var c=b.translatePoints(d),a=b.dom.style;for(d in c){if(!c.hasOwnProperty(d)){continue}if(!isNaN(c[d])){a[d]=c[d]+"px"}}return b},getLeft:function(){return parseInt(this.getStyle("left"),10)||0},getRight:function(){return parseInt(this.getStyle("right"),10)||0},getTop:function(){return parseInt(this.getStyle("top"),10)||0},getBottom:function(){return parseInt(this.getStyle("bottom"),10)||0},translatePoints:function(a,g){g=isNaN(a[1])?g:a[1];a=isNaN(a[0])?a:a[0];var d=this,e=d.isStyle("position","relative"),f=d.getXY(),b=parseInt(d.getStyle("left"),10),c=parseInt(d.getStyle("top"),10);b=!isNaN(b)?b:(e?0:d.dom.offsetLeft);c=!isNaN(c)?c:(e?0:d.dom.offsetTop);return{left:(a-f[0]+b),top:(g-f[1]+c)}},setBox:function(d){var c=this,b=d.width,a=d.height,f=d.top,e=d.left;if(e!==undefined){c.setLeft(e)}if(f!==undefined){c.setTop(f)}if(b!==undefined){c.setWidth(b)}if(a!==undefined){c.setHeight(a)}return this},getBox:function(g,j){var h=this,e=h.dom,c=e.offsetWidth,k=e.offsetHeight,n,f,d,a,m,i;if(!j){n=h.getXY()}else{if(g){n=[0,0]}else{n=[parseInt(h.getStyle("left"),10)||0,parseInt(h.getStyle("top"),10)||0]}}if(!g){f={x:n[0],y:n[1],0:n[0],1:n[1],width:c,height:k}}else{d=h.getBorderWidth.call(h,"l")+h.getPadding.call(h,"l");a=h.getBorderWidth.call(h,"r")+h.getPadding.call(h,"r");m=h.getBorderWidth.call(h,"t")+h.getPadding.call(h,"t");i=h.getBorderWidth.call(h,"b")+h.getPadding.call(h,"b");f={x:n[0]+d,y:n[1]+m,0:n[0]+d,1:n[1]+m,width:c-(d+a),height:k-(m+i)}}f.left=f.x;f.top=f.y;f.right=f.x+f.width;f.bottom=f.y+f.height;return f},getPageBox:function(e){var g=this,c=g.dom,j=c.offsetWidth,f=c.offsetHeight,m=g.getXY(),k=m[1],a=m[0]+j,i=m[1]+f,d=m[0];if(!c){return new Ext.util.Region()}if(e){return new Ext.util.Region(k,a,i,d)}else{return{left:d,top:k,width:j,height:f,right:a,bottom:i}}}});Ext.dom.Element.addMembers({WIDTH:"width",HEIGHT:"height",MIN_WIDTH:"min-width",MIN_HEIGHT:"min-height",MAX_WIDTH:"max-width",MAX_HEIGHT:"max-height",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left",VISIBILITY:1,DISPLAY:2,OFFSETS:3,SEPARATOR:"-",trimRe:/^\s+|\s+$/g,wordsRe:/\w/g,spacesRe:/\s+/,styleSplitRe:/\s*(?::|;)\s*/,transparentRe:/^(?:transparent|(?:rgba[(](?:\s*\d+\s*[,]){3}\s*0\s*[)]))$/i,classNameSplitRegex:/[\s]+/,borders:{t:"border-top-width",r:"border-right-width",b:"border-bottom-width",l:"border-left-width"},paddings:{t:"padding-top",r:"padding-right",b:"padding-bottom",l:"padding-left"},margins:{t:"margin-top",r:"margin-right",b:"margin-bottom",l:"margin-left"},defaultUnit:"px",isSynchronized:false,synchronize:function(){var g=this.dom,a={},d=g.className,f,c,e,b;if(d.length>0){f=g.className.split(this.classNameSplitRegex);for(c=0,e=f.length;c<e;c++){b=f[c];a[b]=true}}else{f=[]}this.classList=f;this.hasClassMap=a;this.isSynchronized=true;return this},addCls:function(j,g,k){if(!j){return this}if(!this.isSynchronized){this.synchronize()}var e=this.dom,c=this.hasClassMap,d=this.classList,a=this.SEPARATOR,f,h,b;g=g?g+a:"";k=k?a+k:"";if(typeof j=="string"){j=j.split(this.spacesRe)}for(f=0,h=j.length;f<h;f++){b=g+j[f]+k;if(!c[b]){c[b]=true;d.push(b)}}e.className=d.join(" ");return this},removeCls:function(j,g,k){if(!j){return this}if(!this.isSynchronized){this.synchronize()}if(!k){k=""}var e=this.dom,c=this.hasClassMap,d=this.classList,a=this.SEPARATOR,f,h,b;g=g?g+a:"";k=k?a+k:"";if(typeof j=="string"){j=j.split(this.spacesRe)}for(f=0,h=j.length;f<h;f++){b=g+j[f]+k;if(c[b]){delete c[b];Ext.Array.remove(d,b)}}e.className=d.join(" ");return this},replaceCls:function(b,a,c,d){return this.removeCls(b,c,d).addCls(a,c,d)},hasCls:function(a){if(!this.isSynchronized){this.synchronize()}return this.hasClassMap.hasOwnProperty(a)},toggleCls:function(a){return this.hasCls(a)?this.removeCls(a):this.addCls(a)},setWidth:function(a){return this.setLengthValue(this.WIDTH,a)},setHeight:function(a){return this.setLengthValue(this.HEIGHT,a)},setSize:function(b,a){if(Ext.isObject(b)){a=b.height;b=b.width}this.setWidth(b);this.setHeight(a);return this},setMinWidth:function(a){return this.setLengthValue(this.MIN_WIDTH,a)},setMinHeight:function(a){return this.setLengthValue(this.MIN_HEIGHT,a)},setMaxWidth:function(a){return this.setLengthValue(this.MAX_WIDTH,a)},setMaxHeight:function(a){return this.setLengthValue(this.MAX_HEIGHT,a)},setTop:function(a){return this.setLengthValue(this.TOP,a)},setRight:function(a){return this.setLengthValue(this.RIGHT,a)},setBottom:function(a){return this.setLengthValue(this.BOTTOM,a)},setLeft:function(a){return this.setLengthValue(this.LEFT,a)},setMargin:function(b){var a=this.dom.style;if(b||b===0){b=this.self.unitizeBox((b===true)?5:b);a.setProperty("margin",b,"important")}else{a.removeProperty("margin-top");a.removeProperty("margin-right");a.removeProperty("margin-bottom");a.removeProperty("margin-left")}},setPadding:function(b){var a=this.dom.style;if(b||b===0){b=this.self.unitizeBox((b===true)?5:b);a.setProperty("padding",b,"important")}else{a.removeProperty("padding-top");a.removeProperty("padding-right");a.removeProperty("padding-bottom");a.removeProperty("padding-left")}},setBorder:function(a){var b=this.dom.style;if(a||a===0){a=this.self.unitizeBox((a===true)?1:a);b.setProperty("border-width",a,"important")}else{b.removeProperty("border-top-width");b.removeProperty("border-right-width");b.removeProperty("border-bottom-width");b.removeProperty("border-left-width")}},setLengthValue:function(a,c){var b=this.dom.style;if(c===null){b.removeProperty(a);return this}if(typeof c=="number"){c=c+"px"}b.setProperty(a,c,"important");return this},setVisible:function(b){var a=this.getVisibilityMode(),c=b?"removeCls":"addCls";switch(a){case this.VISIBILITY:this.removeCls(["x-hidden-display","x-hidden-offsets"]);this[c]("x-hidden-visibility");break;case this.DISPLAY:this.removeCls(["x-hidden-visibility","x-hidden-offsets"]);this[c]("x-hidden-display");break;case this.OFFSETS:this.removeCls(["x-hidden-visibility","x-hidden-display"]);this[c]("x-hidden-offsets");break}return this},getVisibilityMode:function(){var c=this.self,b=this.dom,a=c.data(b,"visibilityMode");if(a===undefined){c.data(b,"visibilityMode",a=this.DISPLAY)}return a},setVisibilityMode:function(a){this.self.data(this.dom,"visibilityMode",a);return this},show:function(){this.dom.style.removeProperty("display")},hide:function(){var c=this.dom,b=c.style,a=Ext.os.is.iOS5;if(b.getPropertyValue("display")!=="none"){if(a){b.setProperty("display","none","important");c.offsetHeight;b.removeProperty("display");c.offsetHeight}b.setProperty("display","none","important")}},setVisibility:function(a){var b=this.dom.style;if(a){b.removeProperty("visibility")}else{b.setProperty("visibility","hidden","important")}},styleHooks:{},addStyles:function(h,g){var b=0,f=h.match(this.wordsRe),e=0,a=f.length,d,c;for(;e<a;e++){d=f[e];c=d&&parseInt(this.getStyle(g[d]),10);if(c){b+=Math.abs(c)}}return b},isStyle:function(a,b){return this.getStyle(a)==b},getStyle:function(f){var c=this,e=c.dom,d=c.styleHooks[f],b,a;if(e==document){return null}if(!d){c.styleHooks[f]=d={name:this.self.normalize(f)}}if(d.get){return d.get(e,c)}b=window.getComputedStyle(e,"");a=(b&&b[d.name]);return a},setStyle:function(b,i){var f=this,h=this.self,d=f.dom,j=f.styleHooks,c=d.style,e=Ext.valueFrom,a,g;if(typeof b=="string"){g=j[b];if(!g){j[b]=g={name:h.normalize(b)}}i=e(i,"");if(g.set){g.set(d,i,f)}else{c[g.name]=i}}else{for(a in b){if(b.hasOwnProperty(a)){g=j[a];if(!g){j[a]=g={name:h.normalize(a)}}i=e(b[a],"");if(g.set){g.set(d,i,f)}else{c[g.name]=i}}}}return f},getHeight:function(b){var c=this.dom,a=b?(c.clientHeight-this.getPadding("tb")):c.offsetHeight;return a>0?a:0},getWidth:function(a){var c=this.dom,b=a?(c.clientWidth-this.getPadding("lr")):c.offsetWidth;return b>0?b:0},getBorderWidth:function(a){return this.addStyles(a,this.borders)},getPadding:function(a){return this.addStyles(a,this.paddings)},applyStyles:function(d){if(d){var e=this.dom,c,b,a;if(typeof d=="function"){d=d.call()}c=typeof d;if(c=="string"){d=Ext.util.Format.trim(d).split(this.styleSplitRe);for(b=0,a=d.length;b<a;){e.style[Element.dom.normalize(d[b++])]=d[b++]}}else{if(c=="object"){this.setStyle(d)}}}},getSize:function(b){var a=this.dom;return{width:Math.max(0,b?(a.clientWidth-this.getPadding("lr")):a.offsetWidth),height:Math.max(0,b?(a.clientHeight-this.getPadding("tb")):a.offsetHeight)}},repaint:function(){var a=this.dom;this.addCls(Ext.baseCSSPrefix+"repaint");setTimeout(function(){Ext.fly(a).removeCls(Ext.baseCSSPrefix+"repaint")},1);return this},getMargin:function(b){var c=this,d={t:"top",l:"left",r:"right",b:"bottom"},e={},a;if(!b){for(a in c.margins){e[d[a]]=parseFloat(c.getStyle(c.margins[a]))||0}return e}else{return c.addStyles.call(c,b,c.margins)}}});Ext.dom.Element.addMembers({getParent:function(){return Ext.get(this.dom.parentNode)},getFirstChild:function(){return Ext.get(this.dom.firstElementChild)},contains:function(a){if(!a){return false}var b=Ext.getDom(a);return(b===this.dom)||this.self.isAncestor(this.dom,b)},findParent:function(h,g,c){var e=this.dom,a=document.body,f=0,d;g=g||50;if(isNaN(g)){d=Ext.getDom(g);g=Number.MAX_VALUE}while(e&&e.nodeType==1&&f<g&&e!=a&&e!=d){if(Ext.DomQuery.is(e,h)){return c?Ext.get(e):e}f++;e=e.parentNode}return null},findParentNode:function(d,c,a){var b=Ext.fly(this.dom.parentNode,"_internal");return b?b.findParent(d,c,a):null},up:function(b,a){return this.findParentNode(b,a,true)},select:function(a,b){return Ext.dom.Element.select(a,this.dom,b)},query:function(a){return Ext.DomQuery.select(a,this.dom)},down:function(a,b){var c=Ext.DomQuery.selectNode(a,this.dom);return b?c:Ext.get(c)},child:function(a,b){var d,c=this,e;e=Ext.get(c).id;e=e.replace(/[\.:]/g,"\\$0");d=Ext.DomQuery.selectNode("#"+e+" > "+a,c.dom);return b?d:Ext.get(d)},parent:function(a,b){return this.matchNode("parentNode","parentNode",a,b)},next:function(a,b){return this.matchNode("nextSibling","nextSibling",a,b)},prev:function(a,b){return this.matchNode("previousSibling","previousSibling",a,b)},first:function(a,b){return this.matchNode("nextSibling","firstChild",a,b)},last:function(a,b){return this.matchNode("previousSibling","lastChild",a,b)},matchNode:function(b,e,a,c){if(!this.dom){return null}var d=this.dom[e];while(d){if(d.nodeType==1&&(!a||Ext.DomQuery.is(d,a))){return !c?Ext.get(d):d}d=d[b]}return null},isAncestor:function(a){return this.self.isAncestor.call(this.self,this.dom,a)}});Ext.define("Ext.dom.CompositeElementLite",{alternateClassName:["Ext.CompositeElementLite","Ext.CompositeElement"],requires:["Ext.dom.Element"],statics:{importElementMethods:function(){}},constructor:function(b,a){this.elements=[];this.add(b,a);this.el=new Ext.dom.Element.Fly()},isComposite:true,getElement:function(a){return this.el.attach(a)},transformElement:function(a){return Ext.getDom(a)},getCount:function(){return this.elements.length},add:function(c,a){var e=this.elements,b,d;if(!c){return this}if(typeof c=="string"){c=Ext.dom.Element.selectorFunction(c,a)}else{if(c.isComposite){c=c.elements}else{if(!Ext.isIterable(c)){c=[c]}}}for(b=0,d=c.length;b<d;++b){e.push(this.transformElement(c[b]))}return this},invoke:function(d,a){var f=this.elements,e=f.length,c,b;for(b=0;b<e;b++){c=f[b];if(c){Ext.dom.Element.prototype[d].apply(this.getElement(c),a)}}return this},item:function(b){var c=this.elements[b],a=null;if(c){a=this.getElement(c)}return a},addListener:function(b,h,g,f){var d=this.elements,a=d.length,c,j;for(c=0;c<a;c++){j=d[c];if(j){Ext.EventManager.on(j,b,h,g||j,f)}}return this},each:function(f,d){var g=this,c=g.elements,a=c.length,b,h;for(b=0;b<a;b++){h=c[b];if(h){h=this.getElement(h);if(f.call(d||h,h,g,b)===false){break}}}return g},fill:function(a){var b=this;b.elements=[];b.add(a);return b},filter:function(a){var b=[],d=this,c=Ext.isFunction(a)?a:function(e){return e.is(a)};d.each(function(g,e,f){if(c(g,f)!==false){b[b.length]=d.transformElement(g)}});d.elements=b;return d},indexOf:function(a){return Ext.Array.indexOf(this.elements,this.transformElement(a))},replaceElement:function(e,c,a){var b=!isNaN(e)?e:this.indexOf(e),f;if(b>-1){c=Ext.getDom(c);if(a){f=this.elements[b];f.parentNode.insertBefore(c,f);Ext.removeNode(f)}Ext.Array.splice(this.elements,b,1,c)}return this},clear:function(){this.elements=[]},addElements:function(c,a){if(!c){return this}if(typeof c=="string"){c=Ext.dom.Element.selectorFunction(c,a)}var b=this.elements;Ext.each(c,function(d){b.push(Ext.get(d))});return this},first:function(){return this.item(0)},last:function(){return this.item(this.getCount()-1)},contains:function(a){return this.indexOf(a)!=-1},removeElement:function(c,e){var b=this,d=this.elements,a;Ext.each(c,function(f){if((a=(d[f]||d[f=b.indexOf(f)]))){if(e){if(a.dom){a.remove()}else{Ext.removeNode(a)}}Ext.Array.erase(d,f,1)}});return this}},function(){var a=Ext.dom.Element,d=a.prototype,c=this.prototype,b;for(b in d){if(typeof d[b]=="function"){(function(e){c[e]=c[e]||function(){return this.invoke(e,arguments)}}).call(c,b)}}c.on=c.addListener;if(Ext.DomQuery){a.selectorFunction=Ext.DomQuery.select}a.select=function(e,f){var g;if(typeof e=="string"){g=a.selectorFunction(e,f)}else{if(e.length!==undefined){g=e}else{throw new Error("[Ext.select] Invalid selector specified: "+e)}}return new Ext.CompositeElementLite(g)};Ext.select=function(){return a.select.apply(a,arguments)}});this.ExtBootstrapData={nameToAliasesMap:{"Ext.AbstractComponent":[],"Ext.AbstractManager":[],"Ext.ActionSheet":["widget.actionsheet"],"Ext.Ajax":[],"Ext.Anim":[],"Ext.Audio":["widget.audio"],"Ext.Button":["widget.button"],"Ext.Component":["widget.component"],"Ext.ComponentManager":[],"Ext.ComponentQuery":[],"Ext.Container":["widget.container"],"Ext.Decorator":[],"Ext.Evented":[],"Ext.Img":["widget.image","widget.img"],"Ext.ItemCollection":[],"Ext.Label":["widget.label"],"Ext.LoadMask":["widget.loadmask"],"Ext.Map":["widget.map"],"Ext.Mask":["widget.mask"],"Ext.Media":["widget.media"],"Ext.MessageBox":[],"Ext.Panel":["widget.panel"],"Ext.SegmentedButton":["widget.segmentedbutton"],"Ext.Sheet":["widget.sheet"],"Ext.Spacer":["widget.spacer"],"Ext.Template":[],"Ext.Title":["widget.title"],"Ext.TitleBar":["widget.titlebar"],"Ext.Toolbar":["widget.toolbar"],"Ext.Video":["widget.video"],"Ext.XTemplate":[],"Ext.XTemplateCompiler":[],"Ext.XTemplateParser":[],"Ext.app.Action":[],"Ext.app.Application":[],"Ext.app.Controller":[],"Ext.app.History":[],"Ext.app.Profile":[],"Ext.app.Route":[],"Ext.app.Router":[],"Ext.behavior.Behavior":[],"Ext.behavior.Draggable":[],"Ext.behavior.Scrollable":[],"Ext.behavior.Translatable":[],"Ext.carousel.Carousel":["widget.carousel"],"Ext.carousel.Indicator":["widget.carouselindicator"],"Ext.carousel.Item":[],"Ext.data.ArrayStore":["store.array"],"Ext.data.Batch":[],"Ext.data.Connection":[],"Ext.data.Error":[],"Ext.data.Errors":[],"Ext.data.Field":["data.field"],"Ext.data.JsonP":[],"Ext.data.JsonStore":["store.json"],"Ext.data.Model":[],"Ext.data.ModelManager":[],"Ext.data.NodeInterface":[],"Ext.data.NodeStore":["store.node"],"Ext.data.Operation":[],"Ext.data.Request":[],"Ext.data.ResultSet":[],"Ext.data.SortTypes":[],"Ext.data.Store":["store.store"],"Ext.data.StoreManager":[],"Ext.data.Tree":["data.tree"],"Ext.data.TreeStore":["store.tree"],"Ext.data.Types":[],"Ext.data.Validations":[],"Ext.data.association.Association":[],"Ext.data.association.BelongsTo":["association.belongsto"],"Ext.data.association.HasMany":["association.hasmany"],"Ext.data.association.HasOne":["association.hasone"],"Ext.data.identifier.Sequential":["data.identifier.sequential"],"Ext.data.identifier.Simple":["data.identifier.simple"],"Ext.data.identifier.Uuid":["data.identifier.uuid"],"Ext.data.proxy.Ajax":["proxy.ajax"],"Ext.data.proxy.Client":[],"Ext.data.proxy.JsonP":["proxy.jsonp","proxy.scripttag"],"Ext.data.proxy.LocalStorage":["proxy.localstorage"],"Ext.data.proxy.Memory":["proxy.memory"],"Ext.data.proxy.Proxy":["proxy.proxy"],"Ext.data.proxy.Rest":["proxy.rest"],"Ext.data.proxy.Server":["proxy.server"],"Ext.data.proxy.SessionStorage":["proxy.sessionstorage"],"Ext.data.proxy.WebStorage":[],"Ext.data.reader.Array":["reader.array"],"Ext.data.reader.Json":["reader.json"],"Ext.data.reader.Reader":[],"Ext.data.reader.Xml":["reader.xml"],"Ext.data.writer.Json":["writer.json"],"Ext.data.writer.Writer":["writer.base"],"Ext.dataview.DataView":["widget.dataview"],"Ext.dataview.IndexBar":[],"Ext.dataview.List":["widget.list"],"Ext.dataview.ListItemHeader":["widget.listitemheader"],"Ext.dataview.NestedList":["widget.nestedlist"],"Ext.dataview.component.Container":[],"Ext.dataview.component.DataItem":["widget.dataitem"],"Ext.dataview.element.Container":[],"Ext.dataview.element.List":[],"Ext.dom.CompositeElement":[],"Ext.dom.CompositeElementLite":[],"Ext.dom.Element":["widget.element"],"Ext.dom.Helper":[],"Ext.dom.Query":[],"Ext.env.Browser":[],"Ext.env.Feature":[],"Ext.env.OS":[],"Ext.event.Controller":[],"Ext.event.Dispatcher":[],"Ext.event.Dom":[],"Ext.event.Event":[],"Ext.event.ListenerStack":[],"Ext.event.Touch":[],"Ext.event.publisher.ComponentDelegation":[],"Ext.event.publisher.ComponentPaint":[],"Ext.event.publisher.ComponentSize":[],"Ext.event.publisher.Dom":[],"Ext.event.publisher.Publisher":[],"Ext.event.publisher.TouchGesture":[],"Ext.event.recognizer.DoubleTap":[],"Ext.event.recognizer.Drag":[],"Ext.event.recognizer.HorizontalSwipe":[],"Ext.event.recognizer.LongPress":[],"Ext.event.recognizer.MultiTouch":[],"Ext.event.recognizer.Pinch":[],"Ext.event.recognizer.Recognizer":[],"Ext.event.recognizer.Rotate":[],"Ext.event.recognizer.SingleTouch":[],"Ext.event.recognizer.Tap":[],"Ext.event.recognizer.Touch":[],"Ext.field.Checkbox":["widget.checkboxfield"],"Ext.field.DatePicker":["widget.datepickerfield"],"Ext.field.Email":["widget.emailfield"],"Ext.field.Field":["widget.field"],"Ext.field.Hidden":["widget.hiddenfield"],"Ext.field.Input":["widget.input"],"Ext.field.Number":["widget.numberfield"],"Ext.field.Password":["widget.passwordfield"],"Ext.field.Radio":["widget.radiofield"],"Ext.field.Search":["widget.searchfield"],"Ext.field.Select":["widget.selectfield"],"Ext.field.Slider":["widget.sliderfield"],"Ext.field.Spinner":["widget.spinnerfield"],"Ext.field.Text":["widget.textfield"],"Ext.field.TextArea":["widget.textareafield"],"Ext.field.TextAreaInput":["widget.textareainput"],"Ext.field.Toggle":["widget.togglefield"],"Ext.field.Url":["widget.urlfield"],"Ext.form.FieldSet":["widget.fieldset"],"Ext.form.Panel":["widget.formpanel"],"Ext.fx.Animation":[],"Ext.fx.Easing":[],"Ext.fx.Runner":[],"Ext.fx.State":[],"Ext.fx.animation.Abstract":[],"Ext.fx.animation.Cube":["animation.cube"],"Ext.fx.animation.Fade":["animation.fade","animation.fadeIn"],"Ext.fx.animation.FadeOut":["animation.fadeOut"],"Ext.fx.animation.Flip":["animation.flip"],"Ext.fx.animation.Pop":["animation.pop","animation.popIn"],"Ext.fx.animation.PopOut":["animation.popOut"],"Ext.fx.animation.Slide":["animation.slide","animation.slideIn"],"Ext.fx.animation.SlideOut":["animation.slideOut"],"Ext.fx.easing.Abstract":[],"Ext.fx.easing.Bounce":[],"Ext.fx.easing.BoundMomentum":[],"Ext.fx.easing.EaseIn":["easing.ease-in"],"Ext.fx.easing.EaseOut":["easing.ease-out"],"Ext.fx.easing.Linear":["easing.linear"],"Ext.fx.easing.Momentum":[],"Ext.fx.layout.Card":[],"Ext.fx.layout.card.Abstract":[],"Ext.fx.layout.card.Cover":["fx.layout.card.cover"],"Ext.fx.layout.card.Cube":["fx.layout.card.cube"],"Ext.fx.layout.card.Fade":["fx.layout.card.fade"],"Ext.fx.layout.card.Flip":["fx.layout.card.flip"],"Ext.fx.layout.card.Pop":["fx.layout.card.pop"],"Ext.fx.layout.card.Reveal":["fx.layout.card.reveal"],"Ext.fx.layout.card.Scroll":["fx.layout.card.scroll"],"Ext.fx.layout.card.Slide":["fx.layout.card.slide"],"Ext.fx.layout.card.Style":[],"Ext.fx.runner.Css":[],"Ext.fx.runner.CssTransition":[],"Ext.layout.AbstractBox":[],"Ext.layout.Card":["layout.card"],"Ext.layout.Default":["layout.auto","layout.default"],"Ext.layout.Fit":["layout.fit"],"Ext.layout.HBox":["layout.hbox"],"Ext.layout.Layout":[],"Ext.layout.VBox":["layout.vbox"],"Ext.log.Base":[],"Ext.log.Logger":[],"Ext.log.filter.Filter":[],"Ext.log.filter.Priority":[],"Ext.log.formatter.Default":[],"Ext.log.formatter.Formatter":[],"Ext.log.formatter.Identity":[],"Ext.log.writer.Console":[],"Ext.log.writer.DocumentTitle":[],"Ext.log.writer.Remote":[],"Ext.log.writer.Writer":[],"Ext.mixin.Filterable":[],"Ext.mixin.Identifiable":[],"Ext.mixin.Mixin":[],"Ext.mixin.Observable":[],"Ext.mixin.Selectable":[],"Ext.mixin.Sortable":[],"Ext.mixin.Traversable":[],"Ext.navigation.Bar":[],"Ext.navigation.View":["widget.navigationview"],"Ext.picker.Date":["widget.datepicker"],"Ext.picker.Picker":["widget.picker"],"Ext.picker.Slot":["widget.pickerslot"],"Ext.plugin.ListPaging":["plugin.listpaging"],"Ext.plugin.PullRefresh":["plugin.pullrefresh"],"Ext.scroll.Indicator":[],"Ext.scroll.Scroller":[],"Ext.scroll.View":[],"Ext.scroll.indicator.Abstract":[],"Ext.scroll.indicator.CssTransform":[],"Ext.scroll.indicator.ScrollPosition":[],"Ext.scroll.scroller.Abstract":[],"Ext.scroll.scroller.CssTransform":[],"Ext.scroll.scroller.ScrollPosition":[],"Ext.slider.Slider":["widget.slider"],"Ext.slider.Thumb":["widget.thumb"],"Ext.slider.Toggle":[],"Ext.tab.Bar":["widget.tabbar"],"Ext.tab.Panel":["widget.tabpanel"],"Ext.tab.Tab":["widget.tab"],"Ext.table.Cell":["widget.tablecell"],"Ext.table.Row":["widget.tablerow"],"Ext.table.Table":["widget.table"],"Ext.util.AbstractMixedCollection":[],"Ext.util.Collection":[],"Ext.util.DelayedTask":[],"Ext.util.Draggable":[],"Ext.util.Filter":[],"Ext.util.Format":[],"Ext.util.GeoLocation":[],"Ext.util.Grouper":[],"Ext.util.HashMap":[],"Ext.util.JSONP":[],"Ext.util.LineSegment":[],"Ext.util.MixedCollection":[],"Ext.util.Point":[],"Ext.util.Region":[],"Ext.util.SizeMonitor":[],"Ext.util.Sortable":[],"Ext.util.Sorter":[],"Ext.util.TapRepeater":[],"Ext.util.Translatable":[],"Ext.util.translatable.Abstract":[],"Ext.util.translatable.CssTransform":[],"Ext.util.translatable.ScrollPosition":[],"Ext.viewport.Android":[],"Ext.viewport.Default":["widget.viewport"],"Ext.viewport.Ios":[],"Ext.viewport.Viewport":[]},alternateToNameMap:{"Ext.lib.Component":"Ext.Component","Ext.ComponentMgr":"Ext.ComponentManager","Ext.lib.Container":"Ext.Container","Ext.EventedBase":"Ext.Evented","Ext.lib.Panel":"Ext.Panel","Ext.Carousel":"Ext.carousel.Carousel","Ext.Carousel.Indicator":"Ext.carousel.Indicator","Ext.data.Record":"Ext.data.Model","Ext.ModelMgr":"Ext.data.ModelManager","Ext.ModelManager":"Ext.data.ModelManager","Ext.data.Node":"Ext.data.NodeInterface","Ext.StoreMgr":"Ext.data.StoreManager","Ext.data.StoreMgr":"Ext.data.StoreManager","Ext.StoreManager":"Ext.data.StoreManager","Ext.data.validations":"Ext.data.Validations","Ext.data.Association":"Ext.data.association.Association","Ext.data.BelongsToAssociation":"Ext.data.association.BelongsTo","Ext.data.HasManyAssociation":"Ext.data.association.HasMany","Ext.data.HasOneAssociation":"Ext.data.association.HasOne","Ext.data.HttpProxy":"Ext.data.proxy.Ajax","Ext.data.AjaxProxy":"Ext.data.proxy.Ajax","Ext.proxy.ClientProxy":"Ext.data.proxy.Client","Ext.data.ScriptTagProxy":"Ext.data.proxy.JsonP","Ext.data.LocalStorageProxy":"Ext.data.proxy.LocalStorage","Ext.data.MemoryProxy":"Ext.data.proxy.Memory","Ext.data.DataProxy":"Ext.data.proxy.Proxy","Ext.data.Proxy":"Ext.data.proxy.Proxy","Ext.data.RestProxy":"Ext.data.proxy.Rest","Ext.data.ServerProxy":"Ext.data.proxy.Server","Ext.data.SessionStorageProxy":"Ext.data.proxy.SessionStorage","Ext.data.WebStorageProxy":"Ext.data.proxy.WebStorage","Ext.data.ArrayReader":"Ext.data.reader.Array","Ext.data.JsonReader":"Ext.data.reader.Json","Ext.data.Reader":"Ext.data.reader.Reader","Ext.data.DataReader":"Ext.data.reader.Reader","Ext.data.XmlReader":"Ext.data.reader.Xml","Ext.data.JsonWriter":"Ext.data.writer.Json","Ext.data.DataWriter":"Ext.data.writer.Writer","Ext.data.Writer":"Ext.data.writer.Writer","Ext.DataView":"Ext.dataview.DataView","Ext.IndexBar":"Ext.dataview.IndexBar","Ext.List":"Ext.dataview.List","Ext.NestedList":"Ext.dataview.NestedList","Ext.CompositeElement":"Ext.dom.CompositeElementLite","Ext.CompositeElementLite":"Ext.dom.CompositeElementLite","Ext.Element":"Ext.dom.Element","Ext.EventObject":"Ext.event.Event","Ext.form.Checkbox":"Ext.field.Checkbox","Ext.form.DatePicker":"Ext.field.DatePicker","Ext.form.Email":"Ext.field.Email","Ext.form.Field":"Ext.field.Field","Ext.form.Hidden":"Ext.field.Hidden","Ext.form.Number":"Ext.field.Number","Ext.form.Password":"Ext.field.Password","Ext.form.Radio":"Ext.field.Radio","Ext.form.Search":"Ext.field.Search","Ext.form.Select":"Ext.field.Select","Ext.form.Slider":"Ext.field.Slider","Ext.form.Spinner":"Ext.field.Spinner","Ext.form.Text":"Ext.field.Text","Ext.form.TextArea":"Ext.field.TextArea","Ext.form.Toggle":"Ext.field.Toggle","Ext.form.Url":"Ext.field.Url","Ext.form.FormPanel":"Ext.form.Panel","Ext.fx.animation.FadeIn":"Ext.fx.animation.Fade","Ext.fx.animation.PopIn":"Ext.fx.animation.Pop","Ext.fx.animation.SlideIn":"Ext.fx.animation.Slide","Ext.layout.CardLayout":"Ext.layout.Card","Ext.layout.AutoContainerLayout":"Ext.layout.Default","Ext.layout.ContainerLayout":"Ext.layout.Default","Ext.layout.FitLayout":"Ext.layout.Fit","Ext.layout.HBoxLayout":"Ext.layout.HBox","Ext.layout.VBoxLayout":"Ext.layout.VBox","Ext.util.Observable":"Ext.mixin.Observable","Ext.NavigationView":"Ext.navigation.View","Ext.DatePicker":"Ext.picker.Date","Ext.Picker":"Ext.picker.Picker","Ext.Picker.Slot":"Ext.picker.Slot","Ext.util.Indicator":"Ext.scroll.Indicator","Ext.util.Scroller":"Ext.scroll.Scroller","Ext.util.ScrollView":"Ext.scroll.View","Ext.TabBar":"Ext.tab.Bar","Ext.TabPanel":"Ext.tab.Panel","Ext.Tab":"Ext.tab.Tab"}};(function(){var h=document.getElementsByTagName("script"),g=h[h.length-1],a=g.src,p=a.substring(0,a.lastIndexOf("/")+1),c=Ext.Loader,o=Ext.ClassManager,k=this.ExtBootstrapData,l=k.nameToAliasesMap,f=k.alternateToNameMap,j,n,b,d;if(l){for(b in l){if(l.hasOwnProperty(b)){d=l[b];if(d.length>0){for(j=0,n=d.length;j<n;j++){o.setAlias(b,d[j])}}else{o.setAlias(b,null)}}}}if(f){Ext.merge(o.maps.alternateToName,f)}c.setConfig({enabled:true,disableCaching:true,paths:{Ext:p+"src"}});try{delete this.ExtBootstrapData}catch(m){this.ExtBootstrapData=null}})();Ext.define("Ext.event.ListenerStack",{currentOrder:"current",length:0,constructor:function(){this.listeners={before:[],current:[],after:[]};this.lateBindingMap={};return this},add:function(h,j,k,e){var a=this.lateBindingMap,g=this.getAll(e),f=g.length,b,d,c;if(typeof h=="string"&&j.isIdentifiable){c=j.getId();b=a[c];if(b){if(b[h]){return false}else{b[h]=true}}else{a[c]=b={};b[h]=true}}else{if(f>0){while(f--){d=g[f];if(d.fn===h&&d.scope===j){d.options=k;return false}}}}d=this.create(h,j,k,e);if(k&&k.prepend){delete k.prepend;g.unshift(d)}else{g.push(d)}this.length++;return true},getAt:function(b,a){return this.getAll(a)[b]},getAll:function(a){if(!a){a=this.currentOrder}return this.listeners[a]},count:function(a){return this.getAll(a).length},create:function(d,c,b,a){return{stack:this,fn:d,firingFn:false,boundFn:false,isLateBinding:typeof d=="string",scope:c,options:b||{},order:a}},remove:function(h,j,e){var g=this.getAll(e),f=g.length,b=false,a=this.lateBindingMap,d,c;if(f>0){while(f--){d=g[f];if(d.fn===h&&d.scope===j){g.splice(f,1);b=true;this.length--;if(typeof h=="string"&&j.isIdentifiable){c=j.getId();if(a[c]&&a[c][h]){delete a[c][h]}}break}}}return b}});Ext.define("Ext.event.Controller",{isFiring:false,listenerStack:null,constructor:function(a){this.firingListeners=[];this.firingArguments=[];this.setInfo(a);return this},setInfo:function(a){this.info=a},getInfo:function(){return this.info},setListenerStacks:function(a){this.listenerStacks=a},fire:function(h,e){var n=this.listenerStacks,m=this.firingListeners,d=this.firingArguments,k=m.push,g=n.length,j,l,c,o,a=false,b=false,f;m.length=0;if(e){if(e.order!=="after"){a=true}else{b=true}}if(g===1){j=n[0].listeners;l=j.before;c=j.current;o=j.after;if(l.length>0){k.apply(m,l)}if(a){k.call(m,e)}if(c.length>0){k.apply(m,c)}if(b){k.call(m,e)}if(o.length>0){k.apply(m,o)}}else{for(f=0;f<g;f++){l=n[f].listeners.before;if(l.length>0){k.apply(m,l)}}if(a){k.call(m,e)}for(f=0;f<g;f++){c=n[f].listeners.current;if(c.length>0){k.apply(m,c)}}if(b){k.call(m,e)}for(f=0;f<g;f++){o=n[f].listeners.after;if(o.length>0){k.apply(m,o)}}}if(m.length===0){return this}if(!h){h=[]}d.length=0;d.push.apply(d,h);d.push(null,this);this.doFire();return this},doFire:function(){var k=this.firingListeners,c=this.firingArguments,g=c.length-2,d,f,b,o,h,n,a,j,l,e,m;this.isPausing=false;this.isPaused=false;this.isStopped=false;this.isFiring=true;for(d=0,f=k.length;d<f;d++){b=k[d];o=b.options;h=b.fn;n=b.firingFn;a=b.boundFn;j=b.isLateBinding;l=b.scope;if(j&&a&&a!==l[h]){a=false;n=false}if(!a){if(j){a=l[h];if(!a){continue}}else{a=h}b.boundFn=a}if(!n){n=a;if(o.buffer){n=Ext.Function.createBuffered(n,o.buffer,l)}if(o.delay){n=Ext.Function.createDelayed(n,o.delay,l)}b.firingFn=n}c[g]=o;e=c;if(o.args){e=o.args.concat(e)}if(o.single===true){b.stack.remove(h,l,b.order)}m=n.apply(l,e);if(m===false){this.stop()}if(this.isStopped){break}if(this.isPausing){this.isPaused=true;k.splice(0,d+1);return}}this.isFiring=false;this.listenerStacks=null;k.length=0;c.length=0;this.connectingController=null},connect:function(a){this.connectingController=a},resume:function(){var a=this.connectingController;this.isPausing=false;if(this.isPaused&&this.firingListeners.length>0){this.isPaused=false;this.doFire()}if(a){a.resume()}return this},isInterrupted:function(){return this.isStopped||this.isPaused},stop:function(){var a=this.connectingController;this.isStopped=true;if(a){this.connectingController=null;a.stop()}this.isFiring=false;this.listenerStacks=null;return this},pause:function(){var a=this.connectingController;this.isPausing=true;if(a){a.pause()}return this}});Ext.define("Ext.event.publisher.Publisher",{targetType:"",idSelectorRegex:/^#([\w\-]+)$/i,constructor:function(){var b=this.handledEvents,a,c,e,d;a=this.handledEventsMap={};for(c=0,e=b.length;c<e;c++){d=b[c];a[d]=true}this.subscribers={};return this},handles:function(a){var b=this.handledEventsMap;return !!b[a]||!!b["*"]||a==="*"},getHandledEvents:function(){return this.handledEvents},setDispatcher:function(a){this.dispatcher=a},subscribe:function(){return false},unsubscribe:function(){return false},unsubscribeAll:function(){delete this.subscribers;this.subscribers={};return this},notify:function(){return false},getTargetType:function(){return this.targetType},dispatch:function(c,a,b){this.dispatcher.doDispatchEvent(this.targetType,c,a,b)}});Ext.define("Ext.event.Event",{alternateClassName:"Ext.EventObject",isStopped:false,set:function(a,b){if(arguments.length===1&&typeof a!="string"){var c=a;for(a in c){if(c.hasOwnProperty(a)){this[a]=c[a]}}}else{this[a]=c[a]}},stopEvent:function(){return this.stopPropagation()},stopPropagation:function(){this.isStopped=true;return this}});Ext.define("Ext.util.Point",{radianToDegreeConstant:180/Math.PI,statics:{fromEvent:function(b){var a=b.changedTouches,c=(a&&a.length>0)?a[0]:b;return this.fromTouch(c)},fromTouch:function(a){return new this(a.pageX,a.pageY)},from:function(a){if(!a){return new this(0,0)}if(!(a instanceof this)){return new this(a.x,a.y)}return a}},constructor:function(a,b){if(typeof a=="undefined"){a=0}if(typeof b=="undefined"){b=0}this.x=a;this.y=b;return this},clone:function(){return new this.self(this.x,this.y)},copy:function(){return this.clone.apply(this,arguments)},copyFrom:function(a){this.x=a.x;this.y=a.y;return this},toString:function(){return"Point["+this.x+","+this.y+"]"},equals:function(a){return(this.x===a.x&&this.y===a.y)},isCloseTo:function(c,b){if(typeof b=="number"){b={x:b};b.y=b.x}var a=c.x,f=c.y,e=b.x,d=b.y;return(this.x<=a+e&&this.x>=a-e&&this.y<=f+d&&this.y>=f-d)},isWithin:function(){return this.isCloseTo.apply(this,arguments)},translate:function(a,b){this.x+=a;this.y+=b;return this},roundedEquals:function(a){return(Math.round(this.x)===Math.round(a.x)&&Math.round(this.y)===Math.round(a.y))},getDistanceTo:function(b){var c=this.x-b.x,a=this.y-b.y;return Math.sqrt(c*c+a*a)},getAngleTo:function(b){var c=this.x-b.x,a=this.y-b.y;return Math.atan2(a,c)*this.radianToDegreeConstant}});Ext.define("Ext.ComponentManager",{alternateClassName:"Ext.ComponentMgr",singleton:true,constructor:function(){var a={};this.all={map:a,getArray:function(){var b=[],c;for(c in a){b.push(a[c])}return b}};this.map=a},register:function(a){this.map[a.getId()]=a},unregister:function(a){delete this.map[a.getId()]},isRegistered:function(a){return this.map[a]!==undefined},get:function(a){return this.map[a]},create:function(a,c){if(a.isComponent){return a}else{if(Ext.isString(a)){return Ext.createByAlias("widget."+a)}else{var b=a.xtype||c;return Ext.createByAlias("widget."+b,a)}}},registerType:Ext.emptyFn});Ext.define("Ext.behavior.Behavior",{constructor:function(a){this.component=a;a.on("destroy","onComponentDestroy",this)},onComponentDestroy:Ext.emptyFn});Ext.define("Ext.fx.State",{isAnimatable:{"background-color":true,"background-image":true,"background-position":true,"border-bottom-color":true,"border-bottom-width":true,"border-color":true,"border-left-color":true,"border-left-width":true,"border-right-color":true,"border-right-width":true,"border-spacing":true,"border-top-color":true,"border-top-width":true,"border-width":true,bottom:true,color:true,crop:true,"font-size":true,"font-weight":true,height:true,left:true,"letter-spacing":true,"line-height":true,"margin-bottom":true,"margin-left":true,"margin-right":true,"margin-top":true,"max-height":true,"max-width":true,"min-height":true,"min-width":true,opacity:true,"outline-color":true,"outline-offset":true,"outline-width":true,"padding-bottom":true,"padding-left":true,"padding-right":true,"padding-top":true,right:true,"text-indent":true,"text-shadow":true,top:true,"vertical-align":true,visibility:true,width:true,"word-spacing":true,"z-index":true,zoom:true,transform:true},constructor:function(a){this.data={};this.set(a)},setConfig:function(a){this.set(a);return this},setRaw:function(a){this.data=a;return this},clear:function(){return this.setRaw({})},setTransform:function(c,g){var f=this.data,a=Ext.isArray(g),b=f.transform,e,d;if(!b){b=f.transform={translateX:0,translateY:0,translateZ:0,scaleX:1,scaleY:1,scaleZ:1,rotate:0,rotateX:0,rotateY:0,rotateZ:0,skewX:0,skewY:0}}if(typeof c=="string"){switch(c){case"translate":if(a){e=g.length;if(e==0){break}b.translateX=g[0];if(e==1){break}b.translateY=g[1];if(e==2){break}b.translateZ=g[2]}else{b.translateX=g}break;case"rotate":if(a){e=g.length;if(e==0){break}b.rotateX=g[0];if(e==1){break}b.rotateY=g[1];if(e==2){break}b.rotateZ=g[2]}else{b.rotate=g}break;case"scale":if(a){e=g.length;if(e==0){break}b.scaleX=g[0];if(e==1){break}b.scaleY=g[1];if(e==2){break}b.scaleZ=g[2]}else{b.scaleX=g;b.scaleY=g}break;case"skew":if(a){e=g.length;if(e==0){break}b.skewX=g[0];if(e==1){break}b.skewY=g[1]}else{b.skewX=g}break;default:b[c]=g}}else{for(d in c){if(c.hasOwnProperty(d)){g=c[d];this.setTransform(d,g)}}}},set:function(a,d){var c=this.data,b;if(typeof a!="string"){for(b in a){d=a[b];if(b==="transform"){this.setTransform(d)}else{c[b]=d}}}else{if(a==="transform"){this.setTransform(d)}else{c[a]=d}}return this},unset:function(a){var b=this.data;if(b.hasOwnProperty(a)){delete b[a]}return this},getData:function(){return this.data}});Ext.define("Ext.mixin.Mixin",{onClassExtended:function(b,e){var a=e.mixinConfig,d,f,c;if(a){d=b.superclass.mixinConfig;if(d){a=e.mixinConfig=Ext.merge({},d,a)}e.mixinId=a.id;f=a.beforeHooks,c=a.hooks||a.afterHooks;if(f||c){Ext.Function.interceptBefore(e,"onClassMixedIn",function(h){var g=this.prototype;if(f){Ext.Object.each(f,function(j,i){h.override(i,function(){g[j].apply(this,arguments);return this.callOverridden(arguments)})})}if(c){Ext.Object.each(c,function(j,i){h.override(i,function(){var k=this.callOverridden(arguments);g[j].apply(this,arguments);return k})})}})}}}});Ext.define("Ext.XTemplateParser",{constructor:function(a){Ext.apply(this,a)},doTpl:Ext.emptyFn,parse:function(n){var o=this,l=n.length,c={elseif:"elif"},j=o.topRe,b=o.actionsRe,k,p,r,f,q,g,a,e,d,h,i;o.level=0;o.stack=p=[];for(k=0;k<l;k=h){j.lastIndex=k;f=j.exec(n);if(!f){o.doText(n.substring(k,l));break}d=f.index;h=j.lastIndex;if(k<d){o.doText(n.substring(k,d))}if(f[1]){h=n.indexOf("%}",d+2);o.doEval(n.substring(d+2,h));h+=2}else{if(f[2]){h=n.indexOf("]}",d+2);o.doExpr(n.substring(d+2,h));h+=2}else{if(f[3]){o.doTag(f[3])}else{if(f[4]){i=null;while((e=b.exec(f[4]))!==null){r=e[2]||e[3];if(r){r=Ext.String.htmlDecode(r);q=e[1];q=c[q]||q;i=i||{};g=i[q];if(typeof g=="string"){i[q]=[g,r]}else{if(g){i[q].push(r)}else{i[q]=r}}}}if(!i){if(o.elseRe.test(f[4])){o.doElse()}else{if(o.defaultRe.test(f[4])){o.doDefault()}else{o.doTpl();p.push({type:"tpl"})}}}else{if(i["if"]){o.doIf(i["if"],i);p.push({type:"if"})}else{if(i["switch"]){o.doSwitch(i["switch"],i);p.push({type:"switch"})}else{if(i["case"]){o.doCase(i["case"],i)}else{if(i.elif){o.doElseIf(i.elif,i)}else{if(i["for"]){++o.level;o.doFor(i["for"],i);p.push({type:"for",actions:i})}else{if(i.exec){o.doExec(i.exec,i);p.push({type:"exec",actions:i})}}}}}}}}else{a=p.pop();o.doEnd(a.type,a.actions);if(a.type=="for"){--o.level}}}}}}},topRe:/(?:(\{\%)|(\{\[)|\{([^{}]*)\})|(?:<tpl([^>]*)\>)|(?:<\/tpl>)/g,actionsRe:/\s*(elif|elseif|if|for|exec|switch|case|eval)\s*\=\s*(?:(?:["]([^"]*)["])|(?:[']([^']*)[']))\s*/g,defaultRe:/^\s*default\s*$/,elseRe:/^\s*else\s*$/});Ext.define("Ext.util.Filter",{isFilter:true,config:{property:null,value:null,filterFn:Ext.emptyFn,anyMatch:false,exactMatch:false,caseSensitive:false,root:null,id:undefined,scope:null},applyId:function(a){if(!a){if(this.getProperty()){a=this.getProperty()+"-"+String(this.getValue())}if(!a){a=Ext.id(null,"ext-filter-")}}return a},constructor:function(a){this.initConfig(a)},applyFilterFn:function(b){if(b===Ext.emptyFn){b=this.getInitialConfig("filter");if(b){return b}var a=this.getValue();if(!this.getProperty()&&!a&&a!==0){Ext.Logger.error("A Filter requires either a property and value, or a filterFn to be set");return Ext.emptyFn}else{return this.createFilterFn()}}return b},createFilterFn:function(){var b=this,d=b.createValueMatcher(),c=b.getProperty(),a=b.getRoot();return function(e){if(a){e=e[a]}return d.test(e[c])}},createValueMatcher:function(){var d=this,e=d.getValue(),f=d.getAnyMatch(),c=d.getExactMatch(),a=d.getCaseSensitive(),b=Ext.String.escapeRegex;if(e===null||e===undefined||!e.exec){e=String(e);if(f===true){e=b(e)}else{e="^"+b(e);if(c===true){e+="$"}}e=new RegExp(e,a?"":"i")}return e}});Ext.define("Ext.util.Sorter",{isSorter:true,config:{property:null,sorterFn:null,root:null,transform:null,direction:"ASC",id:undefined},constructor:function(a){this.initConfig(a)},applySorterFn:function(a){if(!a&&!this.getProperty()){Ext.Logger.error("A Sorter requires either a property or a sorterFn.")}return a},applyProperty:function(a){if(!a&&!this.getSorterFn()){Ext.Logger.error("A Sorter requires either a property or a sorterFn.")}return a},applyId:function(a){if(!a){a=this.getProperty();if(!a){a=Ext.id(null,"ext-sorter-")}}return a},createSortFunction:function(b){var c=this,a=c.getDirection().toUpperCase()=="DESC"?-1:1;return function(e,d){return a*b.call(c,e,d)}},defaultSortFn:function(e,c){var g=this,f=g._transform,b=g._root,d,a,h=g._property;if(b!==null){e=e[b];c=c[b]}d=e[h];a=c[h];if(f){d=f(d);a=f(a)}return d>a?1:(d<a?-1:0)},updateDirection:function(){this.updateSortFn()},updateSortFn:function(){this.sort=this.createSortFunction(this.getSorterFn()||this.defaultSortFn)},toggle:function(){this.setDirection(Ext.String.toggle(this.getDirection(),"ASC","DESC"))}});Ext.define("Ext.mixin.Identifiable",{statics:{uniqueIds:{}},isIdentifiable:true,mixinId:"identifiable",idCleanRegex:/\.|[^\w\-]/g,defaultIdPrefix:"ext-",defaultIdSeparator:"-",getOptimizedId:function(){return this.id},getUniqueId:function(){var f=this.id,b,d,e,a,c;if(!f){b=this.self.prototype;d=this.defaultIdSeparator;a=Ext.mixin.Identifiable.uniqueIds;if(!b.hasOwnProperty("identifiablePrefix")){e=this.xtype;if(e){c=this.defaultIdPrefix+e+d}else{c=b.$className.replace(this.idCleanRegex,d).toLowerCase()+d}b.identifiablePrefix=c}c=this.identifiablePrefix;if(!a.hasOwnProperty(c)){a[c]=0}f=this.id=c+(++a[c])}this.getUniqueId=this.getOptimizedId;return f},setId:function(a){this.id=a},getId:function(){var a=this.id;if(!a){a=this.getUniqueId()}this.getId=this.getOptimizedId;return a}});Ext.define("Ext.fx.easing.Abstract",{config:{startTime:0,startValue:0},isEnded:false,constructor:function(a){this.initConfig(a);return this},clone:function(){var c=this.config,b={},a;for(a in c){if(c.hasOwnProperty(a)){b[a]=this[a]}}return new this.self(b)},applyStartTime:function(a){if(!a){a=Ext.Date.now()}return a},updateStartTime:function(a){this.reset()},reset:function(){this.isEnded=false},getValue:Ext.emptyFn});Ext.define("Ext.fx.easing.Momentum",{extend:"Ext.fx.easing.Abstract",config:{acceleration:30,friction:0,startVelocity:0},alpha:0,updateFriction:function(b){var a=Math.log(1-(b/10));this.theta=a;this.alpha=a/this.getAcceleration()},updateStartVelocity:function(a){this.velocity=a*this.getAcceleration()},updateAcceleration:function(a){this.velocity=this.getStartVelocity()*a;this.alpha=this.theta/a},getValue:function(){return this.getStartValue()-this.velocity*(1-this.getFrictionFactor())/this.theta},getFrictionFactor:function(){var a=Ext.Date.now()-this.getStartTime();return Math.exp(a*this.alpha)},getVelocity:function(){return this.getFrictionFactor()*this.velocity}});Ext.define("Ext.fx.easing.Bounce",{extend:"Ext.fx.easing.Abstract",config:{springTension:0.3,acceleration:30,startVelocity:0},getValue:function(){var b=Ext.Date.now()-this.getStartTime(),c=(b/this.getAcceleration()),a=c*Math.pow(Math.E,-this.getSpringTension()*c);return this.getStartValue()+(this.getStartVelocity()*a)}});Ext.define("Ext.event.Dispatcher",{requires:["Ext.event.ListenerStack","Ext.event.Controller"],statics:{getInstance:function(){if(!this.instance){this.instance=new this()}return this.instance},setInstance:function(a){this.instance=a;return this}},config:{publishers:{}},wildcard:"*",constructor:function(a){this.listenerStacks={};this.activePublishers={};this.publishersCache={};this.noActivePublishers=[];this.controller=null;this.initConfig(a);return this},getListenerStack:function(e,g,c,b){var d=this.listenerStacks,f=d[e],a;b=Boolean(b);if(!f){if(b){d[e]=f={}}else{return null}}f=f[g];if(!f){if(b){d[e][g]=f={}}else{return null}}a=f[c];if(!a){if(b){f[c]=a=new Ext.event.ListenerStack()}else{return null}}return a},getController:function(d,f,c,b){var a=this.controller,e={targetType:d,target:f,eventName:c};if(!a){this.controller=a=new Ext.event.Controller()}if(a.isFiring){a=new Ext.event.Controller()}a.setInfo(e);if(b&&a!==b){a.connect(b)}return a},applyPublishers:function(c){var a,b;this.publishersCache={};for(a in c){if(c.hasOwnProperty(a)){b=c[a];this.registerPublisher(b)}}return c},registerPublisher:function(b){var a=this.activePublishers,c=b.getTargetType(),d=a[c];if(!d){a[c]=d=[]}d.push(b);b.setDispatcher(this);return this},getCachedActivePublishers:function(c,b){var a=this.publishersCache,d;if((d=a[c])&&(d=d[b])){return d}return null},cacheActivePublishers:function(c,b,d){var a=this.publishersCache;if(!a[c]){a[c]={}}a[c][b]=d;return d},getActivePublishers:function(f,b){var g,a,c,e,d;if((g=this.getCachedActivePublishers(f,b))){return g}a=this.activePublishers[f];if(a){g=[];for(c=0,e=a.length;c<e;c++){d=a[c];if(d.handles(b)){g.push(d)}}}else{g=this.noActivePublishers}return this.cacheActivePublishers(f,b,g)},hasListener:function(c,d,b){var a=this.getListenerStack(c,d,b);if(a){return a.count()>0}return false},addListener:function(d,e,a){var f=this.getActivePublishers(d,a),c=f.length,b;if(c>0){for(b=0;b<c;b++){f[b].subscribe(e,a)}}return this.doAddListener.apply(this,arguments)},doAddListener:function(g,h,c,f,e,d,a){var b=this.getListenerStack(g,h,c,true);return b.add(f,e,d,a)},removeListener:function(d,e,a){var f=this.getActivePublishers(d,a),c=f.length,b;if(c>0){for(b=0;b<c;b++){f[b].unsubscribe(e,a)}}return this.doRemoveListener.apply(this,arguments)},doRemoveListener:function(f,g,c,e,d,a){var b=this.getListenerStack(f,g,c);if(b===null){return false}return b.remove(e,d,a)},clearListeners:function(a,e,d){var j=this.listenerStacks,f=arguments.length,b,h,c,g;if(f===3){if(j[a]&&j[a][e]){this.removeListener(a,e,d);delete j[a][e][d]}}else{if(f===2){if(j[a]){b=j[a][e];if(b){for(d in b){if(b.hasOwnProperty(d)){h=this.getActivePublishers(a,d);for(c=0,f=h.length;c<f;c++){h[c].unsubscribe(e,d,true)}}}delete j[a][e]}}}else{if(f===1){h=this.activePublishers[a];for(c=0,f=h.length;c<f;c++){h[c].unsubscribeAll()}delete j[a]}else{h=this.activePublishers;for(a in h){if(h.hasOwnProperty(a)){g=h[a];for(c=0,f=g.length;c<f;c++){g[c].unsubscribeAll()}}}delete this.listenerStacks;this.listenerStacks={}}}}return this},dispatchEvent:function(d,e,a){var f=this.getActivePublishers(d,a),c=f.length,b;if(c>0){for(b=0;b<c;b++){f[b].notify(e,a)}}return this.doDispatchEvent.apply(this,arguments)},doDispatchEvent:function(a,g,f,i,c,b){var h=this.getListenerStack(a,g,f),d=this.getWildcardListenerStacks(a,g,f),e;if((h===null||h.length==0)){if(d.length==0&&!c){return}}else{d.push(h)}e=this.getController(a,g,f,b);e.setListenerStacks(d);e.fire(i,c);return !e.isInterrupted()},getWildcardListenerStacks:function(g,h,d){var f=[],b=this.wildcard,c=d!==b,e=h!==b,a;if(c&&(a=this.getListenerStack(g,h,b))){f.push(a)}if(e&&(a=this.getListenerStack(g,b,d))){f.push(a)}return f}});Ext.define("Ext.event.Dom",{extend:"Ext.event.Event",constructor:function(a){var c=a.target,b;if(c&&c.nodeType!==1){c=c.parentNode}b=a.changedTouches;if(b){b=b[0];this.pageX=b.pageX;this.pageY=b.pageY}else{this.pageX=a.pageX;this.pageY=a.pageY}this.browserEvent=this.event=a;this.target=this.delegatedTarget=c;this.type=a.type;this.timeStamp=this.time=a.timeStamp;if(typeof this.time!="number"){this.time=new Date(this.time).getTime()}return this},stopEvent:function(){this.preventDefault();return this.callParent()},preventDefault:function(){this.browserEvent.preventDefault()},getPageX:function(){return this.browserEvent.pageX},getPageY:function(){return this.browserEvent.pageY},getXY:function(){if(!this.xy){this.xy=[this.getPageX(),this.getPageY()]}return this.xy},getTarget:function(b,c,a){if(arguments.length===0){return this.delegatedTarget}return b?Ext.fly(this.target).findParent(b,c,a):(a?Ext.get(this.target):this.target)},getTime:function(){return this.time},setDelegatedTarget:function(a){this.delegatedTarget=a}});Ext.define("Ext.event.publisher.Dom",{extend:"Ext.event.publisher.Publisher",requires:["Ext.env.Browser","Ext.Element","Ext.event.Dom"],targetType:"element",idOrClassSelectorRegex:/^([#|\.])([\w\-]+)$/,handledEvents:["click","focus","blur","mousemove","mousedown","mouseup","mouseover","mouseout","keyup","keydown","keypress","submit","transitionend","animationstart","animationend"],classNameSplitRegex:/\s+/,SELECTOR_ALL:"*",constructor:function(){var f=this.getHandledEvents(),e={},b,c,a,d;this.doBubbleEventsMap={click:true,submit:true,mousedown:true,mousemove:true,mouseup:true,mouseover:true,mouseout:true,transitionend:true};this.onEvent=Ext.Function.bind(this.onEvent,this);for(b=0,c=f.length;b<c;b++){a=f[b];d=this.getVendorEventName(a);e[d]=a;this.attachListener(d)}this.eventNameMap=e;return this.callParent()},getSubscribers:function(a){var c=this.subscribers,b=c[a];if(!b){b=c[a]={id:{$length:0},className:{$length:0},selector:[],all:0,$length:0}}return b},getVendorEventName:function(a){if(a==="transitionend"){a=Ext.browser.getVendorProperyName("transitionEnd")}else{if(a==="animationstart"){a=Ext.browser.getVendorProperyName("animationStart")}else{if(a==="animationend"){a=Ext.browser.getVendorProperyName("animationEnd")}}}return a},attachListener:function(a){document.addEventListener(a,this.onEvent,!this.doesEventBubble(a));return this},removeListener:function(a){document.removeEventListener(a,this.onEvent,!this.doesEventBubble(a));return this},doesEventBubble:function(a){return !!this.doBubbleEventsMap[a]},subscribe:function(g,f){if(!this.handles(f)){return false}var e=g.match(this.idOrClassSelectorRegex),a=this.getSubscribers(f),c=a.id,d=a.className,b=a.selector,h,i;if(e!==null){h=e[1];i=e[2];if(h==="#"){if(c.hasOwnProperty(i)){c[i]++;return true}c[i]=1;c.$length++}else{if(d.hasOwnProperty(i)){d[i]++;return true}d[i]=1;d.$length++}}else{if(g===this.SELECTOR_ALL){a.all++}else{if(b.hasOwnProperty(g)){b[g]++;return true}b[g]=1;b.push(g)}}a.$length++;return true},unsubscribe:function(g,f,j){if(!this.handles(f)){return false}var e=g.match(this.idOrClassSelectorRegex),a=this.getSubscribers(f),c=a.id,d=a.className,b=a.selector,h,i;j=Boolean(j);if(e!==null){h=e[1];i=e[2];if(h==="#"){if(!c.hasOwnProperty(i)||(!j&&--c[i]>0)){return true}delete c[i];c.$length--}else{if(!d.hasOwnProperty(i)||(!j&&--d[i]>0)){return true}delete d[i];d.$length--}}else{if(g===this.SELECTOR_ALL){if(j){a.all=0}else{a.all--}}else{if(!b.hasOwnProperty(g)||(!j&&--b[g]>0)){return true}delete b[g];Ext.Array.remove(b,g)}}a.$length--;return true},getElementTarget:function(a){if(a.nodeType!==1){a=a.parentNode;if(!a||a.nodeType!==1){return null}}return a},getBubblingTargets:function(b){var a=[];if(!b){return a}do{a[a.length]=b;b=b.parentNode}while(b&&b.nodeType===1);return a},dispatch:function(c,a,b){b.push(b[0].target);this.callParent(arguments)},publish:function(b,a,c){var d=this.getSubscribers(b),e;if(d.$length===0||!this.doPublish(d,b,a,c)){e=this.getSubscribers("*");if(e.$length>0){this.doPublish(e,b,a,c)}}return this},doPublish:function(f,h,x,u){var r=f.id,g=f.className,b=f.selector,p=r.$length>0,a=g.$length>0,l=b.length>0,o=f.all>0,y={},e=[u],q=false,m=this.classNameSplitRegex,v,k,t,d,z,n,c,w,s;for(v=0,k=x.length;v<k;v++){z=x[v];u.setDelegatedTarget(z);if(p){n=z.id;if(n){if(r.hasOwnProperty(n)){q=true;this.dispatch("#"+n,h,e)}}}if(a){c=z.className;if(c){w=c.split(m);for(t=0,d=w.length;t<d;t++){c=w[t];if(!y[c]){y[c]=true;if(g.hasOwnProperty(c)){q=true;this.dispatch("."+c,h,e)}}}}}if(u.isStopped){return q}}if(o&&!q){u.setDelegatedTarget(u.browserEvent.target);q=true;this.dispatch(this.ALL_SELECTOR,h,e);if(u.isStopped){return q}}if(l){for(t=0,d=x.length;t<d;t++){z=x[t];for(v=0,k=b.length;v<k;v++){s=b[v];if(this.matchesSelector(z,s)){u.setDelegatedTarget(z);q=true;this.dispatch(s,h,e)}if(u.isStopped){return q}}}}return q},matchesSelector:function(b,a){if("webkitMatchesSelector" in b){return b.webkitMatchesSelector(a)}return Ext.DomQuery.is(b,a)},onEvent:function(d){var b=this.eventNameMap[d.type];if(!b||this.getSubscribersCount(b)===0){return}var c=this.getElementTarget(d.target),a;if(!c){return}if(this.doesEventBubble(b)){a=this.getBubblingTargets(c)}else{a=[c]}this.publish(b,a,new Ext.event.Dom(d))},hasSubscriber:function(f,a){if(!this.handles(a)){return false}var b=f.match(this.idOrClassSelectorRegex),e=this.getSubscribers(a),c,d;if(b!==null){c=b[1];d=b[2];if(c==="#"){return e.id.hasOwnProperty(d)}else{return e.className.hasOwnProperty(d)}}else{return(e.selector.hasOwnProperty(f)&&Ext.Array.indexOf(e.selector,f)!==-1)}return false},getSubscribersCount:function(a){if(!this.handles(a)){return 0}return this.getSubscribers(a).$length+this.getSubscribers("*").$length}});Ext.define("Ext.util.LineSegment",{requires:["Ext.util.Point"],constructor:function(b,a){var c=Ext.util.Point;this.point1=c.from(b);this.point2=c.from(a)},intersects:function(l){var o=this.point1,m=this.point2,i=l.point1,f=l.point2,c=o.x,b=m.x,a=i.x,q=f.x,p=o.y,n=m.y,k=i.y,h=f.y,g=(c-b)*(k-h)-(p-n)*(a-q),j,e;if(g==0){return null}j=((a-q)*(c*n-p*b)-(c-b)*(a*h-k*q))/g;e=((k-h)*(c*n-p*b)-(p-n)*(a*h-k*q))/g;if(j<Math.min(c,b)||j>Math.max(c,b)||j<Math.min(a,q)||j>Math.max(a,q)||e<Math.min(p,n)||e>Math.max(p,n)||e<Math.min(k,h)||e>Math.max(k,h)){return null}return new Ext.util.Point(j,e)},toString:function(){return this.point1.toString()+" "+this.point2.toString()}});Ext.define("Ext.mixin.Traversable",{extend:"Ext.mixin.Mixin",mixinConfig:{id:"traversable"},setParent:function(a){this.parent=a;return this},hasParent:function(){return Boolean(this.parent)},getParent:function(){return this.parent},getAncestors:function(){var b=[],a=this.getParent();while(a){b.push(a);a=a.getParent()}return b},getAncestorIds:function(){var b=[],a=this.getParent();while(a){b.push(a.getId());a=a.getParent()}return b}});Ext.define("Ext.XTemplateCompiler",{extend:"Ext.XTemplateParser",useEval:Ext.isGecko,useFormat:true,propNameRe:/^[\w\d\$]*$/,compile:function(a){var c=this,b=c.generate(a);return c.useEval?c.evalTpl(b):(new Function("Ext",b))(Ext)},generate:function(a){var c=this;c.body=["var c0=values, p0=parent, n0=xcount, i0=xindex;\n"];c.funcs=["var fm=Ext.util.Format;"];c.switches=[];c.parse(a);c.funcs.push((c.useEval?"$=":"return")+" function ("+c.fnArgs+") {",c.body.join(""),"}");var b=c.funcs.join("\n");return b},doText:function(a){a=a.replace(this.aposRe,"\\'");a=a.replace(this.newLineRe,"\\n");this.body.push("out.push('",a,"')\n")},doExpr:function(a){this.body.push("out.push(String(",a,"))\n")},doTag:function(a){this.doExpr(this.parseTag(a))},doElse:function(){this.body.push("} else {\n")},doEval:function(a){this.body.push(a,"\n")},doIf:function(b,c){var a=this;if(a.propNameRe.test(b)){a.body.push("if (",a.parseTag(b),") {\n")}else{a.body.push("if (",a.addFn(b),a.callFn,") {\n")}if(c.exec){a.doExec(c.exec)}},doElseIf:function(b,c){var a=this;if(a.propNameRe.test(b)){a.body.push("} else if (",a.parseTag(b),") {\n")}else{a.body.push("} else if (",a.addFn(b),a.callFn,") {\n")}if(c.exec){a.doExec(c.exec)}},doSwitch:function(b){var a=this;if(a.propNameRe.test(b)){a.body.push("switch (",a.parseTag(b),") {\n")}else{a.body.push("switch (",a.addFn(b),a.callFn,") {\n")}a.switches.push(0)},doCase:function(e){var d=this,c=Ext.isArray(e)?e:[e],f=d.switches.length-1,a,b;if(d.switches[f]){d.body.push("break;\n")}else{d.switches[f]++}for(b=0,f=c.length;b<f;++b){a=d.intRe.exec(c[b]);c[b]=a?a[1]:("'"+c[b].replace(d.aposRe,"\\'")+"'")}d.body.push("case ",c.join(": case "),":\n")},doDefault:function(){var a=this,b=a.switches.length-1;if(a.switches[b]){a.body.push("break;\n")}else{a.switches[b]++}a.body.push("default:\n")},doEnd:function(b,d){var c=this,a=c.level-1;if(b=="for"){if(d.exec){c.doExec(d.exec)}c.body.push("}\n");c.body.push("parent=p",a,";values=r",a+1,";xcount=n",a,";xindex=i",a,"\n")}else{if(b=="if"||b=="switch"){c.body.push("}\n")}}},doFor:function(e,f){var d=this,c=d.addFn(e),b=d.level,a=b-1;d.body.push("var c",b,"=",c,d.callFn,", a",b,"=Ext.isArray(c",b,"),p",b,"=(parent=c",a,"),r",b,"=values\n","for (var i",b,"=0,n",b,"=a",b,"?c",b,".length:(c",b,"?1:0), xcount=n",b,";i",b,"<n"+b+";++i",b,"){\n","values=a",b,"?c",b,"[i",b,"]:c",b,"\n","xindex=i",b,"+1\n")},doExec:function(c,d){var b=this,a="f"+b.funcs.length;b.funcs.push("function "+a+"("+b.fnArgs+") {"," try { with(values) {"," "+c," }} catch(e) {}","}");b.body.push(a+b.callFn+"\n")},addFn:function(a){var c=this,b="f"+c.funcs.length;if(a==="."){c.funcs.push("function "+b+"("+c.fnArgs+") {"," return values","}")}else{if(a===".."){c.funcs.push("function "+b+"("+c.fnArgs+") {"," return parent","}")}else{c.funcs.push("function "+b+"("+c.fnArgs+") {"," try { with(values) {"," return("+a+")"," }} catch(e) {}","}")}}return b},parseTag:function(b){var a=this.tagRe.exec(b),e=a[1],g=a[2],d=a[3],f=a[4],c;if(e=="."){c='Ext.Array.indexOf(["string", "number", "boolean"], typeof values) > -1 || Ext.isDate(values) ? values : ""'}else{if(e=="#"){c="xindex"}else{if(e.substr(0,7)=="parent."){c=e}else{if((e.indexOf(".")!==-1)&&(e.indexOf("-")===-1)){c="values."+e}else{c="values['"+e+"']"}}}}if(f){c="("+c+f+")"}if(g&&this.useFormat){d=d?","+d:"";if(g.substr(0,5)!="this."){g="fm."+g+"("}else{g+="("}}else{d="";g="("+c+" === undefined ? '' : "}return g+c+d+")"},evalTpl:function($){eval($);return $},newLineRe:/\r\n|\r|\n/g,aposRe:/[']/g,intRe:/^\s*(\d+)\s*$/,tagRe:/([\w-\.\#]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?(\s?[\+\-\*\/]\s?[\d\.\+\-\*\/\(\)]+)?/},function(){var a=this.prototype;a.fnArgs="out,values,parent,xindex,xcount";a.callFn=".call(this,"+a.fnArgs+")"});Ext.define("Ext.util.Sortable",{isSortable:true,defaultSortDirection:"ASC",requires:["Ext.util.Sorter"],initSortable:function(){var a=this,b=a.sorters;a.sorters=Ext.create("Ext.util.AbstractMixedCollection",false,function(c){return c.id||c.property});if(b){a.sorters.addAll(a.decodeSorters(b))}},sort:function(g,f,c,e){var d=this,h,b,a;if(Ext.isArray(g)){e=c;c=f;a=g}else{if(Ext.isObject(g)){e=c;c=f;a=[g]}else{if(Ext.isString(g)){h=d.sorters.get(g);if(!h){h={property:g,direction:f};a=[h]}else{if(f===undefined){h.toggle()}else{h.setDirection(f)}}}}}if(a&&a.length){a=d.decodeSorters(a);if(Ext.isString(c)){if(c==="prepend"){g=d.sorters.clone().items;d.sorters.clear();d.sorters.addAll(a);d.sorters.addAll(g)}else{d.sorters.addAll(a)}}else{d.sorters.clear();d.sorters.addAll(a)}if(e!==false){d.onBeforeSort(a)}}if(e!==false){g=d.sorters.items;if(g.length){b=function(l,k){var j=g[0].sort(l,k),n=g.length,m;for(m=1;m<n;m++){j=j||g[m].sort.call(this,l,k)}return j};d.doSort(b)}}return g},onBeforeSort:Ext.emptyFn,decodeSorters:function(f){if(!Ext.isArray(f)){if(f===undefined){f=[]}else{f=[f]}}var d=f.length,g=Ext.util.Sorter,a=this.model?this.model.prototype.fields:null,e,b,c;for(c=0;c<d;c++){b=f[c];if(!(b instanceof g)){if(Ext.isString(b)){b={property:b}}Ext.applyIf(b,{root:this.sortRoot,direction:"ASC"});if(b.fn){b.sorterFn=b.fn}if(typeof b=="function"){b={sorterFn:b}}if(a&&!b.transform){e=a.get(b.property);b.transform=e?e.sortType:undefined}f[c]=Ext.create("Ext.util.Sorter",b)}}return f},getSorters:function(){return this.sorters.items}});Ext.define("Ext.mixin.Observable",{requires:["Ext.event.Dispatcher"],extend:"Ext.mixin.Mixin",mixins:["Ext.mixin.Identifiable"],mixinConfig:{id:"observable",hooks:{destroy:"destroy"}},alternateClassName:"Ext.util.Observable",isObservable:true,observableType:"observable",validIdRegex:/^([\w\-]+)$/,observableIdPrefix:"#",listenerOptionsRegex:/^(?:delegate|single|delay|buffer|args|prepend)$/,config:{listeners:null,bubbleEvents:null},constructor:function(a){this.initConfig(a)},applyListeners:function(a){if(a){this.addListener(a)}},applyBubbleEvents:function(a){if(a){this.enableBubble(a)}},getOptimizedObservableId:function(){return this.observableId},getObservableId:function(){if(!this.observableId){var a=this.getUniqueId();if(!a.match(this.validIdRegex)){Ext.Logger.error("Invalid unique id of '"+a+"' for this object",this)}this.observableId=this.observableIdPrefix+a;this.getObservableId=this.getOptimizedObservableId}return this.observableId},getOptimizedEventDispatcher:function(){return this.eventDispatcher},getEventDispatcher:function(){if(!this.eventDispatcher){this.eventDispatcher=Ext.event.Dispatcher.getInstance();this.getEventDispatcher=this.getOptimizedEventDispatcher;this.getListeners();this.getBubbleEvents()}return this.eventDispatcher},getManagedListeners:function(c,b){var d=c.getUniqueId(),a=this.managedListeners;if(!a){this.managedListeners=a={}}if(!a[d]){a[d]={};c.doAddListener("destroy","clearManagedListeners",this,{single:true,args:[c]})}if(!a[d][b]){a[d][b]=[]}return a[d][b]},getUsedSelectors:function(){var a=this.usedSelectors;if(!a){a=this.usedSelectors=[];a.$map={}}return a},fireEvent:function(a){var b=Array.prototype.slice.call(arguments,1);return this.doFireEvent(a,b)},fireAction:function(c,e,g,f,d,a){var b=typeof g,h;if(e===undefined){e=[]}if(b!="undefined"){h={fn:g,isLateBinding:b=="string",scope:f||this,options:d||{},order:a}}return this.doFireEvent(c,e,h)},doFireEvent:function(b,c,e,a){if(this.eventFiringSuspended){return}var f=this.getObservableId(),d=this.getEventDispatcher();return d.dispatchEvent(this.observableType,f,b,c,e,a)},doAddListener:function(a,i,k,l,c){var e=(k&&k!==this&&k.isIdentifiable),b=this.getUsedSelectors(),f=b.$map,d=this.getObservableId(),g,j,h;if(!l){l={}}if(!k){k=this}if(l.delegate){h=l.delegate;d+=" "+h}if(!(d in f)){f[d]=true;b.push(d)}g=this.addDispatcherListener(d,a,i,k,l,c);if(g&&e){j=this.getManagedListeners(k,a);j.push({delegate:h,scope:k,fn:i,order:c})}return g},addDispatcherListener:function(b,d,f,e,c,a){return this.getEventDispatcher().addListener(this.observableType,b,d,f,e,c,a)},doRemoveListener:function(b,k,m,n,d){var g=(m&&m!==this&&m.isIdentifiable),e=this.getObservableId(),a,l,f,h,c,j;if(n&&n.delegate){j=n.delegate;e+=" "+j}if(!m){m=this}a=this.removeDispatcherListener(e,b,k,m,d);if(a&&g){l=this.getManagedListeners(m,b);for(f=0,h=l.length;f<h;f++){c=l[f];if(c.fn===k&&c.scope===m&&c.delegate===j&&c.order===d){l.splice(f,1);break}}}return a},removeDispatcherListener:function(b,c,e,d,a){return this.getEventDispatcher().removeListener(this.observableType,b,c,e,d,a)},clearManagedListeners:function(d){var j=this.managedListeners,a,c,h,f,e,g,b,k;if(!j){return this}if(d){if(typeof d!="string"){a=d.getUniqueId()}else{a=d}c=j[a];for(f in c){if(c.hasOwnProperty(f)){h=c[f];for(e=0,g=h.length;e<g;e++){b=h[e];k={};if(b.delegate){k.delegate=b.delegate}if(this.doRemoveListener(f,b.fn,b.scope,k,b.order)){e--;g--}}}}delete j[a];return this}for(a in j){if(j.hasOwnProperty(a)){this.clearManagedListeners(a)}}},changeListener:function(l,h,n,p,q,d){var b,m,g,j,a,o,f,k,c,e;if(typeof n!="undefined"){if(typeof h!="string"){for(f=0,k=h.length;f<k;f++){a=h[f];l.call(this,a,n,p,q,d)}return this}l.call(this,h,n,p,q,d)}else{if(Ext.isArray(h)){m=h;for(f=0,k=m.length;f<k;f++){c=m[f];l.call(this,c.event,c.fn,c.scope,c,c.order)}}else{g=this.listenerOptionsRegex;q=h;b=[];m=[];j={};for(a in q){o=q[a];if(a==="scope"){p=o;continue}else{if(a==="order"){d=o;continue}}if(!g.test(a)){e=typeof o;if(e!="string"&&e!="function"){l.call(this,a,o.fn,o.scope||p,o,o.order||d);continue}b.push(a);m.push(o)}else{j[a]=o}}for(f=0,k=b.length;f<k;f++){l.call(this,b[f],m[f],p,j,d)}}}},addListener:function(b,e,d,c,a){return this.changeListener(this.doAddListener,b,e,d,c,a)},addBeforeListener:function(a,d,c,b){return this.addListener(a,d,c,b,"before")},addAfterListener:function(a,d,c,b){return this.addListener(a,d,c,b,"after")},removeListener:function(b,e,d,c,a){return this.changeListener(this.doRemoveListener,b,e,d,c,a)},removeBeforeListener:function(a,d,c,b){return this.removeListener(a,d,c,b,"before")},removeAfterListener:function(a,d,c,b){return this.removeListener(a,d,c,b,"after")},clearListeners:function(){var e=this.getUsedSelectors(),c=this.getEventDispatcher(),b,d,a;for(b=0,d=e.length;b<d;b++){a=e[b];c.clearListeners(this.observableType,a)}},hasListener:function(a){return this.getEventDispatcher().hasListener(this.observableType,this.getObservableId(),a)},suspendEvents:function(a){this.eventFiringSuspended=true},resumeEvents:function(){this.eventFiringSuspended=false},relayEvents:function(b,d,g){var c,f,e,a;if(typeof g=="undefined"){g=""}if(typeof d=="string"){d=[d]}if(Ext.isArray(d)){for(c=0,f=d.length;c<f;c++){e=d[c];a=g+e;b.addListener(e,this.createEventRelayer(a),this)}}else{for(e in d){if(d.hasOwnProperty(e)){a=g+d[e];b.addListener(e,this.createEventRelayer(a),this)}}}return this},relayEvent:function(e,f,h,i,a){var g=typeof f,c=e[e.length-1],d=c.getInfo().eventName,b;e=Array.prototype.slice.call(e,0,-2);e[0]=this;if(g!="undefined"){b={fn:f,scope:h||this,options:i||{},order:a,isLateBinding:g=="string"}}return this.doFireEvent(d,e,b,c)},createEventRelayer:function(a){return function(){return this.doFireEvent(a,Array.prototype.slice.call(arguments,0,-2))}},enableBubble:function(d){var a=this.isBubblingEnabled,c,e,b;if(!a){a=this.isBubblingEnabled={}}if(typeof d=="string"){d=Ext.Array.clone(arguments)}for(c=0,e=d.length;c<e;c++){b=d[c];if(!a[b]){a[b]=true;this.addListener(b,this.createEventBubbler(b),this)}}},createEventBubbler:function(a){return function b(){var c=("getBubbleTarget" in this)?this.getBubbleTarget():null;if(c&&c!==this&&c.isObservable){c.fireAction(a,Array.prototype.slice.call(arguments,0,-2),b,c,null,"after")}}},getBubbleTarget:function(){return false},destroy:function(){if(this.observableId){this.fireEvent("destroy",this);this.clearListeners();this.clearManagedListeners()}},addEvents:Ext.emptyFn},function(){this.createAlias({on:"addListener",un:"removeListener",onBefore:"addBeforeListener",onAfter:"addAfterListener",unBefore:"removeBeforeListener",unAfter:"removeAfterListener"});Ext.deprecateClassMethod(this,"addEvents",function(){},"addEvents() is deprecated. It's no longer needed to add events before firing");Ext.deprecateClassMethod(this,"addManagedListener",function(c,a,e,d,b){return c.addListener(a,e,d,b)},"addManagedListener() / mon() is deprecated, simply use addListener() / on(). All listeners are now automatically managed where necessary.");Ext.deprecateClassMethod(this,"removeManagedListener",function(b,a,d,c){return b.removeListener(a,d,c)},"removeManagedListener() / mun() is deprecated, simply use removeListener() / un(). All listeners are now automatically managed where necessary.");this.createAlias({mon:"addManagedListener",mun:"removeManagedListener"})});Ext.define("Ext.Evented",{alternateClassName:"Ext.EventedBase",mixins:["Ext.mixin.Observable"],statics:{generateSetter:function(e){var c=e.internal,b=e.apply,a=e.changeEvent,d=e.doSet;return function(h){var i=this.initialized,g=this[c],f=this[b];if(f){h=f.call(this,h,g);if(typeof h=="undefined"){return this}}if(h!==g){if(i){this.fireAction(a,[this,h,g],this.doSet,this,{nameMap:e})}else{this[c]=h;this[d].call(this,h,g)}}return this}}},initialized:false,constructor:function(a){this.initialConfig=a;this.initialize()},initialize:function(){this.initConfig(this.initialConfig);this.initialized=true},doSet:function(c,d,b,a){var e=a.nameMap;c[e.internal]=d;c[e.doSet].call(this,d,b)},onClassExtended:function(a,e){if(!e.hasOwnProperty("eventedConfig")){return}var d=Ext.Class,c=e.config,g=e.eventedConfig,b,f;e.config=(c)?Ext.applyIf(c,g):g;for(b in g){if(g.hasOwnProperty(b)){f=d.getConfigNameMap(b);e[f.set]=this.generateSetter(f)}}}});Ext.define("Ext.fx.animation.Abstract",{extend:"Ext.Evented",isAnimation:true,requires:["Ext.fx.State"],config:{name:"",element:null,before:null,from:{},to:{},after:null,states:{},duration:300,easing:"linear",iteration:1,direction:"normal",delay:0,onBeforeStart:null,onEnd:null,onBeforeEnd:null,scope:null,reverse:null,preserveEndState:true,replacePrevious:false},STATE_FROM:"0%",STATE_TO:"100%",DIRECTION_UP:"up",DIRECTION_DOWN:"down",DIRECTION_LEFT:"left",DIRECTION_RIGHT:"right",stateNameRegex:/^(?:[\d\.]+)%$/,constructor:function(){this.states={};this.callParent(arguments);return this},applyElement:function(a){return Ext.get(a)},applyBefore:function(a,b){if(a){return Ext.factory(a,Ext.fx.State,b)}},applyAfter:function(b,a){if(b){return Ext.factory(b,Ext.fx.State,a)}},setFrom:function(a){return this.setState(this.STATE_FROM,a)},setTo:function(a){return this.setState(this.STATE_TO,a)},getFrom:function(){return this.getState(this.STATE_FROM)},getTo:function(){return this.getState(this.STATE_TO)},setStates:function(a){var c=this.stateNameRegex,b;for(b in a){if(c.test(b)){this.setState(b,a[b])}}return this},getStates:function(){return this.states},setState:function(b,d){var a=this.getStates(),c;c=Ext.factory(d,Ext.fx.State,a[b]);if(c){a[b]=c}else{if(b===this.STATE_TO){Ext.Logger.error("Setting and invalid '100%' / 'to' state of: "+d)}}return this},getState:function(a){return this.getStates()[a]},getData:function(){var k=this.getStates(),e={},g=this.getBefore(),c=this.getAfter(),h=k[this.STATE_FROM],i=k[this.STATE_TO],j=h.getData(),f=i.getData(),d,b,a;for(b in k){if(k.hasOwnProperty(b)){a=k[b];d=a.getData();e[b]=d}}if(Ext.os.is.Android2){e["0.0001%"]=j}return{before:g?g.getData():{},after:c?c.getData():{},states:e,from:j,to:f,duration:this.getDuration(),iteration:this.getIteration(),direction:this.getDirection(),easing:this.getEasing(),delay:this.getDelay(),onEnd:this.getOnEnd(),onBeforeEnd:this.getOnBeforeEnd(),onBeforeStart:this.getOnBeforeStart(),scope:this.getScope(),preserveEndState:this.getPreserveEndState(),replacePrevious:this.getReplacePrevious()}}});Ext.define("Ext.fx.animation.Slide",{extend:"Ext.fx.animation.Abstract",alternateClassName:"Ext.fx.animation.SlideIn",alias:["animation.slide","animation.slideIn"],config:{direction:"left",out:false,offset:0,easing:"auto",containerBox:"auto",elementBox:"auto",isElementBoxFit:true,useCssTransform:true},reverseDirectionMap:{up:"down",down:"up",left:"right",right:"left"},applyEasing:function(a){if(a==="auto"){return"ease-"+((this.getOut())?"in":"out")}return a},getContainerBox:function(){var a=this._containerBox;if(a==="auto"){a=this.getElement().getParent().getPageBox()}return a},getElementBox:function(){var a=this._elementBox;if(this.getIsElementBoxFit()){return this.getContainerBox()}if(a==="auto"){a=this.getElement().getPageBox()}return a},getData:function(){var p=this.getElementBox(),c=this.getContainerBox(),g=p?p:c,n=this.getFrom(),o=this.getTo(),f=this.getOut(),e=this.getOffset(),m=this.getDirection(),b=this.getUseCssTransform(),h=this.getReverse(),d=0,a=0,l,j,k,i;if(h){m=this.reverseDirectionMap[m]}switch(m){case this.DIRECTION_UP:if(f){a=c.top-g.top-g.height-e}else{a=c.bottom-g.bottom+g.height+e}break;case this.DIRECTION_DOWN:if(f){a=c.bottom-g.bottom+g.height+e}else{a=c.top-g.height-g.top-e}break;case this.DIRECTION_RIGHT:if(f){d=c.right-g.right+g.width+e}else{d=c.left-g.left-g.width-e}break;case this.DIRECTION_LEFT:if(f){d=c.left-g.left-g.width-e}else{d=c.right-g.right+g.width+e}break}l=(f)?0:d;j=(f)?0:a;if(b){n.setTransform({translateX:l,translateY:j})}else{n.set("left",l);n.set("top",j)}k=(f)?d:0;i=(f)?a:0;if(b){o.setTransform({translateX:k,translateY:i})}else{o.set("left",k);o.set("top",i)}return this.callParent(arguments)}});Ext.define("Ext.fx.animation.SlideOut",{extend:"Ext.fx.animation.Slide",alias:["animation.slideOut"],config:{out:true}});Ext.define("Ext.fx.animation.Fade",{extend:"Ext.fx.animation.Abstract",alternateClassName:"Ext.fx.animation.FadeIn",alias:["animation.fade","animation.fadeIn"],config:{out:false,before:{display:null,opacity:0},after:{opacity:null},reverse:null},updateOut:function(a){var c=this.getTo(),b=this.getFrom();if(a){b.set("opacity",1);c.set("opacity",0)}else{b.set("opacity",0);c.set("opacity",1)}}});Ext.define("Ext.fx.animation.FadeOut",{extend:"Ext.fx.animation.Fade",alias:"animation.fadeOut",config:{out:true,before:{}}});Ext.define("Ext.fx.animation.Flip",{extend:"Ext.fx.animation.Abstract",alias:"animation.flip",config:{easing:"ease-in",direction:"right",half:false,out:null},getData:function(){var h=this.getFrom(),i=this.getTo(),g=this.getDirection(),b=this.getOut(),l=this.getHalf(),c=(l)?90:180,e=1,a=1,k=0,j=0,f=0,d=0;if(b){a=0.8}else{e=0.8}switch(g){case this.DIRECTION_UP:if(b){f=c}else{k=-c}break;case this.DIRECTION_DOWN:if(b){f=-c}else{k=c}break;case this.DIRECTION_RIGHT:if(b){d=-c}else{j=c}break;case this.DIRECTION_LEFT:if(b){d=-c}else{j=c}break}h.setTransform({rotateX:k,rotateY:j,scale:e});i.setTransform({rotateX:f,rotateY:d,scale:a});return this.callParent(arguments)}});Ext.define("Ext.fx.animation.Pop",{extend:"Ext.fx.animation.Abstract",alias:["animation.pop","animation.popIn"],alternateClassName:"Ext.fx.animation.PopIn",config:{out:false,before:{display:null,opacity:0},after:{opacity:null}},getData:function(){var c=this.getTo(),b=this.getFrom(),a=this.getOut();if(a){b.set("opacity",1);b.setTransform({scale:1});c.set("opacity",0);c.setTransform({scale:0})}else{b.set("opacity",0);b.setTransform({scale:0});c.set("opacity",1);c.setTransform({scale:1})}return this.callParent(arguments)}});Ext.define("Ext.fx.animation.PopOut",{extend:"Ext.fx.animation.Pop",alias:"animation.popOut",config:{out:true,before:{}}});Ext.define("Ext.fx.animation.Cube",{extend:"Ext.fx.animation.Abstract",alias:"animation.cube",config:{before:{},after:{},direction:"right",out:false},getData:function(){var m=this.getTo(),n=this.getFrom(),k=this.getBefore(),a=this.getAfter(),e=this.getOut(),j=this.getDirection(),b=this.getElement(),g=b.getWidth(),c=b.getHeight(),l=e?"100% 100%":"0% 0%",i=1,d=1,f={rotateY:0,translateZ:0,},h={rotateY:0,translateZ:0};if(j=="left"||j=="right"){if(e){d=0.5;h.translateZ=g;h.rotateY=-90}else{i=0.5;f.translateZ=g;f.rotateY=90}}k["transform-origin"]=l;a["transform-origin"]=null;m.set("transform",h);n.set("transform",f);n.set("opacity",i);m.set("opacity",d);return this.callParent(arguments)}});Ext.define("Ext.fx.Animation",{requires:["Ext.fx.animation.Slide","Ext.fx.animation.SlideOut","Ext.fx.animation.Fade","Ext.fx.animation.FadeOut","Ext.fx.animation.Flip","Ext.fx.animation.Pop","Ext.fx.animation.PopOut","Ext.fx.animation.Cube"],constructor:function(b){var a=Ext.fx.animation.Abstract,c;if(typeof b=="string"){c=b;b={}}else{if(b&&b.type){c=b.type}}if(c){if(Ext.os.is.Android2){if(c=="pop"){c="fade"}if(c=="popIn"){c="fadeIn"}if(c=="popOut"){c="fadeOut"}}a=Ext.ClassManager.getByAlias("animation."+c);if(!a){Ext.Logger.error("Invalid animation type of: '"+c+"'")}}return Ext.factory(b,a)}});Ext.define("Ext.AbstractComponent",{extend:"Ext.Evented",onClassExtended:function(b,f){if(!f.hasOwnProperty("cachedConfig")){return}var g=b.prototype,c=f.config,e=f.cachedConfig,d=g.cachedConfigList,i=g.hasCachedConfig,a,h;delete f.cachedConfig;g.cachedConfigList=d=(d)?d.slice():[];g.hasCachedConfig=i=(i)?Ext.Object.chain(i):{};if(!c){f.config=c={}}for(a in e){if(e.hasOwnProperty(a)){h=e[a];if(!i[a]){i[a]=true;d.push(a)}c[a]=h}}},getElementConfig:Ext.emptyFn,referenceAttributeName:"reference",referenceSelector:"[reference]",addReferenceNode:function(a,b){Ext.Object.defineProperty(this,a,{get:function(){var c;delete this[a];this[a]=c=new Ext.Element(b);return c},configurable:true})},initElement:function(){var k=this.self.prototype,n=this.getId(),s=[],g=true,x=this.referenceAttributeName,p=false,e,v,b,o,t,d,l,c,f,j,w,m,a,q,h,y,u,r;if(k.hasOwnProperty("renderTemplate")){e=this.renderTemplate.cloneNode(true);v=e.firstChild}else{g=false;p=true;e=document.createDocumentFragment();v=Ext.Element.create(this.getElementConfig(),true);e.appendChild(v)}o=e.querySelectorAll(this.referenceSelector);for(t=0,d=o.length;t<d;t++){l=o[t];c=l.getAttribute(x);if(g){l.removeAttribute(x)}if(c=="element"){l.id=n;this.element=b=new Ext.Element(l)}else{this.addReferenceNode(c,l)}s.push(c)}this.referenceList=s;if(!this.innerElement){this.innerElement=b}if(v===b.dom){this.renderElement=b}else{this.addReferenceNode("renderElement",v)}if(p){f=Ext.Class.configNameCache;j=this.config;w=this.cachedConfigList;m=this.initConfigList;a=this.initConfigMap;q=[];for(t=0,d=w.length;t<d;t++){y=w[t];u=f[y];if(a[y]){a[y]=false;Ext.Array.remove(m,y)}if(j[y]!==null){q.push(y);this[u.get]=this[u.initGet]}}for(t=0,d=q.length;t<d;t++){y=q[t];u=f[y];r=u.internal;this[r]=null;this[u.set].call(this,j[y]);delete this[u.get];k[r]=this[r]}v=this.renderElement.dom;k.renderTemplate=e=document.createDocumentFragment();e.appendChild(v.cloneNode(true));h=e.querySelectorAll("[id]");for(t=0,d=h.length;t<d;t++){b=h[t];b.removeAttribute("id")}for(t=0,d=s.length;t<d;t++){c=s[t];this[c].dom.removeAttribute("reference")}}return this}});(function(a){Ext.define("Ext.layout.Default",{extend:"Ext.Evented",alternateClassName:["Ext.layout.AutoContainerLayout","Ext.layout.ContainerLayout"],alias:["layout.auto","layout.default"],isLayout:true,hasDockedItemsCls:a+"hasdocked",centeredItemCls:a+"centered",floatingItemCls:a+"floating",dockingWrapperCls:a+"docking",dockingInnerCls:a+"docking-inner",maskCls:a+"mask",positionMap:{top:"start",left:"start",bottom:"end",right:"end"},positionDirectionMap:{top:"vertical",bottom:"vertical",left:"horizontal",right:"horizontal"},DIRECTION_VERTICAL:"vertical",DIRECTION_HORIZONTAL:"horizontal",POSITION_START:"start",POSITION_END:"end",constructor:function(b,c){this.container=b;this.innerItems=[];this.centeringWrappers={};this.initConfig(c)},reapply:Ext.emptyFn,unapply:Ext.emptyFn,onItemAdd:function(){this.doItemAdd.apply(this,arguments)},onItemRemove:function(){this.doItemRemove.apply(this,arguments)},onItemMove:function(){this.doItemMove.apply(this,arguments)},onItemCenteredChange:function(){this.doItemCenteredChange.apply(this,arguments)},onItemFloatingChange:function(){this.doItemFloatingChange.apply(this,arguments)},onItemDockedChange:function(){this.doItemDockedChange.apply(this,arguments)},doItemAdd:function(c,b){var d=c.getDocked();if(d!==null){this.dockItem(c,d)}else{if(c.isCentered()){this.centerItem(c,b)}else{this.insertItem(c,b)}}if(c.isFloating()){this.onItemFloatingChange(c,true)}},doItemRemove:function(b){if(b.isDocked()){this.undockItem(b)}else{if(b.isCentered()){this.uncenterItem(b)}}Ext.Array.remove(this.innerItems,b);this.container.innerElement.dom.removeChild(b.renderElement.dom)},doItemMove:function(c,d,b){if(c.isCentered()){c.setZIndex((d+1)*2)}else{if(c.isFloating()){c.setZIndex((d+1)*2)}this.insertItem(c,d)}},doItemCenteredChange:function(c,b){if(b){this.centerItem(c)}else{this.uncenterItem(c)}},doItemFloatingChange:function(d,e){var c=d.element,b=this.floatingItemCls;if(e){if(d.getZIndex()===null){d.setZIndex((this.container.indexOf(d)+1)*2)}c.addCls(b)}else{d.setZIndex(null);c.removeCls(b)}},doItemDockedChange:function(b,d,c){if(c){this.undockItem(b,c)}if(d){this.dockItem(b,d)}},centerItem:function(b){this.insertItem(b,0);if(b.getZIndex()===null){b.setZIndex((this.container.indexOf(b)+1)*2)}this.createCenteringWrapper(b);b.element.addCls(this.floatingItemCls)},uncenterItem:function(b){this.destroyCenteringWrapper(b);b.setZIndex(null);this.insertItem(b,this.container.indexOf(b));b.element.removeCls(this.floatingItemCls)},dockItem:function(f,b){var c=this.container,g=f.renderElement,e=f.element,d=this.dockingInnerElement;if(!d){c.setUseBodyElement(true);this.dockingInnerElement=d=c.bodyElement}this.getDockingWrapper(b);if(this.positionMap[b]===this.POSITION_START){g.insertBefore(d)}else{g.insertAfter(d)}e.addCls(a+"docked-"+b)},undockItem:function(b,c){this.insertItem(b,this.container.indexOf(b));b.element.removeCls(a+"docked-"+c)},getDockingWrapper:function(b){var e=this.currentDockingDirection,d=this.positionDirectionMap[b],c=this.dockingWrapper;if(e!==d){this.currentDockingDirection=d;this.dockingWrapper=c=this.createDockingWrapper(d)}return c},createDockingWrapper:function(b){return this.dockingInnerElement.wrap({classList:[this.dockingWrapperCls+"-"+b]},true)},createCenteringWrapper:function(c){var f=c.getId(),d=this.centeringWrappers,b=c.renderElement,e;d[f]=e=b.wrap({className:this.centeredItemCls});return e},destroyCenteringWrapper:function(c){var f=c.getId(),d=this.centeringWrappers,b=c.renderElement,e=d[f];b.unwrap();e.destroy();delete d[f];return this},insertItem:function(k,g){var d=this.container,j=d.getItems().items,e=this.innerItems,c=d.innerElement.dom,i=k.renderElement.dom,h,f,b;if(d.has(k)){Ext.Array.remove(e,k)}if(typeof g=="number"){h=j[g];if(h===k){h=j[++g]}while(h&&(h.isCentered()||h.isDocked())){h=j[++g]}if(h){b=e.indexOf(h);if(b!==-1){while(h&&(h.isCentered()||h.isDocked())){h=e[++b]}if(h){e.splice(b,0,k);f=h.renderElement.dom;c.insertBefore(i,f);return this}}}}e.push(k);c.appendChild(i);return this}})})(Ext.baseCSSPrefix);Ext.define("Ext.layout.Fit",{extend:"Ext.layout.Default",alternateClassName:"Ext.layout.FitLayout",alias:"layout.fit",cls:Ext.baseCSSPrefix+"layout-fit",itemCls:Ext.baseCSSPrefix+"layout-fit-item",constructor:function(a){this.callParent(arguments);this.apply()},apply:function(){this.container.innerElement.addCls(this.cls)},reapply:function(){this.apply()},unapply:function(){this.container.innerElement.removeCls(this.cls)},doItemAdd:function(b,a){if(b.isInnerItem()){b.addCls(this.itemCls)}this.callParent(arguments)},doItemRemove:function(a){if(a.isInnerItem()){a.removeCls(this.itemCls)}this.callParent(arguments)}});Ext.define("Ext.layout.AbstractBox",{extend:"Ext.layout.Default",config:{align:"stretch",pack:null},flexItemCls:Ext.baseCSSPrefix+"layout-box-item",positionMap:{middle:"center",left:"start",top:"start",right:"end",bottom:"end"},constructor:function(a){this.callParent(arguments);this.wrappers={};a.innerElement.addCls(this.cls);a.on(this.sizeChangeEventName,"onItemSizeChange",this,{delegate:"> component"})},reapply:function(){this.container.innerElement.addCls(this.cls);this.updatePack(this.getPack());this.updateAlign(this.getAlign())},unapply:function(){this.container.innerElement.removeCls(this.cls);this.updatePack(null);this.updateAlign(null)},doItemAdd:function(d,b){this.callParent(arguments);if(d.isInnerItem()){var c=d.getConfig(this.sizePropertyName),a=d.config;if(!c&&("flex" in a)){this.setItemFlex(d,a.flex)}}},doItemRemove:function(a){if(a.isInnerItem()){this.setItemFlex(a,null)}this.callParent(arguments)},onItemSizeChange:function(a){this.setItemFlex(a,null)},doItemCenteredChange:function(b,a){if(a){this.setItemFlex(b,null)}this.callParent(arguments)},doItemFloatingChange:function(a,b){if(b){this.setItemFlex(a,null)}this.callParent(arguments)},doItemDockedChange:function(a,b){if(b){this.setItemFlex(a,null)}this.callParent(arguments)},redrawContainer:function(){var a=this.container,b=a.renderElement.dom.parentNode;if(b&&b.nodeType!==11){a.innerElement.redraw()}},setItemFlex:function(c,a){var b=c.element,d=this.flexItemCls;if(a){b.addCls(d)}else{if(b.hasCls(d)){this.redrawContainer();b.removeCls(d)}}b.dom.style.webkitBoxFlex=a},convertPosition:function(a){if(this.positionMap.hasOwnProperty(a)){return this.positionMap[a]}return a},applyAlign:function(a){return this.convertPosition(a)},updateAlign:function(a){this.container.innerElement.dom.style.webkitBoxAlign=a},applyPack:function(a){return this.convertPosition(a)},updatePack:function(a){this.container.innerElement.dom.style.webkitBoxPack=a}});Ext.define("Ext.layout.HBox",{extend:"Ext.layout.AbstractBox",alternateClassName:"Ext.layout.HBoxLayout",alias:"layout.hbox",sizePropertyName:"width",sizeChangeEventName:"widthchange",cls:Ext.baseCSSPrefix+"layout-hbox"});Ext.define("Ext.layout.VBox",{extend:"Ext.layout.AbstractBox",alternateClassName:"Ext.layout.VBoxLayout",alias:"layout.vbox",sizePropertyName:"height",sizeChangeEventName:"heightchange",cls:Ext.baseCSSPrefix+"layout-vbox"});Ext.define("Ext.util.AbstractMixedCollection",{requires:["Ext.util.Filter"],mixins:{observable:"Ext.util.Observable"},constructor:function(b,a){var c=this;c.items=[];c.map={};c.keys=[];c.length=0;c.allowFunctions=b===true;if(a){c.getKey=a}c.mixins.observable.constructor.call(c)},allowFunctions:false,add:function(b,e){var d=this,f=e,c=b,a;if(arguments.length==1){f=c;c=d.getKey(f)}if(typeof c!="undefined"&&c!==null){a=d.map[c];if(typeof a!="undefined"){return d.replace(c,f)}d.map[c]=f}d.length++;d.items.push(f);d.keys.push(c);d.fireEvent("add",d.length-1,f,c);return f},getKey:function(a){return a.id},replace:function(c,e){var d=this,a,b;if(arguments.length==1){e=arguments[0];c=d.getKey(e)}a=d.map[c];if(typeof c=="undefined"||c===null||typeof a=="undefined"){return d.add(c,e)}b=d.indexOfKey(c);d.items[b]=e;d.map[c]=e;d.fireEvent("replace",c,a,e);return e},addAll:function(f){var e=this,d=0,b,a,c;if(arguments.length>1||Ext.isArray(f)){b=arguments.length>1?arguments:f;for(a=b.length;d<a;d++){e.add(b[d])}}else{for(c in f){if(f.hasOwnProperty(c)){if(e.allowFunctions||typeof f[c]!="function"){e.add(c,f[c])}}}}},each:function(e,d){var b=[].concat(this.items),c=0,a=b.length,f;for(;c<a;c++){f=b[c];if(e.call(d||f,f,c,a)===false){break}}},eachKey:function(e,d){var f=this.keys,b=this.items,c=0,a=f.length;for(;c<a;c++){e.call(d||window,f[c],b[c],c,a)}},findBy:function(e,d){var f=this.keys,b=this.items,c=0,a=b.length;for(;c<a;c++){if(e.call(d||window,b[c],f[c])){return b[c]}}return null},insert:function(a,b,e){var d=this,c=b,f=e;if(arguments.length==2){f=c;c=d.getKey(f)}if(d.containsKey(c)){d.suspendEvents();d.removeAtKey(c);d.resumeEvents()}if(a>=d.length){return d.add(c,f)}d.length++;Ext.Array.splice(d.items,a,0,f);if(typeof c!="undefined"&&c!==null){d.map[c]=f}Ext.Array.splice(d.keys,a,0,c);d.fireEvent("add",a,f,c);return f},remove:function(a){return this.removeAt(this.indexOf(a))},removeAll:function(a){Ext.each(a||[],function(b){this.remove(b)},this);return this},removeAt:function(a){var c=this,d,b;if(a<c.length&&a>=0){c.length--;d=c.items[a];Ext.Array.erase(c.items,a,1);b=c.keys[a];if(typeof b!="undefined"){delete c.map[b]}Ext.Array.erase(c.keys,a,1);c.fireEvent("remove",d,b);return d}return false},removeAtKey:function(a){return this.removeAt(this.indexOfKey(a))},getCount:function(){return this.length},indexOf:function(a){return Ext.Array.indexOf(this.items,a)},indexOfKey:function(a){return Ext.Array.indexOf(this.keys,a)},get:function(b){var d=this,a=d.map[b],c=a!==undefined?a:(typeof b=="number")?d.items[b]:undefined;return typeof c!="function"||d.allowFunctions?c:null},getAt:function(a){return this.items[a]},getByKey:function(a){return this.map[a]},contains:function(a){return Ext.Array.contains(this.items,a)},containsKey:function(a){return typeof this.map[a]!="undefined"},clear:function(){var a=this;a.length=0;a.items=[];a.keys=[];a.map={};a.fireEvent("clear")},first:function(){return this.items[0]},last:function(){return this.items[this.length-1]},sum:function(g,b,h,a){var c=this.extractValues(g,b),f=c.length,e=0,d;h=h||0;a=(a||a===0)?a:f-1;for(d=h;d<=a;d++){e+=c[d]}return e},collect:function(j,e,g){var k=this.extractValues(j,e),a=k.length,b={},c=[],h,f,d;for(d=0;d<a;d++){h=k[d];f=String(h);if((g||!Ext.isEmpty(h))&&!b[f]){b[f]=true;c.push(h)}}return c},extractValues:function(c,a){var b=this.items;if(a){b=Ext.Array.pluck(b,a)}return Ext.Array.pluck(b,c)},getRange:function(f,a){var e=this,c=e.items,b=[],d;if(c.length<1){return b}f=f||0;a=Math.min(typeof a=="undefined"?e.length-1:a,e.length-1);if(f<=a){for(d=f;d<=a;d++){b[b.length]=c[d]}}else{for(d=f;d>=a;d--){b[b.length]=c[d]}}return b},filter:function(d,c,f,a){var b=[],e;if(Ext.isString(d)){b.push(Ext.create("Ext.util.Filter",{property:d,value:c,anyMatch:f,caseSensitive:a}))}else{if(Ext.isArray(d)||d instanceof Ext.util.Filter){b=b.concat(d)}}e=function(g){var m=true,n=b.length,h;for(h=0;h<n;h++){var l=b[h],k=l.filterFn,j=l.scope;m=m&&k.call(j,g)}return m};return this.filterBy(e)},filterBy:function(e,d){var h=this,a=new this.self(),g=h.keys,b=h.items,f=b.length,c;a.getKey=h.getKey;for(c=0;c<f;c++){if(e.call(d||h,b[c],g[c])){a.add(g[c],b[c])}}return a},findIndex:function(c,b,e,d,a){if(Ext.isEmpty(b,false)){return -1}b=this.createValueMatcher(b,d,a);return this.findIndexBy(function(f){return f&&b.test(f[c])},null,e)},findIndexBy:function(e,d,h){var g=this,f=g.keys,b=g.items,c=h||0,a=b.length;for(;c<a;c++){if(e.call(d||g,b[c],f[c])){return c}}return -1},createValueMatcher:function(c,e,a,b){if(!c.exec){var d=Ext.String.escapeRegex;c=String(c);if(e===true){c=d(c)}else{c="^"+d(c);if(b===true){c+="$"}}c=new RegExp(c,a?"":"i")}return c},clone:function(){var e=this,f=new this.self(),d=e.keys,b=e.items,c=0,a=b.length;for(;c<a;c++){f.add(d[c],b[c])}f.getKey=e.getKey;return f}});Ext.define("Ext.util.MixedCollection",{extend:"Ext.util.AbstractMixedCollection",mixins:{sortable:"Ext.util.Sortable"},constructor:function(){var a=this;a.callParent(arguments);a.mixins.sortable.initSortable.call(a)},doSort:function(a){this.sortBy(a)},_sort:function(k,a,j){var h=this,d,e,b=String(a).toUpperCase()=="DESC"?-1:1,g=[],l=h.keys,f=h.items;j=j||function(i,c){return i-c};for(d=0,e=f.length;d<e;d++){g[g.length]={key:l[d],value:f[d],index:d}}Ext.Array.sort(g,function(i,c){var m=j(i[k],c[k])*b;if(m===0){m=(i.index<c.index?-1:1)}return m});for(d=0,e=g.length;d<e;d++){f[d]=g[d].value;l[d]=g[d].key}h.fireEvent("sort",h)},sortBy:function(c){var g=this,b=g.items,f=g.keys,e=b.length,a=[],d;for(d=0;d<e;d++){a[d]={key:f[d],value:b[d],index:d}}Ext.Array.sort(a,function(i,h){var j=c(i.value,h.value);if(j===0){j=(i.index<h.index?-1:1)}return j});for(d=0;d<e;d++){b[d]=a[d].value;f[d]=a[d].key}g.fireEvent("sort",g,b,f)},reorder:function(d){var g=this,b=g.items,c=0,f=b.length,a=[],e=[],h;g.suspendEvents();for(h in d){a[d[h]]=b[h]}for(c=0;c<f;c++){if(d[c]==undefined){e.push(b[c])}}for(c=0;c<f;c++){if(a[c]==undefined){a[c]=e.shift()}}g.clear();g.addAll(a);g.resumeEvents();g.fireEvent("sort",g)},sortByKey:function(a,b){this._sort("key",a,b||function(d,c){var f=String(d).toUpperCase(),e=String(c).toUpperCase();return f>e?1:(f<e?-1:0)})}});Ext.define("Ext.ItemCollection",{extend:"Ext.util.MixedCollection",getKey:function(a){return a.getItemId()},has:function(a){return this.map.hasOwnProperty(a.getId())}});(function(){function b(d){var c=Array.prototype.slice.call(arguments,1);return d.replace(/\{(\d+)\}/g,function(e,f){return c[f]})}Ext.DateExtras={now:Date.now||function(){return +new Date()},getElapsed:function(d,c){return Math.abs(d-(c||new Date()))},useStrict:false,formatCodeToRegex:function(d,c){var e=a.parseCodes[d];if(e){e=typeof e=="function"?e():e;a.parseCodes[d]=e}return e?Ext.applyIf({c:e.c?b(e.c,c||"{0}"):e.c},e):{g:0,c:null,s:Ext.String.escapeRegex(d)}},parseFunctions:{MS:function(d,c){var e=new RegExp("\\/Date\\(([-+])?(\\d+)(?:[+-]\\d{4})?\\)\\/");var f=(d||"").match(e);return f?new Date(((f[1]||"")+f[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(c){return a.monthNames[c].substring(0,3)},getShortDayName:function(c){return a.dayNames[c].substring(0,3)},getMonthNumber:function(c){return a.monthNumbers[c.substring(0,1).toUpperCase()+c.substring(1,3).toLowerCase()]},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 j="Y-m-dTH:i:sP",g=[],f=0,d=j.length;f<d;++f){var h=j.charAt(f);g.push(h=="T"?"'T'":a.getFormatCode(h))}return g.join(" + ")},U:"Math.round(this.getTime() / 1000)"},isValid:function(n,c,l,j,f,g,e){j=j||0;f=f||0;g=g||0;e=e||0;var k=a.add(new Date(n<100?100:n,c-1,l,j,f,g,e),a.YEAR,n<100?n-100:0);return n==k.getFullYear()&&c==k.getMonth()+1&&l==k.getDate()&&j==k.getHours()&&f==k.getMinutes()&&g==k.getSeconds()&&e==k.getMilliseconds()},parse:function(d,f,c){var e=a.parseFunctions;if(e[f]==null){a.createParser(f)}return e[f](d,Ext.isDefined(c)?c:a.useStrict)},parseDate:function(d,e,c){return a.parse(d,e,c)},getFormatCode:function(d){var c=a.formatCodes[d];if(c){c=typeof c=="function"?c():c;a.formatCodes[d]=c}return c||("'"+Ext.String.escape(d)+"'")},createFormat:function(g){var f=[],c=false,e="";for(var d=0;d<g.length;++d){e=g.charAt(d);if(!c&&e=="\\"){c=true}else{if(c){c=false;f.push("'"+Ext.String.escape(e)+"'")}else{f.push(a.getFormatCode(e))}}}a.formatFunctions[g]=Ext.functionFactory("return "+f.join("+"))},createParser:(function(){var c=["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(l){var e=a.parseRegexes.length,m=1,f=[],k=[],j=false,d="";for(var h=0;h<l.length;++h){d=l.charAt(h);if(!j&&d=="\\"){j=true}else{if(j){j=false;k.push(Ext.String.escape(d))}else{var g=a.formatCodeToRegex(d,m);m+=g.g;k.push(g.s);if(g.g&&g.c){f.push(g.c)}}}}a.parseRegexes[e]=new RegExp("^"+k.join("")+"$","i");a.parseFunctions[l]=Ext.functionFactory("input","strict",b(c,e,f.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 c=[],d=0;d<7;c.push(a.getShortDayName(d)),++d){}return{g:0,c:null,s:"(?:"+c.join("|")+")"}},l:function(){return{g:0,c:null,s:"(?:"+a.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:"("+a.monthNames.join("|")+")"}},M:function(){for(var c=[],d=0;d<12;c.push(a.getShortMonthName(d)),++d){}return Ext.applyIf({s:"("+c.join("|")+")"},a.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 a.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 a.formatCodeToRegex("G")},G:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(\\d{1,2})"},h:function(){return a.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 e=[],c=[a.formatCodeToRegex("Y",1),a.formatCodeToRegex("m",2),a.formatCodeToRegex("d",3),a.formatCodeToRegex("h",4),a.formatCodeToRegex("i",5),a.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){",a.formatCodeToRegex("P",8).c,"}else{",a.formatCodeToRegex("O",8).c,"}","}"].join("\n")}];for(var f=0,d=c.length;f<d;++f){e.push(c[f].c)}return{g:1,c:e.join(""),s:[c[0].s,"(?:","-",c[1].s,"(?:","-",c[2].s,"(?:","(?:T| )?",c[3].s,":",c[4].s,"(?::",c[5].s,")?","(?:(?:\\.|,)(\\d+))?","(Z|(?:[-+]\\d{2}(?::)?\\d{2}))?",")?",")?",")?"].join("")}},U:{g:1,c:"u = parseInt(results[{0}], 10);\n",s:"(-?\\d+)"}},dateFormat:function(c,d){return a.format(c,d)},format:function(d,e){if(a.formatFunctions[e]==null){a.createFormat(e)}var c=a.formatFunctions[e].call(d);return c+""},getTimezone:function(c){return c.toString().replace(/^.* (?:\((.*)\)|([A-Z]{1,4})(?:[\-+][0-9]{4})?(?: -?\d+)?)$/,"$1$2").replace(/[^A-Z]/g,"")},getGMTOffset:function(c,d){var e=c.getTimezoneOffset();return(e>0?"-":"+")+Ext.String.leftPad(Math.floor(Math.abs(e)/60),2,"0")+(d?":":"")+Ext.String.leftPad(Math.abs(e%60),2,"0")},getDayOfYear:function(f){var e=0,h=Ext.Date.clone(f),c=f.getMonth(),g;for(g=0,h.setDate(1),h.setMonth(0);g<c;h.setMonth(++g)){e+=a.getDaysInMonth(h)}return e+f.getDate()-1},getWeekOfYear:(function(){var c=86400000,d=7*c;return function(f){var g=Date.UTC(f.getFullYear(),f.getMonth(),f.getDate()+3)/c,e=Math.floor(g/7),h=new Date(e*d).getUTCFullYear();return e-Math.floor(Date.UTC(h,0,7)/d)+1}})(),isLeapYear:function(c){var d=c.getFullYear();return !!((d&3)==0&&(d%100||(d%400==0&&d)))},getFirstDayOfMonth:function(d){var c=(d.getDay()-(d.getDate()-1))%7;return(c<0)?(c+7):c},getLastDayOfMonth:function(c){return a.getLastDateOfMonth(c).getDay()},getFirstDateOfMonth:function(c){return new Date(c.getFullYear(),c.getMonth(),1)},getLastDateOfMonth:function(c){return new Date(c.getFullYear(),c.getMonth(),a.getDaysInMonth(c))},getDaysInMonth:(function(){var c=[31,28,31,30,31,30,31,31,30,31,30,31];return function(e){var d=e.getMonth();return d==1&&a.isLeapYear(e)?29:c[d]}})(),getSuffix:function(c){switch(c.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(c){return new Date(c.getTime())},isDST:function(c){return new Date(c.getFullYear(),0,1).getTimezoneOffset()!=c.getTimezoneOffset()},clearTime:function(e,i){if(i){return Ext.Date.clearTime(Ext.Date.clone(e))}var g=e.getDate();e.setHours(0);e.setMinutes(0);e.setSeconds(0);e.setMilliseconds(0);if(e.getDate()!=g){for(var f=1,h=a.add(e,Ext.Date.HOUR,f);h.getDate()!=g;f++,h=a.add(e,Ext.Date.HOUR,f)){}e.setDate(g);e.setHours(h.getHours())}return e},add:function(g,f,h){var i=Ext.Date.clone(g),c=Ext.Date;if(!f||h===0){return i}switch(f.toLowerCase()){case Ext.Date.MILLI:i.setMilliseconds(i.getMilliseconds()+h);break;case Ext.Date.SECOND:i.setSeconds(i.getSeconds()+h);break;case Ext.Date.MINUTE:i.setMinutes(i.getMinutes()+h);break;case Ext.Date.HOUR:i.setHours(i.getHours()+h);break;case Ext.Date.DAY:i.setDate(i.getDate()+h);break;case Ext.Date.MONTH:var e=g.getDate();if(e>28){e=Math.min(e,Ext.Date.getLastDateOfMonth(Ext.Date.add(Ext.Date.getFirstDateOfMonth(g),"mo",h)).getDate())}i.setDate(e);i.setMonth(g.getMonth()+h);break;case Ext.Date.YEAR:i.setFullYear(g.getFullYear()+h);break}return i},between:function(d,f,c){var e=d.getTime();return f.getTime()<=e&&e<=c.getTime()}};var a=Ext.DateExtras;Ext.apply(Ext.Date,a);Ext.apply(Ext.util.Date,a)})();Ext.define("Ext.util.Format",{requires:["Ext.DateExtras"],singleton:true,defaultDateFormat:"m/d/Y",escapeRe:/('|\\)/g,trimRe:/^[\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,formatRe:/\{(\d+)\}/g,escapeRegexRe:/([-.*+?^${}()|[\]\/\\])/g,ellipsis:function(c,a,d){if(c&&c.length>a){if(d){var e=c.substr(0,a-2),b=Math.max(e.lastIndexOf(" "),e.lastIndexOf("."),e.lastIndexOf("!"),e.lastIndexOf("?"));if(b!=-1&&b>=(a-15)){return e.substr(0,b)+"..."}}return c.substr(0,a-3)+"..."}return c},escapeRegex:function(a){return a.replace(Ext.util.Format.escapeRegexRe,"\\$1")},escape:function(a){return a.replace(Ext.util.Format.escapeRe,"\\$1")},toggle:function(b,c,a){return b==c?a:c},trim:function(a){return a.replace(Ext.util.Format.trimRe,"")},leftPad:function(d,b,c){var a=String(d);c=c||" ";while(a.length<b){a=c+a}return a},format:function(b){var a=Ext.toArray(arguments,1);return b.replace(Ext.util.Format.formatRe,function(c,d){return a[d]})},htmlEncode:function(a){return !a?a:String(a).replace(/&/g,"&").replace(/>/g,">").replace(/</g,"<").replace(/"/g,""")},htmlDecode:function(a){return !a?a:String(a).replace(/>/g,">").replace(/</g,"<").replace(/"/g,'"').replace(/&/g,"&")},date:function(a,c){var b=a;if(!a){return""}if(!Ext.isDate(a)){b=new Date(Date.parse(a));if(isNaN(b)){a=new Date(Date.parse(a.replace(/-/g,"/")));if(isNaN(a)){Ext.Logger.error("Cannot parse the passed value into a valid date")}}else{a=b}}return Ext.Date.format(a,c||Ext.util.Format.defaultDateFormat)}});Ext.define("Ext.Template",{requires:["Ext.dom.Helper","Ext.util.Format"],inheritableStatics:{from:function(b,a){b=Ext.getDom(b);return new this(b.value||b.innerHTML,a||"")}},constructor:function(d){var f=this,b=arguments,a=[],c=0,e=b.length,g;f.initialConfig={};if(e>1){for(;c<e;c++){g=b[c];if(typeof g=="object"){Ext.apply(f.initialConfig,g);Ext.apply(f,g)}else{a.push(g)}}d=a.join("")}else{if(Ext.isArray(d)){a.push(d.join(""))}else{a.push(d)}}f.html=a.join("");if(f.compiled){f.compile()}},isTemplate:true,disableFormats:false,re:/\{([\w\-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,apply:function(a){var g=this,d=g.disableFormats!==true,f=Ext.util.Format,c=g,b;if(g.compiled){return g.compiled(a).join("")}function e(h,j,k,i){if(k&&d){if(i){i=[a[j]].concat(Ext.functionFactory("return ["+i+"];")())}else{i=[a[j]]}if(k.substr(0,5)=="this."){return c[k.substr(5)].apply(c,i)}else{return f[k].apply(f,i)}}else{return a[j]!==undefined?a[j]:""}}b=g.html.replace(g.re,e);return b},applyOut:function(a,b){var c=this;if(c.compiled){b.push.apply(b,c.compiled(a))}else{b.push(c.apply(a))}return b},applyTemplate:function(){return this.apply.apply(this,arguments)},set:function(a,c){var b=this;b.html=a;b.compiled=null;return c?b.compile():b},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+"'];};";eval(body);return me},insertFirst:function(b,a,c){return this.doInsert("afterBegin",b,a,c)},insertBefore:function(b,a,c){return this.doInsert("beforeBegin",b,a,c)},insertAfter:function(b,a,c){return this.doInsert("afterEnd",b,a,c)},append:function(b,a,c){return this.doInsert("beforeEnd",b,a,c)},doInsert:function(c,e,b,a){e=Ext.getDom(e);var d=Ext.DomHelper.insertHtml(c,e,this.apply(b));return a?Ext.get(d,true):d},overwrite:function(b,a,c){b=Ext.getDom(b);b.innerHTML=this.apply(a);return c?Ext.get(b.firstChild,true):b.firstChild}});Ext.define("Ext.XTemplate",{extend:"Ext.Template",requires:"Ext.XTemplateCompiler",apply:function(a){return this.applyOut(a,[]).join("")},applyOut:function(a,b){var d=this,c;if(!d.fn){c=new Ext.XTemplateCompiler({useFormat:d.disableFormats!==true});d.fn=c.compile(d.html)}try{d.fn.call(d,b,a,{},1,1)}catch(f){Ext.log("Error: "+f.message)}return b},compile:function(){return this},statics:{getTpl:function(a,c){var b=a[c],d;if(b&&!b.isTemplate){b=Ext.ClassManager.dynInstantiate("Ext.XTemplate",b);if(a.hasOwnProperty(c)){a[c]=b}else{for(d=a.self.prototype;d;d=d.superclass){if(d.hasOwnProperty(c)){d[c]=b;break}}}}return b||null}}});Ext.define("Ext.util.SizeMonitor",{extend:"Ext.Evented",config:{element:null,detectorCls:Ext.baseCSSPrefix+"size-change-detector",callback:Ext.emptyFn,scope:null,args:[]},constructor:function(d){this.initConfig(d);this.doFireSizeChangeEvent=Ext.Function.bind(this.doFireSizeChangeEvent,this);var g=this,e=this.getElement().dom,b=this.getDetectorCls(),c=Ext.Element.create({classList:[b,b+"-expand"],children:[{}]},true),h=Ext.Element.create({classList:[b,b+"-shrink"],children:[{}]},true),a=function(i){g.onDetectorScroll("expand",i)},f=function(i){g.onDetectorScroll("shrink",i)};e.appendChild(c);e.appendChild(h);c.addEventListener("scroll",a,true);h.addEventListener("scroll",f,true);this.detectors={expand:c,shrink:h};this.position={expand:{left:0,top:0},shrink:{left:0,top:0}};this.listeners={expand:a,shrink:f};this.refresh()},applyElement:function(a){if(a){return Ext.get(a)}},refreshPosition:function(b){var e=this.detectors[b],a=this.position[b],d,c;a.left=d=e.scrollWidth-e.offsetWidth;a.top=c=e.scrollHeight-e.offsetHeight;e.scrollLeft=d;e.scrollTop=c},refresh:function(){this.refreshPosition("expand");this.refreshPosition("shrink")},onDetectorScroll:function(b){var c=this.detectors[b],a=this.position[b];if(c.scrollLeft!==a.left||c.scrollTop!==a.top){this.refresh();this.fireSizeChangeEvent()}},fireSizeChangeEvent:function(){clearTimeout(this.sizeChangeThrottleTimer);this.sizeChangeThrottleTimer=setTimeout(this.doFireSizeChangeEvent,1)},doFireSizeChangeEvent:function(){this.getCallback().apply(this.getScope(),this.getArgs())},destroyDetector:function(a){var c=this.detectors[a],b=this.listeners[a];c.removeEventListener("scroll",b,true);Ext.removeNode(c)},destroy:function(){this.callParent(arguments);this.destroyDetector("expand");this.destroyDetector("shrink");delete this.listeners;delete this.detectors}});Ext.define("Ext.fx.layout.card.Abstract",{extend:"Ext.Evented",isAnimation:true,config:{direction:"left",duration:null,reverse:null,layout:null},updateLayout:function(){this.enable()},enable:function(){var a=this.getLayout();if(a){a.onBefore("activeitemchange","onActiveItemChange",this)}},disable:function(){var a=this.getLayout();if(a){a.unBefore("activeitemchange","onActiveItemChange",this)}},onActiveItemChange:Ext.emptyFn,destroy:function(){var a=this.getLayout();if(a){a.unBefore("activeitemchange","onActiveItemChange",this)}this.setLayout(null)}});Ext.define("Ext.fx.layout.card.Style",{extend:"Ext.fx.layout.card.Abstract",requires:["Ext.fx.Animation"],config:{inAnimation:{before:{visibility:null},preserveEndState:false,replacePrevious:true},outAnimation:{preserveEndState:false,replacePrevious:true}},constructor:function(b){var c,a;this.initConfig(b);this.endAnimationCounter=0;c=this.getInAnimation();a=this.getOutAnimation();c.on("animationend","incrementEnd",this);a.on("animationend","incrementEnd",this);c.setConfig(b);a.setConfig(b)},incrementEnd:function(){this.endAnimationCounter++;if(this.endAnimationCounter>1){this.endAnimationCounter=0;this.fireEvent("animationend",this)}},applyInAnimation:function(b,a){return Ext.factory(b,Ext.fx.Animation,a)},applyOutAnimation:function(b,a){return Ext.factory(b,Ext.fx.Animation,a)},updateInAnimation:function(a){a.setScope(this)},updateOutAnimation:function(a){a.setScope(this)},onActiveItemChange:function(a,f,j,k,e){var b=this.getInAnimation(),i=this.getOutAnimation(),g,d,h,c;if(f&&j){g=f.renderElement;d=j.renderElement;h=b.getElement();b.setElement(g);c=i.getElement();i.setElement(d);i.setOnBeforeEnd(function(l,m){if(m||Ext.Animator.hasRunningAnimations(l)){e.firingArguments[1]=null;e.firingArguments[2]=null}});i.setOnEnd(function(){e.resume()});g.dom.style.setProperty("visibility","hidden","!important");f.show();Ext.Animator.run([i,b]);e.pause()}}});Ext.define("Ext.fx.layout.card.Slide",{extend:"Ext.fx.layout.card.Style",alias:"fx.layout.card.slide",config:{inAnimation:{type:"slide",easing:"ease-out"},outAnimation:{type:"slide",easing:"ease-out",out:true}},updateReverse:function(a){this.getInAnimation().setReverse(a);this.getOutAnimation().setReverse(a)}});Ext.define("Ext.fx.layout.card.Cover",{extend:"Ext.fx.layout.card.Style",alias:"fx.layout.card.cover",config:{reverse:null,inAnimation:{before:{"z-index":100},after:{"z-index":0},type:"slide",easing:"ease-out"},outAnimation:{easing:"ease-out",from:{opacity:0.99},to:{opacity:1},out:true}},updateReverse:function(a){this.getInAnimation().setReverse(a);this.getOutAnimation().setReverse(a)}});Ext.define("Ext.fx.layout.card.Reveal",{extend:"Ext.fx.layout.card.Style",alias:"fx.layout.card.reveal",config:{inAnimation:{easing:"ease-out",from:{opacity:0.99},to:{opacity:1}},outAnimation:{before:{"z-index":100},after:{"z-index":0},type:"slide",easing:"ease-out",out:true}},updateReverse:function(a){this.getInAnimation().setReverse(a);this.getOutAnimation().setReverse(a)}});Ext.define("Ext.fx.layout.card.Fade",{extend:"Ext.fx.layout.card.Style",alias:"fx.layout.card.fade",config:{reverse:null,inAnimation:{type:"fade",easing:"ease-out"},outAnimation:{type:"fade",easing:"ease-out",out:true}}});Ext.define("Ext.fx.layout.card.Flip",{extend:"Ext.fx.layout.card.Style",alias:"fx.layout.card.flip",config:{duration:500,inAnimation:{type:"flip",half:true,easing:"ease-out",before:{"backface-visibility":"hidden"},after:{"backface-visibility":null}},outAnimation:{type:"flip",half:true,easing:"ease-in",before:{"backface-visibility":"hidden"},after:{"backface-visibility":null},out:true}},updateDuration:function(d){var c=d/2,b=this.getInAnimation(),a=this.getOutAnimation();b.setDelay(c);b.setDuration(c);a.setDuration(c)}});Ext.define("Ext.fx.layout.card.Pop",{extend:"Ext.fx.layout.card.Style",alias:"fx.layout.card.pop",config:{duration:500,inAnimation:{type:"pop",easing:"ease-out"},outAnimation:{type:"pop",easing:"ease-in",out:true}},updateDuration:function(d){var c=d/2,b=this.getInAnimation(),a=this.getOutAnimation();b.setDelay(c);b.setDuration(c);a.setDuration(c)}});Ext.define("Ext.fx.layout.card.Cube",{extend:"Ext.fx.layout.card.Style",alias:"fx.layout.card.cube",config:{reverse:null,inAnimation:{type:"cube"},outAnimation:{type:"cube",out:true}}});Ext.define("Ext.fx.easing.Linear",{extend:"Ext.fx.easing.Abstract",alias:"easing.linear",config:{duration:0,endValue:0},updateStartValue:function(a){this.distance=this.getEndValue()-a},updateEndValue:function(a){this.distance=a-this.getStartValue()},getValue:function(){var a=Ext.Date.now()-this.getStartTime(),b=this.getDuration();if(a>b){this.isEnded=true;return this.getEndValue()}else{return this.getStartValue()+((a/b)*this.distance)}}});Ext.define("Ext.fx.layout.card.Scroll",{extend:"Ext.fx.layout.card.Abstract",requires:["Ext.fx.easing.Linear"],alias:"fx.layout.card.scroll",config:{duration:150},constructor:function(a){this.initConfig(a);this.doAnimationFrame=Ext.Function.bind(this.doAnimationFrame,this)},getEasing:function(){var a=this.easing;if(!a){this.easing=a=new Ext.fx.easing.Linear()}return a},updateDuration:function(a){this.getEasing().setDuration(a)},onActiveItemChange:function(a,d,l,m,c){var i=this.getDirection(),g=this.getEasing(),k,e,b,h,j,f;if(d&&l){if(this.isAnimating){this.stopAnimation()}k=this.getLayout().container.innerElement;h=k.getWidth();j=k.getHeight();e=d.renderElement;b=l.renderElement;this.oldItem=l;this.newItem=d;this.currentEventController=c;this.containerElement=k;this.isReverse=f=this.getReverse();d.show();if(i=="right"){i="left";this.isReverse=f=!f}else{if(i=="down"){i="up";this.isReverse=f=!f}}if(i=="left"){if(f){g.setConfig({startValue:h,endValue:0});k.dom.scrollLeft=h;b.setLeft(h)}else{g.setConfig({startValue:0,endValue:h});e.setLeft(h)}}else{if(f){g.setConfig({startValue:j,endValue:0});k.dom.scrollTop=j;b.setTop(j)}else{g.setConfig({startValue:0,endValue:j});e.setTop(j)}}this.startAnimation();c.pause()}},startAnimation:function(){this.isAnimating=true;this.getEasing().setStartTime(Date.now());this.timer=setInterval(this.doAnimationFrame,20);this.doAnimationFrame()},doAnimationFrame:function(){var d=this.getEasing(),c=this.getDirection(),a="scrollTop",b;if(c=="left"||c=="right"){a="scrollLeft"}if(d.isEnded){this.stopAnimation()}else{b=d.getValue();this.containerElement.dom[a]=b}},stopAnimation:function(){var b=this.getDirection(),a="setTop";if(b=="left"||b=="right"){a="setLeft"}this.currentEventController.resume();if(this.isReverse){this.oldItem.renderElement[a](null)}else{this.newItem.renderElement[a](null)}clearInterval(this.timer);this.isAnimating=false;this.fireEvent("animationend",this)}});Ext.define("Ext.fx.layout.card.ScrollCover",{extend:"Ext.fx.layout.card.Scroll",alias:"fx.layout.card.scrollcover",onActiveItemChange:function(c,g,d,k,e){var i,a,j,h,b,f;this.lastController=e;this.inItem=g;if(g&&d){i=this.getLayout().container.innerElement;a=i.getSize();j=this.calculateXY(a);h={easing:this.getEasing(),duration:this.getDuration()};g.renderElement.dom.style.setProperty("visibility","hidden","!important");b=g.setTranslatable(true).getTranslatable();f=d.setTranslatable(true).getTranslatable();f.translate({x:0,y:0});b.translate({x:j.left,y:j.top});b.getWrapper().dom.style.setProperty("z-index","100","!important");g.show();b.on({animationstart:"onInAnimationStart",animationend:"onInAnimationEnd",scope:this});b.translateAnimated({x:0,y:0},h);e.pause()}},onInAnimationStart:function(){this.inItem.renderElement.dom.style.removeProperty("visibility")},onInAnimationEnd:function(){this.inItem.getTranslatable().getWrapper().dom.style.removeProperty("z-index");this.lastController.resume()}});Ext.define("Ext.fx.layout.card.ScrollReveal",{extend:"Ext.fx.layout.card.Scroll",alias:"fx.layout.card.scrollreveal",onActiveItemChange:function(c,g,d,k,e){var i,a,j,h,f,b;this.lastController=e;this.outItem=d;this.inItem=g;if(g&&d){i=this.getLayout().container.innerElement;a=i.getSize();j=this.calculateXY(a);h={easing:this.getEasing(),duration:this.getDuration()};f=d.setTranslatable(true).getTranslatable();b=g.setTranslatable(true).getTranslatable();f.getWrapper().dom.style.setProperty("z-index","100","!important");f.translate({x:0,y:0});b.translate({x:0,y:0});g.show();f.on({animationend:"onOutAnimationEnd",scope:this});f.translateAnimated({x:j.x,y:j.y},h);e.pause()}},onOutAnimationEnd:function(){this.outItem.getTranslatable().getWrapper().dom.style.removeProperty("z-index");this.lastController.resume()}});Ext.define("Ext.fx.layout.Card",{requires:["Ext.fx.layout.card.Slide","Ext.fx.layout.card.Cover","Ext.fx.layout.card.Reveal","Ext.fx.layout.card.Fade","Ext.fx.layout.card.Flip","Ext.fx.layout.card.Pop","Ext.fx.layout.card.Cube","Ext.fx.layout.card.Scroll"],constructor:function(b){var a=Ext.fx.layout.card.Abstract,c;if(!b){return null}if(typeof b=="string"){c=b;b={}}else{if(b.type){c=b.type}}b.elementBox=false;if(c){if(Ext.os.is.Android2){if(c!="fade"){c="scroll"}}a=Ext.ClassManager.getByAlias("fx.layout.card."+c);if(!a){Ext.Logger.error("Unknown card animation type: '"+c+"'")}}return Ext.factory(b,a)}});Ext.define("Ext.layout.Card",{extend:"Ext.layout.Fit",alternateClassName:"Ext.layout.CardLayout",isCard:true,requires:["Ext.fx.layout.Card"],alias:"layout.card",cls:Ext.baseCSSPrefix+"layout-card",itemCls:Ext.baseCSSPrefix+"layout-card-item",config:{animation:null},constructor:function(){this.callParent(arguments);this.container.onInitialized(this.onContainerInitialized,this)},applyAnimation:function(a){return new Ext.fx.layout.Card(a)},updateAnimation:function(b,a){if(b&&b.isAnimation){b.setLayout(this)}if(a){a.destroy()}},doItemAdd:function(b,a){if(b.isInnerItem()){b.hide()}this.callParent(arguments)},doItemRemove:function(a){this.callParent(arguments);if(a.isInnerItem()){a.show()}},onContainerInitialized:function(a){var b=a.getActiveItem();if(b){b.show()}a.on("activeitemchange","onContainerActiveItemChange",this)},onContainerActiveItemChange:function(a){this.relayEvent(arguments,"doActiveItemChange")},doActiveItemChange:function(b,c,a){if(a){a.hide()}if(c){c.show()}},doItemDockedChange:function(b,c){var a=b.element;if(c){a.removeCls(this.itemCls)}else{a.addCls(this.itemCls)}this.callParent(arguments)}});Ext.define("Ext.layout.Layout",{requires:["Ext.layout.Fit","Ext.layout.Card","Ext.layout.HBox","Ext.layout.VBox"],constructor:function(a,b){var c=Ext.layout.Default,d,e;if(typeof b=="string"){d=b;b={}}else{if("type" in b){d=b.type}}if(d){c=Ext.ClassManager.getByAlias("layout."+d);if(!c){Ext.Logger.error("Unknown layout type of: '"+d+"'")}}return new c(a,b)}});Ext.define("Ext.fx.Easing",{requires:["Ext.fx.easing.Linear"],constructor:function(a){return Ext.factory(a,Ext.fx.easing.Linear,null,"easing")}});Ext.define("Ext.util.translatable.Abstract",{mixins:["Ext.mixin.Observable"],requires:["Ext.fx.Easing"],config:{element:null,easing:{},easingX:{},easingY:{},fps:60},constructor:function(a){var b;this.doAnimationFrame=Ext.Function.bind(this.doAnimationFrame,this);this.translation={x:0,y:0};this.activeEasing={x:null,y:null};this.initialConfig=a;if(a&&a.element){b=a.element;delete a.element;this.setElement(b)}},applyElement:function(a){if(!a){return}return Ext.get(a)},updateElement:function(a){this.initConfig(this.initialConfig);this.refresh()},factoryEasing:function(a){return new Ext.fx.Easing(a)},applyEasing:function(a){a=this.factoryEasing(a);if(!this.getEasingX()){this.setEasingX(a)}if(!this.getEasingY()){this.setEasingY(a)}return a},applyEasingX:function(a){return this.factoryEasing(a)},applyEasingY:function(a){return this.factoryEasing(a)},updateFps:function(a){this.animationInterval=1000/a},doTranslate:function(b){var a=this.translation;if("x" in b){a.x=b.x}if("y" in b){a.y=b.y}return this},translate:function(b,a){this.stopAnimation();if(a){return this.translateAnimated(b,a)}return this.doTranslate(b)},translateAnimated:function(h,e){if(!Ext.isObject(e)){e={}}var g=e.easing,b=this.activeEasing,f=this.translation,d=Ext.Date.now(),c=("x" in h)?(g||e.easingX||this.getEasingX()):null,a=("y" in h)?(g||e.easingY||this.getEasingY()):null;if(c){c=this.factoryEasing(c);c.setStartTime(d);c.setStartValue(f.x);c.setEndValue(h.x);if("duration" in e){c.setDuration(e.duration)}}if(a){a=this.factoryEasing(a);a.setStartTime(d);a.setStartValue(f.y);a.setEndValue(h.y);if("duration" in e){a.setDuration(e.duration)}}b.x=c;b.y=a;this.isAnimating=true;this.animationTimer=setInterval(this.doAnimationFrame,this.animationInterval,this);this.fireEvent("animationstart",this)},doAnimationFrame:function(){if(!this.isAnimating){return}var f=this.activeEasing,b=f.x,a=f.y,d=b===null||b.isEnded,c=a===null||a.isEnded,e={};if(d&&c){this.stopAnimation();return}if(!d){e.x=Math.round(b.getValue())}if(!c){e.y=Math.round(a.getValue())}this.doTranslate(e);this.fireEvent("animationframe",this,e)},stopAnimation:function(){if(!this.isAnimating){return}var a=this.activeEasing;a.x=null;a.y=null;this.isAnimating=false;clearInterval(this.animationTimer);this.fireEvent("animationend",this)},refresh:function(){this.translate(this.translation)}});Ext.define("Ext.util.translatable.CssTransform",{extend:"Ext.util.translatable.Abstract",doTranslate:function(e){var b=this.getElement().dom.style,c=this.translation,a,d;if("x" in e){a=e.x}else{a=c.x}if("y" in e){d=e.y}else{d=c.y}b.webkitTransform="translate3d("+a+"px, "+d+"px, 0px)";return this.callParent(arguments)},destroy:function(){var a=this.getElement();if(a&&!a.isDestroyed){a.dom.style.webkitTransform=null}this.callParent(arguments)}});Ext.define("Ext.util.translatable.ScrollPosition",{extend:"Ext.util.translatable.Abstract",wrapperWidth:0,wrapperHeight:0,baseCls:"x-translatable",getWrapper:function(){var d=this.wrapper,c=this.baseCls,b=this.getElement(),a;if(!d){a=b.getParent();if(!a){return null}d=b.wrap({className:c+"-wrapper"});d.insertFirst(Ext.Element.create({className:c+"-stretcher"}));b.addCls(c);a.addCls(c+"-container");this.container=a;this.wrapper=d;this.refresh()}return d},doTranslate:function(c){var b=this.getWrapper(),a;if(b){a=b.dom;if("x" in c){a.scrollLeft=this.wrapperWidth-c.x}if("y" in c){a.scrollTop=this.wrapperHeight-c.y}}return this.callParent(arguments)},refresh:function(){var b=this.getWrapper(),a;if(b){a=b.dom;this.wrapperWidth=a.offsetWidth;this.wrapperHeight=a.offsetHeight;this.callParent(arguments)}},destroy:function(){var b=this.getElement(),c=this.getWrapper(),a=this.baseCls;if(c){this.container.removeCls(a+"-container");b.unwrap();b.removeCls(a);c.destroy()}this.callParent(arguments)}});Ext.define("Ext.util.Translatable",{requires:["Ext.util.translatable.CssTransform","Ext.util.translatable.ScrollPosition"],constructor:function(a){if(Ext.os.is.Android2){return new Ext.util.translatable.ScrollPosition(a)}return new Ext.util.translatable.CssTransform(a)}});Ext.define("Ext.behavior.Translatable",{extend:"Ext.behavior.Behavior",requires:["Ext.util.Translatable"],constructor:function(){this.listeners={painted:"onComponentPainted",scope:this};this.callParent(arguments)},onComponentPainted:function(){this.translatable.refresh()},setConfig:function(c){var a=this.translatable,b=this.component;if(c){if(!a){this.translatable=a=new Ext.util.Translatable(c);a.setElement(b.renderElement);a.on("destroy","onTranslatableDestroy",this);if(b.isPainted()){this.onComponentPainted(b)}b.on(this.listeners)}else{if(Ext.isObject(c)){a.setConfig(c)}}}else{if(a){a.destroy()}}return this},getTranslatable:function(){return this.translatable},onTranslatableDestroy:function(){var a=this.component;delete this.translatable;a.un(this.listeners)},onComponentDestroy:function(){var a=this.translatable;if(a){a.destroy()}}});Ext.define("Ext.util.Draggable",{isDraggable:true,mixins:["Ext.mixin.Observable"],requires:["Ext.util.SizeMonitor","Ext.util.Translatable"],config:{cls:Ext.baseCSSPrefix+"draggable",draggingCls:Ext.baseCSSPrefix+"dragging",element:null,constraint:"container",disabled:null,direction:"both",translatable:{}},DIRECTION_BOTH:"both",DIRECTION_VERTICAL:"vertical",DIRECTION_HORIZONTAL:"horizontal",constructor:function(a){var b;this.sizeMonitors={};this.extraConstraint={};this.initialConfig=a;this.offset={x:0,y:0};this.listeners={dragstart:"onDragStart",drag:"onDrag",dragend:"onDragEnd",scope:this};if(a&&a.element){b=a.element;delete a.element;this.setElement(b)}return this},applyElement:function(a){if(!a){return}return Ext.get(a)},updateElement:function(a){a.on(this.listeners);a.addCls(this.getCls()||this.config.cls);this.sizeMonitors.element=new Ext.util.SizeMonitor({element:a,callback:this.doRefresh,scope:this});this.initConfig(this.initialConfig)},applyTranslatable:function(a,b){a=Ext.factory(a,Ext.util.Translatable,b);a.setElement(this.getElement());return a},setExtraConstraint:function(a){this.extraConstraint=a||{};this.refreshConstraint();return this},addExtraConstraint:function(a){Ext.merge(this.extraConstraint,a);this.refreshConstraint();return this},applyConstraint:function(b,a){this.currentConstraint=b;if(b==="container"){return Ext.merge(this.getContainerConstraint(),this.extraConstraint)}return Ext.merge({},this.extraConstraint,b)},updateConstraint:function(){this.refreshOffset()},getContainerConstraint:function(){var b=this.getContainer();if(!b){return{min:{x:-Infinity,y:-Infinity},max:{x:Infinity,y:Infinity}}}var g=this.getElement().dom,f=b.dom,c=g.offsetWidth,a=g.offsetHeight,e=f.offsetWidth,d=f.offsetHeight;return{min:{x:0,y:0},max:{x:e-c,y:d-a}}},getContainer:function(){var a=this.container;if(!a){a=this.getElement().getParent();if(a){this.sizeMonitors.container=new Ext.util.SizeMonitor({element:a,callback:this.doRefresh,scope:this});this.container=a}}return a},detachListeners:function(){this.getElement().un(this.listeners)},isAxisEnabled:function(a){var b=this.getDirection();if(a==="x"){return(b===this.DIRECTION_BOTH||b===this.DIRECTION_HORIZONTAL)}return(b===this.DIRECTION_BOTH||b===this.DIRECTION_VERTICAL)},onDragStart:function(a){if(this.getDisabled()){return false}this.fireAction("dragstart",[this,a,this.offset],this.initDragStart)},initDragStart:function(b,c,a){this.dragStartOffset={x:a.x,y:a.y};this.isDragging=true;this.getElement().addCls(this.getDraggingCls())},onDrag:function(b){if(!this.isDragging){return}var a=this.dragStartOffset;this.fireAction("drag",[this,b,{x:a.x+b.deltaX,y:a.y+b.deltaY}],this.doDrag)},doDrag:function(a,b,c){a.setOffset(c)},onDragEnd:function(a){if(!this.isDragging){return}this.onDrag(a);this.isDragging=false;this.fireEvent("dragend",this,a);this.getElement().removeCls(this.getDraggingCls())},setOffset:function(e,b){var g=this.offset,j=e.x,i=e.y,a=this.getConstraint(),f=a.min,c=a.max,d=Math.min,h=Math.max;if(this.isAxisEnabled("x")&&typeof j=="number"){j=d(h(j,f.x),c.x)}else{j=g.x}if(this.isAxisEnabled("y")&&typeof i=="number"){i=d(h(i,f.y),c.y)}else{i=g.y}g.x=j;g.y=i;this.getTranslatable().translate(g,b)},getOffset:function(){return this.offset},refreshConstraint:function(){this.setConstraint(this.currentConstraint)},refreshOffset:function(){this.setOffset(this.offset)},doRefresh:function(){this.refreshConstraint();this.getTranslatable().refresh();this.refreshOffset()},refresh:function(){var a=this.sizeMonitors;if(a.element){a.element.refresh()}if(a.container){a.container.refresh()}this.doRefresh()},enable:function(){return this.setDisabled(false)},disable:function(){return this.setDisabled(true)},destroy:function(){var b=this.sizeMonitors,a=this.getTranslatable();if(b.element){b.element.destroy()}if(b.container){b.container.destroy()}var c=this.getElement();if(c&&!c.isDestroyed){c.removeCls(this.getCls())}this.detachListeners();if(a){a.destroy()}}},function(){this.override({constructor:function(a){if(a&&a.constrain){Ext.Logger.deprecate("'constrain' config is deprecated, please use 'contraint' instead");a.contraint=a.constrain;delete a.constrain}return this.callOverridden(arguments)}})});Ext.define("Ext.behavior.Draggable",{extend:"Ext.behavior.Behavior",requires:["Ext.util.Draggable"],constructor:function(){this.listeners={painted:"onComponentPainted",scope:this};this.callParent(arguments)},onComponentPainted:function(){this.draggable.refresh()},setConfig:function(c){var a=this.draggable,b=this.component;if(c){if(!a){b.setTranslatable(true);this.draggable=a=new Ext.util.Draggable(c);a.setTranslatable(b.getTranslatable());a.setElement(b.renderElement);a.on("destroy","onDraggableDestroy",this);if(b.isPainted()){this.onComponentPainted(b)}b.on(this.listeners)}else{if(Ext.isObject(c)){a.setConfig(c)}}}else{if(a){a.destroy()}}return this},getDraggable:function(){return this.draggable},onDraggableDestroy:function(){var a=this.component;delete this.draggable;a.un(this.listeners)},onComponentDestroy:function(){var a=this.draggable;if(a){a.destroy()}}});(function(a){Ext.define("Ext.Component",{extend:"Ext.AbstractComponent",alternateClassName:"Ext.lib.Component",mixins:["Ext.mixin.Traversable"],requires:["Ext.ComponentManager","Ext.XTemplate","Ext.dom.Element","Ext.behavior.Translatable","Ext.behavior.Draggable"],xtype:"component",observableType:"component",cachedConfig:{baseCls:null,cls:null,ui:null,margin:null,padding:null,border:null,styleHtmlCls:a+"html",styleHtmlContent:null,hidden:false},eventedConfig:{left:null,top:null,right:null,bottom:null,width:null,height:null,minWidth:null,minHeight:null,maxWidth:null,maxHeight:null,docked:null,centered:null,hidden:null,disabled:null},config:{style:null,html:null,draggable:null,translatable:null,droppable:null,renderTo:null,zIndex:null,tpl:null,enterAnimation:null,exitAnimation:null,showAnimation:null,hideAnimation:null,tplWriteMode:"overwrite",data:null,disabledCls:a+"item-disabled",contentEl:null,itemId:undefined,plugins:null},listenerOptionsRegex:/^(?:delegate|single|delay|buffer|args|prepend|element)$/,alignmentRegex:/^([a-z]+)-([a-z]+)(\?)?$/,isComponent:true,floating:false,rendered:false,dockPositions:{top:true,right:true,bottom:true,left:true},innerElement:null,element:null,template:[],constructor:function(c){var d=this,b=d.config,e;d.onInitializedListeners=[];d.initialConfig=c;if(c!==undefined&&"id" in c){e=c.id}else{if("id" in b){e=b.id}else{e=d.getId()}}d.id=e;d.setId(e);Ext.ComponentManager.register(d);d.initElement();d.beforeInitialize();d.initConfig(d.initialConfig);d.initialize();d.triggerInitialized();if("fullscreen" in d.config){d.fireEvent("fullscreen",d)}d.fireEvent("initialize",d)},beforeInitialize:Ext.emptyFn,initialize:Ext.emptyFn,getTemplate:function(){return this.template},getElementConfig:function(){return{reference:"element",children:this.getTemplate()}},triggerInitialized:function(){var c=this.onInitializedListeners,d=c.length,e,b;if(!this.initialized){this.initialized=true;if(d>0){for(b=0;b<d;b++){e=c[b];e.fn.call(e.scope,this)}c.length=0}}},onInitialized:function(d,c){var b=this.onInitializedListeners;if(!c){c=this}if(this.initialized){d.call(c,this)}else{b.push({fn:d,scope:c})}},renderTo:function(b,d){var f=this.renderElement.dom,e=Ext.getDom(b),c=Ext.getDom(d);if(e){if(c){e.insertBefore(f,c)}else{e.appendChild(f)}this.setRendered(Boolean(f.offsetParent))}},setParent:function(c){var b=this.parent;if(c&&b&&b!==c){b.remove(this,false)}this.parent=c;return this},applyPlugins:function(b){var d,c,e;if(!b){return b}b=[].concat(b);for(c=0,d=b.length;c<d;c++){e=b[c];if(Ext.isObject(e)&&e.ptype){Ext.Logger.deprecate("Using a ptype is now deprecated, please use type instead",1);e.type=e.ptype}b[c]=Ext.factory(e,"Ext.plugin.Plugin",null,"plugin")}return b},updatePlugins:function(e,b){var d,c;if(e){for(c=0,d=e.length;c<d;c++){e[c].init(this)}}if(b){for(c=0,d=b.length;c<d;c++){Ext.destroy(b[c])}}},updateRenderTo:function(b){this.renderTo(b)},updateStyle:function(b){this.element.dom.style.cssText+=b},updateBorder:function(b){this.element.setBorder(b)},updatePadding:function(b){this.innerElement.setPadding(b)},updateMargin:function(b){this.element.setMargin(b)},updateUi:function(b,d){var c=this.getBaseCls();if(c){if(d){this.element.removeCls(d,c)}if(b){this.element.addCls(b,c)}}},applyBaseCls:function(b){return b||a+this.xtype},updateBaseCls:function(b,c){var d=this,e=d.getUi();if(b){this.element.addCls(b);if(e){this.element.addCls(b,null,e)}}if(c){this.element.removeCls(c);if(e){this.element.removeCls(c,null,e)}}},addCls:function(b,h,j){var e=this.getCls(),g=(e)?e.slice():[],f,d,c;h=h||"";j=j||"";if(typeof b=="string"){g.push(h+b+j)}else{f=b.length;if(!g.length&&h===""&&j===""){g=b}else{for(d=0;d<f;d++){c=h+b[d]+j;if(g.indexOf(c)==-1){g.push(c)}}}}this.setCls(g)},removeCls:function(b,g,h){var d=this.getCls(),f=(d)?d.slice():[],e,c;g=g||"";h=h||"";if(typeof b=="string"){f=Ext.Array.remove(f,g+b+h)}else{e=b.length;for(c=0;c<e;c++){f=Ext.Array.remove(f,g+b[c]+h)}}this.setCls(f)},replaceCls:function(e,j,d,h){var k=this.getCls(),f=(k)?k.slice():[],g,c,b;d=d||"";h=h||"";if(typeof e=="string"){f=Ext.Array.remove(f,d+e+h)}else{if(e){g=e.length;for(c=0;c<g;c++){f=Ext.Array.remove(f,d+e[c]+h)}}}if(typeof j=="string"){f.push(d+j+h)}else{if(j){g=j.length;if(!f.length&&d===""&&h===""){f=j}else{for(c=0;c<g;c++){b=d+j[c]+h;if(f.indexOf(b)==-1){f.push(b)}}}}}this.setCls(f)},applyCls:function(b){if(typeof b=="string"){b=[b]}if(!b||!b.length){b=null}return b},updateCls:function(c,b){this.element.replaceCls(b,c)},updateStyleHtmlCls:function(d,b){var e=this.innerHtmlElement,c=this.innerElement;if(this.getStyleHtmlContent()&&b){if(e){e.replaceCls(b,d)}else{c.replaceCls(b,d)}}},applyStyleHtmlContent:function(b){return Boolean(b)},updateStyleHtmlContent:function(d){var b=this.getStyleHtmlCls(),c=this.innerElement,e=this.innerHtmlElement;if(d){if(e){e.addCls(b)}else{c.addCls(b)}}else{if(e){e.removeCls(b)}else{c.addCls(b)}}},applyContentEl:function(b){if(b){return Ext.get(b)}},updateContentEl:function(b,c){if(c){c.hide();Ext.getBody().append(c)}if(b){this.setHtml(b.dom);b.show()}},getSize:function(){return{width:this.getWidth(),height:this.getHeight()}},isCentered:function(){return Boolean(this.getCentered())},isFloating:function(){return this.floating},isDocked:function(){return Boolean(this.getDocked())},isInnerItem:function(){var b=this;return !b.isCentered()&&!b.isFloating()&&!b.isDocked()},filterPositionValue:function(b){if(b===""||b==="auto"){b=null}return b},applyTop:function(b){return this.filterPositionValue(b)},applyRight:function(b){return this.filterPositionValue(b)},applyBottom:function(b){return this.filterPositionValue(b)},applyLeft:function(b){return this.filterPositionValue(b)},doSetTop:function(b){this.updateFloating();this.element.setTop(b)},doSetRight:function(b){this.updateFloating();this.element.setRight(b)},doSetBottom:function(b){this.updateFloating();this.element.setBottom(b)},doSetLeft:function(b){this.updateFloating();this.element.setLeft(b)},doSetWidth:function(b){this.element.setWidth(b)},doSetHeight:function(b){this.element.setHeight(b)},doSetMinWidth:function(b){this.element.setMinWidth(b)},doSetMinHeight:function(b){this.element.setMinHeight(b)},doSetMaxWidth:function(b){this.element.setMaxWidth(b)},doSetMaxHeight:function(b){this.element.setMaxHeight(b)},applyCentered:function(b){b=Boolean(b);if(b){if(this.isFloating()){this.resetFloating()}if(this.isDocked()){this.setDocked(false)}}return b},doSetCentered:Ext.emptyFn,applyDocked:function(b){if(b){if(!this.dockPositions[b]){Ext.Logger.error("Invalid docking position of '"+b+"', must be either 'top', 'right', 'bottom', 'left' or `null` (for no docking)",this);return}if(this.isFloating()){this.resetFloating()}if(this.isCentered()){this.setCentered(false)}}return b},doSetDocked:Ext.emptyFn,resetFloating:function(){this.setTop(null);this.setRight(null);this.setBottom(null);this.setLeft(null)},updateFloating:function(){var b=true;if(this.getTop()===null&&this.getBottom()===null&&this.getRight()===null&&this.getLeft()===null){b=false}if(b!==this.floating){if(b){if(this.isCentered()){this.setCentered(false)}if(this.isDocked()){this.setDocked(false)}}this.floating=b;this.fireEvent("floatingchange",this,b)}},applyDisabled:function(b){return Boolean(b)},doSetDisabled:function(b){this.element[b?"addCls":"removeCls"](this.getDisabledCls())},disable:function(){this.setDisabled(true)},enable:function(){this.setDisabled(false)},isDisabled:function(){return this.getDisabled()},applyZIndex:function(b){if(b!==null){b=Number(b);if(isNaN(b)){b=null}}return b},updateZIndex:function(c){var b=this.element.dom.style;if(c!==null){b.setProperty("z-index",c,"important")}else{b.removeProperty("z-index")}},getInnerHtmlElement:function(){var b=this.innerHtmlElement,c=this.getStyleHtmlCls();if(!b||!b.dom||!b.dom.parentNode){this.innerHtmlElement=b=this.innerElement.createChild({cls:"x-innerhtml "});if(this.getStyleHtmlContent()){this.innerHtmlElement.addCls(c);this.innerElement.removeCls(c)}}return b},updateHtml:function(b){var c=this.getInnerHtmlElement();if(Ext.isElement(b)){c.setHtml("");c.append(b)}else{c.setHtml(b)}},applyHidden:function(b){return Boolean(b)},doSetHidden:function(c){var b=this.renderElement;if(c){b.hide()}else{b.show()}this.fireEvent(c?"hide":"show",this)},isHidden:function(){return this.getHidden()},hide:function(b){if(!this.getHidden()){if(b===undefined){b=this.getHideAnimation()}if(b&&!b.isComponent){if(b===true){b="fadeOut"}this.onBefore({hiddenchange:"animateFn",scope:this,single:true,args:[b]})}this.setHidden(true)}return this},show:function(b){if(this.getHidden()){if(b===undefined){b=this.getShowAnimation()}if(b&&!b.isComponent){if(b===true){b="fadeIn"}this.onBefore({hiddenchange:"animateFn",scope:this,single:true,args:[b]})}this.setHidden(false)}return this},animateFn:function(g,e,h,d,c,b){if(g){var f=new Ext.fx.Animation(g);f.setElement(e.element);if(h){f.setOnEnd(function(){b.resume()});b.pause()}Ext.Animator.run(f)}},setVisibility:function(b){this.renderElement.setVisibility(b)},isRendered:function(){return this.rendered},isPainted:function(){return this.renderElement.isPainted()},applyTpl:function(b){return(Ext.isObject(b)&&b.isTemplate)?b:new Ext.XTemplate(b)},applyData:function(b){if(Ext.isObject(b)){return Ext.apply({},b)}return b},updateData:function(d){var e=this;if(d){var c=e.getTpl(),b=e.getTplWriteMode();if(c){c[b](e.getInnerHtmlElement(),d)}this.fireEvent("updatedata",e,d)}},applyItemId:function(b){return b||this.getId()},isXType:function(c,b){if(b){return this.xtypes.indexOf(c)!=-1}return Boolean(this.xtypesMap[c])},getXTypes:function(){return this.xtypesChain.join("/")},getDraggableBehavior:function(){var b=this.draggableBehavior;if(!b){b=this.draggableBehavior=new Ext.behavior.Draggable(this)}return b},applyDraggable:function(b){this.getDraggableBehavior().setConfig(b)},getDraggable:function(){return this.getDraggableBehavior().getDraggable()},getTranslatableBehavior:function(){var b=this.translatableBehavior;if(!b){b=this.translatableBehavior=new Ext.behavior.Translatable(this)}return b},applyTranslatable:function(b){this.getTranslatableBehavior().setConfig(b)},getTranslatable:function(){return this.getTranslatableBehavior().getTranslatable()},translate:function(){var b=this.getTranslatable();if(!b){this.setTranslatable(true);b=this.getTranslatable()}b.translate.apply(b,arguments)},setRendered:function(c){var b=this.rendered;if(c!==b){this.rendered=c;return true}return false},setSize:function(c,b){if(c!=undefined){this.setWidth(c)}if(b!=undefined){this.setHeight(b)}},doAddListener:function(d,f,e,c,b){if(c&&"element" in c){if(this.referenceList.indexOf(c.element)===-1){Ext.Logger.error("Adding event listener with an invalid element reference of '"+c.element+"' for this component. Available values are: '"+this.referenceList.join("', '")+"'",this)}this[c.element].doAddListener(d,f,e||this,c,b)}return this.callParent(arguments)},doRemoveListener:function(d,f,e,c,b){if(c&&"element" in c){if(this.referenceList.indexOf(c.element)===-1){Ext.Logger.error("Removing event listener with an invalid element reference of '"+c.element+"' for this component. Available values are: '"+this.referenceList.join('", "')+"'",this)}this[c.element].doRemoveListener(d,f,e||this,c,b)}return this.callParent(arguments)},showBy:function(d,f){var c=Ext.Array.from(arguments);if(!this.currentShowByArgs){var b=Ext.Viewport,e=this.getParent();this.setVisibility(false);if(e!==b){b.add(this)}this.show();this.on("erased","onShowByErased",this,{single:true});b.on("resize","refreshShowBy",this)}this.currentShowByArgs=c;this.alignTo.apply(this,arguments);this.setVisibility(true)},refreshShowBy:function(){this.alignTo.apply(this,this.currentShowByArgs)},onShowByErased:function(){delete this.currentShowByArgs;Ext.Viewport.un("resize","refreshShowBy",this)},alignTo:function(l,h){var f=l.isComponent?l.renderElement:l,c=this.renderElement,n=f.getPageBox(),x=this.getParent().element.getPageBox(),k=c.getPageBox(),u=n.height,m=n.width,p=k.height,r=k.width;if(!h||h==="auto"){if(x.bottom-n.bottom<p){if(n.top-x.top<p){if(n.left-x.left<r){h="cl-cr?"}else{h="cr-cl?"}}else{h="bc-tc?"}}else{h="tc-bc?"}}var b=h.match(this.alignmentRegex);if(!b){Ext.Logger.error("Invalid alignment value of '"+h+"'")}var s=b[1].split(""),d=b[2].split(""),v=(b[3]==="?"),g=s[0],q=s[1]||g,j=d[0],i=d[1]||j,o=n.top,e=n.left,t,w;switch(g){case"t":switch(j){case"c":o+=u/2;break;case"b":o+=u}break;case"b":switch(j){case"c":o-=(p-(u/2));break;case"t":o-=p;break;case"b":o-=p-u}break;case"c":switch(j){case"t":o-=(p/2);break;case"c":o-=((p/2)-(u/2));break;case"b":o-=((p/2)-u)}break}switch(q){case"l":switch(i){case"c":e+=m/2;break;case"r":e+=m}break;case"r":switch(i){case"r":e-=(r-m);break;case"c":e-=(r-(m/2));break;case"l":e-=r}break;case"c":switch(i){case"l":e-=(r/2);break;case"c":e-=((r/2)-(m/2));break;case"r":e-=((r/2)-m)}break}if(v){t=(x.left+x.width)-r;w=(x.top+x.height)-p;e=Math.max(x.left,Math.min(t,e));o=Math.max(x.top,Math.min(w,o))}this.setLeft(e);this.setTop(o)},up:function(c){var b=this.parent;if(c){for(;b;b=b.parent){if(Ext.ComponentQuery.is(b,c)){return b}}}return b},getBubbleTarget:function(){return this.getParent()},destroy:function(){this.destroy=Ext.emptyFn;var e=this.getParent(),c=this.referenceList,d,f,b;if(e){e.remove(this,false)}for(d=0,f=c.length;d<f;d++){b=c[d];this[b].destroy();delete this[b]}Ext.destroy(this.innerHtmlElement,this.getTranslatable());Ext.ComponentManager.unregister(this);this.callParent()},onClassExtended:function(d,h,c){var f=this,b=f.prototype.config,e=h.config||{},g;for(g in b){if(g in h){e[g]=h[g];delete h[g];console.warn(g+" is deprecated as a property directly on the Component prototype. Please put it inside the config object.")}}h.config=e}},function(){var b=Ext.emptyFn;this.override({constructor:function(d){var c;if(d){if(d.enabled){Ext.Logger.deprecate("'enabled' config is deprecated, please use 'disabled' config instead",this);d.disabled=!d.enabled}if((d.scroll||this.config.scroll||this.scrollable||this.config.scrollable)&&!this.isContainer){Ext.Logger.deprecate("You are no longer able to scroll a component. Please use a Ext.Container instead.",this);delete d.scrollable;delete d.scroll}if(d.dock){Ext.Logger.deprecate("'dock' config for docked items is deprecated, please use 'docked' instead");d.docked=d.dock;delete d.dock}if(d.enterAnimation){Ext.Logger.deprecate("'enterAnimation' config for Components is deprecated, please use 'showAnimation' instead");d.showAnimation=d.enterAnimation;delete d.enterAnimation}if(d.exitAnimation){Ext.Logger.deprecate("'exitAnimation' config for Components is deprecated, please use 'hideAnimation' instead");d.hideAnimation=d.exitAnimation;delete d.exitAnimation}if(d.componentCls){Ext.Logger.deprecate("'componentCls' config is deprecated, please use 'cls' config instead",this);d.cls=d.componentCls}if(d.floating){Ext.Logger.deprecate("'floating' config is deprecated, please set 'left', 'right', 'top' or 'bottom' config instead",this);d.left=d.left||0}for(c in d){if(d.hasOwnProperty(c)&&c!=="xtype"&&c!=="xclass"&&!this.hasConfig(c)){this[c]=d[c]}}if(d.layoutOnOrientationChange){Ext.Logger.deprecate("'layoutOnOrientationChange' is fully deprecated and no longer used");delete d.layoutOnOrientationChange}if(d.monitorOrientation){Ext.Logger.deprecate("'monitorOrientation' is deprecated. If you need to monitor the orientaiton, please use the 'resize' event.");delete d.monitorOrientation}}this.callParent(arguments);if(this.onRender!==b){Ext.Logger.deprecate("onRender() is deprecated, please put your code inside initialize() instead",this);this.onRender()}if(this.afterRender!==b){Ext.Logger.deprecate("afterRender() is deprecated, please put your code inside initialize() instead",this);this.afterRender()}if(this.initEvents!==b){Ext.Logger.deprecate("initEvents() is deprecated, please put your code inside initialize() instead",this);this.initEvents()}if(this.initComponent!==b){Ext.Logger.deprecate("initComponent() is deprecated, please put your code inside initialize() instead",this);this.initComponent()}if(this.setOrientation!==b){Ext.Logger.deprecate("setOrientation() is deprecated",this);this.setOrientation()}},onRender:b,afterRender:b,initEvents:b,initComponent:b,setOrientation:b,show:function(){if(this.renderElement.dom){var c=this.renderElement.dom.parentNode;if(c&&c.nodeType==11){Ext.Logger.deprecate("Call show() on a component that doesn't currently belong to any container. Please add it to the the Viewport first, i.e: Ext.Viewport.add(component);",this);Ext.Viewport.add(this)}}return this.callParent(arguments)},doAddListener:function(e,g,f,d,c){switch(e){case"render":Ext.Logger.warn("The render event on Components is deprecated. Please use the painted event. Please refer to: http://bit.ly/xgv3K1 for more details.",this);return this;break}return this.callParent(arguments)},addListener:function(c){if(arguments.length===1&&Ext.isObject(c)&&(("el" in c)||("body" in c))){Ext.Logger.error("Adding component element listeners using the old format is no longer supported. Please refer to: http://bit.ly/xHCyfa for more details.",this)}return this.callParent(arguments)},getEl:function(){Ext.Logger.deprecate("getEl() is deprecated, please access the Component's element from the 'element' property instead",this);return this.renderElement}});Ext.deprecateClassMembers(this,{el:"element",body:"element",outer:"renderElement",ownerCt:"parent",update:"setHtml"})})})(Ext.baseCSSPrefix);Ext.define("Ext.Button",{extend:"Ext.Component",xtype:"button",cachedConfig:{pressedCls:Ext.baseCSSPrefix+"button-pressed",badgeCls:Ext.baseCSSPrefix+"badge",hasBadgeCls:Ext.baseCSSPrefix+"hasbadge",labelCls:Ext.baseCSSPrefix+"button-label",iconMaskCls:Ext.baseCSSPrefix+"icon-mask"},config:{badgeText:null,text:null,iconCls:null,icon:null,iconAlign:"left",pressedDelay:0,iconMask:null,handler:null,scope:null,autoEvent:null,ui:"normal",baseCls:Ext.baseCSSPrefix+"button"},template:[{tag:"span",reference:"badgeElement",hidden:true},{tag:"span",className:Ext.baseCSSPrefix+"button-icon",reference:"iconElement",hidden:true},{tag:"span",reference:"textElement",hidden:true}],initialize:function(){this.callParent();this.element.on({scope:this,tap:"onTap",touchstart:"onPress",touchmove:"onTouchMove",touchend:"onRelease"})},updateBadgeText:function(c){var a=this.element,b=this.badgeElement;if(c){b.show();b.setText(c)}else{b.hide()}a[(c)?"addCls":"removeCls"](this.getHasBadgeCls())},updateText:function(b){var a=this.textElement;if(b){a.show();a.setHtml(b)}else{a.hide()}},updateHtml:function(b){var a=this.textElement;if(b){a.show();a.setHtml(b)}else{a.hide()}},updateBadgeCls:function(b,a){this.badgeElement.replaceCls(a,b)},updateHasBadgeCls:function(b,c){var a=this.element;if(a.hasCls(c)){a.replaceCls(c,b)}},updateLabelCls:function(b,a){this.textElement.replaceCls(a,b)},updatePressedCls:function(b,c){var a=this.element;if(a.hasCls(c)){a.replaceCls(c,b)}},updateIcon:function(b){var c=this,a=c.iconElement;if(b){c.showIconElement();a.setStyle("background-image",b?"url("+b+")":"");c.refreshIconAlign();c.refreshIconMask()}else{c.hideIconElement();c.setIconAlign(false)}},updateIconCls:function(c,a){var d=this,b=d.iconElement;if(c){d.showIconElement();b.replaceCls(a,c);d.refreshIconAlign();d.refreshIconMask()}else{d.hideIconElement();d.setIconAlign(false)}},updateIconAlign:function(d,c){var b=this.element,a=Ext.baseCSSPrefix+"iconalign-";if(!this.getText()){d="center"}b.removeCls(a+"center");b.removeCls(a+c);if(this.getIcon()||this.getIconCls()){b.addCls(a+d)}},refreshIconAlign:function(){this.updateIconAlign(this.getIconAlign())},updateIconMaskCls:function(c,b){var a=this.iconElement;if(this.getIconMask()){a.replaceCls(b,c)}},updateIconMask:function(a){this.iconElement[a?"addCls":"removeCls"](this.getIconMaskCls())},refreshIconMask:function(){this.updateIconMask(this.getIconMask())},applyAutoEvent:function(b){var a=this;if(typeof b=="string"){b={name:b,scope:a.scope||a}}return b},updateAutoEvent:function(c){var a=c.name,b=c.scope;this.setHandler(function(){b.fireEvent(a,b,this)});this.setScope(b)},hideIconElement:function(){this.iconElement.hide()},showIconElement:function(){this.iconElement.show()},applyUi:function(a){if(a&&Ext.isString(a)){var b=a.split("-");if(b&&(b[1]=="back"||b[1]=="forward")){return b}}return a},getUi:function(){var a=this._ui;if(Ext.isArray(a)){return a.join("-")}return a},applyPressedDelay:function(a){if(Ext.isNumber(a)){return a}return(a)?100:0},onPress:function(){var a=this.element,c=this.getPressedDelay(),b=this.getPressedCls();if(!this.getDisabled()){this.isPressed=true;if(this.hasOwnProperty("releasedTimeout")){clearTimeout(this.releasedTimeout);delete this.releasedTimeout}if(c>0){this.pressedTimeout=setTimeout(function(){if(a){a.addCls(b)}},c)}else{a.addCls(b)}}},onTouchMove:function(a){return},onRelease:function(a){this.fireAction("release",[this,a],"doRelease")},doRelease:function(a,b){if(!a.isPressed){return}a.isPressed=true;if(a.hasOwnProperty("pressedTimeout")){clearTimeout(a.pressedTimeout);delete a.pressedTimeout}a.releasedTimeout=setTimeout(function(){if(a&&a.element){a.element.removeCls(a.getPressedCls())}},10)},onTap:function(a){if(this.getDisabled()){return false}this.fireAction("tap",[this,a],"doTap")},doTap:function(c,d){var b=c.getHandler(),a=c.getScope()||c;if(!b){return}if(typeof b=="string"){b=a[b]}d.preventDefault();b.apply(a,arguments)}},function(){Ext.deprecateClassMethod(this,"setBadge",this.prototype.setBadgeText,"'setBadge()' is deprecated, please use setBadgeText()");Ext.deprecateClassMethod(this,"setIconClass",this.prototype.setIconCls,"'setIconClass()' is deprecated, please use setIconCls()");this.override({constructor:function(a){if(a){if(a.hasOwnProperty("badge")){Ext.Logger.deprecate("'badge' config is deprecated, please use 'badgeText' config instead",this);a.badgeText=a.badge}}this.callParent([a])}})});Ext.define("Ext.Title",{extend:"Ext.Component",xtype:"title",config:{baseCls:"x-title",title:""},updateTitle:function(a){this.setHtml(a)}});Ext.define("Ext.Spacer",{extend:"Ext.Component",alias:"widget.spacer",config:{},constructor:function(a){a=a||{};if(!a.width){a.flex=1}this.callParent([a])}});Ext.define("Ext.Mask",{extend:"Ext.Component",xtype:"mask",config:{baseCls:Ext.baseCSSPrefix+"mask",transparent:false,top:0,left:0,right:0,bottom:0},initialize:function(){this.callParent();this.on({painted:"onPainted",erased:"onErased"})},onPainted:function(){this.element.on("*","onEvent",this)},onErased:function(){this.element.un("*","onEvent",this)},onEvent:function(b){var a=arguments[arguments.length-1];if(a.info.eventName==="tap"){this.fireEvent("tap",this,b);return false}if(b&&b.stopEvent){b.stopEvent()}return false},updateTransparent:function(a){this[a?"addCls":"removeCls"](this.getBaseCls()+"-transparent")}});Ext.define("Ext.Decorator",{extend:"Ext.Component",isDecorator:true,config:{component:{}},statics:{generateProxySetter:function(a){return function(c){var b=this.getComponent();b[a].call(b,c);return this}},generateProxyGetter:function(a){return function(){var b=this.getComponent();return b[a].call(b)}}},onClassExtended:function(c,e){if(!e.hasOwnProperty("proxyConfig")){return}var f=Ext.Class,i=e.proxyConfig,d=e.config;e.config=(d)?Ext.applyIf(d,i):i;var b,h,g,a;for(b in i){if(i.hasOwnProperty(b)){h=f.getConfigNameMap(b);g=h.set;a=h.get;e[g]=this.generateProxySetter(g);e[a]=this.generateProxyGetter(a)}}},applyComponent:function(a){return Ext.factory(a,Ext.Component)},updateComponent:function(a,b){if(b){if(this.isRendered()&&b.setRendered(false)){b.fireAction("renderedchange",[this,b,false],"doUnsetComponent",this,{args:[b]})}else{this.doUnsetComponent(b)}}if(a){if(this.isRendered()&&a.setRendered(true)){a.fireAction("renderedchange",[this,a,true],"doSetComponent",this,{args:[a]})}else{this.doSetComponent(a)}}},doUnsetComponent:function(a){this.innerElement.dom.removeChild(a.renderElement.dom)},doSetComponent:function(a){this.innerElement.dom.appendChild(a.renderElement.dom)},setRendered:function(b){var a;if(this.callParent(arguments)){a=this.getComponent();if(a){a.setRendered(b)}return true}return false},setDisabled:function(a){this.callParent(arguments);this.getComponent().setDisabled(a)},destroy:function(){Ext.destroy(this.getComponent());this.callParent()}});Ext.define("Ext.field.Input",{extend:"Ext.Component",xtype:"input",tag:"input",cachedConfig:{cls:Ext.baseCSSPrefix+"form-field",focusCls:Ext.baseCSSPrefix+"field-focus",maskCls:Ext.baseCSSPrefix+"field-mask",useMask:"auto",type:"text",checked:false},config:{baseCls:Ext.baseCSSPrefix+"field-input",name:null,value:null,isFocused:false,tabIndex:null,placeHolder:null,minValue:null,maxValue:null,stepValue:null,maxLength:null,autoComplete:null,autoCapitalize:null,autoCorrect:null,readOnly:null,maxRows:null,startValue:false},getTemplate:function(){var a=[{reference:"input",tag:this.tag},{reference:"clearIcon",cls:"x-clear-icon"}];a.push({reference:"mask",classList:[this.config.maskCls]});return a},initElement:function(){var a=this;a.callParent();a.input.on({scope:a,keyup:"onKeyUp",focus:"onFocus",blur:"onBlur",paste:"onPaste"});a.mask.on({tap:"onMaskTap",scope:a});if(a.clearIcon){a.clearIcon.on({tap:"onClearIconTap",scope:a})}},applyUseMask:function(a){if(a==="auto"){a=Ext.os.is.iOS&&Ext.os.version.lt("5")}return Boolean(a)},updateUseMask:function(a){this.mask[a?"show":"hide"]()},updateFieldAttribute:function(b,c){var a=this.input;if(c){a.dom.setAttribute(b,c)}else{a.dom.removeAttribute(b)}},updateCls:function(b,a){this.input.addCls(Ext.baseCSSPrefix+"input-el");this.input.replaceCls(a,b)},updateType:function(a,c){var b=Ext.baseCSSPrefix+"input-";this.input.replaceCls(b+c,b+a);this.updateFieldAttribute("type",a)},updateName:function(a){this.updateFieldAttribute("name",a)},getValue:function(){var a=this.input;if(a){this._value=a.dom.value}return this._value},applyValue:function(a){return(Ext.isEmpty(a))?"":a},updateValue:function(b){var a=this.input;if(a){a.dom.value=b}},setValue:function(a){this.updateValue(this.applyValue(a));return this},applyTabIndex:function(a){if(a!==null&&typeof a!="number"){throw new Error("Ext.field.Field: [applyTabIndex] trying to pass a value which is not a number")}return a},updateTabIndex:function(a){this.updateFieldAttribute("tabIndex",a)},testAutoFn:function(a){return[true,"on"].indexOf(a)!==-1},applyMaxLength:function(a){if(a!==null&&typeof a!="number"){throw new Error("Ext.field.Text: [applyMaxLength] trying to pass a value which is not a number")}return a},updateMaxLength:function(a){this.updateFieldAttribute("maxlength",a)},updatePlaceHolder:function(a){this.updateFieldAttribute("placeholder",a)},applyAutoComplete:function(a){return this.testAutoFn(a)},updateAutoComplete:function(a){var b=a?"on":"off";this.updateFieldAttribute("autocomplete",b)},applyAutoCapitalize:function(a){return this.testAutoFn(a)},updateAutoCapitalize:function(b){var a=b?"on":"off";this.updateFieldAttribute("autocapitalize",a)},applyAutoCorrect:function(a){return this.testAutoFn(a)},updateAutoCorrect:function(a){var b=a?"on":"off";this.updateFieldAttribute("autocorrect",b)},updateMinValue:function(a){this.updateFieldAttribute("min",a)},updateMaxValue:function(a){this.updateFieldAttribute("max",a)},updateStepValue:function(a){this.updateFieldAttribute("step",a)},checkedRe:/^(true|1|on)/i,getChecked:function(){var a=this.input,b;if(a){b=a.dom.checked;this._checked=b}return b},applyChecked:function(a){return !!this.checkedRe.test(String(a))},setChecked:function(a){this.updateChecked(this.applyChecked(a));this._checked=a},updateChecked:function(a){this.input.dom.checked=a},updateReadOnly:function(a){this.updateFieldAttribute("readonly",a)},applyMaxRows:function(a){if(a!==null&&typeof a!=="number"){throw new Error("Ext.field.Input: [applyMaxRows] trying to pass a value which is not a number")}},updateMaxRows:function(a){this.updateFieldAttribute("rows",a)},doSetDisabled:function(a){this.callParent(arguments);this.input.dom.disabled=a;if(!a){this.blur()}},isDirty:function(){if(this.getDisabled()){return false}return String(this.getValue())!==String(this.originalValue)},reset:function(){this.setValue(this.originalValue)},onMaskTap:function(a){this.fireAction("masktap",[this,a],"doMaskTap")},doMaskTap:function(a,b){if(a.getDisabled()){return false}a.maskCorrectionTimer=Ext.defer(a.showMask,1000,a);a.hideMask()},showMask:function(a){if(this.mask){this.mask.setStyle("display","block")}},hideMask:function(a){if(this.mask){this.mask.setStyle("display","none")}},focus:function(){var b=this,a=b.input;if(a&&a.dom.focus){a.dom.focus()}return b},blur:function(){var b=this,a=this.input;if(a&&a.dom.blur){a.dom.blur()}return b},select:function(){var b=this,a=b.input;if(a&&a.dom.setSelectionRange){a.dom.setSelectionRange(0,9999)}return b},onFocus:function(a){this.fireAction("focus",[a],"doFocus")},doFocus:function(b){var a=this;if(a.mask){if(a.maskCorrectionTimer){clearTimeout(a.maskCorrectionTimer)}a.hideMask()}if(!a.getIsFocused()){a.setIsFocused(true);a.setStartValue(a.getValue())}},onBlur:function(a){this.fireAction("blur",[a],"doBlur")},doBlur:function(d){var b=this,c=b.getValue(),a=b.getStartValue();b.setIsFocused(false);if(String(c)!=String(a)){b.onChange(b,c,a)}b.showMask()},onClearIconTap:function(c){var a=this.getValue(),b;this.clearIcon.hide();this.fireEvent("clearicontap",this,c);b=this.getValue();if(String(b)!=String(a)){this.onChange(this,b,a)}},onClick:function(a){this.fireEvent("click",a)},onChange:function(b,c,a){this.fireEvent("change",b,c,a)},onKeyUp:function(a){this.fireEvent("keyup",a)},onPaste:function(a){this.fireEvent("paste",a)},onMouseDown:function(a){this.fireEvent("mousedown",a)}});Ext.define("Ext.field.Field",{extend:"Ext.Decorator",alternateClassName:"Ext.form.Field",xtype:"field",requires:["Ext.field.Input"],isField:true,isFormField:true,config:{baseCls:Ext.baseCSSPrefix+"field",label:null,labelAlign:"left",labelWidth:"30%",clearIcon:null,required:false,inputType:null,name:null,value:null,tabIndex:null},cachedConfig:{labelCls:null,requiredCls:Ext.baseCSSPrefix+"field-required",inputCls:null},getElementConfig:function(){var a=Ext.baseCSSPrefix;return{reference:"element",className:"x-container",children:[{reference:"label",cls:a+"form-label",children:[{reference:"labelspan",tag:"span"}]},{reference:"innerElement",cls:a+"component-outer"}]}},updateLabel:function(b,d){var a=this.renderElement,c=Ext.baseCSSPrefix;if(b){this.label.down("span").setHtml(b);a.addCls(c+"field-labeled")}else{a.removeCls(c+"field-labeled")}},updateLabelAlign:function(b,c){var a=this.renderElement,d=Ext.baseCSSPrefix;if(b){a.addCls(d+"label-align-"+b);if(b=="top"){this.label.setWidth("100%")}else{this.updateLabelWidth(this.getLabelWidth())}}if(c){a.removeCls(d+"label-align-"+c)}},updateLabelCls:function(a,b){if(a){this.label.addCls(a)}if(b){this.label.removeCls(b)}},updateLabelWidth:function(a){if(a){if(this.getLabelAlign()=="top"){this.label.setWidth("100%")}else{this.label.setWidth(a)}}},updateRequired:function(a){this.renderElement[a?"addCls":"removeCls"](this.getRequiredCls())},updateRequiredCls:function(a,b){if(this.getRequired()){this.renderElement.replaceCls(b,a)}},initialize:function(){var a=this;a.callParent();a.doInitValue()},doInitValue:function(){this.originalValue=this.getInitialConfig().value},reset:function(){this.setValue(this.originalValue);return this},isDirty:function(){return false}},function(){var a=this.prototype;this.override({constructor:function(b){b=b||{};var c=function(e,f,d){if(b.hasOwnProperty(e)){if(f){b[f]=b[f]||{};b[f][(d)?d:e]=b[f][(d)?d:e]||b[e]}else{b[d]=b[e]}delete b[e];Ext.Logger.deprecate("'"+e+"' config is deprecated, use the '"+((f)?f+".":"")+((d)?d:e)+"' config instead",2)}};c("fieldCls",null,"inputCls");c("fieldLabel",null,"label");c("useClearIcon",null,"clearIcon");if(b.hasOwnProperty("autoCreateField")){Ext.Logger.deprecate("'autoCreateField' config is deprecated. If you are subclassing Ext.field.Field and you do not want a Ext.field.Input, set the 'input' config to false.",this)}this.callOverridden(arguments)}});Ext.Object.defineProperty(a,"fieldEl",{get:function(){Ext.Logger.deprecate("'fieldEl' is deprecated, please use getInput() to get an instance of Ext.field.Field instead",this);return this.getInput().input}});Ext.Object.defineProperty(a,"labelEl",{get:function(){Ext.Logger.deprecate("'labelEl' is deprecated",this);return this.getLabel().element}})});Ext.define("Ext.field.Text",{extend:"Ext.field.Field",xtype:"textfield",alternateClassName:"Ext.form.Text",config:{ui:"text",clearIcon:true,placeHolder:null,maxLength:null,autoComplete:null,autoCapitalize:null,autoCorrect:null,readOnly:null,component:{xtype:"input",type:"text"}},initialize:function(){var a=this;a.callParent();a.getComponent().on({scope:this,keyup:"onKeyUp",change:"onChange",focus:"onFocus",blur:"onBlur",paste:"onPaste",mousedown:"onMouseDown",clearicontap:"onClearIconTap"});a.originalValue=a.originalValue||"";a.getComponent().originalValue=a.originalValue},updateValue:function(b){var a=this.getComponent();if(a){a.setValue(b)}this[b?"showClearIcon":"hideClearIcon"]()},getValue:function(){var a=this;a._value=a.getComponent().getValue();return a._value},updatePlaceHolder:function(a){this.getComponent().setPlaceHolder(a)},updateMaxLength:function(a){this.getComponent().setMaxLength(a)},updateAutoComplete:function(a){this.getComponent().setAutoComplete(a)},updateAutoCapitalize:function(a){this.getComponent().setAutoCapitalize(a)},updateAutoCorrect:function(a){this.getComponent().setAutoCorrect(a)},updateReadOnly:function(a){if(a){this.hideClearIcon()}else{this.showClearIcon()}this.getComponent().setReadOnly(a)},updateInputType:function(a){var b=this.getComponent();if(b){b.setType(a)}},updateName:function(a){var b=this.getComponent();if(b){b.setName(a)}},updateTabIndex:function(b){var a=this.getComponent();if(a){a.setTabIndex(b)}},updateInputCls:function(a,b){var c=this.getComponent();if(c){c.replaceCls(b,a)}},doSetDisabled:function(b){var c=this;c.callParent(arguments);var a=c.getComponent();if(a){a.setDisabled(b)}if(b){c.hideClearIcon()}else{c.showClearIcon()}},showClearIcon:function(){var a=this;if(!a.getDisabled()&&!a.getReadOnly()&&a.getValue()&&a.getClearIcon()){a.element.addCls(Ext.baseCSSPrefix+"field-clearable")}return a},hideClearIcon:function(){if(this.getClearIcon()){this.element.removeCls(Ext.baseCSSPrefix+"field-clearable")}},onKeyUp:function(a){this.fireAction("keyup",[this,a],"doKeyUp")},doKeyUp:function(a,c){var b=a.getValue();a[b?"showClearIcon":"hideClearIcon"]();if(c.browserEvent.keyCode===13){a.fireAction("action",[a,c],"doAction")}},doAction:Ext.emptyFn,onClearIconTap:function(a){this.fireAction("clearicontap",[this,a],"doClearIconTap")},doClearIconTap:function(a,b){a.setValue("")},onChange:function(b,c,a){b.fireEvent("change",this,c,a)},onFocus:function(a){this.isFocused=true;this.fireEvent("focus",this,a)},onBlur:function(b){var a=this;this.isFocused=false;a.fireEvent("blur",a,b);setTimeout(function(){a.isFocused=false},50)},onPaste:function(a){this.fireEvent("paste",this,a)},onMouseDown:function(a){this.fireEvent("mousedown",this,a)},focus:function(){this.getComponent().focus();return this},blur:function(){this.getComponent().blur();return this},select:function(){this.getComponent().select();return this},reset:function(){this.getComponent().reset();this.getValue();this[this._value?"showClearIcon":"hideClearIcon"]()},isDirty:function(){var a=this.getComponent();if(a){return a.isDirty()}return false}});Ext.define("Ext.field.TextAreaInput",{extend:"Ext.field.Input",xtype:"textareainput",tag:"textarea"});Ext.define("Ext.field.TextArea",{extend:"Ext.field.Text",xtype:"textareafield",requires:["Ext.field.TextAreaInput"],alternateClassName:"Ext.form.TextArea",config:{ui:"textarea",autoCapitalize:false,component:{xtype:"textareainput"},maxRows:null},updateMaxRows:function(a){this.getComponent().setMaxRows(a)}});Ext.define("Ext.scroll.indicator.Abstract",{extend:"Ext.Component",config:{baseCls:"x-scroll-indicator",axis:"x",value:0,length:null,hidden:true},cachedConfig:{ratio:1,barCls:"x-scroll-bar"},barElement:null,barLength:0,gapLength:0,getElementConfig:function(){return{reference:"barElement",children:[this.callParent()]}},applyRatio:function(a){if(isNaN(a)){a=1}return a},refresh:function(){var f=this.barElement,e=f.dom,c=this.getRatio(),b=this.getAxis(),a=(b==="x")?e.offsetWidth:e.offsetHeight,d=a*c;this.barLength=a;this.gapLength=a-d;this.setLength(d);this.updateValue(this.getValue())},updateBarCls:function(a){this.barElement.addCls(a)},updateAxis:function(a){this.element.addCls(this.getBaseCls(),null,a);this.barElement.addCls(this.getBarCls(),null,a)},updateValue:function(a){this.setOffset(this.gapLength*a)},doSetHidden:function(a){var b=this.element.dom.style;if(a){b.opacity="0"}else{b.opacity=""}},updateLength:function(b){var a=this.getAxis();if(a==="x"){this.element.setWidth(b)}else{this.element.setHeight(b)}},setOffset:function(c){var b=this.getAxis(),a=this.element;if(b==="x"){a.setLeft(c)}else{a.setTop(c)}}});Ext.define("Ext.scroll.indicator.ScrollPosition",{extend:"Ext.scroll.indicator.Abstract",config:{ui:"scrollposition"},getElementConfig:function(){var a=this.callParent(arguments);a.children.unshift({className:"x-scroll-bar-stretcher"});return a},updateValue:function(a){if(this.gapLength===0){if(a>1){a=a-1}this.setOffset(this.barLength*a)}else{this.setOffset(this.gapLength*a)}},setLength:function(e){var c=this.getAxis(),a=this.barLength,d=this.barElement.dom,b=this.element;this.callParent(arguments);if(c==="x"){d.scrollLeft=a;b.setLeft(a)}else{d.scrollTop=a;b.setTop(a)}},setOffset:function(d){var b=this.getAxis(),a=this.barLength,c=this.barElement.dom;d=a-d;if(b==="x"){c.scrollLeft=d}else{c.scrollTop=d}}});Ext.define("Ext.scroll.indicator.CssTransform",{extend:"Ext.scroll.indicator.Abstract",config:{ui:"csstransform"},getElementConfig:function(){var a=this.callParent();a.children[0].children=[{reference:"startElement"},{reference:"middleElement"},{reference:"endElement"}];return a},refresh:function(){var d=this.getAxis(),c=this.startElement.dom,a=this.endElement.dom,e=this.middleElement,b,f;if(d==="x"){b=c.offsetWidth;f=a.offsetWidth;e.setLeft(b)}else{b=c.offsetHeight;f=a.offsetHeight;e.setTop(b)}this.startElementLength=b;this.endElementLength=f;this.minLength=b+f;this.callParent()},applyLength:function(a){return Math.round(Math.max(this.minLength,a))},updateLength:function(c){var b=this.getAxis(),a=this.endElement.dom.style,e=this.middleElement.dom.style,d=this.endElementLength,g=c-d,f=g-this.startElementLength;if(b==="x"){a.webkitTransform="translate3d("+g+"px, 0, 0)";e.webkitTransform="translate3d(0, 0, 0) scaleX("+f+")"}else{a.webkitTransform="translate3d(0, "+g+"px, 0)";e.webkitTransform="translate3d(0, 0, 0) scaleY("+f+")"}},updateValue:function(f){var b=this.barLength,c=this.gapLength,d=this.getLength(),e,g,a;if(f<0){g=0;this.updateLength(this.applyLength(d+f*b))}else{if(f>1){a=Math.round((f-1)*b);e=this.applyLength(d-a);a=d-e;this.updateLength(e);g=c+a}else{g=c*f}}this.setOffset(g)},setOffset:function(c){var a=this.getAxis(),b=this.element.dom.style;c=Math.round(c);if(a==="x"){b.webkitTransform="translate3d("+c+"px, 0, 0)"}else{b.webkitTransform="translate3d(0, "+c+"px, 0)"}}});Ext.define("Ext.scroll.Indicator",{requires:["Ext.scroll.indicator.ScrollPosition","Ext.scroll.indicator.CssTransform"],alternateClassName:"Ext.util.Indicator",constructor:function(a){if(Ext.os.is.Android2){return new Ext.scroll.indicator.ScrollPosition(a)}else{return new Ext.scroll.indicator.CssTransform(a)}}});Ext.define("Ext.fx.easing.BoundMomentum",{extend:"Ext.fx.easing.Abstract",requires:["Ext.fx.easing.Momentum","Ext.fx.easing.Bounce"],config:{momentum:null,bounce:null,minMomentumValue:0,maxMomentumValue:0,minVelocity:0.01,startVelocity:0},applyMomentum:function(a,b){return Ext.factory(a,Ext.fx.easing.Momentum,b)},applyBounce:function(a,b){return Ext.factory(a,Ext.fx.easing.Bounce,b)},updateStartTime:function(a){this.getMomentum().setStartTime(a);this.callParent(arguments)},updateStartVelocity:function(a){this.getMomentum().setStartVelocity(a)},updateStartValue:function(a){this.getMomentum().setStartValue(a)},reset:function(){this.lastValue=null;this.isBouncingBack=false;this.isOutOfBound=false;return this.callParent(arguments)},getValue:function(){var a=this.getMomentum(),j=this.getBounce(),e=a.getStartVelocity(),f=e>0?1:-1,g=this.getMinMomentumValue(),d=this.getMaxMomentumValue(),c=(f==1)?d:g,h=this.lastValue,i,b;if(e===0){return this.getStartValue()}if(!this.isOutOfBound){i=a.getValue();b=a.getVelocity();if(Math.abs(b)<this.getMinVelocity()){this.isEnded=true}if(i>=g&&i<=d){return i}this.isOutOfBound=true;j.setStartTime(Ext.Date.now()).setStartVelocity(b).setStartValue(c)}i=j.getValue();if(!this.isEnded){if(!this.isBouncingBack){if(h!==null){if((f==1&&i<h)||(f==-1&&i>h)){this.isBouncingBack=true}}}else{if(Math.round(i)==c){this.isEnded=true}}}this.lastValue=i;return i}});Ext.define("Ext.fx.easing.EaseOut",{extend:"Ext.fx.easing.Linear",alias:"easing.ease-out",config:{exponent:4,duration:1500},getValue:function(){var f=Ext.Date.now()-this.getStartTime(),d=this.getDuration(),b=this.getStartValue(),h=this.getEndValue(),a=this.distance,c=f/d,g=1-c,e=1-Math.pow(g,this.getExponent()),i=b+(e*a);if(f>=d){this.isEnded=true;return h}return i}});Ext.define("Ext.scroll.scroller.Abstract",{extend:"Ext.Evented",requires:["Ext.fx.easing.BoundMomentum","Ext.fx.easing.EaseOut","Ext.util.SizeMonitor"],config:{direction:"auto",fps:60,snap:null,disabled:null,directionLock:false,momentumEasing:{momentum:{acceleration:30,friction:0.5},bounce:{acceleration:30,springTension:0.3},minVelocity:0.2},element:null,snapEasing:{duration:400,exponent:4},outOfBoundRestrictFactor:0.5,startMomentumResetTime:300,maxAbsoluteVelocity:2,containerSize:"auto",containerScrollSize:"auto",size:"auto",snapOffset:{x:0,y:0},autoRefresh:true,cls:Ext.baseCSSPrefix+"scroll-scroller",containerCls:Ext.baseCSSPrefix+"scroll-container"},dragStartTime:0,dragEndTime:0,activeEasing:null,isDragging:false,isAnimating:false,constructor:function(a){var b=a&&a.element;this.doAnimationFrame=Ext.Function.bind(this.doAnimationFrame,this);this.listeners={scope:this,touchstart:"onTouchStart",dragstart:"onDragStart",drag:"onDrag",dragend:"onDragEnd"};this.minPosition={x:0,y:0};this.startPosition={x:0,y:0};this.size={x:0,y:0};this.position={x:0,y:0};this.velocity={x:0,y:0};this.isAxisEnabledFlags={x:false,y:false};this.activeEasing={x:null,y:null};this.flickStartPosition={x:0,y:0};this.flickStartTime={x:0,y:0};this.lastDragPosition={x:0,y:0};this.dragDirection={x:0,y:0};this.initialConfig=a;if(b){delete a.element;this.setElement(b)}return this},applyElement:function(a){if(!a){return}return Ext.get(a)},updateElement:function(a){this.initialize();a.addCls(this.getCls());this.onAfterInitialized();return this},onAfterInitialized:function(){if(!this.getDisabled()){this.attachListeneners()}this.onConfigUpdate(["containerSize","size"],"refreshMaxPosition");this.on("maxpositionchange","snapToBoundary");this.on("minpositionchange","snapToBoundary")},attachListeneners:function(){this.getContainer().on(this.listeners)},detachListeners:function(){this.getContainer().un(this.listeners)},updateDisabled:function(a){if(a){this.detachListeners()}else{this.attachListeneners()}},updateFps:function(a){this.animationInterval=1000/a},applyDirection:function(a){var e=this.getMinPosition(),d=this.getMaxPosition(),c,b;this.givenDirection=a;if(a==="auto"){c=d.x>e.x;b=d.y>e.y;if(c&&b){a="both"}else{if(c){a="horizontal"}else{a="vertical"}}}return a},updateDirection:function(b){var a=this.isAxisEnabledFlags;a.x=(b==="both"||b==="horizontal");a.y=(b==="both"||b==="vertical")},isAxisEnabled:function(a){this.getDirection();return this.isAxisEnabledFlags[a]},applyMomentumEasing:function(b){var a=Ext.fx.easing.BoundMomentum;if(!(b instanceof Ext.fx.easing.Abstract)){return{x:new a(b),y:new a(b)}}return{x:b,y:b.clone()}},applySnapEasing:function(b){var a=Ext.fx.easing.EaseOut;if(!(b instanceof Ext.fx.easing.Abstract)){return{x:new a(b),y:new a(b)}}return{x:b,y:b.clone()}},getMinPosition:function(){var a=this.minPosition;if(!a){this.minPosition=a={x:0,y:0};this.fireEvent("minpositionchange",this,a)}return a},getMaxPosition:function(){var c=this.maxPosition,a,b;if(!c){a=this.getSize();b=this.getContainerSize();this.maxPosition=c={x:Math.max(0,a.x-b.x),y:Math.max(0,a.y-b.y)};this.fireEvent("maxpositionchange",this,c)}return c},refreshMaxPosition:function(){this.maxPosition=null;this.getMaxPosition()},applyContainerSize:function(b){var c,a,d;this.givenContainerSize=b;if(b==="auto"){c=this.getContainer().dom;a=c.offsetWidth;d=c.offsetHeight}else{a=b.x;d=b.y}return{x:a,y:d}},applySize:function(b){var c,a,d;this.givenSize=b;if(b==="auto"){c=this.getElement().dom;a=c.offsetWidth;d=c.offsetHeight}else{a=b.x;d=b.y}return{x:a,y:d}},applyContainerScrollSize:function(b){var c,a,d;this.givenContainerScrollSize=b;if(b==="auto"){c=this.getContainer().dom;a=c.scrollWidth;d=c.scrollHeight}else{a=b.x;d=b.y}return{x:a,y:d}},updateAutoRefresh:function(a){var b=Ext.util.SizeMonitor;if(a){this.sizeMonitors={element:new b({element:this.getElement(),callback:this.doRefresh,scope:this}),container:new b({element:this.getContainer(),callback:this.doRefresh,scope:this})}}},getContainer:function(){var a=this.container;if(!a){a=this.container=this.getElement().getParent();a.addCls(this.getContainerCls())}return a},doRefresh:function(){this.stopAnimation();this.setSize(this.givenSize);this.setContainerSize(this.givenContainerSize);this.setContainerScrollSize(this.givenContainerScrollSize);this.setDirection(this.givenDirection);this.fireEvent("refresh",this)},refresh:function(){var a=this.sizeMonitors;if(a){a.element.refresh();a.container.refresh()}this.doRefresh();return this},scrollTo:function(b,f){if(typeof b!="number"&&arguments.length===1){Ext.Logger.deprecate("Calling scrollTo() with an object argument is deprecated, please pass x and y arguments instead",this);f=b.y;b=b.x}var a=this.position,c=false,e=null,d=null;if(this.isAxisEnabled("x")){if(typeof b!="number"){b=a.x}else{if(a.x!==b){a.x=b;c=true}}e=b}if(this.isAxisEnabled("y")){if(typeof f!="number"){f=a.y}else{if(a.y!==f){a.y=f;c=true}}d=f}if(c){this.fireEvent("scroll",this,a.x,a.y);this.doScrollTo(e,d)}return this},scrollToAnimated:function(b,e){var d=this.position,c,a;c=this.getSnapEasing().x;c.setConfig({startTime:Ext.Date.now(),startValue:d.x,endValue:b});a=this.getSnapEasing().y;a.setConfig({startTime:Ext.Date.now(),startValue:d.y,endValue:e});this.activeEasing.x=c;this.activeEasing.y=a;this.startAnimation();return this},scrollToEnd:function(){this.scrollTo(0,this.getSize().y-this.getContainerSize().y);return this},scrollToEndAnimated:function(){this.scrollToAnimated(0,this.getSize().y-this.getContainerSize().y);return this},snapToSlot:function(b,d){var a=this.getSnap(),f=this.getSnapOffset()[d],e=this.getContainerSize(),c=this.getSize();if(!a){return false}this.scrollToAnimated(0,Math.min(this.getSnap()*b,c.y-e.y));return this},scrollBy:function(b,c){var a=this.position;return this.scrollTo(a.x+offset.x,a.y+offset.y)},scrollByAnimated:function(b,c){var a=this.position;return this.scrollToAnimated(a.x+offset.x,a.y+offset.y)},doScrollTo:function(a,c){var b=this.getContainer().dom;if(a!==null){b.scrollLeft=a}if(c!==null){b.scrollTop=c}},onTouchStart:function(){this.stopAnimation()},onDragStart:function(l){var o=this.getDirection(),g=l.absDeltaX,f=l.absDeltaY,j=this.getDirectionLock(),i=this.startPosition,d=this.flickStartPosition,k=this.flickStartTime,h=this.lastDragPosition,c=this.position,b=this.dragDirection,n=c.x,m=c.y,a=Ext.Date.now();this.isDragging=true;if(j&&o!=="both"){if((o==="horizontal"&&g>f)||(o==="vertical"&&f>g)){l.stopPropagation()}else{this.isDragging=false;return}}this.stopAnimation(true);h.x=n;h.y=m;d.x=n;d.y=m;i.x=n;i.y=m;k.x=a;k.y=a;b.x=0;b.y=0;this.dragStartTime=a;this.isDragging=true;this.fireEvent("scrollstart",this)},onAxisDrag:function(i,q){if(!this.isAxisEnabled(i)){return}var h=this.flickStartPosition,l=this.flickStartTime,j=this.lastDragPosition,e=this.dragDirection,g=this.position[i],k=this.getMinPosition()[i],o=this.getMaxPosition()[i],d=this.startPosition[i],p=j[i],n=d-q,c=e[i],m=this.getOutOfBoundRestrictFactor(),f=this.getStartMomentumResetTime(),b=Ext.Date.now(),a;if(n<k){n*=m}else{if(n>o){a=n-o;n=o+a*m}}if(n>p){e[i]=1}else{if(n<p){e[i]=-1}}if((c!==0&&(e[i]!==c))||(b-l[i])>f){h[i]=g;l[i]=b}j[i]=n},onDrag:function(b){if(!this.isDragging){return}var a=this.lastDragPosition;this.onAxisDrag("x",b.deltaX);this.onAxisDrag("y",b.deltaY);this.scrollTo(a.x,a.y)},onDragEnd:function(c){var b,a;if(!this.isDragging){return}this.dragEndTime=Ext.Date.now();this.onDrag(c);this.isDragging=false;b=this.prepareAnimation("x");a=this.prepareAnimation("y");if(!(b===false||a===false)){this.isScrolling=true}this.startAnimation()},prepareAnimation:function(f){if(!this.isAxisEnabled(f)){return this}var d=this.position[f],e=this.flickStartPosition[f],j=this.flickStartTime[f],b=this.getMinPosition()[f],i=this.getMaxPosition()[f],a=this.getMaxAbsoluteVelocity(),c=null,k,h,g;if(d<b){c=b}else{if(d>i){c=i}}if(c!==null){k=this.getSnapEasing()[f];k.setConfig({startTime:this.dragEndTime,startValue:d,endValue:c})}else{g=this.dragEndTime-j;if(g===0){return false}h=(d-e)/(this.dragEndTime-j);if(h===0){return}if(h<-a){h=-a}else{if(h>a){h=a}}k=this.getMomentumEasing()[f];k.setConfig({startTime:this.dragEndTime,startValue:d,startVelocity:h,minMomentumValue:0,maxMomentumValue:i})}this.activeEasing[f]=k;return this},prepareSnapAnimation:function(d){if(!this.isAxisEnabled(d)){return false}var e=this.position[d],g=this.getContainerSize()[d],c=this.getContainerScrollSize()[d],b=this.getSnap(),f=this.getSnapOffset()[d],h,a;a=Math.round((e+f)/b)*b;if((c-g)<=e){return false}h=this.getSnapEasing()[d];h.setConfig({startTime:Ext.Date.now(),startValue:e,endValue:a-f});this.activeEasing[d]=h;return a},startAnimation:function(){this.isAnimating=true;this.animationTimer=setInterval(this.doAnimationFrame,this.animationInterval);this.doAnimationFrame()},doAnimationFrame:function(){if(!this.isAnimating){return}var g=this.activeEasing,c=g.x,b=g.y,e=c===null||c.isEnded,d=b===null||b.isEnded,a=null,f=null;if(e&&d){this.stopAnimation();return}if(!e){a=c.getValue()}if(!d){f=b.getValue()}this.scrollTo(a,f)},stopAnimation:function(b){if(!this.isAnimating){return}var a=this.activeEasing;a.x=null;a.y=null;this.isAnimating=false;clearInterval(this.animationTimer);this.snapToBoundary();if(!b){if(this.onScrollEnd()){this.fireEvent("scrollend",this,this.position)}}this.isScrolling=false},onScrollEnd:function(){if(this.isSnapping){this.isSnapping=false;return true}var a=this.getSnap(),c,b;if(!a){return true}c=this.prepareSnapAnimation("x");b=this.prepareSnapAnimation("y");if(Ext.isNumber(c)||Ext.isNumber(b)){this.isSnapping=true;this.startAnimation();return false}return true},snapValueForAxis:function(c,b){var a=this.getSnap(),d=this.getSnapOffset()[b];c=Math.round((c+d)/a)*a;return c},snapToBoundary:function(){var g=this.position,c=this.getMinPosition(),f=this.getMaxPosition(),e=c.x,d=c.y,b=f.x,a=f.y,i=g.x,h=g.y;if(i<e){i=e}else{if(i>b){i=b}}if(h<d){h=d}else{if(h>a){h=a}}this.scrollTo(i,h)},destroy:function(){var b=this.getElement(),a=this.sizeMonitors;if(a){a.element.destroy();a.container.destroy()}if(b&&!b.isDestroyed){b.removeCls(this.getCls());this.getContainer().removeCls(this.getContainerCls())}this.callParent(arguments)}},function(){this.override({constructor:function(a){var c,e,b,d;if(a.hasOwnProperty("acceleration")){c=a.acceleration;delete a.acceleration;Ext.Logger.deprecate("'acceleration' config is deprecated, set momentumEasing.momentum.acceleration and momentumEasing.bounce.acceleration configs instead");Ext.merge(a,{momentumEasing:{momentum:{acceleration:c},bounce:{acceleration:c}}})}if(a.hasOwnProperty("friction")){e=a.friction;delete a.friction;Ext.Logger.deprecate("'friction' config is deprecated, set momentumEasing.momentum.friction config instead");Ext.merge(a,{momentumEasing:{momentum:{friction:e}}})}if(a.hasOwnProperty("springTension")){b=a.springTension;delete a.springTension;Ext.Logger.deprecate("'springTension' config is deprecated, set momentumEasing.momentum.springTension config instead");Ext.merge(a,{momentumEasing:{momentum:{springTension:b}}})}if(a.hasOwnProperty("minVelocityForAnimation")){d=a.minVelocityForAnimation;delete a.minVelocityForAnimation;Ext.Logger.deprecate("'minVelocityForAnimation' config is deprecated, set momentumEasing.minVelocity config instead");Ext.merge(a,{momentumEasing:{minVelocity:d}})}this.callOverridden(arguments)},updateBoundary:function(){Ext.Logger.deprecate("updateBoundary() is deprecated, use refresh() instead");return this.refresh()},scrollBy:function(d,c){var a=this.position,b;if(!Ext.isNumber(d)){Ext.Logger.deprecate("calling scrollBy with an object is no longer supporter. Please pass both the x and y values.");c=Boolean(c);b={x:a.x+d.x,y:a.y+d.y}}else{c=false;b={x:a.x+d,y:a.y+c}}if(c){this.scrollToAnimated(b.x,b.y)}else{this.scrollTo(b.x,b.y)}return this},setOffset:function(a){return this.scrollToAnimated(-a.x,-a.y)}})});Ext.define("Ext.scroll.scroller.CssPosition",{extend:"Ext.scroll.scroller.Abstract",doScrollTo:function(a,c){var b=this.getElement().dom.style;if(a!==null){b.left=(-a)+"px"}if(c!==null){b.top=(-c)+"px"}}});Ext.define("Ext.scroll.scroller.ScrollPosition",{extend:"Ext.scroll.scroller.CssPosition",config:{stretcherCls:"x-scroll-stretcher"},constructor:function(){this.stretchSize={x:0,y:0};return this.callParent(arguments)},getStretcher:function(){var b=this.stretcher,a;if(!b){a=this.getElement();if(a){this.stretcher=b=Ext.Element.create({className:this.getStretcherCls()});b.insertBefore(a)}}return b},stretch:function(a,e){var c=this.stretchSize,d=this.getStretcher(),b=this.getElement();c.x=a;c.y=e;d.setWidth(a*3);d.setHeight(e*3);b.setLeft(a);b.setTop(e);return this},shrink:function(){var b=this.getStretcher(),a=this.getElement();b.setWidth(0);b.setHeight(0);a.setLeft(0);a.setTop(0)},doScrollTo:function(a,d){var c=this.getContainer().dom,b=this.stretchSize;if(a!==null){c.scrollLeft=a+b.x}if(d!==null){c.scrollTop=d+b.y}},determinePosition:function(){var b=this.getContainer().dom,a=this.stretchSize;return{x:b.scrollLeft-a.x,y:b.scrollTop-a.y}},onTouchStart:function(){var a=this.determinePosition();this.scrollTo(a.x,a.y);this.callParent(arguments)},onAfterInitialized:function(){this.callParent(arguments);this.refreshStretch()},refresh:function(){this.callParent(arguments);this.refreshStretch()},refreshStretch:function(){var a=this.position,b,d,e,c;this.shrink();b=this.getSize();d=this.getContainerSize();e=Math.max(b.x,d.x);c=Math.max(b.y,d.y);this.stretch(e,c);this.doScrollTo(a.x,a.y)},destroy:function(){var a=this.getElement();if(a){this.getStretcher().destroy();a.setLeft(null);a.setTop(null)}this.callParent(arguments)}});Ext.define("Ext.scroll.scroller.CssTransform",{extend:"Ext.scroll.scroller.Abstract",doScrollTo:function(b,d){var c=this.getElement().dom,a=this.position;if(b===null){b=a.x}b=-b;if(d===null){d=a.y}d=-d;c.style.webkitTransform="translate3d("+b+"px, "+d+"px, 0px)"}});Ext.define("Ext.scroll.Scroller",{alternateClassName:"Ext.util.Scroller",requires:["Ext.scroll.scroller.ScrollPosition","Ext.scroll.scroller.CssPosition","Ext.scroll.scroller.CssTransform"],defaultConfig:{fps:"auto",scrollMethod:"auto"},constructor:function(c){var e=Ext.scroll.scroller,j=e.ScrollPosition,i=e.CssTransform,h=e.CssPosition,d=j,g=Ext.os.version,k=Ext.browser.userAgent,a,b,f;if(arguments.length==2){Ext.Logger.deprecate("Passing element as the first argument is deprecated, pass it as the 'element' property of the config object instead");f=c;c=arguments[1];if(!c){c={}}c.element=f}if(typeof c=="string"){c={direction:c}}c=Ext.merge({},this.defaultConfig,c||{});if(c.fps==="auto"){if(/(htc|desire|incredible|adr6300)/i.test(k)&&g.lt("2.3")){b=30}else{if(Ext.os.is.Android&&!/(droid2)/i.test(k)){b=50}else{b=60}}c.fps=b}a=c.scrollMethod.toLowerCase();switch(a){case"csstransform":d=i;break;case"cssposition":d=h;break;case"scrollposition":d=j;break;case"auto":if(!Ext.os.is.Android2){d=i}break;default:Ext.Logger.error("Unrecognized scrollMethod config value of '"+a+"'. Valid values are: 'csstransform', 'cssposition', 'scrollposition' or 'auto'.")}return new d(c)}});Ext.define("Ext.scroll.View",{extend:"Ext.Evented",alternateClassName:"Ext.util.ScrollView",requires:["Ext.scroll.Scroller","Ext.scroll.Indicator"],config:{flashIndicatorTimeout:1000,element:null,scroller:{},indicators:{x:{axis:"x"},y:{axis:"y"}},cls:Ext.baseCSSPrefix+"scroll-view"},processConfig:function(c){if(!c){return null}if(typeof c=="string"){c={direction:c}}c=Ext.merge({},c);var a=c.scroller,b;if(!a){c.scroller=a={}}for(b in c){if(c.hasOwnProperty(b)){if(!this.hasConfig(b)){a[b]=c[b];delete c[b]}}}return c},constructor:function(a){a=this.processConfig(a);this.useIndicators={x:true,y:true};this.initConfig(a)},setConfig:function(a){return this.callParent([this.processConfig(a)])},applyScroller:function(a,b){return Ext.factory(a,Ext.scroll.Scroller,b)},applyIndicators:function(b,d){var a=Ext.scroll.Indicator,c=this.useIndicators;if(!b){b={}}if(!b.x){c.x=false;b.x={}}if(!b.y){c.y=false;b.y={}}return{x:Ext.factory(b.x,a,d&&d.x),y:Ext.factory(b.y,a,d&&d.y)}},updateIndicators:function(a){this.indicatorsGrid=Ext.Element.create({className:"x-scroll-bar-grid-wrapper",children:[{className:"x-scroll-bar-grid",children:[{children:[{},{children:[a.y.barElement]}]},{children:[{children:[a.x.barElement]},{}]}]}]})},updateScroller:function(a){a.on({scope:this,scrollstart:"onScrollStart",scroll:"onScroll",scrollend:"onScrollEnd",refresh:"refreshIndicators"})},isAxisEnabled:function(a){return this.getScroller().isAxisEnabled(a)&&this.useIndicators[a]},applyElement:function(a){if(a){return Ext.get(a)}},updateElement:function(c){var b=c.getFirstChild().getFirstChild(),a=this.getScroller();c.addCls(this.getCls());c.insertFirst(this.indicatorsGrid);a.setElement(b);this.refreshIndicators();return this},getSize:function(){var a=this.getElement().dom;return{x:a.offsetWidth,y:a.offsetHeight}},showIndicator:function(a){if(this.isAxisEnabled(a)){this.getIndicators()[a].show()}},hideIndicator:function(a){if(this.isAxisEnabled(a)){this.getIndicators()[a].hide()}},onScrollStart:function(){this.showIndicator("x");this.showIndicator("y")},onScroll:function(b,a,c){this.setIndicatorValue("x",a);this.setIndicatorValue("y",c)},setIndicatorValue:function(b,f){if(!this.isAxisEnabled(b)){return this}var a=this.getScroller(),c=a.getMaxPosition()[b],e,d;if(c===0){e=a.getContainerSize()[b];if(f<0){d=f/e}else{d=1+(f/e)}}else{d=f/c}this.getIndicators()[b].setValue(d)},onScrollEnd:function(){this.hideIndicator("x");this.hideIndicator("y")},refreshIndicator:function(d){if(!this.isAxisEnabled(d)){return this}var a=this.getScroller(),b=this.getIndicators()[d],e=a.getContainerSize()[d],f=a.getSize()[d],c=e/f;b.setRatio(c);b.refresh()},refresh:function(){return this.getScroller().refresh()},refreshIndicators:function(){this.refreshIndicator("x");this.refreshIndicator("y")},flashIndicators:function(){this.flashIndicator("x");this.flashIndicator("y")},flashIndicator:function(b){var c=this,a=this.getIndicators()[b];if(!c.isAxisEnabled(b)){return c}if(a.getRatio()==1){return c}c.showIndicator(b);setTimeout(function(){c.hideIndicator(b)},c.getFlashIndicatorTimeout())},destroy:function(){var a=this.getElement(),b=this.getIndicators();if(a&&!a.isDestroyed){a.removeCls(this.getCls())}b.x.destroy();b.y.destroy();Ext.destroy(this.getScroller(),this.indicatorsGrid);delete this.indicatorsGrid;this.callParent(arguments)}});Ext.define("Ext.behavior.Scrollable",{extend:"Ext.behavior.Behavior",requires:["Ext.scroll.View"],constructor:function(){this.listeners={painted:"onComponentPainted",scope:this};this.callParent(arguments)},onComponentPainted:function(){this.scrollView.refresh()},setConfig:function(d){var b=this.scrollView,c=this.component,f,e,a;if(d){if(!b){this.scrollView=b=new Ext.scroll.View(d);b.on("destroy","onScrollViewDestroy",this);c.setUseBodyElement(true);this.scrollerElement=a=c.innerElement;this.scrollContainer=e=a.wrap();this.scrollViewElement=f=c.bodyElement;b.setElement(f);if(c.isPainted()){this.onComponentPainted(c)}c.on(this.listeners)}else{if(Ext.isObject(d)){b.setConfig(d)}}}else{if(b){b.destroy()}}return this},getScrollView:function(){return this.scrollView},onScrollViewDestroy:function(){var b=this.component,a=this.scrollerElement;if(!a.isDestroyed){this.scrollerElement.unwrap()}this.scrollContainer.destroy();b.un(this.listeners);delete this.scrollerElement;delete this.scrollView;delete this.scrollContainer},onComponentDestroy:function(){var a=this.scrollView;if(a){a.destroy()}}});Ext.define("Ext.Container",{extend:"Ext.Component",alternateClassName:"Ext.lib.Container",requires:["Ext.layout.Layout","Ext.ItemCollection","Ext.behavior.Scrollable","Ext.Mask"],xtype:"container",eventedConfig:{activeItem:0},config:{layout:null,control:{},defaults:null,items:null,autoDestroy:true,defaultType:null,scrollable:null,useBodyElement:null,masked:null,modal:null,hideOnMaskTap:true},isContainer:true,delegateListeners:{delegate:"> component",centeredchange:"onItemCenteredChange",dockedchange:"onItemDockedChange",floatingchange:"onItemFloatingChange"},paintListeners:{painted:"onPainted",erased:"onErased"},constructor:function(a){var b=this;b._items=b.items=new Ext.ItemCollection();b.innerItems=[];b.onItemAdd=b.onFirstItemAdd;b.callParent(arguments)},getElementConfig:function(){return{reference:"element",className:"x-container",children:[{reference:"innerElement",className:"x-inner"}]}},applyMasked:function(a,b){b=Ext.factory(a,Ext.Mask,b);if(b){this.add(b)}return b},mask:function(a){this.setMasked(a||true)},unmask:function(){this.setMasked(false)},applyModal:function(a,b){if(!a&&!b){return}return Ext.factory(a,Ext.Mask,b)},updateModal:function(b,a){if(b){this.on(this.paintListeners);b.on("destroy","onModalDestroy",this);if(this.isPainted()){this.onPainted()}}else{if(a){a.un("destroy","onModalDestroy",this);this.un(this.paintListeners)}}},onModalDestroy:function(){this.setModal(null)},onPainted:function(){var b=this.getModal(),a=this.getParent();if(!this.painted){this.painted=true;if(b){a.insertBefore(b,this);b.setZIndex(this.getZIndex()-1)}}},onErased:function(){var b=this.getModal(),a=this.getParent();if(this.painted){this.painted=false;if(b){a.remove(b,false)}}},updateZIndex:function(b){var a=this.getModal();this.callParent(arguments);if(a){a.setZIndex(b-1)}},updateHideOnMaskTap:function(b){var a=this.getModal();if(a){a[b?"on":"un"].call(a,"tap","hide",this)}},updateBaseCls:function(a,b){var c=this,d=c.getUi();if(a){this.element.addCls(a);this.innerElement.addCls(a,null,"inner");if(d){this.element.addCls(a,null,d)}}if(b){this.element.removeCls(b);this.innerElement.removeCls(a,null,"inner");if(d){this.element.removeCls(b,null,d)}}},updateUseBodyElement:function(a){if(a){this.bodyElement=this.innerElement.wrap({cls:"x-body"});this.referenceList.push("bodyElement")}},applyItems:function(a,b){if(a){this.getDefaultType();this.getDefaults();if(this.initialized&&b.length>0){this.removeAll()}this.add(a)}},applyControl:function(c){var e=this.getEventDispatcher(),a,b,f,d;for(a in c){if(c.hasOwnProperty(a)){d=c[a];if(a[0]!="#"){a="#"+this.getId()+" "+a}for(b in d){f=d[b];if(Ext.isString(f)){f=this[f]}e.addListener("component",a,b,f,this)}}}return c},onFirstItemAdd:function(){delete this.onItemAdd;this.setLayout(new Ext.layout.Layout(this,this.getLayout()||"default"));if(this.innerHtmlElement&&!this.getHtml()){this.innerHtmlElement.destroy();delete this.innerHtmlElement}this.on(this.delegateListeners);return this.onItemAdd.apply(this,arguments)},updateLayout:function(b,a){if(a&&a.isLayout){Ext.Logger.error("Replacing a layout after one has already been initialized is not currently supported.")}},updateDefaultType:function(a){this.defaultItemClass=Ext.ClassManager.getByAlias("widget."+a);if(!this.defaultItemClass){Ext.Logger.error("Invalid defaultType of: '"+a+"', must be a valid component xtype")}},applyDefaults:function(a){if(a){this.factoryItem=this.factoryItemWithDefaults;return a}},factoryItem:function(a){if(!a){Ext.Logger.error("Invalid item given: "+a+", must be either the config object to factory a new item, or an existing component instance")}return Ext.factory(a,this.defaultItemClass)},factoryItemWithDefaults:function(c){if(!c){Ext.Logger.error("Invalid item given: "+c+", must be either the config object to factory a new item, or an existing component instance")}var b=this,d=b.getDefaults(),a;if(!d){return Ext.factory(c,b.defaultItemClass)}if(c.isComponent){a=c;if(d&&c.isInnerItem()&&!b.has(a)){a.setConfig(d,true)}}else{if(d&&!c.ignoreDefaults){if(!(c.hasOwnProperty("left")&&c.hasOwnProperty("right")&&c.hasOwnProperty("top")&&c.hasOwnProperty("bottom")&&c.hasOwnProperty("docked")&&c.hasOwnProperty("centered"))){c=Ext.mergeIf({},c,d)}}a=Ext.factory(c,b.defaultItemClass)}return a},add:function(a){var e=this,b,d,c;a=Ext.Array.from(a);d=a.length;for(b=0;b<d;b++){c=e.factoryItem(a[b]);this.doAdd(c)}return c},doAdd:function(d){var c=this,a=c.getItems(),b;if(!a.has(d)){b=a.length;a.add(d);if(d.isInnerItem()){c.insertInner(d)}d.setParent(c);c.onItemAdd(d,b)}},remove:function(d,b){var c=this,a=c.indexOf(d),e=this.getInnerItems(),f;if(b===undefined){b=c.getAutoDestroy()}if(a!==-1){if(!this.removingAll&&e.length>1&&d===this.getActiveItem()){this.on({activeitemchange:"doRemove",scope:this,single:true,order:"after",args:[d,a,b]});f=e.indexOf(d);if(f===0){this.setActiveItem(1)}else{this.setActiveItem(0)}}else{this.doRemove(d,a,b)}}return c},doRemove:function(d,a,b){var c=this;c.items.remove(d);if(d.isInnerItem()){c.removeInner(d)}c.onItemRemove(d,a);d.setParent(null);if(b){d.destroy()}},removeAll:function(c,f){var a=this.items,e=a.length,b=0,d;if(c===undefined){c=this.getAutoDestroy()}f=Boolean(f);this.removingAll=true;for(;b<e;b++){d=a.getAt(b);if(d&&(f||d.isInnerItem())){this.doRemove(d,b,c);b--;e--}}this.removingAll=false;return this},getAt:function(a){return this.items.getAt(a)},removeAt:function(a){var b=this.getAt(a);if(b){this.remove(b)}return this},removeInnerAt:function(a){var b=this.getInnerItems()[a];if(b){this.remove(b)}return this},has:function(a){return this.getItems().indexOf(a)!=-1},hasInnerItem:function(a){return this.innerItems.indexOf(a)!=-1},indexOf:function(a){return this.getItems().indexOf(a)},insertInner:function(d,b){var c=this,a=c.getItems().items,f=c.innerItems,e;if(typeof b=="number"){do{e=a[++b]}while(e&&!e.isInnerItem());if(!e){f.push(d)}else{f.splice(f.indexOf(e),0,d)}}else{f.push(d)}return c},removeInner:function(a){Ext.Array.remove(this.innerItems,a);return this},insert:function(a,d){var c=this,b;if(Ext.isArray(d)){for(b=d.length-1;b>=0;b--){c.insert(a,d[b])}return c}d=this.factoryItem(d);this.doInsert(a,d);return d},doInsert:function(d,f){var e=this,b=e.items,c=b.length,a,g;g=f.isInnerItem();if(d>c){d=c}if(b[d-1]===f){return e}a=e.indexOf(f);if(a!==-1){if(a<d){d-=1}b.removeAt(a);if(g){e.removeInner(f)}}else{f.setParent(e)}b.insert(d,f);if(g){e.insertInner(f,d)}if(a!==-1){e.onItemMove(f,d,a)}else{e.onItemAdd(f,d)}},insertFirst:function(a){return this.insert(0,a)},insertLast:function(a){return this.insert(this.getItems().length,a)},insertBefore:function(c,a){var b=this.indexOf(a);if(b!==-1){this.insert(b,c)}return this},insertAfter:function(c,a){var b=this.indexOf(a);if(b!==-1){this.insert(b+1,c)}return this},onItemAdd:function(b,a){this.doItemLayoutAdd(b,a);if(!this.isItemsInitializing&&!this.getActiveItem()&&b.isInnerItem()){this.setActiveItem(b)}if(this.initialized){this.fireEvent("add",this,b,a)}},doItemLayoutAdd:function(c,a){var b=this.getLayout();if(this.isRendered()&&c.setRendered(true)){c.fireAction("renderedchange",[this,c,true],"onItemAdd",b,{args:[c,a]})}else{b.onItemAdd(c,a)}},onItemRemove:function(b,a){this.doItemLayoutRemove(b,a);this.fireEvent("remove",this,b,a)},doItemLayoutRemove:function(c,a){var b=this.getLayout();if(this.isRendered()&&c.setRendered(false)){c.fireAction("renderedchange",[this,c,false],"onItemRemove",b,{args:[c,a]})}else{b.onItemRemove(c,a)}},onItemMove:function(b,c,a){if(b.isDocked()){b.setDocked(null)}this.doItemLayoutMove(b,c,a);this.fireEvent("move",this,b,c,a)},doItemLayoutMove:function(b,c,a){this.getLayout().onItemMove(b,c,a)},onItemCenteredChange:function(b,a){if(!b.isFloating()&&!b.isDocked()){if(a){this.removeInner(b)}else{this.insertInner(b,this.indexOf(b))}}this.getLayout().onItemCenteredChange(b,a)},onItemFloatingChange:function(a,b){if(!a.isCentered()&&!a.isDocked()){if(b){this.removeInner(a)}else{this.insertInner(a,this.indexOf(a))}}this.getLayout().onItemFloatingChange(a,b)},onItemDockedChange:function(a,c,b){if(!a.isCentered()&&!a.isFloating()){if(c){this.removeInner(a)}else{this.insertInner(a,this.indexOf(a))}}this.getLayout().onItemDockedChange(a,c,b)},getInnerItems:function(){return this.innerItems},getDockedItems:function(){var a=this.getItems().items,c=[],e=a.length,d,b;for(b=0;b<e;b++){d=a[b];if(d.isDocked()){c.push(d)}}return c},applyActiveItem:function(c,a){var b=this.getInnerItems();this.getItems();if(typeof c=="number"){c=Math.max(0,Math.min(c,b.length-1));c=b[c];if(c){return c}else{if(a){return null}}}else{if(c){if(!c.isComponent){c=this.factoryItem(c)}if(!c.isInnerItem()){Ext.Logger.error("Setting activeItem to be a non-inner item")}if(!this.has(c)){this.add(c)}return c}}},animateActiveItem:function(d,c){var b=this.getLayout(),a;c=new Ext.fx.layout.Card(c);if(c&&b.isCard){c.setLayout(b);a=b.getAnimation();if(a){a.disable();c.on("animationend",function(){a.enable();c.destroy()},this)}}return this.setActiveItem(d)},doSetActiveItem:function(b,a){if(a){a.fireEvent("deactivate",a,this,b)}if(b){b.fireEvent("activate",b,this,a)}},setRendered:function(d){if(this.callParent(arguments)){var a=this.items.items,b,c;for(b=0,c=a.length;b<c;b++){a[b].setRendered(d)}return true}return false},getScrollableBehavior:function(){var a=this.scrollableBehavior;if(!a){a=this.scrollableBehavior=new Ext.behavior.Scrollable(this)}return a},applyScrollable:function(a){this.getScrollableBehavior().setConfig(a)},getScrollable:function(){return this.getScrollableBehavior().getScrollView()},getRefItems:function(a){var b=this.getItems().items.slice(),e=b.length,c,d;if(a){for(c=0;c<e;c++){d=b[c];if(d.getRefItems){b=b.concat(d.getRefItems(true))}}}return b},getComponent:function(a){if(Ext.isObject(a)){a=a.getItemId()}return this.getItems().get(a)},getDockedComponent:function(a){if(Ext.isObject(a)){a=a.getItemId()}var c=this.getDockedItems(),e=c.length,d,b;if(Ext.isNumber(a)){return c[a]}for(b=0;b<e;b++){d=c[b];if(d.id==a){return d}}return false},query:function(a){return Ext.ComponentQuery.query(a,this)},child:function(a){return this.query("> "+a)[0]||null},down:function(a){return this.query(a)[0]||null},onClassExtended:function(b,a){if("onAdd" in a||"onRemove" in a){throw new Error("["+b.$className+"] 'onAdd()' and 'onRemove()' methods no longer exist in Ext.Container, please use 'onItemAdd()' and 'onItemRemove()' instead }")}},destroy:function(){var a=this.getModal();if(a){a.destroy()}this.removeAll(true,true);Ext.destroy(this.getScrollable(),this.bodyElement);this.callParent()}},function(){this.addMember("defaultItemClass",this);Ext.deprecateClassMethod(this,"addAll","add");Ext.deprecateClassMethod(this,"removeDocked","remove");this.override({constructor:function(a){a=a||{};var c=a.dockedItems,b,e,d;if(a.scroll){Ext.Logger.deprecate("'scroll' config is deprecated, please use 'scrollable' instead.",this);a.scrollable=a.scroll;delete a.scroll}this.callParent(arguments);if(c){Ext.Logger.deprecate("'dockedItems' config is deprecated, please add all docked items inside the 'items' config with a 'docked' property indicating the docking position instead, i.e { /*...*/ docked: 'top' /*...*/ }");c=Ext.Array.from(c);for(b=0,e=c.length;b<e;b++){d=c[b];if("dock" in d){Ext.Logger.deprecate("'dock' config for docked items is deprecated, please use 'docked' instead");d.docked=d.dock}}this.add(c)}},add:function(){var a=arguments;if(a.length>1){if(typeof a[0]=="number"){Ext.Logger.deprecate("add(index, item) method signature is deprecated, please use insert(index, item) instead");return this.insert(a[0],a[1])}Ext.Logger.deprecate("Passing items as multiple arguments is deprecated, please use one single array of items instead");a=[Array.prototype.slice.call(a)]}return this.callParent(a)},doAdd:function(c){var d=c.getDocked(),b=c.overlay,a;if(b&&d){Ext.Logger.deprecate("'overlay' config is deprecated on docked items, please set the top/left/right/bottom configurations instead.",this);if(d=="top"){a={top:0,bottom:"auto",left:0,right:0}}else{if(d=="bottom"){a={top:null,bottom:0,left:0,right:0}}}if(a){c.setDocked(false);c.setTop(a.top);c.setBottom(a.bottom);c.setLeft(a.left);c.setRight(a.right)}}return this.callOverridden(arguments)},applyDefaults:function(a){if(typeof a=="function"){Ext.Logger.deprecate("Passing a function as 'defaults' is deprecated. To add custom logics when 'defaults' is applied to each item, have your own factoryItem() method in your sub-class instead")}return this.callParent(arguments)},factoryItemWithDefaults:function(b){var d=this.getDefaults(),c,a;if(typeof d=="function"){c=d.call(this,b)}if(typeof b=="string"){Ext.Logger.deprecate("Passing a string id of item ('"+b+"') is deprecated, please pass a reference to that item instead");b=Ext.getCmp(b)}if(c){this._defaults=c}a=this.callParent([b]);if(c){this._defaults=d}return a},applyMasked:function(a){if(Ext.isObject(a)&&!a.isInstance&&"message" in a&&!("xtype" in a)&&!("xclass" in a)){a.xtype="loadmask";Ext.Logger.deprecate("Using a 'message' config without specify an 'xtype' or 'xclass' will no longer implicitly set 'xtype' to 'loadmask'. Please set that explicitly.")}return this.callOverridden(arguments)}});Ext.deprecateClassMethod(this,"setMask","setMasked")});Ext.define("Ext.Toolbar",{extend:"Ext.Container",xtype:"toolbar",requires:["Ext.Button","Ext.Title","Ext.Spacer"],isToolbar:true,config:{baseCls:Ext.baseCSSPrefix+"toolbar",ui:"dark",title:null,defaultType:"button",layout:{type:"hbox",align:"center"}},constructor:function(a){a=a||{};if(a.docked=="left"||a.docked=="right"){a.layout={type:"vbox",align:"stretch"}}this.callParent([a])},applyTitle:function(a){if(typeof a=="string"){a={title:a,centered:true}}return Ext.factory(a,Ext.Title,this.getTitle())},updateTitle:function(b,a){if(b){this.add(b);this.getLayout().setItemFlex(b,1)}if(a){a.destroy()}},showTitle:function(){var a=this.getTitle();if(a){a.show()}},hideTitle:function(){var a=this.getTitle();if(a){a.hide()}}});Ext.define("Ext.Panel",{extend:"Ext.Container",requires:["Ext.util.LineSegment"],alternateClassName:"Ext.lib.Panel",xtype:"panel",isPanel:true,config:{baseCls:Ext.baseCSSPrefix+"panel",bodyPadding:null,bodyMargin:null,bodyBorder:null},getElementConfig:function(){var a=this.callParent();a.children.push({reference:"tipElement",className:"x-anchor",hidden:true});return a},applyBodyPadding:function(a){if(a===true){a=5}a=Ext.dom.Element.unitizeBox(a);return a},updateBodyPadding:function(a){this.element.setStyle("padding",a)},applyBodyMargin:function(a){if(a===true){a=5}a=Ext.dom.Element.unitizeBox(a);return a},updateBodyMargin:function(a){this.element.setStyle("margin",a)},applyBodyBorder:function(a){if(a===true){a=1}a=Ext.dom.Element.unitizeBox(a);return a},updateBodyBorder:function(a){this.element.setStyle("border-width",a)},alignTo:function(m){var w=this.tipElement;w.hide();if(this.currentTipPosition){w.removeCls("x-anchor-"+this.currentTipPosition)}this.callParent(arguments);var f=Ext.util.LineSegment,d=m.isComponent?m.renderElement:m,a=this.renderElement,n=d.getPageBox(),k=a.getPageBox(),b=k.left,t=k.top,C=k.right,h=k.bottom,j=b+(k.width/2),i=t+(k.height/2),o={x:b,y:t},l={x:C,y:t},B={x:b,y:h},D={x:C,y:h},y={x:j,y:i},s=n.left+(n.width/2),q=n.top+(n.height/2),v={x:s,y:q},c=new f(y,v),g=0,A=0,e,z,r,p,x,u;w.setVisibility(false);w.show();e=w.getSize();z=e.width;r=e.height;if(c.intersects(new f(o,l))){x=Math.min(Math.max(s,b),C-(z/2));u=t;A=r;p="top"}else{if(c.intersects(new f(o,B))){x=b;u=Math.min(Math.max(q+(z/2),t),h);g=r;p="left"}else{if(c.intersects(new f(B,D))){x=Math.min(Math.max(s,b),C-(z/2));u=h;A=-r;p="bottom"}else{if(c.intersects(new f(l,D))){x=C;u=Math.min(Math.max(q-(z/2),t),h);g=-r;p="right"}}}}if(x||u){this.currentTipPosition=p;w.addCls("x-anchor-"+p);w.setLeft(x-b);w.setTop(u-t);w.setVisibility(true);this.setLeft(this.getLeft()+g);this.setTop(this.getTop()+A)}}});Ext.define("Ext.Sheet",{extend:"Ext.Panel",xtype:"sheet",requires:["Ext.fx.Animation"],config:{baseCls:Ext.baseCSSPrefix+"sheet",hidden:true,modal:true,centered:true,stretchX:null,stretchY:null,enter:"bottom",exit:"bottom",showAnimation:!Ext.os.is.Android2?{type:"slideIn",duration:250,easing:"ease-out"}:null,hideAnimation:!Ext.os.is.Android2?{type:"slideOut",duration:250,easing:"ease-in"}:null},applyHideAnimation:function(b){if(b===true){b={type:"slideOut"}}if(Ext.isString(b)){b={type:b}}var c=Ext.factory(b,Ext.fx.Animation);if(c){var a=this.getExit(),d=a;if(a=="bottom"){d="down"}if(a=="top"){d="up"}c.setDirection(d)}return c},applyShowAnimation:function(a){if(a===true){a={type:"slideIn"}}if(Ext.isString(a)){a={type:a}}var b=Ext.factory(a,Ext.fx.Animation);if(b){var d=this.getEnter(),c=d;if(d=="bottom"){c="down"}if(d=="top"){c="up"}b.setBefore({display:null});b.setReverse(true);b.setDirection(c)}return b},updateStretchX:function(a){this.getLeft();this.getRight();if(a){this.setLeft(0);this.setRight(0)}},updateStretchY:function(a){this.getTop();this.getBottom();if(a){this.setTop(0);this.setBottom(0)}}});Ext.define("Ext.MessageBox",{extend:"Ext.Sheet",requires:["Ext.Toolbar","Ext.field.Text","Ext.field.TextArea"],config:{ui:"dark",baseCls:Ext.baseCSSPrefix+"msgbox",iconCls:null,showAnimation:{type:"popIn",duration:250,easing:"ease-out"},hideAnimation:{type:"popOut",duration:250,easing:"ease-out"},defaultTextHeight:75,title:null,buttons:null,message:null,prompt:null,layout:{type:"vbox",pack:"center"}},statics:{OK:{text:"OK",itemId:"ok",ui:"action"},YES:{text:"Yes",itemId:"yes",ui:"action"},NO:{text:"No",itemId:"no"},CANCEL:{text:"Cancel",itemId:"cancel"},INFO:Ext.baseCSSPrefix+"msgbox-info",WARNING:Ext.baseCSSPrefix+"msgbox-warning",QUESTION:Ext.baseCSSPrefix+"msgbox-question",ERROR:Ext.baseCSSPrefix+"msgbox-error",OKCANCEL:[{text:"Cancel",itemId:"cancel"},{text:"OK",itemId:"ok",ui:"action"}],YESNOCANCEL:[{text:"Cancel",itemId:"cancel"},{text:"No",itemId:"no"},{text:"Yes",itemId:"yes",ui:"action"}],YESNO:[{text:"No",itemId:"no"},{text:"Yes",itemId:"yes",ui:"action"}]},constructor:function(a){a=a||{};if(a.hasOwnProperty("promptConfig")){Ext.Logger.deprecate("'promptConfig' config is deprecated, please use 'prompt' config instead",this);Ext.applyIf(a,{prompt:a.promptConfig});delete a.promptConfig}if(a.hasOwnProperty("multiline")||a.hasOwnProperty("multiLine")){a.prompt=a.prompt||{};Ext.applyIf(a.prompt,{multiLine:a.multiline||a.multiLine});delete a.multiline;delete a.multiLine}this.callParent([a])},applyTitle:function(a){if(typeof a=="string"){a={title:a}}Ext.applyIf(a,{docked:"top",cls:this.getBaseCls()+"-title"});return Ext.factory(a,Ext.Toolbar,this.getTitle())},updateTitle:function(a){if(a){this.add(a)}},updateButtons:function(a){var b=this;if(a){if(b.buttonsToolbar){b.buttonsToolbar.removeAll();b.buttonsToolbar.setItems(a)}else{b.buttonsToolbar=Ext.create("Ext.Toolbar",{docked:"bottom",defaultType:"button",layout:{type:"hbox",pack:"center"},ui:b.getUi(),cls:b.getBaseCls()+"-buttons",items:a});b.add(b.buttonsToolbar)}}},applyMessage:function(a){a={html:a,cls:this.getBaseCls()+"-text"};return Ext.factory(a,Ext.Component,this._message)},updateMessage:function(a){if(a){this.add(a)}},getMessage:function(){if(this._message){return this._message.getHtml()}return null},applyIconCls:function(a){a={xtype:"component",docked:"left",width:40,height:40,baseCls:Ext.baseCSSPrefix+"icon",hidden:(a)?false:true,cls:a};return Ext.factory(a,Ext.Component,this._iconCls)},updateIconCls:function(a,b){var c=this;this.getTitle();this.getButtons();if(a&&!b){this.add(a)}else{this.remove(b)}},getIconCls:function(){var b=this._iconCls,a;if(b){a=b.getCls();return(a)?a[0]:null}return null},applyPrompt:function(a){if(a){var b={label:false};if(Ext.isObject(a)){Ext.apply(b,a)}if(b.multiLine){b.height=Ext.isNumber(b.multiLine)?parseFloat(b.multiLine):this.getDefaultTextHeight();return Ext.factory(b,Ext.field.TextArea,this.getPrompt())}else{return Ext.factory(b,Ext.field.Text,this.getPrompt())}}return a},updatePrompt:function(a,b){if(a){this.add(a)}if(b){this.remove(b)}},onClick:function(c){if(c){var b=c.config.userConfig||{},d=c.getInitialConfig(),a=this.getPrompt();if(typeof b.fn=="function"){this.on({hiddenchange:function(){b.fn.call(b.scope||null,d.itemId||d.text,a?a.getValue():null,b)},single:true,scope:this})}if(b.cls){this.el.removeCls(b.cls)}if(b.input){b.input.dom.blur()}}this.hide()},show:function(f){if(!this.getParent()&&Ext.Viewport){Ext.Viewport.add(this)}if(!f){return this.callParent()}var b=Ext.Object.merge({},{value:""},f);var e=f.buttons||Ext.MessageBox.OK||[],d=[],c=f;Ext.each(e,function(g){if(!g){return}d.push(Ext.apply({userConfig:c,scope:this,handler:"onClick"},g))},this);b.buttons=d;if(b.promptConfig){Ext.Logger.deprecate("'promptConfig' config is deprecated, please use 'prompt' config instead",this)}b.prompt=(b.promptConfig||b.prompt)||null;if(b.multiLine){b.prompt=b.prompt||{};b.prompt.multiLine=b.multiLine;delete b.multiLine}this.setConfig(b);var a=this.getPrompt();if(a){a.setValue(f.value||"")}this.callParent();return this},alert:function(d,c,b,a){return this.show({title:d,message:c,buttons:Ext.MessageBox.OK,promptConfig:false,fn:function(e){if(b){b.call(a,e)}},scope:a})},confirm:function(d,c,b,a){return this.show({title:d,message:c,buttons:Ext.MessageBox.YESNO,promptConfig:false,scope:a,fn:function(e){if(b){b.call(a,e)}}})},prompt:function(g,d,c,b,f,e,a){return this.show({title:g,message:d,buttons:Ext.MessageBox.OKCANCEL,scope:b,prompt:a||true,multiLine:f,value:e,fn:function(i,h){if(c){c.call(b,i,h)}}})}},function(a){this.override({setIcon:function(b,c){Ext.Logger.deprecate("Ext.MessageBox#setIcon is deprecated, use setIconCls instead",2);this.setIconCls(b);return this}});Ext.onSetup(function(){Ext.Msg=new a})});Ext.define("Ext.event.Touch",{extend:"Ext.event.Dom",requires:["Ext.util.Point"],constructor:function(a,b){if(b){this.set(b)}this.touchesMap={};this.changedTouches=this.cloneTouches(a.changedTouches);this.touches=this.cloneTouches(a.touches);this.targetTouches=this.cloneTouches(a.targetTouches);return this.callParent([a])},clone:function(){return new this.self(this)},setTargets:function(a){this.doSetTargets(this.changedTouches,a);this.doSetTargets(this.touches,a);this.doSetTargets(this.targetTouches,a)},doSetTargets:function(f,d){var c,e,g,b,a;for(c=0,e=f.length;c<e;c++){g=f[c];b=g.identifier;a=d[b];if(a){g.targets=a}}},cloneTouches:function(f){var e=this.touchesMap,h=[],d=null,b,c,g,a;for(b=0,c=f.length;b<c;b++){g=f[b];a=g.identifier;if(d!==null&&a===d){a++}d=a;if(!e[a]){e[a]={pageX:g.pageX,pageY:g.pageY,identifier:a,target:g.target,timeStamp:g.timeStamp,point:Ext.util.Point.fromTouch(g),targets:g.targets}}h[b]=e[a]}return h}});Ext.define("Ext.event.publisher.TouchGesture",{extend:"Ext.event.publisher.Dom",requires:["Ext.util.Point","Ext.event.Touch"],handledEvents:["touchstart","touchmove","touchend","touchcancel"],moveEventName:"touchmove",config:{moveThrottle:1,buffering:{enabled:false,interval:10},recognizers:{}},currentTouchesCount:0,constructor:function(a){this.processEvents=Ext.Function.bind(this.processEvents,this);this.eventProcessors={touchstart:this.onTouchStart,touchmove:this.onTouchMove,touchend:this.onTouchEnd,touchcancel:this.onTouchEnd};this.eventToRecognizerMap={};this.activeRecognizers=[];this.currentRecognizers=[];this.currentTargets={};this.currentTouches={};this.buffer=[];this.initConfig(a);return this.callParent()},applyBuffering:function(a){if(a.enabled===true){this.bufferTimer=setInterval(this.processEvents,a.interval)}else{clearInterval(this.bufferTimer)}return a},applyRecognizers:function(b){var c,a;for(c in b){if(b.hasOwnProperty(c)){a=b[c];this.registerRecognizer(a)}}return b},handles:function(a){return this.callParent(arguments)||this.eventToRecognizerMap.hasOwnProperty(a)},doesEventBubble:function(){return true},eventLogs:[],onEvent:function(b){var a=this.getBuffering();b=new Ext.event.Touch(b);if(a.enabled){this.buffer.push(b)}else{this.processEvent(b)}},processEvents:function(){var a=this.buffer,f=a.length,d=[],c,e,b;if(f>0){c=a.slice(0);a.length=0;for(b=0;b<f;b++){e=c[b];if(e.type===this.moveEventName){d.push(e)}else{if(d.length>0){this.processEvent(this.mergeEvents(d));d.length=0}this.processEvent(e)}}if(d.length>0){this.processEvent(this.mergeEvents(d));d.length=0}}},mergeEvents:function(c){var b=[],f=c.length,a,e,d;d=c[f-1];if(f===1){return d}for(a=0;a<f;a++){e=c[a];b.push(e.changedTouches)}d.changedTouches=this.mergeTouchLists(b);return d},mergeTouchLists:function(l){var e={},h=[],d,k,a,b,f,c,g;for(d=0,k=l.length;d<k;d++){a=l[d];for(b=0,f=a.length;b<f;b++){c=a[b];g=c.identifier;e[g]=c}}for(g in e){if(e.hasOwnProperty(g)){h.push(e[g])}}return h},registerRecognizer:function(a){var g=this.eventToRecognizerMap,e=this.activeRecognizers,c=a.getHandledEvents(),d,f,b;a.setOnRecognized(this.onRecognized);a.setCallbackScope(this);for(d=0,f=c.length;d<f;d++){b=c[d];g[b]=a}e.push(a);return this},onRecognized:function(f,h,d,a){var k=[],j=d.length,g,c,b;if(j===1){return this.publish(f,d[0].targets,h,a)}for(c=0;c<j;c++){b=d[c];k.push(b.targets)}g=this.getCommonTargets(k);this.publish(f,g,h,a)},publish:function(b,a,c,d){c.set(d);return this.callParent([b,a,c])},getCommonTargets:function(a){var h=a[0],f=a.length;if(f===1){return h}var d=[],e=1,g,b,c;while(true){g=h[h.length-e];if(!g){return d}for(c=1;c<f;c++){b=a[c];if(b[b.length-e]!==g){return d}}d.unshift(g);e++}return d},invokeRecognizers:function(c,g){var b=this.activeRecognizers,f=b.length,d,a;if(c==="onStart"){for(d=0;d<f;d++){b[d].isActive=true}}for(d=0;d<f;d++){a=b[d];if(a.isActive&&a[c].call(a,g)===false){a.isActive=false}}},getActiveRecognizers:function(){return this.activeRecognizers},processEvent:function(a){this.eventProcessors[a.type].call(this,a)},onTouchStart:function(k){var m=this.currentTargets,g=this.currentTouches,o=this.currentTouchesCount,n=k.changedTouches,f=k.touches,h=f.length,a={},l=n.length,d,c,j,b;o+=l;if(o>h){for(d=0;d<h;d++){c=f[d];j=c.identifier;a[j]=true}for(j in g){if(g.hasOwnProperty(j)){if(!a[j]){o--;b=k.clone();c=g[j];c.targets=this.getBubblingTargets(this.getElementTarget(c.target));b.changedTouches=[c];this.onTouchEnd(b)}}}if(o>h){return}}for(d=0;d<l;d++){c=n[d];j=c.identifier;if(!g.hasOwnProperty(j)){this.currentTouchesCount++}g[j]=c;m[j]=this.getBubblingTargets(this.getElementTarget(c.target))}k.setTargets(m);for(d=0;d<l;d++){c=n[d];this.publish("touchstart",c.targets,k,{touch:c})}if(!this.isStarted){this.isStarted=true;this.invokeRecognizers("onStart",k)}this.invokeRecognizers("onTouchStart",k)},onTouchMove:function(j){if(!this.isStarted){return}var l=this.currentTargets,g=this.currentTouches,c=this.getMoveThrottle(),m=j.changedTouches,b=0,f,k,d,n,a,h;j.setTargets(l);for(f=0,k=m.length;f<k;f++){d=m[f];h=d.identifier;n=d.point;a=g[h].point;if(c&&n.isCloseTo(a,c)){b++;continue}g[h]=d;this.publish("touchmove",d.targets,j,{touch:d})}if(b<k){this.invokeRecognizers("onTouchMove",j)}},onTouchEnd:function(d){if(!this.isStarted){return}var h=this.currentTargets,c=this.currentTouches,k=d.changedTouches,g=k.length,j,f,b,a;d.setTargets(h);this.currentTouchesCount-=g;j=(this.currentTouchesCount===0);if(j){this.isStarted=false}for(b=0;b<g;b++){a=k[b];f=a.identifier;delete c[f];delete h[f];this.publish("touchend",a.targets,d,{touch:a})}this.invokeRecognizers("onTouchEnd",d);if(j){this.invokeRecognizers("onEnd",d)}}},function(){if(!Ext.feature.has.Touch){this.override({moveEventName:"mousemove",map:{mouseToTouch:{mousedown:"touchstart",mousemove:"touchmove",mouseup:"touchend"},touchToMouse:{touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup"}},attachListener:function(a){a=this.map.touchToMouse[a];if(!a){return}return this.callOverridden([a])},lastEventType:null,onEvent:function(d){if("button" in d&&d.button!==0){return}var c=d.type,b=[d];if(c==="mousedown"&&this.lastEventType&&this.lastEventType!=="mouseup"){var a=document.createEvent("MouseEvent");a.initMouseEvent("mouseup",d.bubbles,d.cancelable,document.defaultView,d.detail,d.screenX,d.screenY,d.clientX,d.clientY,d.ctrlKey,d.altKey,d.shiftKey,d.metaKey,d.metaKey,d.button,d.relatedTarget);this.onEvent(a)}if(c!=="mousemove"){this.lastEventType=c}d.identifier=1;d.touches=(c!=="mouseup")?b:[];d.targetTouches=(c!=="mouseup")?b:[];d.changedTouches=b;return this.callOverridden([d])},processEvent:function(a){this.eventProcessors[this.map.mouseToTouch[a.type]].call(this,a)}})}});Ext.define("Ext.event.recognizer.Recognizer",{mixins:["Ext.mixin.Identifiable"],handledEvents:[],config:{onRecognized:Ext.emptyFn,onFailed:Ext.emptyFn,callbackScope:null},constructor:function(a){this.initConfig(a);return this},getHandledEvents:function(){return this.handledEvents},onStart:Ext.emptyFn,onEnd:Ext.emptyFn,fail:function(){this.getOnFailed().apply(this.getCallbackScope(),arguments);return false},fire:function(){this.getOnRecognized().apply(this.getCallbackScope(),arguments)}});Ext.define("Ext.event.recognizer.Touch",{extend:"Ext.event.recognizer.Recognizer",onTouchStart:Ext.emptyFn,onTouchMove:Ext.emptyFn,onTouchEnd:Ext.emptyFn});Ext.define("Ext.event.recognizer.SingleTouch",{extend:"Ext.event.recognizer.Touch",inheritableStatics:{NOT_SINGLE_TOUCH:1,TOUCH_MOVED:2},onTouchStart:function(a){if(a.touches.length>1){return this.fail(this.self.NOT_SINGLE_TOUCH)}}});Ext.define("Ext.event.recognizer.Drag",{extend:"Ext.event.recognizer.SingleTouch",isStarted:false,startPoint:null,previousPoint:null,lastPoint:null,handledEvents:["dragstart","drag","dragend"],onTouchStart:function(b){var c,a;if(this.callParent(arguments)===false){if(this.isStarted&&this.lastMoveEvent!==null){this.onTouchEnd(this.lastMoveEvent)}return false}this.startTouches=c=b.changedTouches;this.startTouch=a=c[0];this.startPoint=a.point},onTouchMove:function(d){var c=d.changedTouches,f=c[0],a=f.point,b=d.time;if(this.lastPoint){this.previousPoint=this.lastPoint}if(this.lastTime){this.previousTime=this.lastTime}this.lastTime=b;this.lastPoint=a;this.lastMoveEvent=d;if(!this.isStarted){this.isStarted=true;this.startTime=b;this.previousTime=b;this.previousPoint=this.startPoint;this.fire("dragstart",d,this.startTouches,this.getInfo(d,this.startTouch))}else{this.fire("drag",d,c,this.getInfo(d,f))}},onTouchEnd:function(c){if(this.isStarted){var b=c.changedTouches,d=b[0],a=d.point;this.isStarted=false;this.lastPoint=a;this.fire("dragend",c,b,this.getInfo(c,d));this.startTime=0;this.previousTime=0;this.lastTime=0;this.startPoint=null;this.previousPoint=null;this.lastPoint=null;this.lastMoveEvent=null}},getInfo:function(j,i){var d=j.time,a=this.startPoint,f=this.previousPoint,b=this.startTime,k=this.previousTime,l=this.lastPoint,h=l.x-a.x,g=l.y-a.y,c={touch:i,startX:a.x,startY:a.y,previousX:f.x,previousY:f.y,pageX:l.x,pageY:l.y,deltaX:h,deltaY:g,absDeltaX:Math.abs(h),absDeltaY:Math.abs(g),previousDeltaX:l.x-f.x,previousDeltaY:l.y-f.y,time:d,startTime:b,previousTime:k,deltaTime:d-b,previousDeltaTime:d-k};return c}});Ext.define("Ext.event.recognizer.Tap",{handledEvents:["tap"],extend:"Ext.event.recognizer.SingleTouch",onTouchMove:function(){return this.fail(this.self.TOUCH_MOVED)},onTouchEnd:function(a){var b=a.changedTouches[0];this.fire("tap",a,[b])}},function(){this.override({handledEvents:["tap","tapstart","tapcancel"],onTouchStart:function(a){if(this.callOverridden(arguments)===false){return false}this.fire("tapstart",a,[a.changedTouches[0]])},onTouchMove:function(a){this.fire("tapcancel",a,[a.changedTouches[0]]);return this.callOverridden(arguments)}})});Ext.define("Ext.event.recognizer.DoubleTap",{extend:"Ext.event.recognizer.SingleTouch",config:{maxDuration:300},handledEvents:["singletap","doubletap"],singleTapTimer:null,onTouchStart:function(a){if(this.callParent(arguments)===false){return false}this.startTime=a.time;clearTimeout(this.singleTapTimer)},onTouchMove:function(){return this.fail(this.self.TOUCH_MOVED)},onEnd:function(g){var c=this,b=this.getMaxDuration(),h=g.changedTouches[0],f=g.time,a=this.lastTapTime,d;this.lastTapTime=f;if(a){d=f-a;if(d<=b){this.lastTapTime=0;this.fire("doubletap",g,[h],{touch:h,duration:d});return}}if(f-this.startTime>b){this.fireSingleTap(g,h)}else{this.singleTapTimer=setTimeout(function(){c.fireSingleTap(g,h)},b)}},fireSingleTap:function(a,b){this.fire("singletap",a,[b],{touch:b})}});Ext.define("Ext.event.recognizer.LongPress",{extend:"Ext.event.recognizer.SingleTouch",inheritableStatics:{DURATION_NOT_ENOUGH:32},config:{minDuration:1000},handledEvents:["longpress"],fireLongPress:function(a){var b=a.changedTouches[0];this.fire("longpress",a,[b],{touch:b,duration:this.getMinDuration()});this.isLongPress=true},onTouchStart:function(b){var a=this;if(this.callParent(arguments)===false){return false}this.isLongPress=false;this.timer=setTimeout(function(){a.fireLongPress(b)},this.getMinDuration())},onTouchMove:function(){return this.fail(this.self.TOUCH_MOVED)},onTouchEnd:function(){if(!this.isLongPress){return this.fail(this.self.DURATION_NOT_ENOUGH)}},fail:function(){clearTimeout(this.timer);return this.callParent(arguments)}},function(){this.override({handledEvents:["longpress","taphold"],fire:function(a){if(a==="longpress"){var b=Array.prototype.slice.call(arguments);b[0]="taphold";this.fire.apply(this,b)}return this.callOverridden(arguments)}})});Ext.define("Ext.event.recognizer.Swipe",{extend:"Ext.event.recognizer.SingleTouch",handledEvents:["swipe"],inheritableStatics:{MAX_OFFSET_EXCEEDED:16,MAX_DURATION_EXCEEDED:17,DISTANCE_NOT_ENOUGH:18},config:{minDistance:80,maxOffset:35,maxDuration:1000},onTouchStart:function(a){if(this.callParent(arguments)===false){return false}var b=a.changedTouches[0];this.startTime=a.time;this.isHorizontal=true;this.isVertical=true;this.startX=b.pageX;this.startY=b.pageY},onTouchMove:function(f){var h=f.changedTouches[0],b=h.pageX,g=h.pageY,c=Math.abs(b-this.startX),a=Math.abs(g-this.startY),d=f.time;if(d-this.startTime>this.getMaxDuration()){return this.fail(this.self.MAX_DURATION_EXCEEDED)}if(this.isVertical&&c>this.getMaxOffset()){this.isVertical=false}if(this.isHorizontal&&a>this.getMaxOffset()){this.isHorizontal=false}if(!this.isHorizontal&&!this.isVertical){return this.fail(this.self.MAX_OFFSET_EXCEEDED)}},onTouchEnd:function(i){if(this.onTouchMove(i)===false){return false}var h=i.changedTouches[0],l=h.pageX,j=h.pageY,g=l-this.startX,f=j-this.startY,c=Math.abs(g),b=Math.abs(f),m=this.getMinDistance(),d=i.time-this.startTime,k,a;if(this.isVertical&&b<m){this.isVertical=false}if(this.isHorizontal&&c<m){this.isHorizontal=false}if(this.isHorizontal){k=(g<0)?"left":"right";a=c}else{if(this.isVertical){k=(f<0)?"up":"down";a=b}else{return this.fail(this.self.DISTANCE_NOT_ENOUGH)}}this.fire("swipe",i,[h],{touch:h,direction:k,distance:a,duration:d})}});Ext.define("Ext.event.recognizer.HorizontalSwipe",{extend:"Ext.event.recognizer.Swipe",handledEvents:["swipe"],onTouchStart:function(a){if(this.callParent(arguments)===false){return false}var b=a.changedTouches[0];this.startTime=a.time;this.startX=b.pageX;this.startY=b.pageY},onTouchMove:function(f){var h=f.changedTouches[0],g=h.pageY,a=Math.abs(g-this.startY),d=f.time,c=this.getMaxDuration(),b=this.getMaxOffset();if(d-this.startTime>c){return this.fail(this.self.MAX_DURATION_EXCEEDED)}if(a>b){return this.fail(this.self.MAX_OFFSET_EXCEEDED)}},onTouchEnd:function(f){if(this.onTouchMove(f)!==false){var i=f.changedTouches[0],a=i.pageX,b=a-this.startX,h=Math.abs(b),d=f.time-this.startTime,g=this.getMinDistance(),c;if(h<g){return this.fail(this.self.DISTANCE_NOT_ENOUGH)}c=(b<0)?"left":"right";this.fire("swipe",f,[i],{touch:i,direction:c,distance:h,duration:d})}}});Ext.define("Ext.event.recognizer.MultiTouch",{extend:"Ext.event.recognizer.Touch",requiredTouchesCount:2,isTracking:false,isStarted:false,onTouchStart:function(d){var a=this.requiredTouchesCount,c=d.touches,b=c.length;if(b===a){this.start(d)}else{if(b>a){this.end(d)}}},onTouchEnd:function(a){this.end(a)},start:function(){if(!this.isTracking){this.isTracking=true;this.isStarted=false}},end:function(a){if(this.isTracking){this.isTracking=false;if(this.isStarted){this.isStarted=false;this.fireEnd(a)}}}});Ext.define("Ext.event.recognizer.Pinch",{extend:"Ext.event.recognizer.MultiTouch",requiredTouchesCount:2,handledEvents:["pinchstart","pinch","pinchend"],startDistance:0,lastTouches:null,onTouchMove:function(c){if(!this.isTracking){return}var b=Array.prototype.slice.call(c.touches),d,a,f;d=b[0].point;a=b[1].point;f=d.getDistanceTo(a);if(f===0){return}if(!this.isStarted){this.isStarted=true;this.startDistance=f;this.fire("pinchstart",c,b,{touches:b,distance:f,scale:1})}else{this.fire("pinch",c,b,{touches:b,distance:f,scale:f/this.startDistance})}this.lastTouches=b},fireEnd:function(a){this.fire("pinchend",a,this.lastTouches)},fail:function(){return this.callParent(arguments)}});Ext.define("Ext.event.recognizer.Rotate",{extend:"Ext.event.recognizer.MultiTouch",requiredTouchesCount:2,handledEvents:["rotatestart","rotate","rotateend"],startAngle:0,lastTouches:null,lastAngle:null,onTouchMove:function(h){if(!this.isTracking){return}var g=Array.prototype.slice.call(h.touches),b=this.lastAngle,d,f,c,a,i,j;d=g[0].point;f=g[1].point;c=d.getAngleTo(f);if(b!==null){j=Math.abs(b-c);a=c+360;i=c-360;if(Math.abs(a-b)<j){c=a}else{if(Math.abs(i-b)<j){c=i}}}this.lastAngle=c;if(!this.isStarted){this.isStarted=true;this.startAngle=c;this.fire("rotatestart",h,g,{touches:g,angle:c,rotation:0})}else{this.fire("rotate",h,g,{touches:g,angle:c,rotation:c-this.startAngle})}this.lastTouches=g},fireEnd:function(a){this.lastAngle=null;this.fire("rotateend",a,this.lastTouches)}});Ext.define("Ext.ComponentQuery",{singleton:true,uses:["Ext.ComponentManager"]},function(){var g=this,j=["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(""),e=function(o,n){return n.method.apply(this,[o].concat(n.args))},a=function(p,t){var n=[],q=0,s=p.length,r,o=t!==">";for(;q<s;q++){r=p[q];if(r.getRefItems){n=n.concat(r.getRefItems(o))}}return n},f=function(o){var n=[],p=0,r=o.length,q;for(;p<r;p++){q=o[p];while(!!(q=(q.ownerCt||q.floatParent))){n.push(q)}}return n},l=function(o,t,s){if(t==="*"){return o.slice()}else{var n=[],p=0,r=o.length,q;for(;p<r;p++){q=o[p];if(q.isXType(t,s)){n.push(q)}}return n}},i=function(o,r){var t=Ext.Array,n=[],p=0,s=o.length,q;for(;p<s;p++){q=o[p];if(q.el?q.el.hasCls(r):t.contains(q.initCls(),r)){n.push(q)}}return n},m=function(p,u,o,t){var n=[],q=0,s=p.length,r;for(;q<s;q++){r=p[q];if(!t?!!r[u]:(String(r[u])===t)){n.push(r)}else{if(r.config){if(!t?!!r.config[u]:(String(r.config[u])===t)){n.push(r)}}}}return n},d=function(o,s){var n=[],p=0,r=o.length,q;for(;p<r;p++){q=o[p];if(q.getItemId()===s){n.push(q)}}return n},k=function(n,o,p){return g.pseudos[o](n,p)},h=/^(\s?([>\^])\s?|\s|$)/,c=/^(#)?([\w\-]+|\*)(?:\((true|false)\))?/,b=[{re:/^\.([\w\-]+)(?:\((true|false)\))?/,method:l},{re:/^(?:[\[](?:@)?([\w\-]+)\s?(?:(=|.=)\s?['"]?(.*?)["']?)?[\]])/,method:m},{re:/^#([\w\-]+)/,method:d},{re:/^\:([\w\-]+)(?:\(((?:\{[^\}]+\})|(?:(?!\{)[^\s>\/]*?(?!\})))\))?/,method:k},{re:/^(?:\{([^\}]+)\})/,method:j}];g.Query=Ext.extend(Object,{constructor:function(n){n=n||{};Ext.apply(this,n)},execute:function(o){var q=this.operations,r=0,s=q.length,p,n;if(!o){n=Ext.ComponentManager.all.getArray()}else{if(Ext.isArray(o)){n=o}}for(;r<s;r++){p=q[r];if(p.mode==="^"){n=f(n||[o])}else{if(p.mode){n=a(n||[o],p.mode)}else{n=e(n||a([o]),p)}}if(r===s-1){return n}}return[]},is:function(p){var o=this.operations,s=Ext.isArray(p)?p:[p],n=s.length,t=o[o.length-1],r,q;s=e(s,t);if(s.length===n){if(o.length>1){for(q=0,r=s.length;q<r;q++){if(Ext.Array.indexOf(this.execute(),s[q])===-1){return false}}}return true}return false}});Ext.apply(this,{cache:{},pseudos:{not:function(t,n){var u=Ext.ComponentQuery,r=0,s=t.length,q=[],p=-1,o;for(;r<s;++r){o=t[r];if(!u.is(o,n)){q[++p]=o}}return q}},query:function(o,v){var w=o.split(","),n=w.length,p=0,q=[],x=[],u={},s,r,t;for(;p<n;p++){o=Ext.String.trim(w[p]);s=this.parse(o);q=q.concat(s.execute(v))}if(n>1){r=q.length;for(p=0;p<r;p++){t=q[p];if(!u[t.id]){x.push(t);u[t.id]=true}}q=x}return q},is:function(o,n){if(!n){return true}var p=this.cache[n];if(!p){this.cache[n]=p=this.parse(n)}return p.is(o)},parse:function(q){var o=[],p=b.length,u,r,v,w,x,s,t,n;while(q&&u!==q){u=q;r=q.match(c);if(r){v=r[1];if(v==="#"){o.push({method:d,args:[Ext.String.trim(r[2])]})}else{if(v==="."){o.push({method:i,args:[Ext.String.trim(r[2])]})}else{o.push({method:l,args:[Ext.String.trim(r[2]),Boolean(r[3])]})}}q=q.replace(r[0],"")}while(!(w=q.match(h))){for(s=0;q&&s<p;s++){t=b[s];x=q.match(t.re);n=t.method;if(x){o.push({method:Ext.isString(t.method)?Ext.functionFactory("items",Ext.String.format.apply(Ext.String,[n].concat(x.slice(1)))):t.method,args:x.slice(1)});q=q.replace(x[0],"");break}if(s===(p-1)){Ext.Error.raise('Invalid ComponentQuery selector: "'+arguments[0]+'"')}}}if(w[1]){o.push({mode:w[2]||w[1]});q=q.replace(w[0],"")}}return new g.Query({operations:o})}})});Ext.define("Ext.event.publisher.ComponentDelegation",{extend:"Ext.event.publisher.Publisher",requires:["Ext.Component","Ext.ComponentQuery"],targetType:"component",optimizedSelectorRegex:/^#([\w\-]+)((?:[\s]*)>(?:[\s]*)|(?:\s*))([\w\-]+)$/i,handledEvents:["*"],getSubscribers:function(b,a){var d=this.subscribers,c=d[b];if(!c&&a){c=d[b]={type:{$length:0},selector:[],$length:0}}return c},subscribe:function(g,f){if(this.idSelectorRegex.test(g)){return false}var e=g.match(this.optimizedSelectorRegex),a=this.getSubscribers(f,true),k=a.type,c=a.selector,d,i,j,b,h;if(e!==null){d=e[1];i=e[2].indexOf(">")===-1;j=e[3];b=k[j];if(!b){k[j]=b={descendents:{$length:0},children:{$length:0},$length:0}}h=i?b.descendents:b.children;if(h.hasOwnProperty(d)){h[d]++;return true}h[d]=1;h.$length++;b.$length++;k.$length++}else{if(c.hasOwnProperty(g)){c[g]++;return true}c[g]=1;c.push(g)}a.$length++;return true},unsubscribe:function(g,f,k){var a=this.getSubscribers(f);if(!a){return false}var e=g.match(this.optimizedSelectorRegex),l=a.type,c=a.selector,d,i,j,b,h;k=Boolean(k);if(e!==null){d=e[1];i=e[2].indexOf(">")===-1;j=e[3];b=l[j];if(!b){return true}h=i?b.descendents:b.children;if(!h.hasOwnProperty(d)||(!k&&--h[d]>0)){return true}delete h[d];h.$length--;b.$length--;l.$length--}else{if(!c.hasOwnProperty(g)||(!k&&--c[g]>0)){return true}delete c[g];Ext.Array.remove(c,g)}if(--a.$length===0){delete this.subscribers[f]}return true},notify:function(d,a){var c=this.getSubscribers(a),e,b;if(!c||c.$length===0){return false}e=d.substr(1);b=Ext.ComponentManager.get(e);if(b&&b.hasParent()){this.dispatcher.doAddListener(this.targetType,d,a,"publish",this,{args:[a,b]},"before")}},matchesSelector:function(b,a){return Ext.ComponentQuery.is(b,a)},dispatch:function(d,b,c,a){this.dispatcher.doDispatchEvent(this.targetType,d,b,c,null,a)},publish:function(g,k){var e=this.getSubscribers(g);if(!e){return}var p=arguments[arguments.length-1],o=e.type,b=e.selector,d=Array.prototype.slice.call(arguments,2,-2),l=k.xtypesChain,s,n,t,a,m,v,r,u,h,f,q,c;for(u=0,h=l.length;u<h;u++){f=l[u];e=o[f];if(e&&e.$length>0){s=e.descendents;if(s.$length>0){if(!a){a=k.getAncestorIds()}for(q=0,c=a.length;q<c;q++){m=a[q];if(s.hasOwnProperty(m)){this.dispatch("#"+m+" "+f,g,d,p)}}}n=e.children;if(n.$length>0){if(!t){if(a){t=a[0]}else{v=k.getParent();if(v){t=v.getId()}}}if(t){if(n.hasOwnProperty(t)){this.dispatch("#"+t+" > "+f,g,d,p)}}}}}h=b.length;if(h>0){for(u=0;u<h;u++){r=b[u];if(this.matchesSelector(k,r)){this.dispatch(r,g,d,p)}}}}});Ext.define("Ext.event.publisher.ComponentPaint",{extend:"Ext.event.publisher.Publisher",targetType:"component",handledEvents:["painted","erased"],eventNames:{painted:"painted",erased:"erased"},constructor:function(){this.callParent(arguments);this.hiddenQueue=[];this.renderedQueue=[]},getSubscribers:function(b,a){var c=this.subscribers;if(!c.hasOwnProperty(b)){if(!a){return null}c[b]={$length:0}}return c[b]},setDispatcher:function(a){var b=this.targetType;a.doAddListener(b,"*","renderedchange","onBeforeComponentRenderedChange",this,null,"before");a.doAddListener(b,"*","hiddenchange","onBeforeComponentHiddenChange",this,null,"before");a.doAddListener(b,"*","renderedchange","onComponentRenderedChange",this);a.doAddListener(b,"*","hiddenchange","onComponentHiddenChange",this);return this.callParent(arguments)},subscribe:function(d,a){var b=d.match(this.idSelectorRegex),c,e;if(!b){return false}e=b[1];c=this.getSubscribers(a,true);if(c.hasOwnProperty(e)){c[e]++;return true}c[e]=1;c.$length++;return true},unsubscribe:function(e,a,c){var b=e.match(this.idSelectorRegex),d,f;if(!b||!(d=this.getSubscribers(a))){return false}f=b[1];if(!d.hasOwnProperty(f)||(!c&&--d[f]>0)){return true}delete d[f];if(--d.$length===0){delete this.subscribers[a]}return true},onBeforeComponentRenderedChange:function(b,d,g){var f=this.eventNames,c=g?f.painted:f.erased,e=this.getSubscribers(c),a=this.renderedQueue;if(e&&e.$length>0){this.publish(e,d,c,a)}},onBeforeComponentHiddenChange:function(c,d){var f=this.eventNames,b=d?f.erased:f.painted,e=this.getSubscribers(b),a=this.hiddenQueue;if(e&&e.$length>0){this.publish(e,c,b,a)}},onComponentRenderedChange:function(){if(this.renderedQueue.length>0){this.dispatchQueue(this.renderedQueue)}},onComponentHiddenChange:function(){if(this.hiddenQueue.length>0){this.dispatchQueue(this.hiddenQueue)}},dispatchQueue:function(g){var l=this.dispatcher,a=this.targetType,b=this.eventNames,e=g.slice(),f=e.length,c,k,h,d,j;g.length=0;if(f>0){for(c=0;c<f;c++){k=e[c];h=k.component;d=k.eventName;j=h.isPainted();if((d===b.painted&&j)||d===b.erased&&!j){l.doDispatchEvent(a,"#"+k.id,d,[h])}}e.length=0}},publish:function(a,k,f,j){var c=k.getId(),b=false,d,h,e,g,l;if(a[c]){d=this.eventNames;l=k.isPainted();if((f===d.painted&&!l)||f===d.erased&&l){b=true}else{return this}}if(k.isContainer){h=k.getItems().items;for(e=0,g=h.length;e<g;e++){this.publish(a,h[e],f,j)}}else{if(k.isDecorator){this.publish(a,k.getComponent(),f,j)}}if(b){j.push({id:c,eventName:f,component:k})}}});Ext.define("Ext.event.publisher.ComponentSize",{extend:"Ext.event.publisher.Publisher",requires:["Ext.ComponentManager","Ext.util.SizeMonitor"],targetType:"component",handledEvents:["resize"],constructor:function(){this.callParent(arguments);this.sizeMonitors={}},subscribe:function(g){var c=g.match(this.idSelectorRegex),f=this.subscribers,a=this.sizeMonitors,d=this.dispatcher,e=this.targetType,b;if(!c){return false}if(!f.hasOwnProperty(g)){f[g]=0;d.addListener(e,g,"painted","onComponentPainted",this,null,"before");b=Ext.ComponentManager.get(c[1]);if(!b){Ext.Logger.error("Adding a listener to the 'resize' event of a non-existing component")}a[g]=new Ext.util.SizeMonitor({element:b.element,callback:this.onComponentSizeChange,scope:this,args:[this,g]})}f[g]++;return true},unsubscribe:function(h,b,e){var c=h.match(this.idSelectorRegex),g=this.subscribers,d=this.dispatcher,f=this.targetType,a=this.sizeMonitors;if(!c){return false}if(!g.hasOwnProperty(h)||(!e&&--g[h]>0)){return true}a[h].destroy();delete a[h];d.removeListener(f,h,"painted","onComponentPainted",this,"before");delete g[h];return true},onComponentPainted:function(b){var c=b.getObservableId(),a=this.sizeMonitors[c];a.refresh()},onComponentSizeChange:function(a,b){this.dispatcher.doDispatchEvent(this.targetType,b,"resize",[a])}});Ext.define("Ext.log.Base",{config:{},constructor:function(a){this.initConfig(a);return this}});(function(){var a=Ext.define("Ext.log.Logger",{extend:"Ext.log.Base",statics:{defaultPriority:"info",priorities:{verbose:0,info:1,deprecate:2,warn:3,error:4}},config:{enabled:true,minPriority:"deprecate",writers:{}},log:function(m,k,c){if(!this.getEnabled()){return this}var h=a,n=h.priorities,j=n[k],d=this.log.caller,l="",e=this.getWriters(),b,f,g;if(!k){k="info"}if(n[this.getMinPriority()]>j){return this}if(!c){c=1}if(Ext.isArray(m)){m=m.join(" ")}else{m=String(m)}if(typeof c=="number"){f=c;do{f--;d=d.caller;if(!d){break}if(!g){g=d.caller}if(f<=0&&d.displayName){break}}while(d!==g);l=Ext.getDisplayName(d)}else{d=d.caller;l=Ext.getDisplayName(c)+"#"+d.$name}b={time:Ext.Date.now(),priority:j,priorityName:k,message:m,caller:d,callerDisplayName:l};for(f in e){if(e.hasOwnProperty(f)){e[f].write(Ext.merge({},b))}}return this}},function(){Ext.Object.each(this.priorities,function(b){this.override(b,function(c,d){if(!d){d=1}if(typeof d=="number"){d+=1}this.log(c,b,d)})},this)})})();Ext.define("Ext.log.formatter.Formatter",{extend:"Ext.log.Base",config:{messageFormat:"{message}"},format:function(a){return this.substitute(this.getMessageFormat(),a)},substitute:function(b,d){var a,c;for(a in d){if(d.hasOwnProperty(a)){c=d[a];b=b.replace(new RegExp("\\{"+a+"\\}","g"),c)}}return b}});Ext.define("Ext.log.writer.Writer",{extend:"Ext.log.Base",requires:["Ext.log.formatter.Formatter"],config:{formatter:null,filters:{}},constructor:function(){this.activeFilters=[];return this.callParent(arguments)},updateFilters:function(c){var d=this.activeFilters,a,b;d.length=0;for(a in c){if(c.hasOwnProperty(a)){b=c[a];d.push(b)}}},write:function(f){var e=this.activeFilters,b=this.getFormatter(),a,d,c;for(a=0,d=e.length;a<d;a++){c=e[a];if(!e[a].accept(f)){return this}}if(b){f.message=b.format(f)}this.doWrite(f);return this},doWrite:Ext.emptyFn});Ext.define("Ext.log.writer.Console",{extend:"Ext.log.writer.Writer",config:{throwOnErrors:true,throwOnWarnings:false},doWrite:function(d){var c=d.message,b=d.priorityName,a;if(b==="error"&&this.getThrowOnErrors()){throw new Error(c)}if(typeof console!=="undefined"){a=b;if(a==="deprecate"){a="warn"}if(a==="warn"&&this.getThrowOnWarnings()){throw new Error(c)}if(!(a in console)){a="log"}console[a](c)}}});Ext.define("Ext.log.formatter.Default",{extend:"Ext.log.formatter.Formatter",config:{messageFormat:"[{priorityName}][{callerDisplayName}] {message}"},format:function(a){var a=Ext.merge({},a,{priorityName:a.priorityName.toUpperCase()});return this.callParent([a])}});Ext.define("Ext.fx.runner.Css",{extend:"Ext.Evented",requires:["Ext.fx.Animation"],prefixedProperties:{transform:true,"transform-origin":true,perspective:true,"transform-style":true,transition:true,"transition-property":true,"transition-duration":true,"transition-timing-function":true,"transition-delay":true,animation:true,"animation-name":true,"animation-duration":true,"animation-iteration-count":true,"animation-direction":true,"animation-timing-function":true,"animation-delay":true},lengthProperties:{top:true,right:true,bottom:true,left:true,width:true,height:true,"max-height":true,"max-width":true,"min-height":true,"min-width":true,"margin-bottom":true,"margin-left":true,"margin-right":true,"margin-top":true,"padding-bottom":true,"padding-left":true,"padding-right":true,"padding-top":true,"border-bottom-width":true,"border-left-width":true,"border-right-width":true,"border-spacing":true,"border-top-width":true,"border-width":true,"outline-width":true,"letter-spacing":true,"line-height":true,"text-indent":true,"word-spacing":true,"font-size":true,translate:true,translateX:true,translateY:true,translateZ:true,translate3d:true},durationProperties:{"transition-duration":true,"transition-delay":true,"animation-duration":true,"animation-delay":true},angleProperties:{rotate:true,rotateX:true,rotateY:true,rotateZ:true,skew:true,skewX:true,skewY:true},lengthUnitRegex:/([a-z%]*)$/,DEFAULT_UNIT_LENGTH:"px",DEFAULT_UNIT_ANGLE:"deg",DEFAULT_UNIT_DURATION:"ms",formattedNameCache:{},constructor:function(){var a=Ext.feature.has.Css3dTransforms;if(a){this.transformMethods=["translateX","translateY","translateZ","rotate","rotateX","rotateY","rotateZ","skewX","skewY","scaleX","scaleY","scaleZ"]}else{this.transformMethods=["translateX","translateY","rotate","skewX","skewY","scaleX","scaleY"]}this.vendorPrefix=Ext.browser.getStyleDashPrefix();this.ruleStylesCache={};return this},getStyleSheet:function(){var c=this.styleSheet,a,b;if(!c){a=document.createElement("style");a.type="text/css";(document.head||document.getElementsByTagName("head")[0]).appendChild(a);b=document.styleSheets;this.styleSheet=c=b[b.length-1]}return c},applyRules:function(i){var g=this.getStyleSheet(),k=this.ruleStylesCache,j=g.cssRules,c,e,h,b,d,a,f;for(c in i){e=i[c];h=k[c];if(h===undefined){d=j.length;g.insertRule(c+"{}",d);h=k[c]=j.item(d).style}b=h.$cache;if(!b){b=h.$cache={}}for(a in e){f=this.formatValue(e[a],a);a=this.formatName(a);if(b[a]!==f){b[a]=f;if(f===null){h.removeProperty(a)}else{h.setProperty(a,f,"important")}}}}return this},applyStyles:function(d){var g,c,f,b,a,e;for(g in d){c=document.getElementById(g);if(!c){return this}f=c.style;b=d[g];for(a in b){e=this.formatValue(b[a],a);a=this.formatName(a);if(e===null){f.removeProperty(a)}else{f.setProperty(a,e,"important")}}}return this},formatName:function(b){var a=this.formattedNameCache,c=a[b];if(!c){if(this.prefixedProperties[b]){c=this.vendorPrefix+b}else{c=b}a[b]=c}return c},formatValue:function(j,b){var g=typeof j,l=this.DEFAULT_UNIT_LENGTH,e,a,d,f,c,k,h;if(g=="string"){if(this.lengthProperties[b]){h=j.match(this.lengthUnitRegex)[1];if(h.length>0){if(h!==l){Ext.Logger.error("Length unit: '"+h+"' in value: '"+j+"' of property: '"+b+"' is not valid for animation. Only 'px' is allowed")}}else{return j+l}}return j}else{if(g=="number"){if(j==0){return"0"}if(this.lengthProperties[b]){return j+l}if(this.angleProperties[b]){return j+this.DEFAULT_UNIT_ANGLE}if(this.durationProperties[b]){return j+this.DEFAULT_UNIT_DURATION}}else{if(b==="transform"){e=this.transformMethods;c=[];for(d=0,f=e.length;d<f;d++){a=e[d];c.push(a+"("+this.formatValue(j[a],a)+")")}return c.join(" ")}else{if(Ext.isArray(j)){k=[];for(d=0,f=j.length;d<f;d++){k.push(this.formatValue(j[d],b))}return(k.length>0)?k.join(", "):"none"}}}}return j}});Ext.define("Ext.fx.runner.CssTransition",{extend:"Ext.fx.runner.Css",listenersAttached:false,constructor:function(){this.runningAnimationsData={};return this.callParent(arguments)},attachListeners:function(){this.listenersAttached=true;this.getEventDispatcher().addListener("element","*","transitionend","onTransitionEnd",this)},onTransitionEnd:function(b){var a=b.target,c=a.id;if(c&&this.runningAnimationsData.hasOwnProperty(c)){this.refreshRunningAnimationsData(Ext.get(a),[b.browserEvent.propertyName])}},onAnimationEnd:function(g,f,d,j,n){var b=g.getId(),k=this.runningAnimationsData[b],c=k.nameMap,o={},m={},h,e,l,a;o[b]=m;if(f.onBeforeEnd){f.onBeforeEnd.call(f.scope||this,g,j)}d.fireEvent("animationbeforeend",d,g,j);if(n||(!j&&!f.preserveEndState)){h=f.toPropertyNames;for(e=0,l=h.length;e<l;e++){a=h[e];if(!c.hasOwnProperty(a)){m[a]=null}}}if(f.after){Ext.merge(m,f.after)}this.applyStyles(o);if(f.onEnd){f.onEnd.call(f.scope||this,g,j)}d.fireEvent("animationend",d,g,j)},onAllAnimationsEnd:function(b){var c=b.getId(),a={};delete this.runningAnimationsData[c];a[c]={"transition-property":null,"transition-duration":null,"transition-timing-function":null,"transition-delay":null};this.applyStyles(a)},hasRunningAnimations:function(a){var c=a.getId(),b=this.runningAnimationsData;return b.hasOwnProperty(c)&&b[c].sessions.length>0},refreshRunningAnimationsData:function(d,k,t,p){var g=d.getId(),q=this.runningAnimationsData,a=q[g],m=a.nameMap,s=a.nameList,b=a.sessions,f,h,e,u,l,c,r,o,n=false;t=Boolean(t);p=Boolean(p);if(!b){return this}f=b.length;if(f===0){return this}if(p){a.nameMap={};s.length=0;for(l=0;l<f;l++){c=b[l];this.onAnimationEnd(d,c.data,c.animation,t,p)}b.length=0}else{for(l=0;l<f;l++){c=b[l];r=c.map;o=c.list;for(h=0,e=k.length;h<e;h++){u=k[h];if(r[u]){delete r[u];Ext.Array.remove(o,u);c.length--;if(--m[u]==0){delete m[u];Ext.Array.remove(s,u)}}}if(c.length==0){b.splice(l,1);l--;f--;n=true;this.onAnimationEnd(d,c.data,c.animation,t)}}}if(!p&&!t&&b.length==0&&n){this.onAllAnimationsEnd(d)}},getRunningData:function(b){var a=this.runningAnimationsData;if(!a.hasOwnProperty(b)){a[b]={nameMap:{},nameList:[],sessions:[]}}return a[b]},getTestElement:function(){var c=this.testElement,b,d,a;if(!c){b=document.createElement("iframe");a=b.style;a.setProperty("visibility","hidden","important");a.setProperty("width","0px","important");a.setProperty("height","0px","important");a.setProperty("position","absolute","important");a.setProperty("border","0px","important");a.setProperty("zIndex","-1000","important");document.body.appendChild(b);d=b.contentDocument;d.open();d.writeln("</body>");d.close();this.testElement=c=d.createElement("div");c.style.setProperty("position","absolute","!important");d.body.appendChild(c);this.testElementComputedStyle=window.getComputedStyle(c)}return c},getCssStyleValue:function(b,e){var d=this.getTestElement(),a=this.testElementComputedStyle,c=d.style;c.setProperty(b,e);e=a.getPropertyValue(b);c.removeProperty(b);return e},run:function(o){var E=this,h=this.lengthProperties,w={},D={},F={},d,r,x,e,t,H,u,p,q,a,z,y,n,A,l,s,g,B,G,k,f,v,m,c,C,b;if(!this.listenersAttached){this.attachListeners()}o=Ext.Array.from(o);for(z=0,n=o.length;z<n;z++){A=o[z];A=Ext.factory(A,Ext.fx.Animation);d=A.getElement();g=window.getComputedStyle(d.dom);r=d.getId();F=Ext.merge({},A.getData());if(A.onBeforeStart){A.onBeforeStart.call(A.scope||this,d);A.fireEvent("animationstart",A)}F[r]=F;t=F.before;x=F.from;e=F.to;F.fromPropertyNames=H=[];F.toPropertyNames=u=[];for(G in e){if(e.hasOwnProperty(G)){e[G]=k=this.formatValue(e[G],G);B=this.formatName(G);m=h.hasOwnProperty(G);if(!m){k=this.getCssStyleValue(B,k)}if(x.hasOwnProperty(G)){x[G]=v=this.formatValue(x[G],G);if(!m){v=this.getCssStyleValue(B,v)}if(k!==v){H.push(B);u.push(B)}}else{f=g.getPropertyValue(B);if(k!==f){u.push(B)}}}}l=u.length;if(l===0){this.onAnimationEnd(d,F,A);continue}a=this.getRunningData(r);b=a.sessions;if(b.length>0){this.refreshRunningAnimationsData(d,Ext.Array.merge(H,u),true,F.replacePrevious)}c=a.nameMap;C=a.nameList;s={};for(y=0;y<l;y++){G=u[y];s[G]=true;if(!c.hasOwnProperty(G)){c[G]=1;C.push(G)}else{c[G]++}}b.push({element:d,map:s,list:u.slice(),length:l,data:F,animation:A});w[r]=x=Ext.apply(Ext.Object.chain(t),x);if(C.length>0){H=Ext.Array.difference(C,H);u=Ext.Array.merge(H,u);x["transition-property"]=H}D[r]=e=Ext.Object.chain(e);e["transition-property"]=u;e["transition-duration"]=F.duration;e["transition-timing-function"]=F.easing;e["transition-delay"]=F.delay}q=this.$className;this.applyStyles(w);p=function(i){if(i.data===q&&i.source===window){window.removeEventListener("message",p,false);E.applyStyles(D)}};window.addEventListener("message",p,false);window.postMessage(q,"*")}});Ext.define("Ext.fx.runner.CssAnimation",{extend:"Ext.fx.runner.Css",constructor:function(){this.runningAnimationsMap={};this.elementEndStates={};this.animationElementMap={};this.keyframesRulesCache={};this.uniqueId=0;return this.callParent(arguments)},attachListeners:function(){var a=this.getEventDispatcher();this.listenersAttached=true;a.addListener("element","*","animationstart","onAnimationStart",this);a.addListener("element","*","animationend","onAnimationEnd",this)},onAnimationStart:function(g){var b=g.browserEvent.animationName,a=this.animationElementMap[b],f=this.runningAnimationsMap[a][b],h=this.elementEndStates,c=h[a],d={};console.log("START============= "+b);if(c){delete h[a];d[a]=c;this.applyStyles(d)}if(f.before){d[a]=f.before;this.applyStyles(d)}},onAnimationEnd:function(i){var c=i.target,b=i.browserEvent.animationName,d=this.animationElementMap,a=d[b],f=this.runningAnimationsMap,h=f[a],g=h[b];console.log("END============= "+b);if(g.onBeforeEnd){g.onBeforeEnd.call(g.scope||this,c)}if(g.onEnd){g.onEnd.call(g.scope||this,c)}delete d[b];delete h[b];this.removeKeyframesRule(b)},generateAnimationId:function(){return"animation-"+(++this.uniqueId)},run:function(f){var s={},t=this.elementEndStates,o=this.animationElementMap,r=this.runningAnimationsMap,b,d,h,k,p,g,q,u,m,l,c,e,a,j,n;if(!this.listenersAttached){this.attachListeners()}f=Ext.Array.from(f);for(p=0,g=f.length;p<g;p++){q=f[p];q=Ext.factory(q,Ext.fx.Animation);h=q.getElement().getId();k=q.getName()||this.generateAnimationId();o[k]=h;q=q.getData();d=q.states;this.addKeyframesRule(k,d);b=r[h];if(!b){b=r[h]={}}b[k]=q;l=[];c=[];e=[];a=[];j=[];n=[];for(u in b){if(b.hasOwnProperty(u)){m=b[u];l.push(u);c.push(m.duration);e.push(m.easing);a.push(m.delay);j.push(m.direction);n.push(m.iteration)}}s[h]={"animation-name":l,"animation-duration":c,"animation-timing-function":e,"animation-delay":a,"animation-direction":j,"animation-iteration-count":n};if(q.preserveEndState){t[h]=d["100%"]}}this.applyStyles(s)},addKeyframesRule:function(a,c){var k,e,b,g,i,j,d,h,f;g=this.getStyleSheet();i=g.cssRules;d=i.length;g.insertRule("@"+this.vendorPrefix+"keyframes "+a+"{}",d);b=i[d];for(k in c){e=c[k];i=b.cssRules;d=i.length;j=[];for(h in e){f=this.formatValue(e[h],h);h=this.formatName(h);j.push(h+":"+f)}b.insertRule(k+"{"+j.join(";")+"}",d)}return this},removeKeyframesRule:function(a){var f=this.getStyleSheet(),e=f.cssRules,b,c,d;for(b=0,c=e.length;b<c;b++){d=e[b];if(d.name===a){f.removeRule(b);break}}return this}});Ext.define("Ext.fx.Runner",{requires:["Ext.fx.runner.CssTransition","Ext.fx.runner.CssAnimation"],constructor:function(){return new Ext.fx.runner.CssTransition()}});Ext.define("Ext.LoadMask",{extend:"Ext.Mask",xtype:"loadmask",config:{message:"Loading...",messageCls:Ext.baseCSSPrefix+"mask-message",indicator:true,listeners:{painted:"onPainted",erased:"onErased"}},getTemplate:function(){var a=Ext.baseCSSPrefix;return[{reference:"innerElement",cls:a+"mask-inner",children:[{reference:"indicatorElement",cls:a+"loading-spinner-outer",children:[{cls:a+"loading-spinner",children:[{tag:"span",cls:a+"loading-top"},{tag:"span",cls:a+"loading-right"},{tag:"span",cls:a+"loading-bottom"},{tag:"span",cls:a+"loading-left"}]}]},{reference:"messageElement"}]}]},updateMessage:function(a){this.messageElement.setHtml(a)},updateMessageCls:function(b,a){this.messageElement.replaceCls(a,b)},updateIndicator:function(a){this[a?"removeCls":"addCls"](Ext.baseCSSPrefix+"indicator-hidden")},onPainted:function(){this.getParent().on({scope:this,resize:this.refreshPosition});this.refreshPosition()},onErased:function(){this.getParent().un({scope:this,resize:this.refreshPosition})},refreshPosition:function(){var c=this.getParent(),d=c.getScrollable(),a=(d)?d.getScroller():null,f=(a)?a.position:{x:0,y:0},e=c.element.getSize(),b=this.element.getSize();this.innerElement.setStyle({marginTop:Math.round(e.height-b.height+(f.y*2))+"px",marginLeft:Math.round(e.width-b.width+f.x)+"px"})}},function(){this.override({constructor:function(b,a){if(typeof a!=="undefined"){b=a;Ext.Logger.deprecate("You no longer need to pass an element to create a Ext.LoadMask. It is a component and can be shown using the Ext.Container.masked configuration.",this)}if(b){if(b.hasOwnProperty("msg")){b.message=b.msg;Ext.Logger.deprecate("'msg' config is deprecated, please use 'message' config instead",this);delete b.msg}if(b.hasOwnProperty("msgCls")){b.messageCls=b.msgCls;Ext.Logger.deprecate("'msgCls' config is deprecated, please use 'messageCls' config instead",this);delete b.msgCls}if(b.hasOwnProperty("store")){Ext.Logger.deprecate("'store' config is deprecated. You can no longer bind a store to a Ext.LoadMask",this);delete b.store}}this.callParent([b])},bindStore:function(){Ext.Logger.deprecate("You can no longer bind a store to a Ext.LoadMask",this)}})});Ext.define("Ext.viewport.Default",{extend:"Ext.Container",xtype:"viewport",PORTRAIT:"portrait",LANDSCAPE:"landscape",requires:["Ext.LoadMask"],config:{autoMaximize:false,preventPanning:true,preventZooming:false,autoRender:true,layout:"card",width:"100%",height:"100%"},isReady:false,isViewport:true,isMaximizing:false,id:"ext-viewport",isInputRegex:/^(input|textarea|select)$/i,focusedElement:null,fullscreenItemCls:Ext.baseCSSPrefix+"fullscreen",constructor:function(a){var b=Ext.Function.bind;this.activeShowByItems={};this.activeShowByItemsCount=0;this.doPreventPanning=b(this.doPreventPanning,this);this.doPreventZooming=b(this.doPreventZooming,this);this.maximizeOnEvents=["ready","orientationchange"];this.orientation=this.determineOrientation();this.windowWidth=this.getWindowWidth();this.windowHeight=this.getWindowHeight();this.windowOuterHeight=this.getWindowOuterHeight();if(!this.stretchHeights){this.stretchHeights={}}this.callParent([a]);if(this.supportsOrientation()){this.addWindowListener("orientationchange",b(this.onOrientationChange,this))}else{this.addWindowListener("resize",b(this.onResize,this))}document.addEventListener("focus",b(this.onElementFocus,this),true);document.addEventListener("blur",b(this.onElementBlur,this),true);Ext.onDocumentReady(this.onDomReady,this);this.on("ready",this.onReady,this,{single:true});this.getEventDispatcher().addListener("component","*","fullscreen","onItemFullscreenChange",this);return this},onDomReady:function(){this.isReady=true;this.fireEvent("ready",this)},onReady:function(){if(this.getAutoRender()){this.render()}},onElementFocus:function(a){this.focusedElement=a.target},onElementBlur:function(){this.focusedElement=null},render:function(){if(!this.rendered){var a=Ext.getBody(),b=Ext.baseCSSPrefix,g=[],d=Ext.os,f=d.name.toLowerCase(),e=d.version.getMajor(),c=this.getOrientation();this.renderTo(a);g.push(b+d.deviceType.toLowerCase());if(d.is.iPad){g.push(b+"ipad")}g.push(b+f);if(e){g.push(b+f+"-"+e)}if(d.is.BlackBerry){g.push(b+"bb")}if(Ext.browser.is.Standalone){g.push(b+"standalone")}g.push(b+c);a.addCls(g)}},applyAutoMaximize:function(a){if(a){this.on("ready","doAutoMaximizeOnReady",this,{single:true});this.on("orientationchange","doAutoMaximizeOnOrientationChange",this)}else{this.un("ready","doAutoMaximizeOnReady",this);this.un("orientationchange","doAutoMaximizeOnOrientationChange",this)}return a},applyPreventPanning:function(a){if(a){this.addWindowListener("touchmove",this.doPreventPanning,false)}else{this.removeWindowListener("touchmove",this.doPreventPanning,false)}return a},applyPreventZooming:function(a){if(a){this.addWindowListener("touchstart",this.doPreventZooming,false)}else{this.removeWindowListener("touchstart",this.doPreventZooming,false)}return a},doAutoMaximizeOnReady:function(){var a=arguments[arguments.length-1];a.pause();this.isMaximizing=true;this.on("maximize",function(){this.isMaximizing=false;this.updateSize();a.resume();this.fireEvent("ready",this)},this,{single:true});this.maximize()},doAutoMaximizeOnOrientationChange:function(){var a=arguments[arguments.length-1],b=a.firingArguments;a.pause();this.isMaximizing=true;this.on("maximize",function(){this.isMaximizing=false;this.updateSize();b[1]=this.windowWidth;b[2]=this.windowHeight;a.resume()},this,{single:true});this.maximize()},doPreventPanning:function(a){a.preventDefault()},doPreventZooming:function(b){var a=b.target;if(a&&a.nodeType===1&&!this.isInputRegex.test(a.tagName)){b.preventDefault()}},addWindowListener:function(b,c,a){window.addEventListener(b,c,a)},removeWindowListener:function(b,c,a){window.removeEventListener(b,c,a)},doAddListener:function(a,d,c,b){if(a==="ready"&&this.isReady&&!this.isMaximizing){d.call(c);return this}this.mixins.observable.doAddListener.apply(this,arguments)},addDispatcherListener:function(b,d,g,f,c,a){var e=this.getEventDispatcher();if(d==="resize"&&b===this.getObservableId()){return e.doAddListener(this.observableType,b,d,g,f,c,a)}return this.callParent(arguments)},removeDispatcherListener:function(b,c,f,e,a){var d=this.getEventDispatcher();if(c==="resize"&&b===this.getObservableId()){return d.doRemoveListener(this.observableType,b,c,f,e,a)}return this.callParent(arguments)},supportsOrientation:function(){return Ext.feature.has.Orientation},onResize:function(){var c=this.windowWidth,f=this.windowHeight,e=this.getWindowWidth(),a=this.getWindowHeight(),d=this.getOrientation(),b=this.determineOrientation();if(c!==e||f!==a){this.fireResizeEvent(e,a);if(d!==b){this.fireOrientationChangeEvent(b,d)}}},fireResizeEvent:function(b,a){this.updateSize(b,a);this.fireEvent("resize",this,b,a)},onOrientationChange:function(){var b=this.getOrientation(),a=this.determineOrientation();if(a!==b){this.fireOrientationChangeEvent(a,b);this.fireResizeEvent(this.windowWidth,this.windowHeight)}},fireOrientationChangeEvent:function(b,c){var a=Ext.baseCSSPrefix;Ext.getBody().replaceCls(a+c,a+b);this.orientation=b;this.updateSize();this.fireEvent("orientationchange",this,b,this.windowWidth,this.windowHeight)},updateSize:function(b,a){this.windowWidth=b!==undefined?b:this.getWindowWidth();this.windowHeight=a!==undefined?a:this.getWindowHeight();return this},waitUntil:function(h,e,g,a,f){if(!a){a=50}if(!f){f=2000}var c=this,b=0;setTimeout(function d(){b+=a;if(h.call(c)===true){if(e){e.call(c)}}else{if(b>=f){if(g){g.call(c)}}else{setTimeout(d,a)}}},a)},maximize:function(){this.fireMaximizeEvent()},fireMaximizeEvent:function(){this.updateSize();this.fireEvent("maximize",this)},doSetHeight:function(a){Ext.getBody().setHeight(a);this.callParent(arguments)},doSetWidth:function(a){Ext.getBody().setWidth(a);this.callParent(arguments)},scrollToTop:function(){window.scrollTo(0,-1)},getWindowWidth:function(){return window.innerWidth},getWindowHeight:function(){return window.innerHeight},getWindowOuterHeight:function(){return window.outerHeight},getWindowOrientation:function(){return window.orientation},getOrientation:function(){return this.orientation},getSize:function(){return{width:this.windowWidth,height:this.windowHeight}},determineOrientation:function(){var b=this.PORTRAIT,a=this.LANDSCAPE;if(this.supportsOrientation()){if(this.getWindowOrientation()%180===0){return b}return a}else{if(this.getWindowHeight()>=this.getWindowWidth()){return b}return a}},onItemFullscreenChange:function(a){a.addCls(this.fullscreenItemCls);this.add(a)},keyboardHideField:null,hideKeyboard:function(){var a=this;if(Ext.os.is.iOS){document.activeElement.blur();if(this.getAutoMaximize()&&!this.isFullscreen()){setTimeout(function(){Ext.Viewport.scrollToTop()},50)}}else{if(!a.keyboardHideField){a.keyboardHideField=document.createElement("input");a.keyboardHideField.setAttribute("type","text");a.keyboardHideField.setAttribute("style","position:absolute;top:-1000px");document.body.appendChild(a.keyboardHideField)}setTimeout(function(){a.keyboardHideField.focus();setTimeout(function(){a.keyboardHideField.setAttribute("style","display:none;")},50)},50)}}});Ext.define("Ext.viewport.Ios",{extend:"Ext.viewport.Default",isFullscreen:function(){return this.isHomeScreen()},isHomeScreen:function(){return window.navigator.standalone===true},constructor:function(){this.callParent(arguments);if(this.getAutoMaximize()&&!this.isFullscreen()){this.addWindowListener("touchstart",Ext.Function.bind(this.onTouchStart,this))}},maximize:function(){if(this.isFullscreen()){return this.callParent()}var c=this.stretchHeights,b=this.orientation,d=this.getWindowHeight(),a=c[b];if(window.scrollY>0){this.scrollToTop();if(!a){c[b]=a=this.getWindowHeight()}this.setHeight(a);this.fireMaximizeEvent()}else{if(!a){a=this.getScreenHeight()}this.setHeight(a);this.waitUntil(function(){this.scrollToTop();return d!==this.getWindowHeight()},function(){if(!c[b]){a=c[b]=this.getWindowHeight();this.setHeight(a)}this.fireMaximizeEvent()},function(){Ext.Logger.error("Timeout waiting for window.innerHeight to change",this)})}},getScreenHeight:function(){return window.screen[this.orientation===this.PORTRAIT?"height":"width"]},onElementFocus:function(){if(this.getAutoMaximize()&&!this.isFullscreen()){clearTimeout(this.scrollToTopTimer)}this.callParent(arguments)},onElementBlur:function(){if(this.getAutoMaximize()&&!this.isFullscreen()){this.scrollToTopTimer=setTimeout(this.scrollToTop,500)}this.callParent(arguments)},onTouchStart:function(){if(this.focusedElement===null){this.scrollToTop()}},scrollToTop:function(){window.scrollTo(0,0)}},function(){if(!Ext.os.is.iOS){return}if(Ext.os.version.lt("3.2")){this.override({constructor:function(){var a=this.stretchHeights={};a[this.PORTRAIT]=416;a[this.LANDSCAPE]=268;return this.callOverridden(arguments)}})}if(Ext.os.version.lt("5")){this.override({fieldMaskClsTest:"-field-mask",doPreventZooming:function(b){var a=b.target;if(a&&a.nodeType===1&&!this.isInputRegex.test(a.tagName)&&a.className.indexOf(this.fieldMaskClsTest)==-1){b.preventDefault()}}})}if(Ext.os.is.iPad){this.override({isFullscreen:function(){return true}})}});Ext.define("Ext.viewport.Android",{extend:"Ext.viewport.Default",constructor:function(){this.on("orientationchange","doFireOrientationChangeEvent",this,{prepend:true});return this.callParent(arguments)},doFireOrientationChangeEvent:function(){var a=arguments[arguments.length-1];this.orientationChanging=true;a.pause();this.waitUntil(function(){return this.getWindowOuterHeight()!==this.windowOuterHeight},function(){this.windowOuterHeight=this.getWindowOuterHeight();this.updateSize();a.firingArguments[1]=this.windowWidth;a.firingArguments[2]=this.windowHeight;a.resume();this.orientationChanging=false},function(){Ext.Logger.error("Timeout waiting for viewport's outerHeight to change before firing orientationchange",this)});return this},maximize:function(){var c=this.stretchHeights,b=this.orientation,a;a=c[b];if(!a){c[b]=a=Math.round(this.getWindowOuterHeight()/window.devicePixelRatio)}if(!this.addressBarHeight){this.addressBarHeight=a-this.getWindowHeight()}this.setHeight(a);var d=Ext.Function.bind(this.isHeightMaximized,this,[a]);this.scrollToTop();this.waitUntil(d,this.fireMaximizeEvent,this.fireMaximizeEvent)},isHeightMaximized:function(a){this.scrollToTop();return this.getWindowHeight()===a}},function(){if(!Ext.os.is.Android){return}var a=Ext.os.version,b=Ext.browser.userAgent,c=/(htc|desire|incredible|ADR6300)/i.test(b)&&a.lt("2.3");if(c){this.override({constructor:function(d){if(!d){d={}}d.autoMaximize=false;this.watchDogTick=Ext.Function.bind(this.watchDogTick,this);setInterval(this.watchDogTick,1000);return this.callParent([d])},watchDogTick:function(){this.watchDogLastTick=Ext.Date.now()},doPreventPanning:function(){var e=Ext.Date.now(),f=this.watchDogLastTick,d=e-f;if(d>=2000){return}return this.callParent(arguments)},doPreventZooming:function(){var e=Ext.Date.now(),f=this.watchDogLastTick,d=e-f;if(d>=2000){return}return this.callParent(arguments)}})}if(a.match("2")){this.override({onReady:function(){this.addWindowListener("resize",Ext.Function.bind(this.onWindowResize,this));this.callParent(arguments)},scrollToTop:function(){document.body.scrollTop=100},onWindowResize:function(){var e=this.windowWidth,g=this.windowHeight,f=this.getWindowWidth(),d=this.getWindowHeight();if(this.getAutoMaximize()&&!this.isMaximizing&&!this.orientationChanging&&window.scrollY===0&&e===f&&d<g&&((d>=g-this.addressBarHeight)||!this.focusedElement)){this.scrollToTop()}}})}else{if(a.gtEq("3.1")){this.override({isHeightMaximized:function(d){this.scrollToTop();return this.getWindowHeight()===d-1}})}else{if(a.match("3")){this.override({isHeightMaximized:function(){this.scrollToTop();return true}})}}}});Ext.define("Ext.viewport.Viewport",{requires:["Ext.viewport.Ios","Ext.viewport.Android"],constructor:function(b){var c=Ext.os.name,d,a;switch(c){case"Android":d="Android";break;case"iOS":d="Ios";break;default:d="Default"}a=Ext.create("Ext.viewport."+d,b);return a}});Ext.define("Ext.app.Controller",{mixins:{observable:"Ext.mixin.Observable"},config:{refs:{},routes:{},control:{},before:{},application:{}},constructor:function(a){this.initConfig(a);this.mixins.observable.constructor.call(this,a)},init:Ext.emptyFn,launch:Ext.emptyFn,redirectTo:function(a){return this.getApplication().redirectTo(a)},execute:function(b,a){b.setBeforeFilters(this.getBefore()[b.getAction()]);b.execute()},applyBefore:function(e){var d,a,c,b;for(a in e){d=Ext.Array.from(e[a]);c=d.length;for(b=0;b<c;b++){d[b]=this[d[b]]}e[a]=d}return e},applyControl:function(a){this.control(a,this);return a},applyRefs:function(a){if(Ext.isArray(a)){console.warn("In Sencha Touch 2 the refs config accepts an object but you have passed it an array.")}this.ref(a);return a},applyRoutes:function(a){var g=this instanceof Ext.app.Application?this:this.getApplication(),c=g.getRouter(),f=this.$className.split("."),b,e,d;for(e in a){b=a[e];d={controller:f[f.length-1]};if(Ext.isString(b)){d.action=b}else{Ext.apply(d,b)}c.connect(e,d)}return a},control:function(a){this.getApplication().control(a,this)},ref:function(b){var e,c,a,d;for(e in b){a=b[e];c="get"+Ext.String.capitalize(e);if(!this[c]){if(Ext.isString(b[e])){d={ref:e,selector:a}}else{d=b[e]}this[c]=Ext.Function.pass(this.getRef,[e,d],this)}this.references=this.references||[];this.references.push(e.toLowerCase())}},getRef:function(d,e,a){this.refCache=this.refCache||{};e=e||{};a=a||{};Ext.apply(e,a);if(e.forceCreate){return Ext.ComponentManager.create(e,"component")}var c=this,b=c.refCache[d];if(!b){c.refCache[d]=b=Ext.ComponentQuery.query(e.selector)[0];if(!b&&e.autoCreate){c.refCache[d]=b=Ext.ComponentManager.create(e,"component")}if(b){b.on("destroy",function(){c.refCache[d]=null})}}return b},hasRef:function(a){return this.references&&this.references.indexOf(a.toLowerCase())!==-1},onClassExtended:function(p,e){var k=this.prototype,f=k.config,c=e.config||{},j=e.refs,a={},n=e.stores,o=e.views,l=Ext.String.format,d,m,b,g,h;for(m in f){if(m in e&&m!="control"){if(m=="refs"){for(g=0;g<j.length;g++){d=j[g];a[d.ref]=d}c.refs=a}else{c[m]=e[m]}delete e[m];console.warn(m+" is deprecated as a property directly on the "+this.$className+" prototype. Please put it inside the config object.")}}if(n){b=n.length;console.warn("'stores' is deprecated as a property directly on the "+this.$className+" prototype. Please move it to Ext.application({ stores: ... }) instead");for(g=0;g<b;g++){h=l("get{0}Store",Ext.String.capitalize(n[g]));k[h]=function(i){return function(){return Ext.StoreManager.lookup(i)}}(n[g])}}if(o){b=o.length;console.warn("'views' is deprecated as a property directly on the "+this.$className+" prototype. Please move it to Ext.application({ views: ... }) instead");for(g=0;g<b;g++){h=l("get{0}View",o[g]);k[h]=function(i){return function(){return Ext.ClassManager.classes[l("{0}.view.{1}",this.getApplication().getName(),i)]}}(o[g])}}e.config=c},getModel:function(b){Ext.Logger.deprecate("getModel() is deprecated and considered bad practice - please just use the Model name instead (e.g. MyApp.model.User vs this.getModel('User'))");var a=this.getApplication().getName(),c=Ext.ClassManager.classes;return c[a+".model."+b]},getController:function(b,a){Ext.Logger.deprecate("Ext.app.Controller#getController is deprecated and considered bad practice - please use this.getApplication().getController('someController') instead");return this.getApplication().getController(b,a)},addRefs:Ext.emptyFn,addRoutes:Ext.emptyFn,addStores:Ext.emptyFn,addProfiles:Ext.emptyFn,addModels:Ext.emptyFn},function(){Ext.regController=function(b,a){Ext.apply(a,{extend:"Ext.app.Controller"});console.warn("[Ext.app.Controller] Ext.regController is deprecated, please use Ext.define to define a Controller as with any other class. For more information see the Touch 1.x -> 2.x migration guide");Ext.define("controller."+b,a)}});Ext.define("Ext.app.History",{mixins:["Ext.mixin.Observable"],config:{actions:[],updateUrl:true,token:""},constructor:function(a){if(Ext.feature.has.History){window.addEventListener("hashchange",Ext.bind(this.detectStateChange,this))}else{setInterval(Ext.bind(this.detectStateChange,this),50)}this.initConfig(a)},add:function(c,a){this.getActions().push(Ext.factory(c,Ext.app.Action));var b=c.getUrl();if(this.getUpdateUrl()){this.setToken(b);window.location.hash=b}if(a!==true){this.fireEvent("change",b)}this.setToken(b)},back:function(){this.getActions().pop().run()},applyToken:function(a){return a[0]=="#"?a.substr(1):a},detectStateChange:function(){var b=this.applyToken(window.location.hash),a=this.getToken();if(b!=a){this.onStateChange();this.setToken(b)}},onStateChange:function(){this.fireEvent("change",window.location.hash.substr(1))}});Ext.define("Ext.app.Profile",{mixins:{observable:"Ext.mixin.Observable"},config:{namespace:"auto",name:"auto",controllers:[],models:[],views:[],stores:[],application:null},constructor:function(a){this.initConfig(a);this.mixins.observable.constructor.apply(this,arguments)},isActive:function(){return false},launch:Ext.emptyFn,applyNamespace:function(a){if(a=="auto"){a=this.getName()}return a.toLowerCase()},applyName:function(a){if(a=="auto"){var b=this.$className.split(".");a=b[b.length-1]}return a},getDependencies:function(){var c=[],h=Ext.String.format,f=this.getApplication().getName(),e=this.getNamespace(),b={model:this.getModels(),view:this.getViews(),controller:this.getControllers(),store:this.getStores()},d,a,i,g;for(d in b){a=[];Ext.each(b[d],function(j){if(Ext.isString(j)){if(j.match("\\.")){g=j}else{g=h("{0}.{1}.{2}.{3}",f,d,e,j)}a.push(g);c.push(g)}});b[d]=a}b.all=c;return b}});Ext.define("Ext.app.Action",{config:{scope:null,application:null,controller:null,action:null,args:[],url:undefined,data:{},title:null,beforeFilters:[],currentFilterIndex:-1},constructor:function(a){this.initConfig(a);this.getUrl()},execute:function(){this.resume()},resume:function(){var b=this.getCurrentFilterIndex()+1,c=this.getBeforeFilters(),a=this.getController(),d=c[b];if(d){this.setCurrentFilterIndex(b);d.call(a,this)}else{a[this.getAction()].apply(a,this.getArgs())}},applyUrl:function(a){if(a===null||a===undefined){a=this.urlEncode()}return a},applyController:function(a){var c=this.getApplication(),b=c.getCurrentProfile();if(Ext.isString(a)){a=c.getController(a,b?b.getName():null)}return a},urlEncode:function(){var a=this.getController(),b;if(a instanceof Ext.app.Controller){b=a.$className.split(".");a=b[b.length-1]}return a+"/"+this.getAction()}});Ext.define("Ext.app.Route",{config:{conditions:{},url:null,controller:null,action:null,initialized:false},constructor:function(a){this.initConfig(a)},recognize:function(b){if(!this.getInitialized()){this.initialize()}if(this.recognizes(b)){var c=this.matchesFor(b),a=b.match(this.matcherRegex);a.shift();return Ext.applyIf(c,{controller:this.getController(),action:this.getAction(),historyUrl:b,args:a})}},initialize:function(){this.paramMatchingRegex=new RegExp(/:([0-9A-Za-z\_]*)/g);this.paramsInMatchString=this.getUrl().match(this.paramMatchingRegex)||[];this.matcherRegex=this.createMatcherRegex(this.getUrl());this.setInitialized(true)},recognizes:function(a){return this.matcherRegex.test(a)},matchesFor:function(b){var f={},e=this.paramsInMatchString,a=b.match(this.matcherRegex),d=e.length,c;a.shift();for(c=0;c<d;c++){f[e[c].replace(":","")]=a[c]}return f},argsFor:function(c){var b=[],f=this.paramsInMatchString,a=c.match(this.matcherRegex),e=f.length,d;a.shift();for(d=0;d<e;d++){b.push(f[d].replace(":",""));params[f[d].replace(":","")]=a[d]}return params},urlFor:function(b){var a=this.getUrl();for(var c in b){a=a.replace(":"+c,b[c])}return a},createMatcherRegex:function(a){var e=this.paramsInMatchString,d=e.length,b,c,f;for(b=0;b<d;b++){c=this.getConditions()[e[b]];f=Ext.util.Format.format("({0})",c||"[%a-zA-Z0-9-\\_\\s,]+");a=a.replace(new RegExp(e[b]),f)}return new RegExp("^"+a+"$")}});Ext.define("Ext.app.Router",{requires:["Ext.app.Route"],config:{routes:[],defaults:{action:"index"}},constructor:function(a){this.initConfig(a)},connect:function(b,c){c=Ext.apply({url:b},c||{},this.getDefaults());var a=Ext.create("Ext.app.Route",c);this.getRoutes().push(a);return a},recognize:function(c){var b=this.getRoutes(),e=b.length,d,a;for(d=0;d<e;d++){a=b[d].recognize(c);if(a!=undefined){return a}}return undefined},draw:function(a){a.call(this,this)},clear:function(){this.setRoutes([])}},function(){Ext.Router={};var a=[];Ext.Router.setAppInstance=function(b){Ext.Router.appInstance=b;if(a.length>0){Ext.each(a,Ext.Router.draw)}};Ext.Router.draw=function(b){Ext.Logger.deprecate("Ext.Router.map is deprecated, please define your routes inline inside each Controller. Please see the 1.x -> 2.x migration guide for more details.");var d=Ext.Router.appInstance,c;if(d){c=d.getRouter();b(c)}else{a.push(b)}}});Ext.define("Ext.app.Application",{extend:"Ext.app.Controller",requires:["Ext.app.History","Ext.app.Profile","Ext.app.Router","Ext.app.Action"],config:{profiles:[],stores:[],controllers:[],models:[],views:[],history:{},name:null,appFolder:"app",router:{},controllerInstances:[],profileInstances:[],currentProfile:null,launch:Ext.emptyFn,enableLoader:true},constructor:function(a){this.initConfig(a);for(var b in a){this[b]=a[b]}if(a.autoCreateViewport){console.log('[Ext.app.Application] autoCreateViewport has been deprecated in Sencha Touch 2. Please implement a launch function on your Application instead and use Ext.create("MyApp.view.Main") to create your initial UI.')}if(this.getEnableLoader()!==false){Ext.require(this.getProfiles(),this.onProfilesLoaded,this)}},dispatch:function(e,d){e=e||{};Ext.applyIf(e,{application:this});e=Ext.factory(e,Ext.app.Action);if(e){var c=this.getCurrentProfile(),b=c?c.getNamespace():undefined,a=this.getController(e.getController(),b);if(a){if(d!==false){this.getHistory().add(e,true)}a.execute(e)}}},redirectTo:function(c){if(Ext.data&&Ext.data.Model&&c instanceof Ext.data.Model){var a=c;c=a.toUrl()}var b=this.getRouter().recognize(c);if(b){b.url=c;if(a){b.data={};b.data.record=a}return this.dispatch(b)}},control:function(h,d){d=d||this;var i=this.getEventDispatcher(),g=(d)?d.getRefs():{},c,e,b,f,a;for(c in h){if(h.hasOwnProperty(c)){f=h[c];a=g[c];if(a){c=a.selector||a}for(e in f){b=f[e];if(Ext.isString(b)){b=d[b]}i.addListener("component",c,e,b,d)}}}},getController:function(b,d){var f=this.getControllerInstances(),a=this.getName(),e=Ext.String.format,c;if(b instanceof Ext.app.Controller){return b}if(f[b]){return f[b]}else{c=e("{0}.controller.{1}",a,b);d=e("{0}.controller.{1}.{2}",a,d,b);return f[d]||f[c]}},onProfilesLoaded:function(){var b=this.getProfiles(),e=b.length,g=[],d=this.gatherDependencies(),f,c,a;for(c=0;c<e;c++){g[c]=Ext.create(b[c],{application:this});a=g[c].getDependencies();d=d.concat(a.all);if(g[c].isActive()&&!f){f=g[c];this.setCurrentProfile(f);this.setControllers(this.getControllers().concat(a.controller));this.setModels(this.getModels().concat(a.model));this.setViews(this.getViews().concat(a.view));this.setStores(this.getStores().concat(a.store))}}this.setProfileInstances(g);Ext.require(d,this.loadControllerDependencies,this)},loadControllerDependencies:function(){var h=this.getControllers(),f=h.length,d=[],b=this.getName(),g=Ext.String.format,a,e,c;for(c=0;c<f;c++){a=Ext.ClassManager.classes[h[c]];e=a.prototype;Ext.each(e.models,function(i){d.push(g("{0}.model.{1}",b,i))},this);Ext.each(e.views,function(i){d.push(g("{0}.view.{1}",b,i))},this);Ext.each(e.stores,function(i){d.push(g("{0}.store.{1}",b,i));this.setStores(this.getStores().concat([i]))},this)}Ext.require(d,this.onDependenciesLoaded,this)},onDependenciesLoaded:function(){var c=this,b=this.getCurrentProfile(),e=this.getLaunch(),d,a;Ext.app.Application.appInstance=this;if(Ext.Router){Ext.Router.setAppInstance(this)}c.instantiateStores();c.instantiateControllers();d=this.getControllerInstances();if(b){b.launch()}e.call(c);for(a in d){d[a].launch(this)}c.redirectTo(window.location.hash.substr(1))},gatherDependencies:function(){var a=this.getModels().concat(this.getViews()).concat(this.getControllers());Ext.each(this.getStores(),function(b){if(Ext.isString(b)){a.push(b)}},this);return a},instantiateStores:function(){var b=this.getStores(),f=b.length,c,a,d,g,e;for(e=0;e<f;e++){c=b[e];if(Ext.data&&Ext.data.Store&&!(c instanceof Ext.data.Store)){if(Ext.isString(c)){d=c;a=Ext.ClassManager.classes[c];c={xclass:c};if(a.prototype.defaultConfig.storeId===undefined){g=d.split(".");c.id=g[g.length-1]}}b[e]=Ext.factory(c,Ext.data.Store)}}this.setStores(b)},instantiateControllers:function(){var e=this.getControllers(),d={},c=e.length,a,b;for(b=0;b<c;b++){a=e[b];d[a]=Ext.create(a,{application:this});d[a].init()}return this.setControllerInstances(d)},applyControllers:function(e){var d=e.length,a=this.getName(),b,c;for(c=0;c<d;c++){b=e[c];if(!b.match("\\.")){e[c]=a+".controller."+b}}return e},applyStores:function(b){var e=b.length,a=this.getName(),c,d;for(d=0;d<e;d++){c=b[d];if(Ext.isString(c)&&!c.match("\\.")){b[d]=a+".store."+c}}return b},applyModels:function(e){var d=e.length,a=this.getName(),b,c;for(c=0;c<d;c++){b=e[c];if(Ext.isString(b)&&!b.match("\\.")){e[c]=a+".model."+b}}return e},applyViews:function(b){var e=b.length,a=this.getName(),c,d;for(d=0;d<e;d++){c=b[d];if(Ext.isString(c)&&!c.match("\\.")){b[d]=a+".view."+c}}return b},applyProfiles:function(b){var e=b.length,a=this.getName(),c,d;for(d=0;d<e;d++){c=b[d];if(Ext.isString(c)&&!c.match("\\.")){b[d]=a+".profile."+c}}return b},applyName:function(a){var b;if(a&&a.match(/ /g)){b=a;a=a.replace(/ /g,"");Ext.Logger.warn('Attempting to create an application with a name which contains whitespace ("'+b+'"). Renamed to "'+a+'".')}return a},updateName:function(a){Ext.ClassManager.setNamespace(a+".app",this);Ext.Loader.setPath(a,this.getAppFolder())},applyRouter:function(a){return Ext.factory(a,Ext.app.Router,this.getRouter())},applyHistory:function(a){var b=Ext.factory(a,Ext.app.History,this.getHistory());b.on("change",this.onHistoryChange,this);return b},onHistoryChange:function(a){this.dispatch(this.getRouter().recognize(a),false)}},function(){Ext.regApplication=function(b){console.warn("[Ext.app.Application] Ext.regApplication() is deprecated, please replace it with Ext.application()");var a=b.name,c=Ext.String.format;Ext.ns(a,c("{0}.controllers",a),c("{0}.models",a),c("{0}.views",a));Ext.application(b)};Ext.define("Ext.data.ProxyMgr",{singleton:true,registerType:function(b,a){console.warn('Ext.data.ProxyMgr no longer exists - instead of calling Ext.data.ProxyMgr.registerType just update your custom Proxy class to set alias: "proxy.'+b+'"');Ext.ClassManager.setAlias(a,"proxy."+b)}});Ext.reg=function(b,a){console.warn('Ext.reg is deprecated, please set xtype: "'+b+'" directly in your subclass instead');Ext.ClassManager.setAlias(a,b)};Ext.redirect=function(){var a=Ext.app.Application.appInstance;console.log("[Ext.app.Application] Ext.redirect is deprecated, please use YourApp.redirectTo instead");if(a){a.redirectTo.apply(a,arguments)}};Ext.dispatch=function(){var a=Ext.app.Application.appInstance;console.log("[Ext.app.Application] Ext.dispatch is deprecated, please use YourApp.dispatch instead");if(a){a.dispatch.apply(a,arguments)}}});Ext.define("Example.controller.Application",{extend:"Ext.app.Controller",config:{control:{"kittenslistitem slider":{change:"onCutenessChange"}}},onCutenessChange:function(b,a,c){console.log("onCutenessChange",c)}});Ext.define("Ext.mixin.Selectable",{extend:"Ext.mixin.Mixin",mixinConfig:{id:"selectable",hooks:{updateStore:"updateStore"}},config:{disableSelection:null,mode:"SINGLE",selected:null,allowDeselect:false,lastSelected:null,lastFocused:null,deselectOnContainerClick:true},modes:{SINGLE:true,SIMPLE:true,MULTI:true},selectableEventHooks:{addrecords:"onSelectionStoreAdd",removerecords:"onSelectionStoreRemove",updaterecord:"onSelectionStoreUpdate",load:"refreshSelection",refresh:"refreshSelection"},constructor:function(){this._selected=new Ext.util.MixedCollection();this.callParent(arguments)},applySelected:function(a,b){if(a){if(!Ext.isArray(a)){b.add(a)}else{b.addAll(a)}}},applyMode:function(a){a=a?a.toUpperCase():"SINGLE";return this.modes[a]?a:"SINGLE"},updateStore:function(a,c){var b=this,d=Ext.apply({},b.selectableEventHooks,{scope:b});if(c&&Ext.isObject(c)&&c.isStore){if(c.autoDestroy){c.destroy()}else{c.un(d)}}if(a){a.on(d);b.refreshSelection()}},selectAll:function(a){var e=this,c=e.getStore().getRange(),d=c.length,b=0;for(;b<d;b++){e.select(c[b],true,a)}},deselectAll:function(){var d=this,b=d.getStore().getRange(),c=b.length,a=0;for(;a<c;a++){d.deselect(b[a])}},selectWithEvent:function(a){var c=this,b=c.isSelected(a);switch(c.getMode()){case"MULTI":case"SIMPLE":if(b){c.deselect(a)}else{c.select(a,true)}break;case"SINGLE":if(c.getAllowDeselect()&&b){c.deselect(a)}else{c.select(a,false)}break}},selectRange:function(h,j,m,b){var g=this,k=g.getStore(),l=k.indexOf(h),d=k.indexOf(j),c=0,f,a,e;if(g.getDisableSelection()){return}if(l>d){f=d;d=l;l=f}for(e=l;e<=d;e++){if(g.isSelected(k.getAt(e))){c++}}if(!b){a=-1}else{a=(b=="up")?l:d}for(e=l;e<=d;e++){if(c==(d-l+1)){if(e!=a){g.deselect(e,true)}}else{g.select(e,true)}}},select:function(c,e,b){var d=this,a;if(d.getDisableSelection()){return}if(typeof c==="number"){c=[d.getStore().getAt(c)]}if(!c){return}if(d.getMode()=="SINGLE"&&c){a=c.length?c[0]:c;d.doSingleSelect(a,b)}else{d.doMultiSelect(c,e,b)}},doSingleSelect:function(a,b){var d=this,c=d.getSelected();if(d.getDisableSelection()){return}if(d.isSelected(a)){return}if(c.getCount()>0){d.deselect(d.getLastSelected(),b)}c.add(a);d.setLastSelected(a);d.onItemSelect(a,b);d.setLastFocused(a);d.fireSelectionChange(!b)},doMultiSelect:function(a,j,h){if(a===null||this.getDisableSelection()){return}a=!Ext.isArray(a)?[a]:a;var f=this,b=f.getSelected(),e=a.length,g=false,c=0,d;if(!j&&b.getCount()>0){g=true;f.deselect(f.getSelection(),true)}for(;c<e;c++){d=a[c];if(j&&f.isSelected(d)){continue}g=true;f.setLastSelected(d);b.add(d);if(!h){f.setLastFocused(d)}f.onItemSelect(d,h)}this.fireSelectionChange(g&&!h)},deselect:function(a,j){var f=this;if(f.getDisableSelection()){return}a=Ext.isArray(a)?a:[a];var b=f.getSelected(),g=false,c=0,h=f.getStore(),e=a.length,d;for(;c<e;c++){d=a[c];if(typeof d==="number"){d=h.getAt(d)}if(b.remove(d)){if(f.getLastSelected()==d){f.setLastSelected(b.last())}g=true}if(d){f.onItemDeselect(d,j)}}f.fireSelectionChange(g&&!j)},updateLastFocused:function(b,a){this.onLastFocusChanged(a,b)},fireSelectionChange:function(a){var b=this;if(a){b.fireAction("beforeselectionchange",[b],function(){b.fireEvent("selectionchange",b,b.getSelection())})}},getSelection:function(){return this.getSelected().getRange()},isSelected:function(a){a=Ext.isNumber(a)?this.getStore().getAt(a):a;return this.getSelected().indexOf(a)!==-1},hasSelection:function(){return this.getSelected().getCount()>0},refreshSelection:function(){var f=this,a=[],e=f.getSelection(),d=e.length,b=0,c,g;for(;b<d;b++){c=e[b];if(f.getStore().indexOf(c)!=-1){a.push(c)}}if(f.getSelected().getCount()!=a.length){g=true}f.deselectAll();if(a.length){f.select(a,false,true)}f.fireSelectionChange(g)},clearSelections:function(){var a=this;a.deselect(a.getSelection());a.getSelected().clear();a.setLastSelected(null);a.setLastFocused(null)},onSelectionStoreClear:function(){var b=this,a=b.getSelected();if(a.getCount()>0){a.clear();b.setLastSelected(null);b.setLastFocused(null);b.fireSelectionChange(true)}},onSelectionStoreRemove:function(b,a){var d=this,c=d.getSelected();if(d.getDisableSelection()){return}if(c.remove(a)){if(d.getLastSelected()==a){d.setLastSelected(null)}if(d.getLastFocused()==a){d.setLastFocused(null)}d.fireSelectionChange(true)}},getCount:function(){return this.getSelected().getCount()},onSelectionStoreAdd:Ext.emptyFn,onSelectionStoreUpdate:Ext.emptyFn,onItemSelect:Ext.emptyFn,onItemDeselect:Ext.emptyFn,onLastFocusChanged:Ext.emptyFn,onEditorKey:Ext.emptyFn},function(){this.override({constructor:function(b){if(b&&b.hasOwnProperty("locked")){var a=b.locked;b.disableSelection=a;delete b.locked}this.callParent([b])}});Ext.deprecateClassMethod(this,"isLocked",this.prototype.getDisableSelection,"'isLocked()' is deprecated, please use 'getDisableSelection' instead");Ext.deprecateClassMethod(this,"getSelectionMode",this.prototype.getMode,"'getSelectionMode()' is deprecated, please use 'getMode' instead");Ext.deprecateClassMethod(this,"doDeselect",this.prototype.deselect,"'doDeselect()' is deprecated, please use 'deselect()' instead");Ext.deprecateClassMethod(this,"doSelect",this.prototype.select,"'doSelect()' is deprecated, please use 'select()' instead");Ext.deprecateClassMethod(this,"bind",this.prototype.setStore,"'bind()' is deprecated, please use 'setStore()' instead")});Ext.define("Ext.dataview.element.Container",{extend:"Ext.Component",doInitialize:function(){this.element.on({touchstart:"onItemTouchStart",touchend:"onItemTouchEnd",tap:"onItemTap",taphold:"onItemTapHold",touchmove:"onItemTouchMove",doubletap:"onItemDoubleTap",swipe:"onItemSwipe",delegate:"> div",scope:this})},initialize:function(){this.callParent();this.doInitialize()},onItemTouchStart:function(d){var b=this,c=d.getTarget(),a=b.getViewItems().indexOf(c);Ext.get(c).on({touchmove:"onItemTouchMove",scope:b,single:true});b.fireEvent("itemtouchstart",b,Ext.get(c),a,d)},onItemTouchEnd:function(d){var b=this,c=d.getTarget(),a=b.getViewItems().indexOf(c);Ext.get(c).un({touchmove:"onItemTouchMove",scope:b});b.fireEvent("itemtouchend",b,Ext.get(c),a,d)},onItemTouchMove:function(d){var b=this,c=d.getTarget(),a=b.getViewItems().indexOf(c);b.fireEvent("itemtouchmove",b,Ext.get(c),a,d)},onItemTap:function(d){var b=this,c=d.getTarget(),a=b.getViewItems().indexOf(c);b.fireEvent("itemtap",b,Ext.get(c),a,d)},onItemTapHold:function(d){var b=this,c=d.getTarget(),a=b.getViewItems().indexOf(c);b.fireEvent("itemtaphold",b,Ext.get(c),a,d)},onItemDoubleTap:function(d){var b=this,c=d.getTarget(),a=b.getViewItems().indexOf(c);b.fireEvent("itemdoubletap",b,Ext.get(c),a,d)},onItemSwipe:function(d){var b=this,c=d.getTarget(),a=b.getViewItems().indexOf(c);b.fireEvent("itemswipe",b,Ext.get(c),a,d)},updateListItem:function(b,d){var c=this,a=c.dataview,e=a.prepareData(b.getData(true),a.getStore().indexOf(b),b);d.innerHTML=c.dataview.getItemTpl().apply(e)},addListItem:function(e,c){var h=this,d=h.dataview,a=d.prepareData(c.getData(true),d.getStore().indexOf(c),c),b=h.element,i=b.dom.childNodes,g=i.length,f;f=Ext.Element.create(this.getItemElementConfig(e,a));if(!g||e==g){f.appendTo(b)}else{f.insertBefore(i[e])}},getItemElementConfig:function(c,e){var b=this.dataview,d=b.getItemCls(),a=b.getBaseCls()+"-item";if(d){a+=" "+d}return{cls:a,html:b.getItemTpl().apply(e)}},doRemoveItemCls:function(a){var d=this.getViewItems(),c=d.length,b=0;for(;b<c;b++){Ext.fly(d[b]).removeCls(a)}},doAddItemCls:function(a){var d=this.getViewItems(),c=d.length,b=0;for(;b<c;b++){Ext.fly(d[b]).addCls(a)}},moveItemsToCache:function(f,e){var d=this,a=d.getViewItems(),b=e-f,c;for(;b>=0;b--){c=a[f+b];c.parentNode.removeChild(c)}if(d.getViewItems().length==0){this.dataview.showEmptyText()}},moveItemsFromCache:function(d){var g=this,b=g.dataview,c=b.getStore(),f=d.length,e,a;if(f){b.hideEmptyText()}for(e=0;e<f;e++){d[e]._tmpIndex=c.indexOf(d[e])}Ext.Array.sort(d,function(i,h){return i._tmpIndex>h._tmpIndex?1:-1});for(e=0;e<f;e++){a=d[e];g.addListItem(a._tmpIndex,a);delete a._tmpIndex}},getViewItems:function(){return Array.prototype.slice.call(this.element.dom.childNodes)},destroy:function(){var c=this.getViewItems(),b=c.length,a=0;for(;a<b;a++){Ext.removeNode(c[a])}this.callParent()}});Ext.define("Ext.dataview.component.DataItem",{extend:"Ext.Container",xtype:"dataitem",config:{baseCls:Ext.baseCSSPrefix+"data-item",defaultType:"component",record:null,itemCls:null,dataMap:{},items:[{xtype:"component"}]},updateItemCls:function(b,a){if(a){this.removeCls(a)}if(b){this.addCls(b)}},updateRecord:function(d){var h=this,c=h.config.dataview,b=c.prepareData(d.getData(true),c.getStore().indexOf(d),d),e=h.getItems(),k=e.first(),i=h.getDataMap(),f,j,g,a;if(!k){return}for(f in i){g=i[f];j=h[f]();if(j){for(a in g){if(j[a]){j[a](b[g[a]])}}}}k.updateData(b)}});Ext.define("Ext.Img",{extend:"Ext.Component",xtype:["image","img"],config:{src:null,baseCls:Ext.baseCSSPrefix+"img",mode:"background"},beforeInitialize:function(){var a=this;a.onLoad=Ext.Function.bind(a.onLoad,a);a.onError=Ext.Function.bind(a.onError,a)},initialize:function(){var a=this;a.callParent();a.relayEvents(a.renderElement,"*");a.element.on({tap:"onTap",scope:a})},hide:function(){this.callParent();this.hiddenSrc=this.hiddenSrc||this.getSrc();this.setSrc(null)},show:function(){this.callParent();if(this.hiddenSrc){this.setSrc(this.hiddenSrc);delete this.hiddenSrc}},updateMode:function(a){if(a==="background"){if(this.imageElement){this.imageElement.destroy();delete this.imageElement;this.updateSrc(this.getSrc())}}else{this.imageElement=this.element.createChild({tag:"img"})}},onTap:function(a){this.fireEvent("tap",this,a)},onAfterRender:function(){this.updateSrc(this.getSrc())},updateSrc:function(a){var b=this,c;if(b.getMode()==="background"){c=this.imageObject||new Image()}else{c=b.imageElement.dom}this.imageObject=c;c.setAttribute("src",a);c.addEventListener("load",b.onLoad,false);c.addEventListener("error",b.onError,false)},detachListeners:function(){var a=this.imageObject;a.removeEventListener("load",this.onLoad,false);a.removeEventListener("error",this.onError,false)},onLoad:function(a){this.detachListeners();if(this.getMode()==="background"){this.element.dom.style.backgroundImage='url("'+this.imageObject.src+'")'}this.fireEvent("load",this,a)},onError:function(a){this.detachListeners();this.fireEvent("error",this,a)},doSetWidth:function(b){var a=(this.getMode()==="background")?this.element:this.imageElement;a.setWidth(b);this.callParent(arguments)},doSetHeight:function(b){var a=(this.getMode()==="background")?this.element:this.imageElement;a.setHeight(b);this.callParent(arguments)},destroy:function(){this.detachListeners();this.imageElement.destroy();delete this.imageObject;this.callParent()}});Ext.define("Ext.data.Operation",{config:{synchronous:true,action:null,filters:null,sorters:null,groupers:null,start:null,limit:null,batch:null,callback:null,scope:null,resultSet:null,records:null,request:null,response:null,params:null,url:null,page:null,model:undefined,node:null,addRecords:false},started:false,running:false,complete:false,success:undefined,exception:false,error:undefined,constructor:function(a){this.initConfig(a)},applyModel:function(a){if(typeof a=="string"){a=Ext.data.ModelManager.getModel(a);if(!a){Ext.Logger.error("Model with name "+arguments[0]+" doesnt exist.")}}if(a&&!a.prototype.isModel&&Ext.isObject(a)){a=Ext.data.ModelManager.registerType(a.storeId||a.id||Ext.id(),a)}if(!a){Ext.Logger.error("An Operation needs to have a model defined.")}return a},setStarted:function(){this.started=true;this.running=true},setCompleted:function(){this.complete=true;this.running=false},setSuccessful:function(){this.success=true},setException:function(a){this.exception=true;this.success=false;this.running=false;this.error=a},hasException:function(){return this.exception===true},getError:function(){return this.error},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},allowWrite:function(){return this.getAction()!="read"},process:function(d,b,c,a){if(b.getSuccess()!==false){this.setResponse(a);this.setResultSet(b);this.setCompleted();this.setSuccessful()}else{return false}return this["process"+Ext.String.capitalize(d)].call(this,b,c,a)},processRead:function(d){var b=d.getRecords(),g=[],f=this.getModel(),e=b.length,c,a;for(c=0;c<e;c++){a=b[c];g.push(new f(a.data,a.id,a.node))}this.setRecords(g);return true},processCreate:function(d){var b=d.getRecords(),e=b.length,c,a,f;for(c=0;c<e;c++){f=b[c];a=this.findCurrentRecord(f.clientId);if(a){this.updateRecord(a,f)}else{Ext.Logger.warn("Unable to match the record that came back from the server.")}}return true},processUpdate:function(e){var c=e.getRecords(),b=this.getRecords(),f=c.length,d,a,g;for(d=0;d<f;d++){g=c[d];a=b[d];if(a){this.updateRecord(a,g)}else{Ext.Logger.warn("Unable to match the updated record that came back from the server.")}}return true},processDestroy:function(d){var b=d.getRecords(),e=b.length,c,a,f;for(c=0;c<e;c++){f=b[c];a=this.findCurrentRecord(f.id);if(a){a.setIsErased(true);a.notifyStores("afterErase",a)}else{Ext.Logger.warn("Unable to match the destroyed record that came back from the server.")}}},findCurrentRecord:function(a){var c=this.getRecords(),e=c.length,d,b;for(d=0;d<e;d++){b=c[d];if(b.getId()===a){return b}}},updateRecord:function(b,d){var a=d.data,c=d.id;b.beginEdit();b.set(a);if(c!==null){b.setId(c)}b.endEdit(true);b.commit()}});Ext.define("Ext.util.Grouper",{extend:"Ext.util.Sorter",isGrouper:true,config:{groupFn:null,sortProperty:null,sorterFn:function(d,c){var e=this.getSortProperty(),g,b,f,a;g=this.getGroupFn();b=g.call(this,d);f=g.call(this,c);if(e){if(b!==f){return this.defaultSortFn.call(this,d,c)}else{return 0}}return(b>f)?1:((b<f)?-1:0)}},defaultSortFn:function(e,c){var g=this,f=g._transform,b=g._root,d,a,h=g._sortProperty;if(b!==null){e=e[b];c=c[b]}d=e[h];a=c[h];if(f){d=f(d);a=f(a)}return d>a?1:(d<a?-1:0)},updateProperty:function(a){this.setGroupFn(this.standardGroupFn)},standardGroupFn:function(b){var a=this.getRoot(),d=this.getProperty(),c=b;if(a){c=b[a]}return c[d]},getGroupString:function(a){var b=this.getGroupFn().call(this,a);return typeof b!="undefined"?b.toString():""}});Ext.define("Ext.slider.Thumb",{extend:"Ext.Component",xtype:"thumb",config:{baseCls:Ext.baseCSSPrefix+"thumb",draggable:{direction:"horizontal"}},elementWidth:0,initialize:function(){this.callParent();this.getDraggable().onBefore({dragstart:"onDragStart",drag:"onDrag",dragend:"onDragEnd",scope:this});this.on("painted","onPainted")},onDragStart:function(){if(this.isDisabled()){return false}this.relayEvent(arguments)},onDrag:function(){if(this.isDisabled()){return false}this.relayEvent(arguments)},onDragEnd:function(){if(this.isDisabled()){return false}this.relayEvent(arguments)},onPainted:function(){this.elementWidth=this.element.dom.offsetWidth},getElementWidth:function(){return this.elementWidth}});Ext.define("Ext.mixin.Sortable",{extend:"Ext.mixin.Mixin",requires:["Ext.util.Sorter"],mixinConfig:{id:"sortable"},config:{sorters:null,defaultSortDirection:"ASC",sortRoot:null},dirtySortFn:false,sortFn:null,sorted:false,applySorters:function(a,b){if(!b){b=this.createSortersCollection()}b.clear();this.sorted=false;if(a){this.addSorters(a)}return b},createSortersCollection:function(){this._sorters=Ext.create("Ext.util.Collection",function(a){return a.getId()});return this._sorters},addSorter:function(b,a){this.addSorters([b],a)},addSorters:function(c,a){var b=this.getSorters();return this.insertSorters(b?b.length:0,c,a)},insertSorter:function(a,c,b){return this.insertSorters(a,[c],b)},insertSorters:function(e,h,a){if(!Ext.isArray(h)){h=[h]}var f=h.length,j=a||this.getDefaultSortDirection(),c=this.getSortRoot(),k=this.getSorters(),l=[],g,b,m,d;if(!k){k=this.createSortersCollection()}for(b=0;b<f;b++){m=h[b];g={direction:j,root:c};if(typeof m==="string"){d=k.get(m);if(!d){g.property=m}else{if(a!==undefined){d.setDirection(a)}else{d.toggle()}continue}}else{if(Ext.isFunction(m)){g.sorterFn=m}else{if(Ext.isObject(m)){if(!m.isSorter){if(m.fn){m.sorterFn=m.fn;delete m.fn}g=Ext.apply(g,m)}else{l.push(m);if(!m.getRoot()){m.setRoot(c)}continue}}else{Ext.Logger.warn("Invalid sorter specified:",m)}}}m=Ext.create("Ext.util.Sorter",g);l.push(m)}for(b=0,f=l.length;b<f;b++){k.insert(e+b,l[b])}this.dirtySortFn=true;if(k.length){this.sorted=true}return k},removeSorter:function(a){return this.removeSorters([a])},removeSorters:function(d){if(!Ext.isArray(d)){d=[d]}var b=d.length,c=this.getSorters(),a,e;for(a=0;a<b;a++){e=d[a];if(typeof e==="string"){c.removeAtKey(e)}else{if(typeof e==="function"){c.each(function(f){if(f.getSorterFn()===e){c.remove(f)}})}else{if(e.isSorter){c.remove(e)}}}}if(!c.length){this.sorted=false}},updateSortFn:function(){var a=this.getSorters().items;this.sortFn=function(d,c){var f=a.length,b,e;for(e=0;e<f;e++){b=a[e].sort.call(this,d,c);if(b!==0){break}}return b};this.dirtySortFn=false;return this.sortFn},getSortFn:function(){if(this.dirtySortFn){return this.updateSortFn()}return this.sortFn},sort:function(a){Ext.Array.sort(a,this.getSortFn());return a},findInsertionIndex:function(b,e,g){var h=0,a=b.length-1,d=g||this.getSortFn(),c,f;while(h<=a){c=(h+a)>>1;f=d(e,b[c]);if(f>=0){h=c+1}else{if(f<0){a=c-1}}}return h}});Ext.define("Ext.mixin.Filterable",{extend:"Ext.mixin.Mixin",requires:["Ext.util.Filter"],mixinConfig:{id:"filterable"},config:{filters:null,filterRoot:null},dirtyFilterFn:false,filterFn:null,filtered:false,applyFilters:function(a,b){if(!b){b=this.createFiltersCollection()}b.clear();this.filtered=false;this.dirtyFilterFn=true;if(a){this.addFilters(a)}return b},createFiltersCollection:function(){this._filters=Ext.create("Ext.util.Collection",function(a){return a.getId()});return this._filters},addFilter:function(a){this.addFilters([a])},addFilters:function(b){var a=this.getFilters();return this.insertFilters(a?a.length:0,b)},insertFilter:function(a,b){return this.insertFilters(a,[b])},insertFilters:function(h,c){if(!Ext.isArray(c)){c=[c]}var j=c.length,a=this.getFilterRoot(),d=this.getFilters(),e=[],f,g,b;if(!d){d=this.createFiltersCollection()}for(g=0;g<j;g++){b=c[g];f={root:a};if(Ext.isFunction(b)){f.filterFn=b}else{if(Ext.isObject(b)){if(!b.isFilter){if(b.fn){b.filterFn=b.fn;delete b.fn}f=Ext.apply(f,b)}else{e.push(b);if(!b.getRoot){b.setRoot(a)}continue}}else{Ext.Logger.warn("Invalid filter specified:",b)}}b=Ext.create("Ext.util.Filter",f);e.push(b)}for(g=0,j=e.length;g<j;g++){d.insert(h+g,e[g])}this.dirtyFilterFn=true;if(d.length){this.filtered=true}return d},removeFilters:function(e){if(!Ext.isArray(e)){e=[e]}var d=e.length,c=this.getFilters(),a,b;for(a=0;a<d;a++){b=e[a];if(typeof b==="string"){c.each(function(f){if(f.getProperty()===b){c.remove(f)}})}else{if(typeof b==="function"){c.each(function(f){if(f.getFilterFn()===b){c.remove(f)}})}else{if(b.isFilter){c.remove(b)}else{if(b.property!==undefined&&b.value!==undefined){c.each(function(f){if(f.getProperty()===b.property&&f.getValue()===b.value){c.remove(f)}})}}}}}if(!c.length){this.filtered=false}},updateFilterFn:function(){var a=this.getFilters().items;this.filterFn=function(h){var f=true,g=a.length,b;for(b=0;b<g;b++){var e=a[b],d=e.getFilterFn(),c=e.getScope()||this;f=f&&d.call(c,h)}return f};this.dirtyFilterFn=false;return this.filterFn},filter:function(a){return this.getFilters().length?Ext.Array.filter(a,this.getFilterFn()):a},isFiltered:function(a){return this.getFilters().length?!this.getFilterFn()(a):false},getFilterFn:function(){if(this.dirtyFilterFn){return this.updateFilterFn()}return this.filterFn}});Ext.define("Ext.data.identifier.Simple",{alias:"data.identifier.simple",statics:{AUTO_ID:1},config:{prefix:"ext-record-"},constructor:function(a){this.initConfig(a)},generate:function(a){return this._prefix+this.self.AUTO_ID++}});Ext.define("Ext.data.SortTypes",{singleton:true,stripTagsRE:/<\/?[^>]+>/gi,none:function(a){return a},asText:function(a){return String(a).replace(this.stripTagsRE,"")},asUCText:function(a){return String(a).toUpperCase().replace(this.stripTagsRE,"")},asUCString:function(a){return String(a).toUpperCase()},asDate:function(a){if(!a){return 0}if(Ext.isDate(a)){return a.getTime()}return Date.parse(String(a))},asFloat:function(a){a=parseFloat(String(a).replace(/,/g,""));return isNaN(a)?0:a},asInt:function(a){a=parseInt(String(a).replace(/,/g,""),10);return isNaN(a)?0:a}});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(b,a){this.singulars.unshift([b,a])},plural:function(b,a){this.plurals.unshift([b,a])},clearSingulars:function(){this.singulars=[]},clearPlurals:function(){this.plurals=[]},isTransnumeral:function(a){return Ext.Array.indexOf(this.uncountable,a)!=-1},pluralize:function(f){if(this.isTransnumeral(f)){return f}var e=this.plurals,d=e.length,a,c,b;for(b=0;b<d;b++){a=e[b];c=a[0];if(c==f||(c.test&&c.test(f))){return f.replace(c,a[1])}}return f},singularize:function(f){if(this.isTransnumeral(f)){return f}var e=this.singulars,d=e.length,a,c,b;for(b=0;b<d;b++){a=e[b];c=a[0];if(c==f||(c.test&&c.test(f))){return f.replace(c,a[1])}}return f},classify:function(a){return Ext.String.capitalize(this.singularize(a))},ordinalize:function(d){var b=parseInt(d,10),c=b%10,a=b%100;if(11<=a&&a<=13){return d+"th"}else{switch(c){case 1:return d+"st";case 2:return d+"nd";case 3:return d+"rd";default:return d+"th"}}}},function(){var b={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"},a;for(a in b){this.plural(a,b[a]);this.singular(b[a],a)}});Ext.define("Ext.data.Error",{extend:"Ext.util.MixedCollection",config:{field:null,message:""},constructor:function(a){this.initConfig(a)}});Ext.define("Ext.util.HashMap",{mixins:{observable:"Ext.util.Observable"},constructor:function(a){this.callParent();this.mixins.observable.constructor.call(this);this.clear(true)},getCount:function(){return this.length},getData:function(a,b){if(b===undefined){b=a;a=this.getKey(b)}return[a,b]},getKey:function(a){return a.id},add:function(a,d){var b=this,c;if(b.containsKey(a)){throw new Error("This key already exists in the HashMap")}c=this.getData(a,d);a=c[0];d=c[1];b.map[a]=d;++b.length;b.fireEvent("add",b,a,d);return d},replace:function(b,d){var c=this,e=c.map,a;if(!c.containsKey(b)){c.add(b,d)}a=e[b];e[b]=d;c.fireEvent("replace",c,b,d,a);return d},remove:function(b){var a=this.findKey(b);if(a!==undefined){return this.removeByKey(a)}return false},removeByKey:function(a){var b=this,c;if(b.containsKey(a)){c=b.map[a];delete b.map[a];--b.length;b.fireEvent("remove",b,a,c);return true}return false},get:function(a){return this.map[a]},clear:function(a){var b=this;b.map={};b.length=0;if(a!==true){b.fireEvent("clear",b)}return b},containsKey:function(a){return this.map[a]!==undefined},contains:function(a){return this.containsKey(this.findKey(a))},getKeys:function(){return this.getArray(true)},getValues:function(){return this.getArray(false)},getArray:function(d){var a=[],b,c=this.map;for(b in c){if(c.hasOwnProperty(b)){a.push(d?b:c[b])}}return a},each:function(d,c){var a=Ext.apply({},this.map),b,e=this.length;c=c||this;for(b in a){if(a.hasOwnProperty(b)){if(d.call(c,b,a[b],e)===false){break}}}return this},clone:function(){var c=new Ext.util.HashMap(),b=this.map,a;c.suspendEvents();for(a in b){if(b.hasOwnProperty(a)){c.add(a,b[a])}}c.resumeEvents();return c},findKey:function(b){var a,c=this.map;for(a in c){if(c.hasOwnProperty(a)&&c[a]===b){return a}}return undefined}});Ext.define("Ext.data.Request",{config:{action:null,params:null,method:"GET",url:null,operation:null,proxy:null,disableCaching:false,headers:{},callbackKey:null,jsonP:null,jsonData:null,callback:null,scope:null,timeout:30000,records:null},constructor:function(a){this.initConfig(a)}});Ext.define("Ext.data.Connection",{mixins:{observable:"Ext.util.Observable"},statics:{requestId:0},config:{url:null,async:true,method:null,username:"",password:"",disableCaching:true,disableCachingParam:"_dc",timeout:30000,extraParams:null,defaultHeaders:null,useDefaultHeader:true,defaultPostHeader:"application/x-www-form-urlencoded; charset=UTF-8",useDefaultXhrHeader:true,defaultXhrHeader:"XMLHttpRequest",autoAbort:false},constructor:function(a){this.initConfig(a);this.requests={}},request:function(j){j=j||{};var f=this,i=j.scope||window,e=j.username||f.getUsername(),g=j.password||f.getPassword()||"",b,c,d,a,h;if(f.fireEvent("beforerequest",f,j)!==false){c=f.setOptions(j,i);if(this.isFormUpload(j)===true){this.upload(j.form,c.url,c.data,j);return null}if(j.autoAbort===true||f.getAutoAbort()){f.abort()}h=this.getXhrInstance();b=j.async!==false?(j.async||f.getAsync()):false;if(e){h.open(c.method,c.url,b,e,g)}else{h.open(c.method,c.url,b)}a=f.setupHeaders(h,j,c.data,c.params);d={id:++this.self.requestId,xhr:h,headers:a,options:j,async:b,timeout:setTimeout(function(){d.timedout=true;f.abort(d)},j.timeout||f.getTimeout())};f.requests[d.id]=d;if(b){h.onreadystatechange=Ext.Function.bind(f.onStateChange,f,[d])}h.send(c.data);if(!b){return this.onComplete(d)}return d}else{Ext.callback(j.callback,j.scope,[j,undefined,undefined]);return null}},upload:function(e,c,i,k){e=Ext.getDom(e);k=k||{};var d=Ext.id(),g=document.createElement("iframe"),j=[],h="multipart/form-data",f={target:e.target,method:e.method,encoding:e.encoding,enctype:e.enctype,action:e.action},b=function(l,m){a=document.createElement("input");Ext.fly(a).set({type:"hidden",value:m,name:l});e.appendChild(a);j.push(a)},a;Ext.fly(g).set({id:d,name:d,cls:Ext.baseCSSPrefix+"hide-display",src:Ext.SSL_SECURE_URL});document.body.appendChild(g);if(document.frames){document.frames[d].name=d}Ext.fly(e).set({target:d,method:"POST",enctype:h,encoding:h,action:c||f.action});if(i){Ext.iterate(Ext.Object.fromQueryString(i),function(l,m){if(Ext.isArray(m)){Ext.each(m,function(n){b(l,n)})}else{b(l,m)}})}Ext.fly(g).on("load",Ext.Function.bind(this.onUploadComplete,this,[g,k]),null,{single:true});e.submit();Ext.fly(e).set(f);Ext.each(j,function(l){Ext.removeNode(l)})},onUploadComplete:function(h,b){var c=this,a={responseText:"",responseXML:null},g,f;try{g=h.contentWindow.document||h.contentDocument||window.frames[id].document;if(g){if(g.body){if(/textarea/i.test((f=g.body.firstChild||{}).tagName)){a.responseText=f.value}else{a.responseText=g.body.innerHTML}}a.responseXML=g.XMLDocument||g}}catch(d){}c.fireEvent("requestcomplete",c,a,b);Ext.callback(b.success,b.scope,[a,b]);Ext.callback(b.callback,b.scope,[b,true,a]);setTimeout(function(){Ext.removeNode(h)},100)},isFormUpload:function(a){var b=this.getForm(a);if(b){return(a.isUpload||(/multipart\/form-data/i).test(b.getAttribute("enctype")))}return false},getForm:function(a){return Ext.getDom(a.form)||null},setOptions:function(k,j){var h=this,e=k.params||{},g=h.getExtraParams(),d=k.urlParams,c=k.url||h.getUrl(),i=k.jsonData,b,a,f;if(Ext.isFunction(e)){e=e.call(j,k)}if(Ext.isFunction(c)){c=c.call(j,k)}c=this.setupUrl(k,c);if(!c){Ext.Logger.error("No URL specified")}f=k.rawData||k.xmlData||i||null;if(i&&!Ext.isPrimitive(i)){f=Ext.encode(f)}if(Ext.isObject(e)){e=Ext.Object.toQueryString(e)}if(Ext.isObject(g)){g=Ext.Object.toQueryString(g)}e=e+((g)?((e)?"&":"")+g:"");d=Ext.isObject(d)?Ext.Object.toQueryString(d):d;e=this.setupParams(k,e);b=(k.method||h.getMethod()||((e||f)?"POST":"GET")).toUpperCase();this.setupMethod(k,b);a=k.disableCaching!==false?(k.disableCaching||h.getDisableCaching()):false;if(b==="GET"&&a){c=Ext.urlAppend(c,(k.disableCachingParam||h.getDisableCachingParam())+"="+(new Date().getTime()))}if((b=="GET"||f)&&e){c=Ext.urlAppend(c,e);e=null}if(d){c=Ext.urlAppend(c,d)}return{url:c,method:b,data:f||e||null}},setupUrl:function(b,a){var c=this.getForm(b);if(c){a=a||c.action}return a},setupParams:function(a,d){var c=this.getForm(a),b;if(c&&!this.isFormUpload(a)){b=Ext.Element.serializeForm(c);d=d?(d+"&"+b):b}return d},setupMethod:function(a,b){if(this.isFormUpload(a)){return"POST"}return b},setupHeaders:function(l,m,d,c){var h=this,b=Ext.apply({},m.headers||{},h.getDefaultHeaders()||{}),k=h.getDefaultPostHeader(),i=m.jsonData,a=m.xmlData,j,f;if(!b["Content-Type"]&&(d||c)){if(d){if(m.rawData){k="text/plain"}else{if(a&&Ext.isDefined(a)){k="text/xml"}else{if(i&&Ext.isDefined(i)){k="application/json"}}}}b["Content-Type"]=k}if(h.getUseDefaultXhrHeader()&&!b["X-Requested-With"]){b["X-Requested-With"]=h.getDefaultXhrHeader()}try{for(j in b){if(b.hasOwnProperty(j)){f=b[j];l.setRequestHeader(j,f)}}}catch(g){h.fireEvent("exception",j,f)}l.withCredentials=m.withCredentials;return b},getXhrInstance:(function(){var b=[function(){return new XMLHttpRequest()},function(){return new ActiveXObject("MSXML2.XMLHTTP.3.0")},function(){return new ActiveXObject("MSXML2.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")}],c=0,a=b.length,f;for(;c<a;++c){try{f=b[c];f();break}catch(d){}}return f})(),isLoading:function(a){if(!(a&&a.xhr)){return false}var b=a.xhr.readyState;return !(b===0||b==4)},abort:function(b){var a=this,d=a.requests,c;if(b&&a.isLoading(b)){b.xhr.onreadystatechange=null;b.xhr.abort();a.clearTimeout(b);if(!b.timedout){b.aborted=true}a.onComplete(b);a.cleanup(b)}else{if(!b){for(c in d){if(d.hasOwnProperty(c)){a.abort(d[c])}}}}},onStateChange:function(a){if(a.xhr.readyState==4){this.clearTimeout(a);this.onComplete(a);this.cleanup(a)}},clearTimeout:function(a){clearTimeout(a.timeout);delete a.timeout},cleanup:function(a){a.xhr=null;delete a.xhr},onComplete:function(f){var d=this,c=f.options,a,h,b;try{a=d.parseStatus(f.xhr.status)}catch(g){a={success:false,isException:false}}h=a.success;if(h){b=d.createResponse(f);d.fireEvent("requestcomplete",d,b,c);Ext.callback(c.success,c.scope,[b,c])}else{if(a.isException||f.aborted||f.timedout){b=d.createException(f)}else{b=d.createResponse(f)}d.fireEvent("requestexception",d,b,c);Ext.callback(c.failure,c.scope,[b,c])}Ext.callback(c.callback,c.scope,[c,h,b]);delete d.requests[f.id];return b},parseStatus:function(a){a=a==1223?204:a;var c=(a>=200&&a<300)||a==304||a==0,b=false;if(!c){switch(a){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:b=true;break}}return{success:c,isException:b}},createResponse:function(c){var h=c.xhr,a={},i=h.getAllResponseHeaders().replace(/\r\n/g,"\n").split("\n"),d=i.length,j,e,g,f,b;while(d--){j=i[d];e=j.indexOf(":");if(e>=0){g=j.substr(0,e).toLowerCase();if(j.charAt(e+1)==" "){++e}a[g]=j.substr(e+1)}}c.xhr=null;delete c.xhr;b={request:c,requestId:c.id,status:h.status,statusText:h.statusText,getResponseHeader:function(k){return a[k.toLowerCase()]},getAllResponseHeaders:function(){return a},responseText:h.responseText,responseXML:h.responseXML};h=null;return b},createException:function(a){return{request:a,requestId:a.id,status:a.aborted?-1:0,statusText:a.aborted?"transaction aborted":"communication failure",aborted:a.aborted,timedout:a.timedout}}});Ext.define("Ext.data.writer.Writer",{alias:"writer.base",alternateClassName:["Ext.data.DataWriter","Ext.data.Writer"],config:{writeAllFields:true,nameProperty:"name"},constructor:function(a){this.initConfig(a)},write:function(e){var c=e.getOperation(),b=c.getRecords()||[],a=b.length,d=0,f=[];for(;d<a;d++){f.push(this.getRecordData(b[d]))}return this.writeRecords(e,f)},writeDate:function(c,b){var a=c.dateFormat||"timestamp";switch(a){case"timestamp":return b.getTime()/1000;case"time":return b.getTime();default:return Ext.Date.format(b,a)}},getRecordData:function(f){var k=f.phantom===true,c=this.getWriteAllFields()||k,d=this.getNameProperty(),g=f.getFields(),e={},i,a,h,l,j,b;if(c){g.each(function(m){b=m.config;if(b.persist){a=b[d]||b.name;j=f.get(b.name);if(b.type.type=="date"){j=this.writeDate(b,j)}e[a]=j}},this)}else{i=f.getChanges();for(l in i){if(i.hasOwnProperty(l)){h=g.get(l);b=h.config;if(b.persist){a=b[d]||h.name;j=i[l];if(b.type.type=="date"){j=this.writeDate(b,j)}e[a]=j}}}if(!k){e[f.idProperty]=f.getId()}}return e}});Ext.define("Ext.data.ResultSet",{config:{loaded:true,count:null,total:null,success:false,records:null},constructor:function(a){this.initConfig(a)},applyCount:function(a){if(!a&&a!==0){return this.getRecords().length}return a},updateRecords:function(a){this.setCount(a.length)}});Ext.define("Ext.dataview.component.Container",{extend:"Ext.Container",requires:["Ext.dataview.component.DataItem"],constructor:function(){this.itemCache=[];this.callParent(arguments)},doInitialize:function(){this.innerElement.on({touchstart:"onItemTouchStart",touchend:"onItemTouchEnd",tap:"onItemTap",touchmove:"onItemTouchMove",doubletap:"onItemDoubleTap",swipe:"onItemSwipe",delegate:"> ."+Ext.baseCSSPrefix+"data-item",scope:this})},initialize:function(){this.callParent();this.doInitialize()},onItemTouchStart:function(d){var b=this,c=d.getTarget(),a=Ext.getCmp(c.id);a.on({touchmove:"onItemTouchMove",scope:b,single:true});b.fireEvent("itemtouchstart",b,a,b.indexOf(a),d)},onItemTouchMove:function(d){var b=this,c=d.getTarget(),a=Ext.getCmp(c.id);b.fireEvent("itemtouchmove",b,a,b.indexOf(a),d)},onItemTouchEnd:function(d){var b=this,c=d.getTarget(),a=Ext.getCmp(c.id);a.un({touchmove:"onItemTouchMove",scope:b});b.fireEvent("itemtouchend",b,a,b.indexOf(a),d)},onItemTap:function(d){var b=this,c=d.getTarget(),a=Ext.getCmp(c.id);b.fireEvent("itemtap",b,a,b.indexOf(a),d)},onItemTapHold:function(d){var b=this,c=d.getTarget(),a=Ext.getCmp(c.id);b.fireEvent("itemtaphold",b,a,b.indexOf(a),d)},onItemDoubleTap:function(d){var b=this,c=d.getTarget(),a=Ext.getCmp(c.id);b.fireEvent("itemdoubletap",b,a,b.indexOf(a),d)},onItemSwipe:function(d){var b=this,c=d.getTarget(),a=Ext.getCmp(c.id);b.fireEvent("itemswipe",b,a,b.indexOf(a),d)},moveItemsToCache:function(j,k){var h=this,c=h.dataview,a=c.getMaxItemCache(),g=h.getViewItems(),f=h.itemCache,e=f.length,l=c.getPressedCls(),d=c.getSelectedCls(),b=k-j,m;for(;b>=0;b--){m=g[j+b];if(e!==a){h.remove(m,false);m.removeCls([l,d]);f.push(m);e++}else{m.destroy()}}if(h.getViewItems().length==0){this.dataview.showEmptyText()}},moveItemsFromCache:function(b){var l=this,e=l.dataview,m=e.getStore(),k=b.length,a=e.getDefaultType(),h=e.getItemConfig(),g=l.itemCache,f=g.length,j=[],c,n,d;if(k){e.hideEmptyText()}for(c=0;c<k;c++){b[c]._tmpIndex=m.indexOf(b[c])}Ext.Array.sort(b,function(o,i){return o._tmpIndex>i._tmpIndex?1:-1});for(c=0;c<k;c++){d=b[c];if(f){f--;n=g.pop();n.setRecord(d)}else{n=l.getDataItemConfig(a,d,h)}this.insert(d._tmpIndex,n);delete d._tmpIndex}return j},getViewItems:function(){return this.getInnerItems()},updateListItem:function(a,b){if(b.setRecord){b.setRecord(a)}},getDataItemConfig:function(d,b,c){var a=this.dataview;return{xtype:d,record:b,dataview:a,itemCls:a.getItemCls(),defaults:c}},doRemoveItemCls:function(a){var b=this.getViewItems(),d=b.length,c=0;for(;c<d;c++){b[c].removeCls(a)}},doAddItemCls:function(a){var b=this.getViewItems(),d=b.length,c=0;for(;c<d;c++){b[c].addCls(a)}},destroy:function(){var d=this,b=d.itemCache,c=b.length,a=0;for(;a<c;a++){b[a].destroy()}this.callParent()}});Ext.define("Ext.slider.Slider",{extend:"Ext.Container",xtype:"slider",requires:["Ext.slider.Thumb","Ext.fx.easing.EaseOut"],config:{baseCls:"x-slider",thumbConfig:{draggable:{translatable:{easingX:{duration:300,type:"ease-out"}}}},value:0,tabIndex:-1,minValue:0,maxValue:100,increment:1,allowThumbsOverlapping:false,animation:true},elementWidth:0,offsetValueRatio:0,activeThumb:null,constructor:function(a){a=a||{};if(a.hasOwnProperty("values")){a.value=a.values}this.callParent([a])},initialize:function(){var a=this.element;this.callParent();a.on({scope:this,tap:"onTap"});this.on({scope:this,delegate:"> thumb",dragstart:"onThumbDragStart",drag:"onThumbDrag",dragend:"onThumbDragEnd"});this.on({painted:"refresh",resize:"refresh"})},factoryThumb:function(){return Ext.factory(this.getThumbConfig(),Ext.slider.Thumb)},getThumbs:function(){return this.innerItems},getThumb:function(a){if(typeof a!="number"){a=0}return this.innerItems[a]},refreshOffsetValueRatio:function(){var b=this.getMaxValue()-this.getMinValue(),a=this.elementWidth-this.thumbWidth;this.offsetValueRatio=a/b},refreshElementWidth:function(){this.elementWidth=this.element.dom.offsetWidth;this.thumbWidth=this.getThumb(0).getElementWidth()},refresh:function(){this.refreshElementWidth();this.refreshValue()},setActiveThumb:function(b){var a=this.activeThumb;if(a&&a!==b){a.setZIndex(null)}this.activeThumb=b;b.setZIndex(2);return this},onThumbDragStart:function(a,b){if(b.absDeltaX<=b.absDeltaY){return false}else{b.stopPropagation()}if(this.getAllowThumbsOverlapping()){this.setActiveThumb(a)}this.dragStartValue=this.getValue()[this.getThumbIndex(a)];this.fireEvent("dragstart",this,a,this.dragStartValue,b)},onThumbDrag:function(c,g,h){var d=this.getThumbIndex(c),a=h.x,f=this.offsetValueRatio,b=this.constrainValue(a/f);g.stopPropagation();this.setIndexValue(d,b);this.fireEvent("drag",this,c,this.getValue(),g);return false},setIndexValue:function(d,g,f){var c=this.getThumb(d),b=this.getValue(),e=this.offsetValueRatio,a=c.getDraggable();a.setOffset({x:g*e},f);b[d]=this.constrainValue(a.getOffset().x/e)},onThumbDragEnd:function(a,f){this.refreshThumbConstraints(a);var c=this.getThumbIndex(a),d=this.getValue()[c],b=this.dragStartValue;this.fireEvent("dragend",this,a,this.getValue(),f);if(b!==d){this.fireEvent("change",this,a,d,b)}},getThumbIndex:function(a){return this.getThumbs().indexOf(a)},refreshThumbConstraints:function(d){var b=this.getAllowThumbsOverlapping(),a=d.getDraggable().getOffset().x,c=this.getThumbs(),e=this.getThumbIndex(d),g=c[e-1],h=c[e+1],f=this.thumbWidth;if(g){g.getDraggable().addExtraConstraint({max:{x:a-((b)?0:f)}})}if(h){h.getDraggable().addExtraConstraint({min:{x:a+((b)?0:f)}})}},onTap:function(j){if(this.isDisabled()){return}var k=Ext.get(j.target);if(!k||k.hasCls("x-thumb")){return}var n=j.touch.point.x,h=this.element,c=h.getX(),d=n-c-(this.thumbWidth/2),o=this.constrainValue(d/this.offsetValueRatio),r=this.getValue(),q=Infinity,m=r.length,g,f,l,p,b,a;if(m===1){p=0}else{for(g=0;g<m;g++){l=r[g];f=Math.abs(l-o);if(f<q){q=f;p=g}}}b=r[p];a=this.getThumb(p);this.setIndexValue(p,o,this.getAnimation());this.refreshThumbConstraints(a);if(b!==o){this.fireEvent("change",this,a,o,b)}},updateThumbs:function(a){this.add(a)},applyValue:function(g){var d=Ext.Array.from(g||0),b=[],c=this.getMinValue(),a,e,f;for(e=0,f=d.length;e<f;e++){a=this.constrainValue(d[e]);if(a<c){Ext.Logger.warn("Invalid values of '"+Ext.encode(d)+"', values at smaller indexes must be smaller than or equal to values at greater indexes");a=c}b.push(a);c=a}return b},updateValue:function(e,b){var a=this.getThumbs(),d=e.length,c;this.setThumbsCount(d);for(c=0;c<d;c++){a[c].getDraggable().setExtraConstraint(null).setOffset({x:e[c]*this.offsetValueRatio})}for(c=0;c<d;c++){this.refreshThumbConstraints(a[c])}},refreshValue:function(){this.refreshOffsetValueRatio();this.setValue(this.getValue())},constrainValue:function(e){var b=this,d=b.getMinValue(),f=b.getMaxValue(),a=b.getIncrement(),c;e=parseFloat(e);if(isNaN(e)){e=d}c=e%a;e-=c;if(Math.abs(c)>=(a/2)){e+=(c>0)?a:-a}e=Math.max(d,e);e=Math.min(f,e);return e},setThumbsCount:function(e){var a=this.getThumbs(),f=a.length,c,d,b;if(f>e){for(c=0,d=f-e;c<d;c++){b=a[a.length-1];b.destroy()}}else{if(f<e){for(c=0,d=e-f;c<d;c++){this.add(this.factoryThumb())}}}return this},setValues:function(a){this.setValue(a)},getValues:function(){return this.getValue()},applyIncrement:function(a){if(a===0){a=1}return Math.abs(a)},updateAllowThumbsOverlapping:function(b,a){if(typeof a!="undefined"){this.refreshValue()}},updateMinValue:function(b,a){if(typeof a!="undefined"){this.refreshValue()}},updateMaxValue:function(b,a){if(typeof a!="undefined"){this.refreshValue()}},updateIncrement:function(b,a){if(typeof a!="undefined"){this.refreshValue()}},doSetDisabled:function(c){this.callParent(arguments);var a=this.getItems().items,d=a.length,b;for(b=0;b<d;b++){a[b].setDisabled(c)}}});Ext.define("Example.view.KittensListItem",{extend:"Ext.dataview.component.DataItem",xtype:"kittenslistitem",requires:["Ext.Img","Ext.slider.Slider"],config:{cls:"kitten-list-item",dataMap:{getImage:{setSrc:"image"},getName:{setHtml:"name"},getSlider:{setValue:"cuteness"}},image:true,name:{cls:"x-name",flex:1},slider:{flex:2},layout:{type:"hbox",align:"center"}},applyImage:function(a){return Ext.factory(a,Ext.Img,this.getImage())},updateImage:function(b,a){if(b){this.add(b)}if(a){this.remove(a)}},applyName:function(a){return Ext.factory(a,Ext.Component,this.getName())},updateName:function(a,b){if(a){this.add(a)}if(b){this.remove(b)}},applySlider:function(a){return Ext.factory(a,Ext.slider.Slider,this.getSlider())},updateSlider:function(b,a){if(b){this.add(b)}if(a){this.remove(a)}}});Ext.define("Ext.util.Collection",{config:{autoFilter:true,autoSort:true},mixins:{sortable:"Ext.mixin.Sortable",filterable:"Ext.mixin.Filterable"},constructor:function(b,a){var c=this;c.all=[];c.items=[];c.keys=[];c.indices={};c.map={};c.length=0;if(b){c.getKey=b}this.initConfig(a)},updateAutoSort:function(a,b){if(b===false&&a&&this.items.length){this.sort()}},updateAutoFilter:function(b,a){if(a===false&&b&&this.all.length){this.runFilters()}},insertSorters:function(){this.mixins.sortable.insertSorters.apply(this,arguments);if(this.getAutoSort()&&this.items.length){this.sort()}return this},removeSorters:function(a){this.mixins.sortable.removeSorters.call(this,a);if(this.sorted&&this.getAutoSort()&&this.item.length){this.sort()}return this},applyFilters:function(a){var b=this.mixins.filterable.applyFilters.call(this,a);if(!a&&this.all.length&&this.getAutoFilter()){this.filter()}return b},addFilters:function(a){this.mixins.filterable.addFilters.call(this,a);if(this.items.length&&this.getAutoFilter()){this.runFilters()}return this},removeFilters:function(a){this.mixins.filterable.removeFilters.call(this,a);if(this.filtered&&this.all.length&&this.getAutoFilter()){this.filter()}return this},filter:function(c,b,d,a){if(c){if(Ext.isString(c)){this.addFilters({property:c,value:b,anyMatch:d,caseSensitive:a});return this.items}else{this.addFilters(c);return this.items}}this.items=this.mixins.filterable.filter.call(this,this.all.slice());this.updateAfterFilter();if(this.sorted&&this.getAutoSort()){this.sort()}},runFilters:function(){this.items=this.mixins.filterable.filter.call(this,this.items);this.updateAfterFilter()},updateAfterFilter:function(){var a=this.items,f=this.keys,g=this.indices={},e=a.length,c,d,b;f.length=0;for(c=0;c<e;c++){d=a[c];b=this.getKey(d);g[b]=c;f[c]=b}this.length=a.length;this.dirtyIndices=false},sort:function(e,a){var d=this.items,h=this.keys,g=this.indices,c=d.length,b,j,f;if(e){this.addSorters(e,a);return this.items}for(b=0;b<c;b++){d[b]._current_key=h[b]}this.handleSort(d);for(b=0;b<c;b++){j=d[b];f=j._current_key;h[b]=f;g[f]=b;delete j._current_key}this.dirtyIndices=true},handleSort:function(a){this.mixins.sortable.sort.call(this,a)},add:function(i,k){var g=this,d=this.filtered,e=this.sorted,h=this.all,f=this.items,l=this.keys,j=this.indices,a=this.mixins.filterable,b=f.length,c=b;if(arguments.length==1){k=i;i=g.getKey(k)}if(typeof i!="undefined"&&i!==null){if(typeof g.map[i]!="undefined"){return g.replace(i,k)}g.map[i]=k}h.push(k);if(d&&this.getAutoFilter()&&a.isFiltered.call(g,k)){return null}g.length++;if(e&&this.getAutoSort()){c=this.findInsertionIndex(f,k)}if(c!==b){this.dirtyIndices=true;Ext.Array.splice(l,c,0,i);Ext.Array.splice(f,c,0,k)}else{j[i]=b;l.push(i);f.push(k)}return k},getKey:function(a){return a.id},replace:function(d,m){var i=this,g=i.sorted,f=i.filtered,b=i.mixins.filterable,h=i.items,n=i.keys,k=i.all,c=i.map,l=null,a=h.length,o,e,j;if(arguments.length==1){m=d;d=j=i.getKey(m)}else{j=i.getKey(m)}o=c[d];if(typeof d=="undefined"||d===null||typeof o=="undefined"){return i.add(j,m)}i.map[j]=m;if(j!==d){delete i.map[d]}if(g&&i.getAutoSort()){Ext.Array.remove(h,o);Ext.Array.remove(n,d);Ext.Array.remove(k,o);k.push(m);i.dirtyIndices=true;if(f&&i.getAutoFilter()){if(b.isFiltered.call(i,m)){if(a!==h.length){i.length--}return null}else{if(a===h.length){i.length++;l=m}}}e=this.findInsertionIndex(h,m);Ext.Array.splice(n,e,0,j);Ext.Array.splice(h,e,0,m)}else{if(f){if(i.getAutoFilter()&&b.isFiltered.call(i,m)){if(h.indexOf(o)!==-1){Ext.Array.remove(h,o);Ext.Array.remove(n,d);i.length--;i.dirtyIndices=true}return null}else{if(h.indexOf(o)===-1){h.push(m);n.push(j);i.indices[j]=i.length;i.length++;return m}}}e=i.indexOfKey(d);n[e]=j;h[e]=m;this.dirtyIndices=true}return l},addAll:function(h){var q=this,e=q.filtered,a=q.sorted,b=q.all,k=q.items,j=q.keys,p=q.map,l=q.getAutoFilter(),m=q.getAutoSort(),r=[],f=[],c=q.mixins.filterable,d=[],g,s,n,o;if(Ext.isObject(h)){for(s in h){if(h.hasOwnProperty(s)){f.push(k[s]);r.push(s)}}}else{f=h;g=h.length;for(n=0;n<g;n++){r.push(q.getKey(h[n]))}}for(n=0;n<g;n++){s=r[n];o=f[n];if(typeof s!="undefined"&&s!==null){if(typeof p[s]!="undefined"){q.replace(s,o);continue}p[s]=o}b.push(o);if(e&&l&&c.isFiltered.call(q,o)){continue}q.length++;j.push(s);k.push(o);d.push(o)}if(d.length){q.dirtyIndices=true;if(a&&m){q.sort()}return d}return null},each:function(e,d){var b=this.items.slice(),c=0,a=b.length,f;for(;c<a;c++){f=b[c];if(e.call(d||f,f,c,a)===false){break}}},eachKey:function(d,c){var f=this.keys,a=this.items,e=f.length,b;for(b=0;b<e;b++){d.call(c||window,f[b],a[b],b,e)}},findBy:function(e,d){var f=this.keys,b=this.items,c=0,a=b.length;for(;c<a;c++){if(e.call(d||window,b[c],f[c])){return b[c]}}return null},filterBy:function(e,d){var h=this,c=new this.self(),g=h.keys,a=h.all,f=a.length,b;c.getKey=h.getKey;for(b=0;b<f;b++){if(e.call(d||h,a[b],g[b])){c.add(g[b],a[b])}}return c},insert:function(c,d,f){var e=this,a=this.sorted,b=this.filtered;if(arguments.length==2){f=d;d=e.getKey(f)}if(e.containsKey(d)){e.removeAtKey(d)}if(c>=e.length||(a&&e.getAutoSort())){return e.add(d,f)}this.all.push(f);if(typeof d!="undefined"&&d!==null){e.map[d]=f}if(b&&this.getAutoFilter()&&filterable.isFiltered.call(e,f)){return null}e.length++;Ext.Array.splice(e.items,c,0,f);Ext.Array.splice(e.keys,c,0,d);e.dirtyIndices=true;return f},insertAll:function(g,d){if(g>=this.items.length||(this.sorted&&this.getAutoSort())){return this.addAll(d)}var s=this,h=this.filtered,a=this.sorted,b=this.all,m=this.items,l=this.keys,r=this.map,n=this.getAutoFilter(),o=this.getAutoSort(),t=[],j=[],f=[],c=this.mixins.filterable,e=false,k,u,p,q;if(a&&this.getAutoSort()){Ext.Logger.error("Inserting a collection of items into a sorted Collection is invalid. Please just add these items or remove the sorters.")}if(Ext.isObject(d)){for(u in d){if(d.hasOwnProperty(u)){j.push(m[u]);t.push(u)}}}else{j=d;k=d.length;for(p=0;p<k;p++){t.push(s.getKey(d[p]))}}for(p=0;p<k;p++){u=t[p];q=j[p];if(typeof u!="undefined"&&u!==null){if(s.containsKey(u)){s.removeAtKey(u)}r[u]=q}b.push(q);if(h&&n&&c.isFiltered.call(s,q)){continue}s.length++;l.push(u);m.push(q);Ext.Array.splice(m,g+p,0,q);Ext.Array.splice(l,g+p,0,u);e=true;f.push(q)}if(e){this.dirtyIndices=true;if(a&&o){this.sort()}return f}return null},remove:function(b){var a=this.items.indexOf(b);if(a===-1){Ext.Array.remove(this.all,b);return b}return this.removeAt(this.items.indexOf(b))},removeAll:function(a){if(a){var c=a.length,b;for(b=0;b<c;b++){this.remove(a[b])}}return this},removeAt:function(b){var g=this,a=g.items,f=g.keys,d=this.all,e,c;if(b<g.length&&b>=0){e=a[b];c=f[b];if(typeof c!="undefined"){delete g.map[c]}Ext.Array.erase(a,b,1);Ext.Array.erase(f,b,1);Ext.Array.remove(d,e);g.length--;this.dirtyIndices=true;return e}return false},removeAtKey:function(a){return this.removeAt(this.indexOfKey(a))},getCount:function(){return this.length},indexOf:function(b){if(this.dirtyIndices){this.updateIndices()}var a=this.indices[this.getKey(b)];return(a===undefined)?-1:a},indexOfKey:function(b){if(this.dirtyIndices){this.updateIndices()}var a=this.indices[b];return(a===undefined)?-1:a},updateIndices:function(){var a=this.items,e=a.length,f=this.indices={},c,d,b;for(c=0;c<e;c++){d=a[c];b=this.getKey(d);f[b]=c}this.dirtyIndices=false},get:function(b){var d=this,a=d.map[b],c;if(a!==undefined){c=a}else{if(typeof b=="number"){c=d.items[b]}}return typeof c!="function"||d.getAllowFunctions()?c:null},getAt:function(a){return this.items[a]},getByKey:function(a){return this.map[a]},contains:function(b){var a=this.getKey(b);if(a){return this.containsKey(a)}else{return Ext.Array.contains(this.items,b)}},containsKey:function(a){return typeof this.map[a]!="undefined"},clear:function(){var a=this;a.length=0;a.items.length=0;a.keys.length=0;a.all.length=0;a.map={}},first:function(){return this.items[0]},last:function(){return this.items[this.length-1]},getRange:function(f,a){var e=this,c=e.items,b=[],d;if(c.length<1){return b}f=f||0;a=Math.min(typeof a=="undefined"?e.length-1:a,e.length-1);if(f<=a){for(d=f;d<=a;d++){b[b.length]=c[d]}}else{for(d=f;d>=a;d--){b[b.length]=c[d]}}return b},findIndexBy:function(d,c,h){var g=this,f=g.keys,a=g.items,b=h||0,e=a.length;for(;b<e;b++){if(d.call(c||g,a[b],f[b])){return b}}return -1},clone:function(){var e=this,f=new this.self(),d=e.keys,a=e.items,b=0,c=a.length;for(;b<c;b++){f.add(d[b],a[b])}f.getKey=e.getKey;return f}});Ext.define("Ext.data.StoreManager",{extend:"Ext.util.Collection",alternateClassName:["Ext.StoreMgr","Ext.data.StoreMgr","Ext.StoreManager"],singleton:true,uses:["Ext.data.ArrayStore"],register:function(){for(var a=0,b;(b=arguments[a]);a++){this.add(b)}},unregister:function(){for(var a=0,b;(b=arguments[a]);a++){this.remove(this.lookup(b))}},lookup:function(c){if(Ext.isArray(c)){var b=["field1"],e=!Ext.isArray(c[0]),f=c,d,a;if(e){f=[];for(d=0,a=c.length;d<a;++d){f.push([c[d]])}}else{for(d=2,a=c[0].length;d<=a;++d){b.push("field"+d)}}return Ext.create("Ext.data.ArrayStore",{data:f,fields:b,autoDestroy:true,autoCreated:true,expanded:e})}if(Ext.isString(c)){return this.get(c)}else{if(c instanceof Ext.data.Store){return c}else{return Ext.factory(c,Ext.data.Store,null,"store")}}},getKey:function(a){return a.getStoreId()}},function(){Ext.regStore=function(c,b){var a;if(Ext.isObject(c)){b=c}else{if(b instanceof Ext.data.Store){b.setStoreId(c)}else{b.storeId=c}}if(b instanceof Ext.data.Store){a=b}else{a=Ext.create("Ext.data.Store",b)}return Ext.data.StoreManager.register(a)};Ext.getStore=function(a){return Ext.data.StoreManager.lookup(a)}});Ext.define("Ext.dataview.DataView",{extend:"Ext.Container",alternateClassName:"Ext.DataView",mixins:["Ext.mixin.Selectable"],xtype:"dataview",requires:["Ext.LoadMask","Ext.data.StoreManager","Ext.dataview.component.Container","Ext.dataview.element.Container"],config:{store:null,baseCls:Ext.baseCSSPrefix+"dataview",emptyText:null,deferEmptyText:true,itemTpl:"<div>{text}</div>",pressedCls:"x-item-pressed",itemCls:null,selectedCls:"x-item-selected",triggerEvent:"itemtap",triggerCtEvent:"tap",deselectOnContainerClick:true,scrollable:true,pressedDelay:100,loadingText:"Loading...",useComponents:null,itemConfig:{},maxItemCache:20,defaultType:"dataitem",scrollToTopOnRefresh:true},constructor:function(a){var b=this;if(a&&a.layout){Ext.Logger.warn("Attempting to create a DataView with a layout. DataViews do not have a layout configuration as their items are laid out automatically.");delete a.layout}b.hasLoadedStore=false;b.mixins.selectable.constructor.apply(b,arguments);b.callParent(arguments)},updateItemCls:function(c,b){var a=this.container;if(a){if(b){a.doRemoveItemCls(b)}if(c){a.doAddItemCls(c)}}},storeEventHooks:{beforeload:"onBeforeLoad",load:"onLoad",refresh:"refresh",addrecords:"onStoreAdd",removerecords:"onStoreRemove",updaterecord:"onStoreUpdate"},doInitialize:function(){var b=this,a;b.on(b.getTriggerCtEvent(),b.onContainerTrigger,b);a=b.container=this.add(new Ext.dataview[b.getUseComponents()?"component":"element"].Container());a.dataview=b;a.on(b.getTriggerEvent(),b.onItemTrigger,b);a.on({itemtouchstart:"onItemTouchStart",itemtouchend:"onItemTouchEnd",itemtap:"onItemTap",itemtaphold:"onItemTapHold",itemtouchmove:"onItemTouchMove",itemdoubletap:"onItemDoubleTap",itemswipe:"onItemSwipe",scope:b});if(this.getStore()){this.refresh()}},initialize:function(){this.callParent();this.doInitialize()},prepareData:function(c,b,a){return c},onContainerTrigger:function(b){var a=this;if(b.target!=a.element.dom){return}if(a.getDeselectOnContainerClick()&&a.getStore()){a.deselectAll()}},onItemTrigger:function(a,d,b,c){this.selectWithEvent(this.getStore().getAt(b))},doAddPressedCls:function(a){var c=this,b=c.container.getViewItems()[c.getStore().indexOf(a)];if(Ext.isElement(b)){b=Ext.get(b)}b.addCls(c.getPressedCls())},onItemTouchStart:function(b,i,d,h){var f=this,c=f.getStore(),a=c&&c.getAt(d),g=f.getPressedDelay();if(a){if(g>0){f.pressedTimeout=Ext.defer(f.doAddPressedCls,g,f,[a])}else{f.doAddPressedCls(a)}}f.fireEvent("itemtouchstart",f,d,i,a,h)},onItemTouchEnd:function(b,h,d,g){var f=this,c=f.getStore(),a=c&&c.getAt(d);if(this.hasOwnProperty("pressedTimeout")){clearTimeout(this.pressedTimeout);delete this.pressedTimeout}if(a){h.removeCls(f.getPressedCls())}f.fireEvent("itemtouchend",f,d,h,a,g)},onItemTouchMove:function(b,h,d,g){var f=this,c=f.getStore(),a=c&&c.getAt(d);if(f.hasOwnProperty("pressedTimeout")){clearTimeout(f.pressedTimeout);delete f.pressedTimeout}if(a){h.removeCls(f.getPressedCls())}f.fireEvent("itemtouchmove",f,d,h,a,g)},onItemTap:function(b,h,d,g){var f=this,c=f.getStore(),a=c&&c.getAt(d);f.fireEvent("itemtap",f,d,h,a,g)},onItemTapHold:function(b,h,d,g){var f=this,c=f.getStore(),a=c&&c.getAt(d);f.fireEvent("itemtaphold",f,d,h,a,g)},onItemDoubleTap:function(b,h,d,g){var f=this,c=f.getStore(),a=c&&c.getAt(d);f.fireEvent("itemdoubletap",f,d,h,a,g)},onItemSwipe:function(b,h,d,g){var f=this,c=f.getStore(),a=c&&c.getAt(d);f.fireEvent("itemswipe",f,d,h,a,g)},onItemSelect:function(a,b){var c=this;if(b){c.doItemSelect(c,a)}else{c.fireAction("select",[c,a],"doItemSelect")}},doItemSelect:function(c,a){if(c.container){var b=c.container.getViewItems()[c.getStore().indexOf(a)];if(Ext.isElement(b)){b=Ext.get(b)}b.removeCls(c.getPressedCls());b.addCls(c.getSelectedCls())}},onItemDeselect:function(a,b){var c=this;if(c.container){if(b){c.doItemDeselect(c,a)}else{c.fireAction("deselect",[c,a,b],"doItemDeselect")}}},doItemDeselect:function(c,a){var b=c.container.getViewItems()[c.getStore().indexOf(a)];if(Ext.isElement(b)){b=Ext.get(b)}if(b){b.removeCls([c.getPressedCls(),c.getSelectedCls()])}},updateData:function(b){var a=this.getStore();if(!a){this.setStore(Ext.create("Ext.data.Store",{data:b}))}else{a.add(b)}},applyStore:function(a){var b=this,c=Ext.apply({},b.storeEventHooks,{scope:b});if(a){a=Ext.data.StoreManager.lookup(a);if(a&&Ext.isObject(a)&&a.isStore){a.on(c)}else{Ext.Logger.warn("The specified Store cannot be found",this)}}return a},updateStore:function(a,c){var b=this,d=Ext.apply({},b.storeEventHooks,{scope:b});if(c&&Ext.isObject(c)&&c.isStore){if(c.autoDestroy){c.destroy()}else{c.un(d)}}if(a){if(a.isAutoLoading()){this.hasLoadedStore=true}if(a.isLoading()){this.hasLoadedStore=true;b.onBeforeLoad()}if(b.container){b.refresh()}}},onBeforeLoad:function(){var b=this.getScrollable();if(b){b.getScroller().stopAnimation()}var a=this.getLoadingText();if(a){this.setMasked({xtype:"loadmask",message:a});if(b){b.getScroller().setDisabled(true)}}this.hideEmptyText()},updateEmptyText:function(b){var a=this;if(b){a.emptyTextCmp=a.add({xtype:"component",cls:a.getBaseCls()+"-emptytext",html:b,hidden:true})}else{if(a.emptyTextCmp){a.remove(a.emptyTextCmp,true);delete a.emptyTextCmp}}},onLoad:function(){var a=this.getScrollable();this.hasLoadedStore=true;this.setMasked(false);if(a){a.getScroller().setDisabled(false)}},refresh:function(){var b=this,a=b.container;if(!b.getStore()){if(!b.hasLoadedStore&&!b.getDeferEmptyText()){b.showEmptyText()}return}if(a){b.fireAction("refresh",[b],"doRefresh")}},applyItemTpl:function(a){return(Ext.isObject(a)&&a.isTemplate)?a:new Ext.XTemplate(a)},onAfterRender:function(){var a=this;a.callParent(arguments);a.updateStore(a.getStore())},getViewItems:function(){return this.container.getViewItems()},doRefresh:function(f){var a=f.container,j=f.getStore(),b=j.getRange(),e=a.getViewItems(),h=b.length,l=e.length,c=h-l,g=f.getScrollable(),d,k;if(this.getScrollToTopOnRefresh()&&g){g.getScroller().scrollTo(0,0)}if(h<1){f.onStoreClear();return}if(c<0){a.moveItemsToCache(l+c,l-1);e=a.getViewItems();l=e.length}else{if(c>0){a.moveItemsFromCache(j.getRange(l))}}for(d=0;d<l;d++){k=e[d];a.updateListItem(b[d],k)}},showEmptyText:function(){if(this.hasLoadedStore&&this.getEmptyText()){this.emptyTextCmp.show()}},hideEmptyText:function(){if(this.getEmptyText()){this.emptyTextCmp.hide()}},onStoreClear:function(){var c=this,a=c.container,b=a.getViewItems();a.moveItemsToCache(0,b.length-1);this.showEmptyText()},onStoreAdd:function(b,a){if(a){this.container.moveItemsFromCache(a)}},onStoreRemove:function(c,b,f){var a=this.container,e=b.length,d;for(d=0;d<e;d++){a.moveItemsToCache(f[d],f[d])}},onStoreUpdate:function(c,b,d,f){var e=this,a=e.container;f=(typeof f==="undefined")?d:f;if(f!==d){a.moveItemsToCache(f,f);a.moveItemsFromCache([b])}else{a.updateListItem(b,a.getViewItems()[d])}}},function(){Ext.deprecateClassMethod(this,"bindStore",this.prototype.setStore,"'bindStore()' is deprecated, please use 'setStore' instead")});Ext.define("Example.view.KittensList",{extend:"Ext.dataview.DataView",xtype:"kittenlist",requires:["Example.view.KittensListItem"],config:{useComponents:true,cls:"kitten-list",store:"Kittens",defaultType:"kittenslistitem"}});Ext.define("Example.view.Main",{extend:"Ext.Container",xtype:"main",requires:["Example.view.KittensList"],config:{layout:"fit",items:[{xclass:"Example.view.KittensList"}]}});Ext.define("Ext.data.Errors",{extend:"Ext.util.Collection",requires:"Ext.data.Error",isValid:function(){return this.length===0},getByField:function(d){var c=[],a,b;for(b=0;b<this.length;b++){a=this.items[b];if(a.getField()==d){c.push(a)}}return c},add:function(){var a=arguments.length==1?arguments[0]:arguments[1];if(!(a instanceof Ext.data.Error)){a=Ext.create("Ext.data.Error",{field:a.field||a.name,message:a.error||a.message})}return this.callParent([a])}});Ext.define("Ext.data.Types",{singleton:true,requires:["Ext.data.SortTypes"],stripRe:/[\$,%]/g},function(){var b=this,a=Ext.data.SortTypes;Ext.apply(b,{AUTO:{convert:function(c){return c},sortType:a.none,type:"auto"},STRING:{convert:function(c){return(c===undefined||c===null)?(this.getAllowNull()?null:""):String(c)},sortType:a.asUCString,type:"string"},INT:{convert:function(c){return(c!==undefined&&c!==null&&c!=="")?((typeof c==="number")?parseInt(c,10):parseInt(String(c).replace(b.stripRe,""),10)):(this.getAllowNull()?null:0)},sortType:a.none,type:"int"},FLOAT:{convert:function(c){return(c!==undefined&&c!==null&&c!=="")?((typeof c==="number")?c:parseFloat(String(c).replace(b.stripRe,""),10)):(this.getAllowNull()?null:0)},sortType:a.none,type:"float"},BOOL:{convert:function(c){if((c===undefined||c===null||c==="")&&this.getAllowNull()){return null}return c===true||c==="true"||c==1},sortType:a.none,type:"bool"},DATE:{convert:function(e){var c=this.getDateFormat(),d;if(!e){return null}if(Ext.isDate(e)){return e}if(c){if(c=="timestamp"){return new Date(e*1000)}if(c=="time"){return new Date(parseInt(e,10))}return Ext.Date.parse(e,c)}d=new Date(Date.parse(e));if(isNaN(d)){d=new Date(Date.parse(e.replace(/-/g,"/")));if(isNaN(d)){Ext.Logger.warn("Cannot parse the passed value ("+e+") into a valid date")}}return isNaN(d)?null:d},sortType:a.asDate,type:"date"}});Ext.apply(b,{BOOLEAN:this.BOOL,INTEGER:this.INT,NUMBER:this.FLOAT})});Ext.define("Ext.data.Field",{requires:["Ext.data.Types","Ext.data.SortTypes"],alias:"data.field",isField:true,config:{name:null,type:"auto",convert:undefined,dateFormat:null,allowNull:true,defaultValue:undefined,mapping:null,sortType:undefined,sortDir:"ASC",allowBlank:true,persist:true,encode:null,decode:null},constructor:function(a){if(Ext.isString(a)){a={name:a}}if(a.useNull!==undefined){a.allowNull=a.useNull;delete a.useNull;Ext.Logger.warn("useNull has been deprecated on a Field definition. Please use allowNull instead.")}this.initConfig(a)},applyType:function(c){var b=Ext.data.Types,a=b.AUTO;if(c){if(Ext.isString(c)){return b[c.toUpperCase()]||a}else{return c}}return a},updateType:function(a,b){var c=this.getConvert();if(b&&c===b.convert){this.setConvert(a.convert)}},applySortType:function(d){var c=Ext.data.SortTypes,a=this.getType(),b=a.sortType;if(d){if(Ext.isString(d)){return c[d]||b}else{return d}}return b},applyConvert:function(b){var a=this.getType().convert;if(b&&b!==a){this._hasCustomConvert=true;return b}else{this._hasCustomConvert=false;return a}},hasCustomConvert:function(){return this._hasCustomConvert}});Ext.define("Ext.AbstractManager",{requires:["Ext.util.HashMap"],typeName:"type",constructor:function(a){Ext.apply(this,a||{});this.all=Ext.create("Ext.util.HashMap");this.types={}},get:function(a){return this.all.get(a)},register:function(a){this.all.add(a)},unregister:function(a){this.all.remove(a)},registerType:function(b,a){this.types[b]=a;a[this.typeName]=b},isRegistered:function(a){return this.types[a]!==undefined},create:function(a,d){var b=a[this.typeName]||a.type||d,c=this.types[b];if(c==undefined){Ext.Error.raise("The '"+b+"' type has not been registered with this manager")}return new c(a)},onAvailable:function(e,c,b){var a=this.all,d;if(a.containsKey(e)){d=a.get(e);c.call(b||d,d)}else{a.on("add",function(h,f,g){if(f==e){c.call(b||g,g);a.un("add",c,b)}})}},each:function(b,a){this.all.each(b,a||this)},getCount:function(){return this.all.getCount()}});Ext.define("Ext.data.ModelManager",{extend:"Ext.AbstractManager",alternateClassName:["Ext.ModelMgr","Ext.ModelManager"],singleton:true,modelNamespace:null,registerType:function(c,b){var d=b.prototype,a;if(d&&d.isModel){a=b}else{b={extend:b.extend||"Ext.data.Model",config:b};a=Ext.define(c,b)}this.types[c]=a;return a},onModelDefined:Ext.emptyFn,getModel:function(b){var a=b;if(typeof a=="string"){a=this.types[a];if(!a&&this.modelNamespace){a=this.types[this.modelNamespace+"."+a]}}return a},create:function(c,b,d){var a=typeof b=="function"?b:this.types[b||c.name];return new a(c,d)}},function(){Ext.regModel=function(){if(Ext.isDefined(Ext.global.console)){Ext.global.console.warn('Ext.regModel has been deprecated. Models can now be created by extending Ext.data.Model: Ext.define("MyModel", {extend: "Ext.data.Model", fields: []});.')}return this.ModelManager.registerType.apply(this.ModelManager,arguments)}});Ext.define("Ext.Ajax",{extend:"Ext.data.Connection",singleton:true,autoAbort:false});Ext.define("Ext.data.association.Association",{alternateClassName:"Ext.data.Association",requires:["Ext.data.ModelManager"],config:{ownerModel:null,ownerName:undefined,associatedModel:null,associatedName:undefined,associationKey:undefined,primaryKey:"id",reader:null,type:null,name:undefined},statics:{create:function(a){if(!a.isAssociation){if(Ext.isString(a)){a={type:a}}switch(a.type){case"belongsTo":return Ext.create("Ext.data.association.BelongsTo",a);case"hasMany":return Ext.create("Ext.data.association.HasMany",a);case"hasOne":return Ext.create("Ext.data.association.HasOne",a);default:Ext.Logger.error('Unknown Association type: "'+a.type+'"')}}return a}},constructor:function(a){this.initConfig(a)},applyName:function(a){if(!a){a=this.getAssociatedName()}return a},applyOwnerModel:function(a){var b=Ext.data.ModelManager.getModel(a);if(b===undefined){Ext.Logger.error("The configured ownerModel was not valid (you tried "+a+")")}return b},applyOwnerName:function(a){if(!a){a=this.getOwnerModel().modelName}a=a.slice(a.lastIndexOf(".")+1);return a},updateOwnerModel:function(a){this.setOwnerName(a.modelName)},applyAssociatedModel:function(a){var b=Ext.data.ModelManager.types[a];if(b===undefined){Ext.Logger.error("The configured associatedModel was not valid (you tried "+a+")")}return b},applyAssociatedName:function(a){if(!a){a=this.getAssociatedModel().modelName}a=a.slice(a.lastIndexOf(".")+1);return a},updateAssociatedModel:function(a){this.setAssociatedName(a.modelName)},applyReader:function(a){if(a){if(Ext.isString(a)){a={type:a}}if(!a.isReader){Ext.applyIf(a,{type:"json"})}}return Ext.factory(a,Ext.data.Reader,this.getReader(),"reader")},updateReader:function(a){a.setModel(this.getAssociatedModel())}});Ext.define("Ext.data.association.HasMany",{extend:"Ext.data.association.Association",alternateClassName:"Ext.data.HasManyAssociation",requires:["Ext.util.Inflector"],alias:"association.hasmany",config:{foreignKey:undefined,store:undefined,storeName:undefined,filterProperty:null,autoLoad:false},constructor:function(a){a=a||{};if(a.storeConfig){Ext.Logger.warn("storeConfig is deprecated on an association. Instead use the store configuration.");a.store=a.storeConfig;delete a.storeConfig}this.callParent([a])},applyName:function(a){if(!a){a=Ext.util.Inflector.pluralize(this.getAssociatedName().toLowerCase())}return a},applyStoreName:function(a){if(!a){a=this.getName()+"Store"}return a},applyForeignKey:function(a){if(!a){a=this.getOwnerName().toLowerCase()+"_id"}return a},applyAssociationKey:function(a){if(!a){var b=this.getAssociatedName();a=Ext.util.Inflector.pluralize(b[0].toLowerCase()+b.slice(1))}return a},updateForeignKey:function(b,d){var a=this.getAssociatedModel().getFields(),c=a.get(b);if(!c){c=new Ext.data.Field({name:b});a.add(c);a.isDirty=true}if(d){c=a.get(d);if(c){a.remove(c);a.isDirty=true}}},applyStore:function(g){var f=this,h=f.getAssociatedModel(),c=f.getStoreName(),d=f.getForeignKey(),a=f.getPrimaryKey(),e=f.getFilterProperty(),b=f.getAutoLoad();return function(){var l=this,j,k,i={};if(l[c]===undefined){if(e){k={property:e,value:l.get(e),exactMatch:true}}else{k={property:d,value:l.get(a),exactMatch:true}}i[d]=l.get(a);j=Ext.apply({},g,{model:h,filters:[k],remoteFilter:true,modelDefaults:i});l[c]=Ext.create("Ext.data.Store",j);if(b){l[c].load()}}return l[c]}},updateStore:function(a){this.getOwnerModel().prototype[this.getName()]=a},read:function(c,a,f){var e=c[this.getName()](),d=a.read(f).getRecords(),b;e.add(d);b=this.getAssociatedModel().associations.findBy(function(g){return g.type==="belongsTo"&&g.getAssociatedName()===c.$className});if(b){e.data.each(function(g){g[b.getInstanceName()]=c})}}});Ext.define("Ext.data.association.BelongsTo",{extend:"Ext.data.association.Association",alternateClassName:"Ext.data.BelongsToAssociation",alias:"association.belongsto",config:{foreignKey:undefined,getterName:undefined,setterName:undefined,instanceName:undefined},applyForeignKey:function(a){if(!a){a=this.getAssociatedName().toLowerCase()+"_id"}return a},updateForeignKey:function(b,d){var a=this.getOwnerModel().getFields(),c=a.get(b);if(!c){c=new Ext.data.Field({name:b});a.add(c);a.isDirty=true}if(d){c=a.get(d);if(c){a.isDirty=true;a.remove(c)}}},applyInstanceName:function(a){if(!a){a=this.getAssociatedName()+"BelongsToInstance"}return a},applyAssociationKey:function(a){if(!a){var b=this.getAssociatedName();a=b[0].toLowerCase()+b.slice(1)}return a},applyGetterName:function(a){if(!a){a="get"+this.getAssociatedName()}return a},applySetterName:function(a){if(!a){a="set"+this.getAssociatedName()}return a},updateGetterName:function(b,c){var a=this.getOwnerModel().prototype;if(c){delete a[c]}if(b){a[b]=this.createGetter()}},updateSetterName:function(b,c){var a=this.getOwnerModel().prototype;if(c){delete a[c]}if(b){a[b]=this.createSetter()}},createSetter:function(){var b=this,a=b.getForeignKey();return function(e,c,d){if(e&&e.isModel){e=e.getId()}this.set(a,e);if(Ext.isFunction(c)){c={callback:c,scope:d||this}}if(Ext.isObject(c)){return this.save(c)}}},createGetter:function(){var c=this,d=c.getAssociatedModel(),b=c.getForeignKey(),a=c.getInstanceName();return function(h,i){h=h||{};var g=this,j=g.get(b),k,e,f;if(h.reload===true||g[a]===undefined){if(typeof h=="function"){h={callback:h,scope:i||g}}k=h.success;h.success=function(l){g[a]=l;if(k){k.call(this,arguments)}};d.load(j,h)}else{e=g[a];f=[e];i=i||g;Ext.callback(h,i,f);Ext.callback(h.success,i,f);Ext.callback(h.failure,i,f);Ext.callback(h.callback,i,f);return e}}},read:function(b,a,c){b[this.getInstanceName()]=a.read([c]).getRecords()[0]}});Ext.define("Ext.data.association.HasOne",{extend:"Ext.data.association.Association",alternateClassName:"Ext.data.HasOneAssociation",alias:"association.hasone",config:{foreignKey:undefined,getterName:undefined,setterName:undefined,instanceName:undefined},applyForeignKey:function(a){if(!a){a=this.getAssociatedName().toLowerCase()+"_id"}return a},updateForeignKey:function(b,d){var a=this.getAssociatedModel().getFields(),c=a.get(b);if(!c){c=new Ext.data.Field({name:b});a.add(c);a.isDirty=true}if(d){c=a.get(d);if(c){a.remove(c);a.isDirty=true}}},applyInstanceName:function(a){if(!a){a=this.getAssociatedName()+"BelongsToInstance"}return a},applyAssociationKey:function(a){if(!a){var b=this.getAssociatedName();a=b[0].toLowerCase()+b.slice(1)}return a},applyGetterName:function(a){if(!a){a="get"+this.getAssociatedName()}return a},applySetterName:function(a){if(!a){a="set"+this.getAssociatedName()}return a},updateGetterName:function(b,c){var a=this.getOwnerModel().prototype;if(c){delete a[c]}if(b){a[b]=this.createGetter()}},updateSetterName:function(b,c){var a=this.getOwnerModel().prototype;if(c){delete a[c]}if(b){a[b]=this.createSetter()}},createSetter:function(){var b=this,a=b.getForeignKey();return function(e,c,d){if(e&&e.isModel){e=e.getId()}this.set(a,e);if(Ext.isFunction(c)){c={callback:c,scope:d||this}}if(Ext.isObject(c)){return this.save(c)}}},createGetter:function(){var c=this,d=c.getAssociatedModel(),b=c.getForeignKey(),a=c.getInstanceName();return function(h,i){h=h||{};var g=this,j=g.get(b),k,e,f;if(h.reload===true||g[a]===undefined){if(typeof h=="function"){h={callback:h,scope:i||g}}k=h.success;h.success=function(l){g[a]=l;if(k){k.call(this,arguments)}};d.load(j,h)}else{e=g[a];f=[e];i=i||g;Ext.callback(h,i,f);Ext.callback(h.success,i,f);Ext.callback(h.failure,i,f);Ext.callback(h.callback,i,f);return e}}},read:function(c,a,e){var b=this.getAssociatedModel().associations.findBy(function(f){return f.type==="belongsTo"&&f.getAssociatedName()===c.$className}),d=a.read([e]).getRecords()[0];c[this.getInstanceName()]=d;if(b){d[b.getInstanceName()]=c}}});Ext.define("Ext.data.writer.Json",{extend:"Ext.data.writer.Writer",alternateClassName:"Ext.data.JsonWriter",alias:"writer.json",config:{root:undefined,encode:false,allowSingle:true,encodeRequest:false},applyRoot:function(a){if(!a&&(this.getEncode()||this.getEncodeRequest())){a="data"}return a},writeRecords:function(d,e){var a=this.getRoot(),f=d.getParams(),b=this.getAllowSingle(),c;if(this.getAllowSingle()&&e&&e.length==1){e=e[0]}if(this.getEncodeRequest()){c=d.getJsonData()||{};if(e&&(e.length||(b&&Ext.isObject(e)))){c[a]=e}d.setJsonData(Ext.apply(c,f||{}));d.setParams(null);d.setMethod("POST");return d}if(!e||!(e.length||(b&&Ext.isObject(e)))){return d}if(this.getEncode()){if(a){f[a]=Ext.encode(e)}else{Ext.Logger.error("Must specify a root when using encode")}}else{c=d.getJsonData()||{};if(a){c[a]=e}else{c=e}d.setJsonData(c)}return d}});Ext.define("Ext.data.reader.Reader",{requires:["Ext.data.ResultSet"],alternateClassName:["Ext.data.Reader","Ext.data.DataReader"],mixins:["Ext.mixin.Observable"],isReader:true,config:{idProperty:undefined,clientIdProperty:"clientId",totalProperty:"total",successProperty:"success",messageProperty:null,rootProperty:"",implicitIncludes:true,model:undefined},constructor:function(a){a=a||{};if(a.root){console.warn("root has been deprecated as a configuration on Reader. Please use rootProperty instead.");a.rootProperty=a.root;delete a.root}this.initConfig(a)},fieldCount:0,applyModel:function(a){if(typeof a=="string"){a=Ext.data.ModelManager.getModel(a);if(!a){Ext.Logger.error("Model with name "+arguments[0]+" doesnt exist.")}}if(a&&!a.prototype.isModel&&Ext.isObject(a)){a=Ext.data.ModelManager.registerType(a.storeId||a.id||Ext.id(),a)}return a},applyIdProperty:function(a){if(!a&&this.getModel()){a=this.getModel().getIdProperty()}return a},updateModel:function(a){if(a){if(!this.getIdProperty()){this.setIdProperty(a.getIdProperty())}this.buildExtractors()}},createAccessor:Ext.emptyFn,buildExtractors:function(){var d=this,h=d.getIdProperty(),f=d.getTotalProperty(),b=d.getSuccessProperty(),g=d.getMessageProperty(),a=d.getClientIdProperty(),e,c;if(f){d.getTotal=d.createAccessor(f)}if(b){d.getSuccess=d.createAccessor(b)}if(g){d.getMessage=d.createAccessor(g)}if(h){e=d.createAccessor(h);d.getId=function(i){var j=e.call(d,i);return(j===undefined||j==="")?null:j}}else{d.getId=function(){return null}}if(a){c=d.createAccessor(a);d.getClientId=function(i){var j=c.call(d,i);return(j===undefined||j==="")?null:j}}else{d.getClientId=function(){return null}}d.buildFieldExtractors()},buildFieldExtractors:function(){var e=this,a=e.getFields(),d=a.length,c=0,g=[],f,b;for(;c<d;c++){f=a[c];b=f.getMapping();if(b===undefined||b===null){b=f.getName()}g.push(e.createAccessor(b))}e.fieldCount=d;e.extractorFunctions=g},getFields:function(){return this.getModel().getFields().items},getData:function(a){return a},getRoot:function(a){return a},read:function(c){var g=c,h=this.getModel(),e,b,d,f,a;if(c){g=this.getResponseData(c)}if(g){e=this.readRecords(g);b=e.getRecords();for(d=0,f=b.length;d<f;d++){a=b[d];b[d]=new h(a.data,a.id,a.node)}return e}else{return this.nullResultSet}},process:function(a){var b=a;if(a){b=this.getResponseData(a)}if(b){return this.readRecords(b)}else{return this.nullResultSet}},readRecords:function(c){var d=this;d.rawData=c;c=d.getData(c);var f=Ext.isArray(c)?c:d.getRoot(c),h=true,b=0,e,g,a,i;if(d.getTotalProperty()){g=parseInt(d.getTotal(c),10);if(!isNaN(g)){e=g}}if(d.getSuccessProperty()){g=d.getSuccess(c);if(g===false||g==="false"){h=false}}if(d.getMessageProperty()){i=d.getMessage(c)}if(f){a=d.extractData(f);b=a.length}else{b=0;a=[]}return new Ext.data.ResultSet({total:e,count:b,records:a,success:h,message:i})},extractData:function(o){var m=this,e=[],c=o.length,l=m.getFields(),h=l.length,n=m.getModel().getFields(),k,d,b,a,g,f,p;if(n.isDirty){m.buildExtractors(true);delete n.isDirty}if(!o.length&&Ext.isObject(o)){o=[o];c=1}for(g=0;g<c;g++){k={};d=o[g];b=m.getId(d);a=m.getClientId(d);for(f=0;f<h;f++){p=m.extractorFunctions[f](d);if(p!==undefined){k[l[f].getName()]=p}}if(m.getImplicitIncludes()){m.readAssociated(k,d)}e.push({id:b,clientId:a,node:d,data:k})}return e},readAssociated:function(h,g){var e=this.getModel().associations.items,d=0,f=e.length,a,c,b;for(;d<f;d++){a=e[d];b=a.getAssociationKey();c=this.getAssociatedDataRoot(g,b);if(c){h[b]=c}}},getAssociatedDataRoot:function(b,a){return b[a]}},function(){Ext.apply(this.prototype,{nullResultSet:new 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",config:{record:null,useSimpleAccessors:false},getResponseData:function(a){if(a&&a.responseText){a=a.responseText}if(typeof a!=="string"){return a}var c;try{c=Ext.decode(a)}catch(b){this.fireEvent("exception",this,a,"Unable to parse the JSON returned by the server: "+b.toString());Ext.Logger.error("Unable to parse the JSON returned by the server: "+b.toString())}if(!c){this.fireEvent("exception",this,a,"JSON object not found");Ext.Logger.error("JSON object not found")}return c},buildExtractors:function(){var b=this,a=b.getRootProperty();b.callParent(arguments);if(a){b.rootAccessor=b.createAccessor(a)}else{delete b.rootAccessor}},getRoot:function(b){var a=this.getModel().getFields();if(a.isDirty){this.buildExtractors(true);delete a.isDirty}if(this.rootAccessor){return this.rootAccessor.call(this,b)}else{return b}},extractData:function(a){var e=this.getRecord(),d=[],c,b;if(e){c=a.length;if(!c&&Ext.isObject(a)){c=1;a=[a]}for(b=0;b<c;b++){d[b]=a[b][e]}}else{d=a}return this.callParent([d])},createAccessor:function(){var a=/[\[\.]/;return function(c){if(Ext.isEmpty(c)){return Ext.emptyFn}if(Ext.isFunction(c)){return c}if(this.getUseSimpleAccessors()!==true){var b=String(c).search(a);if(b>=0){return Ext.functionFactory("obj","var value; try {value = obj"+(b>0?".":"")+c+"} catch(e) {}; return value;")}}return function(d){return d[c]}}}()});Ext.define("Ext.data.proxy.Proxy",{extend:"Ext.Evented",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"],config:{batchOrder:"create,update,destroy",batchActions:true,model:null,reader:{type:"json"},writer:{type:"json"}},isProxy:true,applyModel:function(a){if(typeof a=="string"){a=Ext.data.ModelManager.getModel(a);if(!a){Ext.Logger.error("Model with name "+arguments[0]+" doesnt exist.")}}if(a&&!a.prototype.isModel&&Ext.isObject(a)){a=Ext.data.ModelManager.registerType(a.storeId||a.id||Ext.id(),a)}return a},updateModel:function(b){if(b){var a=this.getReader();if(a&&!a.getModel()){a.setModel(b)}}},applyReader:function(b,a){return Ext.factory(b,Ext.data.Reader,a,"reader")},updateReader:function(a){var b=this.getModel();if(!b){b=a.getModel();if(b){this.setModel(b)}}else{a.setModel(b)}},applyWriter:function(b,a){return Ext.factory(b,Ext.data.Writer,a,"writer")},create:Ext.emptyFn,read:Ext.emptyFn,update:Ext.emptyFn,destroy:Ext.emptyFn,onDestroy:function(){Ext.destroy(this.getReader(),this.getWriter())},batch:function(e,f){var g=this,d=g.getBatchActions(),c=this.getModel(),b,a;if(e.operations===undefined){e={operations:e,batch:{listeners:f}};Ext.Logger.deprecate("Passes old-style signature to Proxy.batch (operations, listeners). Please convert to single options argument syntax.")}if(e.batch){if(e.batch.isBatch){e.batch.setProxy(g)}else{e.batch.proxy=g}}else{e.batch={proxy:g,listeners:e.listeners||{}}}if(!b){b=new Ext.data.Batch(e.batch)}b.on("complete",Ext.bind(g.onBatchComplete,g,[e],0));Ext.each(g.getBatchOrder().split(","),function(h){a=e.operations[h];if(a){if(d){b.add(new Ext.data.Operation({action:h,records:a,model:c}))}else{Ext.each(a,function(i){b.add(new Ext.data.Operation({action:h,records:[i],model:c}))})}}},g);b.start();return b},onBatchComplete:function(a,b){var c=a.scope||this;if(b.hasException){if(Ext.isFunction(a.failure)){Ext.callback(a.failure,c,[b,a])}}else{if(Ext.isFunction(a.success)){Ext.callback(a.success,c,[b,a])}}if(Ext.isFunction(a.callback)){Ext.callback(a.callback,c,[b,a])}},onClassExtended:function(b,f){var d=this.prototype,a=d.config,c=f.config||{},e;for(e in a){if(e!="control"&&e in f){c[e]=f[e];delete f[e];Ext.Logger.warn(e+" is deprecated as a property directly on the "+this.$className+" prototype. Please put it inside the config object.")}}f.config=c}},function(){});Ext.define("Ext.data.proxy.Client",{extend:"Ext.data.proxy.Proxy",alternateClassName:"Ext.proxy.ClientProxy",clear:function(){Ext.Logger.error("The Ext.data.proxy.Client subclass that you are using has not defined a 'clear' function. See src/data/ClientProxy.js for details.")}});Ext.define("Ext.data.proxy.Memory",{extend:"Ext.data.proxy.Client",alias:"proxy.memory",alternateClassName:"Ext.data.MemoryProxy",isMemoryProxy:true,config:{data:[]},finishOperation:function(b,f,d){if(b){var c=0,e=b.getRecords(),a=e.length;for(c;c<a;c++){e[c].commit()}b.setSuccessful();Ext.callback(f,d||this,[b])}},create:function(){this.finishOperation.apply(this,arguments)},update:function(){this.finishOperation.apply(this,arguments)},destroy:function(){this.finishOperation.apply(this,arguments)},read:function(b,e,c){var d=this,a=d.getReader();if(b.process("read",a.process(d.getData()))===false){this.fireEvent("exception",this,null,b)}Ext.callback(e,c||d,[b])},clear:Ext.emptyFn});Ext.define("Ext.data.proxy.Server",{extend:"Ext.data.proxy.Proxy",alias:"proxy.server",alternateClassName:"Ext.data.ServerProxy",requires:["Ext.data.Request"],config:{url:null,pageParam:"page",startParam:"start",limitParam:"limit",groupParam:"group",sortParam:"sort",filterParam:"filter",directionParam:"dir",enablePagingParams:true,simpleSortMode:false,noCache:true,cacheString:"_dc",timeout:30000,api:{create:undefined,read:undefined,update:undefined,destroy:undefined},extraParams:{}},constructor:function(a){a=a||{};if(a.nocache!==undefined){a.noCache=a.nocache;Ext.Logger.warn("nocache configuration on Ext.data.proxy.Server has been deprecated. Please use noCache.")}this.callParent([a])},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)},setExtraParam:function(a,b){this.getExtraParams()[a]=b},buildRequest:function(a){var c=this,d=Ext.applyIf(a.getParams()||{},c.getExtraParams()||{}),b;d=Ext.applyIf(d,c.getParams(a));b=Ext.create("Ext.data.Request",{params:d,action:a.getAction(),records:a.getRecords(),url:a.getUrl(),operation:a,proxy:c});b.setUrl(c.buildUrl(b));a.setRequest(b);return b},processResponse:function(k,b,d,c,j,l){var h=this,a=b.getAction(),f,i;if(k===true){f=h.getReader();try{i=f.process(c)}catch(g){b.setException(b,{status:null,statusText:g.getMessage()});h.fireEvent("exception",this,c,b);return}if(b.process(a,i,d,c)===false){this.fireEvent("exception",this,c,b)}}else{h.setException(b,c);h.fireEvent("exception",this,c,b)}if(typeof j=="function"){j.call(l||h,b)}h.afterRequest(d,k)},setException:function(b,a){b.setException({status:a.status,statusText:a.statusText})},applyEncoding:function(a){return Ext.encode(a)},encodeSorters:function(d){var b=[],c=d.length,a=0;for(;a<c;a++){b[a]={property:d[a].getProperty(),direction:d[a].getDirection()}}return this.applyEncoding(b)},encodeFilters:function(d){var b=[],c=d.length,a=0;for(;a<c;a++){b[a]={property:d[a].getProperty(),value:d[a].getValue()}}return this.applyEncoding(b)},getParams:function(h){var n=this,g={},i=h.getGroupers(),m=h.getSorters(),e=h.getFilters(),l=h.getPage(),c=h.getStart(),f=h.getLimit(),o=n.getSimpleSortMode(),q=n.getPageParam(),k=n.getStartParam(),p=n.getLimitParam(),j=n.getGroupParam(),d=n.getSortParam(),b=n.getFilterParam(),a=n.getDirectionParam();if(n.getEnablePagingParams()){if(q&&l!==null){g[q]=l}if(k&&c!==null){g[k]=c}if(p&&f!==null){g[p]=f}}if(j&&i&&i.length>0){g[j]=n.encodeSorters(i)}if(d&&m&&m.length>0){if(o){g[d]=m[0].getProperty();g[a]=m[0].getDirection()}else{g[d]=n.encodeSorters(m)}}if(b&&e&&e.length>0){g[b]=n.encodeFilters(e)}return g},buildUrl:function(c){var b=this,a=b.getUrl(c);if(!a){Ext.Logger.error("You are using a ServerProxy but have not supplied it with a url.")}if(b.getNoCache()){a=Ext.urlAppend(a,Ext.String.format("{0}={1}",b.getCacheString(),Ext.Date.now()))}return a},getUrl:function(a){return a.getUrl()||this.getApi()[a.getAction()]||this._url},doRequest:function(a,c,b){Ext.Logger.error("The doRequest function has not been implemented on your Ext.data.proxy.Server subclass. See src/data/ServerProxy.js for details")},afterRequest:Ext.emptyFn});Ext.define("Ext.data.proxy.Ajax",{extend:"Ext.data.proxy.Server",requires:["Ext.util.MixedCollection","Ext.Ajax"],alias:"proxy.ajax",alternateClassName:["Ext.data.HttpProxy","Ext.data.AjaxProxy"],config:{actionMethods:{create:"POST",read:"GET",update:"POST",destroy:"POST"},headers:{}},doRequest:function(a,e,b){var d=this.getWriter(),c=this.buildRequest(a);c.setConfig({headers:this.getHeaders(),timeout:this.getTimeout(),method:this.getMethod(c),callback:this.createRequestCallback(c,a,e,b),scope:this});c=d.write(c);Ext.Ajax.request(c.getCurrentConfig());return c},getMethod:function(a){return this.getActionMethods()[a.getAction()]},createRequestCallback:function(d,a,e,b){var c=this;return function(g,h,f){c.processResponse(h,a,d,f,e,b)}}});Ext.define("Ext.data.Model",{alternateClassName:"Ext.data.Record",mixins:{observable:"Ext.mixin.Observable"},isModel:true,requires:["Ext.util.Collection","Ext.data.Field","Ext.data.identifier.Simple","Ext.data.ModelManager","Ext.data.proxy.Ajax","Ext.data.association.HasMany","Ext.data.association.BelongsTo","Ext.data.association.HasOne","Ext.data.Errors"],config:{idProperty:"id",data:null,fields:undefined,validations:null,associations:null,hasMany:null,hasOne:null,belongsTo:null,proxy:null,identifier:{type:"simple"},clientIdProperty:"clientId",isErased:false},staticConfigs:["idProperty","fields","validations","associations","hasMany","hasOne","belongsTo","clientIdProperty","identifier","proxy"],statics:{EDIT:"edit",REJECT:"reject",COMMIT:"commit",generateProxyMethod:function(a){return function(){var b=this.prototype;return b[a].apply(b,arguments)}},generateCacheId:function(a,b){return a.modelName.replace(/\./g,"-").toLowerCase()+"-"+(b!==undefined?b:a.getId())}},inheritableStatics:{load:function(g,c,e){e=c.scope||this;if(Ext.isFunction(c)){c={callback:c,scope:e}}c=Ext.apply({},c);c=Ext.applyIf(c,{action:"read",params:{id:g},model:this});var b=Ext.create("Ext.data.Operation",c),d=this.getProxy(),a=null,f;if(!d){Ext.Logger.error("You are trying to load a model that doesn't have a Proxy specified")}f=function(h){if(h.wasSuccessful()){a=h.getRecords()[0];Ext.callback(c.success,e,[a,h])}else{Ext.callback(c.failure,e,[a,h])}Ext.callback(c.callback,e,[a,h])};d.read(b,f,this)}},editing:false,dirty:false,phantom:false,constructor:function(e,g,b,f){var d=this,c=null,a=this.getIdProperty();d.modified={};d.raw=b||e||{};d.stores=[];if(g||g===0){c=Ext.data.Model.cache.get(Ext.data.Model.generateCacheId(this,g));if(c){return c.mergeData(f||e||{})}}e=e||f||{};if(g||g===0){e[a]=d.internalId=g}if(f){d.setConvertedData(e)}else{d.setData(e)}g=d.data[a];if(!g&&g!==0){d.data[a]=d.internalId=d.id=d.getIdentifier().generate(d);d.phantom=true;if(this.associations.length){this.handleInlineAssociationData(e)}}else{d.id=d.getIdentifier().generate(d)}Ext.data.Model.cache.add(d);if(this.init&&typeof this.init=="function"){this.init()}},mergeData:function(a){var g=this,d=g.getFields().items,e=d.length,b=g.data,c,h,k,j,f;for(c=0;c<e;c++){h=d[c];k=h.getName();f=h.getConvert();j=a[k];if(j!==undefined&&!g.isModified(k)){if(f){j=f.call(h,j,g)}b[k]=j}}return this},setData:function(a){var g=this.fields.items,h=g.length,f=Ext.isArray(a),d=this._data=this.data={},e,k,b,l,j,c;if(!a){return this}for(e=0;e<h;e++){k=g[e];b=k.getName();j=k.getConvert();if(f){l=a[e]}else{l=a[b];if(typeof l=="undefined"){l=k.getDefaultValue()}}if(j){l=j.call(k,l,this)}d[b]=l}c=this.getId();if(this.associations.length&&(c||c===0)){this.handleInlineAssociationData(a)}return this},handleInlineAssociationData:function(h){var f=this.associations.items,g=f.length,e,b,d,a,c;for(e=0;e<g;e++){b=f[e];d=h[b.getAssociationKey()];if(d){a=b.getReader();if(!a){c=b.getAssociatedModel().getProxy();if(c){a=c.getReader()}else{a=new Ext.data.JsonReader({model:b.getAssociatedModel()});if(!Ext.isArray(d)){d=[d]}}}b.read(this,a,d)}}},setId:function(b){var a=this.getId();this.set(this.getIdProperty(),b);this.internalId=b;Ext.data.Model.cache.replace(a,this)},getId:function(){return this.get(this.getIdProperty())},setConvertedData:function(a){this._data=this.data=a;return this},get:function(a){return this.data[a]},set:function(p,l){var j=this,b=j.fields.map,o=j.modified,a=!j.editing,c=j.associations.items,f=0,d=[],k,n,e,m,g,h;if(arguments.length==1){for(n in p){if(p.hasOwnProperty(n)){k=b[n];if(k&&k.hasCustomConvert()){d.push(n);continue}if(!f&&a){j.beginEdit()}++f;j.set(n,p[n])}}g=d.length;if(g){if(!f&&a){j.beginEdit()}f+=g;for(e=0;e<g;e++){k=d[e];j.set(k,p[k])}}if(a&&f){j.endEdit(false,d)}}else{k=b[p];h=k&&k.getConvert();if(h){l=h.call(k,l,j)}m=j.data[p];j.data[p]=l;if(k&&!j.isEqual(m,l)){if(o.hasOwnProperty(p)){if(j.isEqual(o[p],l)){delete o[p];j.dirty=false;for(n in o){if(o.hasOwnProperty(n)){j.dirty=true;break}}}}else{j.dirty=true;o[p]=m}}if(a){j.afterEdit([p],o)}}},isEqual:function(d,c){if(Ext.isDate(d)&&Ext.isDate(c)){return d.getTime()===c.getTime()}return d===c},beginEdit:function(){var a=this;if(!a.editing){a.editing=true;a.dirtySave=a.dirty;a.dataSave=Ext.apply({},a.data);a.modifiedSave=Ext.apply({},a.modified)}},cancelEdit:function(){var a=this;if(a.editing){a.editing=false;a.modified=a.modifiedSave;a.data=a.dataSave;a.dirty=a.dirtySave;delete a.modifiedSave;delete a.dataSave;delete a.dirtySave}},endEdit:function(a,c){var b=this;if(b.editing){b.editing=false;if(a!==true&&(b.changedWhileEditing())){b.afterEdit(c||Ext.Object.getKeys(this.modified),this.modified)}delete b.modifiedSave;delete b.dataSave;delete b.dirtySave}},changedWhileEditing:function(){var c=this,b=c.dataSave,d=c.data,a;for(a in d){if(d.hasOwnProperty(a)){if(!c.isEqual(d[a],b[a])){return true}}}return false},getChanges:function(){var a=this.modified,b={},c;for(c in a){if(a.hasOwnProperty(c)){b[c]=this.get(c)}}return b},isModified:function(a){return this.modified.hasOwnProperty(a)},save:function(b,d){var e=this,f=e.phantom?"create":"update",c=e.getProxy(),a,g;if(!c){Ext.Logger.error("You are trying to save a model instance that doesn't have a Proxy specified")}b=b||{};d=d||e;if(Ext.isFunction(b)){b={callback:b,scope:d}}Ext.applyIf(b,{records:[e],action:f,model:e.self});a=Ext.create("Ext.data.Operation",b);g=function(h){if(h.wasSuccessful()){Ext.callback(b.success,d,[e,h])}else{Ext.callback(b.failure,d,[e,h])}Ext.callback(b.callback,d,[e,h])};c[f](a,g,e);return e},erase:function(b,d){var e=this,c=this.getProxy(),a,f;if(!c){Ext.Logger.error("You are trying to erase a model instance that doesn't have a Proxy specified")}b=b||{};d=d||e;if(Ext.isFunction(b)){b={callback:b,scope:d}}Ext.applyIf(b,{records:[e],action:"destroy",model:this.self});a=Ext.create("Ext.data.Operation",b);f=function(g){if(g.wasSuccessful()){Ext.callback(b.success,d,[e,g])}else{Ext.callback(b.failure,d,[e,g])}Ext.callback(b.callback,d,[e,g])};c.destroy(a,f,e);return e},reject:function(a){var c=this,b=c.modified,d;for(d in b){if(b.hasOwnProperty(d)){if(typeof b[d]!="function"){c.data[d]=b[d]}}}c.dirty=false;c.editing=false;c.modified={};if(a!==true){c.afterReject()}},commit:function(a){var c=this,b=this.modified;c.phantom=c.dirty=c.editing=false;c.modified={};if(a!==true){c.afterCommit(b)}},afterEdit:function(b,a){this.notifyStores("afterEdit",b,a)},afterReject:function(){this.notifyStores("afterReject")},afterCommit:function(a){this.notifyStores("afterCommit",a)},notifyStores:function(e){var c=Ext.Array.clone(arguments),a=this.stores,f=a.length,d,b;c[0]=this;for(d=0;d<f;++d){b=a[d];if(b!==undefined&&typeof b[e]=="function"){b[e].apply(b,c)}}},copy:function(a){var b=this;return new b.self(null,a,b.raw,Ext.apply({},b.data))},getData:function(a){var b=this.data;if(a===true){Ext.apply(b,this.getAssociatedData())}return b},getAssociatedData:function(){return this.prepareAssociatedData(this,[],null)},prepareAssociatedData:function(o,a,n){var h=o.associations.items,l=h.length,e={},f,s,g,q,r,d,c,m,k,p,b;for(m=0;m<l;m++){d=h[m];s=d.getName();p=d.getType();b=true;if(n){b=p==n}if(b&&p=="hasMany"){f=o[d.getStoreName()];e[s]=[];if(f&&f.getCount()>0){g=f.data.items;r=g.length;for(k=0;k<r;k++){q=g[k];c=q.id;if(Ext.Array.indexOf(a,c)==-1){a.push(c);e[s][k]=q.getData();Ext.apply(e[s][k],this.prepareAssociatedData(q,a,p))}}}}else{if(b&&(p=="belongsTo"||p=="hasOne")){q=o[d.getInstanceName()];if(q!==undefined){c=q.id;if(Ext.Array.indexOf(a,c)===-1){a.push(c);e[s]=q.getData();Ext.apply(e[s],this.prepareAssociatedData(q,a,p))}}}}}return e},join:function(a){Ext.Array.include(this.stores,a)},unjoin:function(a){Ext.Array.remove(this.stores,a)},setDirty:function(){var b=this,a;b.dirty=true;b.fields.each(function(c){if(c.getPersist()){a=c.getName();b.modified[a]=b.get(a)}})},validate:function(){var j=Ext.create("Ext.data.Errors"),c=this.getValidations().items,e=Ext.data.Validations,b,d,h,a,g,f;if(c){b=c.length;for(f=0;f<b;f++){d=c[f];h=d.field||d.name;g=d.type;a=e[g](d,this.get(h));if(!a){j.add(Ext.create("Ext.data.Error",{field:h,message:d.message||e.getMessage(g)}))}}}return j},isValid:function(){return this.validate().isValid()},toUrl:function(){var b=this.$className.split("."),a=b[b.length-1].toLowerCase();return a+"/"+this.getId()},markDirty:function(){if(Ext.isDefined(Ext.Logger)){Ext.Logger.deprecate("Ext.data.Model: markDirty has been deprecated. Use setDirty instead.")}return this.setDirty.apply(this,arguments)},applyProxy:function(b,a){return Ext.factory(b,Ext.data.Proxy,a,"proxy")},updateProxy:function(a){if(a){a.setModel(this.self)}},applyAssociations:function(a){if(a){this.addAssociations(a,"hasMany")}},applyBelongsTo:function(a){if(a){this.addAssociations(a,"belongsTo")}},applyHasMany:function(a){if(a){this.addAssociations(a,"hasMany")}},applyHasOne:function(a){if(a){this.addAssociations(a,"hasOne")}},addAssociations:function(d,g){var e,c,a,b=this.self.modelName,f=this.self.associations;d=Ext.Array.from(d);for(c=0,e=d.length;c<e;c++){a=d[c];if(!Ext.isObject(a)){a={model:a}}Ext.applyIf(a,{type:g,ownerModel:b,associatedModel:a.model});delete a.model;Ext.ClassManager.onCreated(function(){f.add(Ext.data.association.Association.create(a))},this,(typeof a.associatedModel==="string")?a.associatedModel:Ext.getClassName(a.associatedModel))}},applyValidations:function(a){if(a){if(!Ext.isArray(a)){a=[a]}this.addValidations(a)}},addValidations:function(a){this.self.validations.addAll(a)},applyFields:function(a){var b=this.superclass.fields;if(b){a=b.items.concat(a||[])}return a||[]},updateFields:function(c){var d=c.length,e=this,h=e.self.prototype,j=this.getIdProperty(),a,f,g,b;f=e._fields=e.fields=new Ext.util.Collection(h.getFieldName);for(b=0;b<d;b++){g=c[b];if(!g.isField){g=new Ext.data.Field(c[b])}f.add(g)}a=f.get(j);if(!a){f.add(new Ext.data.Field(j))}else{a.setType("auto")}f.addSorter(h.sortConvertFields)},applyIdentifier:function(a){if(typeof a==="string"){a={type:a}}return Ext.factory(a,Ext.data.identifier.Simple,this.getIdentifier(),"data.identifier")},getFieldName:function(a){return a.getName()},sortConvertFields:function(a,d){var c=a.hasCustomConvert(),b=d.hasCustomConvert();if(c&&!b){return 1}if(!c&&b){return -1}return 0},onClassExtended:function(k,d,j){var f=j.onBeforeCreated,b=this,h=b.prototype,e=Ext.Class.configNameCache,g=h.staticConfigs.concat(d.staticConfigs||[]),c=h.config,a=d.config||{},i;if(d.idgen||a.idgen){a.identifier=d.idgen||a.idgen;console.warn('idgen is deprecated as a property. Please put it inside the config object under the new "identifier" configuration')}for(i in c){if(i in d){a[i]=d[i];delete d[i];console.warn(i+" is deprecated as a property directly on the Model prototype. Please put it inside the config object.")}}d.config=a;j.onBeforeCreated=function(A,t){var v=[],x=A.prototype,w={},m=x.config,n=g.length,q=["set","get"],s=q.length,o=m.associations||[],l=Ext.getClassName(A),z,y,r,p,u;for(r=0;r<n;r++){z=g[r];for(p=0;p<s;p++){y=e[z][q[p]];if(y in x){w[y]=b.generateProxyMethod(y)}}}A.addStatics(w);A.modelName=l;x.modelName=l;if(m.belongsTo){v.push("association.belongsto")}if(m.hasMany){v.push("association.hasmany")}if(m.hasOne){v.push("association.hasone")}for(r=0,u=o.length;r<u;++r){v.push("association."+o[r].type.toLowerCase())}if(m.proxy){if(typeof m.proxy==="string"){v.push("proxy."+m.proxy)}else{if(typeof m.proxy.type==="string"){v.push("proxy."+m.proxy.type)}}}if(m.validations){v.push("Ext.data.Validations")}Ext.require(v,function(){Ext.Function.interceptBefore(j,"onCreated",function(){Ext.data.ModelManager.registerType(l,A);var B=A.prototype.superclass;A.prototype.associations=A.associations=A.prototype._associations=(B&&B.associations)?B.associations.clone():new Ext.util.Collection(function(C){return C.getName()});A.prototype.validations=A.validations=A.prototype._validations=(B&&B.validations)?B.validations.clone():new Ext.util.Collection(function(C){return C.field||C.name});A.prototype=Ext.Object.chain(A.prototype);A.prototype.initConfig.call(A.prototype,m);delete A.prototype.initConfig});f.call(b,A,t,j)})}}},function(){this.cache=new Ext.util.Collection(this.generateCacheId)});Ext.define("Ext.data.Store",{alias:"store.store",extend:"Ext.Evented",requires:["Ext.util.Collection","Ext.data.Operation","Ext.data.proxy.Memory","Ext.data.Model","Ext.data.StoreManager","Ext.util.Grouper"],statics:{create:function(a){if(!a.isStore){if(!a.type){a.type="store"}a=Ext.createByAlias("store."+a.type,a)}return a}},isStore:true,config:{storeId:undefined,data:null,autoLoad:null,autoSync:false,model:undefined,proxy:undefined,fields:null,remoteSort:false,remoteFilter:false,remoteGroup:false,filters:null,sorters:null,grouper:null,groupField:null,groupDir:null,getGroupString:null,pageSize:25,totalCount:null,clearOnPageLoad:true,modelDefaults:{},autoDestroy:false,syncRemovedRecords:true},currentPage:1,constructor:function(a){a=a||{};this.data=this._data=this.createDataCollection();this.data.setSortRoot("data");this.data.setFilterRoot("data");this.removed=[];if(a.id&&!a.storeId){a.storeId=a.id;delete a.id}if(a.hasOwnProperty("sortOnLoad")){console.warn("[Ext.data.Store] sortOnLoad is always activated in Sencha Touch 2 so your Store is always fully sorted after loading. The only expection is if you are using remoteSort and change sorting after the Store as loaded, in which case you need to call store.load() to fetch the sorted data from the server.")}if(a.hasOwnProperty("filterOnLoad")){console.warn("[Ext.data.Store] filterOnLoad is always activated in Sencha Touch 2 so your Store is always fully sorted after loading. The only expection is if you are using remoteFilter and change filtering after the Store as loaded, in which case you need to call store.load() to fetch the filtered data from the server.")}if(a.hasOwnProperty("sortOnFilter")){console.warn("[Ext.data.Store] sortOnFilter is deprecated and is always effectively true when sorting and filtering locally")}this.initConfig(a)},createDataCollection:function(){return new Ext.util.Collection(function(a){return a.getId()})},applyStoreId:function(a){if(a===undefined||a===null){a=this.getUniqueId()}return a},updateStoreId:function(a,b){if(b){Ext.data.StoreManager.unregister(this)}if(a){Ext.data.StoreManager.register(this)}},applyModel:function(b){if(typeof b=="string"){var d=Ext.data.ModelManager.getModel(b);if(!d){Ext.Logger.error('Model with name "'+b+'" does not exist.')}b=d}if(b&&!b.prototype.isModel&&Ext.isObject(b)){b=Ext.data.ModelManager.registerType(b.storeId||b.id||Ext.id(),b)}if(!b){var a=this.getFields(),c=this.config.data;if(!a&&c&&c.length){a=Ext.Object.getKeys(c[0])}if(a){b=Ext.define("Ext.data.Store.ImplicitModel-"+(this.getStoreId()||Ext.id()),{extend:"Ext.data.Model",config:{fields:a,proxy:this.getProxy()}});this.implicitModel=true}}if(!b&&this.getProxy()){b=this.getProxy().getModel()}if(!b){Ext.Logger.error("A store needs to have a model defined on either itself or on its proxy")}return b},updateModel:function(a){var b=this.getProxy();if(b&&!b.getModel()){b.setModel(a)}if(b&&!a.getProxy()){a.setProxy(b)}},applyProxy:function(b,a){b=Ext.factory(b,Ext.data.Proxy,a,"proxy");if(!b&&this.getModel()){b=this.getModel().getProxy();if(!b){b=new Ext.data.proxy.Memory({model:this.getModel()})}}return b},updateProxy:function(a){if(a&&!a.getModel()){a.setModel(this.getModel())}},applyData:function(b){if(b){var a=this.getProxy();if(a instanceof Ext.data.proxy.Memory){a.setData(b);this.load()}else{this.removeAll(true);this.fireEvent("clear",this);this.suspendEvents();this.add(b);this.resumeEvents();this.dataLoaded=true}}else{this.removeAll(true);this.fireEvent("clear",this)}this.fireEvent("refresh",this,this.data)},clearData:function(){this.setData(null)},addData:function(d){var a=this.getProxy().getReader(),c=a.read(d),b=c.getRecords();this.add(b)},updateAutoLoad:function(a){var b=this.getProxy();if(a&&(b&&!b.isMemoryProxy)){this.load(Ext.isObject(a)?a:null)}},isAutoLoading:function(){var a=this.getProxy();return(this.getAutoLoad()||(a&&a.isMemoryProxy)||this.dataLoaded)},updateGroupField:function(a){var b=this.getGrouper();if(a){if(!b){this.setGrouper({property:a,direction:this.getGroupDir()||"ASC"})}else{b.setProperty(a)}}else{if(b){this.setGrouper(null)}}},updateGroupDir:function(a){var b=this.getGrouper();if(b){b.setDirection(a)}},applyGetGroupString:function(b){var a=this.getGrouper();if(b){Ext.Logger.warn("Specifying getGroupString on a store has been deprecated. Please use grouper: {groupFn: yourFunction}");if(a){a.setGroupFn(b)}else{this.setGrouper({groupFn:b})}}else{if(a){this.setGrouper(null)}}},applyGrouper:function(a){if(typeof a=="string"){a={property:a}}else{if(typeof a=="function"){a={groupFn:a}}}a=Ext.factory(a,Ext.util.Grouper,this.getGrouper());return a},updateGrouper:function(b,a){var c=this.data;if(a){c.removeSorter(a);if(!b){c.getSorters().removeSorter("isGrouper")}}if(b){c.insertSorter(0,b);if(!a){c.getSorters().addSorter({direction:"DESC",property:"isGrouper",transform:function(d){return(d===true)?1:-1}})}}},isGrouped:function(){return !!this.getGrouped()},updateSorters:function(d){var b=this.getGrouper(),c=this.data,a=c.getAutoSort();c.setAutoSort(false);c.setSorters(d);if(b){c.insertSorter(0,b)}this.updateSortTypes();c.setAutoSort(a)},updateSortTypes:function(){var b=this.getModel(),a=b&&b.getFields(),c=this.data;if(a){c.getSorters().each(function(f){var d=f.getProperty(),e;if(!f.isGrouper&&d&&!f.getTransform()){e=a.get(d);if(e){f.setTransform(e.getSortType())}}})}},updateFilters:function(a){this.data.setFilters(a)},add:function(a){if(!Ext.isArray(a)){a=Array.prototype.slice.apply(arguments)}return this.insert(this.data.length,a)},insert:function(e,b){if(!Ext.isArray(b)){b=Array.prototype.slice.call(arguments,1)}var h=this,k=false,f=b.length,a=this.getModel(),g=h.getModelDefaults(),c,d,j=false;b=b.slice();for(c=0;c<f;c++){d=b[c];if(!d.isModel){d=new a(d)}else{if(this.removed.indexOf(d)!=-1){Ext.Array.remove(this.removed,d)}}d.set(g);b[c]=d;d.join(h);k=k||(d.phantom===true)}if(f===1){j=this.data.insert(e,b[0]);if(j){j=[j]}}else{j=this.data.insertAll(e,b)}if(j){h.fireEvent("addrecords",h,j)}if(h.getAutoSync()&&k){h.sync()}return b},remove:function(b){if(b.isModel){b=[b]}var l=this,m=false,d=0,a=this.getAutoSync(),k=b.length,o=[],g=[],n,h=l.data.items,e,f,c;for(;d<k;d++){e=b[d];if(l.data.contains(e)){n=(e.phantom===true);f=h.indexOf(e);if(f!==-1){g.push(e);o.push(f)}if(!n&&l.getSyncRemovedRecords()){l.removed.push(e)}e.unjoin(l);l.data.remove(e);m=m||!n}}l.fireEvent("removerecords",l,g,o);if(a&&m){l.sync()}},removeAt:function(b){var a=this.getAt(b);if(a){this.remove(a)}},removeAll:function(a){if(a!==true){this.fireAction("clear",[this],"doRemoveAll")}else{this.doRemoveAll.call(this,true)}},doRemoveAll:function(a){var b=this;b.data.each(function(c){c.unjoin(b)});if(b.getSyncRemovedRecords()){b.removed=b.removed.concat(b.data.items)}b.data.clear();if(a!==true){b.fireEvent("refresh",b,b.data)}if(b.getAutoSync()){this.sync()}},each:function(b,a){this.data.each(b,a)},getCount:function(){return this.data.length||0},getAt:function(a){return this.data.getAt(a)},getRange:function(b,a){return this.data.getRange(b,a)},getById:function(a){return this.data.findBy(function(b){return b.getId()==a})},indexOf:function(a){return this.data.indexOf(a)},indexOfId:function(a){return this.data.indexOfKey(a)},afterEdit:function(c,g,d){var f=this,h=f.data,a=d[c.getIdProperty()]||c.getId(),b=h.keys.indexOf(a),e;if(b===-1&&h.map[a]===undefined){return}if(f.getAutoSync()){f.sync()}if(a!==c.getId()){h.replace(a,c)}else{h.replace(c)}e=h.indexOf(c);if(b===-1&&e!==-1){f.fireEvent("addrecords",f,[c])}else{if(b!==-1&&e===-1){f.fireEvent("removerecords",f,[c],[b])}else{if(e!==-1){f.fireEvent("updaterecord",f,c,e,b)}}}},afterReject:function(a){var b=this.data.indexOf(a);this.fireEvent("updaterecord",this,a,b,b)},afterCommit:function(c,d){var f=this,g=f.data,a=d[c.getIdProperty()]||c.getId(),b=g.keys.indexOf(a),e;if(b===-1&&g.map[a]===undefined){return}if(a!==c.getId()){g.replace(a,c)}else{g.replace(c)}e=g.indexOf(c);if(b===-1&&e!==-1){f.fireEvent("addrecords",f,[c])}else{if(b!==-1&&e===-1){f.fireEvent("removerecords",f,[c],[b])}else{if(e!==-1){f.fireEvent("updaterecord",f,c,e,b)}}}},afterErase:function(a){var c=this,d=c.data,b=d.indexOf(a);if(b!==-1){d.remove(a);c.fireEvent("removerecords",c,[a],[b])}},updateRemoteFilter:function(a){this.data.setAutoFilter(!a)},updateRemoteSort:function(a){this.data.setAutoSort(!a)},sort:function(f,d,c){var e=this.data,b=this.getGrouper(),a=e.getAutoSort();if(f){e.setAutoSort(false);if(typeof c==="string"){if(c=="prepend"){e.insertSorters(b?1:0,f,d)}else{e.addSorters(f,d)}}else{e.setSorters(null);if(b){e.addSorters(b)}e.addSorters(f,d)}this.updateSortTypes();e.setAutoSort(a)}if(!this.getRemoteSort()){if(!f){this.data.sort()}this.fireEvent("sort",this,this.data,this.data.getSorters());if(e.length){this.fireEvent("refresh",this,this.data)}}},filter:function(e,d,f,a){var c=this.data,b=c.length;if(this.getRemoteFilter()){if(e){if(Ext.isString(e)){c.addFilters({property:e,value:d,anyMatch:f,caseSensitive:a})}else{if(Ext.isArray(e)||e.isFilter){c.addFilters(e)}}}}else{c.filter(e,d);this.fireEvent("filter",this,c,c.getFilters());if(c.length!==b){this.fireEvent("refresh",this,c)}}},filterBy:function(b,a){var d=this,e=d.data,c=e.length;e.filter({filterFn:b,scope:a});this.fireEvent("filter",this,e,e.getFilters());if(e.length!==c){this.fireEvent("refresh",this,e)}},queryBy:function(b,a){return this.data.filterBy(b,a||this)},clearFilter:function(a){var b=this.data.length;if(a){this.suspendEvents()}this.data.setFilters(null);if(a){this.resumeEvents()}else{if(b!==this.data.length){this.fireEvent("refresh",this,this.data)}}},isFiltered:function(){return this.data.filtered},getSorters:function(){var a=this.data.getSorters();return(a)?a.items:[]},getFilters:function(){var a=this.data.getFilters();return(a)?a.items:[]},getGroups:function(c){var e=this.data.items,b=e.length,a=this.getGrouper(),d=[],k={},g,h,j,f;if(!a){Ext.Logger.error("Trying to get groups for a store that has no grouper")}for(f=0;f<b;f++){g=e[f];h=a.getGroupString(g);j=k[h];if(j===undefined){j={name:h,children:[]};d.push(j);k[h]=j}j.children.push(g)}return c?k[c]:d},getGroupString:function(a){var b=this.getGrouper();if(b){return b.getGroupString(a)}return null},find:function(g,d,e,f,a,c){var b=Ext.create("Ext.util.Filter",{property:g,value:d,anyMatch:f,caseSensitive:a,exactMatch:c,root:"data"});return this.data.findIndexBy(b.getFilterFn(),null,e)},findRecord:function(){var b=this,a=b.find.apply(b,arguments);return a!==-1?b.getAt(a):null},findExact:function(c,a,b){return this.data.findIndexBy(function(d){return d.get(c)===a},this,b)},findBy:function(b,a,c){return this.data.findIndexBy(b,a,c)},load:function(c,e){var f=this,b,d=f.currentPage,a=f.getPageSize();c=c||{};if(Ext.isFunction(c)){c={callback:c,scope:e||this}}if(f.getRemoteSort()){c.sorters=c.sorters||this.getSorters()}if(f.getRemoteFilter()){c.filters=c.filters||this.getFilters()}if(f.getRemoteGroup()){c.grouper=c.grouper||this.getGrouper()}Ext.applyIf(c,{page:d,start:(d-1)*a,limit:a,addRecords:false,action:"read",model:this.getModel()});b=Ext.create("Ext.data.Operation",c);if(f.fireEvent("beforeload",f,b)!==false){f.loading=true;f.getProxy().read(b,f.onProxyLoad,f)}return f},isLoading:function(){return Boolean(this.loading)},sync:function(){var d=this,b={},e=d.getNewRecords(),c=d.getUpdatedRecords(),a=d.getRemovedRecords(),f=false;if(e.length>0){b.create=e;f=true}if(c.length>0){b.update=c;f=true}if(a.length>0){b.destroy=a;f=true}if(f&&d.fireEvent("beforesync",this,b)!==false){d.getProxy().batch({operations:b,listeners:d.getBatchListeners()})}return{added:e,updated:c,removed:a}},first:function(){return this.data.first()},last:function(){return this.data.last()},sum:function(e){var d=0,c=0,b=this.data.items,a=b.length;for(;c<a;++c){d+=b[c].get(e)}return d},min:function(f){var d=1,b=this.data.items,a=b.length,e,c;if(a>0){c=b[0].get(f)}for(;d<a;++d){e=b[d].get(f);if(e<c){c=e}}return c},max:function(f){var d=1,c=this.data.items,b=c.length,e,a;if(b>0){a=c[0].get(f)}for(;d<b;++d){e=c[d].get(f);if(e>a){a=e}}return a},average:function(e){var c=0,b=this.data.items,a=b.length,d=0;if(b.length>0){for(;c<a;++c){d+=b[c].get(e)}return d/a}return 0},getBatchListeners:function(){return{scope:this,exception:this.onBatchException,complete:this.onBatchComplete}},onBatchComplete:function(b){var e=this,a=b.operations,d=a.length,c;for(c=0;c<d;c++){e.onProxyWrite(a[c])}},onBatchException:function(b,a){},onProxyLoad:function(b){var d=this,a=b.getRecords(),c=b.getResultSet(),e=b.wasSuccessful();if(c){d.setTotalCount(c.getTotal())}if(e){if(b.getAddRecords()!==true){d.data.each(function(f){f.unjoin(d)});d.data.clear();d.fireEvent("clear",this)}d.suspendEvents();d.add(a);d.resumeEvents();d.fireEvent("refresh",this,this.data)}d.loading=false;d.fireEvent("load",this,a,e);Ext.callback(b.getCallback(),b.getScope()||d,[a,b,e])},onProxyWrite:function(b){var c=this,d=b.wasSuccessful(),a=b.getRecords();switch(b.getAction()){case"create":c.onCreateRecords(a,b,d);break;case"update":c.onUpdateRecords(a,b,d);break;case"destroy":c.onDestroyRecords(a,b,d);break}if(d){c.fireEvent("write",c,b)}Ext.callback(b.getCallback(),b.getScope()||c,[a,b,d])},onCreateRecords:function(b,a,c){},onUpdateRecords:function(b,a,c){},onDestroyRecords:function(b,a,c){this.removed=[]},getNewRecords:function(){return this.data.filterBy(function(a){return a.phantom===true&&a.isValid()}).items},getUpdatedRecords:function(){return this.data.filterBy(function(a){return a.dirty===true&&a.phantom!==true&&a.isValid()}).items},getRemovedRecords:function(){return this.removed},loadPage:function(f,c,d){if(typeof c==="function"){c={callback:c,scope:d||this}}var e=this,b=e.getPageSize(),a=e.getClearOnPageLoad();c=Ext.apply({},c);e.currentPage=f;e.load(Ext.applyIf(c,{page:f,start:(f-1)*b,limit:b,addRecords:!a}))},nextPage:function(a){this.loadPage(this.currentPage+1,a)},previousPage:function(a){this.loadPage(this.currentPage-1,a)},onClassExtended:function(b,f){var d=this.prototype,a=d.config,c=f.config||{},e;for(e in a){if(e!="control"&&e in f){c[e]=f[e];delete f[e];console.warn(e+" is deprecated as a property directly on the "+this.$className+" prototype. Please put it inside the config object.")}}f.config=c}},function(){this.override({loadData:function(b,a){Ext.Logger.deprecate("loadData is deprecated, please use either add or setData");if(a){this.add(b)}else{this.setData(b)}},doAddListener:function(c,e,d,b,a){switch(c){case"update":Ext.Logger.warn("The update event on Store has been deprecated. Please use the updaterecord event from now on.");return this;case"add":Ext.Logger.warn("The add event on Store has been deprecated. Please use the addrecords event from now on.");return this;case"remove":Ext.Logger.warn("The remove event on Store has been deprecated. Please use the removerecords event from now on.");return this;case"datachanged":Ext.Logger.warn("The datachanged event on Store has been deprecated. Please use the refresh event from now on.");return this;break}return this.callParent(arguments)}})});Ext.define("Example.model.Kitten",{extend:"Ext.data.Model",config:{fields:["name","image",{name:"cuteness",type:"int"}]}});Ext.define("Example.store.Kittens",{extend:"Ext.data.Store",requires:["Example.model.Kitten"],config:{model:"Example.model.Kitten",data:[{name:"Yawning kitten",image:"data/images/kitten1.jpeg",cuteness:70},{name:"Sitting kitten",image:"data/images/kitten2.jpeg",cuteness:90},{name:"Evil kitten",image:"data/images/kitten3.jpeg",cuteness:40},{name:"Ginger kitten",image:"data/images/kitten4.jpeg",cuteness:80},{name:"Kitten friends",image:"data/images/kitten5.jpeg",cuteness:20},{name:"Milk kitten",image:"data/images/kitten6.jpeg",cuteness:50}]}});Ext.define("Ext.data.ArrayStore",{extend:"Ext.data.Store",alias:"store.array",uses:["Ext.data.reader.Array"],config:{proxy:{type:"memory",reader:"array"}},loadData:function(b,a){this.callParent([b,a])}},function(){Ext.data.SimpleStore=Ext.data.ArrayStore});Ext.define("Ext.data.Batch",{mixins:{observable:"Ext.mixin.Observable"},config:{autoStart:false,pauseOnException:true,proxy:null},current:-1,total:0,isRunning:false,isComplete:false,hasException:false,constructor:function(a){var b=this;b.initConfig(a);b.operations=[]},add:function(a){this.total++;a.setBatch(this);this.operations.push(a)},start:function(){this.hasException=false;this.isRunning=true;this.runNextOperation()},runNextOperation:function(){this.runOperation(this.current+1)},pause:function(){this.isRunning=false},runOperation:function(d){var e=this,c=e.operations,b=c[d],a;if(b===undefined){e.isRunning=false;e.isComplete=true;e.fireEvent("complete",e,c[c.length-1])}else{e.current=d;a=function(f){var g=f.hasException();if(g){e.hasException=true;e.fireEvent("exception",e,f)}else{e.fireEvent("operationcomplete",e,f)}if(g&&e.getPauseOnException()){e.pause()}else{f.setCompleted();e.runNextOperation()}};b.setStarted();e.getProxy()[b.getAction()](b,a,e)}}});Ext.define("Ext.data.reader.Array",{extend:"Ext.data.reader.Json",alternateClassName:"Ext.data.ArrayReader",alias:"reader.array",config:{totalProperty:undefined,successProperty:undefined},getResponseData:function(a){return a},buildFieldExtractors:function(){var a=this.getFields(),b=0,c=a.length,e=[],d;for(;b<c;b++){d=a[b].getMapping();e.push(function(f){return function(g){return g[f]}}(d!==null?d:b))}this.fieldCount=c;this.extractorFunctions=e}});Ext.Loader.setConfig({enabled:true});Ext.Loader.setPath("Ext","lib/touch2/src");Ext.application({name:"Example",controllers:["Application"],views:["Main","KittensList"],stores:["Kittens"],launch:function(){Ext.Viewport.add({xclass:"Example.view.Main"})}});