window.undefined=window.undefined;Ext={version:"3.2.1",versionDetail:{major:3,minor:2,patch:1}};Ext.apply=function(d,e,b){if(b)Ext.apply(d,b);if(d&&e&&typeof e=="object")for(var a in e)d[a]=e[a];return d};(function(){var g=0,s=Object.prototype.toString,t=navigator.userAgent.toLowerCase(),y=function(e){return e.test(t)},i=document,l=i.compatMode=="CSS1Compat",A=y(/opera/),h=y(/\bchrome\b/),u=y(/webkit/),x=!h&&y(/safari/),f=x&&y(/applewebkit\/4/),b=x&&y(/version\/3/),B=x&&y(/version\/4/),r=!A&&y(/msie/),p=r&&y(/msie 7/),o=r&&y(/msie 8/),q=r&&!p&&!o,n=!u&&y(/gecko/),d=n&&y(/rv:1\.8/),a=n&&y(/rv:1\.9/),v=r&&!l,z=y(/windows|win32/),k=y(/macintosh|mac os x/),j=y(/adobeair/),m=y(/linux/),c=/^https/i.test(window.location.protocol);if(q)try{i.execCommand("BackgroundImageCache",false,true)}catch(w){}Ext.apply(Ext,{SSL_SECURE_URL:c&&r?'javascript:""':"about:blank",isStrict:l,isSecure:c,isReady:false,enableGarbageCollector:true,enableListenerCollection:false,enableNestedListenerRemoval:false,USE_NATIVE_JSON:false,applyIf:function(C,D){if(C)for(var e in D)if(!Ext.isDefined(C[e]))C[e]=D[e];return C},id:function(e,C){e=Ext.getDom(e,true)||{};if(!e.id)e.id=(C||"ext-gen")+ ++g;return e.id},extend:function(){var C=function(E){for(var D in E)this[D]=E[D]};var e=Object.prototype.constructor;return function(J,G,I){if(typeof G=="object"){I=G;G=J;J=I.constructor!=e?I.constructor:function(){G.apply(this,arguments)}}var E=function(){},H,D=G.prototype;E.prototype=D;H=J.prototype=new E;H.constructor=J;J.superclass=D;if(D.constructor==e)D.constructor=G;J.override=function(F){Ext.override(J,F)};H.superclass=H.supr=function(){return D};H.override=C;Ext.override(J,I);J.extend=function(F){return Ext.extend(J,F)};return J}}(),override:function(e,D){if(D){var C=e.prototype;Ext.apply(C,D);if(Ext.isIE&&D.hasOwnProperty("toString"))C.toString=D.toString}},namespace:function(){var C,e;Ext.each(arguments,function(D){e=D.split(".");C=window[e[0]]=window[e[0]]||{};Ext.each(e.slice(1),function(E){C=C[E]=C[E]||{}})});return C},urlEncode:function(G,F){var D,C=[],E=encodeURIComponent;Ext.iterate(G,function(e,H){D=Ext.isEmpty(H);Ext.each(D?e:H,function(I){C.push("&",E(e),"=",!Ext.isEmpty(I)&&(I!=e||!D)?Ext.isDate(I)?Ext.encode(I).replace(/"/g,""):E(I):"")})});if(!F){C.shift();F=""}return F+C.join("")},urlDecode:function(D,C){if(Ext.isEmpty(D))return{};var G={},F=D.split("&"),H=decodeURIComponent,e,E;Ext.each(F,function(I){I=I.split("=");e=H(I[0]);E=H(I[1]);G[e]=C||!G[e]?E:[].concat(G[e]).concat(E)});return G},urlAppend:function(e,C){if(!Ext.isEmpty(C))return e+(e.indexOf("?")===-1?"?":"&")+C;return e},toArray:function(){return r?function(D,G,E,F){F=[];for(var C=0,e=D.length;C<e;C++)F.push(D[C]);return F.slice(G||0,E||F.length)}:function(e,D,C){return Array.prototype.slice.call(e,D||0,C||e.length)}}(),isIterable:function(e){if(Ext.isArray(e)||e.callee)return true;if(/NodeList|HTMLCollection/.test(s.call(e)))return true;return(typeof e.nextNode!="undefined"||e.item)&&Ext.isNumber(e.length)},each:function(F,E,D){if(Ext.isEmpty(F,true))return;if(!Ext.isIterable(F)||Ext.isPrimitive(F))F=[F];for(var C=0,e=F.length;C<e;C++)if(E.call(D||F[C],F[C],C,F)===false)return C},iterate:function(D,C,e){if(Ext.isEmpty(D))return;if(Ext.isIterable(D)){Ext.each(D,C,e);return}else if(typeof D=="object")for(var E in D)if(D.hasOwnProperty(E))if(C.call(e||D,E,D[E],D)===false)return},getDom:function(D,C){if(!D||!i)return null;if(D.dom)return D.dom;else if(typeof D=="string"){var E=i.getElementById(D);if(E&&r&&C)if(D==E.getAttribute("id"))return E;else return null;return E}else return D},getBody:function(){return Ext.get(i.body||i.documentElement)},removeNode:r&&!o?function(){var e;return function(C){if(C&&C.tagName!="BODY"){Ext.enableNestedListenerRemoval?Ext.EventManager.purgeElement(C,true):Ext.EventManager.removeAll(C);e=e||i.createElement("div");e.appendChild(C);e.innerHTML="";delete Ext.elCache[C.id]}}}():function(e){if(e&&e.parentNode&&e.tagName!="BODY"){Ext.enableNestedListenerRemoval?Ext.EventManager.purgeElement(e,true):Ext.EventManager.removeAll(e);e.parentNode.removeChild(e);delete Ext.elCache[e.id]}},isEmpty:function(C,e){return C===null||C===undefined||Ext.isArray(C)&&!C.length||(!e?C==="":false)},isArray:function(e){return s.apply(e)==="[object Array]"},isDate:function(e){return s.apply(e)==="[object Date]"},isObject:function(e){return!!e&&Object.prototype.toString.call(e)==="[object Object]"},isPrimitive:function(e){return Ext.isString(e)||Ext.isNumber(e)||Ext.isBoolean(e)},isFunction:function(e){return s.apply(e)==="[object Function]"},isNumber:function(e){return typeof e==="number"&&isFinite(e)},isString:function(e){return typeof e==="string"},isBoolean:function(e){return typeof e==="boolean"},isElement:function(e){return e?!!e.tagName:false},isDefined:function(e){return typeof e!=="undefined"},isOpera:A,isWebKit:u,isChrome:h,isSafari:x,isSafari3:b,isSafari4:B,isSafari2:f,isIE:r,isIE6:q,isIE7:p,isIE8:o,isGecko:n,isGecko2:d,isGecko3:a,isBorderBox:v,isLinux:m,isWindows:z,isMac:k,isAir:j});Ext.ns=Ext.namespace})();Ext.ns("Ext.util","Ext.lib","Ext.data");Ext.elCache={};Ext.apply(Function.prototype,{createInterceptor:function(b,a){var c=this;return!Ext.isFunction(b)?this:function(){var e=this,d=arguments;b.target=e;b.method=c;return b.apply(a||e||window,d)!==false?c.apply(e||window,d):null}},createCallback:function(){var a=arguments,b=this;return function(){return b.apply(window,a)}},createDelegate:function(c,b,a){var d=this;return function(){var f=b||arguments;if(a===true){f=Array.prototype.slice.call(arguments,0);f=f.concat(b)}else if(Ext.isNumber(a)){f=Array.prototype.slice.call(arguments,0);var e=[a,0].concat(b);Array.prototype.splice.apply(f,e)}return d.apply(c||window,f)}},defer:function(c,e,b,a){var d=this.createDelegate(e,b,a);if(c>0)return setTimeout(d,c);d();return 0}});Ext.applyIf(String,{format:function(b){var a=Ext.toArray(arguments,1);return b.replace(/\{(\d+)\}/g,function(c,d){return a[d]})}});Ext.applyIf(Array.prototype,{indexOf:function(b,c){var a=this.length;c=c||0;c+=c<0?a:0;for(;c<a;++c)if(this[c]===b)return c;return-1},remove:function(b){var a=this.indexOf(b);if(a!=-1)this.splice(a,1);return this}});Ext.ns("Ext.grid","Ext.list","Ext.dd","Ext.tree","Ext.form","Ext.menu","Ext.state","Ext.layout","Ext.app","Ext.ux","Ext.chart","Ext.direct");Ext.apply(Ext,function(){var c=Ext,a=0,b=null;return{emptyFn:function(){},BLANK_IMAGE_URL:Ext.isIE6||Ext.isIE7||Ext.isAir?"http://www.extjs.com/s.gif":"data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==",extendX:function(d,e){return Ext.extend(d,e(d.prototype))},getDoc:function(){return Ext.get(document)},num:function(e,d){e=Number(Ext.isEmpty(e)||Ext.isArray(e)||typeof e=="boolean"||typeof e=="string"&&e.trim().length==0?NaN:e);return isNaN(e)?d:e},value:function(f,d,e){return Ext.isEmpty(f,e)?d:f},escapeRe:function(d){return d.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1")},sequence:function(g,d,f,e){g[d]=g[d].createSequence(f,e)},addBehaviors:function(h){if(!Ext.isReady)Ext.onReady(function(){Ext.addBehaviors(h)});else{var e={},g,d,f;for(d in h)if((g=d.split("@"))[1]){f=g[0];if(!e[f])e[f]=Ext.select(f);e[f].on(g[1],h[d])}e=null}},getScrollBarWidth:function(f){if(!Ext.isReady)return 0;if(f===true||b===null){var h=Ext.getBody().createChild('<div class="x-hide-offsets" style="width:100px;height:50px;overflow:hidden;"><div style="height:200px;"></div></div>'),g=h.child("div",true);var e=g.offsetWidth;h.setStyle("overflow",Ext.isWebKit||Ext.isGecko?"auto":"scroll");var d=g.offsetWidth;h.remove();b=e-d+2}return b},combine:function(){var f=arguments,e=f.length,h=[];for(var g=0;g<e;g++){var d=f[g];if(Ext.isArray(d))h=h.concat(d);else if(d.length!==undefined&&!d.substr)h=h.concat(Array.prototype.slice.call(d,0));else h.push(d)}return h},copyTo:function(d,e,f){if(typeof f=="string")f=f.split(/[,;\s]/);Ext.each(f,function(g){if(e.hasOwnProperty(g))d[g]=e[g]},this);return d},destroy:function(){Ext.each(arguments,function(d){if(d)if(Ext.isArray(d))this.destroy.apply(this,d);else if(typeof d.destroy=="function")d.destroy();else if(d.dom)d.remove()},this)},destroyMembers:function(k,h,f,g){for(var j=1,e=arguments,d=e.length;j<d;j++){Ext.destroy(k[e[j]]);delete k[e[j]]}},clean:function(d){var e=[];Ext.each(d,function(f){if(!!f)e.push(f)});return e},unique:function(d){var e=[],f={};Ext.each(d,function(g){if(!f[g])e.push(g);f[g]=true});return e},flatten:function(d){var f=[];function e(g){Ext.each(g,function(h){if(Ext.isArray(h))e(h);else f.push(h)});return f}return e(d)},min:function(d,e){var f=d[0];e=e||function(h,g){return h<g?-1:1};Ext.each(d,function(g){f=e(f,g)==-1?f:g});return f},max:function(d,e){var f=d[0];e=e||function(h,g){return h>g?1:-1};Ext.each(d,function(g){f=e(f,g)==1?f:g});return f},mean:function(d){return d.length>0?Ext.sum(d)/d.length:undefined},sum:function(d){var e=0;Ext.each(d,function(f){e+=f});return e},partition:function(d,e){var f=[[],[]];Ext.each(d,function(h,j,g){f[e&&e(h,j,g)||!e&&h?0:1].push(h)});return f},invoke:function(d,e){var g=[],f=Array.prototype.slice.call(arguments,2);Ext.each(d,function(h,j){if(h&&typeof h[e]=="function")g.push(h[e].apply(h,f));else g.push(undefined)});return g},pluck:function(d,f){var e=[];Ext.each(d,function(g){e.push(g[f])});return e},zip:function(){var m=Ext.partition(arguments,function(i){return typeof i!="function"}),h=m[0],l=m[1][0],d=Ext.max(Ext.pluck(h,"length")),g=[];for(var k=0;k<d;k++){g[k]=[];if(l)g[k]=l.apply(l,Ext.pluck(h,k));else for(var f=0,e=h.length;f<e;f++)g[k].push(h[f][k])}return g},getCmp:function(d){return Ext.ComponentMgr.get(d)},useShims:c.isIE6||c.isMac&&c.isGecko2,type:function(e){if(e===undefined||e===null)return false;if(e.htmlElement)return"element";var d=typeof e;if(d=="object"&&e.nodeName)switch(e.nodeType){case 1:return"element";case 3:return/\S/.test(e.nodeValue)?"textnode":"whitespace"}if(d=="object"||d=="function"){switch(e.constructor){case Array:return"array";case RegExp:return"regexp";case Date:return"date"}if(typeof e.length=="number"&&typeof e.item=="function")return"nodelist"}return d},intercept:function(g,d,f,e){g[d]=g[d].createInterceptor(f,e)},callback:function(d,g,f,e){if(typeof d=="function")if(e)d.defer(e,g,f||[]);else d.apply(g,f||[])}}}());Ext.apply(Function.prototype,{createSequence:function(b,a){var c=this;return typeof b!="function"?this:function(){var d=c.apply(this||window,arguments);b.apply(a||this||window,arguments);return d}}});Ext.applyIf(String,{escape:function(a){return a.replace(/('|\\)/g,"\\$1")},leftPad:function(d,b,c){var a=String(d);if(!c)c=" ";while(a.length<b)a=c+a;return a}});String.prototype.toggle=function(b,a){return this==b?a:b};String.prototype.trim=function(){var a=/^\s+|\s+$/g;return function(){return this.replace(a,"")}}();Date.prototype.getElapsed=function(a){return Math.abs((a||new Date).getTime()-this.getTime())};Ext.applyIf(Number.prototype,{constrain:function(b,a){return Math.min(Math.max(this,b),a)}});Ext.util.TaskRunner=function(e){e=e||10;var f=[],a=[],b=0,g=false,d=function(){g=false;clearInterval(b);b=0},h=function(){if(!g){g=true;b=setInterval(i,e)}},c=function(j){a.push(j);if(j.onStop)j.onStop.apply(j.scope||j)},i=function(){var l=a.length,n=(new Date).getTime();if(l>0){for(var p=0;p<l;p++)f.remove(a[p]);a=[];if(f.length<1){d();return}}for(var p=0,o,k,m,j=f.length;p<j;++p){o=f[p];k=n-o.taskRunTime;if(o.interval<=k){m=o.run.apply(o.scope||o,o.args||[++o.taskRunCount]);o.taskRunTime=n;if(m===false||o.taskRunCount===o.repeat){c(o);return}}if(o.duration&&o.duration<=n-o.taskStartTime)c(o)}};this.start=function(j){f.push(j);j.taskStartTime=(new Date).getTime();j.taskRunTime=0;j.taskRunCount=0;h();return j};this.stop=function(j){c(j);return j};this.stopAll=function(){d();for(var k=0,j=f.length;k<j;k++)if(f[k].onStop)f[k].onStop();f=[];a=[]}};Ext.TaskMgr=new Ext.util.TaskRunner;(function(){var b;function c(d){if(!b)b=new Ext.Element.Flyweight;b.dom=d;return b}(function(){var g=document,e=g.compatMode=="CSS1Compat",f=Math.max,d=Math.round,h=parseInt;Ext.lib.Dom={isAncestor:function(j,k){var i=false;j=Ext.getDom(j);k=Ext.getDom(k);if(j&&k)if(j.contains)return j.contains(k);else if(j.compareDocumentPosition)return!!(j.compareDocumentPosition(k)&16);else while(k=k.parentNode)i=k==j||i;return i},getViewWidth:function(i){return i?this.getDocumentWidth():this.getViewportWidth()},getViewHeight:function(i){return i?this.getDocumentHeight():this.getViewportHeight()},getDocumentHeight:function(){return f(!e?g.body.scrollHeight:g.documentElement.scrollHeight,this.getViewportHeight())},getDocumentWidth:function(){return f(!e?g.body.scrollWidth:g.documentElement.scrollWidth,this.getViewportWidth())},getViewportHeight:function(){return Ext.isIE?Ext.isStrict?g.documentElement.clientHeight:g.body.clientHeight:self.innerHeight},getViewportWidth:function(){return!Ext.isStrict&&!Ext.isOpera?g.body.clientWidth:Ext.isIE?g.documentElement.clientWidth:self.innerWidth},getY:function(i){return this.getXY(i)[1]},getX:function(i){return this.getXY(i)[0]},getXY:function(k){var j,q,s,v,l,m,u=0,r=0,t,i,n=g.body||g.documentElement,o=[0,0];k=Ext.getDom(k);if(k!=n)if(k.getBoundingClientRect){s=k.getBoundingClientRect();t=c(document).getScroll();o=[d(s.left+t.left),d(s.top+t.top)]}else{j=k;i=c(k).isStyle("position","absolute");while(j){q=c(j);u+=j.offsetLeft;r+=j.offsetTop;i=i||q.isStyle("position","absolute");if(Ext.isGecko){r+=v=h(q.getStyle("borderTopWidth"),10)||0;u+=l=h(q.getStyle("borderLeftWidth"),10)||0;if(j!=k&&!q.isStyle("overflow","visible")){u+=l;r+=v}}j=j.offsetParent}if(Ext.isSafari&&i){u-=n.offsetLeft;r-=n.offsetTop}if(Ext.isGecko&&!i){m=c(n);u+=h(m.getStyle("borderLeftWidth"),10)||0;r+=h(m.getStyle("borderTopWidth"),10)||0}j=k.parentNode;while(j&&j!=n){if(!Ext.isOpera||j.tagName!="TR"&&!c(j).isStyle("display","inline")){u-=j.scrollLeft;r-=j.scrollTop}j=j.parentNode}o=[u,r]}return o},setXY:function(j,k){(j=Ext.fly(j,"_setXY")).position();var l=j.translatePoints(k),i=j.dom.style,m;for(m in l)if(!isNaN(l[m]))i[m]=l[m]+"px"},setX:function(j,i){this.setXY(j,[i,false])},setY:function(i,j){this.setXY(i,[false,j])}}})();Ext.lib.Dom.getRegion=function(d){return Ext.lib.Region.getRegion(d)};Ext.lib.Event=function(){var w=false,g={},A=0,p=[],d,C=false,k=window,G=document,l=200,s=20,B=0,r=0,i=1,m=2,t=2,x=3,u="scrollLeft",q="scrollTop",f="unload",z="mouseover",F="mouseout",e=function(){var H;if(k.addEventListener)H=function(L,J,K,I){if(J=="mouseenter"){K=K.createInterceptor(o);L.addEventListener(z,K,I)}else if(J=="mouseleave"){K=K.createInterceptor(o);L.addEventListener(F,K,I)}else L.addEventListener(J,K,I);return K};else if(k.attachEvent)H=function(L,J,K,I){L.attachEvent("on"+J,K);return K};else H=function(){};return H}(),h=function(){var H;if(k.removeEventListener)H=function(L,J,K,I){if(J=="mouseenter")J=z;else if(J=="mouseleave")J=F;L.removeEventListener(J,K,I)};else if(k.detachEvent)H=function(K,I,J){K.detachEvent("on"+I,J)};else H=function(){};return H}();function o(H){return!v(H.currentTarget,y.getRelatedTarget(H))}function v(H,I){if(H&&H.firstChild)while(I){if(I===H)return true;I=I.parentNode;if(I&&I.nodeType!=1)I=null}return false}function D(){var I=false,N=[],L,K,H,J,M=!w||A>0;if(!C){C=true;for(K=0;K<p.length;++K){H=p[K];if(H&&(L=G.getElementById(H.id)))if(!H.checkReady||w||L.nextSibling||G&&G.body){J=H.override;L=J?J===true?H.obj:J:L;H.fn.call(L,H.obj);p.remove(H);--K}else N.push(H)}A=N.length===0?0:A-1;if(M)n();else{clearInterval(d);d=null}I=!(C=false)}return I}function n(){if(!d){var H=function(){D()};d=setInterval(H,s)}}function E(){var H=G.documentElement,I=G.body;if(H&&(H[q]||H[u]))return[H[u],H[q]];else if(I)return[I[u],I[q]];else return[0,0]}function j(H,I){H=H.browserEvent||H;var J=H["page"+I];if(!J&&J!==0){J=H["client"+I]||0;if(Ext.isIE)J+=E()[I=="X"?0:1]}return J}var y={extAdapter:true,onAvailable:function(J,H,K,I){p.push({id:J,fn:H,obj:K,override:I,checkReady:false});A=l;n()},addListener:function(J,H,I){J=Ext.getDom(J);if(J&&I){if(H==f){if(g[J.id]===undefined)g[J.id]=[];g[J.id].push([H,I]);return I}return e(J,H,I,false)}return false},removeListener:function(N,J,M){N=Ext.getDom(N);var L,I,H,K;if(N&&M){if(J==f){if((K=g[N.id])!==undefined)for(L=0,I=K.length;L<I;L++)if((H=K[L])&&H[r]==J&&H[i]==M)g[N.id].splice(L,1);return}h(N,J,M,false)}},getTarget:function(H){H=H.browserEvent||H;return this.resolveTextNode(H.target||H.srcElement)},resolveTextNode:Ext.isGecko?function(I){if(!I)return;var H=HTMLElement.prototype.toString.call(I);if(H=="[xpconnect wrapped native prototype]"||H=="[object XULElement]")return;return I.nodeType==3?I.parentNode:I}:function(H){return H&&H.nodeType==3?H.parentNode:H},getRelatedTarget:function(H){H=H.browserEvent||H;return this.resolveTextNode(H.relatedTarget||(H.type==F?H.toElement:H.type==z?H.fromElement:null))},getPageX:function(H){return j(H,"X")},getPageY:function(H){return j(H,"Y")},getXY:function(H){return[this.getPageX(H),this.getPageY(H)]},stopEvent:function(H){this.stopPropagation(H);this.preventDefault(H)},stopPropagation:function(H){H=H.browserEvent||H;if(H.stopPropagation)H.stopPropagation();else H.cancelBubble=true},preventDefault:function(H){H=H.browserEvent||H;if(H.preventDefault)H.preventDefault();else H.returnValue=false},getEvent:function(H){H=H||k.event;if(!H){var I=this.getEvent.caller;while(I){H=I.arguments[0];if(H&&Event==H.constructor)break;I=I.caller}}return H},getCharCode:function(H){H=H.browserEvent||H;return H.charCode||H.keyCode||0},getListeners:function(I,H){Ext.EventManager.getListeners(I,H)},purgeElement:function(I,J,H){Ext.EventManager.purgeElement(I,J,H)},_load:function(I){w=true;var H=Ext.lib.Event;if(Ext.isIE&&I!==true)h(k,"load",arguments.callee)},_unload:function(O){var I=Ext.lib.Event,L,K,J,R,P,H,N,M,S;for(H in g){P=g[H];for(L=0,N=P.length;L<N;L++){R=P[L];if(R)try{S=R[x]?R[x]===true?R[t]:R[x]:k;R[i].call(S,I.getEvent(O),R[t])}catch(Q){}}}Ext.EventManager._unload();h(k,f,I._unload)}};y.on=y.addListener;y.un=y.removeListener;if(G&&G.body)y._load(true);else e(k,"load",y._load);e(k,f,y._unload);D();return y}();Ext.lib.Ajax=function(){var g=["MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],d="Content-Type";function h(s){var r=s.conn,t;function q(u,v){for(t in v)if(v.hasOwnProperty(t))u.setRequestHeader(t,v[t])}if(k.defaultHeaders)q(r,k.defaultHeaders);if(k.headers){q(r,k.headers);delete k.headers}}function e(t,s,r,q){return{tId:t,status:r?-1:0,statusText:r?"transaction aborted":"communication failure",isAbort:r,isTimeout:q,argument:s}}function j(q,r){(k.headers=k.headers||{})[q]=r}function o(q,w){var A={},v,u=q.conn,y,z,r=u.status==1223;try{v=q.conn.getAllResponseHeaders();Ext.each(v.replace(/\r\n/g,"\n").split("\n"),function(s){y=s.indexOf(":");if(y>=0){z=s.substr(0,y).toLowerCase();if(s.charAt(y+1)==" ")++y;A[z]=s.substr(y+1)}})}catch(x){}return{tId:q.tId,status:r?204:u.status,statusText:r?"No Content":u.statusText,getResponseHeader:function(s){return A[s.toLowerCase()]},getAllResponseHeaders:function(){return v},responseText:u.responseText,responseXML:u.responseXML,argument:w}}function n(q){if(q.tId)k.conn[q.tId]=null;q.conn=null;q=null}function f(v,w,r,q){if(!w){n(v);return}var t,s;try{if(v.conn.status!==undefined&&v.conn.status!=0)t=v.conn.status;else t=13030}catch(u){t=13030}if(t>=200&&t<300||Ext.isIE&&t==1223){s=o(v,w.argument);if(w.success)if(!w.scope)w.success(s);else w.success.apply(w.scope,[s])}else switch(t){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:s=e(v.tId,w.argument,r?r:false,q);if(w.failure)if(!w.scope)w.failure(s);else w.failure.apply(w.scope,[s]);break;default:s=o(v,w.argument);if(w.failure)if(!w.scope)w.failure(s);else w.failure.apply(w.scope,[s])}n(v);s=null}function m(s,v){v=v||{};var q=s.conn,u=s.tId,r=k.poll,t=v.timeout||null;if(t){k.conn[u]=q;k.timeout[u]=setTimeout(function(){k.abort(s,v,true)},t)}r[u]=setInterval(function(){if(q&&q.readyState==4){clearInterval(r[u]);r[u]=null;if(t){clearTimeout(k.timeout[u]);k.timeout[u]=null}f(s,v)}},k.pollInterval)}function i(u,r,t,q){var s=l()||null;if(s){s.conn.open(u,r,true);if(k.useDefaultXhrHeader)j("X-Requested-With",k.defaultXhrHeader);if(q&&k.useDefaultHeader&&(!k.headers||!k.headers[d]))j(d,k.defaultPostHeader);if(k.defaultHeaders||k.headers)h(s);m(s,t);s.conn.send(q||null)}return s}function l(){var r;try{if(r=p(k.transactionId))k.transactionId++}catch(q){}finally{return r}}function p(t){var q;try{q=new XMLHttpRequest}catch(s){for(var r=0;r<g.length;++r)try{q=new ActiveXObject(g[r]);break}catch(s){}}finally{return{conn:q,tId:t}}}var k={request:function(q,s,t,u,y){if(y){var v=this,r=y.xmlData,w=y.jsonData,x;Ext.applyIf(v,y);if(r||w){x=v.headers;if(!x||!x[d])j(d,r?"text/xml":"application/json");u=r||(!Ext.isPrimitive(w)?Ext.encode(w):w)}}return i(q||y.method||"POST",s,t,u)},serializeForm:function(r){var s=r.elements||(document.forms[r]||Ext.getDom(r)).elements,y=false,x=encodeURIComponent,v,z,q,t,u="",w;Ext.each(s,function(A){q=A.name;w=A.type;if(!A.disabled&&q)if(/select-(one|multiple)/i.test(w))Ext.each(A.options,function(B){if(B.selected)u+=String.format("{0}={1}&",x(q),x(B.hasAttribute?B.hasAttribute("value"):B.getAttribute("value")!==null?B.value:B.text))});else if(!/file|undefined|reset|button/i.test(w))if(!(/radio|checkbox/i.test(w)&&!A.checked)&&!(w=="submit"&&y)){u+=x(q)+"="+x(A.value)+"&";y=/submit/i.test(w)}});return u.substr(0,u.length-1)},useDefaultHeader:true,defaultPostHeader:"application/x-www-form-urlencoded; charset=UTF-8",useDefaultXhrHeader:true,defaultXhrHeader:"XMLHttpRequest",poll:{},timeout:{},conn:{},pollInterval:50,transactionId:0,abort:function(t,v,q){var s=this,u=t.tId,r=false;if(s.isCallInProgress(t)){t.conn.abort();clearInterval(s.poll[u]);s.poll[u]=null;clearTimeout(k.timeout[u]);s.timeout[u]=null;f(t,v,r=true,q)}return r},isCallInProgress:function(q){return q.conn&&!{0:true,4:true}[q.conn.readyState]}};return k}();Ext.lib.Region=function(f,h,d,e){var g=this;g.top=f;g[1]=f;g.right=h;g.bottom=d;g.left=e;g[0]=e};Ext.lib.Region.prototype={contains:function(e){var d=this;return e.left>=d.left&&e.right<=d.right&&e.top>=d.top&&e.bottom<=d.bottom},getArea:function(){var d=this;return(d.bottom-d.top)*(d.right-d.left)},intersect:function(i){var h=this,f=Math.max(h.top,i.top),g=Math.min(h.right,i.right),d=Math.min(h.bottom,i.bottom),e=Math.max(h.left,i.left);if(d>=f&&g>=e)return new Ext.lib.Region(f,g,d,e)},union:function(i){var h=this,f=Math.min(h.top,i.top),g=Math.max(h.right,i.right),d=Math.max(h.bottom,i.bottom),e=Math.min(h.left,i.left);return new Ext.lib.Region(f,g,d,e)},constrainTo:function(e){var d=this;d.top=d.top.constrain(e.top,e.bottom);d.bottom=d.bottom.constrain(e.top,e.bottom);d.left=d.left.constrain(e.left,e.right);d.right=d.right.constrain(e.left,e.right);return d},adjust:function(f,e,d,h){var g=this;g.top+=f;g.left+=e;g.right+=h;g.bottom+=d;return g}};Ext.lib.Region.getRegion=function(g){var i=Ext.lib.Dom.getXY(g),f=i[1],h=i[0]+g.offsetWidth,d=i[1]+g.offsetHeight,e=i[0];return new Ext.lib.Region(f,h,d,e)};Ext.lib.Point=function(d,f){if(Ext.isArray(d)){f=d[1];d=d[0]}var e=this;e.x=e.right=e.left=e[0]=d;e.y=e.top=e.bottom=e[1]=f};Ext.lib.Point.prototype=new Ext.lib.Region;(function(){var g=Ext.lib,i=/width|height|opacity|padding/i,f=/^((width|height)|(top|left))$/,d=/width|height|top$|bottom$|left$|right$/i,h=/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i,j=function(k){return typeof k!=="undefined"},e=function(){return new Date};g.Anim={motion:function(n,l,o,p,k,m){return this.run(n,l,o,p,k,m,Ext.lib.Motion)},run:function(o,l,q,r,k,n,m){m=m||Ext.lib.AnimBase;if(typeof r=="string")r=Ext.lib.Easing[r];var p=new m(o,l,q,r);p.animateX(function(){if(Ext.isFunction(k))k.call(n)});return p}};g.AnimBase=function(l,k,m,n){if(l)this.init(l,k,m,n)};g.AnimBase.prototype={doMethod:function(k,n,l){var m=this;return m.method(m.curFrame,n,l-n,m.totalFrames)},setAttr:function(k,m,l){if(i.test(k)&&m<0)m=0;Ext.fly(this.el,"_anim").setStyle(k,m+l)},getAttr:function(k){var m=Ext.fly(this.el),n=m.getStyle(k),l=f.exec(k)||[];if(n!=="auto"&&!h.test(n))return parseFloat(n);return!!l[2]||m.getStyle("position")=="absolute"&&!!l[3]?m.dom["offset"+l[0].charAt(0).toUpperCase()+l[0].substr(1)]:0},getDefaultUnit:function(k){return d.test(k)?"px":""},animateX:function(n,k){var l=this,m=function(){l.onComplete.removeListener(m);if(Ext.isFunction(n))n.call(k||l,l)};l.onComplete.addListener(m,l);l.animate()},setRunAttr:function(p){var r=this,s=this.attributes[p],t=s.to,q=s.by,u=s.from,v=s.unit,l=this.runAttrs[p]={},m;if(!j(t)&&!j(q))return false;var k=j(u)?u:r.getAttr(p);if(j(t))m=t;else if(j(q))if(Ext.isArray(k)){m=[];for(var n=0,o=k.length;n<o;n++)m[n]=k[n]+q[n]}else m=k+q;Ext.apply(l,{start:k,end:m,unit:j(v)?v:r.getDefaultUnit(p)})},init:function(l,p,o,k){var r=this,n=0,s=g.AnimMgr;Ext.apply(r,{isAnimated:false,startTime:null,el:Ext.getDom(l),attributes:p||{},duration:o||1,method:k||g.Easing.easeNone,useSec:true,curFrame:0,totalFrames:s.fps,runAttrs:{},animate:function(){var u=this,v=u.duration;if(u.isAnimated)return false;u.curFrame=0;u.totalFrames=u.useSec?Math.ceil(s.fps*v):v;s.registerElement(u)},stop:function(u){var v=this;if(u){v.curFrame=v.totalFrames;v._onTween.fire()}s.stop(v)}});var t=function(){var v=this,u;v.onStart.fire();v.runAttrs={};for(u in this.attributes)this.setRunAttr(u);v.isAnimated=true;v.startTime=e();n=0};var q=function(){var v=this;v.onTween.fire({duration:e()-v.startTime,curFrame:v.curFrame});var w=v.runAttrs;for(var u in w)this.setAttr(u,v.doMethod(u,w[u].start,w[u].end),w[u].unit);++n};var m=function(){var u=this,w=(e()-u.startTime)/1e3,v={duration:w,frames:n,fps:n/w};u.isAnimated=false;n=0;u.onComplete.fire(v)};r.onStart=new Ext.util.Event(r);r.onTween=new Ext.util.Event(r);r.onComplete=new Ext.util.Event(r);(r._onStart=new Ext.util.Event(r)).addListener(t);(r._onTween=new Ext.util.Event(r)).addListener(q);(r._onComplete=new Ext.util.Event(r)).addListener(m)}};Ext.lib.AnimMgr=new function(){var o=this,m=null,l=[],k=0;Ext.apply(o,{fps:1e3,delay:1,registerElement:function(q){l.push(q);++k;q._onStart.fire();o.start()},unRegister:function(r,q){r._onComplete.fire();q=q||p(r);if(q!=-1)l.splice(q,1);if(--k<=0)o.stop()},start:function(){if(m===null)m=setInterval(o.run,o.delay)},stop:function(s){if(!s){clearInterval(m);for(var r=0,q=l.length;r<q;++r)if(l[0].isAnimated)o.unRegister(l[0],0);l=[];m=null;k=0}else o.unRegister(s)},run:function(){var t,s,q,r;for(s=0,q=l.length;s<q;s++){r=l[s];if(r&&r.isAnimated){t=r.totalFrames;if(r.curFrame<t||t===null){++r.curFrame;if(r.useSec)n(r);r._onTween.fire()}else o.stop(r)}}}});var p=function(s){var r,q;for(r=0,q=l.length;r<q;r++)if(l[r]===s)return r;return-1};var n=function(r){var v=r.totalFrames,u=r.curFrame,t=r.duration,s=u*t*1e3/v,q=e()-r.startTime,w=0;if(q<t*1e3)w=Math.round((q/s-1)*u);else w=v-(u+1);if(w>0&&isFinite(w)){if(r.curFrame+w>=v)w=v-(u+1);r.curFrame+=w}}};g.Bezier=new function(){this.getPosition=function(p,o){var r=p.length,m=[],q=1-o,l,k;for(l=0;l<r;++l)m[l]=[p[l][0],p[l][1]];for(k=1;k<r;++k)for(l=0;l<r-k;++l){m[l][0]=q*m[l][0]+o*m[parseInt(l+1,10)][0];m[l][1]=q*m[l][1]+o*m[parseInt(l+1,10)][1]}return[m[0][0],m[0][1]]}};g.Easing={easeNone:function(l,k,n,m){return n*l/m+k},easeIn:function(l,k,n,m){return n*(l/=m)*l+k},easeOut:function(l,k,n,m){return-n*(l/=m)*(l-2)+k}};(function(){g.Motion=function(p,o,q,r){if(p)g.Motion.superclass.constructor.call(this,p,o,q,r)};Ext.extend(g.Motion,Ext.lib.AnimBase);var n=g.Motion.superclass,m=g.Motion.prototype,l=/^points$/i;Ext.apply(g.Motion.prototype,{setAttr:function(o,s,r){var q=this,p=n.setAttr;if(l.test(o)){r=r||"px";p.call(q,"left",s[0],r);p.call(q,"top",s[1],r)}else p.call(q,o,s,r)},getAttr:function(o){var q=this,p=n.getAttr;return l.test(o)?[p.call(q,"left"),p.call(q,"top")]:p.call(q,o)},doMethod:function(o,r,p){var q=this;return l.test(o)?g.Bezier.getPosition(q.runAttrs[o],q.method(q.curFrame,0,100,q.totalFrames)/100):n.doMethod.call(q,o,r,p)},setRunAttr:function(v){if(l.test(v)){var x=this,q=this.el,A=this.attributes.points,t=A.control||[],y=A.from,z=A.to,w=A.by,B=g.Dom,p,s,r,u,o;if(t.length>0&&!Ext.isArray(t[0]))t=[t];Ext.fly(q,"_anim").position();B.setXY(q,j(y)?y:B.getXY(q));p=x.getAttr("points");if(j(z)){r=k.call(x,z,p);for(s=0,u=t.length;s<u;++s)t[s]=k.call(x,t[s],p)}else if(j(w)){r=[p[0]+w[0],p[1]+w[1]];for(s=0,u=t.length;s<u;++s)t[s]=[p[0]+t[s][0],p[1]+t[s][1]]}o=this.runAttrs[v]=[p];if(t.length>0)o=o.concat(t);o[o.length]=r}else n.setRunAttr.call(this,v)}});var k=function(o,q){var p=g.Dom.getXY(this.el);return[o[0]-p[0]+q[0],o[1]-p[1]+q[1]]}})()})();(function(){var d=Math.abs,i=Math.PI,h=Math.asin,g=Math.pow,e=Math.sin,f=Ext.lib;Ext.apply(f.Easing,{easeBoth:function(k,j,m,l){return(k/=l/2)<1?m/2*k*k+j:-m/2*(--k*(k-2)-1)+j},easeInStrong:function(k,j,m,l){return m*(k/=l)*k*k*k+j},easeOutStrong:function(k,j,m,l){return-m*((k=k/l-1)*k*k*k-1)+j},easeBothStrong:function(k,j,m,l){return(k/=l/2)<1?m/2*k*k*k*k+j:-m/2*((k-=2)*k*k*k-2)+j},elasticIn:function(l,j,q,o,k,n){if(l==0||(l/=o)==1)return l==0?j:j+q;n=n||o*.3;var m;if(k>=d(q))m=n/(2*i)*h(q/k);else{k=q;m=n/4}return-(k*g(2,10*(l-=1))*e((l*o-m)*2*i/n))+j},elasticOut:function(l,j,q,o,k,n){if(l==0||(l/=o)==1)return l==0?j:j+q;n=n||o*.3;var m;if(k>=d(q))m=n/(2*i)*h(q/k);else{k=q;m=n/4}return k*g(2,-10*l)*e((l*o-m)*2*i/n)+q+j},elasticBoth:function(l,j,q,o,k,n){if(l==0||(l/=o/2)==2)return l==0?j:j+q;n=n||o*.3*1.5;var m;if(k>=d(q))m=n/(2*i)*h(q/k);else{k=q;m=n/4}return l<1?-.5*k*g(2,10*(l-=1))*e((l*o-m)*2*i/n)+j:k*g(2,-10*(l-=1))*e((l*o-m)*2*i/n)*.5+q+j},backIn:function(k,j,n,m,l){l=l||1.70158;return n*(k/=m)*k*((l+1)*k-l)+j},backOut:function(k,j,n,m,l){if(!l)l=1.70158;return n*((k=k/m-1)*k*((l+1)*k+l)+1)+j},backBoth:function(k,j,n,m,l){l=l||1.70158;return(k/=m/2)<1?n/2*k*k*(((l*=1.525)+1)*k-l)+j:n/2*((k-=2)*k*(((l*=1.525)+1)*k+l)+2)+j},bounceIn:function(k,j,m,l){return m-f.Easing.bounceOut(l-k,0,m,l)+j},bounceOut:function(k,j,m,l){if((k/=l)<1/2.75)return m*7.5625*k*k+j;else if(k<2/2.75)return m*(7.5625*(k-=1.5/2.75)*k+.75)+j;else if(k<2.5/2.75)return m*(7.5625*(k-=2.25/2.75)*k+.9375)+j;return m*(7.5625*(k-=2.625/2.75)*k+.984375)+j},bounceBoth:function(k,j,m,l){return k<l/2?f.Easing.bounceIn(k*2,0,m,l)*.5+j:f.Easing.bounceOut(k*2-l,0,m,l)*.5+m*.5+j}})})();(function(){var h=Ext.lib;h.Anim.color=function(p,n,q,r,m,o){return h.Anim.run(p,n,q,r,m,o,h.ColorAnim)};h.ColorAnim=function(n,m,o,p){h.ColorAnim.superclass.constructor.call(this,n,m,o,p)};Ext.extend(h.ColorAnim,h.AnimBase);var j=h.ColorAnim.superclass,i=/color$/i,f=/^transparent|rgba\(0, 0, 0, 0\)$/,l=/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,d=/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,e=/^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i,g=function(m){return typeof m!=="undefined"};function k(n){var p=parseInt,o,m=null,q;if(n.length==3)return n;Ext.each([d,l,e],function(s,r){o=r%2==0?16:10;q=s.exec(n);if(q&&q.length==4){m=[p(q[1],o),p(q[2],o),p(q[3],o)];return false}});return m}Ext.apply(h.ColorAnim.prototype,{getAttr:function(m){var o=this,n=o.el,p;if(i.test(m))while(n&&f.test(p=Ext.fly(n).getStyle(m))){n=n.parentNode;p="fff"}else p=j.getAttr.call(o,m);return p},doMethod:function(s,m,o){var t=this,n,q=Math.floor,p,r,u;if(i.test(s)){n=[];o=o||[];for(p=0,r=m.length;p<r;p++){u=m[p];n[p]=j.doMethod.call(t,s,u,o[p])}n="rgb("+q(n[0])+","+q(n[1])+","+q(n[2])+")"}else n=j.doMethod.call(t,s,m,o);return n},setRunAttr:function(r){var t=this,u=t.attributes[r],v=u.to,s=u.by,n;j.setRunAttr.call(t,r);n=t.runAttrs[r];if(i.test(r)){var m=k(n.start),o=k(n.end);if(!g(v)&&g(s)){o=k(s);for(var p=0,q=m.length;p<q;p++)o[p]=m[p]+o[p]}n.start=m;n.end=o}}})})();(function(){var d=Ext.lib;d.Anim.scroll=function(j,h,k,l,g,i){return d.Anim.run(j,h,k,l,g,i,d.Scroll)};d.Scroll=function(h,g,i,j){if(h)d.Scroll.superclass.constructor.call(this,h,g,i,j)};Ext.extend(d.Scroll,d.ColorAnim);var f=d.Scroll.superclass,e="scroll";Ext.apply(d.Scroll.prototype,{doMethod:function(g,m,h){var k,j=this,l=j.curFrame,i=j.totalFrames;if(g==e)k=[j.method(l,m[0],h[0]-m[0],i),j.method(l,m[1],h[1]-m[1],i)];else k=f.doMethod.call(j,g,m,h);return k},getAttr:function(g){var h=this;if(g==e)return[h.el.scrollLeft,h.el.scrollTop];else return f.getAttr.call(h,g)},setAttr:function(g,j,i){var h=this;if(g==e){h.el.scrollLeft=j[0];h.el.scrollTop=j[1]}else f.setAttr.call(h,g,j,i)}})})();if(Ext.isIE){function a(){var d=Function.prototype;delete d.createSequence;delete d.defer;delete d.createDelegate;delete d.createCallback;delete d.createInterceptor;window.detachEvent("onunload",a)}window.attachEvent("onunload",a)}})();Ext.DomHelper=function(){var w=null,k=/^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i,m=/^table|tbody|tr|td$/i,d=/tag|children|cn|html$/i,s=/td|tr|tbody/i,o=/([a-z0-9-]+)\s*:\s*([^;\s]+(?:\s*[^;\s]+)*);?/gi,u=/end/i,r,n="afterbegin",p="afterend",c="beforebegin",q="beforeend",a="<table>",i="</table>",b=a+"<tbody>",j="</tbody>"+i,l=b+"<tr>",v="</tr>"+j;function h(A,C,B,D,z,x){var y=r.insertHtml(D,Ext.getDom(A),t(C));return B?Ext.get(y,true):y}function t(D){var z="",y,C,B,x,E;if(typeof D=="string")z=D;else if(Ext.isArray(D)){for(var A=0;A<D.length;A++)if(D[A])z+=t(D[A])}else{z+="<"+(D.tag=D.tag||"div");for(y in D){C=D[y];if(!d.test(y))if(typeof C=="object"){z+=" "+y+'="';for(B in C)z+=B+":"+C[B]+";";z+='"'}else z+=" "+({cls:"class",htmlFor:"for"}[y]||y)+'="'+C+'"'}if(k.test(D.tag))z+="/>";else{z+=">";if(E=D.children||D.cn)z+=t(E);else if(D.html)z+=D.html;z+="</"+D.tag+">"}}return z}function g(E,B,A,C){w.innerHTML=[B,A,C].join("");var x=-1,z=w,y;while(++x<E)z=z.firstChild;if(y=z.nextSibling){var D=document.createDocumentFragment();while(z){y=z.nextSibling;D.appendChild(z);z=y}z=D}return z}function e(x,y,A,z){var B,C;w=w||document.createElement("div");if(x=="td"&&(y==n||y==q)||!s.test(x)&&(y==c||y==p))return;C=y==c?A:y==p?A.nextSibling:y==n?A.firstChild:null;if(y==c||y==p)A=A.parentNode;if(x=="td"||x=="tr"&&(y==q||y==n))B=g(4,l,z,v);else if(x=="tbody"&&(y==q||y==n)||x=="tr"&&(y==c||y==p))B=g(3,b,z,j);else B=g(2,a,z,i);A.insertBefore(B,C);return B}r={markup:function(x){return t(x)},applyStyles:function(A,B){if(B){var y=0,x,z,C;A=Ext.fly(A);if(typeof B=="function")B=B.call();if(typeof B=="string")while(C=o.exec(B))A.setStyle(C[1],C[2]);else if(typeof B=="object")A.setStyle(B)}},insertHtml:function(C,x,D){var B={},z,F,E,G,A,y;C=C.toLowerCase();B[c]=["BeforeBegin","previousSibling"];B[p]=["AfterEnd","nextSibling"];if(x.insertAdjacentHTML){if(m.test(x.tagName)&&(y=e(x.tagName.toLowerCase(),C,x,D)))return y;B[n]=["AfterBegin","firstChild"];B[q]=["BeforeEnd","lastChild"];if(z=B[C]){x.insertAdjacentHTML(z[0],D);return x[z[1]]}}else{E=x.ownerDocument.createRange();F="setStart"+(u.test(C)?"After":"Before");if(B[C]){E[F](x);G=E.createContextualFragment(D);x.parentNode.insertBefore(G,C==c?x:x.nextSibling);return x[(C==c?"previous":"next")+"Sibling"]}else{A=(C==n?"first":"last")+"Child";if(x.firstChild){E[F](x[A]);G=E.createContextualFragment(D);if(C==n)x.insertBefore(G,x.firstChild);else x.appendChild(G)}else x.innerHTML=D;return x[A]}}throw'Illegal insertion point -> "'+C+'"';},insertBefore:function(x,z,y){return h(x,z,y,c)},insertAfter:function(x,z,y){return h(x,z,y,p,"nextSibling")},insertFirst:function(x,z,y){return h(x,z,y,n,"firstChild")},append:function(x,z,y){return h(x,z,y,q,"",true)},overwrite:function(x,z,y){x=Ext.getDom(x);x.innerHTML=t(z);return y?Ext.get(x.firstChild):x.firstChild},createHtml:t};return r}();Ext.apply(Ext.DomHelper,function(){var e,a="afterbegin",h="afterend",i="beforebegin",d="beforeend",b=/tag|children|cn|html$/i;function g(m,p,n,q,l,j){m=Ext.getDom(m);var k;if(e.useDom){k=c(p,null);if(j)m.appendChild(k);else(l=="firstChild"?m:m.parentNode).insertBefore(k,m[l]||m)}else k=Ext.DomHelper.insertHtml(q,m,Ext.DomHelper.createHtml(p));return n?Ext.get(k,true):k}function c(j,r){var k,u=document,p,s,m,t;if(Ext.isArray(j)){k=u.createDocumentFragment();for(var q=0,n=j.length;q<n;q++)c(j[q],k)}else if(typeof j=="string")k=u.createTextNode(j);else{k=u.createElement(j.tag||"div");p=!!k.setAttribute;for(var s in j)if(!b.test(s)){m=j[s];if(s=="cls")k.className=m;else if(p)k.setAttribute(s,m);else k[s]=m}Ext.DomHelper.applyStyles(k,j.style);if(t=j.children||j.cn)c(t,k);else if(j.html)k.innerHTML=j.html}if(r)r.appendChild(k);return k}e={createTemplate:function(k){var j=Ext.DomHelper.createHtml(k);return new Ext.Template(j)},useDom:false,insertBefore:function(j,l,k){return g(j,l,k,i)},insertAfter:function(j,l,k){return g(j,l,k,h,"nextSibling")},insertFirst:function(j,l,k){return g(j,l,k,a,"firstChild")},append:function(j,l,k){return g(j,l,k,d,"",true)},createDom:c};return e}());Ext.Template=function(h){var j=this,c=arguments,e=[],d;if(Ext.isArray(h))h=h.join("");else if(c.length>1){for(var g=0,b=c.length;g<b;g++){d=c[g];if(typeof d=="object")Ext.apply(j,d);else e.push(d)}h=e.join("")}j.html=h;if(j.compiled)j.compile()};Ext.Template.prototype={re:/\{([\w-]+)\}/g,applyTemplate:function(a){var b=this;return b.compiled?b.compiled(a):b.html.replace(b.re,function(c,d){return a[d]!==undefined?a[d]:""})},set:function(a,c){var b=this;b.html=a;b.compiled=null;return c?b.compile():b},compile:function(){var me=this,sep=Ext.isGecko?"+":",";function fn(m,name){name="values['"+name+"']";return"'"+sep+"("+name+" == undefined ? '' : "+name+")"+sep+"'"}eval("this.compiled = function(values){ return "+(Ext.isGecko?"'":"['")+me.html.replace(/\\/g,"\\\\").replace(/(\r\n|\n)/g,"\\n").replace(/'/g,"\\'").replace(this.re,fn)+(Ext.isGecko?"';};":"'].join('');};"));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.applyTemplate(b));return a?Ext.get(d,true):d},overwrite:function(b,a,c){b=Ext.getDom(b);b.innerHTML=this.applyTemplate(a);return c?Ext.get(b.firstChild,true):b.firstChild}};Ext.Template.prototype.apply=Ext.Template.prototype.applyTemplate;Ext.Template.from=function(b,a){b=Ext.getDom(b);return new Ext.Template(b.value||b.innerHTML,a||"")};Ext.apply(Ext.Template.prototype,{disableFormats:false,re:/\{([\w-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,argsRe:/^\s*['"](.*)["']\s*$/,compileARe:/\\/g,compileBRe:/(\r\n|\n)/g,compileCRe:/'/g,applyTemplate:function(b){var g=this,a=g.disableFormats!==true,e=Ext.util.Format,c=g;if(g.compiled)return g.compiled(b);function d(j,l,p,k){if(p&&a)if(p.substr(0,5)=="this.")return c.call(p.substr(5),b[l],b);else{if(k){var o=g.argsRe;k=k.split(",");for(var n=0,h=k.length;n<h;n++)k[n]=k[n].replace(o,"$1");k=[b[l]].concat(k)}else k=[b[l]];return e[p].apply(e,k)}else return b[l]!==undefined?b[l]:""}return g.html.replace(g.re,d)},compile:function(){var me=this,fm=Ext.util.Format,useF=me.disableFormats!==true,sep=Ext.isGecko?"+":",",body;function fn(m,name,format,args){if(format&&useF){args=args?","+args:"";if(format.substr(0,5)!="this.")format="fm."+format+"(";else{format='this.call("'+format.substr(5)+'", ';args=", values"}}else{args="";format="(values['"+name+"'] == undefined ? '' : "}return"'"+sep+format+"values['"+name+"']"+args+")"+sep+"'"}if(Ext.isGecko)body="this.compiled = function(values){ return '"+me.html.replace(me.compileARe,"\\\\").replace(me.compileBRe,"\\n").replace(me.compileCRe,"\\'").replace(me.re,fn)+"';};";else{body=["this.compiled = function(values){ return ['"];body.push(me.html.replace(me.compileARe,"\\\\").replace(me.compileBRe,"\\n").replace(me.compileCRe,"\\'").replace(me.re,fn));body.push("'].join('');};");body=body.join("")}eval(body);return me},call:function(c,b,a){return this[c](b,a)}});Ext.Template.prototype.apply=Ext.Template.prototype.applyTemplate;Ext.DomQuery=function(){var cache={},simpleCache={},valueCache={},nonSpace=/\S/,trimRe=/^\s+|\s+$/g,tplRe=/\{(\d+)\}/g,modeRe=/^(\s?[\/>+~]\s?|\s|$)/,tagTokenRe=/^(#)?([\w-\*]+)/,nthRe=/(\d*)n\+?(\d*)/,nthRe2=/\D/,isIE=window.ActiveXObject?true:false,key=30803;eval("var batch = 30803;");function child(parent,index){var i=0,n=parent.firstChild;while(n){if(n.nodeType==1)if(++i==index)return n;n=n.nextSibling}return null}function next(n){while((n=n.nextSibling)&&n.nodeType!=1);return n}function prev(n){while((n=n.previousSibling)&&n.nodeType!=1);return n}function children(parent){var n=parent.firstChild,nodeIndex=-1,nextNode;while(n){nextNode=n.nextSibling;if(n.nodeType==3&&!nonSpace.test(n.nodeValue))parent.removeChild(n);else n.nodeIndex=++nodeIndex;n=nextNode}return this}function byClassName(nodeSet,cls){if(!cls)return nodeSet;var result=[],ri=-1;for(var i=0,ci;ci=nodeSet[i];i++)if((" "+ci.className+" ").indexOf(cls)!=-1)result[++ri]=ci;return result}function attrValue(n,attr){if(!n.tagName&&typeof n.length!="undefined")n=n[0];if(!n)return null;if(attr=="for")return n.htmlFor;if(attr=="class"||attr=="className")return n.className;return n.getAttribute(attr)||n[attr]}function getNodes(ns,mode,tagName){var result=[],ri=-1,cs;if(!ns)return result;tagName=tagName||"*";if(typeof ns.getElementsByTagName!="undefined")ns=[ns];if(!mode)for(var i=0,ni;ni=ns[i];i++){cs=ni.getElementsByTagName(tagName);for(var j=0,ci;ci=cs[j];j++)result[++ri]=ci}else if(mode=="/"||mode==">"){var utag=tagName.toUpperCase();for(var i=0,ni,cn;ni=ns[i];i++){cn=ni.childNodes;for(var j=0,cj;cj=cn[j];j++)if(cj.nodeName==utag||cj.nodeName==tagName||tagName=="*")result[++ri]=cj}}else if(mode=="+"){var utag=tagName.toUpperCase();for(var i=0,n;n=ns[i];i++){while((n=n.nextSibling)&&n.nodeType!=1);if(n&&(n.nodeName==utag||n.nodeName==tagName||tagName=="*"))result[++ri]=n}}else if(mode=="~"){var utag=tagName.toUpperCase();for(var i=0,n;n=ns[i];i++)while(n=n.nextSibling)if(n.nodeName==utag||n.nodeName==tagName||tagName=="*")result[++ri]=n}return result}function concat(a,b){if(b.slice)return a.concat(b);for(var i=0,l=b.length;i<l;i++)a[a.length]=b[i];return a}function byTag(cs,tagName){if(cs.tagName||cs==document)cs=[cs];if(!tagName)return cs;var result=[],ri=-1;tagName=tagName.toLowerCase();for(var i=0,ci;ci=cs[i];i++)if(ci.nodeType==1&&ci.tagName.toLowerCase()==tagName)result[++ri]=ci;return result}function byId(cs,id){if(cs.tagName||cs==document)cs=[cs];if(!id)return cs;var result=[],ri=-1;for(var i=0,ci;ci=cs[i];i++)if(ci&&ci.id==id){result[++ri]=ci;return result}return result}function byAttribute(cs,attr,value,op,custom){var result=[],ri=-1,useGetStyle=custom=="{",fn=Ext.DomQuery.operators[op],a,innerHTML;for(var i=0,ci;ci=cs[i];i++){if(ci.nodeType!=1)continue;innerHTML=ci.innerHTML;if(innerHTML!==null&&innerHTML!==undefined)if(useGetStyle)a=Ext.DomQuery.getStyle(ci,attr);else if(attr=="class"||attr=="className")a=ci.className;else if(attr=="for")a=ci.htmlFor;else if(attr=="href")a=ci.getAttribute("href",2);else a=ci.getAttribute(attr);else a=ci.getAttribute(attr);if(fn&&fn(a,value)||!fn&&a)result[++ri]=ci}return result}function byPseudo(cs,name,value){return Ext.DomQuery.pseudos[name](cs,value)}function nodupIEXml(cs){var d=++key,r;cs[0].setAttribute("_nodup",d);r=[cs[0]];for(var i=1,len=cs.length;i<len;i++){var c=cs[i];if(!c.getAttribute("_nodup")!=d){c.setAttribute("_nodup",d);r[r.length]=c}}for(var i=0,len=cs.length;i<len;i++)cs[i].removeAttribute("_nodup");return r}function nodup(cs){if(!cs)return[];var len=cs.length,c,i,r=cs,cj,ri=-1;if(!len||typeof cs.nodeType!="undefined"||len==1)return cs;if(isIE&&typeof cs[0].selectSingleNode!="undefined")return nodupIEXml(cs);var d=++key;cs[0]._nodup=d;for(i=1;c=cs[i];i++)if(c._nodup!=d)c._nodup=d;else{r=[];for(var j=0;j<i;j++)r[++ri]=cs[j];for(j=i+1;cj=cs[j];j++)if(cj._nodup!=d){cj._nodup=d;r[++ri]=cj}return r}return r}function quickDiffIEXml(c1,c2){var d=++key,r=[];for(var i=0,len=c1.length;i<len;i++)c1[i].setAttribute("_qdiff",d);for(var i=0,len=c2.length;i<len;i++)if(c2[i].getAttribute("_qdiff")!=d)r[r.length]=c2[i];for(var i=0,len=c1.length;i<len;i++)c1[i].removeAttribute("_qdiff");return r}function quickDiff(c1,c2){var len1=c1.length,d=++key,r=[];if(!len1)return c2;if(isIE&&typeof c1[0].selectSingleNode!="undefined")return quickDiffIEXml(c1,c2);for(var i=0;i<len1;i++)c1[i]._qdiff=d;for(var i=0,len=c2.length;i<len;i++)if(c2[i]._qdiff!=d)r[r.length]=c2[i];return r}function quickId(ns,mode,root,id){if(ns==root){var d=root.ownerDocument||root;return d.getElementById(id)}ns=getNodes(ns,mode,"*");return byId(ns,id)}return{getStyle:function(el,name){return Ext.fly(el).getStyle(name)},compile:function(path,type){type=type||"select";var fn=["var f = function(root){\n var mode; ++batch; var n = root || document;\n"],mode,lastPath,matchers=Ext.DomQuery.matchers,matchersLn=matchers.length,modeMatch,lmode=path.match(modeRe);if(lmode&&lmode[1]){fn[fn.length]='mode="'+lmode[1].replace(trimRe,"")+'";';path=path.replace(lmode[1],"")}while(path.substr(0,1)=="/")path=path.substr(1);while(path&&lastPath!=path){lastPath=path;var tokenMatch=path.match(tagTokenRe);if(type=="select"){if(tokenMatch){if(tokenMatch[1]=="#")fn[fn.length]='n = quickId(n, mode, root, "'+tokenMatch[2]+'");';else fn[fn.length]='n = getNodes(n, mode, "'+tokenMatch[2]+'");';path=path.replace(tokenMatch[0],"")}else if(path.substr(0,1)!="@")fn[fn.length]='n = getNodes(n, mode, "*");'}else if(tokenMatch){if(tokenMatch[1]=="#")fn[fn.length]='n = byId(n, "'+tokenMatch[2]+'");';else fn[fn.length]='n = byTag(n, "'+tokenMatch[2]+'");';path=path.replace(tokenMatch[0],"")}while(!(modeMatch=path.match(modeRe))){var matched=false;for(var j=0;j<matchersLn;j++){var t=matchers[j];var m=path.match(t.re);if(m){fn[fn.length]=t.select.replace(tplRe,function(x,i){return m[i]});path=path.replace(m[0],"");matched=true;break}}if(!matched)throw'Error parsing selector, parsing failed at "'+path+'"';}if(modeMatch[1]){fn[fn.length]='mode="'+modeMatch[1].replace(trimRe,"")+'";';path=path.replace(modeMatch[1],"")}}fn[fn.length]="return nodup(n);\n}";eval(fn.join(""));return f},jsSelect:function(path,root,type){root=root||document;if(typeof root=="string")root=document.getElementById(root);var paths=path.split(","),results=[];for(var i=0,len=paths.length;i<len;i++){var subPath=paths[i].replace(trimRe,"");if(!cache[subPath]){cache[subPath]=Ext.DomQuery.compile(subPath);if(!cache[subPath])throw subPath+" is not a valid selector";}var result=cache[subPath](root);if(result&&result!=document)results=results.concat(result)}if(paths.length>1)return nodup(results);return results},isXml:function(el){var docEl=(el?el.ownerDocument||el:0).documentElement;return docEl?docEl.nodeName!=="HTML":false},select:document.querySelectorAll?function(path,root,type){root=root||document;if(!Ext.DomQuery.isXml(root))try{var cs=root.querySelectorAll(path);return Ext.toArray(cs)}catch(ex){}return Ext.DomQuery.jsSelect.call(this,path,root,type)}:function(path,root,type){return Ext.DomQuery.jsSelect.call(this,path,root,type)},selectNode:function(path,root){return Ext.DomQuery.select(path,root)[0]},selectValue:function(path,root,defaultValue){path=path.replace(trimRe,"");if(!valueCache[path])valueCache[path]=Ext.DomQuery.compile(path,"select");var n=valueCache[path](root),v;n=n[0]?n[0]:n;if(typeof n.normalize=="function")n.normalize();v=n&&n.firstChild?n.firstChild.nodeValue:null;return v===null||v===undefined||v===""?defaultValue:v},selectNumber:function(path,root,defaultValue){var v=Ext.DomQuery.selectValue(path,root,defaultValue||0);return parseFloat(v)},is:function(el,ss){if(typeof el=="string")el=document.getElementById(el);var isArray=Ext.isArray(el),result=Ext.DomQuery.filter(isArray?el:[el],ss);return isArray?result.length==el.length:result.length>0},filter:function(els,ss,nonMatches){ss=ss.replace(trimRe,"");if(!simpleCache[ss])simpleCache[ss]=Ext.DomQuery.compile(ss,"simple");var result=simpleCache[ss](els);return nonMatches?quickDiff(result,els):result},matchers:[{re:/^\.([\w-]+)/,select:'n = byClassName(n, " {1} ");'},{re:/^\:([\w-]+)(?:\(((?:[^\s>\/]*|.*?))\))?/,select:'n = byPseudo(n, "{1}", "{2}");'},{re:/^(?:([\[\{])(?:@)?([\w-]+)\s?(?:(=|.=)\s?['"]?(.*?)["']?)?[\]\}])/,select:'n = byAttribute(n, "{2}", "{4}", "{3}", "{1}");'},{re:/^#([\w-]+)/,select:'n = byId(n, "{1}");'},{re:/^@([\w-]+)/,select:'return {firstChild:{nodeValue:attrValue(n, "{1}")}};'}],operators:{"=":function(a,v){return a==v},"!=":function(a,v){return a!=v},"^=":function(a,v){return a&&a.substr(0,v.length)==v},"$=":function(a,v){return a&&a.substr(a.length-v.length)==v},"*=":function(a,v){return a&&a.indexOf(v)!==-1},"%=":function(a,v){return a%v==0},"|=":function(a,v){return a&&(a==v||a.substr(0,v.length+1)==v+"-")},"~=":function(a,v){return a&&(" "+a+" ").indexOf(" "+v+" ")!=-1}},pseudos:{"first-child":function(c){var r=[],ri=-1,n;for(var i=0,ci;ci=n=c[i];i++){while((n=n.previousSibling)&&n.nodeType!=1);if(!n)r[++ri]=ci}return r},"last-child":function(c){var r=[],ri=-1,n;for(var i=0,ci;ci=n=c[i];i++){while((n=n.nextSibling)&&n.nodeType!=1);if(!n)r[++ri]=ci}return r},"nth-child":function(c,a){var r=[],ri=-1,m=nthRe.exec(a=="even"&&"2n"||a=="odd"&&"2n+1"||!nthRe2.test(a)&&"n+"+a||a),f=(m[1]||1)-0,l=m[2]-0;for(var i=0,n;n=c[i];i++){var pn=n.parentNode;if(batch!=pn._batch){var j=0;for(var cn=pn.firstChild;cn;cn=cn.nextSibling)if(cn.nodeType==1)cn.nodeIndex=++j;pn._batch=batch}if(f==1){if(l==0||n.nodeIndex==l)r[++ri]=n}else if((n.nodeIndex+l)%f==0)r[++ri]=n}return r},"only-child":function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++)if(!prev(ci)&&!next(ci))r[++ri]=ci;return r},empty:function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var cns=ci.childNodes,j=0,cn,empty=true;while(cn=cns[j]){++j;if(cn.nodeType==1||cn.nodeType==3){empty=false;break}}if(empty)r[++ri]=ci}return r},contains:function(c,v){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++)if((ci.textContent||ci.innerText||"").indexOf(v)!=-1)r[++ri]=ci;return r},nodeValue:function(c,v){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++)if(ci.firstChild&&ci.firstChild.nodeValue==v)r[++ri]=ci;return r},checked:function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++)if(ci.checked==true)r[++ri]=ci;return r},not:function(c,ss){return Ext.DomQuery.filter(c,ss,true)},any:function(c,selectors){var ss=selectors.split("|"),r=[],ri=-1,s;for(var i=0,ci;ci=c[i];i++)for(var j=0;s=ss[j];j++)if(Ext.DomQuery.is(ci,s)){r[++ri]=ci;break}return r},odd:function(c){return this["nth-child"](c,"odd")},even:function(c){return this["nth-child"](c,"even")},nth:function(c,a){return c[a-1]||[]},first:function(c){return c[0]||[]},last:function(c){return c[c.length-1]||[]},has:function(c,ss){var s=Ext.DomQuery.select,r=[],ri=-1;for(var i=0,ci;ci=c[i];i++)if(s(ss,ci).length>0)r[++ri]=ci;return r},next:function(c,ss){var is=Ext.DomQuery.is,r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var n=next(ci);if(n&&is(n,ss))r[++ri]=ci}return r},prev:function(c,ss){var is=Ext.DomQuery.is,r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var n=prev(ci);if(n&&is(n,ss))r[++ri]=ci}return r}}}}();Ext.query=Ext.DomQuery.select;Ext.util.DelayedTask=function(d,c,a){var e=this,g,b=function(){clearInterval(g);g=null;d.apply(c,a||[])};e.delay=function(i,k,j,h){e.cancel();d=k||d;c=j||c;a=h||a;g=setInterval(b,i)};e.cancel=function(){if(g){clearInterval(g);g=null}}};(function(){var h=Ext.util,j=Ext.each,g=true,i=false;h.Observable=function(){var k=this,l=k.events;if(k.listeners){k.on(k.listeners);delete k.listeners}k.events=l||{}};h.Observable.prototype={filterOptRe:/^(?:scope|delay|buffer|single)$/,fireEvent:function(){var k=Array.prototype.slice.call(arguments,0),m=k[0].toLowerCase(),n=this,l=g,p=n.events[m],s,o,r;if(n.eventsSuspended===g){if(o=n.eventQueue)o.push(k)}else if(typeof p=="object")if(p.bubble){if(p.fire.apply(p,k.slice(1))===i)return i;r=n.getBubbleTarget&&n.getBubbleTarget();if(r&&r.enableBubble){s=r.events[m];if(!s||typeof s!="object"||!s.bubble)r.enableBubble(m);return r.fireEvent.apply(r,k)}}else{k.shift();l=p.fire.apply(p,k)}return l},addListener:function(m,q,s,l){var p=this,n,t,r,k;if(typeof m=="object"){l=m;for(n in l){t=l[n];if(!p.filterOptRe.test(n))p.addListener(n,t.fn||t,t.scope||l.scope,t.fn?t:l)}}else{m=m.toLowerCase();k=p.events[m]||g;if(typeof k=="boolean")p.events[m]=k=new h.Event(p,m);k.addListener(q,s,typeof l=="object"?l:{})}},removeListener:function(k,m,l){var n=this.events[k.toLowerCase()];if(typeof n=="object")n.removeListener(m,l)},purgeListeners:function(){var m=this.events,k,l;for(l in m){k=m[l];if(typeof k=="object")k.clearListeners()}},addEvents:function(n){var m=this;m.events=m.events||{};if(typeof n=="string"){var k=arguments,l=k.length;while(l--)m.events[k[l]]=m.events[k[l]]||g}else Ext.applyIf(m.events,n)},hasListener:function(k){var l=this.events[k.toLowerCase()];return typeof l=="object"&&l.listeners.length>0},suspendEvents:function(k){this.eventsSuspended=g;if(k&&!this.eventQueue)this.eventQueue=[]},resumeEvents:function(){var k=this,l=k.eventQueue||[];k.eventsSuspended=i;delete k.eventQueue;j(l,function(m){k.fireEvent.apply(k,m)})}};var d=h.Observable.prototype;d.on=d.addListener;d.un=d.removeListener;h.Observable.releaseCapture=function(k){k.fireEvent=d.fireEvent};function e(l,m,k){return function(){if(m.target==arguments[0])l.apply(k,Array.prototype.slice.call(arguments,0))}}function b(n,p,k,m){k.task=new h.DelayedTask;return function(){k.task.delay(p.buffer,n,m,Array.prototype.slice.call(arguments,0))}}function c(m,n,l,k){return function(){n.removeListener(l,k);return m.apply(k,arguments)}}function a(n,p,k,m){return function(){var l=new h.DelayedTask;if(!k.tasks)k.tasks=[];k.tasks.push(l);l.delay(p.delay||10,n,m,Array.prototype.slice.call(arguments,0))}}h.Event=function(l,k){this.name=k;this.obj=l;this.listeners=[]};h.Event.prototype={addListener:function(o,n,m){var p=this,k;n=n||p.obj;if(!p.isListening(o,n)){k=p.createListener(o,n,m);if(p.firing)p.listeners=p.listeners.slice(0);p.listeners.push(k)}},createListener:function(p,n,q){q=q||{},n=n||this.obj;var k={fn:p,scope:n,options:q},m=p;if(q.target)m=e(m,q,n);if(q.delay)m=a(m,q,k,n);if(q.single)m=c(m,this,p,n);if(q.buffer)m=b(m,q,k,n);k.fireFn=m;return k},findListener:function(o,n){var p=this.listeners,m=p.length,k;n=n||this.obj;while(m--){k=p[m];if(k)if(k.fn==o&&k.scope==n)return m}return-1},isListening:function(l,k){return this.findListener(l,k)!=-1},removeListener:function(r,q){var p,m,n,s=this,o=i;if((p=s.findListener(r,q))!=-1){if(s.firing)s.listeners=s.listeners.slice(0);m=s.listeners[p];if(m.task){m.task.cancel();delete m.task}n=m.tasks&&m.tasks.length;if(n){while(n--)m.tasks[n].cancel();delete m.tasks}s.listeners.splice(p,1);o=g}return o},clearListeners:function(){var n=this,k=n.listeners,m=k.length;while(m--)n.removeListener(k[m].fn,k[m].scope)},fire:function(){var q=this,p=q.listeners,k=p.length,o=0,m;if(k>0){q.firing=g;var n=Array.prototype.slice.call(arguments,0);for(;o<k;o++){m=p[o];if(m&&m.fireFn.apply(m.scope||q.obj||window,n)===i)return q.firing=i}}q.firing=i;return g}}})();Ext.apply(Ext.util.Observable.prototype,function(){function a(j){var i=(this.methodEvents=this.methodEvents||{})[j],d,c,g,h=this;if(!i){this.methodEvents[j]=i={};i.originalFn=this[j];i.methodName=j;i.before=[];i.after=[];var b=function(l,k,e){if((c=l.apply(k||h,e))!==undefined)if(typeof c=="object"){if(c.returnValue!==undefined)d=c.returnValue;else d=c;g=!!c.cancel}else if(c===false)g=true;else d=c};this[j]=function(){var l=Array.prototype.slice.call(arguments,0),k;d=c=undefined;g=false;for(var m=0,e=i.before.length;m<e;m++){k=i.before[m];b(k.fn,k.scope,l);if(g)return d}if((c=i.originalFn.apply(h,l))!==undefined)d=c;for(var m=0,e=i.after.length;m<e;m++){k=i.after[m];b(k.fn,k.scope,l);if(g)return d}return d}}return i}return{beforeMethod:function(d,c,b){a.call(this,d).before.push({fn:c,scope:b})},afterMethod:function(d,c,b){a.call(this,d).after.push({fn:c,scope:b})},removeMethodListener:function(j,g,d){var h=this.getMethodEvent(j);for(var c=0,b=h.before.length;c<b;c++)if(h.before[c].fn==g&&h.before[c].scope==d){h.before.splice(c,1);return}for(var c=0,b=h.after.length;c<b;c++)if(h.after[c].fn==g&&h.after[c].scope==d){h.after.splice(c,1);return}},relayEvents:function(j,e){var h=this;function g(i){return function(){return h.fireEvent.apply(h,[i].concat(Array.prototype.slice.call(arguments,0)))}}for(var d=0,b=e.length;d<b;d++){var c=e[d];h.events[c]=h.events[c]||true;j.on(c,g(c),h)}},enableBubble:function(e){var g=this;if(!Ext.isEmpty(e)){e=Ext.isArray(e)?e:Array.prototype.slice.call(arguments,0);for(var d=0,b=e.length;d<b;d++){var c=e[d];c=c.toLowerCase();var h=g.events[c]||true;if(typeof h=="boolean"){h=new Ext.util.Event(g,c);g.events[c]=h}h.bubble=true}}}}}());Ext.util.Observable.capture=function(c,b,a){c.fireEvent=c.fireEvent.createInterceptor(b,a)};Ext.util.Observable.observeClass=function(b,a){if(b){if(!b.fireEvent){Ext.apply(b,new Ext.util.Observable);Ext.util.Observable.capture(b.prototype,b.fireEvent,b)}if(typeof a=="object")b.on(a);return b}};Ext.EventManager=function(){var z,p,j=false,l=Ext.isGecko||Ext.isWebKit||Ext.isSafari,o=Ext.lib.Event,q=Ext.lib.Dom,c=document,A=window,r="DOMContentLoaded",t="complete",g=/^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/,u=[];function n(E){var H=false,D=0,C=u.length,H=false,F=false,G;if(E){if(E.getElementById||E.navigator){for(;D<C;++D){G=u[D];if(G.el===E){H=G.id;break}}if(!H){H=Ext.id(E);u.push({id:H,el:E});F=true}}else H=Ext.id(E);if(!Ext.elCache[H]){Ext.Element.addToCache(new Ext.Element(E),H);if(F)Ext.elCache[H].skipGC=true}}return H}function m(E,G,J,F,D,L){E=Ext.getDom(E);var C=n(E),K=Ext.elCache[C].events,H;H=o.on(E,G,D);K[G]=K[G]||[];K[G].push([J,D,L,H,F]);if(E.addEventListener&&G=="mousewheel"){var I=["DOMMouseScroll",D,false];E.addEventListener.apply(E,I);Ext.EventManager.addListener(A,"unload",function(){E.removeEventListener.apply(E,I)})}if(E==c&&G=="mousedown")Ext.EventManager.stoppedMouseDownEvent.addListener(D)}function d(){if(window!=top)return false;try{c.documentElement.doScroll("left")}catch(C){return false}b();return true}function B(C){if(Ext.isIE&&d())return true;if(c.readyState==t){b();return true}j||(p=setTimeout(arguments.callee,2));return false}var k;function i(C){k||(k=Ext.query("style, link[rel=stylesheet]"));if(k.length==c.styleSheets.length){b();return true}j||(p=setTimeout(arguments.callee,2));return false}function y(C){c.removeEventListener(r,arguments.callee,false);i()}function b(C){if(!j){j=true;if(p)clearTimeout(p);if(l)c.removeEventListener(r,b,false);if(Ext.isIE&&B.bindIE)c.detachEvent("onreadystatechange",B);o.un(A,"load",arguments.callee)}if(z&&!Ext.isReady){Ext.isReady=true;z.fire();z.listeners=[]}}function a(){z||(z=new Ext.util.Event);if(l)c.addEventListener(r,b,false);if(Ext.isIE){if(!B()){B.bindIE=true;c.attachEvent("onreadystatechange",B)}}else if(Ext.isOpera)c.readyState==t&&i()||c.addEventListener(r,y,false);else if(Ext.isWebKit)B();o.on(A,"load",b)}function x(C,D){return function(){var E=Ext.toArray(arguments);if(D.target==Ext.EventObject.setEvent(E[0]).target)C.apply(this,E)}}function w(D,E,C){return function(F){C.delay(E.buffer,D,null,[new Ext.EventObjectImpl(F)])}}function s(G,F,C,E,D){return function(H){Ext.EventManager.removeListener(F,C,E,D);G(H)}}function e(D,E,C){return function(G){var F=new Ext.util.DelayedTask(D);if(!C.tasks)C.tasks=[];C.tasks.push(F);F.delay(E.delay||10,D,null,[new Ext.EventObjectImpl(G)])}}function h(H,G,C,J,K){var D=!C||typeof C=="boolean"?{}:C,E=Ext.getDom(H),F;J=J||D.fn;K=K||D.scope;if(!E)throw'Error listening for "'+G+'". Element "'+H+"\" doesn't exist.";function I(M){if(!Ext)return;M=Ext.EventObject.setEvent(M);var L;if(D.delegate){if(!(L=M.getTarget(D.delegate,E)))return}else L=M.target;if(D.stopEvent)M.stopEvent();if(D.preventDefault)M.preventDefault();if(D.stopPropagation)M.stopPropagation();if(D.normalized)M=M.browserEvent;J.call(K||E,M,L,D)}if(D.target)I=x(I,D);if(D.delay)I=e(I,D,J);if(D.single)I=s(I,E,G,J,K);if(D.buffer){F=new Ext.util.DelayedTask(I);I=w(I,D,F)}m(E,G,J,F,I,K);return I}var v={addListener:function(E,C,G,F,D){if(typeof C=="object"){var J=C,H,I;for(H in J){I=J[H];if(!g.test(H))if(Ext.isFunction(I))h(E,H,J,I,J.scope);else h(E,H,I)}}else h(E,C,D,G,F)},removeListener:function(E,I,M,N){E=Ext.getDom(E);var C=n(E),K=E&&Ext.elCache[C].events[I]||[],D,H,F,G,J,L;for(H=0,J=K.length;H<J;H++)if(Ext.isArray(L=K[H])&&L[0]==M&&(!N||L[2]==N)){if(L[4])L[4].cancel();G=M.tasks&&M.tasks.length;if(G){while(G--)M.tasks[G].cancel();delete M.tasks}D=L[1];o.un(E,I,o.extAdapter?L[3]:D);if(D&&E.addEventListener&&I=="mousewheel")E.removeEventListener("DOMMouseScroll",D,false);if(D&&E==c&&I=="mousedown")Ext.EventManager.stoppedMouseDownEvent.removeListener(D);K.splice(H,1);if(K.length===0)delete Ext.elCache[C].events[I];for(G in Ext.elCache[C].events)return false;Ext.elCache[C].events={};return false}},removeAll:function(E){E=Ext.getDom(E);var D=n(E),J=Ext.elCache[D]||{},M=J.events||{},I,H,K,F,L,G,C;for(F in M)if(M.hasOwnProperty(F)){I=M[F];for(H=0,K=I.length;H<K;H++){L=I[H];if(L[4])L[4].cancel();if(L[0].tasks&&(G=L[0].tasks.length)){while(G--)L[0].tasks[G].cancel();delete L.tasks}C=L[1];o.un(E,F,o.extAdapter?L[3]:C);if(E.addEventListener&&C&&F=="mousewheel")E.removeEventListener("DOMMouseScroll",C,false);if(C&&E==c&&F=="mousedown")Ext.EventManager.stoppedMouseDownEvent.removeListener(C)}}if(Ext.elCache[D])Ext.elCache[D].events={}},getListeners:function(F,C){F=Ext.getDom(F);var H=n(F),D=Ext.elCache[H]||{},G=D.events||{},E=[];if(G&&G[C])return G[C];else return null},purgeElement:function(E,C,G){E=Ext.getDom(E);var D=n(E),J=Ext.elCache[D]||{},K=J.events||{},F,I,H;if(G){if(K&&K.hasOwnProperty(G)){I=K[G];for(F=0,H=I.length;F<H;F++)Ext.EventManager.removeListener(E,G,I[F][0])}}else Ext.EventManager.removeAll(E);if(C&&E&&E.childNodes)for(F=0,H=E.childNodes.length;F<H;F++)Ext.EventManager.purgeElement(E.childNodes[F],C,G)},_unload:function(){var C;for(C in Ext.elCache)Ext.EventManager.removeAll(C);delete Ext.elCache;delete Ext.Element._flyweights;var G,D,F,E=Ext.lib.Ajax;typeof E.conn=="object"?D=E.conn:D={};for(F in D){G=D[F];if(G)E.abort({conn:G,tId:F})}},onDocumentReady:function(E,D,C){if(Ext.isReady){z||(z=new Ext.util.Event);z.addListener(E,D,C);z.fire();z.listeners=[]}else{if(!z)a();C=C||{};C.delay=C.delay||1;z.addListener(E,D,C)}},fireDocReady:b};v.on=v.addListener;v.un=v.removeListener;v.stoppedMouseDownEvent=new Ext.util.Event;return v}();Ext.onReady=Ext.EventManager.onDocumentReady;(function(){var a=function(){var c=document.body||document.getElementsByTagName("body")[0];if(!c)return false;var b=[" ",Ext.isIE?"ext-ie "+(Ext.isIE6?"ext-ie6":Ext.isIE7?"ext-ie7":"ext-ie8"):Ext.isGecko?"ext-gecko "+(Ext.isGecko2?"ext-gecko2":"ext-gecko3"):Ext.isOpera?"ext-opera":Ext.isWebKit?"ext-webkit":""];if(Ext.isSafari)b.push("ext-safari "+(Ext.isSafari2?"ext-safari2":Ext.isSafari3?"ext-safari3":"ext-safari4"));else if(Ext.isChrome)b.push("ext-chrome");if(Ext.isMac)b.push("ext-mac");if(Ext.isLinux)b.push("ext-linux");if(Ext.isStrict||Ext.isBorderBox){var d=c.parentNode;if(d)d.className+=Ext.isStrict?" ext-strict":" ext-border-box"}c.className+=b.join(" ");return true};if(!a())Ext.onReady(a)})();Ext.EventObject=function(){var b=Ext.lib.Event,a={3:13,63234:37,63235:39,63232:38,63233:40,63276:33,63277:34,63272:46,63273:36,63275:35},c=Ext.isIE?{1:0,4:1,2:2}:Ext.isWebKit?{1:0,2:1,3:2}:{0:0,1:1,2:2};Ext.EventObjectImpl=function(d){if(d)this.setEvent(d.browserEvent||d)};Ext.EventObjectImpl.prototype={setEvent:function(g){var d=this;if(g==d||g&&g.browserEvent)return g;d.browserEvent=g;if(g){d.button=g.button?c[g.button]:g.which?g.which-1:-1;if(g.type=="click"&&d.button==-1)d.button=0;d.type=g.type;d.shiftKey=g.shiftKey;d.ctrlKey=g.ctrlKey||g.metaKey||false;d.altKey=g.altKey;d.keyCode=g.keyCode;d.charCode=g.charCode;d.target=b.getTarget(g);d.xy=b.getXY(g)}else{d.button=-1;d.shiftKey=false;d.ctrlKey=false;d.altKey=false;d.keyCode=0;d.charCode=0;d.target=null;d.xy=[0,0]}return d},stopEvent:function(){var d=this;if(d.browserEvent){if(d.browserEvent.type=="mousedown")Ext.EventManager.stoppedMouseDownEvent.fire(d);b.stopEvent(d.browserEvent)}},preventDefault:function(){if(this.browserEvent)b.preventDefault(this.browserEvent)},stopPropagation:function(){var d=this;if(d.browserEvent){if(d.browserEvent.type=="mousedown")Ext.EventManager.stoppedMouseDownEvent.fire(d);b.stopPropagation(d.browserEvent)}},getCharCode:function(){return this.charCode||this.keyCode},getKey:function(){return this.normalizeKey(this.keyCode||this.charCode)},normalizeKey:function(d){return Ext.isSafari?a[d]||d:d},getPageX:function(){return this.xy[0]},getPageY:function(){return this.xy[1]},getXY:function(){return this.xy},getTarget:function(e,g,d){return e?Ext.fly(this.target).findParent(e,g,d):d?Ext.get(this.target):this.target},getRelatedTarget:function(){return this.browserEvent?b.getRelatedTarget(this.browserEvent):null},getWheelDelta:function(){var d=this.browserEvent;var g=0;if(d.wheelDelta)g=d.wheelDelta/120;else if(d.detail)g=-d.detail/3;return g},within:function(g,h,d){if(g){var e=this[h?"getRelatedTarget":"getTarget"]();return e&&((d?e==Ext.getDom(g):false)||Ext.fly(g).contains(e))}return false}};return new Ext.EventObjectImpl}();Ext.apply(Ext.EventManager,function(){var c,j,e,b,a=Ext.lib.Dom,i=/^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/,h=0,g=0,d=Ext.isWebKit?Ext.num(navigator.userAgent.match(/AppleWebKit\/(\d+)/)[1])>=525:!(Ext.isGecko&&!Ext.isWindows||Ext.isOpera);return{doResizeEvent:function(){var l=a.getViewHeight(),k=a.getViewWidth();if(g!=l||h!=k)c.fire(h=k,g=l)},onWindowResize:function(m,l,k){if(!c){c=new Ext.util.Event;j=new Ext.util.DelayedTask(this.doResizeEvent);Ext.EventManager.on(window,"resize",this.fireWindowResize,this)}c.addListener(m,l,k)},fireWindowResize:function(){if(c)j.delay(100)},onTextResize:function(n,m,k){if(!e){e=new Ext.util.Event;var l=new Ext.Element(document.createElement("div"));l.dom.className="x-text-resize";l.dom.innerHTML="X";l.appendTo(document.body);b=l.dom.offsetHeight;setInterval(function(){if(l.dom.offsetHeight!=b)e.fire(b,b=l.dom.offsetHeight)},this.textResizeInterval)}e.addListener(n,m,k)},removeResizeListener:function(l,k){if(c)c.removeListener(l,k)},fireResize:function(){if(c)c.fire(a.getViewWidth(),a.getViewHeight())},textResizeInterval:50,ieDeferSrc:false,useKeydown:d}}());Ext.EventManager.on=Ext.EventManager.addListener;Ext.apply(Ext.EventObjectImpl.prototype,{BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,RETURN:13,SHIFT:16,CTRL:17,CONTROL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGEUP:33,PAGE_DOWN:34,PAGEDOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,isNavKeyPress:function(){var b=this,a=this.normalizeKey(b.keyCode);return a>=33&&a<=40||a==b.RETURN||a==b.TAB||a==b.ESC},isSpecialKey:function(){var a=this.normalizeKey(this.keyCode);return this.type=="keypress"&&this.ctrlKey||this.isNavKeyPress()||a==this.BACKSPACE||a>=16&&a<=20||a>=44&&a<=46},getPoint:function(){return new Ext.lib.Point(this.xy[0],this.xy[1])},hasModifier:function(){return this.ctrlKey||this.altKey||this.shiftKey}});(function(){var j=document;Ext.Element=function(o,p){var q=typeof o=="string"?j.getElementById(o):o,r;if(!q)return null;r=q.id;if(!p&&r&&Ext.elCache[r])return Ext.elCache[r].el;this.dom=q;this.id=r||Ext.id(q)};var a=Ext.lib.Dom,g=Ext.DomHelper,m=Ext.lib.Event,e=Ext.lib.Anim,h=Ext.Element,b=Ext.elCache;h.prototype={set:function(t,q){var r=this.dom,p,s,q=q!==false&&!!r.setAttribute;for(p in t)if(t.hasOwnProperty(p)){s=t[p];if(p=="style")g.applyStyles(r,s);else if(p=="cls")r.className=s;else if(q)r.setAttribute(p,s);else r[p]=s}return this},defaultUnit:"px",is:function(o){return Ext.DomQuery.is(this.dom,o)},focus:function(r,q){var o=this,q=q||o.dom;try{if(Number(r))o.focus.defer(r,null,[null,q]);else q.focus()}catch(p){}return o},blur:function(){try{this.dom.blur()}catch(o){}return this},getValue:function(o){var p=this.dom.value;return o?parseInt(p,10):p},addListener:function(o,r,q,p){Ext.EventManager.on(this.dom,o,r,q||this,p);return this},removeListener:function(o,q,p){Ext.EventManager.removeListener(this.dom,o,q,p||this);return this},removeAllListeners:function(){Ext.EventManager.removeAll(this.dom);return this},purgeAllListeners:function(){Ext.EventManager.purgeElement(this,true);return this},addUnits:function(o){if(o===""||o=="auto"||o===undefined)o=o||"";else if(!isNaN(o)||!k.test(o))o=o+(this.defaultUnit||"px");return o},load:function(p,q,o){Ext.Ajax.request(Ext.apply({params:q,url:p.url||p,callback:o,el:this.dom,indicatorText:p.indicatorText||""},Ext.isObject(p)?p:{}));return this},isBorderBox:function(){return i[(this.dom.tagName||"").toLowerCase()]||Ext.isBorderBox},remove:function(){var o=this,p=o.dom;if(p){delete o.dom;Ext.removeNode(p)}},hover:function(p,o,r,q){var s=this;s.on("mouseenter",p,r||s.dom,q);s.on("mouseleave",o,r||s.dom,q);return s},contains:function(o){return!o?false:Ext.lib.Dom.isAncestor(this.dom,o.dom?o.dom:o)},getAttributeNS:function(p,o){return this.getAttribute(o,p)},getAttribute:Ext.isIE?function(o,q){var r=this.dom,p=typeof r[q+":"+o];if(["undefined","unknown"].indexOf(p)==-1)return r[q+":"+o];return r[o]}:function(o,p){var q=this.dom;return q.getAttributeNS(p,o)||q.getAttribute(p+":"+o)||q.getAttribute(o)||q[o]},update:function(o){if(this.dom)this.dom.innerHTML=o;return this}};var n=h.prototype;h.addMethods=function(p){Ext.apply(n,p)};n.on=n.addListener;n.un=n.removeListener;n.autoBoxAdjust=true;var k=/\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i,d;h.get=function(p){var o,s,r;if(!p)return null;if(typeof p=="string"){if(!(s=j.getElementById(p)))return null;if(b[p]&&b[p].el){o=b[p].el;o.dom=s}else o=h.addToCache(new h(s));return o}else if(p.tagName){if(!(r=p.id))r=Ext.id(p);if(b[r]&&b[r].el){o=b[r].el;o.dom=p}else o=h.addToCache(new h(p));return o}else if(p instanceof h){if(p!=d)if(Ext.isIE&&(p.id==undefined||p.id==""))p.dom=p.dom;else p.dom=j.getElementById(p.id)||p.dom;return p}else if(p.isComposite)return p;else if(Ext.isArray(p))return h.select(p);else if(p==j){if(!d){var q=function(){};q.prototype=h.prototype;d=new q;d.dom=j}return d}return null};h.addToCache=function(o,p){p=p||o.id;b[p]={el:o,data:{},events:{}};return o};h.data=function(p,o,q){p=h.get(p);if(!p)return null;var r=b[p.id].data;if(arguments.length==2)return r[o];else return r[o]=q};function l(){if(!Ext.enableGarbageCollector)clearInterval(h.collectorThreadId);else{var p,r,u,s;for(p in b){s=b[p];if(s.skipGC)continue;r=s.el;u=r.dom;if(!u||!u.parentNode||!u.offsetParent&&!j.getElementById(p)){if(Ext.enableListenerCollection)Ext.EventManager.removeAll(u);delete b[p]}}if(Ext.isIE){var q={};for(p in b)q[p]=b[p];b=Ext.elCache=q}}}h.collectorThreadId=setInterval(l,3e4);var c=function(){};c.prototype=h.prototype;h.Flyweight=function(o){this.dom=o};h.Flyweight.prototype=new c;h.Flyweight.prototype.isFlyweight=true;h._flyweights={};h.fly=function(q,o){var p=null;o=o||"_global";if(q=Ext.getDom(q)){(h._flyweights[o]=h._flyweights[o]||new h.Flyweight).dom=q;p=h._flyweights[o]}return p};Ext.get=h.get;Ext.fly=h.fly;var i=Ext.isStrict?{select:1}:{input:1,select:1,textarea:1};if(Ext.isIE||Ext.isGecko)i.button=1})();Ext.Element.addMethods({swallowEvent:function(a,b){var d=this;function c(g){g.stopPropagation();if(b)g.preventDefault()}if(Ext.isArray(a)){Ext.each(a,function(g){d.on(g,c)});return d}d.on(a,c);return d},relayEvent:function(a,b){this.on(a,function(c){b.fireEvent(a,c)})},clean:function(b){var d=this,e=d.dom,g=e.firstChild,c=-1;if(Ext.Element.data(e,"isCleaned")&&b!==true)return d;while(g){var a=g.nextSibling;if(g.nodeType==3&&!/\S/.test(g.nodeValue))e.removeChild(g);else g.nodeIndex=++c;g=a}Ext.Element.data(e,"isCleaned",true);return d},load:function(){var a=this.getUpdater();a.update.apply(a,arguments);return this},getUpdater:function(){return this.updateManager||(this.updateManager=new Ext.Updater(this))},update:function(html,loadScripts,callback){if(!this.dom)return this;html=html||"";if(loadScripts!==true){this.dom.innerHTML=html;if(typeof callback=="function")callback();return this}var id=Ext.id(),dom=this.dom;html+='<span id="'+id+'"></span>';Ext.lib.Event.onAvailable(id,function(){var DOC=document,hd=DOC.getElementsByTagName("head")[0],re=/(?:<script([^>]*)?>)((\n|\r|.)*?)(?:<\/script>)/ig,srcRe=/\ssrc=([\'\"])(.*?)\1/i,typeRe=/\stype=([\'\"])(.*?)\1/i,match,attrs,srcMatch,typeMatch,el,s;while(match=re.exec(html)){attrs=match[1];srcMatch=attrs?attrs.match(srcRe):false;if(srcMatch&&srcMatch[2]){s=DOC.createElement("script");s.src=srcMatch[2];typeMatch=attrs.match(typeRe);if(typeMatch&&typeMatch[2])s.type=typeMatch[2];hd.appendChild(s)}else if(match[2]&&match[2].length>0)if(window.execScript)window.execScript(match[2]);else window.eval(match[2])}el=DOC.getElementById(id);if(el)Ext.removeNode(el);if(typeof callback=="function")callback()});dom.innerHTML=html.replace(/(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/ig,"");return this},removeAllListeners:function(){this.removeAnchor();Ext.EventManager.removeAll(this.dom);return this},createProxy:function(a,e,d){a=typeof a=="object"?a:{tag:"div",cls:a};var c=this,b=e?Ext.DomHelper.append(e,a,true):Ext.DomHelper.insertBefore(c.dom,a,true);if(d&&c.setBox&&c.getBox)b.setBox(c.getBox());return b}});Ext.Element.prototype.getUpdateManager=Ext.Element.prototype.getUpdater;Ext.Element.addMethods({getAnchorXY:function(e,l,q){e=(e||"tl").toLowerCase();q=q||{};var k=this,b=k.dom==document.body||k.dom==document,n=q.width||b?Ext.lib.Dom.getViewWidth():k.getWidth(),i=q.height||b?Ext.lib.Dom.getViewHeight():k.getHeight(),p,a=Math.round,c=k.getXY(),m=k.getScroll(),j=b?m.left:!l?c[0]:0,g=b?m.top:!l?c[1]:0,d={c:[a(n*.5),a(i*.5)],t:[a(n*.5),0],l:[0,a(i*.5)],r:[n,a(i*.5)],b:[a(n*.5),i],tl:[0,0],bl:[0,i],br:[n,i],tr:[n,0]};p=d[e];return[p[0]+j,p[1]+g]},anchorTo:function(b,h,c,a,k,l){var i=this,e=i.dom,j=!Ext.isEmpty(k),d=function(){Ext.fly(e).alignTo(b,h,c,a);Ext.callback(l,Ext.fly(e))},g=this.getAnchor();this.removeAnchor();Ext.apply(g,{fn:d,scroll:j});Ext.EventManager.onWindowResize(d,null);if(j)Ext.EventManager.on(window,"scroll",d,null,{buffer:!isNaN(k)?k:50});d.call(i);return i},removeAnchor:function(){var b=this,a=this.getAnchor();if(a&&a.fn){Ext.EventManager.removeResizeListener(a.fn);if(a.scroll)Ext.EventManager.un(window,"scroll",a.fn);delete a.fn}return b},getAnchor:function(){var b=Ext.Element.data,c=this.dom;if(!c)return;var a=b(c,"_anchor");if(!a)a=b(c,"_anchor",{});return a},getAlignToXY:function(g,A,B){g=Ext.get(g);if(!g||!g.dom)throw"Element.alignToXY with an element that doesn't exist";B=B||[0,0];A=(!A||A=="?"?"tl-bl?":!/-/.test(A)&&A!==""?"tl-"+A:A||"tl-bl").toLowerCase();var K=this,H=K.dom,M,L,n,l,s,F,v,t=Ext.lib.Dom.getViewWidth()-10,G=Ext.lib.Dom.getViewHeight()-10,b,i,j,k,u,z,N=document,J=N.documentElement,q=N.body,E=(J.scrollLeft||q.scrollLeft||0)+5,D=(J.scrollTop||q.scrollTop||0)+5,I=false,e="",a="",C=A.match(/^([a-z]+)-([a-z]+)(\?)?$/);if(!C)throw"Element.alignTo with an invalid alignment "+A;e=C[1];a=C[2];I=!!C[3];M=K.getAnchorXY(e,true);L=g.getAnchorXY(a,false);n=L[0]-M[0]+B[0];l=L[1]-M[1]+B[1];if(I){s=K.getWidth();F=K.getHeight();v=g.getRegion();b=e.charAt(0);i=e.charAt(e.length-1);j=a.charAt(0);k=a.charAt(a.length-1);u=b=="t"&&j=="b"||b=="b"&&j=="t";z=i=="r"&&k=="l"||i=="l"&&k=="r";if(n+s>t+E)n=z?v.left-s:t+E-s;if(n<E)n=z?v.right:E;if(l+F>G+D)l=u?v.top-F:G+D-F;if(l<D)l=u?v.bottom:D}return[n,l]},alignTo:function(c,a,e,b){var d=this;return d.setXY(d.getAlignToXY(c,a,e),d.preanim&&!!b?d.preanim(arguments,3):false)},adjustForConstraints:function(c,a,b){return this.getConstrainToXY(a||document,false,b,c)||c},getConstrainToXY:function(b,a,c,e){var d={top:0,left:0,bottom:0,right:0};return function(i,z,k,m){i=Ext.get(i);k=k?Ext.applyIf(k,d):d;var v,C,u=0,t=0;if(i.dom==document.body||i.dom==document){v=Ext.lib.Dom.getViewWidth();C=Ext.lib.Dom.getViewHeight()}else{v=i.dom.clientWidth;C=i.dom.clientHeight;if(!z){var r=i.getXY();u=r[0];t=r[1]}}var q=i.getScroll();u+=k.left+q.left;t+=k.top+q.top;v-=k.right;C-=k.bottom;var A=u+v;var g=t+C;var j=m||(!z?this.getXY():[this.getLeft(true),this.getTop(true)]);var o=j[0],n=j[1];var p=this.dom.offsetWidth,B=this.dom.offsetHeight;var l=false;if(o+p>A){o=A-p;l=true}if(n+B>g){n=g-B;l=true}if(o<u){o=u;l=true}if(n<t){n=t;l=true}return l?[o,n]:false}}(),getCenterXY:function(){return this.getAlignToXY(document,"c-c")},center:function(a){return this.alignTo(a||document,"c-c")}});Ext.Element.addMethods(function(){var d="parentNode",b="nextSibling",c="previousSibling",e=Ext.DomQuery,a=Ext.get;return{findParent:function(m,l,h){var j=this.dom,g=document.body,k=0,i;if(Ext.isGecko&&Object.prototype.toString.call(j)=="[object XULElement]")return null;l=l||50;if(isNaN(l)){i=Ext.getDom(l);l=Number.MAX_VALUE}while(j&&j.nodeType==1&&k<l&&j!=g&&j!=i){if(e.is(j,m))return h?a(j):j;k++;j=j.parentNode}return null},findParentNode:function(j,i,g){var h=Ext.fly(this.dom.parentNode,"_internal");return h?h.findParent(j,i,g):null},up:function(h,g){return this.findParentNode(h,g,true)},select:function(g){return Ext.Element.select(g,this.dom)},query:function(g){return e.select(g,this.dom)},child:function(g,h){var i=e.selectNode(g,this.dom);return h?i:a(i)},down:function(g,h){var i=e.selectNode(" > "+g,this.dom);return h?i:a(i)},parent:function(g,h){return this.matchNode(d,d,g,h)},next:function(g,h){return this.matchNode(b,b,g,h)},prev:function(g,h){return this.matchNode(c,c,g,h)},first:function(g,h){return this.matchNode(b,"firstChild",g,h)},last:function(g,h){return this.matchNode(c,"lastChild",g,h)},matchNode:function(h,k,g,i){var j=this.dom[k];while(j){if(j.nodeType==1&&(!g||e.is(j,g)))return!i?a(j):j;j=j[h]}return null}}}());Ext.Element.addMethods({select:function(a,b){return Ext.Element.select(a,b,this.dom)}});Ext.Element.addMethods(function(){var c=Ext.getDom,a=Ext.get,b=Ext.DomHelper;return{appendChild:function(d){return a(d).appendTo(this)},appendTo:function(d){c(d).appendChild(this.dom);return this},insertBefore:function(d){(d=c(d)).parentNode.insertBefore(this.dom,d);return this},insertAfter:function(d){(d=c(d)).parentNode.insertBefore(this.dom,d.nextSibling);return this},insertFirst:function(e,d){e=e||{};if(e.nodeType||e.dom||typeof e=="string"){e=c(e);this.dom.insertBefore(e,this.dom.firstChild);return!d?a(e):e}else return this.createChild(e,this.dom.firstChild,d)},replace:function(d){d=a(d);this.insertBefore(d);d.remove();return this},replaceWith:function(d){var e=this;if(d.nodeType||d.dom||typeof d=="string"){d=c(d);e.dom.parentNode.insertBefore(d,e.dom)}else d=b.insertBefore(e.dom,d);delete Ext.elCache[e.id];Ext.removeNode(e.dom);e.id=Ext.id(e.dom=d);Ext.Element.addToCache(e.isFlyweight?new Ext.Element(e.dom):e);return e},createChild:function(e,d,g){e=e||{tag:"div"};return d?b.insertBefore(d,e,g!==true):b[!this.dom.firstChild?"overwrite":"append"](this.dom,e,g!==true)},wrap:function(d,e){var g=b.insertBefore(this.dom,d||{tag:"div"},!e);g.dom?g.dom.appendChild(this.dom):g.appendChild(this.dom);return g},insertHtml:function(e,g,d){var h=b.insertHtml(e,this.dom,g);return d?Ext.get(h):h}}}());Ext.apply(Ext.Element.prototype,function(){var c=Ext.getDom,a=Ext.get,b=Ext.DomHelper;return{insertSibling:function(i,g,h){var j=this,e,d=(g||"before").toLowerCase()=="after",k;if(Ext.isArray(i)){k=j;Ext.each(i,function(l){e=Ext.fly(k,"_internal").insertSibling(l,g,h);if(d)k=e});return e}i=i||{};if(i.nodeType||i.dom){e=j.dom.parentNode.insertBefore(c(i),d?j.dom.nextSibling:j.dom);if(!h)e=a(e)}else if(d&&!j.dom.nextSibling)e=b.append(j.dom.parentNode,i,!h);else e=b[d?"insertAfter":"insertBefore"](j.dom,i,!h);return e}}}());Ext.Element.addMethods(function(){var i={},z=/(-[a-z])/gi,c={},t=document.defaultView,w=Ext.isIE?"styleFloat":"cssFloat",E=/alpha\(opacity=(.*)\)/i,m=/^\s+|\s+$/g,v=/\s+/,b=/\w/g,C=Ext.Element,e="padding",d="margin",A="border",u="-left",r="-right",y="-top",p="-bottom",k="-width",s=Math,B="hidden",g="isClipped",l="overflow",o="overflow-x",n="overflow-y",D="originalClip",j={l:A+u+k,r:A+r+k,t:A+y+k,b:A+p+k},h={l:e+u,r:e+r,t:e+y,b:e+p},a={l:d+u,r:d+r,t:d+y,b:d+p},F=Ext.Element.data;function q(G,H){return H.charAt(1).toUpperCase()}function x(G){return i[G]||(i[G]=G=="float"?w:G.replace(z,q))}return{adjustWidth:function(G){var H=this;var I=typeof G=="number";if(I&&H.autoBoxAdjust&&!H.isBorderBox())G-=H.getBorderWidth("lr")+H.getPadding("lr");return I&&G<0?0:G},adjustHeight:function(G){var H=this;var I=typeof G=="number";if(I&&H.autoBoxAdjust&&!H.isBorderBox())G-=H.getBorderWidth("tb")+H.getPadding("tb");return I&&G<0?0:G},addClass:function(K){var L=this,J,G,I,H=[];if(!Ext.isArray(K)){if(typeof K=="string"&&!this.hasClass(K))L.dom.className+=" "+K}else{for(J=0,G=K.length;J<G;J++){I=K[J];if(typeof I=="string"&&(" "+L.dom.className+" ").indexOf(" "+I+" ")==-1)H.push(I)}if(H.length)L.dom.className+=" "+H.join(" ")}return L},removeClass:function(L){var M=this,K,H,G,J,I;if(!Ext.isArray(L))L=[L];if(M.dom&&M.dom.className){I=M.dom.className.replace(m,"").split(v);for(K=0,G=L.length;K<G;K++){J=L[K];if(typeof J=="string"){J=J.replace(m,"");H=I.indexOf(J);if(H!=-1)I.splice(H,1)}}M.dom.className=I.join(" ")}return M},radioClass:function(J){var K=this.dom.parentNode.childNodes,H,I,G;J=Ext.isArray(J)?J:[J];for(I=0,G=K.length;I<G;I++){H=K[I];if(H&&H.nodeType==1)Ext.fly(H,"_internal").removeClass(J)}return this.addClass(J)},toggleClass:function(G){return this.hasClass(G)?this.removeClass(G):this.addClass(G)},hasClass:function(G){return G&&(" "+this.dom.className+" ").indexOf(" "+G+" ")!=-1},replaceClass:function(H,G){return this.removeClass(H).addClass(G)},isStyle:function(G,H){return this.getStyle(G)==H},getStyle:function(){return t&&t.getComputedStyle?function(M){var J=this.dom,G,I,H,L=Ext.isWebKit,K;if(J==document)return null;M=x(M);if(L&&/marginRight/.test(M)){K=this.getStyle("display");J.style.display="inline-block"}H=(G=J.style[M])?G:(I=t.getComputedStyle(J,""))?I[M]:null;if(L)if(H=="rgba(0, 0, 0, 0)")H="transparent";else if(K)J.style.display=K;return H}:function(K){var I=this.dom,G,H;if(I==document)return null;if(K=="opacity"){if(I.style.filter.match)if(G=I.style.filter.match(E)){var J=parseFloat(G[1]);if(!isNaN(J))return J?J/100:0}return 1}K=x(K);return I.style[K]||((H=I.currentStyle)?H[K]:null)}}(),getColor:function(G,H,L){var J=this.getStyle(G),I=typeof L!="undefined"?L:"#",K;if(!J||/transparent|inherit/.test(J))return H;if(/^r/.test(J))Ext.each(J.slice(4,J.length-1).split(","),function(M){K=parseInt(M,10);I+=(K<16?"0":"")+K.toString(16)});else{J=J.replace("#","");I+=J.length==3?J.replace(/^(\w)(\w)(\w)$/,"$1$1$2$2$3$3"):J}return I.length>5?I.toLowerCase():H},setStyle:function(K,J){var H,I,G;if(typeof K!="object"){H={};H[K]=J;K=H}for(I in K){J=K[I];I=="opacity"?this.setOpacity(J):this.dom.style[x(I)]=J}return this},setOpacity:function(H,G){var K=this,I=K.dom.style;if(!G||!K.anim)if(Ext.isIE){var J=H<1?"alpha(opacity="+H*100+")":"",L=I.filter.replace(E,"").replace(m,"");I.zoom=1;I.filter=L+(L.length>0?" ":"")+J}else I.opacity=H;else K.anim({opacity:{to:H}},K.preanim(arguments,1),null,.35,"easeIn");return K},clearOpacity:function(){var G=this.dom.style;if(Ext.isIE){if(!Ext.isEmpty(G.filter))G.filter=G.filter.replace(E,"").replace(m,"")}else G.opacity=G["-moz-opacity"]=G["-khtml-opacity"]="";return this},getHeight:function(I){var H=this,K=H.dom,J=Ext.isIE&&H.isStyle("display","none"),G=s.max(K.offsetHeight,J?0:K.clientHeight)||0;G=!I?G:G-H.getBorderWidth("tb")-H.getPadding("tb");return G<0?0:G},getWidth:function(H){var I=this,K=I.dom,J=Ext.isIE&&I.isStyle("display","none"),G=s.max(K.offsetWidth,J?0:K.clientWidth)||0;G=!H?G:G-I.getBorderWidth("lr")-I.getPadding("lr");return G<0?0:G},setWidth:function(H,G){var I=this;H=I.adjustWidth(H);!G||!I.anim?I.dom.style.width=I.addUnits(H):I.anim({width:{to:H}},I.preanim(arguments,1));return I},setHeight:function(G,H){var I=this;G=I.adjustHeight(G);!H||!I.anim?I.dom.style.height=I.addUnits(G):I.anim({height:{to:G}},I.preanim(arguments,1));return I},getBorderWidth:function(G){return this.addStyles(G,j)},getPadding:function(G){return this.addStyles(G,h)},clip:function(){var G=this,H=G.dom;if(!F(H,g)){F(H,g,true);F(H,D,{o:G.getStyle(l),x:G.getStyle(o),y:G.getStyle(n)});G.setStyle(l,B);G.setStyle(o,B);G.setStyle(n,B)}return G},unclip:function(){var G=this,I=G.dom;if(F(I,g)){F(I,g,false);var H=F(I,D);if(H.o)G.setStyle(l,H.o);if(H.x)G.setStyle(o,H.x);if(H.y)G.setStyle(n,H.y)}return G},addStyles:function(N,M){var K=0,L=N.match(b),J,I,H,G=L.length;for(H=0;H<G;H++){J=L[H];I=J&&parseInt(this.getStyle(M[J]),10);if(I)K+=s.abs(I)}return K},margins:a}}());Ext.Element.boxMarkup='<div class="{0}-tl"><div class="{0}-tr"><div class="{0}-tc"></div></div></div><div class="{0}-ml"><div class="{0}-mr"><div class="{0}-mc"></div></div></div><div class="{0}-bl"><div class="{0}-br"><div class="{0}-bc"></div></div></div>';Ext.Element.addMethods(function(){var a="_internal",b=/(\d+\.?\d+)px/;return{applyStyles:function(c){Ext.DomHelper.applyStyles(this.dom,c);return this},getStyles:function(){var c={};Ext.each(arguments,function(d){c[d]=this.getStyle(d)},this);return c},setOverflow:function(c){var d=this.dom;if(c=="auto"&&Ext.isMac&&Ext.isGecko2){d.style.overflow="hidden";(function(){d.style.overflow="auto"}).defer(1)}else d.style.overflow=c},boxWrap:function(c){c=c||"x-box";var d=Ext.get(this.insertHtml("beforeBegin","<div class='"+c+"'>"+String.format(Ext.Element.boxMarkup,c)+"</div>"));Ext.DomQuery.selectNode("."+c+"-mc",d.dom).appendChild(this.dom);return d},setSize:function(e,c,d){var g=this;if(typeof e=="object"){c=e.height;e=e.width}e=g.adjustWidth(e);c=g.adjustHeight(c);if(!d||!g.anim){g.dom.style.width=g.addUnits(e);g.dom.style.height=g.addUnits(c)}else g.anim({width:{to:e},height:{to:c}},g.preanim(arguments,2));return g},getComputedHeight:function(){var d=this,c=Math.max(d.dom.offsetHeight,d.dom.clientHeight);if(!c){c=parseFloat(d.getStyle("height"))||0;if(!d.isBorderBox())c+=d.getFrameWidth("tb")}return c},getComputedWidth:function(){var c=Math.max(this.dom.offsetWidth,this.dom.clientWidth);if(!c){c=parseFloat(this.getStyle("width"))||0;if(!this.isBorderBox())c+=this.getFrameWidth("lr")}return c},getFrameWidth:function(d,c){return c&&this.isBorderBox()?0:this.getPadding(d)+this.getBorderWidth(d)},addClassOnOver:function(c){this.hover(function(){Ext.fly(this,a).addClass(c)},function(){Ext.fly(this,a).removeClass(c)});return this},addClassOnFocus:function(c){this.on("focus",function(){Ext.fly(this,a).addClass(c)},this.dom);this.on("blur",function(){Ext.fly(this,a).removeClass(c)},this.dom);return this},addClassOnClick:function(c){var d=this.dom;this.on("mousedown",function(){Ext.fly(d,a).addClass(c);var g=Ext.getDoc(),e=function(){Ext.fly(d,a).removeClass(c);g.removeListener("mouseup",e)};g.on("mouseup",e)});return this},getViewSize:function(){var g=document,h=this.dom,c=h==g||h==g.body;if(c){var e=Ext.lib.Dom;return{width:e.getViewWidth(),height:e.getViewHeight()}}else return{width:h.clientWidth,height:h.clientHeight}},getStyleSize:function(){var j=this,c,i,l=document,m=this.dom,e=m==l||m==l.body,g=m.style;if(e){var k=Ext.lib.Dom;return{width:k.getViewWidth(),height:k.getViewHeight()}}if(g.width&&g.width!="auto"){c=parseFloat(g.width);if(j.isBorderBox())c-=j.getFrameWidth("lr")}if(g.height&&g.height!="auto"){i=parseFloat(g.height);if(j.isBorderBox())i-=j.getFrameWidth("tb")}return{width:c||j.getWidth(true),height:i||j.getHeight(true)}},getSize:function(c){return{width:this.getWidth(c),height:this.getHeight(c)}},repaint:function(){var c=this.dom;this.addClass("x-repaint");setTimeout(function(){Ext.fly(c).removeClass("x-repaint")},1);return this},unselectable:function(){this.dom.unselectable="on";return this.swallowEvent("selectstart",true).applyStyles("-moz-user-select:none;-khtml-user-select:none;").addClass("x-unselectable")},getMargins:function(d){var e=this,c,g={t:"top",l:"left",r:"right",b:"bottom"},h={};if(!d){for(c in e.margins)h[g[c]]=parseFloat(e.getStyle(e.margins[c]))||0;return h}else return e.addStyles.call(e,d,e.margins)}}}());(function(){var a=Ext.lib.Dom,b="left",g="right",d="top",i="bottom",h="position",c="static",e="relative",j="auto",k="z-index";Ext.Element.addMethods({getX:function(){return a.getX(this.dom)},getY:function(){return a.getY(this.dom)},getXY:function(){return a.getXY(this.dom)},getOffsetsTo:function(l){var n=this.getXY(),m=Ext.fly(l,"_internal").getXY();return[n[0]-m[0],n[1]-m[1]]},setX:function(l,m){return this.setXY([l,this.getY()],this.animTest(arguments,m,1))},setY:function(m,l){return this.setXY([this.getX(),m],this.animTest(arguments,l,1))},setLeft:function(l){this.setStyle(b,this.addUnits(l));return this},setTop:function(l){this.setStyle(d,this.addUnits(l));return this},setRight:function(l){this.setStyle(g,this.addUnits(l));return this},setBottom:function(l){this.setStyle(i,this.addUnits(l));return this},setXY:function(n,l){var m=this;if(!l||!m.anim)a.setXY(m.dom,n);else m.anim({points:{to:n}},m.preanim(arguments,1),"motion");return m},setLocation:function(l,n,m){return this.setXY([l,n],this.animTest(arguments,m,2))},moveTo:function(l,n,m){return this.setXY([l,n],this.animTest(arguments,m,2))},getLeft:function(l){return!l?this.getX():parseInt(this.getStyle(b),10)||0},getRight:function(l){var m=this;return!l?m.getX()+m.getWidth():m.getLeft(true)+m.getWidth()||0},getTop:function(l){return!l?this.getY():parseInt(this.getStyle(d),10)||0},getBottom:function(l){var m=this;return!l?m.getY()+m.getHeight():m.getTop(true)+m.getHeight()||0},position:function(p,o,l,n){var m=this;if(!p&&m.isStyle(h,c))m.setStyle(h,e);else if(p)m.setStyle(h,p);if(o)m.setStyle(k,o);if(l||n)m.setXY([l||false,n||false])},clearPositioning:function(l){l=l||"";this.setStyle({left:l,right:l,top:l,bottom:l,"z-index":"",position:c});return this},getPositioning:function(){var m=this.getStyle(b);var n=this.getStyle(d);return{position:this.getStyle(h),left:m,right:m?"":this.getStyle(g),top:n,bottom:n?"":this.getStyle(i),"z-index":this.getStyle(k)}},setPositioning:function(l){var n=this,m=n.dom.style;n.setStyle(l);if(l.right==j)m.right="";if(l.bottom==j)m.bottom="";return n},translatePoints:function(m,u){u=isNaN(m[1])?u:m[1];m=isNaN(m[0])?m:m[0];var q=this,r=q.isStyle(h,e),s=q.getXY(),n=parseInt(q.getStyle(b),10),p=parseInt(q.getStyle(d),10);n=!isNaN(n)?n:r?0:q.dom.offsetLeft;p=!isNaN(p)?p:r?0:q.dom.offsetTop;return{left:m-s[0]+n,top:u-s[1]+p}},animTest:function(m,l,n){return!!l&&this.preanim?this.preanim(m,n):false}})})();Ext.Element.addMethods({setBox:function(e,g,b){var d=this,a=e.width,c=e.height;if(g&&!d.autoBoxAdjust&&!d.isBorderBox()){a-=d.getBorderWidth("lr")+d.getPadding("lr");c-=d.getBorderWidth("tb")+d.getPadding("tb")}d.setBounds(e.x,e.y,a,c,d.animTest.call(d,arguments,b,2));return d},getBox:function(j,p){var m=this,v,e,o,d=m.getBorderWidth,q=m.getPadding,g,a,u,n;if(!p)v=m.getXY();else{e=parseInt(m.getStyle("left"),10)||0;o=parseInt(m.getStyle("top"),10)||0;v=[e,o]}var c=m.dom,s=c.offsetWidth,i=c.offsetHeight,k;if(!j)k={x:v[0],y:v[1],0:v[0],1:v[1],width:s,height:i};else{g=d.call(m,"l")+q.call(m,"l");a=d.call(m,"r")+q.call(m,"r");u=d.call(m,"t")+q.call(m,"t");n=d.call(m,"b")+q.call(m,"b");k={x:v[0]+g,y:v[1]+u,0:v[0]+g,1:v[1]+u,width:s-(g+a),height:i-(u+n)}}k.right=k.x+k.width;k.bottom=k.y+k.height;return k},move:function(j,b,c){var g=this,m=g.getXY(),k=m[0],i=m[1],d=[k-b,i],l=[k+b,i],h=[k,i-b],a=[k,i+b],e={l:d,left:d,r:l,right:l,t:h,top:h,up:h,b:a,bottom:a,down:a};j=j.toLowerCase();g.moveTo(e[j][0],e[j][1],g.animTest.call(g,arguments,c,2))},setLeftTop:function(d,c){var b=this,a=b.dom.style;a.left=b.addUnits(d);a.top=b.addUnits(c);return b},getRegion:function(){return Ext.lib.Dom.getRegion(this.dom)},setBounds:function(b,g,d,a,c){var e=this;if(!c||!e.anim){e.setSize(d,a);e.setLocation(b,g)}else e.anim({points:{to:[b,g]},width:{to:e.adjustWidth(d)},height:{to:e.adjustHeight(a)}},e.preanim(arguments,4),"motion");return e},setRegion:function(b,a){return this.setBounds(b.left,b.top,b.right-b.left,b.bottom-b.top,this.animTest.call(this,arguments,a,1))}});Ext.Element.addMethods({isScrollable:function(){var a=this.dom;return a.scrollHeight>a.clientHeight||a.scrollWidth>a.clientWidth},scrollTo:function(a,b){this.dom["scroll"+(/top/i.test(a)?"Top":"Left")]=b;return this},getScroll:function(){var i=this.dom,h=document,a=h.body,c=h.documentElement,b,g,e;if(i==h||i==a){if(Ext.isIE&&Ext.isStrict){b=c.scrollLeft;g=c.scrollTop}else{b=window.pageXOffset;g=window.pageYOffset}e={left:b||(a?a.scrollLeft:0),top:g||(a?a.scrollTop:0)}}else e={left:i.scrollLeft,top:i.scrollTop};return e}});Ext.Element.addMethods({scrollTo:function(b,d,a){var e=/top/i.test(b),c=this,g=c.dom,h;if(!a||!c.anim)h="scroll"+(e?"Top":"Left"),g[h]=d;else h="scroll"+(e?"Left":"Top"),c.anim({scroll:{to:e?[g[h],d]:[d,g[h]]}},c.preanim(arguments,2),"scroll");return c},scrollIntoView:function(e,i){var p=Ext.getDom(e)||Ext.getBody().dom,h=this.dom,g=this.getOffsetsTo(p),k=g[0]+p.scrollLeft,u=g[1]+p.scrollTop,q=u+h.offsetHeight,d=k+h.offsetWidth,a=p.clientHeight,m=parseInt(p.scrollTop,10),s=parseInt(p.scrollLeft,10),j=m+a,n=s+p.clientWidth;if(h.offsetHeight>a||u<m)p.scrollTop=u;else if(q>j)p.scrollTop=q-a;p.scrollTop=p.scrollTop;if(i!==false){if(h.offsetWidth>p.clientWidth||k<s)p.scrollLeft=k;else if(d>n)p.scrollLeft=d-p.clientWidth;p.scrollLeft=p.scrollLeft}return this},scrollChildIntoView:function(b,a){Ext.fly(b,"_scrollChildIntoView").scrollIntoView(this,a)},scroll:function(m,b,d){if(!this.isScrollable())return;var e=this.dom,g=e.scrollLeft,p=e.scrollTop,n=e.scrollWidth,k=e.scrollHeight,i=e.clientWidth,a=e.clientHeight,c=false,o,j={l:Math.min(g+b,n-i),r:o=Math.max(g-b,0),t:Math.max(p-b,0),b:Math.min(p+b,k-a)};j.d=j.b;j.u=j.t;m=m.substr(0,1);if((o=j[m])>-1){c=true;this.scrollTo(m=="l"||m=="r"?"left":"top",o,this.preanim(arguments,2))}return c}});Ext.Element.VISIBILITY=1;Ext.Element.DISPLAY=2;Ext.Element.addMethods(function(){var h="visibility",d="display",b="hidden",k="offsets",j="none",a="originalDisplay",c="visibilityMode",e=Ext.Element.DISPLAY,g=Ext.Element.data,i=function(n){var m=g(n,a);if(m===undefined)g(n,a,m="");return m},l=function(o){var n=g(o,c);if(n===undefined)g(o,c,n=1);return n};return{originalDisplay:"",visibilityMode:1,setVisibilityMode:function(m){g(this.dom,c,m);return this},animate:function(n,p,o,q,m){this.anim(n,{duration:p,callback:o,easing:q},m);return this},anim:function(p,q,n,s,o,m){n=n||"run";q=q||{};var r=this,t=Ext.lib.Anim[n](r.dom,p,q.duration||s||.35,q.easing||o||"easeOut",function(){if(m)m.call(r);if(q.callback)q.callback.call(q.scope||r,r,q)},r);q.anim=t;return t},preanim:function(m,n){return!m[n]?false:typeof m[n]=="object"?m[n]:{duration:m[n+1],callback:m[n+2],easing:m[n+3]}},isVisible:function(){return!this.isStyle(h,b)&&!this.isStyle(d,j)},setVisible:function(r,o){var p=this,n,m,s,q=p.dom;if(typeof o=="string"){n=o==d;m=o==h;s=o==k;o=false}else{n=l(this.dom)==e;m=!n}if(!o||!p.anim)if(n)p.setDisplayed(r);else if(s)if(!r){p.hideModeStyles={position:p.getStyle("position"),top:p.getStyle("top"),left:p.getStyle("left")};p.applyStyles({position:"absolute",top:"-10000px",left:"-10000px"})}else p.applyStyles(p.hideModeStyles||{position:"",top:"",left:""});else{p.fixDisplay();q.style.visibility=r?"visible":b}else{if(r){p.setOpacity(.01);p.setVisible(true)}p.anim({opacity:{to:r?1:0}},p.preanim(arguments,1),null,.35,"easeIn",function(){if(!r){q.style[n?d:h]=n?j:b;Ext.fly(q).setOpacity(1)}})}return p},toggle:function(m){var n=this;n.setVisible(!n.isVisible(),n.preanim(arguments,0));return n},setDisplayed:function(m){if(typeof m=="boolean")m=m?i(this.dom):j;this.setStyle(d,m);return this},fixDisplay:function(){var m=this;if(m.isStyle(d,j)){m.setStyle(h,b);m.setStyle(d,i(this.dom));if(m.isStyle(d,j))m.setStyle(d,"block")}},hide:function(m){if(typeof m=="string"){this.setVisible(false,m);return this}this.setVisible(false,this.preanim(arguments,0));return this},show:function(m){if(typeof m=="string"){this.setVisible(true,m);return this}this.setVisible(true,this.preanim(arguments,0));return this}}}());Ext.Element.addMethods(function(){var d="visibility",b="display",a="hidden",h="none",c="x-masked",g="x-masked-relative",e=Ext.Element.data;return{isVisible:function(i){var j=!this.isStyle(d,a)&&!this.isStyle(b,h),k=this.dom.parentNode;if(i!==true||!j)return j;while(k&&!/^body/i.test(k.tagName)){if(!Ext.fly(k,"_isVisible").isVisible())return false;k=k.parentNode}return true},isDisplayed:function(){return!this.isStyle(b,h)},enableDisplayMode:function(i){this.setVisibilityMode(Ext.Element.DISPLAY);if(!Ext.isEmpty(i))e(this.dom,"originalDisplay",i);return this},mask:function(j,n){var p=this,l=p.dom,o=Ext.DomHelper,m="ext-el-mask-msg",i,q;if(!/^body/i.test(l.tagName)&&p.getStyle("position")=="static")p.addClass(g);if(i=e(l,"maskMsg"))i.remove();if(i=e(l,"mask"))i.remove();q=o.append(l,{cls:"ext-el-mask"},true);e(l,"mask",q);p.addClass(c);q.setDisplayed(true);if(typeof j=="string"){var k=o.append(l,{cls:m,cn:{tag:"div"}},true);e(l,"maskMsg",k);k.dom.className=n?m+" "+n:m;k.dom.firstChild.innerHTML=j;k.setDisplayed(true);k.center(p)}if(Ext.isIE&&!(Ext.isIE7&&Ext.isStrict)&&p.getStyle("height")=="auto")q.setSize(undefined,p.getHeight());return q},unmask:function(){var k=this,l=k.dom,i=e(l,"mask"),j=e(l,"maskMsg");if(i){if(j){j.remove();e(l,"maskMsg",undefined)}i.remove();e(l,"mask",undefined)}k.removeClass([c,g])},isMasked:function(){var i=e(this.dom,"mask");return i&&i.isVisible()},createShim:function(){var i=document.createElement("iframe"),j;i.frameBorder="0";i.className="ext-shim";i.src=Ext.SSL_SECURE_URL;j=Ext.get(this.dom.parentNode.insertBefore(i,this.dom));j.autoBoxAdjust=false;return j}}}());Ext.Element.addMethods({addKeyListener:function(b,d,c){var a;if(typeof b!="object"||Ext.isArray(b))a={key:b,fn:d,scope:c};else a={key:b.key,shift:b.shift,ctrl:b.ctrl,alt:b.alt,fn:d,scope:c};return new Ext.KeyMap(this,a)},addKeyMap:function(a){return new Ext.KeyMap(this,a)}});(function(){var y=null,A=undefined,k=true,t=false,j="setX",h="setY",a="setXY",n="left",l="bottom",s="top",m="right",q="height",g="width",i="points",w="hidden",z="absolute",u="visible",e="motion",o="position",r="easeOut",d=new Ext.Element.Flyweight,v={},x=function(B){return B||{}},p=function(B){d.dom=B;d.id=Ext.id(B);return d},c=function(B){if(!v[B])v[B]=[];return v[B]},b=function(C,B){v[C]=B};Ext.enableFx=k;Ext.Fx={switchStatements:function(C,D,B){return D.apply(this,B[C])},slideIn:function(H,E){E=x(E);var J=this,G=J.dom,M=G.style,O,B,L,D,C,I,N,K,F;H=H||"t";J.queueFx(E,function(){O=p(G).getXY();p(G).fixDisplay();B=p(G).getFxRestore();L={x:O[0],y:O[1],0:O[0],1:O[1],width:G.offsetWidth,height:G.offsetHeight};L.right=L.x+L.width;L.bottom=L.y+L.height;p(G).setWidth(L.width).setHeight(L.height);D=p(G).fxWrap(B.pos,E,w);M.visibility=u;M.position=z;function P(){p(G).fxUnwrap(D,B.pos,E);M.width=B.width;M.height=B.height;p(G).afterFx(E)}N={to:[L.x,L.y]};K={to:L.width};F={to:L.height};function Q(U,R,V,S,X,Z,ac,ab,aa,W,T){var Y={};p(U).setWidth(V).setHeight(S);if(p(U)[X])p(U)[X](Z);R[ac]=R[ab]="0";if(aa)Y.width=aa;if(W)Y.height=W;if(T)Y.points=T;return Y}I=p(G).switchStatements(H.toLowerCase(),Q,{t:[D,M,L.width,0,y,y,n,l,y,F,y],l:[D,M,0,L.height,y,y,m,s,K,y,y],r:[D,M,L.width,L.height,j,L.right,n,s,y,y,N],b:[D,M,L.width,L.height,h,L.bottom,n,s,y,F,N],tl:[D,M,0,0,y,y,m,l,K,F,N],bl:[D,M,0,0,h,L.y+L.height,m,s,K,F,N],br:[D,M,0,0,a,[L.right,L.bottom],n,s,K,F,N],tr:[D,M,0,0,j,L.x+L.width,n,l,K,F,N]});M.visibility=u;p(D).show();arguments.callee.anim=p(D).fxanim(I,E,e,.5,r,P)});return J},slideOut:function(F,D){D=x(D);var H=this,E=H.dom,K=E.style,L=H.getXY(),C,B,I,J,G={to:0};F=F||"t";H.queueFx(D,function(){B=p(E).getFxRestore();I={x:L[0],y:L[1],0:L[0],1:L[1],width:E.offsetWidth,height:E.offsetHeight};I.right=I.x+I.width;I.bottom=I.y+I.height;p(E).setWidth(I.width).setHeight(I.height);C=p(E).fxWrap(B.pos,D,u);K.visibility=u;K.position=z;p(C).setWidth(I.width).setHeight(I.height);function M(){D.useDisplay?p(E).setDisplayed(t):p(E).hide();p(E).fxUnwrap(C,B.pos,D);K.width=B.width;K.height=B.height;p(E).afterFx(D)}function N(O,W,U,X,S,V,R,T,Q){var P={};O[W]=O[U]="0";P[X]=S;if(V)P[V]=R;if(T)P[T]=Q;return P}J=p(E).switchStatements(F.toLowerCase(),N,{t:[K,n,l,q,G],l:[K,m,s,g,G],r:[K,n,s,g,G,i,{to:[I.right,I.y]}],b:[K,n,s,q,G,i,{to:[I.x,I.bottom]}],tl:[K,m,l,g,G,q,G],bl:[K,m,s,g,G,q,G,i,{to:[I.x,I.bottom]}],br:[K,n,s,g,G,q,G,i,{to:[I.x+I.width,I.bottom]}],tr:[K,n,l,g,G,q,G,i,{to:[I.right,I.y]}]});arguments.callee.anim=p(C).fxanim(J,D,e,.5,r,M)});return H},puff:function(H){H=x(H);var F=this,G=F.dom,C=G.style,D,B,E;F.queueFx(H,function(){D=p(G).getWidth();B=p(G).getHeight();p(G).clearOpacity();p(G).show();E=p(G).getFxRestore();function I(){H.useDisplay?p(G).setDisplayed(t):p(G).hide();p(G).clearOpacity();p(G).setPositioning(E.pos);C.width=E.width;C.height=E.height;C.fontSize="";p(G).afterFx(H)}arguments.callee.anim=p(G).fxanim({width:{to:p(G).adjustWidth(D*2)},height:{to:p(G).adjustHeight(B*2)},points:{by:[-D*.5,-B*.5]},opacity:{to:0},fontSize:{to:200,unit:"%"}},H,e,.5,r,I)});return F},switchOff:function(F){F=x(F);var D=this,E=D.dom,B=E.style,C;D.queueFx(F,function(){p(E).clearOpacity();p(E).clip();C=p(E).getFxRestore();function G(){F.useDisplay?p(E).setDisplayed(t):p(E).hide();p(E).clearOpacity();p(E).setPositioning(C.pos);B.width=C.width;B.height=C.height;p(E).afterFx(F)}p(E).fxanim({opacity:{to:.3}},y,y,.1,y,function(){p(E).clearOpacity();(function(){p(E).fxanim({height:{to:1},points:{by:[0,p(E).getHeight()*.5]}},F,e,.3,"easeIn",G)}).defer(100)})});return D},highlight:function(D,H){H=x(H);var F=this,G=F.dom,B=H.attr||"backgroundColor",C={},E;F.queueFx(H,function(){p(G).clearOpacity();p(G).show();function I(){G.style[B]=E;p(G).afterFx(H)}E=G.style[B];C[B]={from:D||"ffff9c",to:H.endColor||p(G).getColor(B)||"ffffff"};arguments.callee.anim=p(G).fxanim(C,H,"color",1,"easeIn",I)});return F},frame:function(B,E,H){H=x(H);var D=this,G=D.dom,C,F;D.queueFx(H,function(){B=B||"#C3DAF9";if(B.length==6)B="#"+B;E=E||1;p(G).show();var L=p(G).getXY(),J={x:L[0],y:L[1],0:L[0],1:L[1],width:G.offsetWidth,height:G.offsetHeight},I=function(){C=p(document.body||document.documentElement).createChild({style:{position:z,"z-index":35e3,border:"0px solid "+B}});return C.queueFx({},K)};arguments.callee.anim={isAnimated:true,stop:function(){E=0;C.stopFx()}};function K(){var M=Ext.isBorderBox?2:1;F=C.anim({top:{from:J.y,to:J.y-20},left:{from:J.x,to:J.x-20},borderWidth:{from:0,to:10},opacity:{from:1,to:0},height:{from:J.height,to:J.height+20*M},width:{from:J.width,to:J.width+20*M}},{duration:H.duration||1,callback:function(){C.remove();--E>0?I():p(G).afterFx(H)}});arguments.callee.anim={isAnimated:true,stop:function(){F.stop()}}}I()});return D},pause:function(D){var C=this.dom,B;this.queueFx({},function(){B=setTimeout(function(){p(C).afterFx({})},D*1e3);arguments.callee.anim={isAnimated:true,stop:function(){clearTimeout(B);p(C).afterFx({})}}});return this},fadeIn:function(D){D=x(D);var B=this,C=B.dom,E=D.endOpacity||1;B.queueFx(D,function(){p(C).setOpacity(0);p(C).fixDisplay();C.style.visibility=u;arguments.callee.anim=p(C).fxanim({opacity:{to:E}},D,y,.5,r,function(){if(E==1)p(C).clearOpacity();p(C).afterFx(D)})});return B},fadeOut:function(E){E=x(E);var C=this,D=C.dom,B=D.style,F=E.endOpacity||0;C.queueFx(E,function(){arguments.callee.anim=p(D).fxanim({opacity:{to:F}},E,y,.5,r,function(){if(F==0){Ext.Element.data(D,"visibilityMode")==Ext.Element.DISPLAY||E.useDisplay?B.display="none":B.visibility=w;p(D).clearOpacity()}p(D).afterFx(E)})});return C},scale:function(B,C,D){this.shift(Ext.apply({},D,{width:B,height:C}));return this},shift:function(D){D=x(D);var C=this.dom,B={};this.queueFx(D,function(){for(var E in D)if(D[E]!=A)B[E]={to:D[E]};B.width?B.width.to=p(C).adjustWidth(D.width):B;B.height?B.height.to=p(C).adjustWidth(D.height):B;if(B.x||B.y||B.xy)B.points=B.xy||{to:[B.x?B.x.to:p(C).getX(),B.y?B.y.to:p(C).getY()]};arguments.callee.anim=p(C).fxanim(B,D,e,.35,r,function(){p(C).afterFx(D)})});return this},ghost:function(E,C){C=x(C);var G=this,D=G.dom,J=D.style,H={opacity:{to:0},points:{}},K=H.points,B,I,F;E=E||"b";G.queueFx(C,function(){B=p(D).getFxRestore();I=p(D).getWidth();F=p(D).getHeight();function L(){C.useDisplay?p(D).setDisplayed(t):p(D).hide();p(D).clearOpacity();p(D).setPositioning(B.pos);J.width=B.width;J.height=B.height;p(D).afterFx(C)}K.by=p(D).switchStatements(E.toLowerCase(),function(N,M){return[N,M]},{t:[0,-F],l:[-I,0],r:[I,0],b:[0,F],tl:[-I,-F],bl:[-I,F],br:[I,F],tr:[I,-F]});arguments.callee.anim=p(D).fxanim(H,C,e,.5,r,L)});return G},syncFx:function(){var B=this;B.fxDefaults=Ext.apply(B.fxDefaults||{},{block:t,concurrent:k,stopFx:t});return B},sequenceFx:function(){var B=this;B.fxDefaults=Ext.apply(B.fxDefaults||{},{block:t,concurrent:t,stopFx:t});return B},nextFx:function(){var B=c(this.dom.id)[0];if(B)B.call(this)},hasActiveFx:function(){return c(this.dom.id)[0]},stopFx:function(B){var C=this,E=C.dom.id;if(C.hasActiveFx()){var D=c(E)[0];if(D&&D.anim)if(D.anim.isAnimated){b(E,[D]);D.anim.stop(B!==undefined?B:k)}else b(E,[])}return C},beforeFx:function(B){if(this.hasActiveFx()&&!B.concurrent){if(B.stopFx){this.stopFx();return k}return t}return k},hasFxBlock:function(){var B=c(this.dom.id);return B&&B[0]&&B[0].block},queueFx:function(E,B){var C=p(this.dom);if(!C.hasFxBlock()){Ext.applyIf(E,C.fxDefaults);if(!E.concurrent){var D=C.beforeFx(E);B.block=E.block;c(C.dom.id).push(B);if(D)C.nextFx()}else B.call(C)}return C},fxWrap:function(H,F,D){var E=this.dom,C,B;if(!F.wrap||!(C=Ext.getDom(F.wrap))){if(F.fixPosition)B=p(E).getXY();var G=document.createElement("div");G.style.visibility=D;C=E.parentNode.insertBefore(G,E);p(C).setPositioning(H);if(p(C).isStyle(o,"static"))p(C).position("relative");p(E).clearPositioning("auto");p(C).clip();C.appendChild(E);if(B)p(C).setXY(B)}return C},fxUnwrap:function(C,F,E){var D=this.dom;p(D).clearPositioning();p(D).setPositioning(F);if(!E.wrap){var B=p(C).dom.parentNode;B.insertBefore(D,C);p(C).remove()}},getFxRestore:function(){var B=this.dom.style;return{pos:this.getPositioning(),width:B.width,height:B.height}},afterFx:function(C){var B=this.dom,D=B.id;if(C.afterStyle)p(B).setStyle(C.afterStyle);if(C.afterCls)p(B).addClass(C.afterCls);if(C.remove==k)p(B).remove();if(C.callback)C.callback.call(C.scope,p(B));if(!C.concurrent){c(D).shift();p(B).nextFx()}},fxanim:function(E,F,C,G,D,B){C=C||"run";F=F||{};var H=Ext.lib.Anim[C](this.dom,E,F.duration||G||.35,F.easing||D||r,B,this);F.anim=H;return H}};Ext.Fx.resize=Ext.Fx.scale;Ext.Element.addMethods(Ext.Fx)})();Ext.CompositeElementLite=function(b,a){this.elements=[];this.add(b,a);this.el=new Ext.Element.Flyweight};Ext.CompositeElementLite.prototype={isComposite:true,getElement:function(a){var b=this.el;b.dom=a;b.id=a.id;return b},transformElement:function(a){return Ext.getDom(a)},getCount:function(){return this.elements.length},add:function(d,b){var e=this,g=e.elements;if(!d)return this;if(typeof d=="string")d=Ext.Element.selectorFunction(d,b);else if(d.isComposite)d=d.elements;else if(!Ext.isIterable(d))d=[d];for(var c=0,a=d.length;c<a;++c)g.push(e.transformElement(d[c]));return e},invoke:function(g,b){var h=this,d=h.elements,a=d.length,j,c;for(c=0;c<a;c++){j=d[c];if(j)Ext.Element.prototype[g].apply(h.getElement(j),b)}return h},item:function(b){var d=this,c=d.elements[b],a=null;if(c)a=d.getElement(c);return a},addListener:function(b,j,h,g){var d=this.elements,a=d.length,c,k;for(c=0;c<a;c++){k=d[c];if(k)Ext.EventManager.on(k,b,j,h||k,g)}return this},each:function(g,d){var h=this,c=h.elements,a=c.length,b,j;for(b=0;b<a;b++){j=c[b];if(j){j=this.getElement(j);if(g.call(d||j,j,h,b)===false)break}}return h},fill:function(a){var b=this;b.elements=[];b.add(a);return b},filter:function(a){var b=[],d=this,e=d.elements,c=Ext.isFunction(a)?a:function(g){return g.is(a)};d.each(function(j,g,h){if(c(j,h)!==false)b[b.length]=d.transformElement(j)});d.elements=b;return d},indexOf:function(a){return this.elements.indexOf(this.transformElement(a))},replaceElement:function(e,c,a){var b=!isNaN(e)?e:this.indexOf(e),g;if(b>-1){c=Ext.getDom(c);if(a){g=this.elements[b];g.parentNode.insertBefore(c,g);Ext.removeNode(g)}this.elements.splice(b,1,c)}return this},clear:function(){this.elements=[]}};Ext.CompositeElementLite.prototype.on=Ext.CompositeElementLite.prototype.addListener;(function(){var c,b=Ext.Element.prototype,a=Ext.CompositeElementLite.prototype;for(c in b)if(Ext.isFunction(b[c]))(function(d){a[d]=a[d]||function(){return this.invoke(d,arguments)}}).call(a,c)})();if(Ext.DomQuery)Ext.Element.selectorFunction=Ext.DomQuery.select;Ext.Element.select=function(a,b){var c;if(typeof a=="string")c=Ext.Element.selectorFunction(a,b);else if(a.length!==undefined)c=a;else throw"Invalid selector";return new Ext.CompositeElementLite(c)};Ext.select=Ext.Element.select;Ext.apply(Ext.CompositeElementLite.prototype,{addElements:function(c,a){if(!c)return this;if(typeof c=="string")c=Ext.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(d,e){var c=this,a=this.elements,b;Ext.each(d,function(g){if(b=a[g]||a[g=c.indexOf(g)]){if(e)if(b.dom)b.remove();else Ext.removeNode(b);a.splice(g,1)}});return this}});Ext.CompositeElement=Ext.extend(Ext.CompositeElementLite,{constructor:function(b,a){this.elements=[];this.add(b,a)},getElement:function(a){return a},transformElement:function(a){return Ext.get(a)}});Ext.Element.select=function(a,d,b){var c;if(typeof a=="string")c=Ext.Element.selectorFunction(a,b);else if(a.length!==undefined)c=a;else throw"Invalid selector";return d===true?new Ext.CompositeElement(c):new Ext.CompositeElementLite(c)};Ext.select=Ext.Element.select;(function(){var b="beforerequest",e="requestcomplete",d="requestexception",h=undefined,c="load",i="POST",a="GET",g=window;Ext.data.Connection=function(j){Ext.apply(this,j);this.addEvents(b,e,d);Ext.data.Connection.superclass.constructor.call(this)};Ext.extend(Ext.data.Connection,Ext.util.Observable,{timeout:3e4,autoAbort:false,disableCaching:true,disableCachingParam:"_dc",request:function(n){var s=this;if(s.fireEvent(b,s,n)){if(n.el){if(!Ext.isEmpty(n.indicatorText))s.indicatorText='<div class="loading-indicator">'+n.indicatorText+"</div>";if(s.indicatorText)Ext.getDom(n.el).innerHTML=s.indicatorText;n.success=(Ext.isFunction(n.success)?n.success:function(){}).createInterceptor(function(o){Ext.getDom(n.el).innerHTML=o.responseText})}var l=n.params,k=n.url||s.url,j,q={success:s.handleResponse,failure:s.handleFailure,scope:s,argument:{options:n},timeout:n.timeout||s.timeout},m,t;if(Ext.isFunction(l))l=l.call(n.scope||g,n);l=Ext.urlEncode(s.extraParams,Ext.isObject(l)?Ext.urlEncode(l):l);if(Ext.isFunction(k))k=k.call(n.scope||g,n);if(m=Ext.getDom(n.form)){k=k||m.action;if(n.isUpload||/multipart\/form-data/i.test(m.getAttribute("enctype")))return s.doFormUpload.call(s,n,l,k);t=Ext.lib.Ajax.serializeForm(m);l=l?l+"&"+t:t}j=n.method||s.method||(l||n.xmlData||n.jsonData?i:a);if(j===a&&s.disableCaching&&n.disableCaching!==false||n.disableCaching===true){var r=n.disableCachingParam||s.disableCachingParam;k=Ext.urlAppend(k,r+"="+(new Date).getTime())}n.headers=Ext.apply(n.headers||{},s.defaultHeaders||{});if(n.autoAbort===true||s.autoAbort)s.abort();if((j==a||n.xmlData||n.jsonData)&&l){k=Ext.urlAppend(k,l);l=""}return s.transId=Ext.lib.Ajax.request(j,k,q,l,n)}else return n.callback?n.callback.apply(n.scope,[n,h,h]):null},isLoading:function(j){return j?Ext.lib.Ajax.isCallInProgress(j):!!this.transId},abort:function(j){if(j||this.isLoading())Ext.lib.Ajax.abort(j||this.transId)},handleResponse:function(j){this.transId=false;var k=j.argument.options;j.argument=k?k.argument:null;this.fireEvent(e,this,j,k);if(k.success)k.success.call(k.scope,j,k);if(k.callback)k.callback.call(k.scope,k,true,j)},handleFailure:function(j,l){this.transId=false;var k=j.argument.options;j.argument=k?k.argument:null;this.fireEvent(d,this,j,k,l);if(k.failure)k.failure.call(k.scope,j,k);if(k.callback)k.callback.call(k.scope,k,false,j)},doFormUpload:function(q,j,k){var l=Ext.id(),v=document,r=v.createElement("iframe"),m=Ext.getDom(q.form),u=[],t,p="multipart/form-data",n={target:m.target,method:m.method,encoding:m.encoding,enctype:m.enctype,action:m.action};Ext.fly(r).set({id:l,name:l,cls:"x-hidden",src:Ext.SSL_SECURE_URL});v.body.appendChild(r);if(Ext.isIE)document.frames[l].name=l;Ext.fly(m).set({target:l,method:i,enctype:p,encoding:p,action:k||n.action});Ext.iterate(Ext.urlDecode(j,false),function(w,o){t=v.createElement("input");Ext.fly(t).set({type:"hidden",value:o,name:w});m.appendChild(t);u.push(t)});function s(){var x=this,w={responseText:"",responseXML:null,argument:q.argument},A,z;try{A=r.contentWindow.document||r.contentDocument||g.frames[l].document;if(A){if(A.body)if(/textarea/i.test((z=A.body.firstChild||{}).tagName))w.responseText=z.value;else w.responseText=A.body.innerHTML;w.responseXML=A.XMLDocument||A}}catch(y){}Ext.EventManager.removeListener(r,c,s,x);x.fireEvent(e,x,w,q);function o(D,C,B){if(Ext.isFunction(D))D.apply(C,B)}o(q.success,q.scope,[w,q]);o(q.callback,q.scope,[q,true,w]);if(!x.debugUploads)setTimeout(function(){Ext.removeNode(r)},100)}Ext.EventManager.on(r,c,s,this);m.submit();Ext.fly(m).set(n);Ext.each(u,function(o){Ext.removeNode(o)})}})})();Ext.Ajax=new Ext.data.Connection({autoAbort:false,serializeForm:function(a){return Ext.lib.Ajax.serializeForm(a)}});Ext.UpdateManager=Ext.Updater=Ext.extend(Ext.util.Observable,function(){var b="beforeupdate",d="update",c="failure";function a(h){var i=this;i.transaction=null;if(h.argument.form&&h.argument.reset)try{h.argument.form.reset()}catch(j){}if(i.loadScripts)i.renderer.render(i.el,h,i,g.createDelegate(i,[h]));else{i.renderer.render(i.el,h,i);g.call(i,h)}}function g(h,i,j){this.fireEvent(i||d,this.el,h);if(Ext.isFunction(h.argument.callback))h.argument.callback.call(h.argument.scope,this.el,Ext.isEmpty(j)?true:false,h,h.argument.options)}function e(h){g.call(this,h,c,!!(this.transaction=null))}return{constructor:function(i,h){var j=this;i=Ext.get(i);if(!h&&i.updateManager)return i.updateManager;j.el=i;j.defaultUrl=null;j.addEvents(b,d,c);Ext.apply(j,Ext.Updater.defaults);j.transaction=null;j.refreshDelegate=j.refresh.createDelegate(j);j.updateDelegate=j.update.createDelegate(j);j.formUpdateDelegate=(j.formUpdate||function(){}).createDelegate(j);j.renderer=j.renderer||j.getDefaultRenderer();Ext.Updater.superclass.constructor.call(j)},setRenderer:function(h){this.renderer=h},getRenderer:function(){return this.renderer},getDefaultRenderer:function(){return new Ext.Updater.BasicRenderer},setDefaultUrl:function(h){this.defaultUrl=h},getEl:function(){return this.el},update:function(i,n,p,l){var k=this,h,j;if(k.fireEvent(b,k.el,i,n)!==false){if(Ext.isObject(i)){h=i;i=h.url;n=n||h.params;p=p||h.callback;l=l||h.discardUrl;j=h.scope;if(!Ext.isEmpty(h.nocache))k.disableCaching=h.nocache;if(!Ext.isEmpty(h.text))k.indicatorText='<div class="loading-indicator">'+h.text+"</div>";if(!Ext.isEmpty(h.scripts))k.loadScripts=h.scripts;if(!Ext.isEmpty(h.timeout))k.timeout=h.timeout}k.showLoading();if(!l)k.defaultUrl=i;if(Ext.isFunction(i))i=i.call(k);var m=Ext.apply({},{url:i,params:Ext.isFunction(n)&&j?n.createDelegate(j):n,success:a,failure:e,scope:k,callback:undefined,timeout:k.timeout*1e3,disableCaching:k.disableCaching,argument:{options:h,url:i,form:null,callback:p,scope:j||window,params:n}},h);k.transaction=Ext.Ajax.request(m)}},formUpdate:function(k,h,j,l){var i=this;if(i.fireEvent(b,i.el,k,h)!==false){if(Ext.isFunction(h))h=h.call(i);k=Ext.getDom(k);i.transaction=Ext.Ajax.request({form:k,url:h,success:a,failure:e,scope:i,timeout:i.timeout*1e3,argument:{url:h,form:k,callback:l,reset:j}});i.showLoading.defer(1,i)}},startAutoRefresh:function(i,j,l,m,h){var k=this;if(h)k.update(j||k.defaultUrl,l,m,true);if(k.autoRefreshProcId)clearInterval(k.autoRefreshProcId);k.autoRefreshProcId=setInterval(k.update.createDelegate(k,[j||k.defaultUrl,l,m,true]),i*1e3)},stopAutoRefresh:function(){if(this.autoRefreshProcId){clearInterval(this.autoRefreshProcId);delete this.autoRefreshProcId}},isAutoRefreshing:function(){return!!this.autoRefreshProcId},showLoading:function(){if(this.showLoadIndicator)this.el.dom.innerHTML=this.indicatorText},abort:function(){if(this.transaction)Ext.Ajax.abort(this.transaction)},isUpdating:function(){return this.transaction?Ext.Ajax.isLoading(this.transaction):false},refresh:function(h){if(this.defaultUrl)this.update(this.defaultUrl,null,h,true)}}}());Ext.Updater.defaults={timeout:30,disableCaching:false,showLoadIndicator:true,indicatorText:'<div class="loading-indicator">Loading...</div>',loadScripts:false,sslBlankUrl:Ext.SSL_SECURE_URL};Ext.Updater.updateElement=function(d,c,e,b){var a=Ext.get(d).getUpdater();Ext.apply(a,b);a.update(c,e,b?b.callback:null)};Ext.Updater.BasicRenderer=function(){};Ext.Updater.BasicRenderer.prototype={render:function(c,a,b,d){c.update(a.responseText,b.loadScripts,d)}};(function(){Date.useStrict=false;function b(d){var c=Array.prototype.slice.call(arguments,1);return d.replace(/\{(\d+)\}/g,function(e,g){return c[g]})}Date.formatCodeToRegex=function(d,c){var e=Date.parseCodes[d];if(e){e=typeof e=="function"?e():e;Date.parseCodes[d]=e}return e?Ext.applyIf({c:e.c?b(e.c,c||"{0}"):e.c},e):{g:0,c:null,s:Ext.escapeRe(d)}};var a=Date.formatCodeToRegex;Ext.apply(Date,{parseFunctions:{M$:function(d,c){var e=new RegExp("\\/Date\\(([-+])?(\\d+)(?:[+-]\\d{4})?\\)\\/");var g=(d||"").match(e);return g?new Date(((g[1]||"")+g[2])*1):null}},parseRegexes:[],formatFunctions:{M$: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},getShortMonthName:function(c){return Date.monthNames[c].substring(0,3)},getShortDayName:function(c){return Date.dayNames[c].substring(0,3)},getMonthNumber:function(c){return Date.monthNumbers[c.substring(0,1).toUpperCase()+c.substring(1,3).toLowerCase()]},formatCodes:{d:"String.leftPad(this.getDate(), 2, '0')",D:"Date.getShortDayName(this.getDay())",j:"this.getDate()",l:"Date.dayNames[this.getDay()]",N:"(this.getDay() ? this.getDay() : 7)",S:"this.getSuffix()",w:"this.getDay()",z:"this.getDayOfYear()",W:"String.leftPad(this.getWeekOfYear(), 2, '0')",F:"Date.monthNames[this.getMonth()]",m:"String.leftPad(this.getMonth() + 1, 2, '0')",M:"Date.getShortMonthName(this.getMonth())",n:"(this.getMonth() + 1)",t:"this.getDaysInMonth()",L:"(this.isLeapYear() ? 1 : 0)",o:"(this.getFullYear() + (this.getWeekOfYear() == 1 && this.getMonth() > 0 ? +1 : (this.getWeekOfYear() >= 52 && this.getMonth() < 11 ? -1 : 0)))",Y:"this.getFullYear()",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:"String.leftPad((this.getHours() % 12) ? this.getHours() % 12 : 12, 2, '0')",H:"String.leftPad(this.getHours(), 2, '0')",i:"String.leftPad(this.getMinutes(), 2, '0')",s:"String.leftPad(this.getSeconds(), 2, '0')",u:"String.leftPad(this.getMilliseconds(), 3, '0')",O:"this.getGMTOffset()",P:"this.getGMTOffset(true)",T:"this.getTimezone()",Z:"(this.getTimezoneOffset() * -60)",c:function(){for(var k="Y-m-dTH:i:sP",h=[],g=0,d=k.length;g<d;++g){var j=k.charAt(g);h.push(j=="T"?"'T'":Date.getFormatCode(j))}return h.join(" + ")},U:"Math.round(this.getTime() / 1000)"},isValid:function(o,c,n,k,g,j,e){k=k||0;g=g||0;j=j||0;e=e||0;var l=new Date(o,c-1,n,k,g,j,e);return o==l.getFullYear()&&c==l.getMonth()+1&&n==l.getDate()&&k==l.getHours()&&g==l.getMinutes()&&j==l.getSeconds()&&e==l.getMilliseconds()},parseDate:function(d,g,c){var e=Date.parseFunctions;if(e[g]==null)Date.createParser(g);return e[g](d,Ext.isDefined(c)?c:Date.useStrict)},getFormatCode:function(d){var c=Date.formatCodes[d];if(c){c=typeof c=="function"?c():c;Date.formatCodes[d]=c}return c||"'"+String.escape(d)+"'"},createFormat:function(h){var g=[],c=false,e="";for(var d=0;d<h.length;++d){e=h.charAt(d);if(!c&&e=="\\")c=true;else if(c){c=false;g.push("'"+String.escape(e)+"'")}else g.push(Date.getFormatCode(e))}Date.formatFunctions[h]=new Function("return "+g.join("+"))},createParser:function(){var c=["var dt, y, m, d, h, i, s, ms, o, z, zz, u, v,","def = Date.defaults,","results = String(input).match(Date.parseRegexes[{0}]);","if(results){","{1}","if(u != null){","v = new Date(u * 1000);","}else{","dt = (new Date()).clearTime();","y = Ext.num(y, Ext.num(def.y, dt.getFullYear()));","m = Ext.num(m, Ext.num(def.m - 1, dt.getMonth()));","d = Ext.num(d, Ext.num(def.d, dt.getDate()));","h  = Ext.num(h, Ext.num(def.h, dt.getHours()));","i  = Ext.num(i, Ext.num(def.i, dt.getMinutes()));","s  = Ext.num(s, Ext.num(def.s, dt.getSeconds()));","ms = Ext.num(ms, Ext.num(def.ms, dt.getMilliseconds()));","if(z >= 0 && y >= 0){","v = new Date(y, 0, 1, h, i, s, ms);","v = !strict? v : (strict === true && (z <= 364 || (v.isLeapYear() && z <= 365))? v.add(Date.DAY, z) : null);","}else if(strict === true && !Date.isValid(y, m + 1, d, h, i, s, ms)){","v = null;","}else{","v = new Date(y, m, d, h, i, s, ms);","}","}","}","if(v){","if(zz != null){","v = v.add(Date.SECOND, -v.getTimezoneOffset() * 60 - zz);","}else if(o){","v = v.add(Date.MINUTE, -v.getTimezoneOffset() + (sn == '+'? -1 : 1) * (hr * 60 + mn));","}","}","return v;"].join("\n");return function(m){var e=Date.parseRegexes.length,n=1,g=[],l=[],k=false,d="";for(var j=0;j<m.length;++j){d=m.charAt(j);if(!k&&d=="\\")k=true;else if(k){k=false;l.push(String.escape(d))}else{var h=a(d,n);n+=h.g;l.push(h.s);if(h.g&&h.c)g.push(h.c)}}Date.parseRegexes[e]=new RegExp("^"+l.join("")+"$");Date.parseFunctions[m]=new Function("input","strict",b(c,e,g.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(Date.getShortDayName(d)),++d);;return{g:0,c:null,s:"(?:"+c.join("|")+")"}},l:function(){return{g:0,c:null,s:"(?:"+Date.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(Date.getMonthNumber(results[{0}]), 10);\n",s:"("+Date.monthNames.join("|")+")"}},M:function(){for(var c=[],d=0;d<12;c.push(Date.getShortMonthName(d)),++d);;return Ext.applyIf({s:"("+c.join("|")+")"},a("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("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 > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"},a:{g:1,c:"if (results[{0}] == 'am') {\nif (!h || h == 12) { h = 0; }\n} else { if (!h || h < 12) { h = (h || 0) + 12; }}",s:"(am|pm)"},A:{g:1,c:"if (results[{0}] == 'AM') {\nif (!h || h == 12) { h = 0; }\n} else { if (!h || h < 12) { h = (h || 0) + 12; }}",s:"(AM|PM)"},g:function(){return a("G")},G:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(\\d{1,2})"},h:function(){return a("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 + String.leftPad(hr, 2, '0') + 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 + String.leftPad(hr, 2, '0') + 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("Y",1),a("m",2),a("d",3),a("h",4),a("i",5),a("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("P",8).c,"}else{",a("O",8).c,"}","}"].join("\n")}];for(var g=0,d=c.length;g<d;++g)e.push(c[g].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+)"}}})})();Ext.apply(Date.prototype,{dateFormat:function(a){if(Date.formatFunctions[a]==null)Date.createFormat(a);return Date.formatFunctions[a].call(this)},getTimezone:function(){return this.toString().replace(/^.* (?:\((.*)\)|([A-Z]{1,4})(?:[\-+][0-9]{4})?(?: -?\d+)?)$/,"$1$2").replace(/[^A-Z]/g,"")},getGMTOffset:function(a){return(this.getTimezoneOffset()>0?"-":"+")+String.leftPad(Math.floor(Math.abs(this.getTimezoneOffset())/60),2,"0")+(a?":":"")+String.leftPad(Math.abs(this.getTimezoneOffset()%60),2,"0")},getDayOfYear:function(){var b=0,e=this.clone(),a=this.getMonth(),c;for(c=0,e.setDate(1),e.setMonth(0);c<a;e.setMonth(++c))b+=e.getDaysInMonth();return b+this.getDate()-1},getWeekOfYear:function(){var a=864e5,b=7*a;return function(){var d=Date.UTC(this.getFullYear(),this.getMonth(),this.getDate()+3)/a,c=Math.floor(d/7),e=new Date(c*b).getUTCFullYear();return c-Math.floor(Date.UTC(e,0,7)/b)+1}}(),isLeapYear:function(){var a=this.getFullYear();return!!((a&3)==0&&(a%100||a%400==0&&a))},getFirstDayOfMonth:function(){var a=(this.getDay()-(this.getDate()-1))%7;return a<0?a+7:a},getLastDayOfMonth:function(){return this.getLastDateOfMonth().getDay()},getFirstDateOfMonth:function(){return new Date(this.getFullYear(),this.getMonth(),1)},getLastDateOfMonth:function(){return new Date(this.getFullYear(),this.getMonth(),this.getDaysInMonth())},getDaysInMonth:function(){var a=[31,28,31,30,31,30,31,31,30,31,30,31];return function(){var b=this.getMonth();return b==1&&this.isLeapYear()?29:a[b]}}(),getSuffix:function(){switch(this.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(){return new Date(this.getTime())},isDST:function(){return new Date(this.getFullYear(),0,1).getTimezoneOffset()!=this.getTimezoneOffset()},clearTime:function(g){if(g)return this.clone().clearTime();var b=this.getDate();this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);if(this.getDate()!=b){for(var a=1,e=this.add(Date.HOUR,a);e.getDate()!=b;a++,e=this.add(Date.HOUR,a));;this.setDate(b);this.setHours(e.getHours())}return this},add:function(b,c){var e=this.clone();if(!b||c===0)return e;switch(b.toLowerCase()){case Date.MILLI:e.setMilliseconds(this.getMilliseconds()+c);break;case Date.SECOND:e.setSeconds(this.getSeconds()+c);break;case Date.MINUTE:e.setMinutes(this.getMinutes()+c);break;case Date.HOUR:e.setHours(this.getHours()+c);break;case Date.DAY:e.setDate(this.getDate()+c);break;case Date.MONTH:var a=this.getDate();if(a>28)a=Math.min(a,this.getFirstDateOfMonth().add("mo",c).getLastDateOfMonth().getDate());e.setDate(a);e.setMonth(this.getMonth()+c);break;case Date.YEAR:e.setFullYear(this.getFullYear()+c);break}return e},between:function(c,a){var b=this.getTime();return c.getTime()<=b&&b<=a.getTime()}});Date.prototype.format=Date.prototype.dateFormat;if(Ext.isSafari&&(navigator.userAgent.match(/WebKit\/(\d+)/)[1]||NaN)<420)Ext.apply(Date.prototype,{_xMonth:Date.prototype.setMonth,_xDate:Date.prototype.setDate,setMonth:function(a){if(a<=-1){var d=Math.ceil(-a),c=Math.ceil(d/12),b=d%12?12-d%12:0;this.setFullYear(this.getFullYear()-c);return this._xMonth(b)}else return this._xMonth(a)},setDate:function(a){return this.setTime(this.getTime()-(this.getDate()-a)*864e5)}});Ext.util.MixedCollection=function(b,a){this.items=[];this.map={};this.keys=[];this.length=0;this.addEvents("clear","add","replace","remove","sort");this.allowFunctions=b===true;if(a)this.getKey=a;Ext.util.MixedCollection.superclass.constructor.call(this)};Ext.extend(Ext.util.MixedCollection,Ext.util.Observable,{allowFunctions:false,add:function(b,c){if(arguments.length==1){c=arguments[0];b=this.getKey(c)}if(typeof b!="undefined"&&b!==null){var a=this.map[b];if(typeof a!="undefined")return this.replace(b,c);this.map[b]=c}this.length++;this.items.push(c);this.keys.push(b);this.fireEvent("add",this.length-1,c,b);return c},getKey:function(a){return a.id},replace:function(c,d){if(arguments.length==1){d=arguments[0];c=this.getKey(d)}var a=this.map[c];if(typeof c=="undefined"||c===null||typeof a=="undefined")return this.add(c,d);var b=this.indexOfKey(c);this.items[b]=d;this.map[c]=d;this.fireEvent("replace",c,a,d);return d},addAll:function(e){if(arguments.length>1||Ext.isArray(e)){var b=arguments.length>1?arguments:e;for(var d=0,a=b.length;d<a;d++)this.add(b[d])}else for(var c in e)if(this.allowFunctions||typeof e[c]!="function")this.add(c,e[c])},each:function(e,d){var b=[].concat(this.items);for(var c=0,a=b.length;c<a;c++)if(e.call(d||b[c],b[c],c,a)===false)break},eachKey:function(d,c){for(var b=0,a=this.keys.length;b<a;b++)d.call(c||window,this.keys[b],this.items[b],b,a)},find:function(d,c){for(var b=0,a=this.items.length;b<a;b++)if(d.call(c||window,this.items[b],this.keys[b]))return this.items[b];return null},insert:function(a,b,c){if(arguments.length==2){c=arguments[1];b=this.getKey(c)}if(this.containsKey(b)){this.suspendEvents();this.removeKey(b);this.resumeEvents()}if(a>=this.length)return this.add(b,c);this.length++;this.items.splice(a,0,c);if(typeof b!="undefined"&&b!==null)this.map[b]=c;this.keys.splice(a,0,b);this.fireEvent("add",a,c,b);return c},remove:function(a){return this.removeAt(this.indexOf(a))},removeAt:function(a){if(a<this.length&&a>=0){this.length--;var c=this.items[a];this.items.splice(a,1);var b=this.keys[a];if(typeof b!="undefined")delete this.map[b];this.keys.splice(a,1);this.fireEvent("remove",c,b);return c}return false},removeKey:function(a){return this.removeAt(this.indexOfKey(a))},getCount:function(){return this.length},indexOf:function(a){return this.items.indexOf(a)},indexOfKey:function(a){return this.keys.indexOf(a)},item:function(b){var a=this.map[b],c=a!==undefined?a:typeof b=="number"?this.items[b]:undefined;return typeof c!="function"||this.allowFunctions?c:null},itemAt:function(a){return this.items[a]},key:function(a){return this.map[a]},contains:function(a){return this.indexOf(a)!=-1},containsKey:function(a){return typeof this.map[a]!="undefined"},clear:function(){this.length=0;this.items=[];this.keys=[];this.map={};this.fireEvent("clear")},first:function(){return this.items[0]},last:function(){return this.items[this.length-1]},_sort:function(k,a,j){var d,e,b=String(a).toUpperCase()=="DESC"?-1:1,h=[],l=this.keys,g=this.items;j=j||function(i,c){return i-c};for(d=0,e=g.length;d<e;d++)h[h.length]={key:l[d],value:g[d],index:d};h.sort(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=h.length;d<e;d++){g[d]=h[d].value;l[d]=h[d].key}this.fireEvent("sort",this)},sort:function(a,b){this._sort("value",a,b)},reorder:function(d){this.suspendEvents();var b=this.items,c=0,g=b.length,a=[],e=[];for(oldIndex in d)a[d[oldIndex]]=b[oldIndex];for(c=0;c<g;c++)if(d[c]==undefined)e.push(b[c]);for(c=0;c<g;c++)if(a[c]==undefined)a[c]=e.shift();this.clear();this.addAll(a);this.resumeEvents();this.fireEvent("sort",this)},keySort:function(a,b){this._sort("key",a,b||function(d,c){var g=String(d).toUpperCase(),e=String(c).toUpperCase();return g>e?1:g<e?-1:0})},getRange:function(e,a){var b=this.items;if(b.length<1)return[];e=e||0;a=Math.min(typeof a=="undefined"?this.length-1:a,this.length-1);var c,d=[];if(e<=a)for(c=e;c<=a;c++)d[d.length]=b[c];else for(c=e;c>=a;c--)d[d.length]=b[c];return d},filter:function(c,b,d,a){if(Ext.isEmpty(b,false))return this.clone();b=this.createValueMatcher(b,d,a);return this.filterBy(function(e){return e&&b.test(e[c])})},filterBy:function(g,e){var h=new Ext.util.MixedCollection;h.getKey=this.getKey;var b=this.keys,d=this.items;for(var c=0,a=d.length;c<a;c++)if(g.call(e||this,d[c],b[c]))h.add(b[c],d[c]);return h},findIndex:function(c,b,e,d,a){if(Ext.isEmpty(b,false))return-1;b=this.createValueMatcher(b,d,a);return this.findIndexBy(function(g){return g&&b.test(g[c])},null,e)},findIndexBy:function(g,e,h){var b=this.keys,d=this.items;for(var c=h||0,a=d.length;c<a;c++)if(g.call(e||this,d[c],b[c]))return c;return-1},createValueMatcher:function(c,e,a,b){if(!c.exec){var d=Ext.escapeRe;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=new Ext.util.MixedCollection;var b=this.keys,d=this.items;for(var c=0,a=d.length;c<a;c++)e.add(b[c],d[c]);e.getKey=this.getKey;return e}});Ext.util.MixedCollection.prototype.get=Ext.util.MixedCollection.prototype.item;Ext.util.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.util.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{var a=["{"],b,i,v;for(i in o)if(!o.getElementsByTagName)if(!useHasOwn||o.hasOwnProperty(i)){v=o[i];switch(typeof v){case"undefined":case"function":case"unknown":break;default:if(b)a.push(",");a.push(doEncode(i),":",v===null?"null":doEncode(v));b=true}}a.push("}");return a.join("")}},m={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},encodeString=function(s){if(/["\\\x00-\x1f]/.test(s))return'"'+s.replace(/([\x00-\x1f\\"])/g,function(a,b){var c=m[b];if(c)return c;c=b.charCodeAt();return"\\u00"+Math.floor(c/16).toString(16)+(c%16).toString(16)})+'"';return'"'+s+'"'},encodeArray=function(o){var a=["["],b,i,l=o.length,v;for(i=0;i<l;i+=1){v=o[i];switch(typeof v){case"undefined":case"function":case"unknown":break;default:if(b)a.push(",");a.push(v===null?"null":Ext.util.JSON.encode(v));b=true}}a.push("]");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){if(!dc)dc=isNative()?JSON.parse:doDecode;return dc(json)}}()};Ext.encode=Ext.util.JSON.encode;Ext.decode=Ext.util.JSON.decode;Ext.util.Format=function(){var trimRe=/^\s+|\s+$/g,stripTagsRE=/<\/?[^>]+>/gi,stripScriptsRe=/(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/ig,nl2brRe=/\r?\n/g;return{ellipsis:function(value,len,word){if(value&&value.length>len)if(word){var vs=value.substr(0,len-2),index=Math.max(vs.lastIndexOf(" "),vs.lastIndexOf("."),vs.lastIndexOf("!"),vs.lastIndexOf("?"));if(index==-1||index<len-15)return value.substr(0,len-3)+"...";else return vs.substr(0,index)+"..."}else return value.substr(0,len-3)+"...";return value},undef:function(value){return value!==undefined?value:""},defaultValue:function(value,defaultValue){return value!==undefined&&value!==""?value:defaultValue},htmlEncode:function(value){return!value?value:String(value).replace(/&/g,"&amp;").replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/"/g,"&quot;")},htmlDecode:function(value){return!value?value:String(value).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,'"').replace(/&amp;/g,"&")},trim:function(value){return String(value).replace(trimRe,"")},substr:function(value,start,length){return String(value).substr(start,length)},lowercase:function(value){return String(value).toLowerCase()},uppercase:function(value){return String(value).toUpperCase()},capitalize:function(value){return!value?value:value.charAt(0).toUpperCase()+value.substr(1).toLowerCase()},call:function(value,fn){if(arguments.length>2){var args=Array.prototype.slice.call(arguments,2);args.unshift(value);return eval(fn).apply(window,args)}else return eval(fn).call(window,value)},usMoney:function(v){v=Math.round((v-0)*100)/100;v=v==Math.floor(v)?v+".00":v*10==Math.floor(v*10)?v+"0":v;v=String(v);var ps=v.split("."),whole=ps[0],sub=ps[1]?"."+ps[1]:".00",r=/(\d+)(\d{3})/;while(r.test(whole))whole=whole.replace(r,"$1,$2");v=whole+sub;if(v.charAt(0)=="-")return"-$"+v.substr(1);return"$"+v},date:function(v,format){if(!v)return"";if(!Ext.isDate(v))v=new Date(Date.parse(v));return v.dateFormat(format||"m/d/Y")},dateRenderer:function(format){return function(v){return Ext.util.Format.date(v,format)}},stripTags:function(v){return!v?v:String(v).replace(stripTagsRE,"")},stripScripts:function(v){return!v?v:String(v).replace(stripScriptsRe,"")},fileSize:function(size){if(size<1024)return size+" bytes";else if(size<1048576)return Math.round(size*10/1024)/10+" KB";else return Math.round(size*10/1048576)/10+" MB"},math:function(){var fns={};return function(v,a){if(!fns[a])fns[a]=new Function("v","return v "+a+";");return fns[a](v)}}(),round:function(value,precision){var result=Number(value);if(typeof precision=="number"){precision=Math.pow(10,precision);result=Math.round(value*precision)/precision}return result},number:function(v,format){if(!format)return v;v=Ext.num(v,NaN);if(isNaN(v))return"";var comma=",",dec=".",i18n=false,neg=v<0;v=Math.abs(v);if(format.substr(format.length-2)=="/i"){format=format.substr(0,format.length-2);i18n=true;comma=".";dec=","}var hasComma=format.indexOf(comma)!=-1,psplit=(i18n?format.replace(/[^\d\,]/g,""):format.replace(/[^\d\.]/g,"")).split(dec);if(1<psplit.length)v=v.toFixed(psplit[1].length);else if(2<psplit.length)throw"NumberFormatException: invalid format, formats should have no more than 1 period: "+format;else v=v.toFixed(0);var fnum=v.toString();psplit=fnum.split(".");if(hasComma){var cnum=psplit[0],parr=[],j=cnum.length,m=Math.floor(j/3),n=cnum.length%3||3;for(var i=0;i<j;i+=n){if(i!=0)n=3;parr[parr.length]=cnum.substr(i,n);m-=1}fnum=parr.join(comma);if(psplit[1])fnum+=dec+psplit[1]}else if(psplit[1])fnum=psplit[0]+dec+psplit[1];return(neg?"-":"")+format.replace(/[\d,?\.?]+/,fnum)},numberRenderer:function(format){return function(v){return Ext.util.Format.number(v,format)}},plural:function(v,s,p){return v+" "+(v==1?s:p?p:s+"s")},nl2br:function(v){return Ext.isEmpty(v)?"":v.replace(nl2brRe,"<br/>")}}}();Ext.XTemplate=function(){Ext.XTemplate.superclass.constructor.apply(this,arguments);var y=this,j=y.html,q=/<tpl\b[^>]*>((?:(?=([^<]+))\2|<(?!tpl\b[^>]*>))*?)<\/tpl>/,d=/^<tpl\b[^>]*?for="(.*?)"/,v=/^<tpl\b[^>]*?if="(.*?)"/,x=/^<tpl\b[^>]*?exec="(.*?)"/,r,p=0,k=[],o="values",w="parent",l="xindex",n="xcount",e="return ",c="with(values){ ";j=["<tpl>",j,"</tpl>"].join("");while(r=j.match(q)){var b=r[0].match(d),a=r[0].match(v),A=r[0].match(x),g=null,h=null,t=null,z=b&&b[1]?b[1]:"";if(a){g=a&&a[1]?a[1]:null;if(g)h=new Function(o,w,l,n,c+e+Ext.util.Format.htmlDecode(g)+"; }")}if(A){g=A&&A[1]?A[1]:null;if(g)t=new Function(o,w,l,n,c+Ext.util.Format.htmlDecode(g)+"; }")}if(z)switch(z){case".":z=new Function(o,w,c+e+o+"; }");break;case"..":z=new Function(o,w,c+e+w+"; }");break;default:z=new Function(o,w,c+e+z+"; }")}k.push({id:p,target:z,exec:t,test:h,body:r[1]||""});j=j.replace(r[0],"{xtpl"+p+"}");++p}for(var u=k.length-1;u>=0;--u)y.compileTpl(k[u]);y.master=k[k.length-1];y.tpls=k};Ext.extend(Ext.XTemplate,Ext.Template,{re:/\{([\w-\.\#]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?(\s?[\+\-\*\\]\s?[\d\.\+\-\*\\\(\)]+)?\}/g,codeRe:/\{\[((?:\\\]|.|\n)*?)\]\}/g,applySubTemplate:function(a,k,j,d,c){var h=this,g,m=h.tpls[a],l,b=[];if(m.test&&!m.test.call(h,k,j,d,c)||m.exec&&m.exec.call(h,k,j,d,c))return"";l=m.target?m.target.call(h,k,j):k;g=l.length;j=m.target?k:j;if(m.target&&Ext.isArray(l)){for(var e=0,g=l.length;e<g;e++)b[b.length]=m.compiled.call(h,l[e],j,e+1,g);return b.join("")}return m.compiled.call(h,l,j,d,c)},compileTpl:function(tpl){var fm=Ext.util.Format,useF=this.disableFormats!==true,sep=Ext.isGecko?"+":",",body;function fn(m,name,format,args,math){if(name.substr(0,4)=="xtpl")return"'"+sep+"this.applySubTemplate("+name.substr(4)+", values, parent, xindex, xcount)"+sep+"'";var v;if(name===".")v="values";else if(name==="#")v="xindex";else if(name.indexOf(".")!=-1)v=name;else v="values['"+name+"']";if(math)v="("+v+math+")";if(format&&useF){args=args?","+args:"";if(format.substr(0,5)!="this.")format="fm."+format+"(";else{format='this.call("'+format.substr(5)+'", ';args=", values"}}else{args="";format="("+v+" === undefined ? '' : "}return"'"+sep+format+v+args+")"+sep+"'"}function codeFn(m,code){return"'"+sep+"("+code.replace(/\\'/g,"'")+")"+sep+"'"}if(Ext.isGecko)body="tpl.compiled = function(values, parent, xindex, xcount){ return '"+tpl.body.replace(/(\r\n|\n)/g,"\\n").replace(/'/g,"\\'").replace(this.re,fn).replace(this.codeRe,codeFn)+"';};";else{body=["tpl.compiled = function(values, parent, xindex, xcount){ return ['"];body.push(tpl.body.replace(/(\r\n|\n)/g,"\\n").replace(/'/g,"\\'").replace(this.re,fn).replace(this.codeRe,codeFn));body.push("'].join('');};");body=body.join("")}eval(body);return this},applyTemplate:function(a){return this.master.compiled.call(this,a,{},1,1)},compile:function(){return this}});Ext.XTemplate.prototype.apply=Ext.XTemplate.prototype.applyTemplate;Ext.XTemplate.from=function(a){a=Ext.getDom(a);return new Ext.XTemplate(a.value||a.innerHTML)};Ext.util.CSS=function(){var d=null;var c=document;var b=/(-[a-z])/gi;var a=function(e,g){return g.charAt(1).toUpperCase()};return{createStyleSheet:function(i,l){var h;var g=c.getElementsByTagName("head")[0];var k=c.createElement("style");k.setAttribute("type","text/css");if(l)k.setAttribute("id",l);if(Ext.isIE){g.appendChild(k);h=k.styleSheet;h.cssText=i}else{try{k.appendChild(c.createTextNode(i))}catch(j){k.cssText=i}g.appendChild(k);h=k.styleSheet?k.styleSheet:k.sheet||c.styleSheets[c.styleSheets.length-1]}this.cacheStyleSheet(h);return h},removeStyleSheet:function(g){var e=c.getElementById(g);if(e)e.parentNode.removeChild(e)},swapStyleSheet:function(h,e){this.removeStyleSheet(h);var g=c.createElement("link");g.setAttribute("rel","stylesheet");g.setAttribute("type","text/css");g.setAttribute("id",h);g.setAttribute("href",e);c.getElementsByTagName("head")[0].appendChild(g)},refreshCache:function(){return this.getRules(true)},cacheStyleSheet:function(h){if(!d)d={};try{var k=h.cssRules||h.rules;for(var g=k.length-1;g>=0;--g)d[k[g].selectorText.toLowerCase()]=k[g]}catch(i){}},getRules:function(h){if(d===null||h){d={};var k=c.styleSheets;for(var j=0,g=k.length;j<g;j++)try{this.cacheStyleSheet(k[j])}catch(l){}}return d},getRule:function(e,h){var g=this.getRules(h);if(!Ext.isArray(e))return g[e.toLowerCase()];for(var j=0;j<e.length;j++)if(g[e[j]])return g[e[j].toLowerCase()];return null},updateRule:function(e,j,h){if(!Ext.isArray(e)){var k=this.getRule(e);if(k){k.style[j.replace(b,a)]=h;return true}}else for(var g=0;g<e.length;g++)if(this.updateRule(e[g],j,h))return true;return false}}}();Ext.util.ClickRepeater=function(b,a){this.el=Ext.get(b);this.el.unselectable();Ext.apply(this,a);this.addEvents("mousedown","click","mouseup");if(!this.disabled){this.disabled=true;this.enable()}if(this.handler)this.on("click",this.handler,this.scope||this);Ext.util.ClickRepeater.superclass.constructor.call(this)};Ext.extend(Ext.util.ClickRepeater,Ext.util.Observable,{interval:20,delay:250,preventDefault:true,stopDefault:false,timer:0,enable:function(){if(this.disabled){this.el.on("mousedown",this.handleMouseDown,this);if(Ext.isIE)this.el.on("dblclick",this.handleDblClick,this);if(this.preventDefault||this.stopDefault)this.el.on("click",this.eventOptions,this)}this.disabled=false},disable:function(a){if(a||!this.disabled){clearTimeout(this.timer);if(this.pressClass)this.el.removeClass(this.pressClass);Ext.getDoc().un("mouseup",this.handleMouseUp,this);this.el.removeAllListeners()}this.disabled=true},setDisabled:function(a){this[a?"disable":"enable"]()},eventOptions:function(a){if(this.preventDefault)a.preventDefault();if(this.stopDefault)a.stopEvent()},destroy:function(){this.disable(true);Ext.destroy(this.el);this.purgeListeners()},handleDblClick:function(){clearTimeout(this.timer);this.el.blur();this.fireEvent("mousedown",this);this.fireEvent("click",this)},handleMouseDown:function(){clearTimeout(this.timer);this.el.blur();if(this.pressClass)this.el.addClass(this.pressClass);this.mousedownTime=new Date;Ext.getDoc().on("mouseup",this.handleMouseUp,this);this.el.on("mouseout",this.handleMouseOut,this);this.fireEvent("mousedown",this);this.fireEvent("click",this);if(this.accelerate)this.delay=400;this.timer=this.click.defer(this.delay||this.interval,this)},click:function(){this.fireEvent("click",this);this.timer=this.click.defer(this.accelerate?this.easeOutExpo(this.mousedownTime.getElapsed(),400,-390,12e3):this.interval,this)},easeOutExpo:function(e,a,h,g){return e==g?a+h:h*(-Math.pow(2,-10*e/g)+1)+a},handleMouseOut:function(){clearTimeout(this.timer);if(this.pressClass)this.el.removeClass(this.pressClass);this.el.on("mouseover",this.handleMouseReturn,this)},handleMouseReturn:function(){this.el.un("mouseover",this.handleMouseReturn,this);if(this.pressClass)this.el.addClass(this.pressClass);this.click()},handleMouseUp:function(){clearTimeout(this.timer);this.el.un("mouseover",this.handleMouseReturn,this);this.el.un("mouseout",this.handleMouseOut,this);Ext.getDoc().un("mouseup",this.handleMouseUp,this);this.el.removeClass(this.pressClass);this.fireEvent("mouseup",this)}});Ext.KeyNav=function(b,a){this.el=Ext.get(b);Ext.apply(this,a);if(!this.disabled){this.disabled=true;this.enable()}};Ext.KeyNav.prototype={disabled:false,defaultEventAction:"stopEvent",forceKeyDown:false,relay:function(c){var a=c.getKey();var b=this.keyToHandler[a];if(b&&this[b])if(this.doRelay(c,this[b],b)!==true)c[this.defaultEventAction]()},doRelay:function(c,b,a){return b.call(this.scope||this,c)},enter:false,left:false,right:false,up:false,down:false,tab:false,esc:false,pageUp:false,pageDown:false,del:false,home:false,end:false,keyToHandler:{37:"left",39:"right",38:"up",40:"down",33:"pageUp",34:"pageDown",46:"del",36:"home",35:"end",13:"enter",27:"esc",9:"tab"},stopKeyUp:function(b){var a=b.getKey();if(a>=37&&a<=40)b.stopEvent()},destroy:function(){this.disable()},enable:function(){if(this.disabled){if(Ext.isSafari2)this.el.on("keyup",this.stopKeyUp,this);this.el.on(this.isKeydown()?"keydown":"keypress",this.relay,this);this.disabled=false}},disable:function(){if(!this.disabled){if(Ext.isSafari2)this.el.un("keyup",this.stopKeyUp,this);this.el.un(this.isKeydown()?"keydown":"keypress",this.relay,this);this.disabled=true}},setDisabled:function(a){this[a?"disable":"enable"]()},isKeydown:function(){return this.forceKeyDown||Ext.EventManager.useKeydown}};Ext.KeyMap=function(c,b,a){this.el=Ext.get(c);this.eventName=a||"keydown";this.bindings=[];if(b)this.addBinding(b);this.enable()};Ext.KeyMap.prototype={stopEvent:false,addBinding:function(b){if(Ext.isArray(b)){Ext.each(b,function(j){this.addBinding(j)},this);return}var k=b.key,g=b.fn||b.handler,l=b.scope;if(b.stopEvent)this.stopEvent=b.stopEvent;if(typeof k=="string"){var h=[];var e=k.toUpperCase();for(var c=0,d=e.length;c<d;c++)h.push(e.charCodeAt(c));k=h}var a=Ext.isArray(k);var i=function(o){if(this.checkModifiers(b,o)){var m=o.getKey();if(a){for(var n=0,j=k.length;n<j;n++)if(k[n]==m){if(this.stopEvent)o.stopEvent();g.call(l||window,m,o);return}}else if(m==k){if(this.stopEvent)o.stopEvent();g.call(l||window,m,o)}}};this.bindings.push(i)},checkModifiers:function(b,h){var j,d,g=["shift","ctrl","alt"];for(var c=0,a=g.length;c<a;++c){d=g[c];j=b[d];if(!(j===undefined||j===h[d+"Key"]))return false}return true},on:function(b,d,c){var h,a,e,g;if(typeof b=="object"&&!Ext.isArray(b)){h=b.key;a=b.shift;e=b.ctrl;g=b.alt}else h=b;this.addBinding({key:h,shift:a,ctrl:e,alt:g,fn:d,scope:c})},handleKeyDown:function(g){if(this.enabled){var c=this.bindings;for(var d=0,a=c.length;d<a;d++)c[d].call(this,g)}},isEnabled:function(){return this.enabled},enable:function(){if(!this.enabled){this.el.on(this.eventName,this.handleKeyDown,this);this.enabled=true}},disable:function(){if(this.enabled){this.el.removeListener(this.eventName,this.handleKeyDown,this);this.enabled=false}},setDisabled:function(a){this[a?"disable":"enable"]()}};Ext.util.TextMetrics=function(){var a;return{measure:function(b,c,d){if(!a)a=Ext.util.TextMetrics.Instance(b,d);a.bind(b);a.setFixedWidth(d||"auto");return a.getSize(c)},createInstance:function(b,c){return Ext.util.TextMetrics.Instance(b,c)}}}();Ext.util.TextMetrics.Instance=function(b,d){var c=new Ext.Element(document.createElement("div"));document.body.appendChild(c.dom);c.position("absolute");c.setLeftTop(-1e3,-1e3);c.hide();if(d)c.setWidth(d);var a={getSize:function(g){c.update(g);var e=c.getSize();c.update("");return e},bind:function(e){c.setStyle(Ext.fly(e).getStyles("font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"))},setFixedWidth:function(e){c.setWidth(e)},getWidth:function(e){c.dom.style.width="auto";return this.getSize(e).width},getHeight:function(e){return this.getSize(e).height}};a.bind(b);return a};Ext.Element.addMethods({getTextWidth:function(c,b,a){return Ext.util.TextMetrics.measure(this.dom,Ext.value(c,this.dom.innerHTML,true)).width.constrain(b||0,a||1e6)}});Ext.util.Cookies={set:function(c,e){var a=arguments;var i=arguments.length;var b=i>2?a[2]:null;var h=i>3?a[3]:"/";var d=i>4?a[4]:null;var g=i>5?a[5]:false;document.cookie=c+"="+escape(e)+(b===null?"":"; expires="+b.toGMTString())+(h===null?"":"; path="+h)+(d===null?"":"; domain="+d)+(g===true?"; secure":"")},get:function(d){var b=d+"=";var g=b.length;var a=document.cookie.length;var e=0;var c=0;while(e<a){c=e+g;if(document.cookie.substring(e,c)==b)return Ext.util.Cookies.getCookieVal(c);e=document.cookie.indexOf(" ",e)+1;if(e===0)break}return null},clear:function(a){if(Ext.util.Cookies.get(a))document.cookie=a+"=; expires=Thu, 01-Jan-70 00:00:01 GMT"},getCookieVal:function(b){var a=document.cookie.indexOf(";",b);if(a==-1)a=document.cookie.length;return unescape(document.cookie.substring(b,a))}};Ext.handleError=function(a){throw a;};Ext.Error=function(a){this.message=this.lang[a]?this.lang[a]:a};Ext.Error.prototype=new Error;Ext.apply(Ext.Error.prototype,{lang:{},name:"Ext.Error",getName:function(){return this.name},getMessage:function(){return this.message},toJson:function(){return Ext.encode(this)}});Ext.ComponentMgr=function(){var c=new Ext.util.MixedCollection;var b={};var a={};return{register:function(d){c.add(d)},unregister:function(d){c.remove(d)},get:function(d){return c.get(d)},onAvailable:function(g,e,d){c.on("add",function(h,i){if(i.id==g){e.call(d||i,i);c.un("add",e,d)}})},all:c,types:b,ptypes:a,isRegistered:function(d){return b[d]!==undefined},isPluginRegistered:function(d){return a[d]!==undefined},registerType:function(e,d){b[e]=d;d.xtype=e},create:function(d,e){return d.render?d:new b[d.xtype||e](d)},registerPlugin:function(e,d){a[e]=d;d.ptype=e},createPlugin:function(e,g){var d=a[e.ptype||g];if(d.init)return d;else return new d(e)}}}();Ext.reg=Ext.ComponentMgr.registerType;Ext.preg=Ext.ComponentMgr.registerPlugin;Ext.create=Ext.ComponentMgr.create;Ext.Component=function(b){b=b||{};if(b.initialConfig){if(b.isAction)this.baseAction=b;b=b.initialConfig}else if(b.tagName||b.dom||Ext.isString(b))b={applyTo:b,id:b.id||b};this.initialConfig=b;Ext.apply(this,b);this.addEvents("added","disable","enable","beforeshow","show","beforehide","hide","removed","beforerender","render","afterrender","beforedestroy","destroy","beforestaterestore","staterestore","beforestatesave","statesave");this.getId();Ext.ComponentMgr.register(this);Ext.Component.superclass.constructor.call(this);if(this.baseAction)this.baseAction.addComponent(this);this.initComponent();if(this.plugins)if(Ext.isArray(this.plugins))for(var c=0,a=this.plugins.length;c<a;c++)this.plugins[c]=this.initPlugin(this.plugins[c]);else this.plugins=this.initPlugin(this.plugins);if(this.stateful!==false)this.initState();if(this.applyTo){this.applyToMarkup(this.applyTo);delete this.applyTo}else if(this.renderTo){this.render(this.renderTo);delete this.renderTo}};Ext.Component.AUTO_ID=1e3;Ext.extend(Ext.Component,Ext.util.Observable,{disabled:false,hidden:false,autoEl:"div",disabledClass:"x-item-disabled",allowDomMove:true,autoShow:false,hideMode:"display",hideParent:false,rendered:false,tplWriteMode:"overwrite",bubbleEvents:[],ctype:"Ext.Component",actionMode:"el",getActionEl:function(){return this[this.actionMode]},initPlugin:function(a){if(a.ptype&&!Ext.isFunction(a.init))a=Ext.ComponentMgr.createPlugin(a);else if(Ext.isString(a))a=Ext.ComponentMgr.createPlugin({ptype:a});a.init(this);return a},initComponent:function(){if(this.listeners){this.on(this.listeners);delete this.listeners}this.enableBubble(this.bubbleEvents)},render:function(b,a){if(!this.rendered&&this.fireEvent("beforerender",this)!==false){if(!b&&this.el){this.el=Ext.get(this.el);b=this.el.dom.parentNode;this.allowDomMove=false}this.container=Ext.get(b);if(this.ctCls)this.container.addClass(this.ctCls);this.rendered=true;if(a!==undefined)if(Ext.isNumber(a))a=this.container.dom.childNodes[a];else a=Ext.getDom(a);this.onRender(this.container,a||null);if(this.autoShow)this.el.removeClass(["x-hidden","x-hide-"+this.hideMode]);if(this.cls){this.el.addClass(this.cls);delete this.cls}if(this.style){this.el.applyStyles(this.style);delete this.style}if(this.overCls)this.el.addClassOnOver(this.overCls);this.fireEvent("render",this);var c=this.getContentTarget();if(this.html){c.update(Ext.DomHelper.markup(this.html));delete this.html}if(this.contentEl){var d=Ext.getDom(this.contentEl);Ext.fly(d).removeClass(["x-hidden","x-hide-display"]);c.appendChild(d)}if(this.tpl){if(!this.tpl.compile)this.tpl=new Ext.XTemplate(this.tpl);if(this.data){this.tpl[this.tplWriteMode](c,this.data);delete this.data}}this.afterRender(this.container);if(this.hidden)this.doHide();if(this.disabled)this.disable(true);if(this.stateful!==false)this.initStateEvents();this.fireEvent("afterrender",this)}return this},update:function(b,d,a){var c=this.getContentTarget();if(this.tpl&&typeof b!=="string")this.tpl[this.tplWriteMode](c,b||{});else{var e=Ext.isObject(b)?Ext.DomHelper.markup(b):b;c.update(e,d,a)}},onAdded:function(a,b){this.ownerCt=a;this.initRef();this.fireEvent("added",this,a,b)},onRemoved:function(){this.removeRef();this.fireEvent("removed",this,this.ownerCt);delete this.ownerCt},initRef:function(){if(this.ref&&!this.refOwner){var d=this.ref.split("/"),c=d.length,b=0,a=this;while(a&&b<c){a=a.ownerCt;++b}if(a){a[this.refName=d[--b]]=this;this.refOwner=a}}},removeRef:function(){if(this.refOwner&&this.refName){delete this.refOwner[this.refName];delete this.refOwner}},initState:function(){if(Ext.state.Manager){var b=this.getStateId();if(b){var a=Ext.state.Manager.get(b);if(a)if(this.fireEvent("beforestaterestore",this,a)!==false){this.applyState(Ext.apply({},a));this.fireEvent("staterestore",this,a)}}}},getStateId:function(){return this.stateId||(/^(ext-comp-|ext-gen)/.test(String(this.id))?null:this.id)},initStateEvents:function(){if(this.stateEvents)for(var a=0,b;b=this.stateEvents[a];a++)this.on(b,this.saveState,this,{delay:100})},applyState:function(a){if(a)Ext.apply(this,a)},getState:function(){return null},saveState:function(){if(Ext.state.Manager&&this.stateful!==false){var b=this.getStateId();if(b){var a=this.getState();if(this.fireEvent("beforestatesave",this,a)!==false){Ext.state.Manager.set(b,a);this.fireEvent("statesave",this,a)}}}},applyToMarkup:function(a){this.allowDomMove=false;this.el=Ext.get(a);this.render(this.el.dom.parentNode)},addClass:function(a){if(this.el)this.el.addClass(a);else this.cls=this.cls?this.cls+" "+a:a;return this},removeClass:function(a){if(this.el)this.el.removeClass(a);else if(this.cls)this.cls=this.cls.split(" ").remove(a).join(" ");return this},onRender:function(b,a){if(!this.el&&this.autoEl){if(Ext.isString(this.autoEl))this.el=document.createElement(this.autoEl);else{var c=document.createElement("div");Ext.DomHelper.overwrite(c,this.autoEl);this.el=c.firstChild}if(!this.el.id)this.el.id=this.getId()}if(this.el){this.el=Ext.get(this.el);if(this.allowDomMove!==false){b.dom.insertBefore(this.el.dom,a);if(c){Ext.removeNode(c);c=null}}}},getAutoCreate:function(){var a=Ext.isObject(this.autoCreate)?this.autoCreate:Ext.apply({},this.defaultAutoCreate);if(this.id&&!a.id)a.id=this.id;return a},afterRender:Ext.emptyFn,destroy:function(){if(!this.isDestroyed)if(this.fireEvent("beforedestroy",this)!==false){this.destroying=true;this.beforeDestroy();if(this.ownerCt&&this.ownerCt.remove)this.ownerCt.remove(this,false);if(this.rendered){this.el.remove();if(this.actionMode=="container"||this.removeMode=="container")this.container.remove()}if(this.focusTask&&this.focusTask.cancel)this.focusTask.cancel();this.onDestroy();Ext.ComponentMgr.unregister(this);this.fireEvent("destroy",this);this.purgeListeners();this.destroying=false;this.isDestroyed=true}},deleteMembers:function(){var b=arguments;for(var c=0,a=b.length;c<a;++c)delete this[b[c]]},beforeDestroy:Ext.emptyFn,onDestroy:Ext.emptyFn,getEl:function(){return this.el},getContentTarget:function(){return this.el},getId:function(){return this.id||(this.id="ext-comp-"+ ++Ext.Component.AUTO_ID)},getItemId:function(){return this.itemId||this.getId()},focus:function(b,a){if(a){this.focusTask=new Ext.util.DelayedTask(this.focus,this,[b,false]);this.focusTask.delay(Ext.isNumber(a)?a:10);return}if(this.rendered&&!this.isDestroyed){this.el.focus();if(b===true)this.el.dom.select()}return this},blur:function(){if(this.rendered)this.el.blur();return this},disable:function(a){if(this.rendered)this.onDisable();this.disabled=true;if(a!==true)this.fireEvent("disable",this);return this},onDisable:function(){this.getActionEl().addClass(this.disabledClass);this.el.dom.disabled=true},enable:function(){if(this.rendered)this.onEnable();this.disabled=false;this.fireEvent("enable",this);return this},onEnable:function(){this.getActionEl().removeClass(this.disabledClass);this.el.dom.disabled=false},setDisabled:function(a){return this[a?"disable":"enable"]()},show:function(){if(this.fireEvent("beforeshow",this)!==false){this.hidden=false;if(this.autoRender)this.render(Ext.isBoolean(this.autoRender)?Ext.getBody():this.autoRender);if(this.rendered)this.onShow();this.fireEvent("show",this)}return this},onShow:function(){this.getVisibilityEl().removeClass("x-hide-"+this.hideMode)},hide:function(){if(this.fireEvent("beforehide",this)!==false){this.doHide();this.fireEvent("hide",this)}return this},doHide:function(){this.hidden=true;if(this.rendered)this.onHide()},onHide:function(){this.getVisibilityEl().addClass("x-hide-"+this.hideMode)},getVisibilityEl:function(){return this.hideParent?this.container:this.getActionEl()},setVisible:function(a){return this[a?"show":"hide"]()},isVisible:function(){return this.rendered&&this.getVisibilityEl().isVisible()},cloneConfig:function(b){b=b||{};var c=b.id||Ext.id();var a=Ext.applyIf(b,this.initialConfig);a.id=c;return new this.constructor(a)},getXType:function(){return this.constructor.xtype},isXType:function(b,a){if(Ext.isFunction(b))b=b.xtype;else if(Ext.isObject(b))b=b.constructor.xtype;return!a?("/"+this.getXTypes()+"/").indexOf("/"+b+"/")!=-1:this.constructor.xtype==b},getXTypes:function(){var a=this.constructor;if(!a.xtypes){var d=[],b=this;while(b&&b.constructor.xtype){d.unshift(b.constructor.xtype);b=b.constructor.superclass}a.xtypeChain=d;a.xtypes=d.join("/")}return a.xtypes},findParentBy:function(a){for(var b=this.ownerCt;b!=null&&!a(b,this);b=b.ownerCt);;return b||null},findParentByType:function(a){return Ext.isFunction(a)?this.findParentBy(function(b){return b.constructor===a}):this.findParentBy(function(b){return b.constructor.xtype===a})},getPositionEl:function(){return this.positionEl||this.el},purgeListeners:function(){Ext.Component.superclass.purgeListeners.call(this);if(this.mons)this.on("beforedestroy",this.clearMons,this,{single:true})},clearMons:function(){Ext.each(this.mons,function(a){a.item.un(a.ename,a.fn,a.scope)},this);this.mons=[]},createMons:function(){if(!this.mons){this.mons=[];this.on("beforedestroy",this.clearMons,this,{single:true})}},mon:function(g,b,d,c,a){this.createMons();if(Ext.isObject(b)){var j=/^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/;var i=b;for(var h in i){if(j.test(h))continue;if(Ext.isFunction(i[h])){this.mons.push({item:g,ename:h,fn:i[h],scope:i.scope});g.on(h,i[h],i.scope,i)}else{this.mons.push({item:g,ename:h,fn:i[h],scope:i.scope});g.on(h,i[h])}}return}this.mons.push({item:g,ename:b,fn:d,scope:c});g.on(b,d,c,a)},mun:function(h,c,g,e){var j,d;this.createMons();for(var b=0,a=this.mons.length;b<a;++b){d=this.mons[b];if(h===d.item&&c==d.ename&&g===d.fn&&e===d.scope){this.mons.splice(b,1);h.un(c,g,e);j=true;break}}return j},nextSibling:function(){if(this.ownerCt){var a=this.ownerCt.items.indexOf(this);if(a!=-1&&a+1<this.ownerCt.items.getCount())return this.ownerCt.items.itemAt(a+1)}return null},previousSibling:function(){if(this.ownerCt){var a=this.ownerCt.items.indexOf(this);if(a>0)return this.ownerCt.items.itemAt(a-1)}return null},getBubbleTarget:function(){return this.ownerCt}});Ext.reg("component",Ext.Component);Ext.Action=Ext.extend(Object,{constructor:function(a){this.initialConfig=a;this.itemId=a.itemId=a.itemId||a.id||Ext.id();this.items=[]},isAction:true,setText:function(a){this.initialConfig.text=a;this.callEach("setText",[a])},getText:function(){return this.initialConfig.text},setIconClass:function(a){this.initialConfig.iconCls=a;this.callEach("setIconClass",[a])},getIconClass:function(){return this.initialConfig.iconCls},setDisabled:function(a){this.initialConfig.disabled=a;this.callEach("setDisabled",[a])},enable:function(){this.setDisabled(false)},disable:function(){this.setDisabled(true)},isDisabled:function(){return this.initialConfig.disabled},setHidden:function(a){this.initialConfig.hidden=a;this.callEach("setVisible",[!a])},show:function(){this.setHidden(false)},hide:function(){this.setHidden(true)},isHidden:function(){return this.initialConfig.hidden},setHandler:function(b,a){this.initialConfig.handler=b;this.initialConfig.scope=a;this.callEach("setHandler",[b,a])},each:function(b,a){Ext.each(this.items,b,a)},callEach:function(e,b){var d=this.items;for(var c=0,a=d.length;c<a;c++)d[c][e].apply(d[c],b)},addComponent:function(a){this.items.push(a);a.on("destroy",this.removeComponent,this)},removeComponent:function(a){this.items.remove(a)},execute:function(){this.initialConfig.handler.apply(this.initialConfig.scope||window,arguments)}});(function(){Ext.Layer=function(d,c){d=d||{};var e=Ext.DomHelper;var h=d.parentEl,g=h?Ext.getDom(h):document.body;if(c)this.dom=Ext.getDom(c);if(!this.dom){var i=d.dh||{tag:"div",cls:"x-layer"};this.dom=e.append(g,i)}if(d.cls)this.addClass(d.cls);this.constrain=d.constrain!==false;this.setVisibilityMode(Ext.Element.VISIBILITY);if(d.id)this.id=this.dom.id=d.id;else this.id=Ext.id(this.dom);this.zindex=d.zindex||this.getZIndex();this.position("absolute",this.zindex);if(d.shadow){this.shadowOffset=d.shadowOffset||4;this.shadow=new Ext.Shadow({offset:this.shadowOffset,mode:d.shadow})}else this.shadowOffset=0;this.useShim=d.shim!==false&&Ext.useShims;this.useDisplay=d.useDisplay;this.hide()};var a=Ext.Element.prototype;var b=[];Ext.extend(Ext.Layer,Ext.Element,{getZIndex:function(){return this.zindex||parseInt((this.getShim()||this).getStyle("z-index"),10)||11e3},getShim:function(){if(!this.useShim)return null;if(this.shim)return this.shim;var d=b.shift();if(!d){d=this.createShim();d.enableDisplayMode("block");d.dom.style.display="none";d.dom.style.visibility="visible"}var c=this.dom.parentNode;if(d.dom.parentNode!=c)c.insertBefore(d.dom,this.dom);d.setStyle("z-index",this.getZIndex()-2);this.shim=d;return d},hideShim:function(){if(this.shim){this.shim.setDisplayed(false);b.push(this.shim);delete this.shim}},disableShadow:function(){if(this.shadow){this.shadowDisabled=true;this.shadow.hide();this.lastShadowOffset=this.shadowOffset;this.shadowOffset=0}},enableShadow:function(c){if(this.shadow){this.shadowDisabled=false;this.shadowOffset=this.lastShadowOffset;delete this.lastShadowOffset;if(c)this.sync(true)}},sync:function(d){var n=this.shadow;if(!this.updating&&this.isVisible()&&(n||this.useShim)){var i=this.getShim(),m=this.getWidth(),j=this.getHeight(),e=this.getLeft(true),o=this.getTop(true);if(n&&!this.shadowDisabled){if(d&&!n.isVisible())n.show(this);else n.realign(e,o,m,j);if(i){if(d)i.show();var k=n.el.getXY(),g=i.dom.style,c=n.el.getSize();g.left=k[0]+"px";g.top=k[1]+"px";g.width=c.width+"px";g.height=c.height+"px"}}else if(i){if(d)i.show();i.setSize(m,j);i.setLeftTop(e,o)}}},destroy:function(){this.hideShim();if(this.shadow)this.shadow.hide();this.removeAllListeners();Ext.removeNode(this.dom);delete this.dom},remove:function(){this.destroy()},beginUpdate:function(){this.updating=true},endUpdate:function(){this.updating=false;this.sync(true)},hideUnders:function(c){if(this.shadow)this.shadow.hide();this.hideShim()},constrainXY:function(){if(this.constrain){var j=Ext.lib.Dom.getViewWidth(),d=Ext.lib.Dom.getViewHeight();var o=Ext.getDoc().getScroll();var n=this.getXY();var k=n[0],i=n[1];var c=this.shadowOffset;var l=this.dom.offsetWidth+c,e=this.dom.offsetHeight+c;var g=false;if(k+l>j+o.left){k=j-l-c;g=true}if(i+e>d+o.top){i=d-e-c;g=true}if(k<o.left){k=o.left;g=true}if(i<o.top){i=o.top;g=true}if(g){if(this.avoidY){var m=this.avoidY;if(i<=m&&i+e>=m)i=m-e-5}n=[k,i];this.storeXY(n);a.setXY.call(this,n);this.sync()}}return this},isVisible:function(){return this.visible},showAction:function(){this.visible=true;if(this.useDisplay===true)this.setDisplayed("");else if(this.lastXY)a.setXY.call(this,this.lastXY);else if(this.lastLT)a.setLeftTop.call(this,this.lastLT[0],this.lastLT[1])},hideAction:function(){this.visible=false;if(this.useDisplay===true)this.setDisplayed(false);else this.setLeftTop(-1e4,-1e4)},setVisible:function(i,h,k,l,j){if(i)this.showAction();if(h&&i){var g=function(){this.sync(true);if(l)l()}.createDelegate(this);a.setVisible.call(this,true,true,k,g,j)}else{if(!i)this.hideUnders(true);var g=l;if(h)g=function(){this.hideAction();if(l)l()}.createDelegate(this);a.setVisible.call(this,i,h,k,g,j);if(i)this.sync(true);else if(!h)this.hideAction()}return this},storeXY:function(c){delete this.lastLT;this.lastXY=c},storeLeftTop:function(d,c){delete this.lastXY;this.lastLT=[d,c]},beforeFx:function(){this.beforeAction();return Ext.Layer.superclass.beforeFx.apply(this,arguments)},afterFx:function(){Ext.Layer.superclass.afterFx.apply(this,arguments);this.sync(this.isVisible())},beforeAction:function(){if(!this.updating&&this.shadow)this.shadow.hide()},setLeft:function(c){this.storeLeftTop(c,this.getTop(true));a.setLeft.apply(this,arguments);this.sync();return this},setTop:function(c){this.storeLeftTop(this.getLeft(true),c);a.setTop.apply(this,arguments);this.sync();return this},setLeftTop:function(d,c){this.storeLeftTop(d,c);a.setLeftTop.apply(this,arguments);this.sync();return this},setXY:function(j,h,k,l,i){this.fixDisplay();this.beforeAction();this.storeXY(j);var g=this.createCB(l);a.setXY.call(this,j,h,k,g,i);if(!h)g();return this},createCB:function(e){var d=this;return function(){d.constrainXY();d.sync(true);if(e)e()}},setX:function(g,h,j,k,i){this.setXY([g,this.getY()],h,j,k,i);return this},setY:function(k,g,i,j,h){this.setXY([this.getX(),k],g,i,j,h);return this},setSize:function(j,k,i,m,n,l){this.beforeAction();var g=this.createCB(n);a.setSize.call(this,j,k,i,m,g,l);if(!i)g();return this},setWidth:function(i,h,k,l,j){this.beforeAction();var g=this.createCB(l);a.setWidth.call(this,i,h,k,g,j);if(!h)g();return this},setHeight:function(j,i,l,m,k){this.beforeAction();var g=this.createCB(m);a.setHeight.call(this,j,i,l,g,k);if(!i)g();return this},setBounds:function(o,m,p,i,n,k,l,j){this.beforeAction();var g=this.createCB(l);if(!n){this.storeXY([o,m]);a.setXY.call(this,[o,m]);a.setSize.call(this,p,i,n,k,g,j);g()}else a.setBounds.call(this,o,m,p,i,n,k,g,j);return this},setZIndex:function(c){this.zindex=c;this.setStyle("z-index",c+2);if(this.shadow)this.shadow.setZIndex(c+1);if(this.shim)this.shim.setStyle("z-index",c);return this}})})();Ext.Shadow=function(d){Ext.apply(this,d);if(typeof this.mode!="string")this.mode=this.defaultMode;var e=this.offset,c={h:0};var b=Math.floor(this.offset/2);switch(this.mode.toLowerCase()){case"drop":c.w=0;c.l=c.t=e;c.t-=1;if(Ext.isIE){c.l-=this.offset+b;c.t-=this.offset+b;c.w-=b;c.h-=b;c.t+=1}break;case"sides":c.w=e*2;c.l=-e;c.t=e-1;if(Ext.isIE){c.l-=this.offset-b;c.t-=this.offset+b;c.l+=1;c.w-=(this.offset-b)*2;c.w-=b+1;c.h-=1}break;case"frame":c.w=c.h=e*2;c.l=c.t=-e;c.t+=1;c.h-=2;if(Ext.isIE){c.l-=this.offset-b;c.t-=this.offset-b;c.l+=1;c.w-=this.offset+b+1;c.h-=this.offset+b;c.h+=1}break}this.adjusts=c};Ext.Shadow.prototype={offset:4,defaultMode:"drop",show:function(a){a=Ext.get(a);if(!this.el){this.el=Ext.Shadow.Pool.pull();if(this.el.dom.nextSibling!=a.dom)this.el.insertBefore(a)}this.el.setStyle("z-index",this.zIndex||parseInt(a.getStyle("z-index"),10)-1);if(Ext.isIE)this.el.dom.style.filter="progid:DXImageTransform.Microsoft.alpha(opacity=50) progid:DXImageTransform.Microsoft.Blur(pixelradius="+this.offset+")";this.realign(a.getLeft(true),a.getTop(true),a.getWidth(),a.getHeight());this.el.dom.style.display="block"},isVisible:function(){return this.el?true:false},realign:function(b,r,q,g){if(!this.el)return;var n=this.adjusts,k=this.el.dom,u=k.style;var i=0;u.left=b+n.l+"px";u.top=r+n.t+"px";var p=q+n.w,e=g+n.h,j=p+"px",o=e+"px";if(u.width!=j||u.height!=o){u.width=j;u.height=o;if(!Ext.isIE){var m=k.childNodes;var c=Math.max(0,p-12)+"px";m[0].childNodes[1].style.width=c;m[1].childNodes[1].style.width=c;m[2].childNodes[1].style.width=c;m[1].style.height=Math.max(0,e-12)+"px"}}},hide:function(){if(this.el){this.el.dom.style.display="none";Ext.Shadow.Pool.push(this.el);delete this.el}},setZIndex:function(a){this.zIndex=a;if(this.el)this.el.setStyle("z-index",a)}};Ext.Shadow.Pool=function(){var b=[];var a=Ext.isIE?'<div class="x-ie-shadow"></div>':'<div class="x-shadow"><div class="xst"><div class="xstl"></div><div class="xstc"></div><div class="xstr"></div></div><div class="xsc"><div class="xsml"></div><div class="xsmc"></div><div class="xsmr"></div></div><div class="xsb"><div class="xsbl"></div><div class="xsbc"></div><div class="xsbr"></div></div></div>';return{pull:function(){var c=b.shift();if(!c){c=Ext.get(Ext.DomHelper.insertHtml("beforeBegin",document.body.firstChild,a));c.autoBoxAdjust=false}return c},push:function(c){b.push(c)}}}();Ext.BoxComponent=Ext.extend(Ext.Component,{initComponent:function(){Ext.BoxComponent.superclass.initComponent.call(this);this.addEvents("resize","move")},boxReady:false,deferHeight:false,setSize:function(b,d){if(typeof b=="object"){d=b.height;b=b.width}if(Ext.isDefined(b)&&Ext.isDefined(this.boxMinWidth)&&b<this.boxMinWidth)b=this.boxMinWidth;if(Ext.isDefined(d)&&Ext.isDefined(this.boxMinHeight)&&d<this.boxMinHeight)d=this.boxMinHeight;if(Ext.isDefined(b)&&Ext.isDefined(this.boxMaxWidth)&&b>this.boxMaxWidth)b=this.boxMaxWidth;if(Ext.isDefined(d)&&Ext.isDefined(this.boxMaxHeight)&&d>this.boxMaxHeight)d=this.boxMaxHeight;if(!this.boxReady){this.width=b;this.height=d;return this}if(this.cacheSizes!==false&&this.lastSize&&this.lastSize.width==b&&this.lastSize.height==d)return this;this.lastSize={width:b,height:d};var c=this.adjustSize(b,d),g=c.width,a=c.height,e;if(g!==undefined||a!==undefined){e=this.getResizeEl();if(!this.deferHeight&&g!==undefined&&a!==undefined)e.setSize(g,a);else if(!this.deferHeight&&a!==undefined)e.setHeight(a);else if(g!==undefined)e.setWidth(g);this.onResize(g,a,b,d);this.fireEvent("resize",this,g,a,b,d)}return this},setWidth:function(a){return this.setSize(a)},setHeight:function(a){return this.setSize(undefined,a)},getSize:function(){return this.getResizeEl().getSize()},getWidth:function(){return this.getResizeEl().getWidth()},getHeight:function(){return this.getResizeEl().getHeight()},getOuterSize:function(){var a=this.getResizeEl();return{width:a.getWidth()+a.getMargins("lr"),height:a.getHeight()+a.getMargins("tb")}},getPosition:function(a){var b=this.getPositionEl();if(a===true)return[b.getLeft(true),b.getTop(true)];return this.xy||b.getXY()},getBox:function(a){var c=this.getPosition(a);var b=this.getSize();b.x=c[0];b.y=c[1];return b},updateBox:function(a){this.setSize(a.width,a.height);this.setPagePosition(a.x,a.y);return this},getResizeEl:function(){return this.resizeEl||this.el},setAutoScroll:function(a){if(this.rendered)this.getContentTarget().setOverflow(a?"auto":"");this.autoScroll=a;return this},setPosition:function(a,g){if(a&&typeof a[1]=="number"){g=a[1];a=a[0]}this.x=a;this.y=g;if(!this.boxReady)return this;var b=this.adjustPosition(a,g);var e=b.x,d=b.y;var c=this.getPositionEl();if(e!==undefined||d!==undefined){if(e!==undefined&&d!==undefined)c.setLeftTop(e,d);else if(e!==undefined)c.setLeft(e);else if(d!==undefined)c.setTop(d);this.onPosition(e,d);this.fireEvent("move",this,e,d)}return this},setPagePosition:function(a,c){if(a&&typeof a[1]=="number"){c=a[1];a=a[0]}this.pageX=a;this.pageY=c;if(!this.boxReady)return;if(a===undefined||c===undefined)return;var b=this.getPositionEl().translatePoints(a,c);this.setPosition(b.left,b.top);return this},afterRender:function(){Ext.BoxComponent.superclass.afterRender.call(this);if(this.resizeEl)this.resizeEl=Ext.get(this.resizeEl);if(this.positionEl)this.positionEl=Ext.get(this.positionEl);this.boxReady=true;Ext.isDefined(this.autoScroll)&&this.setAutoScroll(this.autoScroll);this.setSize(this.width,this.height);if(this.x||this.y)this.setPosition(this.x,this.y);else if(this.pageX||this.pageY)this.setPagePosition(this.pageX,this.pageY)},syncSize:function(){delete this.lastSize;this.setSize(this.autoWidth?undefined:this.getResizeEl().getWidth(),this.autoHeight?undefined:this.getResizeEl().getHeight());return this},onResize:function(d,b,a,c){},onPosition:function(a,b){},adjustSize:function(a,b){if(this.autoWidth)a="auto";if(this.autoHeight)b="auto";return{width:a,height:b}},adjustPosition:function(a,b){return{x:a,y:b}}});Ext.reg("box",Ext.BoxComponent);Ext.Spacer=Ext.extend(Ext.BoxComponent,{autoEl:"div"});Ext.reg("spacer",Ext.Spacer);Ext.SplitBar=function(c,e,b,d,a){this.el=Ext.get(c,true);this.el.dom.unselectable="on";this.resizingEl=Ext.get(e,true);this.orientation=b||Ext.SplitBar.HORIZONTAL;this.minSize=0;this.maxSize=2e3;this.animate=false;this.useShim=false;this.shim=null;if(!a)this.proxy=Ext.SplitBar.createProxy(this.orientation);else this.proxy=Ext.get(a).dom;this.dd=new Ext.dd.DDProxy(this.el.dom.id,"XSplitBars",{dragElId:this.proxy.id});this.dd.b4StartDrag=this.onStartProxyDrag.createDelegate(this);this.dd.endDrag=this.onEndProxyDrag.createDelegate(this);this.dragSpecs={};this.adapter=new Ext.SplitBar.BasicLayoutAdapter;this.adapter.init(this);if(this.orientation==Ext.SplitBar.HORIZONTAL){this.placement=d||(this.el.getX()>this.resizingEl.getX()?Ext.SplitBar.LEFT:Ext.SplitBar.RIGHT);this.el.addClass("x-splitbar-h")}else{this.placement=d||(this.el.getY()>this.resizingEl.getY()?Ext.SplitBar.TOP:Ext.SplitBar.BOTTOM);this.el.addClass("x-splitbar-v")}this.addEvents("resize","moved","beforeresize","beforeapply");Ext.SplitBar.superclass.constructor.call(this)};Ext.extend(Ext.SplitBar,Ext.util.Observable,{onStartProxyDrag:function(a,e){this.fireEvent("beforeresize",this);this.overlay=Ext.DomHelper.append(document.body,{cls:"x-drag-overlay",html:"&#160;"},true);this.overlay.unselectable();this.overlay.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));this.overlay.show();Ext.get(this.proxy).setDisplayed("block");var c=this.adapter.getElementSize(this);this.activeMinSize=this.getMinimumSize();this.activeMaxSize=this.getMaximumSize();var d=c-this.activeMinSize;var b=Math.max(this.activeMaxSize-c,0);if(this.orientation==Ext.SplitBar.HORIZONTAL){this.dd.resetConstraints();this.dd.setXConstraint(this.placement==Ext.SplitBar.LEFT?d:b,this.placement==Ext.SplitBar.LEFT?b:d,this.tickSize);this.dd.setYConstraint(0,0)}else{this.dd.resetConstraints();this.dd.setXConstraint(0,0);this.dd.setYConstraint(this.placement==Ext.SplitBar.TOP?d:b,this.placement==Ext.SplitBar.TOP?b:d,this.tickSize)}this.dragSpecs.startSize=c;this.dragSpecs.startPoint=[a,e];Ext.dd.DDProxy.prototype.b4StartDrag.call(this.dd,a,e)},onEndProxyDrag:function(c){Ext.get(this.proxy).setDisplayed(false);var b=Ext.lib.Event.getXY(c);if(this.overlay){Ext.destroy(this.overlay);delete this.overlay}var a;if(this.orientation==Ext.SplitBar.HORIZONTAL)a=this.dragSpecs.startSize+(this.placement==Ext.SplitBar.LEFT?b[0]-this.dragSpecs.startPoint[0]:this.dragSpecs.startPoint[0]-b[0]);else a=this.dragSpecs.startSize+(this.placement==Ext.SplitBar.TOP?b[1]-this.dragSpecs.startPoint[1]:this.dragSpecs.startPoint[1]-b[1]);a=Math.min(Math.max(a,this.activeMinSize),this.activeMaxSize);if(a!=this.dragSpecs.startSize)if(this.fireEvent("beforeapply",this,a)!==false){this.adapter.setElementSize(this,a);this.fireEvent("moved",this,a);this.fireEvent("resize",this,a)}},getAdapter:function(){return this.adapter},setAdapter:function(a){this.adapter=a;this.adapter.init(this)},getMinimumSize:function(){return this.minSize},setMinimumSize:function(a){this.minSize=a},getMaximumSize:function(){return this.maxSize},setMaximumSize:function(a){this.maxSize=a},setCurrentSize:function(b){var a=this.animate;this.animate=false;this.adapter.setElementSize(this,b);this.animate=a},destroy:function(a){Ext.destroy(this.shim,Ext.get(this.proxy));this.dd.unreg();if(a)this.el.remove();this.purgeListeners()}});Ext.SplitBar.createProxy=function(b){var c=new Ext.Element(document.createElement("div"));document.body.appendChild(c.dom);c.unselectable();var a="x-splitbar-proxy";c.addClass(a+" "+(b==Ext.SplitBar.HORIZONTAL?a+"-h":a+"-v"));return c.dom};Ext.SplitBar.BasicLayoutAdapter=function(){};Ext.SplitBar.BasicLayoutAdapter.prototype={init:function(a){},getElementSize:function(a){if(a.orientation==Ext.SplitBar.HORIZONTAL)return a.resizingEl.getWidth();else return a.resizingEl.getHeight()},setElementSize:function(b,a,c){if(b.orientation==Ext.SplitBar.HORIZONTAL)if(!b.animate){b.resizingEl.setWidth(a);if(c)c(b,a)}else b.resizingEl.setWidth(a,true,.1,c,"easeOut");else if(!b.animate){b.resizingEl.setHeight(a);if(c)c(b,a)}else b.resizingEl.setHeight(a,true,.1,c,"easeOut")}};Ext.SplitBar.AbsoluteLayoutAdapter=function(a){this.basic=new Ext.SplitBar.BasicLayoutAdapter;this.container=Ext.get(a)};Ext.SplitBar.AbsoluteLayoutAdapter.prototype={init:function(a){this.basic.init(a)},getElementSize:function(a){return this.basic.getElementSize(a)},setElementSize:function(b,a,c){this.basic.setElementSize(b,a,this.moveSplitter.createDelegate(this,[b]))},moveSplitter:function(a){var b=Ext.SplitBar;switch(a.placement){case b.LEFT:a.el.setX(a.resizingEl.getRight());break;case b.RIGHT:a.el.setStyle("right",this.container.getWidth()-a.resizingEl.getLeft()+"px");break;case b.TOP:a.el.setY(a.resizingEl.getBottom());break;case b.BOTTOM:a.el.setY(a.resizingEl.getTop()-a.el.getHeight());break}}};Ext.SplitBar.VERTICAL=1;Ext.SplitBar.HORIZONTAL=2;Ext.SplitBar.LEFT=1;Ext.SplitBar.RIGHT=2;Ext.SplitBar.TOP=3;Ext.SplitBar.BOTTOM=4;Ext.Container=Ext.extend(Ext.BoxComponent,{bufferResize:50,autoDestroy:true,forceLayout:false,defaultType:"panel",resizeEvent:"resize",bubbleEvents:["add","remove"],initComponent:function(){Ext.Container.superclass.initComponent.call(this);this.addEvents("afterlayout","beforeadd","beforeremove","add","remove");var a=this.items;if(a){delete this.items;this.add(a)}},initItems:function(){if(!this.items){this.items=new Ext.util.MixedCollection(false,this.getComponentId);this.getLayout()}},setLayout:function(a){if(this.layout&&this.layout!=a)this.layout.setContainer(null);this.layout=a;this.initItems();a.setContainer(this)},afterRender:function(){Ext.Container.superclass.afterRender.call(this);if(!this.layout)this.layout="auto";if(Ext.isObject(this.layout)&&!this.layout.layout){this.layoutConfig=this.layout;this.layout=this.layoutConfig.type}if(Ext.isString(this.layout))this.layout=new Ext.Container.LAYOUTS[this.layout.toLowerCase()](this.layoutConfig);this.setLayout(this.layout);if(this.activeItem!==undefined){var a=this.activeItem;delete this.activeItem;this.layout.setActiveItem(a)}if(!this.ownerCt)this.doLayout(false,true);if(this.monitorResize===true)Ext.EventManager.onWindowResize(this.doLayout,this,[false])},getLayoutTarget:function(){return this.el},getComponentId:function(a){return a.getItemId()},add:function(b){this.initItems();var e=arguments.length>1;if(e||Ext.isArray(b)){var a=[];Ext.each(e?arguments:b,function(h){a.push(this.add(h))},this);return a}var g=this.lookupComponent(this.applyDefaults(b));var d=this.items.length;if(this.fireEvent("beforeadd",this,g,d)!==false&&this.onBeforeAdd(g)!==false){this.items.add(g);g.onAdded(this,d);this.onAdd(g);this.fireEvent("add",this,g,d)}return g},onAdd:function(a){},onAdded:function(a,b){this.ownerCt=a;this.initRef();this.cascade(function(d){d.initRef()});this.fireEvent("added",this,a,b)},insert:function(h,g){this.initItems();var e=arguments,d=e.length;if(d>2){var b=[];for(var j=d-1;j>=1;--j)b.push(this.insert(h,e[j]));return b}var k=this.lookupComponent(this.applyDefaults(g));h=Math.min(h,this.items.length);if(this.fireEvent("beforeadd",this,k,h)!==false&&this.onBeforeAdd(k)!==false){if(k.ownerCt==this)this.items.remove(k);this.items.insert(h,k);k.onAdded(this,h);this.onAdd(k);this.fireEvent("add",this,k,h)}return k},applyDefaults:function(b){var a=this.defaults;if(a){if(Ext.isFunction(a))a=a.call(this,b);if(Ext.isString(b)){b=Ext.ComponentMgr.get(b);Ext.apply(b,a)}else if(!b.events)Ext.applyIf(b,a);else Ext.apply(b,a)}return b},onBeforeAdd:function(a){if(a.ownerCt)a.ownerCt.remove(a,false);if(this.hideBorders===true)a.border=a.border===true},remove:function(a,b){this.initItems();var d=this.getComponent(a);if(d&&this.fireEvent("beforeremove",this,d)!==false){this.doRemove(d,b);this.fireEvent("remove",this,d)}return d},onRemove:function(a){},doRemove:function(e,d){var b=this.layout,a=b&&this.rendered;if(a)b.onRemove(e);this.items.remove(e);e.onRemoved();this.onRemove(e);if(d===true||d!==false&&this.autoDestroy)e.destroy();if(a)b.afterRemove(e)},removeAll:function(c){this.initItems();var e,g=[],b=[];this.items.each(function(h){g.push(h)});for(var d=0,a=g.length;d<a;++d){e=g[d];this.remove(e,c);if(e.ownerCt!==this)b.push(e)}return b},getComponent:function(a){if(Ext.isObject(a))a=a.getItemId();return this.items.get(a)},lookupComponent:function(a){if(Ext.isString(a))return Ext.ComponentMgr.get(a);else if(!a.events)return this.createComponent(a);return a},createComponent:function(a,d){if(a.render)return a;var b=Ext.create(Ext.apply({ownerCt:this},a),d||this.defaultType);delete b.initialConfig.ownerCt;delete b.ownerCt;return b},canLayout:function(){var a=this.getVisibilityEl();return a&&a.dom&&!a.isStyle("display","none")},doLayout:function(g,e){var k=this.rendered,j=e||this.forceLayout;if(this.collapsed||!this.canLayout()){this.deferLayout=this.deferLayout||!g;if(!j)return;g=g&&!this.deferLayout}else delete this.deferLayout;if(k&&this.layout)this.layout.layout();if(g!==true&&this.items){var d=this.items.items;for(var b=0,a=d.length;b<a;b++){var h=d[b];if(h.doLayout)h.doLayout(false,j)}}if(k)this.onLayout(g,j);this.hasLayout=true;delete this.forceLayout},onLayout:Ext.emptyFn,shouldBufferLayout:function(){var a=this.hasLayout;if(this.ownerCt)return a?!this.hasLayoutPending():false;return a},hasLayoutPending:function(){var a=false;this.ownerCt.bubble(function(b){if(b.layoutPending){a=true;return false}});return a},onShow:function(){Ext.Container.superclass.onShow.call(this);if(Ext.isDefined(this.deferLayout)){delete this.deferLayout;this.doLayout(true)}},getLayout:function(){if(!this.layout){var a=new Ext.layout.AutoLayout(this.layoutConfig);this.setLayout(a)}return this.layout},beforeDestroy:function(){var a;if(this.items)while(a=this.items.first())this.doRemove(a,true);if(this.monitorResize)Ext.EventManager.removeResizeListener(this.doLayout,this);Ext.destroy(this.layout);Ext.Container.superclass.beforeDestroy.call(this)},bubble:function(c,b,a){var d=this;while(d){if(c.apply(b||d,a||[d])===false)break;d=d.ownerCt}return this},cascade:function(g,e,b){if(g.apply(e||this,b||[this])!==false)if(this.items){var d=this.items.items;for(var c=0,a=d.length;c<a;c++)if(d[c].cascade)d[c].cascade(g,e,b);else g.apply(e||d[c],b||[d[c]])}return this},findById:function(c){var a,b=this;this.cascade(function(d){if(b!=d&&d.id===c){a=d;return false}});return a||null},findByType:function(b,a){return this.findBy(function(d){return d.isXType(b,a)})},find:function(b,a){return this.findBy(function(d){return d[b]===a})},findBy:function(d,c){var a=[],b=this;this.cascade(function(e){if(b!=e&&d.call(c||e,e,b)===true)a.push(e)});return a},get:function(a){return this.items.get(a)}});Ext.Container.LAYOUTS={};Ext.reg("container",Ext.Container);Ext.layout.ContainerLayout=Ext.extend(Object,{monitorResize:false,activeItem:null,constructor:function(a){this.id=Ext.id(null,"ext-layout-");Ext.apply(this,a)},type:"container",IEMeasureHack:function(k,g){var a=k.dom.childNodes,b=a.length,n,m=[],l,h,j;for(h=0;h<b;h++){n=a[h];l=Ext.get(n);if(l){m[h]=l.getStyle("display");l.setStyle({display:"none"})}}j=k?k.getViewSize(g):{};for(h=0;h<b;h++){n=a[h];l=Ext.get(n);if(l)l.setStyle({display:m[h]})}return j},getLayoutTargetSize:Ext.EmptyFn,layout:function(){var a=this.container,b=a.getLayoutTarget();if(!(this.hasLayout||Ext.isEmpty(this.targetCls)))b.addClass(this.targetCls);this.onLayout(a,b);a.fireEvent("afterlayout",a,this)},onLayout:function(a,b){this.renderAll(a,b)},isValidParent:function(b,a){return a&&b.getPositionEl().dom.parentNode==(a.dom||a)},renderAll:function(e,g){var b=e.items.items,d,h,a=b.length;for(d=0;d<a;d++){h=b[d];if(h&&(!h.rendered||!this.isValidParent(h,g)))this.renderItem(h,d,g)}},renderItem:function(d,a,b){if(d)if(!d.rendered){d.render(b,a);this.configureItem(d,a)}else if(!this.isValidParent(d,b)){if(Ext.isNumber(a))a=b.dom.childNodes[a];b.dom.insertBefore(d.getPositionEl().dom,a||null);d.container=b;this.configureItem(d,a)}},getRenderedItems:function(g){var e=g.getLayoutTarget(),h=g.items.items,a=h.length,d,j,b=[];for(d=0;d<a;d++)if((j=h[d]).rendered&&this.isValidParent(j,e))b.push(j);return b},configureItem:function(d,a){if(this.extraCls){var b=d.getPositionEl?d.getPositionEl():d;b.addClass(this.extraCls)}if(d.doLayout&&this.forceLayout)d.doLayout();if(this.renderHidden&&d!=this.activeItem)d.hide()},onRemove:function(b){if(this.activeItem==b)delete this.activeItem;if(b.rendered&&this.extraCls){var a=b.getPositionEl?b.getPositionEl():b;a.removeClass(this.extraCls)}},afterRemove:function(a){if(a.removeRestore){a.removeMode="container";delete a.removeRestore}},onResize:function(){var c=this.container,a;if(c.collapsed)return;if(a=c.bufferResize&&c.shouldBufferLayout()){if(!this.resizeTask){this.resizeTask=new Ext.util.DelayedTask(this.runLayout,this);this.resizeBuffer=Ext.isNumber(a)?a:50}c.layoutPending=true;this.resizeTask.delay(this.resizeBuffer)}else this.runLayout()},runLayout:function(){var a=this.container;this.layout();a.onLayout();delete a.layoutPending},setContainer:function(b){if(this.monitorResize&&b!=this.container){var a=this.container;if(a)a.un(a.resizeEvent,this.onResize,this);if(b)b.on(b.resizeEvent,this.onResize,this)}this.container=b},parseMargins:function(b){if(Ext.isNumber(b))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:parseInt(c[0],10)||0,right:parseInt(c[1],10)||0,bottom:parseInt(c[2],10)||0,left:parseInt(c[3],10)||0}},fieldTpl:function(){var a=new Ext.Template('<div class="x-form-item {itemCls}" tabIndex="-1">','<label for="{id}" style="{labelStyle}" class="x-form-item-label">{label}{labelSeparator}</label>','<div class="x-form-element" id="x-form-el-{id}" style="{elementStyle}">','</div><div class="{clearCls}"></div>',"</div>");a.disableFormats=true;return a.compile()}(),destroy:function(){if(this.resizeTask&&this.resizeTask.cancel)this.resizeTask.cancel();if(!Ext.isEmpty(this.targetCls)){var a=this.container.getLayoutTarget();if(a)a.removeClass(this.targetCls)}}});Ext.layout.AutoLayout=Ext.extend(Ext.layout.ContainerLayout,{type:"auto",monitorResize:true,onLayout:function(d,g){Ext.layout.AutoLayout.superclass.onLayout.call(this,d,g);var e=this.getRenderedItems(d),a=e.length,b,h;for(b=0;b<a;b++){h=e[b];if(h.doLayout)h.doLayout(true)}}});Ext.Container.LAYOUTS.auto=Ext.layout.AutoLayout;Ext.layout.FitLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,type:"fit",getLayoutTargetSize:function(){var a=this.container.getLayoutTarget();if(!a)return{};return a.getStyleSize()},onLayout:function(a,b){Ext.layout.FitLayout.superclass.onLayout.call(this,a,b);if(!a.collapsed)this.setItemSize(this.activeItem||a.items.itemAt(0),this.getLayoutTargetSize())},setItemSize:function(b,a){if(b&&a.height>0)b.setSize(a)}});Ext.Container.LAYOUTS.fit=Ext.layout.FitLayout;Ext.layout.CardLayout=Ext.extend(Ext.layout.FitLayout,{deferredRender:false,layoutOnCardChange:false,renderHidden:true,type:"card",setActiveItem:function(d){var a=this.activeItem,b=this.container;d=b.getComponent(d);if(d&&a!=d){if(a){a.hide();if(a.hidden!==true)return false;a.fireEvent("deactivate",a)}var c=d.doLayout&&(this.layoutOnCardChange||!d.rendered);this.activeItem=d;delete d.deferLayout;d.show();this.layout();if(c)d.doLayout();d.fireEvent("activate",d)}},renderAll:function(a,b){if(this.deferredRender)this.renderItem(this.activeItem,undefined,b);else Ext.layout.CardLayout.superclass.renderAll.call(this,a,b)}});Ext.Container.LAYOUTS.card=Ext.layout.CardLayout;Ext.layout.AnchorLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,type:"anchor",defaultAnchor:"100%",parseAnchorRE:/^(r|right|b|bottom)$/i,getLayoutTargetSize:function(){var a=this.container.getLayoutTarget();if(!a)return{};return a.getStyleSize()},onLayout:function(m,p){Ext.layout.AnchorLayout.superclass.onLayout.call(this,m,p);var v=this.getLayoutTargetSize();var t=v.width,l=v.height;if(t<20&&l<20)return;var d,r;if(m.anchorSize)if(typeof m.anchorSize=="number")d=m.anchorSize;else{d=m.anchorSize.width;r=m.anchorSize.height}else{d=m.initialConfig.width;r=m.initialConfig.height}var o=this.getRenderedItems(m),n=o.length,j,q,s,g,b,e,u,k=[];for(j=0;j<n;j++){q=o[j];e=q.getPositionEl();if(!q.anchor&&q.items&&!Ext.isNumber(q.width)&&!(Ext.isIE6&&Ext.isStrict))q.anchor=this.defaultAnchor;if(q.anchor){s=q.anchorSpec;if(!s){u=q.anchor.split(" ");q.anchorSpec=s={right:this.parseAnchor(u[0],q.initialConfig.width,d),bottom:this.parseAnchor(u[1],q.initialConfig.height,r)}}g=s.right?this.adjustWidthAnchor(s.right(t)-e.getMargins("lr"),q):undefined;b=s.bottom?this.adjustHeightAnchor(s.bottom(l)-e.getMargins("tb"),q):undefined;if(g||b)k.push({comp:q,width:g||undefined,height:b||undefined})}}for(j=0,n=k.length;j<n;j++){q=k[j];q.comp.setSize(q.width,q.height)}},parseAnchor:function(c,h,b){if(c&&c!="none"){var e;if(this.parseAnchorRE.test(c)){var g=b-h;return function(a){if(a!==e){e=a;return a-g}}}else if(c.indexOf("%")!=-1){var d=parseFloat(c.replace("%",""))*.01;return function(a){if(a!==e){e=a;return Math.floor(a*d)}}}else{c=parseInt(c,10);if(!isNaN(c))return function(a){if(a!==e){e=a;return a+c}}}}return false},adjustWidthAnchor:function(b,a){return b},adjustHeightAnchor:function(b,a){return b}});Ext.Container.LAYOUTS.anchor=Ext.layout.AnchorLayout;Ext.layout.ColumnLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,type:"column",extraCls:"x-column",scrollOffset:0,targetCls:"x-column-layout-ct",isValidParent:function(b,a){return this.innerCt&&b.getPositionEl().dom.parentNode==this.innerCt.dom},getLayoutTargetSize:function(){var b=this.container.getLayoutTarget(),a;if(b){a=b.getViewSize();if(Ext.isIE&&Ext.isStrict&&a.width==0)a=b.getStyleSize();a.width-=b.getPadding("lr");a.height-=b.getPadding("tb")}return a},renderAll:function(a,b){if(!this.innerCt){this.innerCt=b.createChild({cls:"x-column-inner"});this.innerCt.createChild({cls:"x-clear"})}Ext.layout.ColumnLayout.superclass.renderAll.call(this,a,this.innerCt)},onLayout:function(e,k){var g=e.items.items,j=g.length,n,b,a,o=[];this.renderAll(e,k);var r=this.getLayoutTargetSize();if(r.width<1&&r.height<1)return;var p=r.width-this.scrollOffset,d=r.height,q=p;this.innerCt.setWidth(p);for(b=0;b<j;b++){n=g[b];a=n.getPositionEl().getMargins("lr");o[b]=a;if(!n.columnWidth)q-=n.getWidth()+a}q=q<0?0:q;for(b=0;b<j;b++){n=g[b];a=o[b];if(n.columnWidth)n.setSize(Math.floor(n.columnWidth*q)-a)}if(Ext.isIE)if(b=k.getStyle("overflow")&&b!="hidden"&&!this.adjustmentPass){var l=this.getLayoutTargetSize();if(l.width!=r.width){this.adjustmentPass=true;this.onLayout(e,k)}}delete this.adjustmentPass}});Ext.Container.LAYOUTS.column=Ext.layout.ColumnLayout;Ext.layout.BorderLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,rendered:false,type:"border",targetCls:"x-border-layout-ct",getLayoutTargetSize:function(){var a=this.container.getLayoutTarget();return a?a.getViewSize():{}},onLayout:function(g,I){var j,B,F,o,x=g.items.items,C=x.length;if(!this.rendered){j=[];for(B=0;B<C;B++){F=x[B];o=F.region;if(F.collapsed)j.push(F);F.collapsed=false;if(!F.rendered){F.render(I,B);F.getPositionEl().addClass("x-border-panel")}this[o]=o!="center"&&F.split?new Ext.layout.BorderLayout.SplitRegion(this,F.initialConfig,o):new Ext.layout.BorderLayout.Region(this,F.initialConfig,o);this[o].render(I,F)}this.rendered=true}var v=this.getLayoutTargetSize();if(v.width<20||v.height<20){if(j)this.restoreCollapsed=j;return}else if(this.restoreCollapsed){j=this.restoreCollapsed;delete this.restoreCollapsed}var t=v.width,D=v.height,r=t,A=D,p=0,q=0,y=this.north,u=this.south,l=this.west,E=this.east,F=this.center,H,z,d,G;if(!F&&Ext.layout.BorderLayout.WARN!==false)throw"No center region defined in BorderLayout "+g.id;if(y&&y.isVisible()){H=y.getSize();z=y.getMargins();H.width=t-(z.left+z.right);H.x=z.left;H.y=z.top;p=H.height+H.y+z.bottom;A-=p;y.applyLayout(H)}if(u&&u.isVisible()){H=u.getSize();z=u.getMargins();H.width=t-(z.left+z.right);H.x=z.left;G=H.height+z.top+z.bottom;H.y=D-G+z.top;A-=G;u.applyLayout(H)}if(l&&l.isVisible()){H=l.getSize();z=l.getMargins();H.height=A-(z.top+z.bottom);H.x=z.left;H.y=p+z.top;d=H.width+z.left+z.right;q+=d;r-=d;l.applyLayout(H)}if(E&&E.isVisible()){H=E.getSize();z=E.getMargins();H.height=A-(z.top+z.bottom);d=H.width+z.left+z.right;H.x=t-d+z.left;H.y=p+z.top;r-=d;E.applyLayout(H)}if(F){z=F.getMargins();var k={x:q+z.left,y:p+z.top,width:r-(z.left+z.right),height:A-(z.top+z.bottom)};F.applyLayout(k)}if(j)for(B=0,C=j.length;B<C;B++)j[B].collapse(false);if(Ext.isIE&&Ext.isStrict)I.repaint();if(B=I.getStyle("overflow")&&B!="hidden"&&!this.adjustmentPass){var a=this.getLayoutTargetSize();if(a.width!=v.width||a.height!=v.height){this.adjustmentPass=true;this.onLayout(g,I)}}delete this.adjustmentPass},destroy:function(){var b=["north","south","east","west"],a,c;for(a=0;a<b.length;a++){c=this[b[a]];if(c)if(c.destroy)c.destroy();else if(c.split)c.split.destroy(true)}Ext.layout.BorderLayout.superclass.destroy.call(this)}});Ext.layout.BorderLayout.Region=function(b,a,c){Ext.apply(this,a);this.layout=b;this.position=c;this.state={};if(typeof this.margins=="string")this.margins=this.layout.parseMargins(this.margins);this.margins=Ext.applyIf(this.margins||{},this.defaultMargins);if(this.collapsible){if(typeof this.cmargins=="string")this.cmargins=this.layout.parseMargins(this.cmargins);if(this.collapseMode=="mini"&&!this.cmargins)this.cmargins={left:0,top:0,right:0,bottom:0};else this.cmargins=Ext.applyIf(this.cmargins||{},c=="north"||c=="south"?this.defaultNSCMargins:this.defaultEWCMargins)}};Ext.layout.BorderLayout.Region.prototype={collapsible:false,split:false,floatable:true,minWidth:50,minHeight:50,defaultMargins:{left:0,top:0,right:0,bottom:0},defaultNSCMargins:{left:5,top:5,right:5,bottom:5},defaultEWCMargins:{left:5,top:0,right:5,bottom:0},floatingZIndex:100,isCollapsed:false,render:function(b,c){this.panel=c;c.el.enableDisplayMode();this.targetEl=b;this.el=c.el;var a=c.getState,d=this.position;c.getState=function(){return Ext.apply(a.call(c)||{},this.state)}.createDelegate(this);if(d!="center"){c.allowQueuedExpand=false;c.on({beforecollapse:this.beforeCollapse,collapse:this.onCollapse,beforeexpand:this.beforeExpand,expand:this.onExpand,hide:this.onHide,show:this.onShow,scope:this});if(this.collapsible||this.floatable){c.collapseEl="el";c.slideAnchor=this.getSlideAnchor()}if(c.tools&&c.tools.toggle){c.tools.toggle.addClass("x-tool-collapse-"+d);c.tools.toggle.addClassOnOver("x-tool-collapse-"+d+"-over")}}},getCollapsedEl:function(){if(!this.collapsedEl){if(!this.toolTemplate){var b=new Ext.Template('<div class="x-tool x-tool-{id}">&#160;</div>');b.disableFormats=true;b.compile();Ext.layout.BorderLayout.Region.prototype.toolTemplate=b}this.collapsedEl=this.targetEl.createChild({cls:"x-layout-collapsed x-layout-collapsed-"+this.position,id:this.panel.id+"-xcollapsed"});this.collapsedEl.enableDisplayMode("block");if(this.collapseMode=="mini"){this.collapsedEl.addClass("x-layout-cmini-"+this.position);this.miniCollapsedEl=this.collapsedEl.createChild({cls:"x-layout-mini x-layout-mini-"+this.position,html:"&#160;"});this.miniCollapsedEl.addClassOnOver("x-layout-mini-over");this.collapsedEl.addClassOnOver("x-layout-collapsed-over");this.collapsedEl.on("click",this.onExpandClick,this,{stopEvent:true})}else{if(this.collapsible!==false&&!this.hideCollapseTool){var a=this.toolTemplate.append(this.collapsedEl.dom,{id:"expand-"+this.position},true);a.addClassOnOver("x-tool-expand-"+this.position+"-over");a.on("click",this.onExpandClick,this,{stopEvent:true})}if(this.floatable!==false||this.titleCollapse){this.collapsedEl.addClassOnOver("x-layout-collapsed-over");this.collapsedEl.on("click",this[this.floatable?"collapseClick":"onExpandClick"],this)}}}return this.collapsedEl},onExpandClick:function(a){if(this.isSlid)this.panel.expand(false);else this.panel.expand()},onCollapseClick:function(a){this.panel.collapse()},beforeCollapse:function(c,a){this.lastAnim=a;if(this.splitEl)this.splitEl.hide();this.getCollapsedEl().show();var b=this.panel.getEl();this.originalZIndex=b.getStyle("z-index");b.setStyle("z-index",100);this.isCollapsed=true;this.layout.layout()},onCollapse:function(a){this.panel.el.setStyle("z-index",1);if(this.lastAnim===false||this.panel.animCollapse===false)this.getCollapsedEl().dom.style.visibility="visible";else this.getCollapsedEl().slideIn(this.panel.slideAnchor,{duration:.2});this.state.collapsed=true;this.panel.saveState()},beforeExpand:function(a){if(this.isSlid)this.afterSlideIn();var b=this.getCollapsedEl();this.el.show();if(this.position=="east"||this.position=="west")this.panel.setSize(undefined,b.getHeight());else this.panel.setSize(b.getWidth(),undefined);b.hide();b.dom.style.visibility="hidden";this.panel.el.setStyle("z-index",this.floatingZIndex)},onExpand:function(){this.isCollapsed=false;if(this.splitEl)this.splitEl.show();this.layout.layout();this.panel.el.setStyle("z-index",this.originalZIndex);this.state.collapsed=false;this.panel.saveState()},collapseClick:function(a){if(this.isSlid){a.stopPropagation();this.slideIn()}else{a.stopPropagation();this.slideOut()}},onHide:function(){if(this.isCollapsed)this.getCollapsedEl().hide();else if(this.splitEl)this.splitEl.hide()},onShow:function(){if(this.isCollapsed)this.getCollapsedEl().show();else if(this.splitEl)this.splitEl.show()},isVisible:function(){return!this.panel.hidden},getMargins:function(){return this.isCollapsed&&this.cmargins?this.cmargins:this.margins},getSize:function(){return this.isCollapsed?this.getCollapsedEl().getSize():this.panel.getSize()},setPanel:function(a){this.panel=a},getMinWidth:function(){return this.minWidth},getMinHeight:function(){return this.minHeight},applyLayoutCollapsed:function(a){var b=this.getCollapsedEl();b.setLeftTop(a.x,a.y);b.setSize(a.width,a.height)},applyLayout:function(a){if(this.isCollapsed)this.applyLayoutCollapsed(a);else{this.panel.setPosition(a.x,a.y);this.panel.setSize(a.width,a.height)}},beforeSlide:function(){this.panel.beforeEffect()},afterSlide:function(){this.panel.afterEffect()},initAutoHide:function(){if(this.autoHide!==false){if(!this.autoHideHd){this.autoHideSlideTask=new Ext.util.DelayedTask(this.slideIn,this);this.autoHideHd={mouseout:function(a){if(!a.within(this.el,true))this.autoHideSlideTask.delay(500)},mouseover:function(a){this.autoHideSlideTask.cancel()},scope:this}}this.el.on(this.autoHideHd);this.collapsedEl.on(this.autoHideHd)}},clearAutoHide:function(){if(this.autoHide!==false){this.el.un("mouseout",this.autoHideHd.mouseout);this.el.un("mouseover",this.autoHideHd.mouseover);this.collapsedEl.un("mouseout",this.autoHideHd.mouseout);this.collapsedEl.un("mouseover",this.autoHideHd.mouseover)}},clearMonitor:function(){Ext.getDoc().un("click",this.slideInIf,this)},slideOut:function(){if(this.isSlid||this.el.hasActiveFx())return;this.isSlid=true;var b=this.panel.tools,c,a;if(b&&b.toggle)b.toggle.hide();this.el.show();a=this.panel.collapsed;this.panel.collapsed=false;if(this.position=="east"||this.position=="west"){c=this.panel.deferHeight;this.panel.deferHeight=false;this.panel.setSize(undefined,this.collapsedEl.getHeight());this.panel.deferHeight=c}else this.panel.setSize(this.collapsedEl.getWidth(),undefined);this.panel.collapsed=a;this.restoreLT=[this.el.dom.style.left,this.el.dom.style.top];this.el.alignTo(this.collapsedEl,this.getCollapseAnchor());this.el.setStyle("z-index",this.floatingZIndex+2);this.panel.el.replaceClass("x-panel-collapsed","x-panel-floating");if(this.animFloat!==false){this.beforeSlide();this.el.slideIn(this.getSlideAnchor(),{callback:function(){this.afterSlide();this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this)},scope:this,block:true})}else{this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this)}},afterSlideIn:function(){this.clearAutoHide();this.isSlid=false;this.clearMonitor();this.el.setStyle("z-index","");this.panel.el.replaceClass("x-panel-floating","x-panel-collapsed");this.el.dom.style.left=this.restoreLT[0];this.el.dom.style.top=this.restoreLT[1];var a=this.panel.tools;if(a&&a.toggle)a.toggle.show()},slideIn:function(a){if(!this.isSlid||this.el.hasActiveFx()){Ext.callback(a);return}this.isSlid=false;if(this.animFloat!==false){this.beforeSlide();this.el.slideOut(this.getSlideAnchor(),{callback:function(){this.el.hide();this.afterSlide();this.afterSlideIn();Ext.callback(a)},scope:this,block:true})}else{this.el.hide();this.afterSlideIn()}},slideInIf:function(a){if(!a.within(this.el))this.slideIn()},anchors:{west:"left",east:"right",north:"top",south:"bottom"},sanchors:{west:"l",east:"r",north:"t",south:"b"},canchors:{west:"tl-tr",east:"tr-tl",north:"tl-bl",south:"bl-tl"},getAnchor:function(){return this.anchors[this.position]},getCollapseAnchor:function(){return this.canchors[this.position]},getSlideAnchor:function(){return this.sanchors[this.position]},getAlignAdj:function(){var a=this.cmargins;switch(this.position){case"west":return[0,0];break;case"east":return[0,0];break;case"north":return[0,0];break;case"south":return[0,0];break}},getExpandAdj:function(){var b=this.collapsedEl,a=this.cmargins;switch(this.position){case"west":return[-(a.right+b.getWidth()+a.left),0];break;case"east":return[a.right+b.getWidth()+a.left,0];break;case"north":return[0,-(a.top+a.bottom+b.getHeight())];break;case"south":return[0,a.top+a.bottom+b.getHeight()];break}},destroy:function(){if(this.autoHideSlideTask&&this.autoHideSlideTask.cancel)this.autoHideSlideTask.cancel();Ext.destroy(this.miniCollapsedEl,this.collapsedEl)}};Ext.layout.BorderLayout.SplitRegion=function(b,a,c){Ext.layout.BorderLayout.SplitRegion.superclass.constructor.call(this,b,a,c);this.applyLayout=this.applyFns[c]};Ext.extend(Ext.layout.BorderLayout.SplitRegion,Ext.layout.BorderLayout.Region,{splitTip:"Drag to resize.",collapsibleSplitTip:"Drag to resize. Double click to hide.",useSplitTips:false,splitSettings:{north:{orientation:Ext.SplitBar.VERTICAL,placement:Ext.SplitBar.TOP,maxFn:"getVMaxSize",minProp:"minHeight",maxProp:"maxHeight"},south:{orientation:Ext.SplitBar.VERTICAL,placement:Ext.SplitBar.BOTTOM,maxFn:"getVMaxSize",minProp:"minHeight",maxProp:"maxHeight"},east:{orientation:Ext.SplitBar.HORIZONTAL,placement:Ext.SplitBar.RIGHT,maxFn:"getHMaxSize",minProp:"minWidth",maxProp:"maxWidth"},west:{orientation:Ext.SplitBar.HORIZONTAL,placement:Ext.SplitBar.LEFT,maxFn:"getHMaxSize",minProp:"minWidth",maxProp:"maxWidth"}},applyFns:{west:function(c){if(this.isCollapsed)return this.applyLayoutCollapsed(c);var d=this.splitEl.dom,b=d.style;this.panel.setPosition(c.x,c.y);var a=d.offsetWidth;b.left=c.x+c.width-a+"px";b.top=c.y+"px";b.height=Math.max(0,c.height)+"px";this.panel.setSize(c.width-a,c.height)},east:function(c){if(this.isCollapsed)return this.applyLayoutCollapsed(c);var d=this.splitEl.dom,b=d.style;var a=d.offsetWidth;this.panel.setPosition(c.x+a,c.y);b.left=c.x+"px";b.top=c.y+"px";b.height=Math.max(0,c.height)+"px";this.panel.setSize(c.width-a,c.height)},north:function(c){if(this.isCollapsed)return this.applyLayoutCollapsed(c);var d=this.splitEl.dom,b=d.style;var a=d.offsetHeight;this.panel.setPosition(c.x,c.y);b.left=c.x+"px";b.top=c.y+c.height-a+"px";b.width=Math.max(0,c.width)+"px";this.panel.setSize(c.width,c.height-a)},south:function(c){if(this.isCollapsed)return this.applyLayoutCollapsed(c);var d=this.splitEl.dom,b=d.style;var a=d.offsetHeight;this.panel.setPosition(c.x,c.y+a);b.left=c.x+"px";b.top=c.y+"px";b.width=Math.max(0,c.width)+"px";this.panel.setSize(c.width,c.height-a)}},render:function(a,c){Ext.layout.BorderLayout.SplitRegion.superclass.render.call(this,a,c);var d=this.position;this.splitEl=a.createChild({cls:"x-layout-split x-layout-split-"+d,html:"&#160;",id:this.panel.id+"-xsplit"});if(this.collapseMode=="mini"){this.miniSplitEl=this.splitEl.createChild({cls:"x-layout-mini x-layout-mini-"+d,html:"&#160;"});this.miniSplitEl.addClassOnOver("x-layout-mini-over");this.miniSplitEl.on("click",this.onCollapseClick,this,{stopEvent:true})}var b=this.splitSettings[d];this.split=new Ext.SplitBar(this.splitEl.dom,c.el,b.orientation);this.split.tickSize=this.tickSize;this.split.placement=b.placement;this.split.getMaximumSize=this[b.maxFn].createDelegate(this);this.split.minSize=this.minSize||this[b.minProp];this.split.on("beforeapply",this.onSplitMove,this);this.split.useShim=this.useShim===true;this.maxSize=this.maxSize||this[b.maxProp];if(c.hidden)this.splitEl.hide();if(this.useSplitTips)this.splitEl.dom.title=this.collapsible?this.collapsibleSplitTip:this.splitTip;if(this.collapsible)this.splitEl.on("dblclick",this.onCollapseClick,this)},getSize:function(){if(this.isCollapsed)return this.collapsedEl.getSize();var a=this.panel.getSize();if(this.position=="north"||this.position=="south")a.height+=this.splitEl.dom.offsetHeight;else a.width+=this.splitEl.dom.offsetWidth;return a},getHMaxSize:function(){var b=this.maxSize||1e4;var a=this.layout.center;return Math.min(b,this.el.getWidth()+a.el.getWidth()-a.getMinWidth())},getVMaxSize:function(){var b=this.maxSize||1e4;var a=this.layout.center;return Math.min(b,this.el.getHeight()+a.el.getHeight()-a.getMinHeight())},onSplitMove:function(b,a){var c=this.panel.getSize();this.lastSplitSize=a;if(this.position=="north"||this.position=="south"){this.panel.setSize(c.width,a);this.state.height=a}else{this.panel.setSize(a,c.height);this.state.width=a}this.layout.layout();this.panel.saveState();return false},getSplitBar:function(){return this.split},destroy:function(){Ext.destroy(this.miniSplitEl,this.split,this.splitEl);Ext.layout.BorderLayout.SplitRegion.superclass.destroy.call(this)}});Ext.Container.LAYOUTS.border=Ext.layout.BorderLayout;Ext.layout.FormLayout=Ext.extend(Ext.layout.AnchorLayout,{labelSeparator:":",trackLabels:false,type:"form",onRemove:function(d){Ext.layout.FormLayout.superclass.onRemove.call(this,d);if(this.trackLabels){d.un("show",this.onFieldShow,this);d.un("hide",this.onFieldHide,this)}var b=d.getPositionEl(),a=d.getItemCt&&d.getItemCt();if(d.rendered&&a){if(b&&b.dom)b.insertAfter(a);Ext.destroy(a);Ext.destroyMembers(d,"label","itemCt");if(d.customItemCt)Ext.destroyMembers(d,"getItemCt","customItemCt")}},setContainer:function(a){Ext.layout.FormLayout.superclass.setContainer.call(this,a);if(a.labelAlign)a.addClass("x-form-label-"+a.labelAlign);if(a.hideLabels)Ext.apply(this,{labelStyle:"display:none",elementStyle:"padding-left:0;",labelAdjust:0});else{this.labelSeparator=a.labelSeparator||this.labelSeparator;a.labelWidth=a.labelWidth||100;if(Ext.isNumber(a.labelWidth)){var b=Ext.isNumber(a.labelPad)?a.labelPad:5;Ext.apply(this,{labelAdjust:a.labelWidth+b,labelStyle:"width:"+a.labelWidth+"px;",elementStyle:"padding-left:"+(a.labelWidth+b)+"px"})}if(a.labelAlign=="top")Ext.apply(this,{labelStyle:"width:auto;",labelAdjust:0,elementStyle:"padding-left:0;"})}},isHide:function(a){return a.hideLabel||this.container.hideLabels},onFieldShow:function(a){a.getItemCt().removeClass("x-hide-"+a.hideMode);if(a.isComposite)a.doLayout()},onFieldHide:function(a){a.getItemCt().addClass("x-hide-"+a.hideMode)},getLabelStyle:function(e){var b="",c=[this.labelStyle,e];for(var d=0,a=c.length;d<a;++d)if(c[d]){b+=c[d];if(b.substr(-1,1)!=";")b+=";"}return b},renderItem:function(e,a,d){if(e&&(e.isFormField||e.fieldLabel)&&e.inputType!="hidden"){var b=this.getTemplateArgs(e);if(Ext.isNumber(a))a=d.dom.childNodes[a]||null;if(a)e.itemCt=this.fieldTpl.insertBefore(a,b,true);else e.itemCt=this.fieldTpl.append(d,b,true);if(!e.getItemCt)Ext.apply(e,{getItemCt:function(){return e.itemCt},customItemCt:true});e.label=e.getItemCt().child("label.x-form-item-label");if(!e.rendered)e.render("x-form-el-"+e.id);else if(!this.isValidParent(e,d))Ext.fly("x-form-el-"+e.id).appendChild(e.getPositionEl());if(this.trackLabels){if(e.hidden)this.onFieldHide(e);e.on({scope:this,show:this.onFieldShow,hide:this.onFieldHide})}this.configureItem(e)}else Ext.layout.FormLayout.superclass.renderItem.apply(this,arguments)},getTemplateArgs:function(b){var a=!b.fieldLabel||b.hideLabel;return{id:b.id,label:b.fieldLabel,itemCls:(b.itemCls||this.container.itemCls||"")+(b.hideLabel?" x-hide-label":""),clearCls:b.clearCls||"x-form-clear-left",labelStyle:this.getLabelStyle(b.labelStyle),elementStyle:this.elementStyle||"",labelSeparator:a?"":Ext.isDefined(b.labelSeparator)?b.labelSeparator:this.labelSeparator}},adjustWidthAnchor:function(a,d){if(d.label&&!this.isHide(d)&&this.container.labelAlign!="top"){var b=Ext.isIE6||Ext.isIE&&!Ext.isStrict;return a-this.labelAdjust+(b?-3:0)}return a},adjustHeightAnchor:function(a,b){if(b.label&&!this.isHide(b)&&this.container.labelAlign=="top")return a-b.label.getHeight();return a},isValidParent:function(b,a){return a&&this.container.getEl().contains(b.getPositionEl())}});Ext.Container.LAYOUTS.form=Ext.layout.FormLayout;Ext.layout.AccordionLayout=Ext.extend(Ext.layout.FitLayout,{fill:true,autoWidth:true,titleCollapse:true,hideCollapseTool:false,collapseFirst:false,animate:false,sequence:false,activeOnTop:false,type:"accordion",renderItem:function(a){if(this.animate===false)a.animCollapse=false;a.collapsible=true;if(this.autoWidth)a.autoWidth=true;if(this.titleCollapse)a.titleCollapse=true;if(this.hideCollapseTool)a.hideCollapseTool=true;if(this.collapseFirst!==undefined)a.collapseFirst=this.collapseFirst;if(!this.activeItem&&!a.collapsed)this.setActiveItem(a,true);else if(this.activeItem&&this.activeItem!=a)a.collapsed=true;Ext.layout.AccordionLayout.superclass.renderItem.apply(this,arguments);a.header.addClass("x-accordion-hd");a.on("beforeexpand",this.beforeExpand,this)},onRemove:function(a){Ext.layout.AccordionLayout.superclass.onRemove.call(this,a);if(a.rendered)a.header.removeClass("x-accordion-hd");a.un("beforeexpand",this.beforeExpand,this)},beforeExpand:function(c,b){var a=this.activeItem;if(a)if(this.sequence){delete this.activeItem;if(!a.collapsed){a.collapse({callback:function(){c.expand(b||true)},scope:this});return false}}else a.collapse(this.animate);this.setActive(c);if(this.activeOnTop)c.el.dom.parentNode.insertBefore(c.el.dom,c.el.dom.parentNode.firstChild);this.layout()},setItemSize:function(g,e){if(this.fill&&g){var d=0,c,b=this.getRenderedItems(this.container),a=b.length,h;for(c=0;c<a;c++)if((h=b[c])!=g&&!h.hidden)d+=h.header.getHeight();e.height-=d;g.setSize(e)}},setActiveItem:function(a){this.setActive(a,true)},setActive:function(c,b){var a=this.activeItem;c=this.container.getComponent(c);if(a!=c)if(c.rendered&&c.collapsed&&b)c.expand();else{if(a)a.fireEvent("deactivate",a);this.activeItem=c;c.fireEvent("activate",c)}}});Ext.Container.LAYOUTS.accordion=Ext.layout.AccordionLayout;Ext.layout.Accordion=Ext.layout.AccordionLayout;Ext.layout.TableLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:false,type:"table",targetCls:"x-table-layout-ct",tableAttrs:null,setContainer:function(a){Ext.layout.TableLayout.superclass.setContainer.call(this,a);this.currentRow=0;this.currentColumn=0;this.cells=[]},onLayout:function(d,g){var e=d.items.items,a=e.length,h,b;if(!this.table){g.addClass("x-table-layout-ct");this.table=g.createChild(Ext.apply({tag:"table",cls:"x-table-layout",cellspacing:0,cn:{tag:"tbody"}},this.tableAttrs),null,true)}this.renderAll(d,g)},getRow:function(a){var b=this.table.tBodies[0].childNodes[a];if(!b){b=document.createElement("tr");this.table.tBodies[0].appendChild(b)}return b},getNextCell:function(j){var a=this.getNextNonSpan(this.currentColumn,this.currentRow);var g=this.currentColumn=a[0],e=this.currentRow=a[1];for(var i=e;i<e+(j.rowspan||1);i++){if(!this.cells[i])this.cells[i]=[];for(var d=g;d<g+(j.colspan||1);d++)this.cells[i][d]=true}var h=document.createElement("td");if(j.cellId)h.id=j.cellId;var b="x-table-layout-cell";if(j.cellCls)b+=" "+j.cellCls;h.className=b;if(j.colspan)h.colSpan=j.colspan;if(j.rowspan)h.rowSpan=j.rowspan;this.getRow(e).appendChild(h);return h},getNextNonSpan:function(a,c){var b=this.columns;while(b&&a>=b||this.cells[c]&&this.cells[c][a])if(b&&a>=b){c++;a=0}else a++;return[a,c]},renderItem:function(e,a,d){if(!this.table)this.table=d.createChild(Ext.apply({tag:"table",cls:"x-table-layout",cellspacing:0,cn:{tag:"tbody"}},this.tableAttrs),null,true);if(e&&!e.rendered){e.render(this.getNextCell(e));this.configureItem(e,a)}else if(e&&!this.isValidParent(e,d)){var b=this.getNextCell(e);b.insertBefore(e.getPositionEl().dom,null);e.container=Ext.get(b);this.configureItem(e,a)}},isValidParent:function(b,a){return b.getPositionEl().up("table",5).dom.parentNode===(a.dom||a)}});Ext.Container.LAYOUTS.table=Ext.layout.TableLayout;Ext.layout.AbsoluteLayout=Ext.extend(Ext.layout.AnchorLayout,{extraCls:"x-abs-layout-item",type:"absolute",onLayout:function(a,b){b.position();this.paddingLeft=b.getPadding("l");this.paddingTop=b.getPadding("t");Ext.layout.AbsoluteLayout.superclass.onLayout.call(this,a,b)},adjustWidthAnchor:function(b,a){return b?b-a.getPosition(true)[0]+this.paddingLeft:b},adjustHeightAnchor:function(b,a){return b?b-a.getPosition(true)[1]+this.paddingTop:b}});Ext.Container.LAYOUTS.absolute=Ext.layout.AbsoluteLayout;Ext.layout.BoxLayout=Ext.extend(Ext.layout.ContainerLayout,{defaultMargins:{left:0,top:0,right:0,bottom:0},padding:"0",pack:"start",monitorResize:true,type:"box",scrollOffset:0,extraCls:"x-box-item",targetCls:"x-box-layout-ct",innerCls:"x-box-inner",constructor:function(a){Ext.layout.BoxLayout.superclass.constructor.call(this,a);if(Ext.isString(this.defaultMargins))this.defaultMargins=this.parseMargins(this.defaultMargins)},onLayout:function(a,d){Ext.layout.BoxLayout.superclass.onLayout.call(this,a,d);var b=this.getVisibleItems(a),c=this.getLayoutTargetSize();this.layoutTargetLastSize=c;this.childBoxCache=this.calculateChildBoxes(b,c);this.updateInnerCtSize(c,this.childBoxCache);this.updateChildBoxes(this.childBoxCache.boxes);this.handleTargetOverflow(c,a,d)},updateChildBoxes:function(c){for(var b=0,e=c.length;b<e;b++){var d=c[b],a=d.component;if(d.dirtySize)a.setSize(d.width,d.height);if(isNaN(d.left)||isNaN(d.top))continue;a.setPosition(d.left,d.top)}},updateInnerCtSize:Ext.emptyFn,handleTargetOverflow:function(d,a,c){var e=c.getStyle("overflow");if(e&&e!="hidden"&&!this.adjustmentPass){var b=this.getLayoutTargetSize();if(b.width!=d.width||b.height!=d.height){this.adjustmentPass=true;this.onLayout(a,c)}}delete this.adjustmentPass},isValidParent:function(b,a){return this.innerCt&&b.getPositionEl().dom.parentNode==this.innerCt.dom},getVisibleItems:function(g){var g=g||this.container,e=g.getLayoutTarget(),h=g.items.items,a=h.length,d,j,b=[];for(d=0;d<a;d++)if((j=h[d]).rendered&&this.isValidParent(j,e)&&j.hidden!==true&&j.collapsed!==true)b.push(j);return b},renderAll:function(a,b){if(!this.innerCt){this.innerCt=b.createChild({cls:this.innerCls});this.padding=this.parseMargins(this.padding)}Ext.layout.BoxLayout.superclass.renderAll.call(this,a,this.innerCt)},getLayoutTargetSize:function(){var b=this.container.getLayoutTarget(),a;if(b){a=b.getViewSize();if(Ext.isIE&&Ext.isStrict&&a.width==0)a=b.getStyleSize();a.width-=b.getPadding("lr");a.height-=b.getPadding("tb")}return a},renderItem:function(a){if(Ext.isString(a.margins))a.margins=this.parseMargins(a.margins);else if(!a.margins)a.margins=this.defaultMargins;Ext.layout.BoxLayout.superclass.renderItem.apply(this,arguments)}});Ext.layout.VBoxLayout=Ext.extend(Ext.layout.BoxLayout,{align:"left",type:"vbox",updateInnerCtSize:function(b,d){var c=b.height,a=d.meta.maxWidth+this.padding.left+this.padding.right;if(this.align=="stretch")a=b.width;else if(this.align=="center")a=Math.max(b.width,a);this.innerCt.setSize(a||undefined,c||undefined)},calculateChildBoxes:function(w,e){var k=w.length,u=this.padding,y=u.top,p=u.left,q=y+u.bottom,a=p+u.right,x=e.width-this.scrollOffset,v=e.height,A=Math.max(0,x-a),l=this.pack=="start",m=this.pack=="center",n=this.pack=="end",I=0,E=0,z=0,j=[],h,d,g,b,t,C,B,s,F,G,D;for(B=0;B<k;B++){h=w[B];g=h.height;d=h.width;C=!h.hasLayout&&Ext.isFunction(h.doLayout);if(!Ext.isNumber(g))if(h.flex&&!g)z+=h.flex;else{if(!g&&C)h.doLayout();b=h.getSize();d=b.width;g=b.height}t=h.margins;I+=(g||0)+t.top+t.bottom;if(!Ext.isNumber(d)){if(C)h.doLayout();d=h.getWidth()}E=Math.max(E,d+t.left+t.right);j.push({component:h,height:g||undefined,width:d||undefined})}var c=Math.max(0,v-I-q);if(m)y+=c/2;else if(n)y+=c;var o=c,H=z;for(B=0;B<k;B++){h=w[B];s=j[B];t=h.margins;G=t.left+t.right;y+=t.top;if(l&&h.flex&&!h.height){F=Math.ceil(h.flex/H*o);o-=F;H-=h.flex;s.height=F;s.dirtySize=true}s.left=p+t.left;s.top=y;switch(this.align){case"stretch":D=A-G;s.width=D.constrain(h.minWidth||0,h.maxWidth||1e6);s.dirtySize=true;break;case"stretchmax":D=E-G;s.width=D.constrain(h.minWidth||0,h.maxWidth||1e6);s.dirtySize=true;break;case"center":var r=A-s.width-G;if(r>0)s.left=p+G+r/2}y+=s.height+t.bottom}return{boxes:j,meta:{maxWidth:E}}}});Ext.Container.LAYOUTS.vbox=Ext.layout.VBoxLayout;Ext.layout.HBoxLayout=Ext.extend(Ext.layout.BoxLayout,{align:"top",type:"hbox",updateInnerCtSize:function(b,d){var a=b.width,c=d.meta.maxHeight+this.padding.top+this.padding.bottom;if(this.align=="stretch")c=b.height;else if(this.align=="middle")c=Math.max(b.height,c);this.innerCt.setSize(a||undefined,c||undefined)},calculateChildBoxes:function(z,e){var n=z.length,x=this.padding,C=x.top,r=x.left,s=C+x.bottom,a=r+x.right,B=e.width-this.scrollOffset,y=e.height,h=Math.max(0,y-s),o=this.pack=="start",p=this.pack=="center",q=this.pack=="end",I=0,A=0,D=0,m=[],l,d,g,c,w,F,E,v,H,j,t;for(E=0;E<n;E++){l=z[E];g=l.height;d=l.width;F=!l.hasLayout&&Ext.isFunction(l.doLayout);if(!Ext.isNumber(d))if(l.flex&&!d)D+=l.flex;else{if(!d&&F)l.doLayout();c=l.getSize();d=c.width;g=c.height}w=l.margins;I+=(d||0)+w.left+w.right;if(!Ext.isNumber(g)){if(F)l.doLayout();g=l.getHeight()}A=Math.max(A,g+w.top+w.bottom);m.push({component:l,height:g||undefined,width:d||undefined})}var b=Math.max(0,B-I-a);if(p)r+=b/2;else if(q)r+=b;var k=b,G=D;for(E=0;E<n;E++){l=z[E];v=m[E];w=l.margins;j=w.top+w.bottom;r+=w.left;if(o&&l.flex&&!l.width){H=Math.ceil(l.flex/G*k);k-=H;G-=l.flex;v.width=H;v.dirtySize=true}v.left=r;v.top=C+w.top;switch(this.align){case"stretch":t=h-j;v.height=t.constrain(l.minHeight||0,l.maxHeight||1e6);v.dirtySize=true;break;case"stretchmax":t=A-j;v.height=t.constrain(l.minHeight||0,l.maxHeight||1e6);v.dirtySize=true;break;case"middle":var u=h-v.height-j;if(u>0)v.top=C+j+u/2}r+=v.width+w.right}return{boxes:m,meta:{maxHeight:A}}}});Ext.Container.LAYOUTS.hbox=Ext.layout.HBoxLayout;Ext.layout.ToolbarLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,type:"toolbar",triggerWidth:18,noItemsMenuText:'<div class="x-toolbar-no-items">(None)</div>',lastOverflow:false,tableHTML:['<table cellspacing="0" class="x-toolbar-ct">',"<tbody>","<tr>",'<td class="x-toolbar-left" align="{0}">','<table cellspacing="0">',"<tbody>",'<tr class="x-toolbar-left-row"></tr>',"</tbody>","</table>","</td>",'<td class="x-toolbar-right" align="right">','<table cellspacing="0" class="x-toolbar-right-ct">',"<tbody>","<tr>","<td>",'<table cellspacing="0">',"<tbody>",'<tr class="x-toolbar-right-row"></tr>',"</tbody>","</table>","</td>","<td>",'<table cellspacing="0">',"<tbody>",'<tr class="x-toolbar-extras-row"></tr>',"</tbody>","</table>","</td>","</tr>","</tbody>","</table>","</td>","</tr>","</tbody>","</table>"].join(""),onLayout:function(e,j){if(!this.leftTr){var h=e.buttonAlign=="center"?"center":"left";j.addClass("x-toolbar-layout-ct");j.insertHtml("beforeEnd",String.format(this.tableHTML,h));this.leftTr=j.child("tr.x-toolbar-left-row",true);this.rightTr=j.child("tr.x-toolbar-right-row",true);this.extrasTr=j.child("tr.x-toolbar-extras-row",true);if(this.hiddenItem==undefined)this.hiddenItems=[]}var k=e.buttonAlign=="right"?this.rightTr:this.leftTr,l=e.items.items,d=0;for(var b=0,g=l.length,m;b<g;b++,d++){m=l[b];if(m.isFill){k=this.rightTr;d=-1}else if(!m.rendered)m.render(this.insertCell(m,k,d));else if(!m.xtbHidden&&!this.isValidParent(m,k.childNodes[d])){var a=this.insertCell(m,k,d);a.appendChild(m.getPositionEl().dom);m.container=Ext.get(a)}}this.cleanup(this.leftTr);this.cleanup(this.rightTr);this.cleanup(this.extrasTr);this.fitToSize(j)},cleanup:function(b){var e=b.childNodes,a,d;for(a=e.length-1;a>=0&&(d=e[a]);a--)if(!d.firstChild)b.removeChild(d)},insertCell:function(e,b,a){var d=document.createElement("td");d.className="x-toolbar-cell";b.insertBefore(d,b.childNodes[a]||null);return d},hideItem:function(a){this.hiddenItems.push(a);a.xtbHidden=true;a.xtbWidth=a.getPositionEl().dom.parentNode.offsetWidth;a.hide()},unhideItem:function(a){a.show();a.xtbHidden=false;this.hiddenItems.remove(a)},getItemWidth:function(a){return a.hidden?a.xtbWidth||0:a.getPositionEl().dom.parentNode.offsetWidth},fitToSize:function(k){if(this.container.enableOverflow===false)return;var b=k.dom.clientWidth,j=k.dom.firstChild.offsetWidth,m=b-this.triggerWidth,a=this.lastWidth||0,c=this.hiddenItems,e=c.length!=0,n=b>=a;this.lastWidth=b;if(j>b||e&&n){var l=this.container.items.items,h=l.length,d=0,o;for(var g=0;g<h;g++){o=l[g];if(!o.isFill){d+=this.getItemWidth(o);if(d>m){if(!(o.hidden||o.xtbHidden))this.hideItem(o)}else if(o.xtbHidden)this.unhideItem(o)}}}e=c.length!=0;if(e){this.initMore();if(!this.lastOverflow){this.container.fireEvent("overflowchange",this.container,true);this.lastOverflow=true}}else if(this.more){this.clearMenu();this.more.destroy();delete this.more;if(this.lastOverflow){this.container.fireEvent("overflowchange",this.container,false);this.lastOverflow=false}}},createMenuConfig:function(c,a){var b=Ext.apply({},c.initialConfig),d=c.toggleGroup;Ext.copyTo(b,c,["iconCls","icon","itemId","disabled","handler","scope","menu"]);Ext.apply(b,{text:c.overflowText||c.text,hideOnClick:a});if(d||c.enableToggle)Ext.apply(b,{group:d,checked:c.pressed,listeners:{checkchange:function(g,e){c.toggle(e)}}});delete b.ownerCt;delete b.xtype;delete b.id;return b},addComponentToMenu:function(b,a){if(a instanceof Ext.Toolbar.Separator)b.add("-");else if(Ext.isFunction(a.isXType))if(a.isXType("splitbutton"))b.add(this.createMenuConfig(a,true));else if(a.isXType("button"))b.add(this.createMenuConfig(a,!a.menu));else if(a.isXType("buttongroup"))a.items.each(function(c){this.addComponentToMenu(b,c)},this)},clearMenu:function(){var a=this.moreMenu;if(a&&a.items)a.items.each(function(b){delete b.menu})},beforeMoreShow:function(h){var b=this.container.items.items,a=b.length,g,e;var c=function(j,i){return j.isXType("buttongroup")&&!(i instanceof Ext.Toolbar.Separator)};this.clearMenu();h.removeAll();for(var d=0;d<a;d++){g=b[d];if(g.xtbHidden){if(e&&(c(g,e)||c(e,g)))h.add("-");this.addComponentToMenu(h,g);e=g}}if(h.items.length<1)h.add(this.noItemsMenuText)},initMore:function(){if(!this.more){this.moreMenu=new Ext.menu.Menu({ownerCt:this.container,listeners:{beforeshow:this.beforeMoreShow,scope:this}});this.more=new Ext.Button({iconCls:"x-toolbar-more-icon",cls:"x-toolbar-more",menu:this.moreMenu,ownerCt:this.container});var a=this.insertCell(this.more,this.extrasTr,100);this.more.render(a)}},destroy:function(){Ext.destroy(this.more,this.moreMenu);delete this.leftTr;delete this.rightTr;delete this.extrasTr;Ext.layout.ToolbarLayout.superclass.destroy.call(this)}});Ext.Container.LAYOUTS.toolbar=Ext.layout.ToolbarLayout;Ext.layout.MenuLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,type:"menu",setContainer:function(a){this.monitorResize=!a.floating;a.on("autosize",this.doAutoSize,this);Ext.layout.MenuLayout.superclass.setContainer.call(this,a)},renderItem:function(g,b,e){if(!this.itemTpl)this.itemTpl=Ext.layout.MenuLayout.prototype.itemTpl=new Ext.XTemplate('<li id="{itemId}" class="{itemCls}">','<tpl if="needsIcon">','<img src="{icon}" class="{iconCls}"/>',"</tpl>","</li>");if(g&&!g.rendered){if(Ext.isNumber(b))b=e.dom.childNodes[b];var d=this.getItemArgs(g);g.render(g.positionEl=b?this.itemTpl.insertBefore(b,d,true):this.itemTpl.append(e,d,true));g.positionEl.menuItemId=g.getItemId();if(!d.isMenuItem&&d.needsIcon)g.positionEl.addClass("x-menu-list-item-indent");this.configureItem(g,b)}else if(g&&!this.isValidParent(g,e)){if(Ext.isNumber(b))b=e.dom.childNodes[b];e.dom.insertBefore(g.getActionEl().dom,b||null)}},getItemArgs:function(b){var a=b instanceof Ext.menu.Item;return{isMenuItem:a,needsIcon:!a&&(b.icon||b.iconCls),icon:b.icon||Ext.BLANK_IMAGE_URL,iconCls:"x-menu-item-icon "+(b.iconCls||""),itemId:"x-menu-el-"+b.id,itemCls:"x-menu-list-item "}},isValidParent:function(b,a){return b.el.up("li.x-menu-list-item",5).dom.parentNode===(a.dom||a)},onLayout:function(a,b){Ext.layout.MenuLayout.superclass.onLayout.call(this,a,b);this.doAutoSize()},doAutoSize:function(){var c=this.container,a=c.width;if(c.floating)if(a)c.setWidth(a);else if(Ext.isIE){c.setWidth(Ext.isStrict&&(Ext.isIE7||Ext.isIE8)?"auto":c.minWidth);var d=c.getEl(),b=d.dom.offsetWidth;c.setWidth(c.getLayoutTarget().getWidth()+d.getFrameWidth("lr"))}}});Ext.Container.LAYOUTS.menu=Ext.layout.MenuLayout;Ext.Viewport=Ext.extend(Ext.Container,{initComponent:function(){Ext.Viewport.superclass.initComponent.call(this);document.getElementsByTagName("html")[0].className+=" x-viewport";this.el=Ext.getBody();this.el.setHeight=Ext.emptyFn;this.el.setWidth=Ext.emptyFn;this.el.setSize=Ext.emptyFn;this.el.dom.scroll="no";this.allowDomMove=false;this.autoWidth=true;this.autoHeight=true;Ext.EventManager.onWindowResize(this.fireResize,this);this.renderTo=this.el},fireResize:function(a,b){this.fireEvent("resize",this,a,b,a,b)}});Ext.reg("viewport",Ext.Viewport);Ext.Panel=Ext.extend(Ext.Container,{baseCls:"x-panel",collapsedCls:"x-panel-collapsed",maskDisabled:true,animCollapse:Ext.enableFx,headerAsText:true,buttonAlign:"right",collapsed:false,collapseFirst:true,minButtonWidth:75,elements:"body",preventBodyReset:false,padding:undefined,resizeEvent:"bodyresize",toolTarget:"header",collapseEl:"bwrap",slideAnchor:"t",disabledClass:"",deferHeight:true,expandDefaults:{duration:.25},collapseDefaults:{duration:.25},initComponent:function(){Ext.Panel.superclass.initComponent.call(this);this.addEvents("bodyresize","titlechange","iconchange","collapse","expand","beforecollapse","beforeexpand","beforeclose","close","activate","deactivate");if(this.unstyled)this.baseCls="x-plain";this.toolbars=[];if(this.tbar){this.elements+=",tbar";this.topToolbar=this.createToolbar(this.tbar);this.tbar=null}if(this.bbar){this.elements+=",bbar";this.bottomToolbar=this.createToolbar(this.bbar);this.bbar=null}if(this.header===true){this.elements+=",header";this.header=null}else if(this.headerCfg||this.title&&this.header!==false)this.elements+=",header";if(this.footerCfg||this.footer===true){this.elements+=",footer";this.footer=null}if(this.buttons){this.fbar=this.buttons;this.buttons=null}if(this.fbar)this.createFbar(this.fbar);if(this.autoLoad)this.on("render",this.doAutoLoad,this,{delay:10})},createFbar:function(b){var a=this.minButtonWidth;this.elements+=",footer";this.fbar=this.createToolbar(b,{buttonAlign:this.buttonAlign,toolbarCls:"x-panel-fbar",enableOverflow:false,defaults:function(d){return{minWidth:d.minWidth||a}}});this.fbar.items.each(function(d){d.minWidth=d.minWidth||this.minButtonWidth},this);this.buttons=this.fbar.items.items},createToolbar:function(b,c){var a;if(Ext.isArray(b))b={items:b};a=b.events?Ext.apply(b,c):this.createComponent(Ext.apply({},b,c),"toolbar");this.toolbars.push(a);return a},createElement:function(a,c){if(this[a]){c.appendChild(this[a].dom);return}if(a==="bwrap"||this.elements.indexOf(a)!=-1){if(this[a+"Cfg"])this[a]=Ext.fly(c).createChild(this[a+"Cfg"]);else{var b=document.createElement("div");b.className=this[a+"Cls"];this[a]=Ext.get(c.appendChild(b))}if(this[a+"CssClass"])this[a].addClass(this[a+"CssClass"]);if(this[a+"Style"])this[a].applyStyles(this[a+"Style"])}},onRender:function(g,e){Ext.Panel.superclass.onRender.call(this,g,e);this.createClasses();var a=this.el,h=a.dom,k,i;if(this.collapsible&&!this.hideCollapseTool){this.tools=this.tools?this.tools.slice(0):[];this.tools[this.collapseFirst?"unshift":"push"]({id:"toggle",handler:this.toggleCollapse,scope:this})}if(this.tools){i=this.tools;this.elements+=this.header!==false?",header":""}this.tools={};a.addClass(this.baseCls);if(h.firstChild){this.header=a.down("."+this.headerCls);this.bwrap=a.down("."+this.bwrapCls);var j=this.bwrap?this.bwrap:a;this.tbar=j.down("."+this.tbarCls);this.body=j.down("."+this.bodyCls);this.bbar=j.down("."+this.bbarCls);this.footer=j.down("."+this.footerCls);this.fromMarkup=true}if(this.preventBodyReset===true)a.addClass("x-panel-reset");if(this.cls)a.addClass(this.cls);if(this.buttons)this.elements+=",footer";if(this.frame){a.insertHtml("afterBegin",String.format(Ext.Element.boxMarkup,this.baseCls));this.createElement("header",h.firstChild.firstChild.firstChild);this.createElement("bwrap",h);k=this.bwrap.dom;var c=h.childNodes[1],b=h.childNodes[2];k.appendChild(c);k.appendChild(b);var l=k.firstChild.firstChild.firstChild;this.createElement("tbar",l);this.createElement("body",l);this.createElement("bbar",l);this.createElement("footer",k.lastChild.firstChild.firstChild);if(!this.footer)this.bwrap.dom.lastChild.className+=" x-panel-nofooter";this.ft=Ext.get(this.bwrap.dom.lastChild);this.mc=Ext.get(l)}else{this.createElement("header",h);this.createElement("bwrap",h);k=this.bwrap.dom;this.createElement("tbar",k);this.createElement("body",k);this.createElement("bbar",k);this.createElement("footer",k);if(!this.header){this.body.addClass(this.bodyCls+"-noheader");if(this.tbar)this.tbar.addClass(this.tbarCls+"-noheader")}}if(Ext.isDefined(this.padding))this.body.setStyle("padding",this.body.addUnits(this.padding));if(this.border===false){this.el.addClass(this.baseCls+"-noborder");this.body.addClass(this.bodyCls+"-noborder");if(this.header)this.header.addClass(this.headerCls+"-noborder");if(this.footer)this.footer.addClass(this.footerCls+"-noborder");if(this.tbar)this.tbar.addClass(this.tbarCls+"-noborder");if(this.bbar)this.bbar.addClass(this.bbarCls+"-noborder")}if(this.bodyBorder===false)this.body.addClass(this.bodyCls+"-noborder");this.bwrap.enableDisplayMode("block");if(this.header){this.header.unselectable();if(this.headerAsText){this.header.dom.innerHTML='<span class="'+this.headerTextCls+'">'+this.header.dom.innerHTML+"</span>";if(this.iconCls)this.setIconClass(this.iconCls)}}if(this.floating)this.makeFloating(this.floating);if(this.collapsible&&this.titleCollapse&&this.header){this.mon(this.header,"click",this.toggleCollapse,this);this.header.setStyle("cursor","pointer")}if(i)this.addTool.apply(this,i);if(this.fbar){this.footer.addClass("x-panel-btns");this.fbar.ownerCt=this;this.fbar.render(this.footer);this.footer.createChild({cls:"x-clear"})}if(this.tbar&&this.topToolbar){this.topToolbar.ownerCt=this;this.topToolbar.render(this.tbar)}if(this.bbar&&this.bottomToolbar){this.bottomToolbar.ownerCt=this;this.bottomToolbar.render(this.bbar)}},setIconClass:function(b){var a=this.iconCls;this.iconCls=b;if(this.rendered&&this.header)if(this.frame){this.header.addClass("x-panel-icon");this.header.replaceClass(a,this.iconCls)}else{var e=this.header,c=e.child("img.x-panel-inline-icon");if(c)Ext.fly(c).replaceClass(a,this.iconCls);else{var d=e.child("span."+this.headerTextCls);if(d)Ext.DomHelper.insertBefore(d.dom,{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-panel-inline-icon "+this.iconCls})}}this.fireEvent("iconchange",this,b,a)},makeFloating:function(a){this.floating=true;this.el=new Ext.Layer(Ext.apply({},a,{shadow:Ext.isDefined(this.shadow)?this.shadow:"sides",shadowOffset:this.shadowOffset,constrain:false,shim:this.shim===false?false:undefined}),this.el)},getTopToolbar:function(){return this.topToolbar},getBottomToolbar:function(){return this.bottomToolbar},getFooterToolbar:function(){return this.fbar},addButton:function(a,c,b){if(!this.fbar)this.createFbar([]);if(c){if(Ext.isString(a))a={text:a};a=Ext.apply({handler:c,scope:b},a)}return this.fbar.add(a)},addTool:function(){if(!this.rendered){if(!this.tools)this.tools=[];Ext.each(arguments,function(a){this.tools.push(a)},this);return}if(!this[this.toolTarget])return;if(!this.toolTemplate){var h=new Ext.Template('<div class="x-tool x-tool-{id}">&#160;</div>');h.disableFormats=true;h.compile();Ext.Panel.prototype.toolTemplate=h}for(var g=0,d=arguments,c=d.length;g<c;g++){var b=d[g];if(!this.tools[b.id]){var j="x-tool-"+b.id+"-over";var e=this.toolTemplate.insertFirst(this[this.toolTarget],b,true);this.tools[b.id]=e;e.enableDisplayMode("block");this.mon(e,"click",this.createToolHandler(e,b,j,this));if(b.on)this.mon(e,b.on);if(b.hidden)e.hide();if(b.qtip)if(Ext.isObject(b.qtip))Ext.QuickTips.register(Ext.apply({target:e.id},b.qtip));else e.dom.qtip=b.qtip;e.addClassOnOver(j)}}},onLayout:function(b,a){Ext.Panel.superclass.onLayout.apply(this,arguments);if(this.hasLayout&&this.toolbars.length>0){Ext.each(this.toolbars,function(c){c.doLayout(undefined,a)});this.syncHeight()}},syncHeight:function(){var b=this.toolbarHeight,c=this.body,a=this.lastSize.height,d;if(this.autoHeight||!Ext.isDefined(a)||a=="auto")return;if(b!=this.getToolbarHeight()){b=Math.max(0,a-this.getFrameHeight());c.setHeight(b);d=c.getSize();this.toolbarHeight=this.getToolbarHeight();this.onBodyResize(d.width,d.height)}},onShow:function(){if(this.floating)return this.el.show();Ext.Panel.superclass.onShow.call(this)},onHide:function(){if(this.floating)return this.el.hide();Ext.Panel.superclass.onHide.call(this)},createToolHandler:function(c,a,d,b){return function(g){c.removeClass(d);if(a.stopEvent!==false)g.stopEvent();if(a.handler)a.handler.call(a.scope||c,g,c,b,a)}},afterRender:function(){if(this.floating&&!this.hidden)this.el.show();if(this.title)this.setTitle(this.title);Ext.Panel.superclass.afterRender.call(this);if(this.collapsed){this.collapsed=false;this.collapse(false)}this.initEvents()},getKeyMap:function(){if(!this.keyMap)this.keyMap=new Ext.KeyMap(this.el,this.keys);return this.keyMap},initEvents:function(){if(this.keys)this.getKeyMap();if(this.draggable)this.initDraggable();if(this.toolbars.length>0){Ext.each(this.toolbars,function(a){a.doLayout();a.on({scope:this,afterlayout:this.syncHeight,remove:this.syncHeight})},this);this.syncHeight()}},initDraggable:function(){this.dd=new Ext.Panel.DD(this,Ext.isBoolean(this.draggable)?null:this.draggable)},beforeEffect:function(a){if(this.floating)this.el.beforeAction();if(a!==false)this.el.addClass("x-panel-animated")},afterEffect:function(a){this.syncShadow();this.el.removeClass("x-panel-animated")},createEffect:function(c,b,d){var e={scope:d,block:true};if(c===true){e.callback=b;return e}else if(!c.callback)e.callback=b;else e.callback=function(){b.call(d);Ext.callback(c.callback,c.scope)};return Ext.applyIf(e,c)},collapse:function(b){if(this.collapsed||this.el.hasFxBlock()||this.fireEvent("beforecollapse",this,b)===false)return;var a=b===true||b!==false&&this.animCollapse;this.beforeEffect(a);this.onCollapse(a,b);return this},onCollapse:function(a,b){if(a)this[this.collapseEl].slideOut(this.slideAnchor,Ext.apply(this.createEffect(b||true,this.afterCollapse,this),this.collapseDefaults));else{this[this.collapseEl].hide(this.hideMode);this.afterCollapse(false)}},afterCollapse:function(a){this.collapsed=true;this.el.addClass(this.collapsedCls);if(a!==false)this[this.collapseEl].hide(this.hideMode);this.afterEffect(a);this.cascade(function(b){if(b.lastSize)b.lastSize={width:undefined,height:undefined}});this.fireEvent("collapse",this)},expand:function(b){if(!this.collapsed||this.el.hasFxBlock()||this.fireEvent("beforeexpand",this,b)===false)return;var a=b===true||b!==false&&this.animCollapse;this.el.removeClass(this.collapsedCls);this.beforeEffect(a);this.onExpand(a,b);return this},onExpand:function(a,b){if(a)this[this.collapseEl].slideIn(this.slideAnchor,Ext.apply(this.createEffect(b||true,this.afterExpand,this),this.expandDefaults));else{this[this.collapseEl].show(this.hideMode);this.afterExpand(false)}},afterExpand:function(a){this.collapsed=false;if(a!==false)this[this.collapseEl].show(this.hideMode);this.afterEffect(a);if(this.deferLayout){delete this.deferLayout;this.doLayout(true)}this.fireEvent("expand",this)},toggleCollapse:function(a){this[this.collapsed?"expand":"collapse"](a);return this},onDisable:function(){if(this.rendered&&this.maskDisabled)this.el.mask();Ext.Panel.superclass.onDisable.call(this)},onEnable:function(){if(this.rendered&&this.maskDisabled)this.el.unmask();Ext.Panel.superclass.onEnable.call(this)},onResize:function(g,d,c,e){var a=g,b=d;if(Ext.isDefined(a)||Ext.isDefined(b)){if(!this.collapsed){if(Ext.isNumber(a))this.body.setWidth(a=this.adjustBodyWidth(a-this.getFrameWidth()));else if(a=="auto")a=this.body.setWidth("auto").dom.offsetWidth;else a=this.body.dom.offsetWidth;if(this.tbar){this.tbar.setWidth(a);if(this.topToolbar)this.topToolbar.setSize(a)}if(this.bbar){this.bbar.setWidth(a);if(this.bottomToolbar){this.bottomToolbar.setSize(a);if(Ext.isIE){this.bbar.setStyle("position","static");this.bbar.setStyle("position","")}}}if(this.footer){this.footer.setWidth(a);if(this.fbar)this.fbar.setSize(Ext.isIE?a-this.footer.getFrameWidth("lr"):"auto")}if(Ext.isNumber(b)){b=Math.max(0,b-this.getFrameHeight());this.body.setHeight(b)}else if(b=="auto")this.body.setHeight(b);if(this.disabled&&this.el._mask)this.el._mask.setSize(this.el.dom.clientWidth,this.el.getHeight())}else{this.queuedBodySize={width:a,height:b};if(!this.queuedExpand&&this.allowQueuedExpand!==false){this.queuedExpand=true;this.on("expand",function(){delete this.queuedExpand;this.onResize(this.queuedBodySize.width,this.queuedBodySize.height)},this,{single:true})}}this.onBodyResize(a,b)}this.syncShadow();Ext.Panel.superclass.onResize.call(this,g,d,c,e)},onBodyResize:function(a,b){this.fireEvent("bodyresize",this,a,b)},getToolbarHeight:function(){var a=0;if(this.rendered)Ext.each(this.toolbars,function(b){a+=b.getHeight()},this);return a},adjustBodyHeight:function(a){return a},adjustBodyWidth:function(a){return a},onPosition:function(){this.syncShadow()},getFrameWidth:function(){var b=this.el.getFrameWidth("lr")+this.bwrap.getFrameWidth("lr");if(this.frame){var a=this.bwrap.dom.firstChild;b+=Ext.fly(a).getFrameWidth("l")+Ext.fly(a.firstChild).getFrameWidth("r");b+=this.mc.getFrameWidth("lr")}return b},getFrameHeight:function(){var a=Math.max(0,this.getHeight()-this.body.getHeight());if(isNaN(a))a=0;return a},getInnerWidth:function(){return this.getSize().width-this.getFrameWidth()},getInnerHeight:function(){return this.body.getHeight()},syncShadow:function(){if(this.floating)this.el.sync(true)},getLayoutTarget:function(){return this.body},getContentTarget:function(){return this.body},setTitle:function(b,a){this.title=b;if(this.header&&this.headerAsText)this.header.child("span").update(b);if(a)this.setIconClass(a);this.fireEvent("titlechange",this,b);return this},getUpdater:function(){return this.body.getUpdater()},load:function(){var a=this.body.getUpdater();a.update.apply(a,arguments);return this},beforeDestroy:function(){Ext.Panel.superclass.beforeDestroy.call(this);if(this.header)this.header.removeAllListeners();if(this.tools)for(var a in this.tools)Ext.destroy(this.tools[a]);if(this.toolbars.length>0)Ext.each(this.toolbars,function(b){b.un("afterlayout",this.syncHeight,this);b.un("remove",this.syncHeight,this)},this);if(Ext.isArray(this.buttons))while(this.buttons.length)Ext.destroy(this.buttons[0]);if(this.rendered){Ext.destroy(this.ft,this.header,this.footer,this.tbar,this.bbar,this.body,this.mc,this.bwrap,this.dd);if(this.fbar)Ext.destroy(this.fbar,this.fbar.el)}Ext.destroy(this.toolbars)},createClasses:function(){this.headerCls=this.baseCls+"-header";this.headerTextCls=this.baseCls+"-header-text";this.bwrapCls=this.baseCls+"-bwrap";this.tbarCls=this.baseCls+"-tbar";this.bodyCls=this.baseCls+"-body";this.bbarCls=this.baseCls+"-bbar";this.footerCls=this.baseCls+"-footer"},createGhost:function(a,e,b){var d=document.createElement("div");d.className="x-panel-ghost "+(a?a:"");if(this.header)d.appendChild(this.el.dom.firstChild.cloneNode(true));Ext.fly(d.appendChild(document.createElement("ul"))).setHeight(this.bwrap.getHeight());d.style.width=this.el.dom.offsetWidth+"px";if(!b)this.container.dom.appendChild(d);else Ext.getDom(b).appendChild(d);if(e!==false&&this.el.useShim!==false){var c=new Ext.Layer({shadow:false,useDisplay:true,constrain:false},d);c.show();return c}else return new Ext.Element(d)},doAutoLoad:function(){var a=this.body.getUpdater();if(this.renderer)a.setRenderer(this.renderer);a.update(Ext.isObject(this.autoLoad)?this.autoLoad:{url:this.autoLoad})},getTool:function(a){return this.tools[a]}});Ext.reg("panel",Ext.Panel);Ext.Editor=function(b,a){if(b.field){this.field=Ext.create(b.field,"textfield");a=Ext.apply({},b);delete a.field}else this.field=b;Ext.Editor.superclass.constructor.call(this,a)};Ext.extend(Ext.Editor,Ext.Component,{allowBlur:true,value:"",alignment:"c-c?",offsets:[0,0],shadow:"frame",constrain:false,swallowKeys:true,completeOnEnter:true,cancelOnEsc:true,updateEl:false,initComponent:function(){Ext.Editor.superclass.initComponent.call(this);this.addEvents("beforestartedit","startedit","beforecomplete","complete","canceledit","specialkey")},onRender:function(b,a){this.el=new Ext.Layer({shadow:this.shadow,cls:"x-editor",parentEl:b,shim:this.shim,shadowOffset:this.shadowOffset||4,id:this.id,constrain:this.constrain});if(this.zIndex)this.el.setZIndex(this.zIndex);this.el.setStyle("overflow",Ext.isGecko?"auto":"hidden");if(this.field.msgTarget!="title")this.field.msgTarget="qtip";this.field.inEditor=true;this.mon(this.field,{scope:this,blur:this.onBlur,specialkey:this.onSpecialKey});if(this.field.grow)this.mon(this.field,"autosize",this.el.sync,this.el,{delay:1});this.field.render(this.el).show();this.field.getEl().dom.name="";if(this.swallowKeys)this.field.el.swallowEvent(["keypress","keydown"])},onSpecialKey:function(g,d){var b=d.getKey(),a=this.completeOnEnter&&b==d.ENTER,c=this.cancelOnEsc&&b==d.ESC;if(a||c){d.stopEvent();if(a)this.completeEdit();else this.cancelEdit();if(g.triggerBlur)g.triggerBlur()}this.fireEvent("specialkey",g,d)},startEdit:function(b,c){if(this.editing)this.completeEdit();this.boundEl=Ext.get(b);var a=c!==undefined?c:this.boundEl.dom.innerHTML;if(!this.rendered)this.render(this.parentEl||document.body);if(this.fireEvent("beforestartedit",this,this.boundEl,a)!==false){this.startValue=a;this.field.reset();this.field.setValue(a);this.realign(true);this.editing=true;this.show()}},doAutoSize:function(){if(this.autoSize){var b=this.boundEl.getSize(),a=this.field.getSize();switch(this.autoSize){case"width":this.setSize(b.width,a.height);break;case"height":this.setSize(a.width,b.height);break;case"none":this.setSize(a.width,a.height);break;default:this.setSize(b.width,b.height)}}},setSize:function(a,b){delete this.field.lastSize;this.field.setSize(a,b);if(this.el){if(Ext.isGecko2||Ext.isOpera)this.el.setSize(a,b);this.el.sync()}},realign:function(a){if(a===true)this.doAutoSize();this.el.alignTo(this.boundEl,this.alignment,this.offsets)},completeEdit:function(a){if(!this.editing)return;if(this.field.assertValue)this.field.assertValue();var b=this.getValue();if(!this.field.isValid()){if(this.revertInvalid!==false)this.cancelEdit(a);return}if(String(b)===String(this.startValue)&&this.ignoreNoChange){this.hideEdit(a);return}if(this.fireEvent("beforecomplete",this,b,this.startValue)!==false){b=this.getValue();if(this.updateEl&&this.boundEl)this.boundEl.update(b);this.hideEdit(a);this.fireEvent("complete",this,b,this.startValue)}},onShow:function(){this.el.show();if(this.hideEl!==false)this.boundEl.hide();this.field.show().focus(false,true);this.fireEvent("startedit",this.boundEl,this.startValue)},cancelEdit:function(a){if(this.editing){var b=this.getValue();this.setValue(this.startValue);this.hideEdit(a);this.fireEvent("canceledit",this,b,this.startValue)}},hideEdit:function(a){if(a!==true){this.editing=false;this.hide()}},onBlur:function(){if(this.allowBlur===true&&this.editing&&this.selectSameEditor!==true)this.completeEdit()},onHide:function(){if(this.editing){this.completeEdit();return}this.field.blur();if(this.field.collapse)this.field.collapse();this.el.hide();if(this.hideEl!==false)this.boundEl.show()},setValue:function(a){this.field.setValue(a)},getValue:function(){return this.field.getValue()},beforeDestroy:function(){Ext.destroyMembers(this,"field");delete this.parentEl;delete this.boundEl}});Ext.reg("editor",Ext.Editor);Ext.ColorPalette=Ext.extend(Ext.Component,{itemCls:"x-color-palette",value:null,clickEvent:"click",ctype:"Ext.ColorPalette",allowReselect:false,colors:["000000","993300","333300","003300","003366","000080","333399","333333","800000","FF6600","808000","008000","008080","0000FF","666699","808080","FF0000","FF9900","99CC00","339966","33CCCC","3366FF","800080","969696","FF00FF","FFCC00","FFFF00","00FF00","00FFFF","00CCFF","993366","C0C0C0","FF99CC","FFCC99","FFFF99","CCFFCC","CCFFFF","99CCFF","CC99FF","FFFFFF"],initComponent:function(){Ext.ColorPalette.superclass.initComponent.call(this);this.addEvents("select");if(this.handler)this.on("select",this.handler,this.scope,true)},onRender:function(b,a){this.autoEl={tag:"div",cls:this.itemCls};Ext.ColorPalette.superclass.onRender.call(this,b,a);var c=this.tpl||new Ext.XTemplate('<tpl for="."><a href="#" class="color-{.}" hidefocus="on"><em><span style="background:#{.}" unselectable="on">&#160;</span></em></a></tpl>');c.overwrite(this.el,this.colors);this.mon(this.el,this.clickEvent,this.handleClick,this,{delegate:"a"});if(this.clickEvent!="click")this.mon(this.el,"click",Ext.emptyFn,this,{delegate:"a",preventDefault:true})},afterRender:function(){Ext.ColorPalette.superclass.afterRender.call(this);if(this.value){var a=this.value;this.value=null;this.select(a,true)}},handleClick:function(b,a){b.preventDefault();if(!this.disabled){var d=a.className.match(/(?:^|\s)color-(.{6})(?:\s|$)/)[1];this.select(d.toUpperCase())}},select:function(b,a){b=b.replace("#","");if(b!=this.value||this.allowReselect){var c=this.el;if(this.value)c.child("a.color-"+this.value).removeClass("x-color-palette-sel");c.child("a.color-"+b).addClass("x-color-palette-sel");this.value=b;if(a!==true)this.fireEvent("select",this,b)}}});Ext.reg("colorpalette",Ext.ColorPalette);Ext.DatePicker=Ext.extend(Ext.BoxComponent,{todayText:"Today",okText:"&#160;OK&#160;",cancelText:"Cancel",todayTip:"{0} (Spacebar)",minText:"This date is before the minimum date",maxText:"This date is after the maximum date",format:"m/d/y",disabledDaysText:"Disabled",disabledDatesText:"Disabled",monthNames:Date.monthNames,dayNames:Date.dayNames,nextText:"Next Month (Control+Right)",prevText:"Previous Month (Control+Left)",monthYearText:"Choose a month (Control+Up/Down to move years)",startDay:0,showToday:true,focusOnSelect:true,initHour:12,initComponent:function(){Ext.DatePicker.superclass.initComponent.call(this);this.value=this.value?this.value.clearTime(true):(new Date).clearTime();this.addEvents("select");if(this.handler)this.on("select",this.handler,this.scope||this);this.initDisabledDays()},initDisabledDays:function(){if(!this.disabledDatesRE&&this.disabledDates){var b=this.disabledDates,a=b.length-1,c="(?:";Ext.each(b,function(g,e){c+=Ext.isDate(g)?"^"+Ext.escapeRe(g.dateFormat(this.format))+"$":b[e];if(e!=a)c+="|"},this);this.disabledDatesRE=new RegExp(c+")")}},setDisabledDates:function(a){if(Ext.isArray(a)){this.disabledDates=a;this.disabledDatesRE=null}else this.disabledDatesRE=a;this.initDisabledDays();this.update(this.value,true)},setDisabledDays:function(a){this.disabledDays=a;this.update(this.value,true)},setMinDate:function(a){this.minDate=a;this.update(this.value,true)},setMaxDate:function(a){this.maxDate=a;this.update(this.value,true)},setValue:function(a){this.value=a.clearTime(true);this.update(this.value)},getValue:function(){return this.value},focus:function(){this.update(this.activeDate)},onEnable:function(a){Ext.DatePicker.superclass.onEnable.call(this);this.doDisabled(false);this.update(a?this.value:this.activeDate);if(Ext.isIE)this.el.repaint()},onDisable:function(){Ext.DatePicker.superclass.onDisable.call(this);this.doDisabled(true);if(Ext.isIE&&!Ext.isIE8)Ext.each([].concat(this.textNodes,this.el.query("th span")),function(a){Ext.fly(a).repaint()})},doDisabled:function(a){this.keyNav.setDisabled(a);this.prevRepeater.setDisabled(a);this.nextRepeater.setDisabled(a);if(this.showToday){this.todayKeyListener.setDisabled(a);this.todayBtn.setDisabled(a)}},onRender:function(e,b){var a=['<table cellspacing="0">','<tr><td class="x-date-left"><a href="#" title="',this.prevText,'">&#160;</a></td><td class="x-date-middle" align="center"></td><td class="x-date-right"><a href="#" title="',this.nextText,'">&#160;</a></td></tr>','<tr><td colspan="3"><table class="x-date-inner" cellspacing="0"><thead><tr>'],c=this.dayNames,h;for(h=0;h<7;h++){var k=this.startDay+h;if(k>6)k=k-7;a.push("<th><span>",c[k].substr(0,1),"</span></th>")}a[a.length]="</tr></thead><tbody><tr>";for(h=0;h<42;h++){if(h%7===0&&h!==0)a[a.length]="</tr><tr>";a[a.length]='<td><a href="#" hidefocus="on" class="x-date-date" tabIndex="1"><em><span></span></em></a></td>'}a.push("</tr></tbody></table></td></tr>",this.showToday?'<tr><td colspan="3" class="x-date-bottom" align="center"></td></tr>':"",'</table><div class="x-date-mp"></div>');var j=document.createElement("div");j.className="x-date-picker";j.innerHTML=a.join("");e.dom.insertBefore(j,b);this.el=Ext.get(j);this.eventEl=Ext.get(j.firstChild);this.prevRepeater=new Ext.util.ClickRepeater(this.el.child("td.x-date-left a"),{handler:this.showPrevMonth,scope:this,preventDefault:true,stopDefault:true});this.nextRepeater=new Ext.util.ClickRepeater(this.el.child("td.x-date-right a"),{handler:this.showNextMonth,scope:this,preventDefault:true,stopDefault:true});this.monthPicker=this.el.down("div.x-date-mp");this.monthPicker.enableDisplayMode("block");this.keyNav=new Ext.KeyNav(this.eventEl,{left:function(d){if(d.ctrlKey)this.showPrevMonth();else this.update(this.activeDate.add("d",-1))},right:function(d){if(d.ctrlKey)this.showNextMonth();else this.update(this.activeDate.add("d",1))},up:function(d){if(d.ctrlKey)this.showNextYear();else this.update(this.activeDate.add("d",-7))},down:function(d){if(d.ctrlKey)this.showPrevYear();else this.update(this.activeDate.add("d",7))},pageUp:function(d){this.showNextMonth()},pageDown:function(d){this.showPrevMonth()},enter:function(d){d.stopPropagation();return true},scope:this});this.el.unselectable();this.cells=this.el.select("table.x-date-inner tbody td");this.textNodes=this.el.query("table.x-date-inner tbody span");this.mbtn=new Ext.Button({text:"&#160;",tooltip:this.monthYearText,renderTo:this.el.child("td.x-date-middle",true)});this.mbtn.el.child("em").addClass("x-btn-arrow");if(this.showToday){this.todayKeyListener=this.eventEl.addKeyListener(Ext.EventObject.SPACE,this.selectToday,this);var g=(new Date).dateFormat(this.format);this.todayBtn=new Ext.Button({renderTo:this.el.child("td.x-date-bottom",true),text:String.format(this.todayText,g),tooltip:String.format(this.todayTip,g),handler:this.selectToday,scope:this})}this.mon(this.eventEl,"mousewheel",this.handleMouseWheel,this);this.mon(this.eventEl,"click",this.handleDateClick,this,{delegate:"a.x-date-date"});this.mon(this.mbtn,"click",this.showMonthPicker,this);this.onEnable(true)},createMonthPicker:function(){if(!this.monthPicker.dom.firstChild){var a=['<table border="0" cellspacing="0">'];for(var b=0;b<6;b++)a.push('<tr><td class="x-date-mp-month"><a href="#">',Date.getShortMonthName(b),"</a></td>",'<td class="x-date-mp-month x-date-mp-sep"><a href="#">',Date.getShortMonthName(b+6),"</a></td>",b===0?'<td class="x-date-mp-ybtn" align="center"><a class="x-date-mp-prev"></a></td><td class="x-date-mp-ybtn" align="center"><a class="x-date-mp-next"></a></td></tr>':'<td class="x-date-mp-year"><a href="#"></a></td><td class="x-date-mp-year"><a href="#"></a></td></tr>');a.push('<tr class="x-date-mp-btns"><td colspan="4"><button type="button" class="x-date-mp-ok">',this.okText,'</button><button type="button" class="x-date-mp-cancel">',this.cancelText,"</button></td></tr>","</table>");this.monthPicker.update(a.join(""));this.mon(this.monthPicker,"click",this.onMonthClick,this);this.mon(this.monthPicker,"dblclick",this.onMonthDblClick,this);this.mpMonths=this.monthPicker.select("td.x-date-mp-month");this.mpYears=this.monthPicker.select("td.x-date-mp-year");this.mpMonths.each(function(c,d,e){e+=1;if(e%2===0)c.dom.xmonth=5+Math.round(e*.5);else c.dom.xmonth=Math.round((e-1)*.5)})}},showMonthPicker:function(){if(!this.disabled){this.createMonthPicker();var a=this.el.getSize();this.monthPicker.setSize(a);this.monthPicker.child("table").setSize(a);this.mpSelMonth=(this.activeDate||this.value).getMonth();this.updateMPMonth(this.mpSelMonth);this.mpSelYear=(this.activeDate||this.value).getFullYear();this.updateMPYear(this.mpSelYear);this.monthPicker.slideIn("t",{duration:.2})}},updateMPYear:function(e){this.mpyear=e;var c=this.mpYears.elements;for(var b=1;b<=10;b++){var d=c[b-1],a;if(b%2===0){a=e+Math.round(b*.5);d.firstChild.innerHTML=a;d.xyear=a}else{a=e-(5-Math.round(b*.5));d.firstChild.innerHTML=a;d.xyear=a}this.mpYears.item(b-1)[a==this.mpSelYear?"addClass":"removeClass"]("x-date-mp-sel")}},updateMPMonth:function(a){this.mpMonths.each(function(b,c,d){b[b.dom.xmonth==a?"addClass":"removeClass"]("x-date-mp-sel")})},selectMPMonth:function(a){},onMonthClick:function(g,b){g.stopEvent();var c=new Ext.Element(b),a;if(c.is("button.x-date-mp-cancel"))this.hideMonthPicker();else if(c.is("button.x-date-mp-ok")){var h=new Date(this.mpSelYear,this.mpSelMonth,(this.activeDate||this.value).getDate());if(h.getMonth()!=this.mpSelMonth)h=new Date(this.mpSelYear,this.mpSelMonth,1).getLastDateOfMonth();this.update(h);this.hideMonthPicker()}else if(a=c.up("td.x-date-mp-month",2)){this.mpMonths.removeClass("x-date-mp-sel");a.addClass("x-date-mp-sel");this.mpSelMonth=a.dom.xmonth}else if(a=c.up("td.x-date-mp-year",2)){this.mpYears.removeClass("x-date-mp-sel");a.addClass("x-date-mp-sel");this.mpSelYear=a.dom.xyear}else if(c.is("a.x-date-mp-prev"))this.updateMPYear(this.mpyear-10);else if(c.is("a.x-date-mp-next"))this.updateMPYear(this.mpyear+10)},onMonthDblClick:function(d,b){d.stopEvent();var c=new Ext.Element(b),a;if(a=c.up("td.x-date-mp-month",2)){this.update(new Date(this.mpSelYear,a.dom.xmonth,(this.activeDate||this.value).getDate()));this.hideMonthPicker()}else if(a=c.up("td.x-date-mp-year",2)){this.update(new Date(a.dom.xyear,this.mpSelMonth,(this.activeDate||this.value).getDate()));this.hideMonthPicker()}},hideMonthPicker:function(a){if(this.monthPicker)if(a===true)this.monthPicker.hide();else this.monthPicker.slideOut("t",{duration:.2})},showPrevMonth:function(a){this.update(this.activeDate.add("mo",-1))},showNextMonth:function(a){this.update(this.activeDate.add("mo",1))},showPrevYear:function(){this.update(this.activeDate.add("y",-1))},showNextYear:function(){this.update(this.activeDate.add("y",1))},handleMouseWheel:function(a){a.stopEvent();if(!this.disabled){var b=a.getWheelDelta();if(b>0)this.showPrevMonth();else if(b<0)this.showNextMonth()}},handleDateClick:function(b,a){b.stopEvent();if(!this.disabled&&a.dateValue&&!Ext.fly(a.parentNode).hasClass("x-date-disabled")){this.cancelFocus=this.focusOnSelect===false;this.setValue(new Date(a.dateValue));delete this.cancelFocus;this.fireEvent("select",this,this.value)}},selectToday:function(){if(this.todayBtn&&!this.todayBtn.disabled){this.setValue((new Date).clearTime());this.fireEvent("select",this,this.value)}},update:function(G,A){if(this.rendered){var a=this.activeDate,p=this.isVisible();this.activeDate=G;if(!A&&a&&this.el){var o=G.getTime();if(a.getMonth()==G.getMonth()&&a.getFullYear()==G.getFullYear()){this.cells.removeClass("x-date-selected");this.cells.each(function(d){if(d.dom.firstChild.dateValue==o){d.addClass("x-date-selected");if(p&&!this.cancelFocus)Ext.fly(d.dom.firstChild).focus(50);return false}},this);return}}var k=G.getDaysInMonth(),q=G.getFirstDateOfMonth(),g=q.getDay()-this.startDay;if(g<0)g+=7;k+=g;var B=G.add("mo",-1),h=B.getDaysInMonth()-g,e=this.cells.elements,r=this.textNodes,D=new Date(B.getFullYear(),B.getMonth(),h,this.initHour),C=(new Date).clearTime().getTime(),v=G.clearTime(true).getTime(),u=this.minDate?this.minDate.clearTime(true):Number.NEGATIVE_INFINITY,y=this.maxDate?this.maxDate.clearTime(true):Number.POSITIVE_INFINITY,F=this.disabledDatesRE,s=this.disabledDatesText,I=this.disabledDays?this.disabledDays.join(""):false,E=this.disabledDaysText,z=this.format;if(this.showToday){var m=(new Date).clearTime(),c=m<u||m>y||F&&z&&F.test(m.dateFormat(z))||I&&I.indexOf(m.getDay())!=-1;if(!this.disabled){this.todayBtn.setDisabled(c);this.todayKeyListener[c?"disable":"enable"]()}}var l=function(J,d){d.title="";var i=D.clearTime(true).getTime();d.firstChild.dateValue=i;if(i==C){d.className+=" x-date-today";d.title=J.todayText}if(i==v){d.className+=" x-date-selected";if(p)Ext.fly(d.firstChild).focus(50)}if(i<u){d.className=" x-date-disabled";d.title=J.minText;return}if(i>y){d.className=" x-date-disabled";d.title=J.maxText;return}if(I)if(I.indexOf(D.getDay())!=-1){d.title=E;d.className=" x-date-disabled"}if(F&&z){var w=D.dateFormat(z);if(F.test(w)){d.title=s.replace("%0",w);d.className=" x-date-disabled"}}};var x=0;for(;x<g;x++){r[x].innerHTML=++h;D.setDate(D.getDate()+1);e[x].className="x-date-prevday";l(this,e[x])}for(;x<k;x++){var b=x-g+1;r[x].innerHTML=b;D.setDate(D.getDate()+1);e[x].className="x-date-active";l(this,e[x])}var H=0;for(;x<42;x++){r[x].innerHTML=++H;D.setDate(D.getDate()+1);e[x].className="x-date-nextday";l(this,e[x])}this.mbtn.setText(this.monthNames[G.getMonth()]+" "+G.getFullYear());if(!this.internalRender){var j=this.el.dom.firstChild,n=j.offsetWidth;this.el.setWidth(n+this.el.getBorderWidth("lr"));Ext.fly(j).setWidth(n);this.internalRender=true;if(Ext.isOpera&&!this.secondPass){j.rows[0].cells[1].style.width=n-(j.rows[0].cells[0].offsetWidth+j.rows[0].cells[2].offsetWidth)+"px";this.secondPass=true;this.update.defer(10,this,[G])}}}},beforeDestroy:function(){if(this.rendered){Ext.destroy(this.keyNav,this.monthPicker,this.eventEl,this.mbtn,this.nextRepeater,this.prevRepeater,this.cells.el,this.todayBtn);delete this.textNodes;delete this.cells.elements}}});Ext.reg("datepicker",Ext.DatePicker);Ext.LoadMask=function(c,b){this.el=Ext.get(c);Ext.apply(this,b);if(this.store){this.store.on({scope:this,beforeload:this.onBeforeLoad,load:this.onLoad,exception:this.onLoad});this.removeMask=Ext.value(this.removeMask,false)}else{var a=this.el.getUpdater();a.showLoadIndicator=false;a.on({scope:this,beforeupdate:this.onBeforeLoad,update:this.onLoad,failure:this.onLoad});this.removeMask=Ext.value(this.removeMask,true)}};Ext.LoadMask.prototype={msg:"Loading...",msgCls:"x-mask-loading",disabled:false,disable:function(){this.disabled=true},enable:function(){this.disabled=false},onLoad:function(){this.el.unmask(this.removeMask)},onBeforeLoad:function(){if(!this.disabled)this.el.mask(this.msg,this.msgCls)},show:function(){this.onBeforeLoad()},hide:function(){this.onLoad()},destroy:function(){if(this.store){this.store.un("beforeload",this.onBeforeLoad,this);this.store.un("load",this.onLoad,this);this.store.un("exception",this.onLoad,this)}else{var a=this.el.getUpdater();a.un("beforeupdate",this.onBeforeLoad,this);a.un("update",this.onLoad,this);a.un("failure",this.onLoad,this)}}};Ext.ns("Ext.slider");Ext.slider.Thumb=Ext.extend(Object,{constructor:function(a){Ext.apply(this,a||{},{cls:"x-slider-thumb",constrain:false});Ext.slider.Thumb.superclass.constructor.call(this,a);if(this.slider.vertical)Ext.apply(this,Ext.slider.Thumb.Vertical)},render:function(){this.el=this.slider.innerEl.insertFirst({cls:this.cls});this.initEvents()},enable:function(){this.disabled=false;this.el.removeClass(this.slider.disabledClass)},disable:function(){this.disabled=true;this.el.addClass(this.slider.disabledClass)},initEvents:function(){var a=this.el;a.addClassOnOver("x-slider-thumb-over");this.tracker=new Ext.dd.DragTracker({onBeforeStart:this.onBeforeDragStart.createDelegate(this),onStart:this.onDragStart.createDelegate(this),onDrag:this.onDrag.createDelegate(this),onEnd:this.onDragEnd.createDelegate(this),tolerance:3,autoStart:300});this.tracker.initEl(a)},onBeforeDragStart:function(a){if(this.disabled)return false;else{this.slider.promoteThumb(this);return true}},onDragStart:function(a){this.el.addClass("x-slider-thumb-drag");this.dragging=true;this.dragStartValue=this.value;this.slider.fireEvent("dragstart",this.slider,a,this)},onDrag:function(g){var c=this.slider,b=this.index,d=this.getNewValue();if(this.constrain){var a=c.thumbs[b+1],h=c.thumbs[b-1];if(h!=undefined&&d<=h.value)d=h.value;if(a!=undefined&&d>=a.value)d=a.value}c.setValue(b,d,false);c.fireEvent("drag",c,g,this)},getNewValue:function(){var a=this.slider,b=a.innerEl.translatePoints(this.tracker.getXY());return Ext.util.Format.round(a.reverseValue(b.left),a.decimalPrecision)},onDragEnd:function(c){var a=this.slider,b=this.value;this.el.removeClass("x-slider-thumb-drag");this.dragging=false;a.fireEvent("dragend",a,c);if(this.dragStartValue!=b)a.fireEvent("changecomplete",a,b,this)}});Ext.slider.MultiSlider=Ext.extend(Ext.BoxComponent,{vertical:false,minValue:0,maxValue:100,decimalPrecision:0,keyIncrement:1,increment:0,clickRange:[5,15],clickToChange:true,animate:true,dragging:false,constrainThumbs:true,topThumbZIndex:1e4,initComponent:function(){if(!Ext.isDefined(this.value))this.value=this.minValue;this.thumbs=[];Ext.slider.MultiSlider.superclass.initComponent.call(this);this.keyIncrement=Math.max(this.increment,this.keyIncrement);this.addEvents("beforechange","change","changecomplete","dragstart","drag","dragend");if(this.values==undefined||Ext.isEmpty(this.values))this.values=[0];var a=this.values;for(var b=0;b<a.length;b++)this.addThumb(a[b]);if(this.vertical)Ext.apply(this,Ext.slider.Vertical)},addThumb:function(b){var a=new Ext.slider.Thumb({value:b,slider:this,index:this.thumbs.length,constrain:this.constrainThumbs});this.thumbs.push(a);if(this.rendered)a.render()},promoteThumb:function(d){var a=this.thumbs,g,b;for(var e=0,c=a.length;e<c;e++){b=a[e];if(b==d)g=this.topThumbZIndex;else g="";b.el.setStyle("zIndex",g)}},onRender:function(){this.autoEl={cls:"x-slider "+(this.vertical?"x-slider-vert":"x-slider-horz"),cn:{cls:"x-slider-end",cn:{cls:"x-slider-inner",cn:[{tag:"a",cls:"x-slider-focus",href:"#",tabIndex:"-1",hidefocus:"on"}]}}};Ext.slider.MultiSlider.superclass.onRender.apply(this,arguments);this.endEl=this.el.first();this.innerEl=this.endEl.first();this.focusEl=this.innerEl.child(".x-slider-focus");for(var b=0;b<this.thumbs.length;b++)this.thumbs[b].render();var a=this.innerEl.child(".x-slider-thumb");this.halfThumb=(this.vertical?a.getHeight():a.getWidth())/2;this.initEvents()},initEvents:function(){this.mon(this.el,{scope:this,mousedown:this.onMouseDown,keydown:this.onKeyDown});this.focusEl.swallowEvent("click",true)},onMouseDown:function(d){if(this.disabled)return;var c=false;for(var b=0;b<this.thumbs.length;b++)c=c||d.target==this.thumbs[b].el.dom;if(this.clickToChange&&!c){var a=this.innerEl.translatePoints(d.getXY());this.onClickChange(a)}this.focus()},onClickChange:function(c){if(c.top>this.clickRange[0]&&c.top<this.clickRange[1]){var a=this.getNearest(c,"left"),b=a.index;this.setValue(b,Ext.util.Format.round(this.reverseValue(c.left),this.decimalPrecision),undefined,true)}},getNearest:function(k,b){var m=b=="top"?this.innerEl.getHeight()-k[b]:k[b],g=this.reverseValue(m),j=this.maxValue-this.minValue+5,e=0,c=null;for(var d=0;d<this.thumbs.length;d++){var a=this.thumbs[d],l=a.value,h=Math.abs(l-g);if(Math.abs(h<=j)){c=a;e=d;j=h}}return c},onKeyDown:function(b){if(this.disabled||this.thumbs.length!==1){b.preventDefault();return}var a=b.getKey(),c;switch(a){case b.UP:case b.RIGHT:b.stopEvent();c=b.ctrlKey?this.maxValue:this.getValue(0)+this.keyIncrement;this.setValue(0,c,undefined,true);break;case b.DOWN:case b.LEFT:b.stopEvent();c=b.ctrlKey?this.minValue:this.getValue(0)-this.keyIncrement;this.setValue(0,c,undefined,true);break;default:b.preventDefault()}},doSnap:function(b){if(!(this.increment&&b))return b;var d=b,c=this.increment,a=b%c;if(a!=0){d-=a;if(a*2>=c)d+=c;else if(a*2<-c)d-=c}return d.constrain(this.minValue,this.maxValue)},afterRender:function(){Ext.slider.MultiSlider.superclass.afterRender.apply(this,arguments);for(var c=0;c<this.thumbs.length;c++){var b=this.thumbs[c];if(b.value!==undefined){var a=this.normalizeValue(b.value);if(a!==b.value)this.setValue(c,a,false);else this.moveThumb(c,this.translateValue(a),false)}}},getRatio:function(){var a=this.innerEl.getWidth(),b=this.maxValue-this.minValue;return b==0?a:a/b},normalizeValue:function(a){a=this.doSnap(a);a=Ext.util.Format.round(a,this.decimalPrecision);a=a.constrain(this.minValue,this.maxValue);return a},setMinValue:function(e){this.minValue=e;var d=0,b=this.thumbs,a=b.length,c;for(;d<a;++d){c=b[d];c.value=c.value<e?e:c.value}this.syncThumb()},setMaxValue:function(e){this.maxValue=e;var d=0,b=this.thumbs,a=b.length,c;for(;d<a;++d){c=b[d];c.value=c.value>e?e:c.value}this.syncThumb()},setValue:function(d,c,b,g){var a=this.thumbs[d],e=a.el;c=this.normalizeValue(c);if(c!==a.value&&this.fireEvent("beforechange",this,c,a.value,a)!==false){a.value=c;if(this.rendered){this.moveThumb(d,this.translateValue(c),b!==false);this.fireEvent("change",this,c,a);if(g)this.fireEvent("changecomplete",this,c,a)}}},translateValue:function(a){var b=this.getRatio();return a*b-this.minValue*b-this.halfThumb},reverseValue:function(b){var a=this.getRatio();return(b+this.minValue*a)/a},moveThumb:function(d,c,b){var a=this.thumbs[d].el;if(!b||this.animate===false)a.setLeft(c);else a.shift({left:c,stopFx:true,duration:.35})},focus:function(){this.focusEl.focus(10)},onResize:function(c,e){var b=this.thumbs,a=b.length,d=0;for(;d<a;++d)b[d].el.stopFx();this.innerEl.setWidth(c-(this.el.getPadding("l")+this.endEl.getPadding("r")));this.syncThumb();Ext.slider.MultiSlider.superclass.onResize.apply(this,arguments)},onDisable:function(){Ext.slider.MultiSlider.superclass.onDisable.call(this);for(var b=0;b<this.thumbs.length;b++){var a=this.thumbs[b],c=a.el;a.disable();if(Ext.isIE){var d=c.getXY();c.hide();this.innerEl.addClass(this.disabledClass).dom.disabled=true;if(!this.thumbHolder)this.thumbHolder=this.endEl.createChild({cls:"x-slider-thumb "+this.disabledClass});this.thumbHolder.show().setXY(d)}}},onEnable:function(){Ext.slider.MultiSlider.superclass.onEnable.call(this);for(var b=0;b<this.thumbs.length;b++){var a=this.thumbs[b],c=a.el;a.enable();if(Ext.isIE){this.innerEl.removeClass(this.disabledClass).dom.disabled=false;if(this.thumbHolder)this.thumbHolder.hide();c.show();this.syncThumb()}}},syncThumb:function(){if(this.rendered)for(var a=0;a<this.thumbs.length;a++)this.moveThumb(a,this.translateValue(this.thumbs[a].value))},getValue:function(a){return this.thumbs[a].value},getValues:function(){var a=[];for(var b=0;b<this.thumbs.length;b++)a.push(this.thumbs[b].value);return a},beforeDestroy:function(){Ext.destroyMembers(this,"endEl","innerEl","thumb","halfThumb","focusEl","tracker","thumbHolder");Ext.slider.MultiSlider.superclass.beforeDestroy.call(this)}});Ext.reg("multislider",Ext.slider.MultiSlider);Ext.slider.SingleSlider=Ext.extend(Ext.slider.MultiSlider,{constructor:function(a){a=a||{};Ext.applyIf(a,{values:[a.value||0]});Ext.slider.SingleSlider.superclass.constructor.call(this,a)},getValue:function(){return Ext.slider.SingleSlider.superclass.getValue.call(this,0)},setValue:function(d,b){var c=Ext.toArray(arguments),a=c.length;if(a==1||a<=3&&typeof arguments[1]!="number")c.unshift(0);return Ext.slider.SingleSlider.superclass.setValue.apply(this,c)},syncThumb:function(){return Ext.slider.SingleSlider.superclass.syncThumb.apply(this,[0].concat(arguments))},getNearest:function(){return this.thumbs[0]}});Ext.Slider=Ext.slider.SingleSlider;Ext.reg("slider",Ext.slider.SingleSlider);Ext.slider.Vertical={onResize:function(a,b){this.innerEl.setHeight(b-(this.el.getPadding("t")+this.endEl.getPadding("b")));this.syncThumb()},getRatio:function(){var b=this.innerEl.getHeight(),a=this.maxValue-this.minValue;return b/a},moveThumb:function(d,c,b){var a=this.thumbs[d],e=a.el;if(!b||this.animate===false)e.setBottom(c);else e.shift({bottom:c,stopFx:true,duration:.35})},onClickChange:function(c){if(c.left>this.clickRange[0]&&c.left<this.clickRange[1]){var a=this.getNearest(c,"top"),b=a.index,d=this.minValue+this.reverseValue(this.innerEl.getHeight()-c.top);this.setValue(b,Ext.util.Format.round(d,this.decimalPrecision),undefined,true)}}};Ext.slider.Thumb.Vertical={getNewValue:function(){var b=this.slider,c=b.innerEl,d=c.translatePoints(this.tracker.getXY()),a=c.getHeight()-d.top;return b.minValue+Ext.util.Format.round(a/b.getRatio(),b.decimalPrecision)}};Ext.ProgressBar=Ext.extend(Ext.BoxComponent,{baseCls:"x-progress",animate:false,waitTimer:null,initComponent:function(){Ext.ProgressBar.superclass.initComponent.call(this);this.addEvents("update")},onRender:function(d,a){var c=new Ext.Template('<div class="{cls}-wrap">','<div class="{cls}-inner">','<div class="{cls}-bar">','<div class="{cls}-text">',"<div>&#160;</div>","</div>","</div>",'<div class="{cls}-text {cls}-text-back">',"<div>&#160;</div>","</div>","</div>","</div>");this.el=a?c.insertBefore(a,{cls:this.baseCls},true):c.append(d,{cls:this.baseCls},true);if(this.id)this.el.dom.id=this.id;var b=this.el.dom.firstChild;this.progressBar=Ext.get(b.firstChild);if(this.textEl){this.textEl=Ext.get(this.textEl);delete this.textTopEl}else{this.textTopEl=Ext.get(this.progressBar.dom.firstChild);var e=Ext.get(b.childNodes[1]);this.textTopEl.setStyle("z-index",99).addClass("x-hidden");this.textEl=new Ext.CompositeElement([this.textTopEl.dom.firstChild,e.dom.firstChild]);this.textEl.setWidth(b.offsetWidth)}this.progressBar.setHeight(b.offsetHeight)},afterRender:function(){Ext.ProgressBar.superclass.afterRender.call(this);if(this.value)this.updateProgress(this.value,this.text);else this.updateText(this.text)},updateProgress:function(c,d,b){this.value=c||0;if(d)this.updateText(d);if(this.rendered&&!this.isDestroyed){var a=Math.floor(c*this.el.dom.firstChild.offsetWidth);this.progressBar.setWidth(a,b===true||b!==false&&this.animate);if(this.textTopEl)this.textTopEl.removeClass("x-hidden").setWidth(a)}this.fireEvent("update",this,c,d);return this},wait:function(b){if(!this.waitTimer){var a=this;b=b||{};this.updateText(b.text);this.waitTimer=Ext.TaskMgr.start({run:function(c){var d=b.increment||10;c-=1;this.updateProgress(((c+d)%d+1)*(100/d)*.01,null,b.animate)},interval:b.interval||1e3,duration:b.duration,onStop:function(){if(b.fn)b.fn.apply(b.scope||this);this.reset()},scope:a})}return this},isWaiting:function(){return this.waitTimer!==null},updateText:function(a){this.text=a||"&#160;";if(this.rendered)this.textEl.update(this.text);return this},syncProgressBar:function(){if(this.value)this.updateProgress(this.value,this.text);return this},setSize:function(a,c){Ext.ProgressBar.superclass.setSize.call(this,a,c);if(this.textTopEl){var b=this.el.dom.firstChild;this.textEl.setSize(b.offsetWidth,b.offsetHeight)}this.syncProgressBar();return this},reset:function(a){this.updateProgress(0);if(this.textTopEl)this.textTopEl.addClass("x-hidden");this.clearTimer();if(a===true)this.hide();return this},clearTimer:function(){if(this.waitTimer){this.waitTimer.onStop=null;Ext.TaskMgr.stop(this.waitTimer);this.waitTimer=null}},onDestroy:function(){this.clearTimer();if(this.rendered){if(this.textEl.isComposite)this.textEl.clear();Ext.destroyMembers(this,"textEl","progressBar","textTopEl")}Ext.ProgressBar.superclass.onDestroy.call(this)}});Ext.reg("progress",Ext.ProgressBar);(function(){var a=Ext.EventManager;var b=Ext.lib.Dom;Ext.dd.DragDrop=function(e,c,d){if(e)this.init(e,c,d)};Ext.dd.DragDrop.prototype={id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true},moveOnly:false,unlock:function(){this.locked=false},isTarget:true,padding:null,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,b4StartDrag:function(c,d){},startDrag:function(c,d){},b4Drag:function(c){},onDrag:function(c){},onDragEnter:function(c,d){},b4DragOver:function(c){},onDragOver:function(c,d){},b4DragOut:function(c){},onDragOut:function(c,d){},b4DragDrop:function(c){},onDragDrop:function(c,d){},onInvalidDrop:function(c){},b4EndDrag:function(c){},endDrag:function(c){},b4MouseDown:function(c){},onMouseDown:function(c){},onMouseUp:function(c){},onAvailable:function(){},defaultPadding:{left:0,right:0,top:0,bottom:0},constrainTo:function(j,h,o){if(Ext.isNumber(h))h={left:h,right:h,top:h,bottom:h};h=h||this.defaultPadding;var l=Ext.get(this.getEl()).getBox(),d=Ext.get(j),n=d.getScroll(),k,e=d.dom;if(e==document.body)k={x:n.left,y:n.top,width:Ext.lib.Dom.getViewWidth(),height:Ext.lib.Dom.getViewHeight()};else{var m=d.getXY();k={x:m[0],y:m[1],width:e.clientWidth,height:e.clientHeight}}var i=l.y-k.y,g=l.x-k.x;this.resetConstraints();this.setXConstraint(g-(h.left||0),k.width-g-l.width-(h.right||0),this.xTickSize);this.setYConstraint(i-(h.top||0),k.height-i-l.height-(h.bottom||0),this.yTickSize)},getEl:function(){if(!this._domRef)this._domRef=Ext.getDom(this.id);return this._domRef},getDragEl:function(){return Ext.getDom(this.dragElId)},init:function(e,c,d){this.initTarget(e,c,d);a.on(this.id,"mousedown",this.handleMouseDown,this)},initTarget:function(e,c,d){this.config=d||{};this.DDM=Ext.dd.DDM;this.groups={};if(typeof e!=="string")e=Ext.id(e);this.id=e;this.addToGroup(c?c:"default");this.handleElId=e;this.setDragElId(e);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();this.handleOnAvailable()},applyConfig:function(){this.padding=this.config.padding||[0,0,0,0];this.isTarget=this.config.isTarget!==false;this.maintainOffset=this.config.maintainOffset;this.primaryButtonOnly=this.config.primaryButtonOnly!==false},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable()},setPadding:function(e,c,g,d){if(!c&&0!==c)this.padding=[e,e,e,e];else if(!g&&0!==g)this.padding=[e,c,e,c];else this.padding=[e,c,g,d]},setInitPosition:function(g,e){var h=this.getEl();if(!this.DDM.verifyEl(h))return;var d=g||0;var c=e||0;var i=b.getXY(h);this.initPageX=i[0]-d;this.initPageY=i[1]-c;this.lastPageX=i[0];this.lastPageY=i[1];this.setStartPosition(i)},setStartPosition:function(d){var c=d||b.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=c[0];this.startPageY=c[1]},addToGroup:function(c){this.groups[c]=true;this.DDM.regDragDrop(this,c)},removeFromGroup:function(c){if(this.groups[c])delete this.groups[c];this.DDM.removeDDFromGroup(this,c)},setDragElId:function(c){this.dragElId=c},setHandleElId:function(c){if(typeof c!=="string")c=Ext.id(c);this.handleElId=c;this.DDM.regHandle(this.id,c)},setOuterHandleElId:function(c){if(typeof c!=="string")c=Ext.id(c);a.on(c,"mousedown",this.handleMouseDown,this);this.setHandleElId(c);this.hasOuterHandles=true},unreg:function(){a.un(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this)},destroy:function(){this.unreg()},isLocked:function(){return this.DDM.isLocked()||this.locked},handleMouseDown:function(g,d){if(this.primaryButtonOnly&&g.button!=0)return;if(this.isLocked())return;this.DDM.refreshCache(this.groups);var c=new Ext.lib.Point(Ext.lib.Event.getPageX(g),Ext.lib.Event.getPageY(g));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(c,this));else if(this.clickValidator(g)){this.setStartPosition();this.b4MouseDown(g);this.onMouseDown(g);this.DDM.handleMouseDown(g,this);this.DDM.stopEvent(g)}},clickValidator:function(d){var c=d.getTarget();return this.isValidHandleChild(c)&&(this.id==this.handleElId||this.DDM.handleWasClicked(c,this.id))},addInvalidHandleType:function(c){var d=c.toUpperCase();this.invalidHandleTypes[d]=d},addInvalidHandleId:function(c){if(typeof c!=="string")c=Ext.id(c);this.invalidHandleIds[c]=c},addInvalidHandleClass:function(c){this.invalidHandleClasses.push(c)},removeInvalidHandleType:function(c){var d=c.toUpperCase();delete this.invalidHandleTypes[d]},removeInvalidHandleId:function(c){if(typeof c!=="string")c=Ext.id(c);delete this.invalidHandleIds[c]},removeInvalidHandleClass:function(d){for(var e=0,c=this.invalidHandleClasses.length;e<c;++e)if(this.invalidHandleClasses[e]==d)delete this.invalidHandleClasses[e]},isValidHandleChild:function(h){var g=true;var k;try{k=h.nodeName.toUpperCase()}catch(j){k=h.nodeName}g=g&&!this.invalidHandleTypes[k];g=g&&!this.invalidHandleIds[h.id];for(var d=0,c=this.invalidHandleClasses.length;g&&d<c;++d)g=!Ext.fly(h).hasClass(this.invalidHandleClasses[d]);return g},setXTicks:function(g,c){this.xTicks=[];this.xTickSize=c;var e={};for(var d=this.initPageX;d>=this.minX;d=d-c)if(!e[d]){this.xTicks[this.xTicks.length]=d;e[d]=true}for(d=this.initPageX;d<=this.maxX;d=d+c)if(!e[d]){this.xTicks[this.xTicks.length]=d;e[d]=true}this.xTicks.sort(this.DDM.numericSort)},setYTicks:function(g,c){this.yTicks=[];this.yTickSize=c;var e={};for(var d=this.initPageY;d>=this.minY;d=d-c)if(!e[d]){this.yTicks[this.yTicks.length]=d;e[d]=true}for(d=this.initPageY;d<=this.maxY;d=d+c)if(!e[d]){this.yTicks[this.yTicks.length]=d;e[d]=true}this.yTicks.sort(this.DDM.numericSort)},setXConstraint:function(e,d,c){this.leftConstraint=e;this.rightConstraint=d;this.minX=this.initPageX-e;this.maxX=this.initPageX+d;if(c)this.setXTicks(this.initPageX,c);this.constrainX=true},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks()},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0},setYConstraint:function(c,e,d){this.topConstraint=c;this.bottomConstraint=e;this.minY=this.initPageY-c;this.maxY=this.initPageY+e;if(d)this.setYTicks(this.initPageY,d);this.constrainY=true},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var d=this.maintainOffset?this.lastPageX-this.initPageX:0;var c=this.maintainOffset?this.lastPageY-this.initPageY:0;this.setInitPosition(d,c)}else this.setInitPosition();if(this.constrainX)this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);if(this.constrainY)this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize)},getTick:function(k,g){if(!g)return k;else if(g[0]>=k)return g[0];else{for(var d=0,c=g.length;d<c;++d){var e=d+1;if(g[e]&&g[e]>=k){var j=k-g[d];var h=g[e]-k;return h>j?g[d]:g[e]}}return g[g.length-1]}},toString:function(){return"DragDrop "+this.id}}})();if(!Ext.dd.DragDropMgr){Ext.dd.DragDropMgr=function(){var a=Ext.EventManager;return{ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initialized:false,locked:false,init:function(){this.initialized=true},POINT:0,INTERSECT:1,mode:0,_execOnAll:function(d,c){for(var e in this.ids)for(var b in this.ids[e]){var g=this.ids[e][b];if(!this.isTypeOfDD(g))continue;g[d].apply(g,c)}},_onLoad:function(){this.init();a.on(document,"mouseup",this.handleMouseUp,this,true);a.on(document,"mousemove",this.handleMouseMove,this,true);a.on(window,"unload",this._onUnload,this,true);a.on(window,"resize",this._onResize,this,true)},_onResize:function(b){this._execOnAll("resetConstraints",[])},lock:function(){this.locked=true},unlock:function(){this.locked=false},isLocked:function(){return this.locked},locationCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:350,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,regDragDrop:function(c,b){if(!this.initialized)this.init();if(!this.ids[b])this.ids[b]={};this.ids[b][c.id]=c},removeDDFromGroup:function(d,b){if(!this.ids[b])this.ids[b]={};var c=this.ids[b];if(c&&c[d.id])delete c[d.id]},_remove:function(c){for(var b in c.groups)if(b&&this.ids[b]&&this.ids[b][c.id])delete this.ids[b][c.id];delete this.handleIds[c.id]},regHandle:function(c,b){if(!this.handleIds[c])this.handleIds[c]={};this.handleIds[c][b]=b},isDragDrop:function(b){return this.getDDById(b)?true:false},getRelated:function(h,c){var g=[];for(var e in h.groups)for(var d in this.ids[e]){var b=this.ids[e][d];if(!this.isTypeOfDD(b))continue;if(!c||b.isTarget)g[g.length]=b}return g},isLegalTarget:function(g,e){var c=this.getRelated(g,true);for(var d=0,b=c.length;d<b;++d)if(c[d].id==e.id)return true;return false},isTypeOfDD:function(b){return b&&b.__ygDragDrop},isHandle:function(c,b){return this.handleIds[c]&&this.handleIds[c][b]},getDDById:function(c){for(var b in this.ids)if(this.ids[b][c])return this.ids[b][c];return null},handleMouseDown:function(d,c){if(Ext.QuickTips)Ext.QuickTips.disable();if(this.dragCurrent)this.handleMouseUp(d);this.currentTarget=d.getTarget();this.dragCurrent=c;var b=c.getEl();this.startX=d.getPageX();this.startY=d.getPageY();this.deltaX=this.startX-b.offsetLeft;this.deltaY=this.startY-b.offsetTop;this.dragThreshMet=false;this.clickTimeout=setTimeout(function(){var e=Ext.dd.DDM;e.startDrag(e.startX,e.startY)},this.clickTimeThresh)},startDrag:function(b,c){clearTimeout(this.clickTimeout);if(this.dragCurrent){this.dragCurrent.b4StartDrag(b,c);this.dragCurrent.startDrag(b,c)}this.dragThreshMet=true},handleMouseUp:function(b){if(Ext.QuickTips)Ext.QuickTips.enable();if(!this.dragCurrent)return;clearTimeout(this.clickTimeout);if(this.dragThreshMet)this.fireEvents(b,true);this.stopDrag(b);this.stopEvent(b)},stopEvent:function(b){if(this.stopPropagation)b.stopPropagation();if(this.preventDefault)b.preventDefault()},stopDrag:function(b){if(this.dragCurrent){if(this.dragThreshMet){this.dragCurrent.b4EndDrag(b);this.dragCurrent.endDrag(b)}this.dragCurrent.onMouseUp(b)}this.dragCurrent=null;this.dragOvers={}},handleMouseMove:function(d){if(!this.dragCurrent)return true;if(Ext.isIE&&d.button!==0&&d.button!==1&&d.button!==2){this.stopEvent(d);return this.handleMouseUp(d)}if(!this.dragThreshMet){var c=Math.abs(this.startX-d.getPageX());var b=Math.abs(this.startY-d.getPageY());if(c>this.clickPixelThresh||b>this.clickPixelThresh)this.startDrag(this.startX,this.startY)}if(this.dragThreshMet){this.dragCurrent.b4Drag(d);this.dragCurrent.onDrag(d);if(!this.dragCurrent.moveOnly)this.fireEvents(d,false)}this.stopEvent(d);return true},fireEvents:function(n,o){var q=this.dragCurrent;if(!q||q.isLocked())return;var r=n.getPoint();var b=[];var g=[];var l=[];var j=[];var d=[];for(var h in this.dragOvers){var c=this.dragOvers[h];if(!this.isTypeOfDD(c))continue;if(!this.isOverTarget(r,c,this.mode))g.push(c);b[h]=true;delete this.dragOvers[h]}for(var p in q.groups){if("string"!=typeof p)continue;for(h in this.ids[p]){var k=this.ids[p][h];if(!this.isTypeOfDD(k))continue;if(k.isTarget&&!k.isLocked()&&(k!=q||q.ignoreSelf===false))if(this.isOverTarget(r,k,this.mode))if(o)j.push(k);else{if(!b[k.id])d.push(k);else l.push(k);this.dragOvers[k.id]=k}}}if(this.mode){if(g.length){q.b4DragOut(n,g);q.onDragOut(n,g)}if(d.length)q.onDragEnter(n,d);if(l.length){q.b4DragOver(n,l);q.onDragOver(n,l)}if(j.length){q.b4DragDrop(n,j);q.onDragDrop(n,j)}}else{var m=0;for(h=0,m=g.length;h<m;++h){q.b4DragOut(n,g[h].id);q.onDragOut(n,g[h].id)}for(h=0,m=d.length;h<m;++h)q.onDragEnter(n,d[h].id);for(h=0,m=l.length;h<m;++h){q.b4DragOver(n,l[h].id);q.onDragOver(n,l[h].id)}for(h=0,m=j.length;h<m;++h){q.b4DragDrop(n,j[h].id);q.onDragDrop(n,j[h].id)}}if(o&&!j.length)q.onInvalidDrop(n)},getBestMatch:function(d){var g=null;var c=d.length;if(c==1)g=d[0];else for(var e=0;e<c;++e){var b=d[e];if(b.cursorIsOver){g=b;break}else if(!g||g.overlap.getArea()<b.overlap.getArea())g=b}return g},refreshCache:function(c){for(var b in c){if("string"!=typeof b)continue;for(var d in this.ids[b]){var e=this.ids[b][d];if(this.isTypeOfDD(e)){var g=this.getLocation(e);if(g)this.locationCache[e.id]=g;else delete this.locationCache[e.id]}}}},verifyEl:function(c){if(c){var b;if(Ext.isIE)try{b=c.offsetParent}catch(d){}else b=c.offsetParent;if(b)return true}return false},getLocation:function(j){if(!this.isTypeOfDD(j))return null;var h=j.getEl(),n,g,d,p,o,q,c,m,i;try{n=Ext.lib.Dom.getXY(h)}catch(k){}if(!n)return null;g=n[0];d=g+h.offsetWidth;p=n[1];o=p+h.offsetHeight;q=p-j.padding[0];c=d+j.padding[1];m=o+j.padding[2];i=g-j.padding[3];return new Ext.lib.Region(q,c,m,i)},isOverTarget:function(k,b,d){var g=this.locationCache[b.id];if(!g||!this.useCache){g=this.getLocation(b);this.locationCache[b.id]=g}if(!g)return false;b.cursorIsOver=g.contains(k);var j=this.dragCurrent;if(!j||!j.getTargetCoord||!d&&!j.constrainX&&!j.constrainY)return b.cursorIsOver;b.overlap=null;var h=j.getTargetCoord(k.x,k.y);var c=j.getDragEl();var e=new Ext.lib.Region(h.y,h.x+c.offsetWidth,h.y+c.offsetHeight,h.x);var i=e.intersect(g);if(i){b.overlap=i;return d?true:b.cursorIsOver}else return false},_onUnload:function(c,b){Ext.dd.DragDropMgr.unregAll()},unregAll:function(){if(this.dragCurrent){this.stopDrag();this.dragCurrent=null}this._execOnAll("unreg",[]);for(var b in this.elementCache)delete this.elementCache[b];this.elementCache={};this.ids={}},elementCache:{},getElWrapper:function(c){var b=this.elementCache[c];if(!b||!b.el)b=this.elementCache[c]=new this.ElementWrapper(Ext.getDom(c));return b},getElement:function(b){return Ext.getDom(b)},getCss:function(c){var b=Ext.getDom(c);return b?b.style:null},ElementWrapper:function(b){this.el=b||null;this.id=this.el&&b.id;this.css=this.el&&b.style},getPosX:function(b){return Ext.lib.Dom.getX(b)},getPosY:function(b){return Ext.lib.Dom.getY(b)},swapNode:function(d,b){if(d.swapNode)d.swapNode(b);else{var e=b.parentNode;var c=b.nextSibling;if(c==d)e.insertBefore(d,b);else if(b==d.nextSibling)e.insertBefore(b,d);else{d.parentNode.replaceChild(b,d);e.insertBefore(d,c)}}},getScroll:function(){var d,b,e=document.documentElement,c=document.body;if(e&&(e.scrollTop||e.scrollLeft)){d=e.scrollTop;b=e.scrollLeft}else if(c){d=c.scrollTop;b=c.scrollLeft}return{top:d,left:b}},getStyle:function(c,b){return Ext.fly(c).getStyle(b)},getScrollTop:function(){return this.getScroll().top},getScrollLeft:function(){return this.getScroll().left},moveToEl:function(b,d){var c=Ext.lib.Dom.getXY(d);Ext.lib.Dom.setXY(b,c)},numericSort:function(d,c){return d-c},_timeoutCount:0,_addListeners:function(){var b=Ext.dd.DDM;if(Ext.lib.Event&&document)b._onLoad();else if(b._timeoutCount>2e3);else{setTimeout(b._addListeners,10);if(document&&document.body)b._timeoutCount+=1}},handleWasClicked:function(b,d){if(this.isHandle(d,b.id))return true;else{var c=b.parentNode;while(c)if(this.isHandle(d,c.id))return true;else c=c.parentNode}return false}}}();Ext.dd.DDM=Ext.dd.DragDropMgr;Ext.dd.DDM._addListeners()}Ext.dd.DD=function(c,a,b){if(c)this.init(c,a,b)};Ext.extend(Ext.dd.DD,Ext.dd.DragDrop,{scroll:true,autoOffset:function(c,b){var a=c-this.startPageX;var d=b-this.startPageY;this.setDelta(a,d)},setDelta:function(b,a){this.deltaX=b;this.deltaY=a},setDragElPos:function(c,b){var a=this.getDragEl();this.alignElWithMouse(a,c,b)},alignElWithMouse:function(c,h,g){var e=this.getTargetCoord(h,g);var b=c.dom?c:Ext.fly(c,"_dd");if(!this.deltaSetXY){var i=[e.x,e.y];b.setXY(i);var d=b.getLeft(true);var a=b.getTop(true);this.deltaSetXY=[d-e.x,a-e.y]}else b.setLeftTop(e.x+this.deltaSetXY[0],e.y+this.deltaSetXY[1]);this.cachePosition(e.x,e.y);this.autoScroll(e.x,e.y,c.offsetHeight,c.offsetWidth);return e},cachePosition:function(b,a){if(b){this.lastPageX=b;this.lastPageY=a}else{var c=Ext.lib.Dom.getXY(this.getEl());this.lastPageX=c[0];this.lastPageY=c[1]}},autoScroll:function(l,k,e,m){if(this.scroll){var n=Ext.lib.Dom.getViewHeight();var b=Ext.lib.Dom.getViewWidth();var p=this.DDM.getScrollTop();var d=this.DDM.getScrollLeft();var j=e+k;var o=m+l;var i=n+p-k-this.deltaY;var g=b+d-l-this.deltaX;var c=40;var a=document.all?80:30;if(j>n&&i<c)window.scrollTo(d,p+a);if(k<p&&p>0&&k-p<c)window.scrollTo(d,p-a);if(o>b&&g<c)window.scrollTo(d+a,p);if(l<d&&d>0&&l-d<c)window.scrollTo(d-a,p)}},getTargetCoord:function(c,b){var a=c-this.deltaX;var d=b-this.deltaY;if(this.constrainX){if(a<this.minX)a=this.minX;if(a>this.maxX)a=this.maxX}if(this.constrainY){if(d<this.minY)d=this.minY;if(d>this.maxY)d=this.maxY}a=this.getTick(a,this.xTicks);d=this.getTick(d,this.yTicks);return{x:a,y:d}},applyConfig:function(){Ext.dd.DD.superclass.applyConfig.call(this);this.scroll=this.config.scroll!==false},b4MouseDown:function(a){this.autoOffset(a.getPageX(),a.getPageY())},b4Drag:function(a){this.setDragElPos(a.getPageX(),a.getPageY())},toString:function(){return"DD "+this.id}});Ext.dd.DDProxy=function(c,a,b){if(c){this.init(c,a,b);this.initFrame()}};Ext.dd.DDProxy.dragElId="ygddfdiv";Ext.extend(Ext.dd.DDProxy,Ext.dd.DD,{resizeFrame:true,centerFrame:false,createFrame:function(){var b=this;var a=document.body;if(!a||!a.firstChild){setTimeout(function(){b.createFrame()},50);return}var d=this.getDragEl();if(!d){d=document.createElement("div");d.id=this.dragElId;var c=d.style;c.position="absolute";c.visibility="hidden";c.cursor="move";c.border="2px solid #aaa";c.zIndex=999;a.insertBefore(d,a.firstChild)}},initFrame:function(){this.createFrame()},applyConfig:function(){Ext.dd.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=this.config.resizeFrame!==false;this.centerFrame=this.config.centerFrame;this.setDragElId(this.config.dragElId||Ext.dd.DDProxy.dragElId)},showFrame:function(e,d){var c=this.getEl();var a=this.getDragEl();var b=a.style;this._resizeProxy();if(this.centerFrame)this.setDelta(Math.round(parseInt(b.width,10)/2),Math.round(parseInt(b.height,10)/2));this.setDragElPos(e,d);Ext.fly(a).show()},_resizeProxy:function(){if(this.resizeFrame){var a=this.getEl();Ext.fly(this.getDragEl()).setSize(a.offsetWidth,a.offsetHeight)}},b4MouseDown:function(b){var a=b.getPageX();var c=b.getPageY();this.autoOffset(a,c);this.setDragElPos(a,c)},b4StartDrag:function(a,b){this.showFrame(a,b)},b4EndDrag:function(a){Ext.fly(this.getDragEl()).hide()},endDrag:function(c){var b=this.getEl();var a=this.getDragEl();a.style.visibility="";this.beforeMove();b.style.visibility="hidden";Ext.dd.DDM.moveToEl(b,a);a.style.visibility="hidden";b.style.visibility="";this.afterDrag()},beforeMove:function(){},afterDrag:function(){},toString:function(){return"DDProxy "+this.id}});Ext.dd.DDTarget=function(c,a,b){if(c)this.initTarget(c,a,b)};Ext.extend(Ext.dd.DDTarget,Ext.dd.DragDrop,{getDragEl:Ext.emptyFn,isValidHandleChild:Ext.emptyFn,startDrag:Ext.emptyFn,endDrag:Ext.emptyFn,onDrag:Ext.emptyFn,onDragDrop:Ext.emptyFn,onDragEnter:Ext.emptyFn,onDragOut:Ext.emptyFn,onDragOver:Ext.emptyFn,onInvalidDrop:Ext.emptyFn,onMouseDown:Ext.emptyFn,onMouseUp:Ext.emptyFn,setXConstraint:Ext.emptyFn,setYConstraint:Ext.emptyFn,resetConstraints:Ext.emptyFn,clearConstraints:Ext.emptyFn,clearTicks:Ext.emptyFn,setInitPosition:Ext.emptyFn,setDragElId:Ext.emptyFn,setHandleElId:Ext.emptyFn,setOuterHandleElId:Ext.emptyFn,addInvalidHandleClass:Ext.emptyFn,addInvalidHandleId:Ext.emptyFn,addInvalidHandleType:Ext.emptyFn,removeInvalidHandleClass:Ext.emptyFn,removeInvalidHandleId:Ext.emptyFn,removeInvalidHandleType:Ext.emptyFn,toString:function(){return"DDTarget "+this.id}});Ext.dd.DragTracker=Ext.extend(Ext.util.Observable,{active:false,tolerance:5,autoStart:false,constructor:function(a){Ext.apply(this,a);this.addEvents("mousedown","mouseup","mousemove","dragstart","dragend","drag");this.dragRegion=new Ext.lib.Region(0,0,0,0);if(this.el)this.initEl(this.el);Ext.dd.DragTracker.superclass.constructor.call(this,a)},initEl:function(a){this.el=Ext.get(a);a.on("mousedown",this.onMouseDown,this,this.delegate?{delegate:this.delegate}:undefined)},destroy:function(){this.el.un("mousedown",this.onMouseDown,this)},onMouseDown:function(c,b){if(this.fireEvent("mousedown",this,c)!==false&&this.onBeforeStart(c)!==false){this.startXY=this.lastXY=c.getXY();this.dragTarget=this.delegate?b:this.el.dom;if(this.preventDefault!==false)c.preventDefault();var a=Ext.getDoc();a.on("mouseup",this.onMouseUp,this);a.on("mousemove",this.onMouseMove,this);a.on("selectstart",this.stopSelect,this);if(this.autoStart)this.timer=this.triggerStart.defer(this.autoStart===true?1e3:this.autoStart,this)}},onMouseMove:function(d,c){if(this.active&&Ext.isIE&&!d.browserEvent.button){d.preventDefault();this.onMouseUp(d);return}d.preventDefault();var b=d.getXY(),a=this.startXY;this.lastXY=b;if(!this.active)if(Math.abs(a[0]-b[0])>this.tolerance||Math.abs(a[1]-b[1])>this.tolerance)this.triggerStart();else return;this.fireEvent("mousemove",this,d);this.onDrag(d);this.fireEvent("drag",this,d)},onMouseUp:function(c){var b=Ext.getDoc();b.un("mousemove",this.onMouseMove,this);b.un("mouseup",this.onMouseUp,this);b.un("selectstart",this.stopSelect,this);c.preventDefault();this.clearStart();var a=this.active;this.active=false;delete this.elRegion;this.fireEvent("mouseup",this,c);if(a){this.onEnd(c);this.fireEvent("dragend",this,c)}},triggerStart:function(a){this.clearStart();this.active=true;this.onStart(this.startXY);this.fireEvent("dragstart",this,this.startXY)},clearStart:function(){if(this.timer){clearTimeout(this.timer);delete this.timer}},stopSelect:function(a){a.stopEvent();return false},onBeforeStart:function(a){},onStart:function(a){},onDrag:function(a){},onEnd:function(a){},getDragTarget:function(){return this.dragTarget},getDragCt:function(){return this.el},getXY:function(a){return a?this.constrainModes[a].call(this,this.lastXY):this.lastXY},getOffset:function(c){var b=this.getXY(c);var a=this.startXY;return[a[0]-b[0],a[1]-b[1]]},constrainModes:{point:function(b){if(!this.elRegion)this.elRegion=this.getDragCt().getRegion();var a=this.dragRegion;a.left=b[0];a.top=b[1];a.right=b[0];a.bottom=b[1];a.constrainTo(this.elRegion);return[a.left,a.top]}}});Ext.dd.ScrollManager=function(){var c=Ext.dd.DragDropMgr;var e={};var b=null;var i={};var h=function(l){b=null;a()};var j=function(){if(c.dragCurrent)c.refreshCache(c.dragCurrent.groups)};var d=function(){if(c.dragCurrent){var l=Ext.dd.ScrollManager;var m=i.el.ddScrollConfig?i.el.ddScrollConfig.increment:l.increment;if(!l.animate){if(i.el.scroll(i.dir,m))j()}else i.el.scroll(i.dir,m,true,l.animDuration,j)}};var a=function(){if(i.id)clearInterval(i.id);i.id=0;i.el=null;i.dir=""};var g=function(m,l){a();i.el=m;i.dir=l;var n=m.ddScrollConfig&&m.ddScrollConfig.frequency?m.ddScrollConfig.frequency:Ext.dd.ScrollManager.frequency;i.id=setInterval(d,n)};var k=function(o,q){if(q||!c.dragCurrent)return;var s=Ext.dd.ScrollManager;if(!b||b!=c.dragCurrent){b=c.dragCurrent;s.refreshCache()}var t=Ext.lib.Event.getXY(o);var u=new Ext.lib.Point(t[0],t[1]);for(var m in e){var n=e[m],l=n._region;var p=n.ddScrollConfig?n.ddScrollConfig:s;if(l&&l.contains(u)&&n.isScrollable())if(l.bottom-u.y<=p.vthresh){if(i.el!=n)g(n,"down");return}else if(l.right-u.x<=p.hthresh){if(i.el!=n)g(n,"left");return}else if(u.y-l.top<=p.vthresh){if(i.el!=n)g(n,"up");return}else if(u.x-l.left<=p.hthresh){if(i.el!=n)g(n,"right");return}}a()};c.fireEvents=c.fireEvents.createSequence(k,c);c.stopDrag=c.stopDrag.createSequence(h,c);return{register:function(n){if(Ext.isArray(n))for(var m=0,l=n.length;m<l;m++)this.register(n[m]);else{n=Ext.get(n);e[n.id]=n}},unregister:function(n){if(Ext.isArray(n))for(var m=0,l=n.length;m<l;m++)this.unregister(n[m]);else{n=Ext.get(n);delete e[n.id]}},vthresh:25,hthresh:25,increment:100,frequency:500,animate:true,animDuration:.4,refreshCache:function(){for(var l in e)if(typeof e[l]=="object")e[l]._region=e[l].getRegion()}}}();Ext.dd.Registry=function(){var d={};var b={};var a=0;var c=function(g,e){if(typeof g=="string")return g;var h=g.id;if(!h&&e!==false){h="extdd-"+ ++a;g.id=h}return h};return{register:function(j,k){k=k||{};if(typeof j=="string")j=document.getElementById(j);k.ddel=j;d[c(j)]=k;if(k.isHandle!==false)b[k.ddel.id]=k;if(k.handles){var h=k.handles;for(var g=0,e=h.length;g<e;g++)b[c(h[g])]=k}},unregister:function(j){var l=c(j,false);var k=d[l];if(k){delete d[l];if(k.handles){var h=k.handles;for(var g=0,e=h.length;g<e;g++)delete b[c(h[g],false)]}}},getHandle:function(e){if(typeof e!="string")e=e.id;return b[e]},getHandleFromEvent:function(h){var g=Ext.lib.Event.getTarget(h);return g?b[g.id]:null},getTarget:function(e){if(typeof e!="string")e=e.id;return d[e]},getTargetFromEvent:function(h){var g=Ext.lib.Event.getTarget(h);return g?d[g.id]||b[g.id]:null}}}();Ext.dd.StatusProxy=function(a){Ext.apply(this,a);this.id=this.id||Ext.id();this.el=new Ext.Layer({dh:{id:this.id,tag:"div",cls:"x-dd-drag-proxy "+this.dropNotAllowed,children:[{tag:"div",cls:"x-dd-drop-icon"},{tag:"div",cls:"x-dd-drag-ghost"}]},shadow:!a||a.shadow!==false});this.ghost=Ext.get(this.el.dom.childNodes[1]);this.dropStatus=this.dropNotAllowed};Ext.dd.StatusProxy.prototype={dropAllowed:"x-dd-drop-ok",dropNotAllowed:"x-dd-drop-nodrop",setStatus:function(a){a=a||this.dropNotAllowed;if(this.dropStatus!=a){this.el.replaceClass(this.dropStatus,a);this.dropStatus=a}},reset:function(a){this.el.dom.className="x-dd-drag-proxy "+this.dropNotAllowed;this.dropStatus=this.dropNotAllowed;if(a)this.ghost.update("")},update:function(a){if(typeof a=="string")this.ghost.update(a);else{this.ghost.update("");a.style.margin="0";this.ghost.dom.appendChild(a)}var b=this.ghost.dom.firstChild;if(b)Ext.fly(b).setStyle("float","none")},getEl:function(){return this.el},getGhost:function(){return this.ghost},hide:function(a){this.el.hide();if(a)this.reset(true)},stop:function(){if(this.anim&&this.anim.isAnimated&&this.anim.isAnimated())this.anim.stop()},show:function(){this.el.show()},sync:function(){this.el.sync()},repair:function(b,c,a){this.callback=c;this.scope=a;if(b&&this.animRepair!==false){this.el.addClass("x-dd-drag-repair");this.el.hideUnders(true);this.anim=this.el.shift({duration:this.repairDuration||.5,easing:"easeOut",xy:b,stopFx:true,callback:this.afterRepair,scope:this})}else this.afterRepair()},afterRepair:function(){this.hide(true);if(typeof this.callback=="function")this.callback.call(this.scope||this);this.callback=null;this.scope=null},destroy:function(){Ext.destroy(this.ghost,this.el)}};Ext.dd.DragSource=function(b,a){this.el=Ext.get(b);if(!this.dragData)this.dragData={};Ext.apply(this,a);if(!this.proxy)this.proxy=new Ext.dd.StatusProxy;Ext.dd.DragSource.superclass.constructor.call(this,this.el.dom,this.ddGroup||this.group,{dragElId:this.proxy.id,resizeFrame:false,isTarget:false,scroll:this.scroll===true});this.dragging=false};Ext.extend(Ext.dd.DragSource,Ext.dd.DDProxy,{dropAllowed:"x-dd-drop-ok",dropNotAllowed:"x-dd-drop-nodrop",getDragData:function(a){return this.dragData},onDragEnter:function(c,d){var b=Ext.dd.DragDropMgr.getDDById(d);this.cachedTarget=b;if(this.beforeDragEnter(b,c,d)!==false){if(b.isNotifyTarget){var a=b.notifyEnter(this,c,this.dragData);this.proxy.setStatus(a)}else this.proxy.setStatus(this.dropAllowed);if(this.afterDragEnter)this.afterDragEnter(b,c,d)}},beforeDragEnter:function(b,a,c){return true},alignElWithMouse:function(){Ext.dd.DragSource.superclass.alignElWithMouse.apply(this,arguments);this.proxy.sync()},onDragOver:function(c,d){var b=this.cachedTarget||Ext.dd.DragDropMgr.getDDById(d);if(this.beforeDragOver(b,c,d)!==false){if(b.isNotifyTarget){var a=b.notifyOver(this,c,this.dragData);this.proxy.setStatus(a)}if(this.afterDragOver)this.afterDragOver(b,c,d)}},beforeDragOver:function(b,a,c){return true},onDragOut:function(b,c){var a=this.cachedTarget||Ext.dd.DragDropMgr.getDDById(c);if(this.beforeDragOut(a,b,c)!==false){if(a.isNotifyTarget)a.notifyOut(this,b,this.dragData);this.proxy.reset();if(this.afterDragOut)this.afterDragOut(a,b,c)}this.cachedTarget=null},beforeDragOut:function(b,a,c){return true},onDragDrop:function(b,c){var a=this.cachedTarget||Ext.dd.DragDropMgr.getDDById(c);if(this.beforeDragDrop(a,b,c)!==false){if(a.isNotifyTarget)if(a.notifyDrop(this,b,this.dragData))this.onValidDrop(a,b,c);else this.onInvalidDrop(a,b,c);else this.onValidDrop(a,b,c);if(this.afterDragDrop)this.afterDragDrop(a,b,c)}delete this.cachedTarget},beforeDragDrop:function(b,a,c){return true},onValidDrop:function(b,a,c){this.hideProxy();if(this.afterValidDrop)this.afterValidDrop(b,a,c)},getRepairXY:function(b,a){return this.el.getXY()},onInvalidDrop:function(b,a,c){this.beforeInvalidDrop(b,a,c);if(this.cachedTarget){if(this.cachedTarget.isNotifyTarget)this.cachedTarget.notifyOut(this,a,this.dragData);this.cacheTarget=null}this.proxy.repair(this.getRepairXY(a,this.dragData),this.afterRepair,this);if(this.afterInvalidDrop)this.afterInvalidDrop(a,c)},afterRepair:function(){if(Ext.enableFx)this.el.highlight(this.hlColor||"c3daf9");this.dragging=false},beforeInvalidDrop:function(b,a,c){return true},handleMouseDown:function(b){if(this.dragging)return;var a=this.getDragData(b);if(a&&this.onBeforeDrag(a,b)!==false){this.dragData=a;this.proxy.stop();Ext.dd.DragSource.superclass.handleMouseDown.apply(this,arguments)}},onBeforeDrag:function(a,b){return true},onStartDrag:Ext.emptyFn,startDrag:function(a,b){this.proxy.reset();this.dragging=true;this.proxy.update("");this.onInitDrag(a,b);this.proxy.show()},onInitDrag:function(a,c){var b=this.el.dom.cloneNode(true);b.id=Ext.id();this.proxy.update(b);this.onStartDrag(a,c);return true},getProxy:function(){return this.proxy},hideProxy:function(){this.proxy.hide();this.proxy.reset(true);this.dragging=false},triggerCacheRefresh:function(){Ext.dd.DDM.refreshCache(this.groups)},b4EndDrag:function(a){},endDrag:function(a){this.onEndDrag(this.dragData,a)},onEndDrag:function(a,b){},autoOffset:function(a,b){this.setDelta(-12,-20)},destroy:function(){Ext.dd.DragSource.superclass.destroy.call(this);Ext.destroy(this.proxy)}});Ext.dd.DropTarget=function(b,a){this.el=Ext.get(b);Ext.apply(this,a);if(this.containerScroll)Ext.dd.ScrollManager.register(this.el);Ext.dd.DropTarget.superclass.constructor.call(this,this.el.dom,this.ddGroup||this.group,{isTarget:true})};Ext.extend(Ext.dd.DropTarget,Ext.dd.DDTarget,{dropAllowed:"x-dd-drop-ok",dropNotAllowed:"x-dd-drop-nodrop",isTarget:true,isNotifyTarget:true,notifyEnter:function(a,c,b){if(this.overClass)this.el.addClass(this.overClass);return this.dropAllowed},notifyOver:function(a,c,b){return this.dropAllowed},notifyOut:function(a,c,b){if(this.overClass)this.el.removeClass(this.overClass)},notifyDrop:function(a,c,b){return false}});Ext.dd.DragZone=function(b,a){Ext.dd.DragZone.superclass.constructor.call(this,b,a);if(this.containerScroll)Ext.dd.ScrollManager.register(this.el)};Ext.extend(Ext.dd.DragZone,Ext.dd.DragSource,{getDragData:function(a){return Ext.dd.Registry.getHandleFromEvent(a)},onInitDrag:function(a,b){this.proxy.update(this.dragData.ddel.cloneNode(true));this.onStartDrag(a,b);return true},afterRepair:function(){if(Ext.enableFx)Ext.Element.fly(this.dragData.ddel).highlight(this.hlColor||"c3daf9");this.dragging=false},getRepairXY:function(a){return Ext.Element.fly(this.dragData.ddel).getXY()}});Ext.dd.DropZone=function(b,a){Ext.dd.DropZone.superclass.constructor.call(this,b,a)};Ext.extend(Ext.dd.DropZone,Ext.dd.DropTarget,{getTargetFromEvent:function(a){return Ext.dd.Registry.getTargetFromEvent(a)},onNodeEnter:function(d,a,c,b){},onNodeOver:function(d,a,c,b){return this.dropAllowed},onNodeOut:function(d,a,c,b){},onNodeDrop:function(d,a,c,b){return false},onContainerOver:function(a,c,b){return this.dropNotAllowed},onContainerDrop:function(a,c,b){return false},notifyEnter:function(a,c,b){return this.dropNotAllowed},notifyOver:function(a,c,b){var d=this.getTargetFromEvent(c);if(!d){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,a,c,b);this.lastOverNode=null}return this.onContainerOver(a,c,b)}if(this.lastOverNode!=d){if(this.lastOverNode)this.onNodeOut(this.lastOverNode,a,c,b);this.onNodeEnter(d,a,c,b);this.lastOverNode=d}return this.onNodeOver(d,a,c,b)},notifyOut:function(a,c,b){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,a,c,b);this.lastOverNode=null}},notifyDrop:function(a,c,b){if(this.lastOverNode){this.onNodeOut(this.lastOverNode,a,c,b);this.lastOverNode=null}var d=this.getTargetFromEvent(c);return d?this.onNodeDrop(d,a,c,b):this.onContainerDrop(a,c,b)},triggerCacheRefresh:function(){Ext.dd.DDM.refreshCache(this.groups)}});Ext.Element.addMethods({initDD:function(c,b,d){var a=new Ext.dd.DD(Ext.id(this.dom),c,b);return Ext.apply(a,d)},initDDProxy:function(c,b,d){var a=new Ext.dd.DDProxy(Ext.id(this.dom),c,b);return Ext.apply(a,d)},initDDTarget:function(c,b,d){var a=new Ext.dd.DDTarget(Ext.id(this.dom),c,b);return Ext.apply(a,d)}});Ext.data.Api=function(){var a={};return{actions:{create:"create",read:"read",update:"update",destroy:"destroy"},restActions:{create:"POST",read:"GET",update:"PUT",destroy:"DELETE"},isAction:function(b){return Ext.data.Api.actions[b]?true:false},getVerb:function(b){if(a[b])return a[b];for(var c in this.actions)if(this.actions[c]===b){a[b]=c;break}return a[b]!==undefined?a[b]:null},isValid:function(b){var e=[];var d=this.actions;for(var c in b)if(!(c in d))e.push(c);return!e.length?true:e},hasUniqueUrl:function(c,g){var b=c.api[g]?c.api[g].url:null;var e=true;for(var d in c.api)if((e=d===g?true:c.api[d].url!=b?true:false)===false)break;return e},prepare:function(b){if(!b.api)b.api={};for(var d in this.actions){var c=this.actions[d];b.api[c]=b.api[c]||b.url||b.directFn;if(typeof b.api[c]=="string")b.api[c]={url:b.api[c],method:b.restful===true?Ext.data.Api.restActions[c]:undefined}}},restify:function(b){b.restful=true;for(var c in this.restActions)b.api[this.actions[c]].method||(b.api[this.actions[c]].method=this.restActions[c]);b.onWrite=b.onWrite.createInterceptor(function(i,j,g,e){var d=j.reader;var h=new Ext.data.Response({action:i,raw:g});switch(g.status){case 200:return true;break;case 201:if(Ext.isEmpty(h.raw.responseText))h.success=true;else return true;break;case 204:h.success=true;h.data=null;break;default:return true;break}if(h.success===true)this.fireEvent("write",this,i,h.data,h,e,j.request.arg);else this.fireEvent("exception",this,"remote",i,j,h,e);j.request.callback.call(j.request.scope,h.data,h,h.success);return false},b)}}}();Ext.data.Response=function(b,a){Ext.apply(this,b,{raw:a})};Ext.data.Response.prototype={message:null,success:false,status:null,root:null,raw:null,getMessage:function(){return this.message},getSuccess:function(){return this.success},getStatus:function(){return this.status},getRoot:function(){return this.root},getRawResponse:function(){return this.raw}};Ext.data.Api.Error=Ext.extend(Ext.Error,{constructor:function(b,a){this.arg=a;Ext.Error.call(this,b)},name:"Ext.data.Api"});Ext.apply(Ext.data.Api.Error.prototype,{lang:{"action-url-undefined":"No fallback url defined for this action.  When defining a DataProxy api, please be sure to define an url for each CRUD action in Ext.data.Api.actions or define a default url in addition to your api-configuration.",invalid:"received an invalid API-configuration.  Please ensure your proxy API-configuration contains only the actions defined in Ext.data.Api.actions","invalid-url":"Invalid url.  Please review your proxy configuration.",execute:'Attempted to execute an unknown action.  Valid API actions are defined in Ext.data.Api.actions"'}});Ext.data.SortTypes={none:function(a){return a},stripTagsRE:/<\/?[^>]+>/gi,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){var b=parseFloat(String(a).replace(/,/g,""));return isNaN(b)?0:b},asInt:function(a){var b=parseInt(String(a).replace(/,/g,""),10);return isNaN(b)?0:b}};Ext.data.Record=function(a,b){this.id=b||b===0?b:Ext.data.Record.id(this);this.data=a||{}};Ext.data.Record.create=function(e){var c=Ext.extend(Ext.data.Record,{});var d=c.prototype;d.fields=new Ext.util.MixedCollection(false,function(g){return g.name});for(var b=0,a=e.length;b<a;b++)d.fields.add(new Ext.data.Field(e[b]));c.getField=function(g){return d.fields.get(g)};return c};Ext.data.Record.PREFIX="ext-record";Ext.data.Record.AUTO_ID=1;Ext.data.Record.EDIT="edit";Ext.data.Record.REJECT="reject";Ext.data.Record.COMMIT="commit";Ext.data.Record.id=function(a){a.phantom=true;return[Ext.data.Record.PREFIX,"-",Ext.data.Record.AUTO_ID++].join("")};Ext.data.Record.prototype={dirty:false,editing:false,error:null,modified:null,phantom:false,join:function(a){this.store=a},set:function(a,c){var b=Ext.isPrimitive(c)?String:Ext.encode;if(b(this.data[a])==b(c))return;this.dirty=true;if(!this.modified)this.modified={};if(this.modified[a]===undefined)this.modified[a]=this.data[a];this.data[a]=c;if(!this.editing)this.afterEdit()},afterEdit:function(){if(this.store!=undefined&&typeof this.store.afterEdit=="function")this.store.afterEdit(this)},afterReject:function(){if(this.store)this.store.afterReject(this)},afterCommit:function(){if(this.store)this.store.afterCommit(this)},get:function(a){return this.data[a]},beginEdit:function(){this.editing=true;this.modified=this.modified||{}},cancelEdit:function(){this.editing=false;delete this.modified},endEdit:function(){this.editing=false;if(this.dirty)this.afterEdit()},reject:function(b){var a=this.modified;for(var c in a)if(typeof a[c]!="function")this.data[c]=a[c];this.dirty=false;delete this.modified;this.editing=false;if(b!==true)this.afterReject()},commit:function(a){this.dirty=false;delete this.modified;this.editing=false;if(a!==true)this.afterCommit()},getChanges:function(){var a=this.modified,b={};for(var c in a)if(a.hasOwnProperty(c))b[c]=this.data[c];return b},hasError:function(){return this.error!==null},clearError:function(){this.error=null},copy:function(a){return new this.constructor(Ext.apply({},this.data),a||this.id)},isModified:function(a){return!!(this.modified&&this.modified.hasOwnProperty(a))},isValid:function(){return this.fields.find(function(a){return a.allowBlank===false&&Ext.isEmpty(this.data[a.name])?true:false},this)?false:true},markDirty:function(){this.dirty=true;if(!this.modified)this.modified={};this.fields.each(function(a){this.modified[a.name]=this.data[a.name]},this)}};Ext.StoreMgr=Ext.apply(new Ext.util.MixedCollection,{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(e){if(Ext.isArray(e)){var b=["field1"],d=!Ext.isArray(e[0]);if(!d)for(var c=2,a=e[0].length;c<=a;++c)b.push("field"+c);return new Ext.data.ArrayStore({fields:b,data:e,expandData:d,autoDestroy:true,autoCreated:true})}return Ext.isObject(e)?e.events?e:Ext.create(e,"store"):this.get(e)},getKey:function(a){return a.storeId}});Ext.data.Store=Ext.extend(Ext.util.Observable,{writer:undefined,remoteSort:false,autoDestroy:false,pruneModifiedRecords:false,lastOptions:null,autoSave:true,batch:true,restful:false,paramNames:undefined,defaultParamNames:{start:"start",limit:"limit",sort:"sort",dir:"dir"},isDestroyed:false,hasMultiSort:false,batchKey:"_ext_batch_",constructor:function(a){this.data=new Ext.util.MixedCollection(false);this.data.getKey=function(b){return b.id};this.removed=[];if(a&&a.data){this.inlineData=a.data;delete a.data}Ext.apply(this,a);this.baseParams=Ext.isObject(this.baseParams)?this.baseParams:{};this.paramNames=Ext.applyIf(this.paramNames||{},this.defaultParamNames);if((this.url||this.api)&&!this.proxy)this.proxy=new Ext.data.HttpProxy({url:this.url,api:this.api});if(this.restful===true&&this.proxy){this.batch=false;Ext.data.Api.restify(this.proxy)}if(this.reader){if(!this.recordType)this.recordType=this.reader.recordType;if(this.reader.onMetaChange)this.reader.onMetaChange=this.reader.onMetaChange.createSequence(this.onMetaChange,this);if(this.writer){if(this.writer instanceof Ext.data.DataWriter===false)this.writer=this.buildWriter(this.writer);this.writer.meta=this.reader.meta;this.pruneModifiedRecords=true}}if(this.recordType)this.fields=this.recordType.prototype.fields;this.modified=[];this.addEvents("datachanged","metachange","add","remove","update","clear","exception","beforeload","load","loadexception","beforewrite","write","beforesave","save");if(this.proxy)this.relayEvents(this.proxy,["loadexception","exception"]);if(this.writer)this.on({scope:this,add:this.createRecords,remove:this.destroyRecord,update:this.updateRecord,clear:this.onClear});this.sortToggle={};if(this.sortField)this.setDefaultSort(this.sortField,this.sortDir);else if(this.sortInfo)this.setDefaultSort(this.sortInfo.field,this.sortInfo.direction);Ext.data.Store.superclass.constructor.call(this);if(this.id){this.storeId=this.id;delete this.id}if(this.storeId)Ext.StoreMgr.register(this);if(this.inlineData){this.loadData(this.inlineData);delete this.inlineData}else if(this.autoLoad)this.load.defer(10,this,[typeof this.autoLoad=="object"?this.autoLoad:undefined]);this.batchCounter=0;this.batches={}},buildWriter:function(b){var a=undefined,c=(b.format||"json").toLowerCase();switch(c){case"json":a=Ext.data.JsonWriter;break;case"xml":a=Ext.data.XmlWriter;break;default:a=Ext.data.JsonWriter}return new a(b)},destroy:function(){if(!this.isDestroyed){if(this.storeId)Ext.StoreMgr.unregister(this);this.clearData();this.data=null;Ext.destroy(this.proxy);this.reader=this.writer=null;this.purgeListeners();this.isDestroyed=true}},add:function(b){b=[].concat(b);if(b.length<1)return;for(var d=0,a=b.length;d<a;d++)b[d].join(this);var c=this.data.length;this.data.addAll(b);if(this.snapshot)this.snapshot.addAll(b);this.fireEvent("add",this,b,c)},addSorted:function(a){var b=this.findInsertIndex(a);this.insert(b,a)},remove:function(a){if(Ext.isArray(a)){Ext.each(a,function(c){this.remove(c)},this);return}var b=this.data.indexOf(a);if(b>-1){a.join(null);this.data.removeAt(b)}if(this.pruneModifiedRecords)this.modified.remove(a);if(this.snapshot)this.snapshot.remove(a);if(b>-1)this.fireEvent("remove",this,a,b)},removeAt:function(a){this.remove(this.getAt(a))},removeAll:function(b){var a=[];this.each(function(c){a.push(c)});this.clearData();if(this.snapshot)this.snapshot.clear();if(this.pruneModifiedRecords)this.modified=[];if(b!==true)this.fireEvent("clear",this,a)},onClear:function(b,a){Ext.each(a,function(d,c){this.destroyRecord(this,d,c)},this)},insert:function(c,b){b=[].concat(b);for(var d=0,a=b.length;d<a;d++){this.data.insert(c,b[d]);b[d].join(this)}if(this.snapshot)this.snapshot.addAll(b);this.fireEvent("add",this,b,c)},indexOf:function(a){return this.data.indexOf(a)},indexOfId:function(a){return this.data.indexOfKey(a)},getById:function(a){return(this.snapshot||this.data).key(a)},getAt:function(a){return this.data.itemAt(a)},getRange:function(b,a){return this.data.getRange(b,a)},storeOptions:function(a){a=Ext.apply({},a);delete a.callback;delete a.scope;this.lastOptions=a},clearData:function(){this.data.each(function(a){a.join(null)});this.data.clear()},load:function(b){b=Ext.apply({},b);this.storeOptions(b);if(this.sortInfo&&this.remoteSort){var a=this.paramNames;b.params=Ext.apply({},b.params);b.params[a.sort]=this.sortInfo.field;b.params[a.dir]=this.sortInfo.direction}try{return this.execute("read",null,b)}catch(c){this.handleException(c);return false}},updateRecord:function(b,a,c){if(c==Ext.data.Record.EDIT&&this.autoSave===true&&(!a.phantom||a.phantom&&a.isValid()))this.save()},createRecords:function(c,b,d){for(var e=0,a=b.length;e<a;e++)if(b[e].phantom&&b[e].isValid()){b[e].markDirty();this.modified.push(b[e])}if(this.autoSave===true)this.save()},destroyRecord:function(b,a,c){if(this.modified.indexOf(a)!=-1)this.modified.remove(a);if(!a.phantom){this.removed.push(a);a.lastIndex=c;if(this.autoSave===true)this.save()}},execute:function(e,a,c,b){if(!Ext.data.Api.isAction(e))throw new Ext.data.Api.Error("execute",e);c=Ext.applyIf(c||{},{params:{}});if(b!==undefined)this.addToBatch(b);var d=true;if(e==="read"){d=this.fireEvent("beforeload",this,c);Ext.applyIf(c.params,this.baseParams)}else{if(this.writer.listful===true&&this.restful!==true)a=Ext.isArray(a)?a:[a];else if(Ext.isArray(a)&&a.length==1)a=a.shift();if((d=this.fireEvent("beforewrite",this,e,a,c))!==false)this.writer.apply(c.params,this.baseParams,e,a)}if(d!==false){if(this.writer&&this.proxy.url&&!this.proxy.restful&&!Ext.data.Api.hasUniqueUrl(this.proxy,e))c.params.xaction=e;this.proxy.request(Ext.data.Api.actions[e],a,c.params,this.reader,this.createCallback(e,a,b),this,c)}return d},save:function(){if(!this.writer)throw new Ext.data.Store.Error("writer-undefined");var h=[],j,k,e,c={};if(this.removed.length)h.push(["destroy",this.removed]);var b=[].concat(this.getModifiedRecords());if(b.length){var g=[];for(var d=b.length-1;d>=0;d--)if(b[d].phantom===true){var a=b.splice(d,1).shift();if(a.isValid())g.push(a)}else if(!b[d].isValid())b.splice(d,1);if(g.length)h.push(["create",g]);if(b.length)h.push(["update",b])}j=h.length;if(j){e=++this.batchCounter;for(var d=0;d<j;++d){k=h[d];c[k[0]]=k[1]}if(this.fireEvent("beforesave",this,c)!==false){for(var d=0;d<j;++d){k=h[d];this.doTransaction(k[0],k[1],e)}return e}}return-1},doTransaction:function(e,b,c){function g(h){try{this.execute(e,h,undefined,c)}catch(i){this.handleException(i)}}if(this.batch===false)for(var d=0,a=b.length;d<a;d++)g.call(this,b[d]);else g.call(this,b)},addToBatch:function(c){var a=this.batches,d=this.batchKey+c,e=a[d];if(!e)a[d]=e={id:c,count:0,data:{}};++e.count},removeFromBatch:function(d,h,g){var c=this.batches,e=this.batchKey+d,i=c[e],g,a;if(i){a=i.data[h]||[];i.data[h]=a.concat(g);if(i.count===1){g=i.data;delete c[e];this.fireEvent("save",this,d,g)}else--i.count}},createCallback:function(c,a,b){var d=Ext.data.Api.actions;return c=="read"?this.loadRecords:function(g,e,h){this["on"+Ext.util.Format.capitalize(c)+"Records"](h,a,[].concat(g));if(h===true)this.fireEvent("write",this,c,g,e,a);this.removeFromBatch(b,c,g)}},clearModified:function(a){if(Ext.isArray(a))for(var b=a.length-1;b>=0;b--)this.modified.splice(this.modified.indexOf(a[b]),1);else this.modified.splice(this.modified.indexOf(a),1)},reMap:function(b){if(Ext.isArray(b))for(var d=0,a=b.length;d<a;d++)this.reMap(b[d]);else{delete this.data.map[b._phid];this.data.map[b.id]=b;var c=this.data.keys.indexOf(b._phid);this.data.keys.splice(c,1,b.id);delete b._phid}},onCreateRecords:function(d,a,b){if(d===true)try{this.reader.realize(a,b);this.reMap(a)}catch(c){this.handleException(c);if(Ext.isArray(a))this.onCreateRecords(d,a,b)}},onUpdateRecords:function(d,a,b){if(d===true)try{this.reader.update(a,b)}catch(c){this.handleException(c);if(Ext.isArray(a))this.onUpdateRecords(d,a,b)}},onDestroyRecords:function(e,b,d){b=b instanceof Ext.data.Record?[b]:[].concat(b);for(var c=0,a=b.length;c<a;c++)this.removed.splice(this.removed.indexOf(b[c]),1);if(e===false)for(c=b.length-1;c>=0;c--)this.insert(b[c].lastIndex,b[c])},handleException:function(a){Ext.handleError(a)},reload:function(a){this.load(Ext.applyIf(a||{},this.lastOptions))},loadRecords:function(h,b,g){if(this.isDestroyed===true)return;if(!h||g===false){if(g!==false)this.fireEvent("load",this,[],b);if(b.callback)b.callback.call(b.scope||this,[],b,false,h);return}var e=h.records,d=h.totalRecords||e.length;if(!b||b.add!==true){if(this.pruneModifiedRecords)this.modified=[];for(var c=0,a=e.length;c<a;c++)e[c].join(this);if(this.snapshot){this.data=this.snapshot;delete this.snapshot}this.clearData();this.data.addAll(e);this.totalLength=d;this.applySort();this.fireEvent("datachanged",this)}else{this.totalLength=Math.max(d,this.data.length+e.length);this.add(e)}this.fireEvent("load",this,e,b);if(b.callback)b.callback.call(b.scope||this,e,b,true)},loadData:function(c,a){var b=this.reader.readRecords(c);this.loadRecords(b,{add:a},true)},getCount:function(){return this.data.length||0},getTotalCount:function(){return this.totalLength||0},getSortState:function(){return this.sortInfo},applySort:function(){if((this.sortInfo||this.multiSortInfo)&&!this.remoteSort)this.sortData()},sortData:function(){var a=this.hasMultiSort?this.multiSortInfo:this.sortInfo,k=a.direction||"ASC",h=a.sorters,c=[];if(!this.hasMultiSort)h=[{direction:k,field:a.field}];for(var d=0,b=h.length;d<b;d++)c.push(this.createSortFunction(h[d].field,h[d].direction));if(c.length==0)return;var g=k.toUpperCase()=="DESC"?-1:1;var e=function(n,m){var l=c[0].call(this,n,m);if(c.length>1)for(var p=1,o=c.length;p<o;p++)l=l||c[p].call(this,n,m);return g*l};this.data.sort(k,e);if(this.snapshot&&this.snapshot!=this.data)this.snapshot.sort(k,e)},createSortFunction:function(c,b){b=b||"ASC";var a=b.toUpperCase()=="DESC"?-1:1;var d=this.fields.get(c).sortType;return function(g,e){var i=d(g.data[c]),h=d(e.data[c]);return a*(i>h?1:i<h?-1:0)}},setDefaultSort:function(b,a){a=a?a.toUpperCase():"ASC";this.sortInfo={field:b,direction:a};this.sortToggle[b]=a},sort:function(b,a){if(Ext.isArray(arguments[0]))return this.multiSort.call(this,b,a);else return this.singleSort(b,a)},singleSort:function(g,c){var e=this.fields.get(g);if(!e)return false;var b=e.name,a=this.sortInfo||null,d=this.sortToggle?this.sortToggle[b]:null;if(!c)if(a&&a.field==b)c=(this.sortToggle[b]||"ASC").toggle("ASC","DESC");else c=e.sortDir;this.sortToggle[b]=c;this.sortInfo={field:b,direction:c};this.hasMultiSort=false;if(this.remoteSort){if(!this.load(this.lastOptions)){if(d)this.sortToggle[b]=d;if(a)this.sortInfo=a}}else{this.applySort();this.fireEvent("datachanged",this)}},multiSort:function(b,a){this.hasMultiSort=true;a=a||"ASC";if(this.multiSortInfo&&a==this.multiSortInfo.direction)a=a.toggle("ASC","DESC");this.multiSortInfo={sorters:b,direction:a};if(this.remoteSort)this.singleSort(b[0].field,b[0].direction);else{this.applySort();this.fireEvent("datachanged",this)}},each:function(b,a){this.data.each(b,a)},getModifiedRecords:function(){return this.modified},sum:function(e,g,a){var c=this.data.items,b=0;g=g||0;a=a||a===0?a:c.length-1;for(var d=g;d<=a;d++)b+=c[d].data[e]||0;return b},createFilterFn:function(d,c,e,a,b){if(Ext.isEmpty(c,false))return false;c=this.data.createValueMatcher(c,e,a,b);return function(g){return c.test(g.data[d])}},createMultipleFilterFn:function(a){return function(b){var k=true;for(var d=0,c=a.length;d<c;d++){var h=a[d],g=h.fn,e=h.scope;k=k&&g.call(e,b)}return k}},filter:function(n,m,h,k,e){if(Ext.isObject(n))n=[n];if(Ext.isArray(n)){var b=[];for(var g=0,d=n.length;g<d;g++){var a=n[g],c=a.fn,o=a.scope||this;if(!Ext.isFunction(c))c=this.createFilterFn(a.property,a.value,a.anyMatch,a.caseSensitive,a.exactMatch);b.push({fn:c,scope:o})}var l=this.createMultipleFilterFn(b)}else var l=this.createFilterFn(n,m,h,k,e);return l?this.filterBy(l):this.clearFilter()},filterBy:function(b,a){this.snapshot=this.snapshot||this.data;this.data=this.queryBy(b,a||this);this.fireEvent("datachanged",this)},clearFilter:function(a){if(this.isFiltered()){this.data=this.snapshot;delete this.snapshot;if(a!==true)this.fireEvent("datachanged",this)}},isFiltered:function(){return!!this.snapshot&&this.snapshot!=this.data},query:function(d,c,e,a){var b=this.createFilterFn(d,c,e,a);return b?this.queryBy(b):this.data.clone()},queryBy:function(b,a){var c=this.snapshot||this.data;return c.filterBy(b,a||this)},find:function(d,c,g,e,a){var b=this.createFilterFn(d,c,e,a);return b?this.data.findIndexBy(b,null,g):-1},findExact:function(b,a,c){return this.data.findIndexBy(function(d){return d.get(b)===a},this,c)},findBy:function(b,a,c){return this.data.findIndexBy(b,a,c)},collect:function(j,k,b){var h=b===true&&this.snapshot?this.snapshot.items:this.data.items;var m,n,a=[],c={};for(var e=0,g=h.length;e<g;e++){m=h[e].data[j];n=String(m);if((k||!Ext.isEmpty(m))&&!c[n]){c[n]=true;a[a.length]=m}}return a},afterEdit:function(a){if(this.modified.indexOf(a)==-1)this.modified.push(a);this.fireEvent("update",this,a,Ext.data.Record.EDIT)},afterReject:function(a){this.modified.remove(a);this.fireEvent("update",this,a,Ext.data.Record.REJECT)},afterCommit:function(a){this.modified.remove(a);this.fireEvent("update",this,a,Ext.data.Record.COMMIT)},commitChanges:function(){var b=this.modified.slice(0);this.modified=[];for(var c=0,a=b.length;c<a;c++)b[c].commit()},rejectChanges:function(){var b=this.modified.slice(0);this.modified=[];for(var c=0,a=b.length;c<a;c++)b[c].reject();var b=this.removed.slice(0).reverse();this.removed=[];for(var c=0,a=b.length;c<a;c++){this.insert(b[c].lastIndex||0,b[c]);b[c].reject()}},onMetaChange:function(a){this.recordType=this.reader.recordType;this.fields=this.recordType.prototype.fields;delete this.snapshot;if(this.reader.meta.sortInfo)this.sortInfo=this.reader.meta.sortInfo;else if(this.sortInfo&&!this.fields.get(this.sortInfo.field))delete this.sortInfo;if(this.writer)this.writer.meta=this.reader.meta;this.modified=[];this.fireEvent("metachange",this,this.reader.meta)},findInsertIndex:function(a){this.suspendEvents();var c=this.data.clone();this.data.add(a);this.applySort();var b=this.data.indexOf(a);this.data=c;this.resumeEvents();return b},setBaseParam:function(a,b){this.baseParams=this.baseParams||{};this.baseParams[a]=b}});Ext.reg("store",Ext.data.Store);Ext.data.Store.Error=Ext.extend(Ext.Error,{name:"Ext.data.Store"});Ext.apply(Ext.data.Store.Error.prototype,{lang:{"writer-undefined":"Attempted to execute a write-action without a DataWriter installed."}});Ext.data.Field=Ext.extend(Object,{constructor:function(b){if(Ext.isString(b))b={name:b};Ext.apply(this,b);var d=Ext.data.Types,a=this.sortType,c;if(this.type){if(Ext.isString(this.type))this.type=Ext.data.Types[this.type.toUpperCase()]||d.AUTO}else this.type=d.AUTO;if(Ext.isString(a))this.sortType=Ext.data.SortTypes[a];else if(Ext.isEmpty(a))this.sortType=this.type.sortType;if(!this.convert)this.convert=this.type.convert},dateFormat:null,defaultValue:"",mapping:null,sortType:null,sortDir:"ASC",allowBlank:true});Ext.data.DataReader=function(a,b){this.meta=a;this.recordType=Ext.isArray(b)?Ext.data.Record.create(b):b;if(this.recordType)this.buildExtractors()};Ext.data.DataReader.prototype={getTotal:Ext.emptyFn,getRoot:Ext.emptyFn,getMessage:Ext.emptyFn,getSuccess:Ext.emptyFn,getId:Ext.emptyFn,buildExtractors:Ext.emptyFn,extractValues:Ext.emptyFn,realize:function(a,c){if(Ext.isArray(a))for(var b=a.length-1;b>=0;b--)if(Ext.isArray(c))this.realize(a.splice(b,1).shift(),c.splice(b,1).shift());else this.realize(a.splice(b,1).shift(),c);else{if(Ext.isArray(c)&&c.length==1)c=c.shift();if(!this.isData(c))throw new Ext.data.DataReader.Error("realize",a);a.phantom=false;a._phid=a.id;a.id=this.getId(c);a.data=c;a.commit()}},update:function(a,c){if(Ext.isArray(a))for(var b=a.length-1;b>=0;b--)if(Ext.isArray(c))this.update(a.splice(b,1).shift(),c.splice(b,1).shift());else this.update(a.splice(b,1).shift(),c);else{if(Ext.isArray(c)&&c.length==1)c=c.shift();if(this.isData(c))a.data=Ext.apply(a.data,c);a.commit()}},extractData:function(k,a){var j=this instanceof Ext.data.JsonReader?"json":"node";var c=[];if(this.isData(k)&&!(this instanceof Ext.data.XmlReader))k=[k];var h=this.recordType.prototype.fields,o=h.items,m=h.length,c=[];if(a===true){var l=this.recordType;for(var e=0;e<k.length;e++){var b=k[e];var g=new l(this.extractValues(b,o,m),this.getId(b));g[j]=b;c.push(g)}}else for(var e=0;e<k.length;e++){var d=this.extractValues(k[e],o,m);d[this.meta.idProperty]=this.getId(k[e]);c.push(d)}return c},isData:function(a){return a&&Ext.isObject(a)&&!Ext.isEmpty(this.getId(a))?true:false},onMetaChange:function(a){delete this.ef;this.meta=a;this.recordType=Ext.data.Record.create(a.fields);this.buildExtractors()}};Ext.data.DataReader.Error=Ext.extend(Ext.Error,{constructor:function(b,a){this.arg=a;Ext.Error.call(this,b)},name:"Ext.data.DataReader"});Ext.apply(Ext.data.DataReader.Error.prototype,{lang:{update:"#update received invalid data from server.  Please see docs for DataReader#update and review your DataReader configuration.",realize:"#realize was called with invalid remote-data.  Please see the docs for DataReader#realize and review your DataReader configuration.","invalid-response":"#readResponse received an invalid response from the server."}});Ext.data.DataWriter=function(a){Ext.apply(this,a)};Ext.data.DataWriter.prototype={writeAllFields:false,listful:false,apply:function(e,g,d,a){var c=[],b=d+"Record";if(Ext.isArray(a))Ext.each(a,function(h){c.push(this[b](h))},this);else if(a instanceof Ext.data.Record)c=this[b](a);this.render(e,g,c)},render:Ext.emptyFn,updateRecord:Ext.emptyFn,createRecord:Ext.emptyFn,destroyRecord:Ext.emptyFn,toHash:function(g,c){var e=g.fields.map,d={},b=this.writeAllFields===false&&g.phantom===false?g.getChanges():g.data,a;Ext.iterate(b,function(i,h){if(a=e[i])d[a.mapping?a.mapping:a.name]=h});if(g.phantom){if(g.fields.containsKey(this.meta.idProperty)&&Ext.isEmpty(g.data[this.meta.idProperty]))delete d[this.meta.idProperty]}else d[this.meta.idProperty]=g.id;return d},toArray:function(b){var a=[];Ext.iterate(b,function(d,c){a.push({name:d,value:c})},this);return a}};Ext.data.DataProxy=function(a){a=a||{};this.api=a.api;this.url=a.url;this.restful=a.restful;this.listeners=a.listeners;this.prettyUrls=a.prettyUrls;this.addEvents("exception","beforeload","load","loadexception","beforewrite","write");Ext.data.DataProxy.superclass.constructor.call(this);try{Ext.data.Api.prepare(this)}catch(b){if(b instanceof Ext.data.Api.Error)b.toConsole()}Ext.data.DataProxy.relayEvents(this,["beforewrite","write","exception"])};Ext.extend(Ext.data.DataProxy,Ext.util.Observable,{restful:false,setApi:function(){if(arguments.length==1){var a=Ext.data.Api.isValid(arguments[0]);if(a===true)this.api=arguments[0];else throw new Ext.data.Api.Error("invalid",a);}else if(arguments.length==2){if(!Ext.data.Api.isAction(arguments[0]))throw new Ext.data.Api.Error("invalid",arguments[0]);this.api[arguments[0]]=arguments[1]}Ext.data.Api.prepare(this)},isApiAction:function(a){return this.api[a]?true:false},request:function(e,b,g,a,h,d,c){if(!this.api[e]&&!this.load)throw new Ext.data.DataProxy.Error("action-undefined",e);g=g||{};if(e===Ext.data.Api.actions.read?this.fireEvent("beforeload",this,g):this.fireEvent("beforewrite",this,e,b,g)!==false)this.doRequest.apply(this,arguments);else h.call(d||this,null,c,false)},load:null,doRequest:function(e,b,g,a,h,d,c){this.load(g,a,h,d,c)},onRead:Ext.emptyFn,onWrite:Ext.emptyFn,buildUrl:function(d,b){b=b||null;var c=this.conn&&this.conn.url?this.conn.url:this.api[d]?this.api[d].url:this.url;if(!c)throw new Ext.data.Api.Error("invalid-url",d);var e=null;var a=c.match(/(.*)(\.json|\.xml|\.html)$/);if(a){e=a[2];c=a[1]}if((this.restful===true||this.prettyUrls===true)&&b instanceof Ext.data.Record&&!b.phantom)c+="/"+b.id;return e===null?c:c+e},destroy:function(){this.purgeListeners()}});Ext.apply(Ext.data.DataProxy,Ext.util.Observable.prototype);Ext.util.Observable.call(Ext.data.DataProxy);Ext.data.DataProxy.Error=Ext.extend(Ext.Error,{constructor:function(b,a){this.arg=a;Ext.Error.call(this,b)},name:"Ext.data.DataProxy"});Ext.apply(Ext.data.DataProxy.Error.prototype,{lang:{"action-undefined":"DataProxy attempted to execute an API-action but found an undefined url / function.  Please review your Proxy url/api-configuration.","api-invalid":"Recieved an invalid API-configuration.  Please ensure your proxy API-configuration contains only the actions from Ext.data.Api.actions."}});Ext.data.Request=function(a){Ext.apply(this,a)};Ext.data.Request.prototype={action:undefined,rs:undefined,params:undefined,callback:Ext.emptyFn,scope:undefined,reader:undefined};Ext.data.Response=function(a){Ext.apply(this,a)};Ext.data.Response.prototype={action:undefined,success:undefined,message:undefined,data:undefined,raw:undefined,records:undefined};Ext.data.ScriptTagProxy=function(a){Ext.apply(this,a);Ext.data.ScriptTagProxy.superclass.constructor.call(this,a);this.head=document.getElementsByTagName("head")[0]};Ext.data.ScriptTagProxy.TRANS_ID=1e3;Ext.extend(Ext.data.ScriptTagProxy,Ext.data.DataProxy,{timeout:3e4,callbackParam:"callback",nocache:true,doRequest:function(e,g,d,h,j,k,l){var c=Ext.urlEncode(Ext.apply(d,this.extraParams));var b=this.buildUrl(e,g);if(!b)throw new Ext.data.Api.Error("invalid-url",b);b=Ext.urlAppend(b,c);if(this.nocache)b=Ext.urlAppend(b,"_dc="+(new Date).getTime());var a=++Ext.data.ScriptTagProxy.TRANS_ID;var m={id:a,action:e,cb:"stcCallback"+a,scriptId:"stcScript"+a,params:d,arg:l,url:b,callback:j,scope:k,reader:h};window[m.cb]=this.createCallback(e,g,m);b+=String.format("&{0}={1}",this.callbackParam,m.cb);if(this.autoAbort!==false)this.abort();m.timeoutId=this.handleFailure.defer(this.timeout,this,[m]);var i=document.createElement("script");i.setAttribute("src",b);i.setAttribute("type","text/javascript");i.setAttribute("id",m.scriptId);this.head.appendChild(i);this.trans=m},createCallback:function(d,b,c){var a=this;return function(e){a.trans=false;a.destroyTrans(c,true);if(d===Ext.data.Api.actions.read)a.onRead.call(a,d,c,e);else a.onWrite.call(a,d,c,e,b)}},onRead:function(d,c,b){var a;try{a=c.reader.readRecords(b)}catch(g){this.fireEvent("loadexception",this,c,b,g);this.fireEvent("exception",this,"response",d,c,b,g);c.callback.call(c.scope||window,null,c.arg,false);return}if(a.success===false){this.fireEvent("loadexception",this,c,b);this.fireEvent("exception",this,"remote",d,c,b,null)}else this.fireEvent("load",this,b,c.arg);c.callback.call(c.scope||window,a,c.arg,a.success)},onWrite:function(h,g,c,b){var a=g.reader;try{var d=a.readResponse(h,c)}catch(i){this.fireEvent("exception",this,"response",h,g,d,i);g.callback.call(g.scope||window,null,d,false);return}if(!d.success===true){this.fireEvent("exception",this,"remote",h,g,d,b);g.callback.call(g.scope||window,null,d,false);return}this.fireEvent("write",this,h,d.data,d,b,g.arg);g.callback.call(g.scope||window,d.data,d,true)},isLoading:function(){return this.trans?true:false},abort:function(){if(this.isLoading())this.destroyTrans(this.trans)},destroyTrans:function(b,a){this.head.removeChild(document.getElementById(b.scriptId));clearTimeout(b.timeoutId);if(a){window[b.cb]=undefined;try{delete window[b.cb]}catch(c){}}else window[b.cb]=function(){window[b.cb]=undefined;try{delete window[b.cb]}catch(d){}}},handleFailure:function(a){this.trans=false;this.destroyTrans(a,false);if(a.action===Ext.data.Api.actions.read)this.fireEvent("loadexception",this,null,a.arg);this.fireEvent("exception",this,"response",a.action,{response:null,options:a.arg});a.callback.call(a.scope||window,null,a.arg,false)},destroy:function(){this.abort();Ext.data.ScriptTagProxy.superclass.destroy.call(this)}});Ext.data.HttpProxy=function(a){Ext.data.HttpProxy.superclass.constructor.call(this,a);this.conn=a;this.conn.url=null;this.useAjax=!a||!a.events;var c=Ext.data.Api.actions;this.activeRequest={};for(var b in c)this.activeRequest[c[b]]=undefined};Ext.extend(Ext.data.HttpProxy,Ext.data.DataProxy,{getConnection:function(){return this.useAjax?Ext.Ajax:this.conn},setUrl:function(a,b){this.conn.url=a;if(b===true){this.url=a;this.api=null;Ext.data.Api.prepare(this)}},doRequest:function(g,d,i,c,b,e,a){var h={method:this.api[g]?this.api[g]["method"]:undefined,request:{callback:b,scope:e,arg:a},reader:c,callback:this.createCallback(g,d),scope:this};if(i.jsonData)h.jsonData=i.jsonData;else if(i.xmlData)h.xmlData=i.xmlData;else h.params=i||{};this.conn.url=this.buildUrl(g,d);if(this.useAjax){Ext.applyIf(h,this.conn);if(this.activeRequest[g]);this.activeRequest[g]=Ext.Ajax.request(h)}else this.conn.request(h);this.conn.url=null},createCallback:function(b,a){return function(e,d,c){this.activeRequest[b]=undefined;if(!d){if(b===Ext.data.Api.actions.read)this.fireEvent("loadexception",this,e,c);this.fireEvent("exception",this,"response",b,e,c);e.request.callback.call(e.request.scope,null,e.request.arg,false);return}if(b===Ext.data.Api.actions.read)this.onRead(b,e,c);else this.onWrite(b,e,c,a)}},onRead:function(d,h,b){var a;try{a=h.reader.read(b)}catch(g){this.fireEvent("loadexception",this,h,b,g);this.fireEvent("exception",this,"response",d,h,b,g);h.request.callback.call(h.request.scope,null,h.request.arg,false);return}if(a.success===false){this.fireEvent("loadexception",this,h,b);var c=h.reader.readResponse(d,b);this.fireEvent("exception",this,"remote",d,h,c,null)}else this.fireEvent("load",this,h,h.request.arg);h.request.callback.call(h.request.scope,a,h.request.arg,a.success)},onWrite:function(g,i,c,b){var a=i.reader;var d;try{d=a.readResponse(g,c)}catch(h){this.fireEvent("exception",this,"response",g,i,c,h);i.request.callback.call(i.request.scope,null,i.request.arg,false);return}if(d.success===true)this.fireEvent("write",this,g,d.data,d,b,i.request.arg);else this.fireEvent("exception",this,"remote",g,i,d,b);i.request.callback.call(i.request.scope,d.data,d,d.success)},destroy:function(){if(!this.useAjax)this.conn.abort();else if(this.activeRequest){var b=Ext.data.Api.actions;for(var a in b)if(this.activeRequest[b[a]])Ext.Ajax.abort(this.activeRequest[b[a]])}Ext.data.HttpProxy.superclass.destroy.call(this)}});Ext.data.MemoryProxy=function(b){var a={};a[Ext.data.Api.actions.read]=true;Ext.data.MemoryProxy.superclass.constructor.call(this,{api:a});this.data=b};Ext.extend(Ext.data.MemoryProxy,Ext.data.DataProxy,{doRequest:function(b,c,a,d,h,i,j){a=a||{};var k;try{k=d.readRecords(this.data)}catch(g){this.fireEvent("loadexception",this,null,j,g);this.fireEvent("exception",this,"response",b,j,null,g);h.call(i,null,j,false);return}h.call(i,k,j,true)}});Ext.data.Types=new function(){var a=Ext.data.SortTypes;Ext.apply(this,{stripRe:/[\$,%]/g,AUTO:{convert:function(b){return b},sortType:a.none,type:"auto"},STRING:{convert:function(b){return b===undefined||b===null?"":String(b)},sortType:a.asUCString,type:"string"},INT:{convert:function(b){return b!==undefined&&b!==null&&b!==""?parseInt(String(b).replace(Ext.data.Types.stripRe,""),10):0},sortType:a.none,type:"int"},FLOAT:{convert:function(b){return b!==undefined&&b!==null&&b!==""?parseFloat(String(b).replace(Ext.data.Types.stripRe,""),10):0},sortType:a.none,type:"float"},BOOL:{convert:function(b){return b===true||b==="true"||b==1},sortType:a.none,type:"bool"},DATE:{convert:function(c){var d=this.dateFormat;if(!c)return null;if(Ext.isDate(c))return c;if(d){if(d=="timestamp")return new Date(c*1e3);if(d=="time")return new Date(parseInt(c,10));return Date.parseDate(c,d)}var b=Date.parse(c);return b?new Date(b):null},sortType:a.asDate,type:"date"}});Ext.apply(this,{BOOLEAN:this.BOOL,INTEGER:this.INT,NUMBER:this.FLOAT})};Ext.data.JsonWriter=Ext.extend(Ext.data.DataWriter,{encode:true,encodeDelete:false,constructor:function(a){Ext.data.JsonWriter.superclass.constructor.call(this,a)},render:function(c,d,b){if(this.encode===true){Ext.apply(c,d);c[this.meta.root]=Ext.encode(b)}else{var a=Ext.apply({},d);a[this.meta.root]=b;c.jsonData=a}},createRecord:function(a){return this.toHash(a)},updateRecord:function(a){return this.toHash(a)},destroyRecord:function(b){if(this.encodeDelete){var a={};a[this.meta.idProperty]=b.id;return a}else return b.id}});Ext.data.JsonReader=function(a,b){a=a||{};Ext.applyIf(a,{idProperty:"id",successProperty:"success",totalProperty:"total"});Ext.data.JsonReader.superclass.constructor.call(this,a,b||a.fields)};Ext.extend(Ext.data.JsonReader,Ext.data.DataReader,{read:function(a){var b=a.responseText;var c=Ext.decode(b);if(!c)throw{message:"JsonReader.read: Json object not found"};return this.readRecords(c)},readResponse:function(e,b){var g=b.responseText!==undefined?Ext.decode(b.responseText):b;if(!g)throw new Ext.data.JsonReader.Error("response");var a=this.getRoot(g);if(e===Ext.data.Api.actions.create){var d=Ext.isDefined(a);if(d&&Ext.isEmpty(a))throw new Ext.data.JsonReader.Error("root-empty",this.meta.root);else if(!d)throw new Ext.data.JsonReader.Error("root-undefined-response",this.meta.root);}var c=new Ext.data.Response({action:e,success:this.getSuccess(g),data:a?this.extractData(a,false):[],message:this.getMessage(g),raw:g});if(Ext.isEmpty(c.success))throw new Ext.data.JsonReader.Error("successProperty-response",this.meta.successProperty);return c},readRecords:function(a){this.jsonData=a;if(a.metaData)this.onMetaChange(a.metaData);var m=this.meta,h=this.recordType,b=h.prototype.fields,l=b.items,i=b.length,j;var g=this.getRoot(a),e=g.length,d=e,k=true;if(m.totalProperty){j=parseInt(this.getTotal(a),10);if(!isNaN(j))d=j}if(m.successProperty){j=this.getSuccess(a);if(j===false||j==="false")k=false}return{success:k,records:this.extractData(g,true),totalRecords:d}},buildExtractors:function(){if(this.ef)return;var l=this.meta,h=this.recordType,e=h.prototype.fields,k=e.items,j=e.length;if(l.totalProperty)this.getTotal=this.createAccessor(l.totalProperty);if(l.successProperty)this.getSuccess=this.createAccessor(l.successProperty);if(l.messageProperty)this.getMessage=this.createAccessor(l.messageProperty);this.getRoot=l.root?this.createAccessor(l.root):function(g){return g};if(l.id||l.idProperty){var d=this.createAccessor(l.id||l.idProperty);this.getId=function(i){var g=d(i);return g===undefined||g===""?null:g}}else this.getId=function(){return null};var c=[];for(var b=0;b<j;b++){e=k[b];var a=e.mapping!==undefined&&e.mapping!==null?e.mapping:e.name;c.push(this.createAccessor(a))}this.ef=c},simpleAccess:function(b,a){return b[a]},createAccessor:function(){var a=/[\[\.]/;return function(c){if(Ext.isEmpty(c))return Ext.emptyFn;if(Ext.isFunction(c))return c;var b=String(c).search(a);if(b>=0)return new Function("obj","return obj"+(b>0?".":"")+c);return function(d){return d[c]}}}(),extractValues:function(h,d,a){var g,c={};for(var e=0;e<a;e++){g=d[e];var b=this.ef[e](h);c[g.name]=g.convert(b!==undefined?b:g.defaultValue,h)}return c}});Ext.data.JsonReader.Error=Ext.extend(Ext.Error,{constructor:function(b,a){this.arg=a;Ext.Error.call(this,b)},name:"Ext.data.JsonReader"});Ext.apply(Ext.data.JsonReader.Error.prototype,{lang:{response:"An error occurred while json-decoding your server response","successProperty-response":'Could not locate your "successProperty" in your server response.  Please review your JsonReader config to ensure the config-property "successProperty" matches the property in your server-response.  See the JsonReader docs.',"root-undefined-config":'Your JsonReader was configured without a "root" property.  Please review your JsonReader config and make sure to define the root property.  See the JsonReader docs.',"idProperty-undefined":'Your JsonReader was configured without an "idProperty"  Please review your JsonReader configuration and ensure the "idProperty" is set (e.g.: "id").  See the JsonReader docs.',"root-empty":'Data was expected to be returned by the server in the "root" property of the response.  Please review your JsonReader configuration to ensure the "root" property matches that returned in the server-response.  See JsonReader docs.'}});Ext.data.ArrayReader=Ext.extend(Ext.data.JsonReader,{readRecords:function(r){this.arrayData=r;var l=this.meta,d=l?Ext.num(l.idIndex,l.id):null,b=this.recordType,q=b.prototype.fields,z=[],e=true,g;var u=this.getRoot(r);for(var y=0,A=u.length;y<A;y++){var t=u[y],a={},p=(d||d===0)&&t[d]!==undefined&&t[d]!==""?t[d]:null;for(var x=0,m=q.length;x<m;x++){var B=q.items[x],w=B.mapping!==undefined&&B.mapping!==null?B.mapping:x;g=t[w]!==undefined?t[w]:B.defaultValue;g=B.convert(g,t);a[B.name]=g}var c=new b(a,p);c.json=t;z[z.length]=c}var h=z.length;if(l.totalProperty){g=parseInt(this.getTotal(r),10);if(!isNaN(g))h=g}if(l.successProperty){g=this.getSuccess(r);if(g===false||g==="false")e=false}return{success:e,records:z,totalRecords:h}}});Ext.data.ArrayStore=Ext.extend(Ext.data.Store,{constructor:function(a){Ext.data.ArrayStore.superclass.constructor.call(this,Ext.apply(a,{reader:new Ext.data.ArrayReader(a)}))},loadData:function(e,b){if(this.expandData===true){var d=[];for(var c=0,a=e.length;c<a;c++)d[d.length]=[e[c]];e=d}Ext.data.ArrayStore.superclass.loadData.call(this,e,b)}});Ext.reg("arraystore",Ext.data.ArrayStore);Ext.data.SimpleStore=Ext.data.ArrayStore;Ext.reg("simplestore",Ext.data.SimpleStore);Ext.data.JsonStore=Ext.extend(Ext.data.Store,{constructor:function(a){Ext.data.JsonStore.superclass.constructor.call(this,Ext.apply(a,{reader:new Ext.data.JsonReader(a)}))}});Ext.reg("jsonstore",Ext.data.JsonStore);Ext.data.XmlWriter=function(a){Ext.data.XmlWriter.superclass.constructor.apply(this,arguments);this.tpl=typeof this.tpl==="string"?new Ext.XTemplate(this.tpl).compile():this.tpl.compile()};Ext.extend(Ext.data.XmlWriter,Ext.data.DataWriter,{documentRoot:"xrequest",forceDocumentRoot:false,root:"records",xmlVersion:"1.0",xmlEncoding:"ISO-8859-15",tpl:'<tpl for="."><?xml version="{version}" encoding="{encoding}"?><tpl if="documentRoot"><{documentRoot}><tpl for="baseParams"><tpl for="."><{name}>{value}</{name}</tpl></tpl></tpl><tpl if="records.length&gt;1"><{root}></tpl><tpl for="records"><{parent.record}><tpl for="."><{name}>{value}</{name}></tpl></{parent.record}></tpl><tpl if="records.length&gt;1"></{root}></tpl><tpl if="documentRoot"></{documentRoot}></tpl></tpl>',render:function(b,c,a){c=this.toArray(c);b.xmlData=this.tpl.applyTemplate({version:this.xmlVersion,encoding:this.xmlEncoding,documentRoot:c.length>0||this.forceDocumentRoot===true?this.documentRoot:false,record:this.meta.record,root:this.root,baseParams:c,records:Ext.isArray(a[0])?a:[a]})},createRecord:function(a){return this.toArray(this.toHash(a))},updateRecord:function(a){return this.toArray(this.toHash(a))},destroyRecord:function(b){var a={};a[this.meta.idProperty]=b.id;return this.toArray(a)}});Ext.data.XmlReader=function(a,b){a=a||{};Ext.applyIf(a,{idProperty:a.idProperty||a.idPath||a.id,successProperty:a.successProperty||a.success});Ext.data.XmlReader.superclass.constructor.call(this,a,b||a.fields)};Ext.extend(Ext.data.XmlReader,Ext.data.DataReader,{read:function(a){var b=a.responseXML;if(!b)throw{message:"XmlReader.read: XML Document not available"};return this.readRecords(b)},readRecords:function(d){this.xmlData=d;var a=d.documentElement||d,c=Ext.DomQuery,g=0,e=true;if(this.meta.totalProperty)g=this.getTotal(a,0);if(this.meta.successProperty)e=this.getSuccess(a);var b=this.extractData(c.select(this.meta.record,a),true);return{success:e,records:b,totalRecords:g||b.length}},readResponse:function(e,a){var d=Ext.DomQuery,g=a.responseXML;var b=new Ext.data.Response({action:e,success:this.getSuccess(g),message:this.getMessage(g),data:this.extractData(d.select(this.meta.record,g)||d.select(this.meta.root,g),false),raw:g});if(Ext.isEmpty(b.success))throw new Ext.data.DataReader.Error("successProperty-response",this.meta.successProperty);if(e===Ext.data.Api.actions.create){var c=Ext.isDefined(b.data);if(c&&Ext.isEmpty(b.data))throw new Ext.data.JsonReader.Error("root-empty",this.meta.root);else if(!c)throw new Ext.data.JsonReader.Error("root-undefined-response",this.meta.root);}return b},getSuccess:function(){return true},buildExtractors:function(){if(this.ef)return;var l=this.meta,h=this.recordType,e=h.prototype.fields,k=e.items,j=e.length;if(l.totalProperty)this.getTotal=this.createAccessor(l.totalProperty);if(l.successProperty)this.getSuccess=this.createAccessor(l.successProperty);if(l.messageProperty)this.getMessage=this.createAccessor(l.messageProperty);this.getRoot=function(g){return!Ext.isEmpty(g[this.meta.record])?g[this.meta.record]:g[this.meta.root]};if(l.idPath||l.idProperty){var d=this.createAccessor(l.idPath||l.idProperty);this.getId=function(g){var i=d(g)||g.id;return i===undefined||i===""?null:i}}else this.getId=function(){return null};var c=[];for(var b=0;b<j;b++){e=k[b];var a=e.mapping!==undefined&&e.mapping!==null?e.mapping:e.name;c.push(this.createAccessor(a))}this.ef=c},createAccessor:function(){var a=Ext.DomQuery;return function(b){switch(b){case this.meta.totalProperty:return function(c,d){return a.selectNumber(b,c,d)};break;case this.meta.successProperty:return function(d,e){var c=a.selectValue(b,d,true);var g=c!==false&&c!=="false";return g};break;default:return function(c,d){return a.selectValue(b,c,d)};break}}}(),extractValues:function(h,d,a){var g,c={};for(var e=0;e<a;e++){g=d[e];var b=this.ef[e](h);c[g.name]=g.convert(b!==undefined?b:g.defaultValue,h)}return c}});Ext.data.XmlStore=Ext.extend(Ext.data.Store,{constructor:function(a){Ext.data.XmlStore.superclass.constructor.call(this,Ext.apply(a,{reader:new Ext.data.XmlReader(a)}))}});Ext.reg("xmlstore",Ext.data.XmlStore);Ext.data.GroupingStore=Ext.extend(Ext.data.Store,{constructor:function(d){d=d||{};this.hasMultiSort=true;this.multiSortInfo=this.multiSortInfo||{sorters:[]};var e=this.multiSortInfo.sorters,c=d.groupField||this.groupField,b=d.sortInfo||this.sortInfo,a=d.groupDir||this.groupDir;if(c)e.push({field:c,direction:a});if(b)e.push(b);Ext.data.GroupingStore.superclass.constructor.call(this,d);this.addEvents("groupchange");this.applyGroupField()},remoteGroup:false,groupOnSort:false,groupDir:"ASC",clearGrouping:function(){this.groupField=false;if(this.remoteGroup){if(this.baseParams){delete this.baseParams.groupBy;delete this.baseParams.groupDir}var a=this.lastOptions;if(a&&a.params){delete a.params.groupBy;delete a.params.groupDir}this.reload()}else{this.sort();this.fireEvent("datachanged",this)}},groupBy:function(d,a,c){c=c?String(c).toUpperCase()=="DESC"?"DESC":"ASC":this.groupDir;if(this.groupField==d&&this.groupDir==c&&!a)return;sorters=this.multiSortInfo.sorters;if(sorters.length>0&&sorters[0].field==this.groupField)sorters.shift();this.groupField=d;this.groupDir=c;this.applyGroupField();var b=function(){this.fireEvent("groupchange",this,this.getGroupState())};if(this.groupOnSort){this.sort(d,c);b.call(this);return}if(this.remoteGroup){this.on("load",b,this,{single:true});this.reload()}else{this.sort(sorters);b.call(this)}},sort:function(h,c){if(this.remoteSort)return Ext.data.GroupingStore.superclass.sort.call(this,h,c);var g=[];if(Ext.isArray(arguments[0]))g=arguments[0];else if(h==undefined)g=this.sortInfo?[this.sortInfo]:[];else{var e=this.fields.get(h);if(!e)return false;var b=e.name,a=this.sortInfo||null,d=this.sortToggle?this.sortToggle[b]:null;if(!c)if(a&&a.field==b)c=(this.sortToggle[b]||"ASC").toggle("ASC","DESC");else c=e.sortDir;this.sortToggle[b]=c;this.sortInfo={field:b,direction:c};g=[this.sortInfo]}if(this.groupField)g.unshift({direction:this.groupDir,field:this.groupField});return this.multiSort.call(this,g,c)},applyGroupField:function(){if(this.remoteGroup){if(!this.baseParams)this.baseParams={};Ext.apply(this.baseParams,{groupBy:this.groupField,groupDir:this.groupDir});var a=this.lastOptions;if(a&&a.params){a.params.groupDir=this.groupDir;delete a.params.groupBy}}},applyGrouping:function(a){if(this.groupField!==false){this.groupBy(this.groupField,true,this.groupDir);return true}else{if(a===true)this.fireEvent("datachanged",this);return false}},getGroupState:function(){return this.groupOnSort&&this.groupField!==false?this.sortInfo?this.sortInfo.field:undefined:this.groupField}});Ext.reg("groupingstore",Ext.data.GroupingStore);Ext.data.DirectProxy=function(a){Ext.apply(this,a);if(typeof this.paramOrder=="string")this.paramOrder=this.paramOrder.split(/[\s,|]/);Ext.data.DirectProxy.superclass.constructor.call(this,a)};Ext.extend(Ext.data.DirectProxy,Ext.data.DataProxy,{paramOrder:undefined,paramsAsHash:true,directFn:undefined,doRequest:function(b,c,a,e,k,l,n){var j=[],h=this.api[b]||this.directFn;switch(b){case Ext.data.Api.actions.create:j.push(a.jsonData);break;case Ext.data.Api.actions.read:if(h.directCfg.method.len>0)if(this.paramOrder)for(var d=0,g=this.paramOrder.length;d<g;d++)j.push(a[this.paramOrder[d]]);else if(this.paramsAsHash)j.push(a);break;case Ext.data.Api.actions.update:j.push(a.jsonData);break;case Ext.data.Api.actions.destroy:j.push(a.jsonData);break}var m={params:a||{},request:{callback:k,scope:l,arg:n},reader:e};j.push(this.createCallback(b,c,m),this);h.apply(window,j)},createCallback:function(d,a,b){var c=this;return function(e,g){if(!g.status){if(d===Ext.data.Api.actions.read)c.fireEvent("loadexception",c,b,g,null);c.fireEvent("exception",c,"remote",d,b,g,null);b.request.callback.call(b.request.scope,null,b.request.arg,false);return}if(d===Ext.data.Api.actions.read)c.onRead(d,b,e,g);else c.onWrite(d,b,e,g,a)}},onRead:function(g,e,a,d){var b;try{b=e.reader.readRecords(a)}catch(c){this.fireEvent("loadexception",this,e,d,c);this.fireEvent("exception",this,"response",g,e,d,c);e.request.callback.call(e.request.scope,null,e.request.arg,false);return}this.fireEvent("load",this,d,e.request.arg);e.request.callback.call(e.request.scope,b,e.request.arg,true)},onWrite:function(g,d,a,c,b){var e=d.reader.extractData(d.reader.getRoot(a),false);var h=d.reader.getSuccess(a);h=h!==false;if(h)this.fireEvent("write",this,g,e,c,b,d.request.arg);else this.fireEvent("exception",this,"remote",g,d,a,b);d.request.callback.call(d.request.scope,e,c,h)}});Ext.data.DirectStore=Ext.extend(Ext.data.Store,{constructor:function(a){var b=Ext.apply({},{batchTransactions:false},a);Ext.data.DirectStore.superclass.constructor.call(this,Ext.apply(b,{proxy:Ext.isDefined(b.proxy)?b.proxy:new Ext.data.DirectProxy(Ext.copyTo({},b,"paramOrder,paramsAsHash,directFn,api")),reader:!Ext.isDefined(b.reader)&&b.fields?new Ext.data.JsonReader(Ext.copyTo({},b,"totalProperty,root,idProperty"),b.fields):b.reader}))}});Ext.reg("directstore",Ext.data.DirectStore);Ext.Direct=Ext.extend(Ext.util.Observable,{exceptions:{TRANSPORT:"xhr",PARSE:"parse",LOGIN:"login",SERVER:"exception"},constructor:function(){this.addEvents("event","exception");this.transactions={};this.providers={}},addProvider:function(e){var c=arguments;if(c.length>1){for(var d=0,b=c.length;d<b;d++)this.addProvider(c[d]);return}if(!e.events)e=new Ext.Direct.PROVIDERS[e.type](e);e.id=e.id||Ext.id();this.providers[e.id]=e;e.on("data",this.onProviderData,this);e.on("exception",this.onProviderException,this);if(!e.isConnected())e.connect();return e},getProvider:function(a){return this.providers[a]},removeProvider:function(b){var a=b.id?b:this.providers[b];a.un("data",this.onProviderData,this);a.un("exception",this.onProviderException,this);delete this.providers[a.id];return a},addTransaction:function(a){this.transactions[a.tid]=a;return a},removeTransaction:function(a){delete this.transactions[a.tid||a];return a},getTransaction:function(a){return this.transactions[a.tid||a]},onProviderData:function(d,c){if(Ext.isArray(c)){for(var b=0,a=c.length;b<a;b++)this.onProviderData(d,c[b]);return}if(c.name&&c.name!="event"&&c.name!="exception")this.fireEvent(c.name,c);else if(c.type=="exception")this.fireEvent("exception",c);this.fireEvent("event",c,d)},createEvent:function(a,b){return new Ext.Direct.eventTypes[a.type](Ext.apply(a,b))}});Ext.Direct=new Ext.Direct;Ext.Direct.TID=1;Ext.Direct.PROVIDERS={};Ext.Direct.Transaction=function(a){Ext.apply(this,a);this.tid=++Ext.Direct.TID;this.retryCount=0};Ext.Direct.Transaction.prototype={send:function(){this.provider.queueTransaction(this)},retry:function(){this.retryCount++;this.send()},getProvider:function(){return this.provider}};Ext.Direct.Event=function(a){Ext.apply(this,a)};Ext.Direct.Event.prototype={status:true,getData:function(){return this.data}};Ext.Direct.RemotingEvent=Ext.extend(Ext.Direct.Event,{type:"rpc",getTransaction:function(){return this.transaction||Ext.Direct.getTransaction(this.tid)}});Ext.Direct.ExceptionEvent=Ext.extend(Ext.Direct.RemotingEvent,{status:false,type:"exception"});Ext.Direct.eventTypes={rpc:Ext.Direct.RemotingEvent,event:Ext.Direct.Event,exception:Ext.Direct.ExceptionEvent};Ext.direct.Provider=Ext.extend(Ext.util.Observable,{priority:1,constructor:function(a){Ext.apply(this,a);this.addEvents("connect","disconnect","data","exception");Ext.direct.Provider.superclass.constructor.call(this,a)},isConnected:function(){return false},connect:Ext.emptyFn,disconnect:Ext.emptyFn});Ext.direct.JsonProvider=Ext.extend(Ext.direct.Provider,{parseResponse:function(a){if(!Ext.isEmpty(a.responseText)){if(typeof a.responseText=="object")return a.responseText;return Ext.decode(a.responseText)}return null},getEvents:function(j){var g=null;try{g=this.parseResponse(j)}catch(h){var d=new Ext.Direct.ExceptionEvent({data:h,xhr:j,code:Ext.Direct.exceptions.PARSE,message:"Error parsing json response: \n\n "+g});return[d]}var c=[];if(Ext.isArray(g))for(var b=0,a=g.length;b<a;b++)c.push(Ext.Direct.createEvent(g[b]));else c.push(Ext.Direct.createEvent(g));return c}});Ext.direct.PollingProvider=Ext.extend(Ext.direct.JsonProvider,{priority:3,interval:3e3,constructor:function(a){Ext.direct.PollingProvider.superclass.constructor.call(this,a);this.addEvents("beforepoll","poll")},isConnected:function(){return!!this.pollTask},connect:function(){if(this.url&&!this.pollTask){this.pollTask=Ext.TaskMgr.start({run:function(){if(this.fireEvent("beforepoll",this)!==false)if(typeof this.url=="function")this.url(this.baseParams);else Ext.Ajax.request({url:this.url,callback:this.onData,scope:this,params:this.baseParams})},interval:this.interval,scope:this});this.fireEvent("connect",this)}else if(!this.url)throw"Error initializing PollingProvider, no url configured.";},disconnect:function(){if(this.pollTask){Ext.TaskMgr.stop(this.pollTask);delete this.pollTask;this.fireEvent("disconnect",this)}},onData:function(d,j,h){if(j){var c=this.getEvents(h);for(var b=0,a=c.length;b<a;b++){var g=c[b];this.fireEvent("data",this,g)}}else{var g=new Ext.Direct.ExceptionEvent({data:g,code:Ext.Direct.exceptions.TRANSPORT,message:"Unable to connect to the server.",xhr:h});this.fireEvent("data",this,g)}}});Ext.Direct.PROVIDERS.polling=Ext.direct.PollingProvider;Ext.direct.RemotingProvider=Ext.extend(Ext.direct.JsonProvider,{enableBuffer:10,maxRetries:1,timeout:undefined,constructor:function(a){Ext.direct.RemotingProvider.superclass.constructor.call(this,a);this.addEvents("beforecall","call");this.namespace=Ext.isString(this.namespace)?Ext.ns(this.namespace):this.namespace||window;this.transactions={};this.callBuffer=[]},initAPI:function(){var h=this.actions;for(var j in h){var d=this.namespace[j]||(this.namespace[j]={}),e=h[j];for(var g=0,b=e.length;g<b;g++){var a=e[g];d[a.name]=this.createMethod(j,a)}}},isConnected:function(){return!!this.connected},connect:function(){if(this.url){this.initAPI();this.connected=true;this.fireEvent("connect",this)}else if(!this.url)throw"Error initializing RemotingProvider, no url configured.";},disconnect:function(){if(this.connected){this.connected=false;this.fireEvent("disconnect",this)}},onData:function(a,h,j){if(h){var k=this.getEvents(j);for(var b=0,c=k.length;b<c;b++){var d=k[b],l=this.getTransaction(d);this.fireEvent("data",this,d);if(l){this.doCallback(l,d,true);Ext.Direct.removeTransaction(l)}}}else{var g=[].concat(a.ts);for(var b=0,c=g.length;b<c;b++){var l=this.getTransaction(g[b]);if(l&&l.retryCount<this.maxRetries)l.retry();else{var d=new Ext.Direct.ExceptionEvent({data:d,transaction:l,code:Ext.Direct.exceptions.TRANSPORT,message:"Unable to connect to the server.",xhr:j});this.fireEvent("data",this,d);if(l){this.doCallback(l,d,false);Ext.Direct.removeTransaction(l)}}}}},getCallData:function(a){return{action:a.action,method:a.method,data:a.data,type:"rpc",tid:a.tid}},doSend:function(d){var g={url:this.url,callback:this.onData,scope:this,ts:d,timeout:this.timeout},b;if(Ext.isArray(d)){b=[];for(var c=0,a=d.length;c<a;c++)b.push(this.getCallData(d[c]))}else b=this.getCallData(d);if(this.enableUrlEncode){var e={};e[Ext.isString(this.enableUrlEncode)?this.enableUrlEncode:"data"]=Ext.encode(b);g.params=e}else g.jsonData=b;Ext.Ajax.request(g)},combineAndSend:function(){var a=this.callBuffer.length;if(a>0){this.doSend(a==1?this.callBuffer[0]:this.callBuffer);this.callBuffer=[]}},queueTransaction:function(a){if(a.form){this.processForm(a);return}this.callBuffer.push(a);if(this.enableBuffer){if(!this.callTask)this.callTask=new Ext.util.DelayedTask(this.combineAndSend,this);this.callTask.delay(Ext.isNumber(this.enableBuffer)?this.enableBuffer:10)}else this.combineAndSend()},doCall:function(i,a,b){var h=null,e=b[a.len],g=b[a.len+1];if(a.len!==0)h=b.slice(0,a.len);var d=new Ext.Direct.Transaction({provider:this,args:b,action:i,method:a.name,data:h,cb:g&&Ext.isFunction(e)?e.createDelegate(g):e});if(this.fireEvent("beforecall",this,d)!==false){Ext.Direct.addTransaction(d);this.queueTransaction(d);this.fireEvent("call",this,d)}},doForm:function(j,b,g,i,e){var d=new Ext.Direct.Transaction({provider:this,action:j,method:b.name,args:[g,i,e],cb:e&&Ext.isFunction(i)?i.createDelegate(e):i,isForm:true});if(this.fireEvent("beforecall",this,d)!==false){Ext.Direct.addTransaction(d);var a=String(g.getAttribute("enctype")).toLowerCase()=="multipart/form-data",h={extTID:d.tid,extAction:j,extMethod:b.name,extType:"rpc",extUpload:String(a)};Ext.apply(d,{form:Ext.getDom(g),isUpload:a,params:i&&Ext.isObject(i.params)?Ext.apply(h,i.params):h});this.fireEvent("call",this,d);this.processForm(d)}},processForm:function(a){Ext.Ajax.request({url:this.url,params:a.params,callback:this.onData,scope:this,form:a.form,isUpload:a.isUpload,ts:a})},createMethod:function(d,a){var b;if(!a.formHandler)b=function(){this.doCall(d,a,Array.prototype.slice.call(arguments,0))}.createDelegate(this);else b=function(e,g,c){this.doForm(d,a,e,g,c)}.createDelegate(this);b.directCfg={action:d,method:a};return b},getTransaction:function(a){return a&&a.tid?Ext.Direct.getTransaction(a.tid):null},doCallback:function(c,g){var d=g.status?"success":"failure";if(c&&c.cb){var b=c.cb,a=Ext.isDefined(g.result)?g.result:g.data;if(Ext.isFunction(b))b(a,g);else{Ext.callback(b[d],b.scope,[a,g]);Ext.callback(b.callback,b.scope,[a,g])}}}});Ext.Direct.PROVIDERS.remoting=Ext.direct.RemotingProvider;Ext.Resizable=Ext.extend(Ext.util.Observable,{constructor:function(d,e){this.el=Ext.get(d);if(e&&e.wrap){e.resizeChild=this.el;this.el=this.el.wrap(typeof e.wrap=="object"?e.wrap:{cls:"xresizable-wrap"});this.el.id=this.el.dom.id=e.resizeChild.id+"-rzwrap";this.el.setStyle("overflow","hidden");this.el.setPositioning(e.resizeChild.getPositioning());e.resizeChild.clearPositioning();if(!e.width||!e.height){var g=e.resizeChild.getSize();this.el.setSize(g.width,g.height)}if(e.pinned&&!e.adjustments)e.adjustments="auto"}this.proxy=this.el.createProxy({tag:"div",cls:"x-resizable-proxy",id:this.el.id+"-rzproxy"},Ext.getBody());this.proxy.unselectable();this.proxy.enableDisplayMode("block");Ext.apply(this,e);if(this.pinned){this.disableTrackOver=true;this.el.addClass("x-resizable-pinned")}var k=this.el.getStyle("position");if(k!="absolute"&&k!="fixed")this.el.setStyle("position","relative");if(!this.handles){this.handles="s,e,se";if(this.multiDirectional)this.handles+=",n,w"}if(this.handles=="all")this.handles="n s e w ne nw se sw";var o=this.handles.split(/\s*?[,;]\s*?| /);var c=Ext.Resizable.positions;for(var j=0,l=o.length;j<l;j++)if(o[j]&&c[o[j]]){var n=c[o[j]];this[n]=new Ext.Resizable.Handle(this,n,this.disableTrackOver,this.transparent,this.handleCls)}this.corner=this.southeast;if(this.handles.indexOf("n")!=-1||this.handles.indexOf("w")!=-1)this.updateBox=true;this.activeHandle=null;if(this.resizeChild)if(typeof this.resizeChild=="boolean")this.resizeChild=Ext.get(this.el.dom.firstChild,true);else this.resizeChild=Ext.get(this.resizeChild,true);if(this.adjustments=="auto"){var b=this.resizeChild;var m=this.west,h=this.east,a=this.north,o=this.south;if(b&&(m||a)){b.position("relative");b.setLeft(m?m.el.getWidth():0);b.setTop(a?a.el.getHeight():0)}this.adjustments=[(h?-h.el.getWidth():0)+(m?-m.el.getWidth():0),(a?-a.el.getHeight():0)+(o?-o.el.getHeight():0)-1]}if(this.draggable){this.dd=this.dynamic?this.el.initDD(null):this.el.initDDProxy(null,{dragElId:this.proxy.id});this.dd.setHandleElId(this.resizeChild?this.resizeChild.id:this.el.id);if(this.constrainTo)this.dd.constrainTo(this.constrainTo)}this.addEvents("beforeresize","resize");if(this.width!==null&&this.height!==null)this.resizeTo(this.width,this.height);else this.updateChildSize();if(Ext.isIE)this.el.dom.style.zoom=1;Ext.Resizable.superclass.constructor.call(this)},adjustments:[0,0],animate:false,disableTrackOver:false,draggable:false,duration:.35,dynamic:false,easing:"easeOutStrong",enabled:true,handles:false,multiDirectional:false,height:null,width:null,heightIncrement:0,widthIncrement:0,minHeight:5,minWidth:5,maxHeight:1e4,maxWidth:1e4,minX:0,minY:0,pinned:false,preserveRatio:false,resizeChild:false,transparent:false,resizeTo:function(b,a){this.el.setSize(b,a);this.updateChildSize();this.fireEvent("resize",this,b,a,null)},startSizing:function(c,b){this.fireEvent("beforeresize",this,c);if(this.enabled){if(!this.overlay){this.overlay=this.el.createProxy({tag:"div",cls:"x-resizable-overlay",html:"&#160;"},Ext.getBody());this.overlay.unselectable();this.overlay.enableDisplayMode("block");this.overlay.on({scope:this,mousemove:this.onMouseMove,mouseup:this.onMouseUp})}this.overlay.setStyle("cursor",b.el.getStyle("cursor"));this.resizing=true;this.startBox=this.el.getBox();this.startPoint=c.getXY();this.offsets=[this.startBox.x+this.startBox.width-this.startPoint[0],this.startBox.y+this.startBox.height-this.startPoint[1]];this.overlay.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));this.overlay.show();if(this.constrainTo){var a=Ext.get(this.constrainTo);this.resizeRegion=a.getRegion().adjust(a.getFrameWidth("t"),a.getFrameWidth("l"),-a.getFrameWidth("b"),-a.getFrameWidth("r"))}this.proxy.setStyle("visibility","hidden");this.proxy.show();this.proxy.setBox(this.startBox);if(!this.dynamic)this.proxy.setStyle("visibility","visible")}},onMouseDown:function(a,b){if(this.enabled){b.stopEvent();this.activeHandle=a;this.startSizing(b,a)}},onMouseUp:function(b){this.activeHandle=null;var a=this.resizeElement();this.resizing=false;this.handleOut();this.overlay.hide();this.proxy.hide();this.fireEvent("resize",this,a.width,a.height,b)},updateChildSize:function(){if(this.resizeChild){var d=this.el;var e=this.resizeChild;var c=this.adjustments;if(d.dom.offsetWidth){var a=d.getSize(true);e.setSize(a.width+c[0],a.height+c[1])}if(Ext.isIE)setTimeout(function(){if(d.dom.offsetWidth){var g=d.getSize(true);e.setSize(g.width+c[0],g.height+c[1])}},10)}},snap:function(c,e,b){if(!e||!c)return c;var d=c;var a=c%e;if(a>0)if(a>e/2)d=c+(e-a);else d=c-a;return Math.max(b,d)},resizeElement:function(){var a=this.proxy.getBox();if(this.updateBox)this.el.setBox(a,false,this.animate,this.duration,null,this.easing);else this.el.setSize(a.width,a.height,this.animate,this.duration,null,this.easing);this.updateChildSize();if(!this.dynamic)this.proxy.hide();if(this.draggable&&this.constrainTo){this.dd.resetConstraints();this.dd.constrainTo(this.constrainTo)}return a},constrain:function(b,c,a,d){if(b-c<a)c=b-a;else if(b-c>d)c=b-d;return c},onMouseMove:function(z){if(this.enabled&&this.activeHandle)try{if(this.resizeRegion&&!this.resizeRegion.contains(z.getPoint()))return;var t=this.curSize||this.startBox,l=this.startBox.x,k=this.startBox.y,c=l,b=k,m=t.width,u=t.height,d=m,o=u,n=this.minWidth,A=this.minHeight,s=this.maxWidth,D=this.maxHeight,i=this.widthIncrement,a=this.heightIncrement,B=z.getXY(),r=-(this.startPoint[0]-Math.max(this.minX,B[0])),p=-(this.startPoint[1]-Math.max(this.minY,B[1])),j=this.activeHandle.position,E,g;switch(j){case"east":m+=r;m=Math.min(Math.max(n,m),s);break;case"south":u+=p;u=Math.min(Math.max(A,u),D);break;case"southeast":m+=r;u+=p;m=Math.min(Math.max(n,m),s);u=Math.min(Math.max(A,u),D);break;case"north":p=this.constrain(u,p,A,D);k+=p;u-=p;break;case"west":r=this.constrain(m,r,n,s);l+=r;m-=r;break;case"northeast":m+=r;m=Math.min(Math.max(n,m),s);p=this.constrain(u,p,A,D);k+=p;u-=p;break;case"northwest":r=this.constrain(m,r,n,s);p=this.constrain(u,p,A,D);k+=p;u-=p;l+=r;m-=r;break;case"southwest":r=this.constrain(m,r,n,s);u+=p;u=Math.min(Math.max(A,u),D);l+=r;m-=r;break}var q=this.snap(m,i,n);var C=this.snap(u,a,A);if(q!=m||C!=u){switch(j){case"northeast":k-=C-u;break;case"north":k-=C-u;break;case"southwest":l-=q-m;break;case"west":l-=q-m;break;case"northwest":l-=q-m;k-=C-u;break}m=q;u=C}if(this.preserveRatio)switch(j){case"southeast":case"east":u=o*(m/d);u=Math.min(Math.max(A,u),D);m=d*(u/o);break;case"south":m=d*(u/o);m=Math.min(Math.max(n,m),s);u=o*(m/d);break;case"northeast":m=d*(u/o);m=Math.min(Math.max(n,m),s);u=o*(m/d);break;case"north":E=m;m=d*(u/o);m=Math.min(Math.max(n,m),s);u=o*(m/d);l+=(E-m)/2;break;case"southwest":u=o*(m/d);u=Math.min(Math.max(A,u),D);E=m;m=d*(u/o);l+=E-m;break;case"west":g=u;u=o*(m/d);u=Math.min(Math.max(A,u),D);k+=(g-u)/2;E=m;m=d*(u/o);l+=E-m;break;case"northwest":E=m;g=u;u=o*(m/d);u=Math.min(Math.max(A,u),D);m=d*(u/o);k+=g-u;l+=E-m;break}this.proxy.setBounds(l,k,m,u);if(this.dynamic)this.resizeElement()}catch(v){}},handleOver:function(){if(this.enabled)this.el.addClass("x-resizable-over")},handleOut:function(){if(!this.resizing)this.el.removeClass("x-resizable-over")},getEl:function(){return this.el},getResizeChild:function(){return this.resizeChild},destroy:function(b){Ext.destroy(this.dd,this.overlay,this.proxy);this.overlay=null;this.proxy=null;var c=Ext.Resizable.positions;for(var a in c)if(typeof c[a]!="function"&&this[c[a]])this[c[a]].destroy();if(b){this.el.update("");Ext.destroy(this.el);this.el=null}this.purgeListeners()},syncHandleHeight:function(){var a=this.el.getHeight(true);if(this.west)this.west.el.setHeight(a);if(this.east)this.east.el.setHeight(a)}});Ext.Resizable.positions={n:"north",s:"south",e:"east",w:"west",se:"southeast",sw:"southwest",nw:"northwest",ne:"northeast"};Ext.Resizable.Handle=Ext.extend(Object,{constructor:function(d,g,c,e,a){if(!this.tpl){var b=Ext.DomHelper.createTemplate({tag:"div",cls:"x-resizable-handle x-resizable-handle-{0}"});b.compile();Ext.Resizable.Handle.prototype.tpl=b}this.position=g;this.rz=d;this.el=this.tpl.append(d.el.dom,[this.position],true);this.el.unselectable();if(e)this.el.setOpacity(0);if(!Ext.isEmpty(a))this.el.addClass(a);this.el.on("mousedown",this.onMouseDown,this);if(!c)this.el.on({scope:this,mouseover:this.onMouseOver,mouseout:this.onMouseOut})},afterResize:function(a){},onMouseDown:function(a){this.rz.onMouseDown(this,a)},onMouseOver:function(a){this.rz.handleOver(this,a)},onMouseOut:function(a){this.rz.handleOut(this,a)},destroy:function(){Ext.destroy(this.el);this.el=null}});Ext.Window=Ext.extend(Ext.Panel,{baseCls:"x-window",resizable:true,draggable:true,closable:true,closeAction:"close",constrain:false,constrainHeader:false,plain:false,minimizable:false,maximizable:false,minHeight:100,minWidth:200,expandOnShow:true,collapsible:false,initHidden:undefined,hidden:true,elements:"header,body",frame:true,floating:true,initComponent:function(){this.initTools();Ext.Window.superclass.initComponent.call(this);this.addEvents("resize","maximize","minimize","restore");if(Ext.isDefined(this.initHidden))this.hidden=this.initHidden;if(this.hidden===false){this.hidden=true;this.show()}},getState:function(){return Ext.apply(Ext.Window.superclass.getState.call(this)||{},this.getBox(true))},onRender:function(b,a){Ext.Window.superclass.onRender.call(this,b,a);if(this.plain)this.el.addClass("x-window-plain");this.focusEl=this.el.createChild({tag:"a",href:"#",cls:"x-dlg-focus",tabIndex:"-1",html:"&#160;"});this.focusEl.swallowEvent("click",true);this.proxy=this.el.createProxy("x-window-proxy");this.proxy.enableDisplayMode("block");if(this.modal){this.mask=this.container.createChild({cls:"ext-el-mask"},this.el.dom);this.mask.enableDisplayMode("block");this.mask.hide();this.mon(this.mask,"click",this.focus,this)}if(this.maximizable)this.mon(this.header,"dblclick",this.toggleMaximize,this)},initEvents:function(){Ext.Window.superclass.initEvents.call(this);if(this.animateTarget)this.setAnimateTarget(this.animateTarget);if(this.resizable){this.resizer=new Ext.Resizable(this.el,{minWidth:this.minWidth,minHeight:this.minHeight,handles:this.resizeHandles||"all",pinned:true,resizeElement:this.resizerAction,handleCls:"x-window-handle"});this.resizer.window=this;this.mon(this.resizer,"beforeresize",this.beforeResize,this)}if(this.draggable)this.header.addClass("x-window-draggable");this.mon(this.el,"mousedown",this.toFront,this);this.manager=this.manager||Ext.WindowMgr;this.manager.register(this);if(this.maximized){this.maximized=false;this.maximize()}if(this.closable){var a=this.getKeyMap();a.on(27,this.onEsc,this);a.disable()}},initDraggable:function(){this.dd=new Ext.Window.DD(this)},onEsc:function(a,b){b.stopEvent();this[this.closeAction]()},beforeDestroy:function(){if(this.rendered){this.hide();this.clearAnchor();Ext.destroy(this.focusEl,this.resizer,this.dd,this.proxy,this.mask)}Ext.Window.superclass.beforeDestroy.call(this)},onDestroy:function(){if(this.manager)this.manager.unregister(this);Ext.Window.superclass.onDestroy.call(this)},initTools:function(){if(this.minimizable)this.addTool({id:"minimize",handler:this.minimize.createDelegate(this,[])});if(this.maximizable){this.addTool({id:"maximize",handler:this.maximize.createDelegate(this,[])});this.addTool({id:"restore",handler:this.restore.createDelegate(this,[]),hidden:true})}if(this.closable)this.addTool({id:"close",handler:this[this.closeAction].createDelegate(this,[])})},resizerAction:function(){var a=this.proxy.getBox();this.proxy.hide();this.window.handleResize(a);return a},beforeResize:function(){this.resizer.minHeight=Math.max(this.minHeight,this.getFrameHeight()+40);this.resizer.minWidth=Math.max(this.minWidth,this.getFrameWidth()+40);this.resizeBox=this.el.getBox()},updateHandles:function(){if(Ext.isIE&&this.resizer){this.resizer.syncHandleHeight();this.el.repaint()}},handleResize:function(b){var a=this.resizeBox;if(a.x!=b.x||a.y!=b.y)this.updateBox(b);else{this.setSize(b);if(Ext.isIE6&&Ext.isStrict)this.doLayout()}this.focus();this.updateHandles();this.saveState()},focus:function(){var e=this.focusEl,a=this.defaultButton,c=typeof a,d,b;if(Ext.isDefined(a)){if(Ext.isNumber(a)&&this.fbar)e=this.fbar.items.get(a);else if(Ext.isString(a))e=Ext.getCmp(a);else e=a;d=e.getEl();b=Ext.getDom(this.container);if(d&&b)if(!Ext.lib.Region.getRegion(b).contains(Ext.lib.Region.getRegion(d.dom)))return}e=e||this.focusEl;e.focus.defer(10,e)},setAnimateTarget:function(a){a=Ext.get(a);this.animateTarget=a},beforeShow:function(){delete this.el.lastXY;delete this.el.lastLT;if(this.x===undefined||this.y===undefined){var a=this.el.getAlignToXY(this.container,"c-c");var b=this.el.translatePoints(a[0],a[1]);this.x=this.x===undefined?b.left:this.x;this.y=this.y===undefined?b.top:this.y}this.el.setLeftTop(this.x,this.y);if(this.expandOnShow)this.expand(false);if(this.modal){Ext.getBody().addClass("x-body-masked");this.mask.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));this.mask.show()}},show:function(c,a,b){if(!this.rendered)this.render(Ext.getBody());if(this.hidden===false){this.toFront();return this}if(this.fireEvent("beforeshow",this)===false)return this;if(a)this.on("show",a,b,{single:true});this.hidden=false;if(Ext.isDefined(c))this.setAnimateTarget(c);this.beforeShow();if(this.animateTarget)this.animShow();else this.afterShow();return this},afterShow:function(b){if(this.isDestroyed)return false;this.proxy.hide();this.el.setStyle("display","block");this.el.show();if(this.maximized)this.fitContainer();if(Ext.isMac&&Ext.isGecko2)this.cascade(this.setAutoScroll);if(this.monitorResize||this.modal||this.constrain||this.constrainHeader)Ext.EventManager.onWindowResize(this.onWindowResize,this);this.doConstrain();this.doLayout();if(this.keyMap)this.keyMap.enable();this.toFront();this.updateHandles();if(b&&(Ext.isIE||Ext.isWebKit)){var a=this.getSize();this.onResize(a.width,a.height)}this.onShow();this.fireEvent("show",this)},animShow:function(){this.proxy.show();this.proxy.setBox(this.animateTarget.getBox());this.proxy.setOpacity(0);var a=this.getBox();this.el.setStyle("display","none");this.proxy.shift(Ext.apply(a,{callback:this.afterShow.createDelegate(this,[true],false),scope:this,easing:"easeNone",duration:.25,opacity:.5}))},hide:function(c,a,b){if(this.hidden||this.fireEvent("beforehide",this)===false)return this;if(a)this.on("hide",a,b,{single:true});this.hidden=true;if(c!==undefined)this.setAnimateTarget(c);if(this.modal){this.mask.hide();Ext.getBody().removeClass("x-body-masked")}if(this.animateTarget)this.animHide();else{this.el.hide();this.afterHide()}return this},afterHide:function(){this.proxy.hide();if(this.monitorResize||this.modal||this.constrain||this.constrainHeader)Ext.EventManager.removeResizeListener(this.onWindowResize,this);if(this.keyMap)this.keyMap.disable();this.onHide();this.fireEvent("hide",this)},animHide:function(){this.proxy.setOpacity(.5);this.proxy.show();var a=this.getBox(false);this.proxy.setBox(a);this.el.hide();this.proxy.shift(Ext.apply(this.animateTarget.getBox(),{callback:this.afterHide,scope:this,duration:.25,easing:"easeNone",opacity:0}))},onShow:Ext.emptyFn,onHide:Ext.emptyFn,onWindowResize:function(){if(this.maximized)this.fitContainer();if(this.modal){this.mask.setSize("100%","100%");var a=this.mask.dom.offsetHeight;this.mask.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true))}this.doConstrain()},doConstrain:function(){if(this.constrain||this.constrainHeader){var b;if(this.constrain)b={right:this.el.shadowOffset,left:this.el.shadowOffset,bottom:this.el.shadowOffset};else{var a=this.getSize();b={right:-(a.width-100),bottom:-(a.height-25)}}var c=this.el.getConstrainToXY(this.container,true,b);if(c)this.setPosition(c[0],c[1])}},ghost:function(a){var c=this.createGhost(a);var b=this.getBox(true);c.setLeftTop(b.x,b.y);c.setWidth(b.width);this.el.hide();this.activeGhost=c;return c},unghost:function(b,a){if(!this.activeGhost)return;if(b!==false){this.el.show();this.focus.defer(10,this);if(Ext.isMac&&Ext.isGecko2)this.cascade(this.setAutoScroll)}if(a!==false)this.setPosition(this.activeGhost.getLeft(true),this.activeGhost.getTop(true));this.activeGhost.hide();this.activeGhost.remove();delete this.activeGhost},minimize:function(){this.fireEvent("minimize",this);return this},close:function(){if(this.fireEvent("beforeclose",this)!==false)if(this.hidden)this.doClose();else this.hide(null,this.doClose,this)},doClose:function(){this.fireEvent("close",this);this.destroy()},maximize:function(){if(!this.maximized){this.expand(false);this.restoreSize=this.getSize();this.restorePos=this.getPosition(true);if(this.maximizable){this.tools.maximize.hide();this.tools.restore.show()}this.maximized=true;this.el.disableShadow();if(this.dd)this.dd.lock();if(this.collapsible)this.tools.toggle.hide();this.el.addClass("x-window-maximized");this.container.addClass("x-window-maximized-ct");this.setPosition(0,0);this.fitContainer();this.fireEvent("maximize",this)}return this},restore:function(){if(this.maximized){var a=this.tools;this.el.removeClass("x-window-maximized");if(a.restore)a.restore.hide();if(a.maximize)a.maximize.show();this.setPosition(this.restorePos[0],this.restorePos[1]);this.setSize(this.restoreSize.width,this.restoreSize.height);delete this.restorePos;delete this.restoreSize;this.maximized=false;this.el.enableShadow(true);if(this.dd)this.dd.unlock();if(this.collapsible&&a.toggle)a.toggle.show();this.container.removeClass("x-window-maximized-ct");this.doConstrain();this.fireEvent("restore",this)}return this},toggleMaximize:function(){return this[this.maximized?"restore":"maximize"]()},fitContainer:function(){var a=this.container.getViewSize(false);this.setSize(a.width,a.height)},setZIndex:function(a){if(this.modal)this.mask.setStyle("z-index",a);this.el.setZIndex(++a);a+=5;if(this.resizer)this.resizer.proxy.setStyle("z-index",++a);this.lastZIndex=a},alignTo:function(b,a,c){var d=this.el.getAlignToXY(b,a,c);this.setPagePosition(d[0],d[1]);return this},anchorTo:function(c,e,d,b){this.clearAnchor();this.anchorTarget={el:c,alignment:e,offsets:d};Ext.EventManager.onWindowResize(this.doAnchor,this);var a=typeof b;if(a!="undefined")Ext.EventManager.on(window,"scroll",this.doAnchor,this,{buffer:a=="number"?b:50});return this.doAnchor()},doAnchor:function(){var a=this.anchorTarget;this.alignTo(a.el,a.alignment,a.offsets);return this},clearAnchor:function(){if(this.anchorTarget){Ext.EventManager.removeResizeListener(this.doAnchor,this);Ext.EventManager.un(window,"scroll",this.doAnchor,this);delete this.anchorTarget}return this},toFront:function(a){if(this.manager.bringToFront(this))if(!a||!a.getTarget().focus)this.focus();return this},setActive:function(a){if(a){if(!this.maximized)this.el.enableShadow(true);this.fireEvent("activate",this)}else{this.el.disableShadow();this.fireEvent("deactivate",this)}},toBack:function(){this.manager.sendToBack(this);return this},center:function(){var a=this.el.getAlignToXY(this.container,"c-c");this.setPagePosition(a[0],a[1]);return this}});Ext.reg("window",Ext.Window);Ext.Window.DD=function(a){this.win=a;Ext.Window.DD.superclass.constructor.call(this,a.el.id,"WindowDD-"+a.id);this.setHandleElId(a.header.id);this.scroll=false};Ext.extend(Ext.Window.DD,Ext.dd.DD,{moveOnly:true,headerOffsets:[100,25],startDrag:function(){var a=this.win;this.proxy=a.ghost();if(a.constrain!==false){var c=a.el.shadowOffset;this.constrainTo(a.container,{right:c,left:c,bottom:c})}else if(a.constrainHeader!==false){var b=this.proxy.getSize();this.constrainTo(a.container,{right:-(b.width-this.headerOffsets[0]),bottom:-(b.height-this.headerOffsets[1])})}},b4Drag:Ext.emptyFn,onDrag:function(a){this.alignElWithMouse(this.proxy,a.getPageX(),a.getPageY())},endDrag:function(a){this.win.unghost();this.win.saveState()}});Ext.WindowGroup=function(){var g={};var d=[];var e=null;var c=function(j,i){return!j._lastAccess||j._lastAccess<i._lastAccess?-1:1};var h=function(){var l=d,j=l.length;if(j>0){l.sort(c);var k=l[0].manager.zseed;for(var m=0;m<j;m++){var n=l[m];if(n&&!n.hidden)n.setZIndex(k+m*10)}}a()};var b=function(i){if(i!=e){if(e)e.setActive(false);e=i;if(i)i.setActive(true)}};var a=function(){for(var j=d.length-1;j>=0;--j)if(!d[j].hidden){b(d[j]);return}b(null)};return{zseed:9e3,register:function(i){if(i.manager)i.manager.unregister(i);i.manager=this;g[i.id]=i;d.push(i);i.on("hide",a)},unregister:function(i){delete i.manager;delete g[i.id];i.un("hide",a);d.remove(i)},get:function(i){return typeof i=="object"?i:g[i]},bringToFront:function(i){i=this.get(i);if(i!=e){i._lastAccess=(new Date).getTime();h();return true}return false},sendToBack:function(i){i=this.get(i);i._lastAccess=-(new Date).getTime();h();return i},hideAll:function(){for(var i in g)if(g[i]&&typeof g[i]!="function"&&g[i].isVisible())g[i].hide()},getActive:function(){return e},getBy:function(l,k){var m=[];for(var j=d.length-1;j>=0;--j){var n=d[j];if(l.call(k||n,n)!==false)m.push(n)}return m},each:function(j,i){for(var k in g)if(g[k]&&typeof g[k]!="function")if(j.call(i||g[k],g[k])===false)return}}};Ext.WindowMgr=new Ext.WindowGroup;Ext.MessageBox=function(){var u,b,q,t,h,l,s,a,n,p,j,g,r,v,o,i="",d="",m=["ok","yes","no","cancel"];var c=function(x){r[x].blur();if(u.isVisible()){u.hide();w();Ext.callback(b.fn,b.scope||window,[x,v.dom.value,b],1)}};var w=function(){if(b&&b.cls)u.el.removeClass(b.cls);n.reset()};var e=function(z,x,y){if(b&&b.closable!==false){u.hide();w()}if(y)y.stopEvent()};var k=function(x){var z=0,y;if(!x){Ext.each(m,function(A){r[A].hide()});return z}u.footer.dom.style.display="";Ext.iterate(r,function(A,B){y=x[A];if(y){B.show();B.setText(Ext.isString(y)?y:Ext.MessageBox.buttonText[A]);z+=B.getEl().getWidth()+15}else B.hide()});return z};return{getDialog:function(x){if(!u){var z=[];r={};Ext.each(m,function(A){z.push(r[A]=new Ext.Button({text:this.buttonText[A],handler:c.createCallback(A),hideMode:"offsets"}))},this);u=new Ext.Window({autoCreate:true,title:x,resizable:false,constrain:true,constrainHeader:true,minimizable:false,maximizable:false,stateful:false,modal:true,shim:true,buttonAlign:"center",width:400,height:100,minHeight:80,plain:true,footer:true,closable:true,close:function(){if(b&&b.buttons&&b.buttons.no&&!b.buttons.cancel)c("no");else c("cancel")},fbar:new Ext.Toolbar({items:z,enableOverflow:false})});u.render(document.body);u.getEl().addClass("x-window-dlg");q=u.mask;h=u.body.createChild({html:'<div class="ext-mb-icon"></div><div class="ext-mb-content"><span class="ext-mb-text"></span><br /><div class="ext-mb-fix-cursor"><input type="text" class="ext-mb-input" /><textarea class="ext-mb-textarea"></textarea></div></div>'});j=Ext.get(h.dom.firstChild);var y=h.dom.childNodes[1];l=Ext.get(y.firstChild);s=Ext.get(y.childNodes[2].firstChild);s.enableDisplayMode();s.addKeyListener([10,13],function(){if(u.isVisible()&&b&&b.buttons)if(b.buttons.ok)c("ok");else if(b.buttons.yes)c("yes")});a=Ext.get(y.childNodes[2].childNodes[1]);a.enableDisplayMode();n=new Ext.ProgressBar({renderTo:h});h.createChild({cls:"x-clear"})}return u},updateText:function(A){if(!u.isVisible()&&!b.width)u.setSize(this.maxWidth,100);l.update(A||"&#160;");var y=d!=""?j.getWidth()+j.getMargins("lr"):0,C=l.getWidth()+l.getMargins("lr"),z=u.getFrameWidth("lr"),B=u.body.getFrameWidth("lr"),x;if(Ext.isIE&&y>0)y+=3;x=Math.max(Math.min(b.width||y+C+z+B,b.maxWidth||this.maxWidth),Math.max(b.minWidth||this.minWidth,o||0));if(b.prompt===true)v.setWidth(x-y-z-B);if(b.progress===true||b.wait===true)n.setSize(x-y-z-B);if(Ext.isIE&&x==o)x+=4;u.setSize(x,"auto").center();return this},updateProgress:function(y,x,z){n.updateProgress(y,x);if(z)this.updateText(z);return this},isVisible:function(){return u&&u.isVisible()},hide:function(){var x=u?u.activeGhost:null;if(this.isVisible()||x){u.hide();w();if(x)u.unghost(false,false)}return this},show:function(A){if(this.isVisible())this.hide();b=A;var B=this.getDialog(b.title||"&#160;");B.setTitle(b.title||"&#160;");var x=b.closable!==false&&b.progress!==true&&b.wait!==true;B.tools.close.setDisplayed(x);v=s;b.prompt=b.prompt||(b.multiline?true:false);if(b.prompt)if(b.multiline){s.hide();a.show();a.setHeight(Ext.isNumber(b.multiline)?b.multiline:this.defaultTextHeight);v=a}else{s.show();a.hide()}else{s.hide();a.hide()}v.dom.value=b.value||"";if(b.prompt)B.focusEl=v;else{var z=b.buttons;var y=null;if(z&&z.ok)y=r.ok;else if(z&&z.yes)y=r.yes;if(y)B.focusEl=y}if(b.iconCls)B.setIconClass(b.iconCls);this.setIcon(Ext.isDefined(b.icon)?b.icon:i);o=k(b.buttons);n.setVisible(b.progress===true||b.wait===true);this.updateProgress(0,b.progressText);this.updateText(b.msg);if(b.cls)B.el.addClass(b.cls);B.proxyDrag=b.proxyDrag===true;B.modal=b.modal!==false;B.mask=b.modal!==false?q:false;if(!B.isVisible()){document.body.appendChild(u.el.dom);B.setAnimateTarget(b.animEl);B.on("show",function(){if(x===true)B.keyMap.enable();else B.keyMap.disable()},this,{single:true});B.show(b.animEl)}if(b.wait===true)n.wait(b.waitConfig);return this},setIcon:function(x){if(!u){i=x;return}i=undefined;if(x&&x!=""){j.removeClass("x-hidden");j.replaceClass(d,x);h.addClass("x-dlg-icon");d=x}else{j.replaceClass(d,"x-hidden");h.removeClass("x-dlg-icon");d=""}return this},progress:function(z,y,x){this.show({title:z,msg:y,buttons:false,progress:true,closable:false,minWidth:this.minProgressWidth,progressText:x});return this},wait:function(z,y,x){this.show({title:y,msg:z,buttons:false,closable:false,wait:true,modal:true,minWidth:this.minProgressWidth,waitConfig:x});return this},alert:function(A,z,y,x){this.show({title:A,msg:z,buttons:this.OK,fn:y,scope:x,minWidth:this.minWidth});return this},confirm:function(A,z,y,x){this.show({title:A,msg:z,buttons:this.YESNO,fn:y,scope:x,icon:this.QUESTION,minWidth:this.minWidth});return this},prompt:function(C,B,z,y,x,A){this.show({title:C,msg:B,buttons:this.OKCANCEL,fn:z,minWidth:this.minPromptWidth,scope:y,prompt:true,multiline:x,value:A});return this},OK:{ok:true},CANCEL:{cancel:true},OKCANCEL:{ok:true,cancel:true},YESNO:{yes:true,no:true},YESNOCANCEL:{yes:true,no:true,cancel:true},INFO:"ext-mb-info",WARNING:"ext-mb-warning",QUESTION:"ext-mb-question",ERROR:"ext-mb-error",defaultTextHeight:75,maxWidth:600,minWidth:100,minProgressWidth:250,minPromptWidth:250,buttonText:{ok:"OK",cancel:"Cancel",yes:"Yes",no:"No"}}}();Ext.Msg=Ext.MessageBox;Ext.dd.PanelProxy=function(a,b){this.panel=a;this.id=this.panel.id+"-ddproxy";Ext.apply(this,b)};Ext.dd.PanelProxy.prototype={insertProxy:true,setStatus:Ext.emptyFn,reset:Ext.emptyFn,update:Ext.emptyFn,stop:Ext.emptyFn,sync:Ext.emptyFn,getEl:function(){return this.ghost},getGhost:function(){return this.ghost},getProxy:function(){return this.proxy},hide:function(){if(this.ghost){if(this.proxy){this.proxy.remove();delete this.proxy}this.panel.el.dom.style.display="";this.ghost.remove();delete this.ghost}},show:function(){if(!this.ghost){this.ghost=this.panel.createGhost(undefined,undefined,Ext.getBody());this.ghost.setXY(this.panel.el.getXY());if(this.insertProxy){this.proxy=this.panel.el.insertSibling({cls:"x-panel-dd-spacer"});this.proxy.setSize(this.panel.getSize())}this.panel.el.dom.style.display="none"}},repair:function(b,c,a){this.hide();if(typeof c=="function")c.call(a||this)},moveProxy:function(a,b){if(this.proxy)a.insertBefore(this.proxy.dom,b)}};Ext.Panel.DD=function(b,a){this.panel=b;this.dragData={panel:b};this.proxy=new Ext.dd.PanelProxy(b,a);Ext.Panel.DD.superclass.constructor.call(this,b.el,a);var c=b.header;if(c)this.setHandleElId(c.id);(c?c:this.panel.body).setStyle("cursor","move");this.scroll=false};Ext.extend(Ext.Panel.DD,Ext.dd.DragSource,{showFrame:Ext.emptyFn,startDrag:Ext.emptyFn,b4StartDrag:function(a,b){this.proxy.show()},b4MouseDown:function(b){var a=b.getPageX();var c=b.getPageY();this.autoOffset(a,c)},onInitDrag:function(a,b){this.onStartDrag(a,b);return true},createFrame:Ext.emptyFn,getDragEl:function(a){return this.proxy.ghost.dom},endDrag:function(a){this.proxy.hide();this.panel.saveState()},autoOffset:function(a,b){a-=this.startPageX;b-=this.startPageY;this.setDelta(a,b)}});Ext.state.Provider=function(){this.addEvents("statechange");this.state={};Ext.state.Provider.superclass.constructor.call(this)};Ext.extend(Ext.state.Provider,Ext.util.Observable,{get:function(b,a){return typeof this.state[b]=="undefined"?a:this.state[b]},clear:function(a){delete this.state[a];this.fireEvent("statechange",this,a,null)},set:function(a,b){this.state[a]=b;this.fireEvent("statechange",this,a,b)},decodeValue:function(b){var e=/^(a|n|d|b|s|o)\:(.*)$/;var g=e.exec(unescape(b));if(!g||!g[1])return;var d=g[1];var a=g[2];switch(d){case"n":return parseFloat(a);case"d":return new Date(Date.parse(a));case"b":return a=="1";case"a":var c=[];if(a!="")Ext.each(a.split("^"),function(h){c.push(this.decodeValue(h))},this);return c;case"o":var c={};if(a!="")Ext.each(a.split("^"),function(i){var h=i.split("=");c[h[0]]=this.decodeValue(h[1])},this);return c;default:return a}},encodeValue:function(c){var b;if(typeof c=="number")b="n:"+c;else if(typeof c=="boolean")b="b:"+(c?"1":"0");else if(Ext.isDate(c))b="d:"+c.toGMTString();else if(Ext.isArray(c)){var g="";for(var e=0,a=c.length;e<a;e++){g+=this.encodeValue(c[e]);if(e!=a-1)g+="^"}b="a:"+g}else if(typeof c=="object"){var g="";for(var d in c)if(typeof c[d]!="function"&&c[d]!==undefined)g+=d+"="+this.encodeValue(c[d])+"^";b="o:"+g.substring(0,g.length-1)}else b="s:"+c;return escape(b)}});Ext.state.Manager=function(){var a=new Ext.state.Provider;return{setProvider:function(b){a=b},get:function(c,b){return a.get(c,b)},set:function(b,c){a.set(b,c)},clear:function(b){a.clear(b)},getProvider:function(){return a}}}();Ext.state.CookieProvider=function(a){Ext.state.CookieProvider.superclass.constructor.call(this);this.path="/";this.expires=new Date((new Date).getTime()+1e3*60*60*24*7);this.domain=null;this.secure=false;Ext.apply(this,a);this.state=this.readCookies()};Ext.extend(Ext.state.CookieProvider,Ext.state.Provider,{set:function(a,b){if(typeof b=="undefined"||b===null){this.clear(a);return}this.setCookie(a,b);Ext.state.CookieProvider.superclass.set.call(this,a,b)},clear:function(a){this.clearCookie(a);Ext.state.CookieProvider.superclass.clear.call(this,a)},readCookies:function(){var d={};var h=document.cookie+";";var b=/\s?(.*?)=(.*?);/g;var g;while((g=b.exec(h))!=null){var a=g[1];var e=g[2];if(a&&a.substring(0,3)=="ys-")d[a.substr(3)]=this.decodeValue(e)}return d},setCookie:function(a,b){document.cookie="ys-"+a+"="+this.encodeValue(b)+(this.expires==null?"":"; expires="+this.expires.toGMTString())+(this.path==null?"":"; path="+this.path)+(this.domain==null?"":"; domain="+this.domain)+(this.secure==true?"; secure":"")},clearCookie:function(a){document.cookie="ys-"+a+"=null; expires=Thu, 01-Jan-70 00:00:01 GMT"+(this.path==null?"":"; path="+this.path)+(this.domain==null?"":"; domain="+this.domain)+(this.secure==true?"; secure":"")}});Ext.DataView=Ext.extend(Ext.BoxComponent,{selectedClass:"x-view-selected",emptyText:"",deferEmptyText:true,trackOver:false,blockRefresh:false,last:false,initComponent:function(){Ext.DataView.superclass.initComponent.call(this);if(Ext.isString(this.tpl)||Ext.isArray(this.tpl))this.tpl=new Ext.XTemplate(this.tpl);this.addEvents("beforeclick","click","mouseenter","mouseleave","containerclick","dblclick","contextmenu","containercontextmenu","selectionchange","beforeselect");this.store=Ext.StoreMgr.lookup(this.store);this.all=new Ext.CompositeElementLite;this.selected=new Ext.CompositeElementLite},afterRender:function(){Ext.DataView.superclass.afterRender.call(this);this.mon(this.getTemplateTarget(),{click:this.onClick,dblclick:this.onDblClick,contextmenu:this.onContextMenu,scope:this});if(this.overClass||this.trackOver)this.mon(this.getTemplateTarget(),{mouseover:this.onMouseOver,mouseout:this.onMouseOut,scope:this});if(this.store)this.bindStore(this.store,true)},refresh:function(){this.clearSelections(false,true);var b=this.getTemplateTarget();b.update("");var a=this.store.getRange();if(a.length<1){if(!this.deferEmptyText||this.hasSkippedEmptyText)b.update(this.emptyText);this.all.clear()}else{this.tpl.overwrite(b,this.collectData(a,0));this.all.fill(Ext.query(this.itemSelector,b.dom));this.updateIndexes(0)}this.hasSkippedEmptyText=true},getTemplateTarget:function(){return this.el},prepareData:function(a){return a},collectData:function(b,e){var d=[];for(var c=0,a=b.length;c<a;c++)d[d.length]=this.prepareData(b[c].data,e+c,b[c]);return d},bufferRender:function(a){var b=document.createElement("div");this.tpl.overwrite(b,this.collectData(a));return Ext.query(this.itemSelector,b)},onUpdate:function(g,a){var b=this.store.indexOf(a);if(b>-1){var e=this.isSelected(b);var c=this.all.elements[b];var d=this.bufferRender([a],b)[0];this.all.replaceElement(b,d,true);if(e){this.selected.replaceElement(c,d);this.all.item(b).addClass(this.selectedClass)}this.updateIndexes(b,b)}},onAdd:function(g,d,e){if(this.all.getCount()===0){this.refresh();return}var c=this.bufferRender(d,e),h,b=this.all.elements;if(e<this.all.getCount()){h=this.all.item(e).insertSibling(c,"before",true);b.splice.apply(b,[e,0].concat(c))}else{h=this.all.last().insertSibling(c,"after",true);b.push.apply(b,c)}this.updateIndexes(e)},onRemove:function(c,a,b){this.deselect(b);this.all.removeElement(b,true);this.updateIndexes(b);if(this.store.getCount()===0)this.refresh()},refreshNode:function(a){this.onUpdate(this.store,this.store.getAt(a))},updateIndexes:function(d,c){var b=this.all.elements;d=d||0;c=c||(c===0?0:b.length-1);for(var a=d;a<=c;a++)b[a].viewIndex=a},getStore:function(){return this.store},bindStore:function(a,b){if(!b&&this.store){if(a!==this.store&&this.store.autoDestroy)this.store.destroy();else{this.store.un("beforeload",this.onBeforeLoad,this);this.store.un("datachanged",this.onDataChanged,this);this.store.un("add",this.onAdd,this);this.store.un("remove",this.onRemove,this);this.store.un("update",this.onUpdate,this);this.store.un("clear",this.refresh,this)}if(!a)this.store=null}if(a){a=Ext.StoreMgr.lookup(a);a.on({scope:this,beforeload:this.onBeforeLoad,datachanged:this.onDataChanged,add:this.onAdd,remove:this.onRemove,update:this.onUpdate,clear:this.refresh})}this.store=a;if(a)this.refresh()},onDataChanged:function(){if(this.blockRefresh!==true)this.refresh.apply(this,arguments)},findItemFromChild:function(a){return Ext.fly(a).findParent(this.itemSelector,this.getTemplateTarget())},onClick:function(c){var b=c.getTarget(this.itemSelector,this.getTemplateTarget());if(b){var a=this.indexOf(b);if(this.onItemClick(b,a,c)!==false)this.fireEvent("click",this,a,b,c)}else if(this.fireEvent("containerclick",this,c)!==false)this.onContainerClick(c)},onContainerClick:function(a){this.clearSelections()},onContextMenu:function(b){var a=b.getTarget(this.itemSelector,this.getTemplateTarget());if(a)this.fireEvent("contextmenu",this,this.indexOf(a),a,b);else this.fireEvent("containercontextmenu",this,b)},onDblClick:function(b){var a=b.getTarget(this.itemSelector,this.getTemplateTarget());if(a)this.fireEvent("dblclick",this,this.indexOf(a),a,b)},onMouseOver:function(b){var a=b.getTarget(this.itemSelector,this.getTemplateTarget());if(a&&a!==this.lastItem){this.lastItem=a;Ext.fly(a).addClass(this.overClass);this.fireEvent("mouseenter",this,this.indexOf(a),a,b)}},onMouseOut:function(a){if(this.lastItem)if(!a.within(this.lastItem,true,true)){Ext.fly(this.lastItem).removeClass(this.overClass);this.fireEvent("mouseleave",this,this.indexOf(this.lastItem),this.lastItem,a);delete this.lastItem}},onItemClick:function(b,a,c){if(this.fireEvent("beforeclick",this,a,b,c)===false)return false;if(this.multiSelect){this.doMultiSelection(b,a,c);c.preventDefault()}else if(this.singleSelect){this.doSingleSelection(b,a,c);c.preventDefault()}return true},doSingleSelection:function(b,a,c){if(c.ctrlKey&&this.isSelected(a))this.deselect(a);else this.select(a,false)},doMultiSelection:function(c,a,d){if(d.shiftKey&&this.last!==false){var b=this.last;this.selectRange(b,a,d.ctrlKey);this.last=b}else if((d.ctrlKey||this.simpleSelect)&&this.isSelected(a))this.deselect(a);else this.select(a,d.ctrlKey||d.shiftKey||this.simpleSelect)},getSelectionCount:function(){return this.selected.getCount()},getSelectedNodes:function(){return this.selected.elements},getSelectedIndexes:function(){var b=[],d=this.selected.elements;for(var c=0,a=d.length;c<a;c++)b.push(d[c].viewIndex);return b},getSelectedRecords:function(){var d=[],c=this.selected.elements;for(var b=0,a=c.length;b<a;b++)d[d.length]=this.store.getAt(c[b].viewIndex);return d},getRecords:function(b){var e=[],d=b;for(var c=0,a=d.length;c<a;c++)e[e.length]=this.store.getAt(d[c].viewIndex);return e},getRecord:function(a){return this.store.getAt(a.viewIndex)},clearSelections:function(a,b){if((this.multiSelect||this.singleSelect)&&this.selected.getCount()>0){if(!b)this.selected.removeClass(this.selectedClass);this.selected.clear();this.last=false;if(!a)this.fireEvent("selectionchange",this,this.selected.elements)}},isSelected:function(a){return this.selected.contains(this.getNode(a))},deselect:function(a){if(this.isSelected(a)){a=this.getNode(a);this.selected.removeElement(a);if(this.last==a.viewIndex)this.last=false;Ext.fly(a).removeClass(this.selectedClass);this.fireEvent("selectionchange",this,this.selected.elements)}},select:function(d,g,b){if(Ext.isArray(d)){if(!g)this.clearSelections(true);for(var c=0,a=d.length;c<a;c++)this.select(d[c],true,true);if(!b)this.fireEvent("selectionchange",this,this.selected.elements)}else{var e=this.getNode(d);if(!g)this.clearSelections(true);if(e&&!this.isSelected(e))if(this.fireEvent("beforeselect",this,e,this.selected.elements)!==false){Ext.fly(e).addClass(this.selectedClass);this.selected.add(e);this.last=e.viewIndex;if(!b)this.fireEvent("selectionchange",this,this.selected.elements)}}},selectRange:function(c,a,b){if(!b)this.clearSelections(true);this.select(this.getNodes(c,a),true)},getNode:function(b){if(Ext.isString(b))return document.getElementById(b);else if(Ext.isNumber(b))return this.all.elements[b];else if(b instanceof Ext.data.Record){var a=this.store.indexOf(b);return this.all.elements[a]}return b},getNodes:function(e,a){var d=this.all.elements;e=e||0;a=!Ext.isDefined(a)?Math.max(d.length-1,0):a;var b=[],c;if(e<=a)for(c=e;c<=a&&d[c];c++)b.push(d[c]);else for(c=e;c>=a&&d[c];c--)b.push(d[c]);return b},indexOf:function(a){a=this.getNode(a);if(Ext.isNumber(a.viewIndex))return a.viewIndex;return this.all.indexOf(a)},onBeforeLoad:function(){if(this.loadingText){this.clearSelections(false,true);this.getTemplateTarget().update('<div class="loading-indicator">'+this.loadingText+"</div>");this.all.clear()}},onDestroy:function(){this.all.clear();this.selected.clear();Ext.DataView.superclass.onDestroy.call(this);this.bindStore(null)}});Ext.DataView.prototype.setStore=Ext.DataView.prototype.bindStore;Ext.reg("dataview",Ext.DataView);Ext.list.ListView=Ext.extend(Ext.DataView,{itemSelector:"dl",selectedClass:"x-list-selected",overClass:"x-list-over",scrollOffset:undefined,columnResize:true,columnSort:true,maxWidth:Ext.isIE?99:100,initComponent:function(){if(this.columnResize){this.colResizer=new Ext.list.ColumnResizer(this.colResizer);this.colResizer.init(this)}if(this.columnSort){this.colSorter=new Ext.list.Sorter(this.columnSort);this.colSorter.init(this)}if(!this.internalTpl)this.internalTpl=new Ext.XTemplate('<div class="x-list-header"><div class="x-list-header-inner">','<tpl for="columns">','<div style="width:{[values.width*100]}%;text-align:{align};"><em unselectable="on" id="',this.id,'-xlhd-{#}">',"{header}","</em></div>","</tpl>",'<div class="x-clear"></div>',"</div></div>",'<div class="x-list-body"><div class="x-list-body-inner">',"</div></div>");if(!this.tpl)this.tpl=new Ext.XTemplate('<tpl for="rows">',"<dl>",'<tpl for="parent.columns">','<dt style="width:{[values.width*100]}%;text-align:{align};">','<em unselectable="on"<tpl if="cls"> class="{cls}</tpl>">',"{[values.tpl.apply(parent)]}","</em></dt>","</tpl>",'<div class="x-clear"></div>',"</dl>","</tpl>");var l=this.columns,h=0,k=0,m=l.length,b=[];for(var g=0;g<m;g++){var n=l[g];if(!n.isColumn){n.xtype=n.xtype?/^lv/.test(n.xtype)?n.xtype:"lv"+n.xtype:"lvcolumn";n=Ext.create(n)}if(n.width){h+=n.width*100;k++}b.push(n)}l=this.columns=b;if(k<m){var d=m-k;if(h<this.maxWidth){var a=(this.maxWidth-h)/d/100;for(var e=0;e<m;e++){var n=l[e];if(!n.width)n.width=a}}}Ext.list.ListView.superclass.initComponent.call(this)},onRender:function(){this.autoEl={cls:"x-list-wrap"};Ext.list.ListView.superclass.onRender.apply(this,arguments);this.internalTpl.overwrite(this.el,{columns:this.columns});this.innerBody=Ext.get(this.el.dom.childNodes[1].firstChild);this.innerHd=Ext.get(this.el.dom.firstChild.firstChild);if(this.hideHeaders)this.el.dom.firstChild.style.display="none"},getTemplateTarget:function(){return this.innerBody},collectData:function(){var a=Ext.list.ListView.superclass.collectData.apply(this,arguments);return{columns:this.columns,rows:a}},verifyInternalSize:function(){if(this.lastSize)this.onResize(this.lastSize.width,this.lastSize.height)},onResize:function(b,d){var e=this.innerBody.dom;var g=this.innerHd.dom;if(!e)return;var c=e.parentNode;if(Ext.isNumber(b)){var a=b-Ext.num(this.scrollOffset,Ext.getScrollBarWidth());if(this.reserveScrollOffset||c.offsetWidth-c.clientWidth>10){e.style.width=a+"px";g.style.width=a+"px"}else{e.style.width=b+"px";g.style.width=b+"px";setTimeout(function(){if(c.offsetWidth-c.clientWidth>10){e.style.width=a+"px";g.style.width=a+"px"}},10)}}if(Ext.isNumber(d))c.style.height=d-g.parentNode.offsetHeight+"px"},updateIndexes:function(){Ext.list.ListView.superclass.updateIndexes.apply(this,arguments);this.verifyInternalSize()},findHeaderIndex:function(e){e=e.dom||e;var a=e.parentNode,d=a.parentNode.childNodes;for(var b=0,g;g=d[b];b++)if(g==a)return b;return-1},setHdWidths:function(){var c=this.innerHd.dom.getElementsByTagName("div");for(var b=0,d=this.columns,a=d.length;b<a;b++)c[b].style.width=d[b].width*100+"%"}});Ext.reg("listview",Ext.list.ListView);Ext.ListView=Ext.list.ListView;Ext.list.Column=Ext.extend(Object,{isColumn:true,align:"left",header:"",width:null,cls:"",constructor:function(a){if(!a.tpl)a.tpl=new Ext.XTemplate("{"+a.dataIndex+"}");else if(Ext.isString(a.tpl))a.tpl=new Ext.XTemplate(a.tpl);Ext.apply(this,a)}});Ext.reg("lvcolumn",Ext.list.Column);Ext.list.NumberColumn=Ext.extend(Ext.list.Column,{format:"0,000.00",constructor:function(a){a.tpl=a.tpl||new Ext.XTemplate("{"+a.dataIndex+':number("'+(a.format||this.format)+'")}');Ext.list.NumberColumn.superclass.constructor.call(this,a)}});Ext.reg("lvnumbercolumn",Ext.list.NumberColumn);Ext.list.DateColumn=Ext.extend(Ext.list.Column,{format:"m/d/Y",constructor:function(a){a.tpl=a.tpl||new Ext.XTemplate("{"+a.dataIndex+':date("'+(a.format||this.format)+'")}');Ext.list.DateColumn.superclass.constructor.call(this,a)}});Ext.reg("lvdatecolumn",Ext.list.DateColumn);Ext.list.BooleanColumn=Ext.extend(Ext.list.Column,{trueText:"true",falseText:"false",undefinedText:"&#160;",constructor:function(e){e.tpl=e.tpl||new Ext.XTemplate("{"+e.dataIndex+":this.format}");var b=this.trueText,d=this.falseText,a=this.undefinedText;e.tpl.format=function(c){if(c===undefined)return a;if(!c||c==="false")return d;return b};Ext.list.DateColumn.superclass.constructor.call(this,e)}});Ext.reg("lvbooleancolumn",Ext.list.BooleanColumn);Ext.list.ColumnResizer=Ext.extend(Ext.util.Observable,{minPct:.05,constructor:function(a){Ext.apply(this,a);Ext.list.ColumnResizer.superclass.constructor.call(this)},init:function(a){this.view=a;a.on("render",this.initEvents,this)},initEvents:function(a){a.mon(a.innerHd,"mousemove",this.handleHdMove,this);this.tracker=new Ext.dd.DragTracker({onBeforeStart:this.onBeforeStart.createDelegate(this),onStart:this.onStart.createDelegate(this),onDrag:this.onDrag.createDelegate(this),onEnd:this.onEnd.createDelegate(this),tolerance:3,autoStart:300});this.tracker.initEl(a.innerHd);a.on("beforedestroy",this.tracker.destroy,this.tracker)},handleHdMove:function(j,g){var b=5,a=j.getPageX(),i=j.getTarget("em",3,true);if(i){var h=i.getRegion(),d=i.dom.style,c=i.dom.parentNode;if(a-h.left<=b&&c!=c.parentNode.firstChild){this.activeHd=Ext.get(c.previousSibling.firstChild);d.cursor=Ext.isWebKit?"e-resize":"col-resize"}else if(h.right-a<=b&&c!=c.parentNode.lastChild.previousSibling){this.activeHd=i;d.cursor=Ext.isWebKit?"w-resize":"col-resize"}else{delete this.activeHd;d.cursor=""}}},onBeforeStart:function(a){this.dragHd=this.activeHd;return!!this.dragHd},onStart:function(c){this.view.disableHeaders=true;this.proxy=this.view.el.createChild({cls:"x-list-resizer"});this.proxy.setHeight(this.view.el.getHeight());var a=this.tracker.getXY()[0],b=this.view.innerHd.getWidth();this.hdX=this.dragHd.getX();this.hdIndex=this.view.findHeaderIndex(this.dragHd);this.proxy.setX(this.hdX);this.proxy.setWidth(a-this.hdX);this.minWidth=b*this.minPct;this.maxWidth=b-this.minWidth*(this.view.columns.length-1-this.hdIndex)},onDrag:function(b){var a=this.tracker.getXY()[0];this.proxy.setWidth((a-this.hdX).constrain(this.minWidth,this.maxWidth))},onEnd:function(m){var k=this.proxy.getWidth();this.proxy.remove();var j=this.hdIndex,o=this.view,h=o.columns,l=h.length,q=this.view.innerHd.getWidth(),g=this.minPct*100,r=Math.ceil(k*o.maxWidth/q),p=h[j].width*100-r,a=Math.floor(p/(l-1-j)),n=p-a*(l-1-j);for(var d=j+1;d<l;d++){var c=h[d].width*100+a,b=Math.max(g,c);if(c!=b)n+=c-b;h[d].width=b/100}h[j].width=r/100;h[j+1].width+=n/100;delete this.dragHd;o.setHdWidths();o.refresh();setTimeout(function(){o.disableHeaders=false},100)}});Ext.ListView.ColumnResizer=Ext.list.ColumnResizer;Ext.list.Sorter=Ext.extend(Ext.util.Observable,{sortClasses:["sort-asc","sort-desc"],constructor:function(a){Ext.apply(this,a);Ext.list.Sorter.superclass.constructor.call(this)},init:function(a){this.view=a;a.on("render",this.initEvents,this)},initEvents:function(a){a.mon(a.innerHd,"click",this.onHdClick,this);a.innerHd.setStyle("cursor","pointer");a.mon(a.store,"datachanged",this.updateSortState,this);this.updateSortState.defer(10,this,[a.store])},updateSortState:function(c){var g=c.getSortState();if(!g)return;this.sortState=g;var e=this.view.columns,h=-1;for(var d=0,a=e.length;d<a;d++)if(e[d].dataIndex==g.field){h=d;break}if(h!=-1){var b=g.direction;this.updateSortIcon(h,b)}},updateSortIcon:function(b,a){var d=this.sortClasses;var c=this.view.innerHd.select("em").removeClass(d);c.item(b).addClass(d[a=="DESC"?1:0])},onHdClick:function(c){var b=c.getTarget("em",3);if(b&&!this.view.disableHeaders){var a=this.view.findHeaderIndex(b);this.view.store.sort(this.view.columns[a].dataIndex)}}});Ext.ListView.Sorter=Ext.list.Sorter;Ext.TabPanel=Ext.extend(Ext.Panel,{deferredRender:true,tabWidth:120,minTabWidth:30,resizeTabs:false,enableTabScroll:false,scrollIncrement:0,scrollRepeatInterval:400,scrollDuration:.35,animScroll:true,tabPosition:"top",baseCls:"x-tab-panel",autoTabs:false,autoTabSelector:"div.x-tab",activeTab:undefined,tabMargin:2,plain:false,wheelIncrement:20,idDelimiter:"__",itemCls:"x-tab-item",elements:"body",headerAsText:false,frame:false,hideBorders:true,initComponent:function(){this.frame=false;Ext.TabPanel.superclass.initComponent.call(this);this.addEvents("beforetabchange","tabchange","contextmenu");this.setLayout(new Ext.layout.CardLayout(Ext.apply({layoutOnCardChange:this.layoutOnTabChange,deferredRender:this.deferredRender},this.layoutConfig)));if(this.tabPosition=="top"){this.elements+=",header";this.stripTarget="header"}else{this.elements+=",footer";this.stripTarget="footer"}if(!this.stack)this.stack=Ext.TabPanel.AccessStack();this.initItems()},onRender:function(c,a){Ext.TabPanel.superclass.onRender.call(this,c,a);if(this.plain){var g=this.tabPosition=="top"?"header":"footer";this[g].addClass("x-tab-panel-"+g+"-plain")}var b=this[this.stripTarget];this.stripWrap=b.createChild({cls:"x-tab-strip-wrap",cn:{tag:"ul",cls:"x-tab-strip x-tab-strip-"+this.tabPosition}});var e=this.tabPosition=="bottom"?this.stripWrap:null;b.createChild({cls:"x-tab-strip-spacer"},e);this.strip=new Ext.Element(this.stripWrap.dom.firstChild);this.edge=this.strip.createChild({tag:"li",cls:"x-tab-edge",cn:[{tag:"span",cls:"x-tab-strip-text",cn:"&#160;"}]});this.strip.createChild({cls:"x-clear"});this.body.addClass("x-tab-panel-body-"+this.tabPosition);if(!this.itemTpl){var d=new Ext.Template('<li class="{cls}" id="{id}"><a class="x-tab-strip-close"></a>','<a class="x-tab-right" href="#"><em class="x-tab-left">','<span class="x-tab-strip-inner"><span class="x-tab-strip-text {iconCls}">{text}</span></span>',"</em></a></li>");d.disableFormats=true;d.compile();Ext.TabPanel.prototype.itemTpl=d}this.items.each(this.initTab,this)},afterRender:function(){Ext.TabPanel.superclass.afterRender.call(this);if(this.autoTabs)this.readTabs(false);if(this.activeTab!==undefined){var a=Ext.isObject(this.activeTab)?this.activeTab:this.items.get(this.activeTab);delete this.activeTab;this.setActiveTab(a)}},initEvents:function(){Ext.TabPanel.superclass.initEvents.call(this);this.mon(this.strip,{scope:this,mousedown:this.onStripMouseDown,contextmenu:this.onStripContextMenu});if(this.enableTabScroll)this.mon(this.strip,"mousewheel",this.onWheel,this)},findTargets:function(c){var b=null,a=c.getTarget("li:not(.x-tab-edge)",this.strip);if(a){b=this.getComponent(a.id.split(this.idDelimiter)[1]);if(b.disabled)return{close:null,item:null,el:null}}return{close:c.getTarget(".x-tab-strip-close",this.strip),item:b,el:a}},onStripMouseDown:function(b){if(b.button!==0)return;b.preventDefault();var a=this.findTargets(b);if(a.close){if(a.item.fireEvent("beforeclose",a.item)!==false){a.item.fireEvent("close",a.item);this.remove(a.item)}return}if(a.item&&a.item!=this.activeTab)this.setActiveTab(a.item)},onStripContextMenu:function(b){b.preventDefault();var a=this.findTargets(b);if(a.item)this.fireEvent("contextmenu",this,a.item,b)},readTabs:function(d){if(d===true)this.items.each(function(h){this.remove(h)},this);var c=this.el.query(this.autoTabSelector);for(var b=0,a=c.length;b<a;b++){var e=c[b],g=e.getAttribute("title");e.removeAttribute("title");this.add({title:g,contentEl:e})}},initTab:function(d,b){var e=this.strip.dom.childNodes[b],g=this.getTemplateArgs(d),c=e?this.itemTpl.insertBefore(e,g):this.itemTpl.append(this.strip,g),a="x-tab-strip-over",h=Ext.get(c);h.hover(function(){if(!d.disabled)h.addClass(a)},function(){h.removeClass(a)});if(d.tabTip)h.child("span.x-tab-strip-text",true).qtip=d.tabTip;d.tabEl=c;h.select("a").on("click",function(i){if(!i.getPageX())this.onStripMouseDown(i)},this,{preventDefault:true});d.on({scope:this,disable:this.onItemDisabled,enable:this.onItemEnabled,titlechange:this.onItemTitleChanged,iconchange:this.onItemIconChanged,beforeshow:this.onBeforeShowItem})},getTemplateArgs:function(b){var a=b.closable?"x-tab-strip-closable":"";if(b.disabled)a+=" x-item-disabled";if(b.iconCls)a+=" x-tab-with-icon";if(b.tabCls)a+=" "+b.tabCls;return{id:this.id+this.idDelimiter+b.getItemId(),text:b.title,cls:a,iconCls:b.iconCls||""}},onAdd:function(b){Ext.TabPanel.superclass.onAdd.call(this,b);if(this.rendered){var a=this.items;this.initTab(b,a.indexOf(b));this.delegateUpdates()}},onBeforeAdd:function(b){var a=b.events?this.items.containsKey(b.getItemId())?b:null:this.items.get(b);if(a){this.setActiveTab(b);return false}Ext.TabPanel.superclass.onBeforeAdd.apply(this,arguments);var c=b.elements;b.elements=c?c.replace(",header",""):c;b.border=b.border===true},onRemove:function(d){var b=Ext.get(d.tabEl);if(b){b.select("a").removeAllListeners();Ext.destroy(b)}Ext.TabPanel.superclass.onRemove.call(this,d);this.stack.remove(d);delete d.tabEl;d.un("disable",this.onItemDisabled,this);d.un("enable",this.onItemEnabled,this);d.un("titlechange",this.onItemTitleChanged,this);d.un("iconchange",this.onItemIconChanged,this);d.un("beforeshow",this.onBeforeShowItem,this);if(d==this.activeTab){var a=this.stack.next();if(a)this.setActiveTab(a);else if(this.items.getCount()>0)this.setActiveTab(0);else this.setActiveTab(null)}if(!this.destroying)this.delegateUpdates()},onBeforeShowItem:function(a){if(a!=this.activeTab){this.setActiveTab(a);return false}},onItemDisabled:function(b){var a=this.getTabEl(b);if(a)Ext.fly(a).addClass("x-item-disabled");this.stack.remove(b)},onItemEnabled:function(b){var a=this.getTabEl(b);if(a)Ext.fly(a).removeClass("x-item-disabled")},onItemTitleChanged:function(b){var a=this.getTabEl(b);if(a)Ext.fly(a).child("span.x-tab-strip-text",true).innerHTML=b.title},onItemIconChanged:function(d,a,c){var b=this.getTabEl(d);if(b){b=Ext.get(b);b.child("span.x-tab-strip-text").replaceClass(c,a);b[Ext.isEmpty(a)?"removeClass":"addClass"]("x-tab-with-icon")}},getTabEl:function(a){var b=this.getComponent(a);return b?b.tabEl:null},onResize:function(){Ext.TabPanel.superclass.onResize.apply(this,arguments);this.delegateUpdates()},beginUpdate:function(){this.suspendUpdates=true},endUpdate:function(){this.suspendUpdates=false;this.delegateUpdates()},hideTabStripItem:function(b){b=this.getComponent(b);var a=this.getTabEl(b);if(a){a.style.display="none";this.delegateUpdates()}this.stack.remove(b)},unhideTabStripItem:function(b){b=this.getComponent(b);var a=this.getTabEl(b);if(a){a.style.display="";this.delegateUpdates()}},delegateUpdates:function(){if(this.suspendUpdates)return;if(this.resizeTabs&&this.rendered)this.autoSizeTabs();if(this.enableTabScroll&&this.rendered)this.autoScrollTabs()},autoSizeTabs:function(){var h=this.items.length,b=this.tabPosition!="bottom"?"header":"footer",c=this[b].dom.offsetWidth,a=this[b].dom.clientWidth;if(!this.resizeTabs||h<1||!a)return;var k=Math.max(Math.min(Math.floor((a-4)/h)-this.tabMargin,this.tabWidth),this.minTabWidth);this.lastTabWidth=k;var m=this.strip.query("li:not(.x-tab-edge)");for(var e=0,j=m.length;e<j;e++){var l=m[e],n=Ext.fly(l).child(".x-tab-strip-inner",true),g=l.offsetWidth,d=n.offsetWidth;n.style.width=k-(g-d)+"px"}},adjustBodyWidth:function(a){if(this.header)this.header.setWidth(a);if(this.footer)this.footer.setWidth(a);return a},setActiveTab:function(c){c=this.getComponent(c);if(this.fireEvent("beforetabchange",this,c,this.activeTab)===false)return;if(!this.rendered){this.activeTab=c;return}if(this.activeTab!=c){if(this.activeTab){var a=this.getTabEl(this.activeTab);if(a)Ext.fly(a).removeClass("x-tab-strip-active")}this.activeTab=c;if(c){var b=this.getTabEl(c);Ext.fly(b).addClass("x-tab-strip-active");this.stack.add(c);this.layout.setActiveItem(c);if(this.scrolling)this.scrollToTab(c,this.animScroll)}this.fireEvent("tabchange",this,c)}},getActiveTab:function(){return this.activeTab||null},getItem:function(a){return this.getComponent(a)},autoScrollTabs:function(){this.pos=this.tabPosition=="bottom"?this.footer:this.header;var h=this.items.length,d=this.pos.dom.offsetWidth,c=this.pos.dom.clientWidth,g=this.stripWrap,e=g.dom,b=e.offsetWidth,i=this.getScrollPos(),a=this.edge.getOffsetsTo(this.stripWrap)[0]+i;if(!this.enableTabScroll||h<1||b<20)return;if(a<=c){e.scrollLeft=0;g.setWidth(c);if(this.scrolling){this.scrolling=false;this.pos.removeClass("x-tab-scrolling");this.scrollLeft.hide();this.scrollRight.hide();if(Ext.isAir||Ext.isWebKit){e.style.marginLeft="";e.style.marginRight=""}}}else{if(!this.scrolling){this.pos.addClass("x-tab-scrolling");if(Ext.isAir||Ext.isWebKit){e.style.marginLeft="18px";e.style.marginRight="18px"}}c-=g.getMargins("lr");g.setWidth(c>20?c:20);if(!this.scrolling)if(!this.scrollLeft)this.createScrollers();else{this.scrollLeft.show();this.scrollRight.show()}this.scrolling=true;if(i>a-c)e.scrollLeft=a-c;else this.scrollToTab(this.activeTab,false);this.updateScrollButtons()}},createScrollers:function(){this.pos.addClass("x-tab-scrolling-"+this.tabPosition);var c=this.stripWrap.dom.offsetHeight;var a=this.pos.insertFirst({cls:"x-tab-scroller-left"});a.setHeight(c);a.addClassOnOver("x-tab-scroller-left-over");this.leftRepeater=new Ext.util.ClickRepeater(a,{interval:this.scrollRepeatInterval,handler:this.onScrollLeft,scope:this});this.scrollLeft=a;var b=this.pos.insertFirst({cls:"x-tab-scroller-right"});b.setHeight(c);b.addClassOnOver("x-tab-scroller-right-over");this.rightRepeater=new Ext.util.ClickRepeater(b,{interval:this.scrollRepeatInterval,handler:this.onScrollRight,scope:this});this.scrollRight=b},getScrollWidth:function(){return this.edge.getOffsetsTo(this.stripWrap)[0]+this.getScrollPos()},getScrollPos:function(){return parseInt(this.stripWrap.dom.scrollLeft,10)||0},getScrollArea:function(){return parseInt(this.stripWrap.dom.clientWidth,10)||0},getScrollAnim:function(){return{duration:this.scrollDuration,callback:this.updateScrollButtons,scope:this}},getScrollIncrement:function(){return this.scrollIncrement||(this.resizeTabs?this.lastTabWidth+2:100)},scrollToTab:function(e,a){if(!e)return;var c=this.getTabEl(e),h=this.getScrollPos(),d=this.getScrollArea(),g=Ext.fly(c).getOffsetsTo(this.stripWrap)[0]+h,b=g+c.offsetWidth;if(g<h)this.scrollTo(g,a);else if(b>h+d)this.scrollTo(b-d,a)},scrollTo:function(b,a){this.stripWrap.scrollTo("left",b,a?this.getScrollAnim():false);if(!a)this.updateScrollButtons()},onWheel:function(g){var h=g.getWheelDelta()*this.wheelIncrement*-1;g.stopEvent();var i=this.getScrollPos(),c=i+h,a=this.getScrollWidth()-this.getScrollArea();var b=Math.max(0,Math.min(a,c));if(b!=i)this.scrollTo(b,false)},onScrollRight:function(){var a=this.getScrollWidth()-this.getScrollArea(),c=this.getScrollPos(),b=Math.min(a,c+this.getScrollIncrement());if(b!=c)this.scrollTo(b,this.animScroll)},onScrollLeft:function(){var b=this.getScrollPos(),a=Math.max(0,b-this.getScrollIncrement());if(a!=b)this.scrollTo(a,this.animScroll)},updateScrollButtons:function(){var a=this.getScrollPos();this.scrollLeft[a===0?"addClass":"removeClass"]("x-tab-scroller-left-disabled");this.scrollRight[a>=this.getScrollWidth()-this.getScrollArea()?"addClass":"removeClass"]("x-tab-scroller-right-disabled")},beforeDestroy:function(){Ext.destroy(this.leftRepeater,this.rightRepeater);this.deleteMembers("strip","edge","scrollLeft","scrollRight","stripWrap");this.activeTab=null;Ext.TabPanel.superclass.beforeDestroy.apply(this)}});Ext.reg("tabpanel",Ext.TabPanel);Ext.TabPanel.prototype.activate=Ext.TabPanel.prototype.setActiveTab;Ext.TabPanel.AccessStack=function(){var a=[];return{add:function(b){a.push(b);if(a.length>10)a.shift()},remove:function(e){var d=[];for(var c=0,b=a.length;c<b;c++)if(a[c]!=e)d.push(a[c]);a=d},next:function(){return a.pop()}}};Ext.Button=Ext.extend(Ext.BoxComponent,{hidden:false,disabled:false,pressed:false,enableToggle:false,menuAlign:"tl-bl?",type:"button",menuClassTarget:"tr:nth(2)",clickEvent:"click",handleMouseEvents:true,tooltipType:"qtip",buttonSelector:"button:first-child",scale:"small",iconAlign:"left",arrowAlign:"right",initComponent:function(){Ext.Button.superclass.initComponent.call(this);this.addEvents("click","toggle","mouseover","mouseout","menushow","menuhide","menutriggerover","menutriggerout");if(this.menu)this.menu=Ext.menu.MenuMgr.get(this.menu);if(Ext.isString(this.toggleGroup))this.enableToggle=true},getTemplateArgs:function(){return[this.type,"x-btn-"+this.scale+" x-btn-icon-"+this.scale+"-"+this.iconAlign,this.getMenuClass(),this.cls,this.id]},setButtonClass:function(){if(this.useSetClass){if(!Ext.isEmpty(this.oldCls))this.el.removeClass([this.oldCls,"x-btn-pressed"]);this.oldCls=this.iconCls||this.icon?this.text?"x-btn-text-icon":"x-btn-icon":"x-btn-noicon";this.el.addClass([this.oldCls,this.pressed?"x-btn-pressed":null])}},getMenuClass:function(){return this.menu?this.arrowAlign!="bottom"?"x-btn-arrow":"x-btn-arrow-bottom":""},onRender:function(c,a){if(!this.template){if(!Ext.Button.buttonTemplate){Ext.Button.buttonTemplate=new Ext.Template('<table id="{4}" cellspacing="0" class="x-btn {3}"><tbody class="{1}">','<tr><td class="x-btn-tl"><i>&#160;</i></td><td class="x-btn-tc"></td><td class="x-btn-tr"><i>&#160;</i></td></tr>','<tr><td class="x-btn-ml"><i>&#160;</i></td><td class="x-btn-mc"><em class="{2}" unselectable="on"><button type="{0}"></button></em></td><td class="x-btn-mr"><i>&#160;</i></td></tr>','<tr><td class="x-btn-bl"><i>&#160;</i></td><td class="x-btn-bc"></td><td class="x-btn-br"><i>&#160;</i></td></tr>',"</tbody></table>");Ext.Button.buttonTemplate.compile()}this.template=Ext.Button.buttonTemplate}var b,d=this.getTemplateArgs();if(a)b=this.template.insertBefore(a,d,true);else b=this.template.append(c,d,true);this.btnEl=b.child(this.buttonSelector);this.mon(this.btnEl,{scope:this,focus:this.onFocus,blur:this.onBlur});this.initButtonEl(b,this.btnEl);Ext.ButtonToggleMgr.register(this)},initButtonEl:function(b,c){this.el=b;this.setIcon(this.icon);this.setText(this.text);this.setIconClass(this.iconCls);if(Ext.isDefined(this.tabIndex))c.dom.tabIndex=this.tabIndex;if(this.tooltip)this.setTooltip(this.tooltip,true);if(this.handleMouseEvents)this.mon(b,{scope:this,mouseover:this.onMouseOver,mousedown:this.onMouseDown});if(this.menu)this.mon(this.menu,{scope:this,show:this.onMenuShow,hide:this.onMenuHide});if(this.repeat){var a=new Ext.util.ClickRepeater(b,Ext.isObject(this.repeat)?this.repeat:{});this.mon(a,"click",this.onClick,this)}this.mon(b,this.clickEvent,this.onClick,this)},afterRender:function(){Ext.Button.superclass.afterRender.call(this);this.useSetClass=true;this.setButtonClass();this.doc=Ext.getDoc();this.doAutoWidth()},setIconClass:function(a){this.iconCls=a;if(this.el){this.btnEl.dom.className="";this.btnEl.addClass(["x-btn-text",a||""]);this.setButtonClass()}return this},setTooltip:function(b,a){if(this.rendered){if(!a)this.clearTip();if(Ext.isObject(b)){Ext.QuickTips.register(Ext.apply({target:this.btnEl.id},b));this.tooltip=b}else this.btnEl.dom[this.tooltipType]=b}else this.tooltip=b;return this},clearTip:function(){if(Ext.isObject(this.tooltip))Ext.QuickTips.unregister(this.btnEl)},beforeDestroy:function(){if(this.rendered)this.clearTip();if(this.menu&&this.destroyMenu!==false)Ext.destroy(this.menu);Ext.destroy(this.repeater)},onDestroy:function(){if(this.rendered){this.doc.un("mouseover",this.monitorMouseOver,this);this.doc.un("mouseup",this.onMouseUp,this);delete this.doc;delete this.btnEl;Ext.ButtonToggleMgr.unregister(this)}Ext.Button.superclass.onDestroy.call(this)},doAutoWidth:function(){if(this.autoWidth!==false&&this.el&&this.text&&this.width===undefined){this.el.setWidth("auto");if(Ext.isIE7&&Ext.isStrict){var a=this.btnEl;if(a&&a.getWidth()>20){a.clip();a.setWidth(Ext.util.TextMetrics.measure(a,this.text).width+a.getFrameWidth("lr"))}}if(this.minWidth)if(this.el.getWidth()<this.minWidth)this.el.setWidth(this.minWidth)}},setHandler:function(b,a){this.handler=b;this.scope=a;return this},setText:function(a){this.text=a;if(this.el){this.btnEl.update(a||"&#160;");this.setButtonClass()}this.doAutoWidth();return this},setIcon:function(a){this.icon=a;if(this.el){this.btnEl.setStyle("background-image",a?"url("+a+")":"");this.setButtonClass()}return this},getText:function(){return this.text},toggle:function(b,a){b=b===undefined?!this.pressed:!!b;if(b!=this.pressed){if(this.rendered)this.el[b?"addClass":"removeClass"]("x-btn-pressed");this.pressed=b;if(!a){this.fireEvent("toggle",this,b);if(this.toggleHandler)this.toggleHandler.call(this.scope||this,this,b)}}return this},onDisable:function(){this.onDisableChange(true)},onEnable:function(){this.onDisableChange(false)},onDisableChange:function(a){if(this.el){if(!Ext.isIE6||!this.text)this.el[a?"addClass":"removeClass"](this.disabledClass);this.el.dom.disabled=a}this.disabled=a},showMenu:function(){if(this.rendered&&this.menu){if(this.tooltip)Ext.QuickTips.getQuickTip().cancelShow(this.btnEl);if(this.menu.isVisible())this.menu.hide();this.menu.ownerCt=this;this.menu.show(this.el,this.menuAlign)}return this},hideMenu:function(){if(this.hasVisibleMenu())this.menu.hide();return this},hasVisibleMenu:function(){return this.menu&&this.menu.ownerCt==this&&this.menu.isVisible()},onClick:function(a){if(a)a.preventDefault();if(a.button!==0)return;if(!this.disabled){if(this.enableToggle&&(this.allowDepress!==false||!this.pressed))this.toggle();if(this.menu&&!this.hasVisibleMenu()&&!this.ignoreNextClick)this.showMenu();this.fireEvent("click",this,a);if(this.handler)this.handler.call(this.scope||this,this,a)}},isMenuTriggerOver:function(b,a){return this.menu&&!a},isMenuTriggerOut:function(b,a){return this.menu&&!a},onMouseOver:function(b){if(!this.disabled){var a=b.within(this.el,true);if(!a){this.el.addClass("x-btn-over");if(!this.monitoringMouseOver){this.doc.on("mouseover",this.monitorMouseOver,this);this.monitoringMouseOver=true}this.fireEvent("mouseover",this,b)}if(this.isMenuTriggerOver(b,a))this.fireEvent("menutriggerover",this,this.menu,b)}},monitorMouseOver:function(a){if(a.target!=this.el.dom&&!a.within(this.el)){if(this.monitoringMouseOver){this.doc.un("mouseover",this.monitorMouseOver,this);this.monitoringMouseOver=false}this.onMouseOut(a)}},onMouseOut:function(b){var a=b.within(this.el)&&b.target!=this.el.dom;this.el.removeClass("x-btn-over");this.fireEvent("mouseout",this,b);if(this.isMenuTriggerOut(b,a))this.fireEvent("menutriggerout",this,this.menu,b)},focus:function(){this.btnEl.focus()},blur:function(){this.btnEl.blur()},onFocus:function(a){if(!this.disabled)this.el.addClass("x-btn-focus")},onBlur:function(a){this.el.removeClass("x-btn-focus")},getClickEl:function(b,a){return this.el},onMouseDown:function(a){if(!this.disabled&&a.button===0){this.getClickEl(a).addClass("x-btn-click");this.doc.on("mouseup",this.onMouseUp,this)}},onMouseUp:function(a){if(a.button===0){this.getClickEl(a,true).removeClass("x-btn-click");this.doc.un("mouseup",this.onMouseUp,this)}},onMenuShow:function(a){if(this.menu.ownerCt==this){this.menu.ownerCt=this;this.ignoreNextClick=0;this.el.addClass("x-btn-menu-active");this.fireEvent("menushow",this,this.menu)}},onMenuHide:function(a){if(this.menu.ownerCt==this){this.el.removeClass("x-btn-menu-active");this.ignoreNextClick=this.restoreClick.defer(250,this);this.fireEvent("menuhide",this,this.menu);delete this.menu.ownerCt}},restoreClick:function(){this.ignoreNextClick=0}});Ext.reg("button",Ext.Button);Ext.ButtonToggleMgr=function(){var a={};function b(e,j){if(j){var h=a[e.toggleGroup];for(var d=0,c=h.length;d<c;d++)if(h[d]!=e)h[d].toggle(false)}}return{register:function(c){if(!c.toggleGroup)return;var d=a[c.toggleGroup];if(!d)d=a[c.toggleGroup]=[];d.push(c);c.on("toggle",b)},unregister:function(c){if(!c.toggleGroup)return;var d=a[c.toggleGroup];if(d){d.remove(c);c.un("toggle",b)}},getPressed:function(h){var e=a[h];if(e)for(var d=0,c=e.length;d<c;d++)if(e[d].pressed===true)return e[d];return null}}}();Ext.SplitButton=Ext.extend(Ext.Button,{arrowSelector:"em",split:true,initComponent:function(){Ext.SplitButton.superclass.initComponent.call(this);this.addEvents("arrowclick")},onRender:function(){Ext.SplitButton.superclass.onRender.apply(this,arguments);if(this.arrowTooltip)this.el.child(this.arrowSelector).dom[this.tooltipType]=this.arrowTooltip},setArrowHandler:function(b,a){this.arrowHandler=b;this.scope=a},getMenuClass:function(){return"x-btn-split"+(this.arrowAlign=="bottom"?"-bottom":"")},isClickOnArrow:function(c){if(this.arrowAlign!="bottom"){var b=this.el.child("em.x-btn-split");var a=b.getRegion().right-b.getPadding("r");return c.getPageX()>a}else return c.getPageY()>this.btnEl.getRegion().bottom},onClick:function(b,a){b.preventDefault();if(!this.disabled)if(this.isClickOnArrow(b)){if(this.menu&&!this.menu.isVisible()&&!this.ignoreNextClick)this.showMenu();this.fireEvent("arrowclick",this,b);if(this.arrowHandler)this.arrowHandler.call(this.scope||this,this,b)}else{if(this.enableToggle)this.toggle();this.fireEvent("click",this,b);if(this.handler)this.handler.call(this.scope||this,this,b)}},isMenuTriggerOver:function(a){return this.menu&&a.target.tagName==this.arrowSelector},isMenuTriggerOut:function(b,a){return this.menu&&b.target.tagName!=this.arrowSelector}});Ext.reg("splitbutton",Ext.SplitButton);Ext.CycleButton=Ext.extend(Ext.SplitButton,{getItemText:function(a){if(a&&this.showText===true){var b="";if(this.prependText)b+=this.prependText;b+=a.text;return b}return undefined},setActiveItem:function(c,a){if(!Ext.isObject(c))c=this.menu.getComponent(c);if(c){if(!this.rendered){this.text=this.getItemText(c);this.iconCls=c.iconCls}else{var b=this.getItemText(c);if(b)this.setText(b);this.setIconClass(c.iconCls)}this.activeItem=c;if(!c.checked)c.setChecked(true,false);if(this.forceIcon)this.setIconClass(this.forceIcon);if(!a)this.fireEvent("change",this,c)}},getActiveItem:function(){return this.activeItem},initComponent:function(){this.addEvents("change");if(this.changeHandler){this.on("change",this.changeHandler,this.scope||this);delete this.changeHandler}this.itemCount=this.items.length;this.menu={cls:"x-cycle-menu",items:[]};var a=0;Ext.each(this.items,function(c,b){Ext.apply(c,{group:c.group||this.id,itemIndex:b,checkHandler:this.checkHandler,scope:this,checked:c.checked||false});this.menu.items.push(c);if(c.checked)a=b},this);Ext.CycleButton.superclass.initComponent.call(this);this.on("click",this.toggleSelected,this);this.setActiveItem(a,true)},checkHandler:function(a,b){if(b)this.setActiveItem(a)},toggleSelected:function(){var a=this.menu;a.render();if(!a.hasLayout)a.doLayout();var d,b;for(var c=1;c<this.itemCount;c++){d=(this.activeItem.itemIndex+c)%this.itemCount;b=a.items.itemAt(d);if(!b.disabled){b.setChecked(true);break}}}});Ext.reg("cycle",Ext.CycleButton);Ext.Toolbar=function(a){if(Ext.isArray(a))a={items:a,layout:"toolbar"};else{a=Ext.apply({layout:"toolbar"},a);if(a.buttons)a.items=a.buttons}Ext.Toolbar.superclass.constructor.call(this,a)};(function(){var a=Ext.Toolbar;Ext.extend(a,Ext.Container,{defaultType:"button",enableOverflow:false,trackMenus:true,internalDefaults:{removeMode:"container",hideParent:true},toolbarCls:"x-toolbar",initComponent:function(){a.superclass.initComponent.call(this);this.addEvents("overflowchange")},onRender:function(c,b){if(!this.el){if(!this.autoCreate)this.autoCreate={cls:this.toolbarCls+" x-small-editor"};this.el=c.createChild(Ext.apply({id:this.id},this.autoCreate),b);Ext.Toolbar.superclass.onRender.apply(this,arguments)}},lookupComponent:function(b){if(Ext.isString(b)){if(b=="-")b=new a.Separator;else if(b==" ")b=new a.Spacer;else if(b=="->")b=new a.Fill;else b=new a.TextItem(b);this.applyDefaults(b)}else if(b.isFormField||b.render)b=this.createComponent(b);else if(b.tag)b=new a.Item({autoEl:b});else if(b.tagName)b=new a.Item({el:b});else if(Ext.isObject(b))b=b.xtype?this.createComponent(b):this.constructButton(b);return b},applyDefaults:function(e){if(!Ext.isString(e)){e=Ext.Toolbar.superclass.applyDefaults.call(this,e);var b=this.internalDefaults;if(e.events){Ext.applyIf(e.initialConfig,b);Ext.apply(e,b)}else Ext.applyIf(e,b)}return e},addSeparator:function(){return this.add(new a.Separator)},addSpacer:function(){return this.add(new a.Spacer)},addFill:function(){this.add(new a.Fill)},addElement:function(b){return this.addItem(new a.Item({el:b}))},addItem:function(b){return this.add.apply(this,arguments)},addButton:function(c){if(Ext.isArray(c)){var e=[];for(var d=0,b=c.length;d<b;d++)e.push(this.addButton(c[d]));return e}return this.add(this.constructButton(c))},addText:function(b){return this.addItem(new a.TextItem(b))},addDom:function(b){return this.add(new a.Item({autoEl:b}))},addField:function(b){return this.add(b)},insertButton:function(c,g){if(Ext.isArray(g)){var e=[];for(var d=0,b=g.length;d<b;d++)e.push(this.insertButton(c+d,g[d]));return e}return Ext.Toolbar.superclass.insert.call(this,c,g)},trackMenu:function(c,b){if(this.trackMenus&&c.menu){var d=b?"mun":"mon";this[d](c,"menutriggerover",this.onButtonTriggerOver,this);this[d](c,"menushow",this.onButtonMenuShow,this);this[d](c,"menuhide",this.onButtonMenuHide,this)}},constructButton:function(d){var c=d.events?d:this.createComponent(d,d.split?"splitbutton":this.defaultType);return c},onAdd:function(b){Ext.Toolbar.superclass.onAdd.call(this);this.trackMenu(b);if(this.disabled)b.disable()},onRemove:function(b){Ext.Toolbar.superclass.onRemove.call(this);this.trackMenu(b,true)},onDisable:function(){this.items.each(function(b){if(b.disable)b.disable()})},onEnable:function(){this.items.each(function(b){if(b.enable)b.enable()})},onButtonTriggerOver:function(b){if(this.activeMenuBtn&&this.activeMenuBtn!=b){this.activeMenuBtn.hideMenu();b.showMenu();this.activeMenuBtn=b}},onButtonMenuShow:function(b){this.activeMenuBtn=b},onButtonMenuHide:function(b){delete this.activeMenuBtn}});Ext.reg("toolbar",Ext.Toolbar);a.Item=Ext.extend(Ext.BoxComponent,{hideParent:true,enable:Ext.emptyFn,disable:Ext.emptyFn,focus:Ext.emptyFn});Ext.reg("tbitem",a.Item);a.Separator=Ext.extend(a.Item,{onRender:function(c,b){this.el=c.createChild({tag:"span",cls:"xtb-sep"},b)}});Ext.reg("tbseparator",a.Separator);a.Spacer=Ext.extend(a.Item,{onRender:function(c,b){this.el=c.createChild({tag:"div",cls:"xtb-spacer",style:this.width?"width:"+this.width+"px":""},b)}});Ext.reg("tbspacer",a.Spacer);a.Fill=Ext.extend(a.Item,{render:Ext.emptyFn,isFill:true});Ext.reg("tbfill",a.Fill);a.TextItem=Ext.extend(a.Item,{constructor:function(b){a.TextItem.superclass.constructor.call(this,Ext.isString(b)?{text:b}:b)},onRender:function(c,b){this.autoEl={cls:"xtb-text",html:this.text||""};a.TextItem.superclass.onRender.call(this,c,b)},setText:function(b){if(this.rendered)this.el.update(b);else this.text=b}});Ext.reg("tbtext",a.TextItem);a.Button=Ext.extend(Ext.Button,{});a.SplitButton=Ext.extend(Ext.SplitButton,{});Ext.reg("tbbutton",a.Button);Ext.reg("tbsplit",a.SplitButton)})();Ext.ButtonGroup=Ext.extend(Ext.Panel,{baseCls:"x-btn-group",layout:"table",defaultType:"button",frame:true,internalDefaults:{removeMode:"container",hideParent:true},initComponent:function(){this.layoutConfig=this.layoutConfig||{};Ext.applyIf(this.layoutConfig,{columns:this.columns});if(!this.title)this.addClass("x-btn-group-notitle");this.on("afterlayout",this.onAfterLayout,this);Ext.ButtonGroup.superclass.initComponent.call(this)},applyDefaults:function(b){b=Ext.ButtonGroup.superclass.applyDefaults.call(this,b);var a=this.internalDefaults;if(b.events){Ext.applyIf(b.initialConfig,a);Ext.apply(b,a)}else Ext.applyIf(b,a);return b},onAfterLayout:function(){var a=this.body.getFrameWidth("lr")+this.body.dom.firstChild.offsetWidth;this.body.setWidth(a);this.el.setWidth(a+this.getFrameWidth())}});Ext.reg("buttongroup",Ext.ButtonGroup);(function(){var a=Ext.Toolbar;Ext.PagingToolbar=Ext.extend(Ext.Toolbar,{pageSize:20,displayMsg:"Displaying {0} - {1} of {2}",emptyMsg:"No data to display",beforePageText:"Page",afterPageText:"of {0}",firstText:"First Page",prevText:"Previous Page",nextText:"Next Page",lastText:"Last Page",refreshText:"Refresh",initComponent:function(){var c=[this.first=new a.Button({tooltip:this.firstText,overflowText:this.firstText,iconCls:"x-tbar-page-first",disabled:true,handler:this.moveFirst,scope:this}),this.prev=new a.Button({tooltip:this.prevText,overflowText:this.prevText,iconCls:"x-tbar-page-prev",disabled:true,handler:this.movePrevious,scope:this}),"-",this.beforePageText,this.inputItem=new Ext.form.NumberField({cls:"x-tbar-page-number",allowDecimals:false,allowNegative:false,enableKeyEvents:true,selectOnFocus:true,submitValue:false,listeners:{scope:this,keydown:this.onPagingKeyDown,blur:this.onPagingBlur}}),this.afterTextItem=new a.TextItem({text:String.format(this.afterPageText,1)}),"-",this.next=new a.Button({tooltip:this.nextText,overflowText:this.nextText,iconCls:"x-tbar-page-next",disabled:true,handler:this.moveNext,scope:this}),this.last=new a.Button({tooltip:this.lastText,overflowText:this.lastText,iconCls:"x-tbar-page-last",disabled:true,handler:this.moveLast,scope:this}),"-",this.refresh=new a.Button({tooltip:this.refreshText,overflowText:this.refreshText,iconCls:"x-tbar-loading",handler:this.doRefresh,scope:this})];var b=this.items||this.buttons||[];if(this.prependButtons)this.items=b.concat(c);else this.items=c.concat(b);delete this.buttons;if(this.displayInfo){this.items.push("->");this.items.push(this.displayItem=new a.TextItem({}))}Ext.PagingToolbar.superclass.initComponent.call(this);this.addEvents("change","beforechange");this.on("afterlayout",this.onFirstLayout,this,{single:true});this.cursor=0;this.bindStore(this.store,true)},onFirstLayout:function(){if(this.dsLoaded)this.onLoad.apply(this,this.dsLoaded)},updateInfo:function(){if(this.displayItem){var b=this.store.getCount();var c=b==0?this.emptyMsg:String.format(this.displayMsg,this.cursor+1,this.cursor+b,this.store.getTotalCount());this.displayItem.setText(c)}},onLoad:function(b,e,j){if(!this.rendered){this.dsLoaded=[b,e,j];return}var g=this.getParams();this.cursor=j.params&&j.params[g.start]?j.params[g.start]:0;var i=this.getPageData(),c=i.activePage,h=i.pages;this.afterTextItem.setText(String.format(this.afterPageText,i.pages));this.inputItem.setValue(c);this.first.setDisabled(c==1);this.prev.setDisabled(c==1);this.next.setDisabled(c==h);this.last.setDisabled(c==h);this.refresh.enable();this.updateInfo();this.fireEvent("change",this,i)},getPageData:function(){var b=this.store.getTotalCount();return{total:b,activePage:Math.ceil((this.cursor+this.pageSize)/this.pageSize),pages:b<this.pageSize?1:Math.ceil(b/this.pageSize)}},changePage:function(b){this.doLoad(((b-1)*this.pageSize).constrain(0,this.store.getTotalCount()))},onLoadError:function(){if(!this.rendered)return;this.refresh.enable()},readPage:function(e){var b=this.inputItem.getValue(),c;if(!b||isNaN(c=parseInt(b,10))){this.inputItem.setValue(e.activePage);return false}return c},onPagingFocus:function(){this.inputItem.select()},onPagingBlur:function(b){this.inputItem.setValue(this.getPageData().activePage)},onPagingKeyDown:function(i,h){var c=h.getKey(),j=this.getPageData(),g;if(c==h.RETURN){h.stopEvent();g=this.readPage(j);if(g!==false){g=Math.min(Math.max(1,g),j.pages)-1;this.doLoad(g*this.pageSize)}}else if(c==h.HOME||c==h.END){h.stopEvent();g=c==h.HOME?1:j.pages;i.setValue(g)}else if(c==h.UP||c==h.PAGEUP||c==h.DOWN||c==h.PAGEDOWN){h.stopEvent();if(g=this.readPage(j)){var b=h.shiftKey?10:1;if(c==h.DOWN||c==h.PAGEDOWN)b*=-1;g+=b;if(g>=1&g<=j.pages)i.setValue(g)}}},getParams:function(){return this.paramNames||this.store.paramNames},beforeLoad:function(){if(this.rendered&&this.refresh)this.refresh.disable()},doLoad:function(d){var c={},b=this.getParams();c[b.start]=d;c[b.limit]=this.pageSize;if(this.fireEvent("beforechange",this,c)!==false)this.store.load({params:c})},moveFirst:function(){this.doLoad(0)},movePrevious:function(){this.doLoad(Math.max(0,this.cursor-this.pageSize))},moveNext:function(){this.doLoad(this.cursor+this.pageSize)},moveLast:function(){var c=this.store.getTotalCount(),b=c%this.pageSize;this.doLoad(b?c-b:c-this.pageSize)},doRefresh:function(){this.doLoad(this.cursor)},bindStore:function(c,d){var b;if(!d&&this.store){if(c!==this.store&&this.store.autoDestroy)this.store.destroy();else{this.store.un("beforeload",this.beforeLoad,this);this.store.un("load",this.onLoad,this);this.store.un("exception",this.onLoadError,this)}if(!c)this.store=null}if(c){c=Ext.StoreMgr.lookup(c);c.on({scope:this,beforeload:this.beforeLoad,load:this.onLoad,exception:this.onLoadError});b=true}this.store=c;if(b)this.onLoad(c,null,{})},unbind:function(b){this.bindStore(null)},bind:function(b){this.bindStore(b)},onDestroy:function(){this.bindStore(null);Ext.PagingToolbar.superclass.onDestroy.call(this)}})})();Ext.reg("paging",Ext.PagingToolbar);Ext.History=function(){var e,c;var k=false;var d;function g(){var l=top.location.href,m=l.indexOf("#");return m>=0?l.substr(m+1):null}function a(){c.value=d}function h(l){d=l;Ext.History.fireEvent("change",l)}function i(m){var l=['<html><body><div id="state">',Ext.util.Format.htmlEncode(m),"</div></body></html>"].join("");try{var o=e.contentWindow.document;o.open();o.write(l);o.close();return true}catch(n){return false}}function b(){if(!e.contentWindow||!e.contentWindow.document){setTimeout(b,10);return}var o=e.contentWindow.document;var m=o.getElementById("state");var l=m?m.innerText:null;var n=g();setInterval(function(){o=e.contentWindow.document;m=o.getElementById("state");var q=m?m.innerText:null;var p=g();if(q!==l){l=q;h(l);top.location.hash=l;n=l;a()}else if(p!==n){n=p;i(p)}},50);k=true;Ext.History.fireEvent("ready",Ext.History)}function j(){d=c.value?c.value:g();if(Ext.isIE)b();else{var l=g();setInterval(function(){var m=g();if(m!==l){l=m;h(l);a()}},50);k=true;Ext.History.fireEvent("ready",Ext.History)}}return{fieldId:"x-history-field",iframeId:"x-history-frame",events:{},init:function(m,l){if(k){Ext.callback(m,l,[this]);return}if(!Ext.isReady){Ext.onReady(function(){Ext.History.init(m,l)});return}c=Ext.getDom(Ext.History.fieldId);if(Ext.isIE)e=Ext.getDom(Ext.History.iframeId);this.addEvents("ready","change");if(m)this.on("ready",m,l,{single:true});j()},add:function(l,m){if(m!==false)if(this.getToken()==l)return true;if(Ext.isIE)return i(l);else{top.location.hash=l;return true}},back:function(){history.go(-1)},forward:function(){history.go(1)},getToken:function(){return k?d:g()}}}();Ext.apply(Ext.History,new Ext.util.Observable);Ext.Tip=Ext.extend(Ext.Panel,{minWidth:40,maxWidth:300,shadow:"sides",defaultAlign:"tl-bl?",autoRender:true,quickShowInterval:250,frame:true,hidden:true,baseCls:"x-tip",floating:{shadow:true,shim:true,useDisplay:true,constrain:false},autoHeight:true,closeAction:"hide",initComponent:function(){Ext.Tip.superclass.initComponent.call(this);if(this.closable&&!this.title)this.elements+=",header"},afterRender:function(){Ext.Tip.superclass.afterRender.call(this);if(this.closable)this.addTool({id:"close",handler:this[this.closeAction],scope:this})},showAt:function(a){Ext.Tip.superclass.show.call(this);if(this.measureWidth!==false&&(!this.initialConfig||typeof this.initialConfig.width!="number"))this.doAutoWidth();if(this.constrainPosition)a=this.el.adjustForConstraints(a);this.setPagePosition(a[0],a[1])},doAutoWidth:function(a){a=a||0;var b=this.body.getTextWidth();if(this.title)b=Math.max(b,this.header.child("span").getTextWidth(this.title));b+=this.getFrameWidth()+(this.closable?20:0)+this.body.getPadding("lr")+a;this.setWidth(b.constrain(this.minWidth,this.maxWidth));if(Ext.isIE7&&!this.repainted){this.el.repaint();this.repainted=true}},showBy:function(a,b){if(!this.rendered)this.render(Ext.getBody());this.showAt(this.el.getAlignToXY(a,b||this.defaultAlign))},initDraggable:function(){this.dd=new Ext.Tip.DD(this,typeof this.draggable=="boolean"?null:this.draggable);this.header.addClass("x-tip-draggable")}});Ext.reg("tip",Ext.Tip);Ext.Tip.DD=function(b,a){Ext.apply(this,a);this.tip=b;Ext.Tip.DD.superclass.constructor.call(this,b.el.id,"WindowDD-"+b.id);this.setHandleElId(b.header.id);this.scroll=false};Ext.extend(Ext.Tip.DD,Ext.dd.DD,{moveOnly:true,scroll:false,headerOffsets:[100,25],startDrag:function(){this.tip.el.disableShadow()},endDrag:function(a){this.tip.el.enableShadow(true)}});Ext.ToolTip=Ext.extend(Ext.Tip,{showDelay:500,hideDelay:200,dismissDelay:5e3,trackMouse:false,anchorToTarget:true,anchorOffset:0,targetCounter:0,constrainPosition:false,initComponent:function(){Ext.ToolTip.superclass.initComponent.call(this);this.lastActive=new Date;this.initTarget(this.target);this.origAnchor=this.anchor},onRender:function(b,a){Ext.ToolTip.superclass.onRender.call(this,b,a);this.anchorCls="x-tip-anchor-"+this.getAnchorPosition();this.anchorEl=this.el.createChild({cls:"x-tip-anchor "+this.anchorCls})},afterRender:function(){Ext.ToolTip.superclass.afterRender.call(this);this.anchorEl.setStyle("z-index",this.el.getZIndex()+1)},initTarget:function(c){var a;if(a=Ext.get(c)){if(this.target){var b=Ext.get(this.target);this.mun(b,"mouseover",this.onTargetOver,this);this.mun(b,"mouseout",this.onTargetOut,this);this.mun(b,"mousemove",this.onMouseMove,this)}this.mon(a,{mouseover:this.onTargetOver,mouseout:this.onTargetOut,mousemove:this.onMouseMove,scope:this});this.target=a}if(this.anchor)this.anchorTarget=this.target},onMouseMove:function(b){var a=this.delegate?b.getTarget(this.delegate):this.triggerElement=true;if(a){this.targetXY=b.getXY();if(a===this.triggerElement){if(!this.hidden&&this.trackMouse)this.setPagePosition(this.getTargetXY())}else{this.hide();this.lastActive=new Date(0);this.onTargetOver(b)}}else if(!this.closable&&this.isVisible())this.hide()},getTargetXY:function(){if(this.delegate)this.anchorTarget=this.triggerElement;if(this.anchor){this.targetCounter++;var c=this.getOffsets(),l=this.anchorToTarget&&!this.trackMouse?this.el.getAlignToXY(this.anchorTarget,this.getAnchorAlign()):this.targetXY,a=Ext.lib.Dom.getViewWidth()-5,h=Ext.lib.Dom.getViewHeight()-5,i=document.documentElement,e=document.body,k=(i.scrollLeft||e.scrollLeft||0)+5,j=(i.scrollTop||e.scrollTop||0)+5,b=[l[0]+c[0],l[1]+c[1]],g=this.getSize();this.anchorEl.removeClass(this.anchorCls);if(this.targetCounter<2){if(b[0]<k){if(this.anchorToTarget){this.defaultAlign="l-r";if(this.mouseOffset)this.mouseOffset[0]*=-1}this.anchor="left";return this.getTargetXY()}if(b[0]+g.width>a){if(this.anchorToTarget){this.defaultAlign="r-l";if(this.mouseOffset)this.mouseOffset[0]*=-1}this.anchor="right";return this.getTargetXY()}if(b[1]<j){if(this.anchorToTarget){this.defaultAlign="t-b";if(this.mouseOffset)this.mouseOffset[1]*=-1}this.anchor="top";return this.getTargetXY()}if(b[1]+g.height>h){if(this.anchorToTarget){this.defaultAlign="b-t";if(this.mouseOffset)this.mouseOffset[1]*=-1}this.anchor="bottom";return this.getTargetXY()}}this.anchorCls="x-tip-anchor-"+this.getAnchorPosition();this.anchorEl.addClass(this.anchorCls);this.targetCounter=0;return b}else{var d=this.getMouseOffset();return[this.targetXY[0]+d[0],this.targetXY[1]+d[1]]}},getMouseOffset:function(){var a=this.anchor?[0,0]:[15,18];if(this.mouseOffset){a[0]+=this.mouseOffset[0];a[1]+=this.mouseOffset[1]}return a},getAnchorPosition:function(){if(this.anchor)this.tipAnchor=this.anchor.charAt(0);else{var a=this.defaultAlign.match(/^([a-z]+)-([a-z]+)(\?)?$/);if(!a)throw"AnchorTip.defaultAlign is invalid";this.tipAnchor=a[1].charAt(0)}switch(this.tipAnchor){case"t":return"top";case"b":return"bottom";case"r":return"right"}return"left"},getAnchorAlign:function(){switch(this.anchor){case"top":return"tl-bl";case"left":return"tl-tr";case"right":return"tr-tl";default:return"bl-tl"}},getOffsets:function(){var b,a=this.getAnchorPosition().charAt(0);if(this.anchorToTarget&&!this.trackMouse)switch(a){case"t":b=[0,9];break;case"b":b=[0,-13];break;case"r":b=[-13,0];break;default:b=[9,0];break}else switch(a){case"t":b=[-15-this.anchorOffset,30];break;case"b":b=[-19-this.anchorOffset,-13-this.el.dom.offsetHeight];break;case"r":b=[-15-this.el.dom.offsetWidth,-13-this.anchorOffset];break;default:b=[25,-13-this.anchorOffset];break}var c=this.getMouseOffset();b[0]+=c[0];b[1]+=c[1];return b},onTargetOver:function(b){if(this.disabled||b.within(this.target.dom,true))return;var a=b.getTarget(this.delegate);if(a){this.triggerElement=a;this.clearTimer("hide");this.targetXY=b.getXY();this.delayShow()}},delayShow:function(){if(this.hidden&&!this.showTimer)if(this.lastActive.getElapsed()<this.quickShowInterval)this.show();else this.showTimer=this.show.defer(this.showDelay,this);else if(!this.hidden&&this.autoHide!==false)this.show()},onTargetOut:function(a){if(this.disabled||a.within(this.target.dom,true))return;this.clearTimer("show");if(this.autoHide!==false)this.delayHide()},delayHide:function(){if(!this.hidden&&!this.hideTimer)this.hideTimer=this.hide.defer(this.hideDelay,this)},hide:function(){this.clearTimer("dismiss");this.lastActive=new Date;if(this.anchorEl)this.anchorEl.hide();Ext.ToolTip.superclass.hide.call(this);delete this.triggerElement},show:function(){if(this.anchor){this.showAt([-1e3,-1e3]);this.origConstrainPosition=this.constrainPosition;this.constrainPosition=false;this.anchor=this.origAnchor}this.showAt(this.getTargetXY());if(this.anchor){this.syncAnchor();this.anchorEl.show();this.constrainPosition=this.origConstrainPosition}else this.anchorEl.hide()},showAt:function(a){this.lastActive=new Date;this.clearTimers();Ext.ToolTip.superclass.showAt.call(this,a);if(this.dismissDelay&&this.autoHide!==false)this.dismissTimer=this.hide.defer(this.dismissDelay,this);if(this.anchor&&!this.anchorEl.isVisible()){this.syncAnchor();this.anchorEl.show()}},syncAnchor:function(){var a,b,c;switch(this.tipAnchor.charAt(0)){case"t":a="b";b="tl";c=[20+this.anchorOffset,2];break;case"r":a="l";b="tr";c=[-2,11+this.anchorOffset];break;case"b":a="t";b="bl";c=[20+this.anchorOffset,-2];break;default:a="r";b="tl";c=[2,11+this.anchorOffset];break}this.anchorEl.alignTo(this.el,a+"-"+b,c)},setPagePosition:function(a,b){Ext.ToolTip.superclass.setPagePosition.call(this,a,b);if(this.anchor)this.syncAnchor()},clearTimer:function(a){a=a+"Timer";clearTimeout(this[a]);delete this[a]},clearTimers:function(){this.clearTimer("show");this.clearTimer("dismiss");this.clearTimer("hide")},onShow:function(){Ext.ToolTip.superclass.onShow.call(this);Ext.getDoc().on("mousedown",this.onDocMouseDown,this)},onHide:function(){Ext.ToolTip.superclass.onHide.call(this);Ext.getDoc().un("mousedown",this.onDocMouseDown,this)},onDocMouseDown:function(a){if(this.autoHide!==true&&!this.closable&&!a.within(this.el.dom)){this.disable();this.doEnable.defer(100,this)}},doEnable:function(){if(!this.isDestroyed)this.enable()},onDisable:function(){this.clearTimers();this.hide()},adjustPosition:function(a,d){if(this.contstrainPosition){var c=this.targetXY[1],b=this.getSize().height;if(d<=c&&d+b>=c)d=c-b-5}return{x:a,y:d}},beforeDestroy:function(){this.clearTimers();Ext.destroy(this.anchorEl);delete this.anchorEl;delete this.target;delete this.anchorTarget;delete this.triggerElement;Ext.ToolTip.superclass.beforeDestroy.call(this)},onDestroy:function(){Ext.getDoc().un("mousedown",this.onDocMouseDown,this);Ext.ToolTip.superclass.onDestroy.call(this)}});Ext.reg("tooltip",Ext.ToolTip);Ext.QuickTip=Ext.extend(Ext.ToolTip,{interceptTitles:false,tagConfig:{namespace:"ext",attribute:"qtip",width:"qwidth",target:"target",title:"qtitle",hide:"hide",cls:"qclass",align:"qalign",anchor:"anchor"},initComponent:function(){this.target=this.target||Ext.getDoc();this.targets=this.targets||{};Ext.QuickTip.superclass.initComponent.call(this)},register:function(e){var h=Ext.isArray(e)?e:arguments;for(var g=0,a=h.length;g<a;g++){var l=h[g];var k=l.target;if(k)if(Ext.isArray(k))for(var d=0,b=k.length;d<b;d++)this.targets[Ext.id(k[d])]=l;else this.targets[Ext.id(k)]=l}},unregister:function(a){delete this.targets[Ext.id(a)]},cancelShow:function(b){var a=this.activeTarget;b=Ext.get(b).dom;if(this.isVisible()){if(a&&a.el==b)this.hide()}else if(a&&a.el==b)this.clearTimer("show")},getTipCfg:function(d){var b=d.getTarget(),c,a;if(this.interceptTitles&&b.title&&Ext.isString(b.title)){c=b.title;b.qtip=c;b.removeAttribute("title");d.preventDefault()}else{a=this.tagConfig;c=b.qtip||Ext.fly(b).getAttribute(a.attribute,a.namespace)}return c},onTargetOver:function(i){if(this.disabled)return;this.targetXY=i.getXY();var c=i.getTarget();if(!c||c.nodeType!==1||c==document||c==document.body)return;if(this.activeTarget&&(c==this.activeTarget.el||Ext.fly(this.activeTarget.el).contains(c))){this.clearTimer("hide");this.show();return}if(c&&this.targets[c.id]){this.activeTarget=this.targets[c.id];this.activeTarget.el=c;this.anchor=this.activeTarget.anchor;if(this.anchor)this.anchorTarget=c;this.delayShow();return}var g,h=Ext.fly(c),b=this.tagConfig,d=b.namespace;if(g=this.getTipCfg(i)){var a=h.getAttribute(b.hide,d);this.activeTarget={el:c,text:g,width:h.getAttribute(b.width,d),autoHide:a!="user"&&a!=="false",title:h.getAttribute(b.title,d),cls:h.getAttribute(b.cls,d),align:h.getAttribute(b.align,d)};this.anchor=h.getAttribute(b.anchor,d);if(this.anchor)this.anchorTarget=c;this.delayShow()}},onTargetOut:function(a){if(this.activeTarget&&a.within(this.activeTarget.el)&&!this.getTipCfg(a))return;this.clearTimer("show");if(this.autoHide!==false)this.delayHide()},showAt:function(b){var a=this.activeTarget;if(a){if(!this.rendered){this.render(Ext.getBody());this.activeTarget=a}if(a.width){this.setWidth(a.width);this.body.setWidth(this.adjustBodyWidth(a.width-this.getFrameWidth()));this.measureWidth=false}else this.measureWidth=true;this.setTitle(a.title||"");this.body.update(a.text);this.autoHide=a.autoHide;this.dismissDelay=a.dismissDelay||this.dismissDelay;if(this.lastCls){this.el.removeClass(this.lastCls);delete this.lastCls}if(a.cls){this.el.addClass(a.cls);this.lastCls=a.cls}if(this.anchor)this.constrainPosition=false;else if(a.align){b=this.el.getAlignToXY(a.el,a.align);this.constrainPosition=false}else this.constrainPosition=true}Ext.QuickTip.superclass.showAt.call(this,b)},hide:function(){delete this.activeTarget;Ext.QuickTip.superclass.hide.call(this)}});Ext.reg("quicktip",Ext.QuickTip);Ext.QuickTips=function(){var b,a=[];return{init:function(c){if(!b){if(!Ext.isReady){Ext.onReady(function(){Ext.QuickTips.init(c)});return}b=new Ext.QuickTip({elements:"header,body"});if(c!==false)b.render(Ext.getBody())}},enable:function(){if(b){a.pop();if(a.length<1)b.enable()}},disable:function(){if(b)b.disable();a.push(1)},isEnabled:function(){return b!==undefined&&!b.disabled},getQuickTip:function(){return b},register:function(){b.register.apply(b,arguments)},unregister:function(){b.unregister.apply(b,arguments)},tips:function(){b.register.apply(b,arguments)}}}();Ext.slider.Tip=Ext.extend(Ext.Tip,{minWidth:10,offsets:[0,-10],init:function(a){a.on({scope:this,dragstart:this.onSlide,drag:this.onSlide,dragend:this.hide,destroy:this.destroy})},onSlide:function(b,c,a){this.show();this.body.update(this.getText(a));this.doAutoWidth();this.el.alignTo(a.el,"b-t?",this.offsets)},getText:function(a){return String(a.value)}});Ext.ux.SliderTip=Ext.slider.Tip;Ext.tree.TreePanel=Ext.extend(Ext.Panel,{rootVisible:true,animate:Ext.enableFx,lines:true,enableDD:false,hlDrop:Ext.enableFx,pathSeparator:"/",bubbleEvents:[],initComponent:function(){Ext.tree.TreePanel.superclass.initComponent.call(this);if(!this.eventModel)this.eventModel=new Ext.tree.TreeEventModel(this);var a=this.loader;if(!a)a=new Ext.tree.TreeLoader({dataUrl:this.dataUrl,requestMethod:this.requestMethod});else if(Ext.isObject(a)&&!a.load)a=new Ext.tree.TreeLoader(a);this.loader=a;this.nodeHash={};if(this.root){var b=this.root;delete this.root;this.setRootNode(b)}this.addEvents("append","remove","movenode","insert","beforeappend","beforeremove","beforemovenode","beforeinsert","beforeload","load","textchange","beforeexpandnode","beforecollapsenode","expandnode","disabledchange","collapsenode","beforeclick","click","containerclick","checkchange","beforedblclick","dblclick","containerdblclick","contextmenu","containercontextmenu","beforechildrenrendered","startdrag","enddrag","dragdrop","beforenodedrop","nodedrop","nodedragover");if(this.singleExpand)this.on("beforeexpandnode",this.restrictExpand,this)},proxyNodeEvent:function(c,b,a,h,g,e,d){if(c=="collapse"||c=="expand"||c=="beforecollapse"||c=="beforeexpand"||c=="move"||c=="beforemove")c=c+"node";return this.fireEvent(c,b,a,h,g,e,d)},getRootNode:function(){return this.root},setRootNode:function(b){this.destroyRoot();if(!b.render)b=this.loader.createNode(b);this.root=b;b.ownerTree=this;b.isRoot=true;this.registerNode(b);if(!this.rootVisible){var a=b.attributes.uiProvider;b.ui=a?new a(b):new Ext.tree.RootTreeNodeUI(b)}if(this.innerCt){this.clearInnerCt();this.renderRoot()}return b},clearInnerCt:function(){this.innerCt.update("")},renderRoot:function(){this.root.render();if(!this.rootVisible)this.root.renderChildren()},getNodeById:function(a){return this.nodeHash[a]},registerNode:function(a){this.nodeHash[a.id]=a},unregisterNode:function(a){delete this.nodeHash[a.id]},toString:function(){return"[Tree"+(this.id?" "+this.id:"")+"]"},restrictExpand:function(a){var b=a.parentNode;if(b){if(b.expandedChild&&b.expandedChild.parentNode==b)b.expandedChild.collapse();b.expandedChild=a}},getChecked:function(b,c){c=c||this.root;var d=[];var e=function(){if(this.attributes.checked)d.push(!b?this:b=="id"?this.id:this.attributes[b])};c.cascade(e);return d},getLoader:function(){return this.loader},expandAll:function(){this.root.expand(true)},collapseAll:function(){this.root.collapse(true)},getSelectionModel:function(){if(!this.selModel)this.selModel=new Ext.tree.DefaultSelectionModel;return this.selModel},expandPath:function(g,a,h){a=a||"id";var d=g.split(this.pathSeparator);var c=this.root;if(c.attributes[a]!=d[1]){if(h)h(false,null);return}var b=1;var e=function(){if(++b==d.length){if(h)h(true,c);return}var i=c.findChild(a,d[b]);if(!i){if(h)h(false,c);return}c=i;i.expand(false,false,e)};c.expand(false,false,e)},selectPath:function(e,a,g){a=a||"id";var c=e.split(this.pathSeparator),b=c.pop();if(c.length>1){var d=function(i,h){if(i&&h){var j=h.findChild(a,b);if(j){j.select();if(g)g(true,j)}else if(g)g(false,j)}else if(g)g(false,j)};this.expandPath(c.join(this.pathSeparator),a,d)}else{this.root.select();if(g)g(true,this.root)}},getTreeEl:function(){return this.body},onRender:function(b,a){Ext.tree.TreePanel.superclass.onRender.call(this,b,a);this.el.addClass("x-tree");this.innerCt=this.body.createChild({tag:"ul",cls:"x-tree-root-ct "+(this.useArrows?"x-tree-arrows":this.lines?"x-tree-lines":"x-tree-no-lines")})},initEvents:function(){Ext.tree.TreePanel.superclass.initEvents.call(this);if(this.containerScroll)Ext.dd.ScrollManager.register(this.body);if((this.enableDD||this.enableDrop)&&!this.dropZone)this.dropZone=new Ext.tree.TreeDropZone(this,this.dropConfig||{ddGroup:this.ddGroup||"TreeDD",appendOnly:this.ddAppendOnly===true});if((this.enableDD||this.enableDrag)&&!this.dragZone)this.dragZone=new Ext.tree.TreeDragZone(this,this.dragConfig||{ddGroup:this.ddGroup||"TreeDD",scroll:this.ddScroll});this.getSelectionModel().init(this)},afterRender:function(){Ext.tree.TreePanel.superclass.afterRender.call(this);this.renderRoot()},beforeDestroy:function(){if(this.rendered){Ext.dd.ScrollManager.unregister(this.body);Ext.destroy(this.dropZone,this.dragZone)}this.destroyRoot();Ext.destroy(this.loader);this.nodeHash=this.root=this.loader=null;Ext.tree.TreePanel.superclass.beforeDestroy.call(this)},destroyRoot:function(){if(this.root&&this.root.destroy)this.root.destroy(true)}});Ext.tree.TreePanel.nodeTypes={};Ext.reg("treepanel",Ext.tree.TreePanel);Ext.tree.TreeEventModel=function(a){this.tree=a;this.tree.on("render",this.initEvents,this)};Ext.tree.TreeEventModel.prototype={initEvents:function(){var a=this.tree;if(a.trackMouseOver!==false)a.mon(a.innerCt,{scope:this,mouseover:this.delegateOver,mouseout:this.delegateOut});a.mon(a.getTreeEl(),{scope:this,click:this.delegateClick,dblclick:this.delegateDblClick,contextmenu:this.delegateContextMenu})},getNode:function(b){var a;if(a=b.getTarget(".x-tree-node-el",10)){var c=Ext.fly(a,"_treeEvents").getAttribute("tree-node-id","ext");if(c)return this.tree.getNodeById(c)}return null},getNodeTarget:function(b){var a=b.getTarget(".x-tree-node-icon",1);if(!a)a=b.getTarget(".x-tree-node-el",6);return a},delegateOut:function(b,a){if(!this.beforeEvent(b))return;if(b.getTarget(".x-tree-ec-icon",1)){var c=this.getNode(b);this.onIconOut(b,c);if(c==this.lastEcOver)delete this.lastEcOver}if((a=this.getNodeTarget(b))&&!b.within(a,true))this.onNodeOut(b,this.getNode(b))},delegateOver:function(b,a){if(!this.beforeEvent(b))return;if(Ext.isGecko&&!this.trackingDoc){Ext.getBody().on("mouseover",this.trackExit,this);this.trackingDoc=true}if(this.lastEcOver){this.onIconOut(b,this.lastEcOver);delete this.lastEcOver}if(b.getTarget(".x-tree-ec-icon",1)){this.lastEcOver=this.getNode(b);this.onIconOver(b,this.lastEcOver)}if(a=this.getNodeTarget(b))this.onNodeOver(b,this.getNode(b))},trackExit:function(a){if(this.lastOverNode){if(this.lastOverNode.ui&&!a.within(this.lastOverNode.ui.getEl()))this.onNodeOut(a,this.lastOverNode);delete this.lastOverNode;Ext.getBody().un("mouseover",this.trackExit,this);this.trackingDoc=false}},delegateClick:function(b,a){if(this.beforeEvent(b)){if(b.getTarget("input[type=checkbox]",1))this.onCheckboxClick(b,this.getNode(b));else if(b.getTarget(".x-tree-ec-icon",1))this.onIconClick(b,this.getNode(b));else if(this.getNodeTarget(b))this.onNodeClick(b,this.getNode(b))}else this.checkContainerEvent(b,"click")},delegateDblClick:function(b,a){if(this.beforeEvent(b)){if(this.getNodeTarget(b))this.onNodeDblClick(b,this.getNode(b))}else this.checkContainerEvent(b,"dblclick")},delegateContextMenu:function(b,a){if(this.beforeEvent(b)){if(this.getNodeTarget(b))this.onNodeContextMenu(b,this.getNode(b))}else this.checkContainerEvent(b,"contextmenu")},checkContainerEvent:function(b,a){if(this.disabled){b.stopEvent();return false}this.onContainerEvent(b,a)},onContainerEvent:function(b,a){this.tree.fireEvent("container"+a,this.tree,b)},onNodeClick:function(b,a){a.ui.onClick(b)},onNodeOver:function(b,a){this.lastOverNode=a;a.ui.onOver(b)},onNodeOut:function(b,a){a.ui.onOut(b)},onIconOver:function(b,a){a.ui.addClass("x-tree-ec-over")},onIconOut:function(b,a){a.ui.removeClass("x-tree-ec-over")},onIconClick:function(b,a){a.ui.ecClick(b)},onCheckboxClick:function(b,a){a.ui.onCheckChange(b)},onNodeDblClick:function(b,a){a.ui.onDblClick(b)},onNodeContextMenu:function(b,a){a.ui.onContextMenu(b)},beforeEvent:function(b){var a=this.getNode(b);if(this.disabled||!a||!a.ui){b.stopEvent();return false}return true},disable:function(){this.disabled=true},enable:function(){this.disabled=false}};Ext.tree.DefaultSelectionModel=Ext.extend(Ext.util.Observable,{constructor:function(a){this.selNode=null;this.addEvents("selectionchange","beforeselect");Ext.apply(this,a);Ext.tree.DefaultSelectionModel.superclass.constructor.call(this)},init:function(a){this.tree=a;a.mon(a.getTreeEl(),"keydown",this.onKeyDown,this);a.on("click",this.onNodeClick,this)},onNodeClick:function(a,b){this.select(a)},select:function(c,a){if(!Ext.fly(c.ui.wrap).isVisible()&&a)return a.call(this,c);var b=this.selNode;if(c==b)c.ui.onSelectedChange(true);else if(this.fireEvent("beforeselect",this,c,b)!==false){if(b&&b.ui)b.ui.onSelectedChange(false);this.selNode=c;c.ui.onSelectedChange(true);this.fireEvent("selectionchange",this,c,b)}return c},unselect:function(b,a){if(this.selNode==b)this.clearSelections(a)},clearSelections:function(a){var b=this.selNode;if(b){b.ui.onSelectedChange(false);this.selNode=null;if(a!==true)this.fireEvent("selectionchange",this,null)}return b},getSelectedNode:function(){return this.selNode},isSelected:function(a){return this.selNode==a},selectPrevious:function(a){if(!(a=a||this.selNode||this.lastSelNode))return null;var c=a.previousSibling;if(c)if(!c.isExpanded()||c.childNodes.length<1)return this.select(c,this.selectPrevious);else{var b=c.lastChild;while(b&&b.isExpanded()&&Ext.fly(b.ui.wrap).isVisible()&&b.childNodes.length>0)b=b.lastChild;return this.select(b,this.selectPrevious)}else if(a.parentNode&&(this.tree.rootVisible||!a.parentNode.isRoot))return this.select(a.parentNode,this.selectPrevious);return null},selectNext:function(b){if(!(b=b||this.selNode||this.lastSelNode))return null;if(b.firstChild&&b.isExpanded()&&Ext.fly(b.ui.wrap).isVisible())return this.select(b.firstChild,this.selectNext);else if(b.nextSibling)return this.select(b.nextSibling,this.selectNext);else if(b.parentNode){var a=null;b.parentNode.bubble(function(){if(this.nextSibling){a=this.getOwnerTree().selModel.select(this.nextSibling,this.selectNext);return false}});return a}return null},onKeyDown:function(c){var b=this.selNode||this.lastSelNode;var d=this;if(!b)return;var a=c.getKey();switch(a){case c.DOWN:c.stopEvent();this.selectNext();break;case c.UP:c.stopEvent();this.selectPrevious();break;case c.RIGHT:c.preventDefault();if(b.hasChildNodes())if(!b.isExpanded())b.expand();else if(b.firstChild)this.select(b.firstChild,c);break;case c.LEFT:c.preventDefault();if(b.hasChildNodes()&&b.isExpanded())b.collapse();else if(b.parentNode&&(this.tree.rootVisible||b.parentNode!=this.tree.getRootNode()))this.select(b.parentNode,c);break}}});Ext.tree.MultiSelectionModel=Ext.extend(Ext.util.Observable,{constructor:function(a){this.selNodes=[];this.selMap={};this.addEvents("selectionchange");Ext.apply(this,a);Ext.tree.MultiSelectionModel.superclass.constructor.call(this)},init:function(a){this.tree=a;a.mon(a.getTreeEl(),"keydown",this.onKeyDown,this);a.on("click",this.onNodeClick,this)},onNodeClick:function(a,b){if(b.ctrlKey&&this.isSelected(a))this.unselect(a);else this.select(a,b,b.ctrlKey)},select:function(a,c,b){if(b!==true)this.clearSelections(true);if(this.isSelected(a)){this.lastSelNode=a;return a}this.selNodes.push(a);this.selMap[a.id]=a;this.lastSelNode=a;a.ui.onSelectedChange(true);this.fireEvent("selectionchange",this,this.selNodes);return a},unselect:function(b){if(this.selMap[b.id]){b.ui.onSelectedChange(false);var c=this.selNodes;var a=c.indexOf(b);if(a!=-1)this.selNodes.splice(a,1);delete this.selMap[b.id];this.fireEvent("selectionchange",this,this.selNodes)}},clearSelections:function(b){var d=this.selNodes;if(d.length>0){for(var c=0,a=d.length;c<a;c++)d[c].ui.onSelectedChange(false);this.selNodes=[];this.selMap={};if(b!==true)this.fireEvent("selectionchange",this,this.selNodes)}},isSelected:function(a){return this.selMap[a.id]?true:false},getSelectedNodes:function(){return this.selNodes.concat([])},onKeyDown:Ext.tree.DefaultSelectionModel.prototype.onKeyDown,selectNext:Ext.tree.DefaultSelectionModel.prototype.selectNext,selectPrevious:Ext.tree.DefaultSelectionModel.prototype.selectPrevious});Ext.data.Tree=function(a){this.nodeHash={};this.root=null;if(a)this.setRootNode(a);this.addEvents("append","remove","move","insert","beforeappend","beforeremove","beforemove","beforeinsert");Ext.data.Tree.superclass.constructor.call(this)};Ext.extend(Ext.data.Tree,Ext.util.Observable,{pathSeparator:"/",proxyNodeEvent:function(){return this.fireEvent.apply(this,arguments)},getRootNode:function(){return this.root},setRootNode:function(a){this.root=a;a.ownerTree=this;a.isRoot=true;this.registerNode(a);return a},getNodeById:function(a){return this.nodeHash[a]},registerNode:function(a){this.nodeHash[a.id]=a},unregisterNode:function(a){delete this.nodeHash[a.id]},toString:function(){return"[Tree"+(this.id?" "+this.id:"")+"]"}});Ext.data.Node=function(a){this.attributes=a||{};this.leaf=this.attributes.leaf;this.id=this.attributes.id;if(!this.id){this.id=Ext.id(null,"xnode-");this.attributes.id=this.id}this.childNodes=[];if(!this.childNodes.indexOf)this.childNodes.indexOf=function(d){for(var c=0,b=this.length;c<b;c++)if(this[c]==d)return c;return-1};this.parentNode=null;this.firstChild=null;this.lastChild=null;this.previousSibling=null;this.nextSibling=null;this.addEvents({append:true,remove:true,move:true,insert:true,beforeappend:true,beforeremove:true,beforemove:true,beforeinsert:true});this.listeners=this.attributes.listeners;Ext.data.Node.superclass.constructor.call(this)};Ext.extend(Ext.data.Node,Ext.util.Observable,{fireEvent:function(b){if(Ext.data.Node.superclass.fireEvent.apply(this,arguments)===false)return false;var a=this.getOwnerTree();if(a)if(a.proxyNodeEvent.apply(a,arguments)===false)return false;return true},isLeaf:function(){return this.leaf===true},setFirstChild:function(a){this.firstChild=a},setLastChild:function(a){this.lastChild=a},isLast:function(){return!this.parentNode?true:this.parentNode.lastChild==this},isFirst:function(){return!this.parentNode?true:this.parentNode.firstChild==this},hasChildNodes:function(){return!this.isLeaf()&&this.childNodes.length>0},isExpandable:function(){return this.attributes.expandable||this.hasChildNodes()},appendChild:function(e){var g=false;if(Ext.isArray(e))g=e;else if(arguments.length>1)g=arguments;if(g)for(var d=0,a=g.length;d<a;d++)this.appendChild(g[d]);else{if(this.fireEvent("beforeappend",this.ownerTree,this,e)===false)return false;var b=this.childNodes.length;var c=e.parentNode;if(c){if(e.fireEvent("beforemove",e.getOwnerTree(),e,c,this,b)===false)return false;c.removeChild(e)}b=this.childNodes.length;if(b===0)this.setFirstChild(e);this.childNodes.push(e);e.parentNode=this;var h=this.childNodes[b-1];if(h){e.previousSibling=h;h.nextSibling=e}else e.previousSibling=null;e.nextSibling=null;this.setLastChild(e);e.setOwnerTree(this.getOwnerTree());this.fireEvent("append",this.ownerTree,this,e,b);if(c)e.fireEvent("move",this.ownerTree,e,c,this,b);return e}},removeChild:function(c,b){var a=this.childNodes.indexOf(c);if(a==-1)return false;if(this.fireEvent("beforeremove",this.ownerTree,this,c)===false)return false;this.childNodes.splice(a,1);if(c.previousSibling)c.previousSibling.nextSibling=c.nextSibling;if(c.nextSibling)c.nextSibling.previousSibling=c.previousSibling;if(this.firstChild==c)this.setFirstChild(c.nextSibling);if(this.lastChild==c)this.setLastChild(c.previousSibling);this.fireEvent("remove",this.ownerTree,this,c);if(b)c.destroy(true);else c.clear();return c},clear:function(a){this.setOwnerTree(null,a);this.parentNode=this.previousSibling=this.nextSibling=null;if(a)this.firstChild=this.lastChild=null},destroy:function(a){if(a===true){this.purgeListeners();this.clear(true);Ext.each(this.childNodes,function(b){b.destroy(true)});this.childNodes=null}else this.remove(true)},insertBefore:function(d,a){if(!a)return this.appendChild(d);if(d==a)return false;if(this.fireEvent("beforeinsert",this.ownerTree,this,d,a)===false)return false;var b=this.childNodes.indexOf(a);var c=d.parentNode;var e=b;if(c==this&&this.childNodes.indexOf(d)<b)e--;if(c){if(d.fireEvent("beforemove",d.getOwnerTree(),d,c,this,b,a)===false)return false;c.removeChild(d)}if(e===0)this.setFirstChild(d);this.childNodes.splice(e,0,d);d.parentNode=this;var g=this.childNodes[e-1];if(g){d.previousSibling=g;g.nextSibling=d}else d.previousSibling=null;d.nextSibling=a;a.previousSibling=d;d.setOwnerTree(this.getOwnerTree());this.fireEvent("insert",this.ownerTree,this,d,a);if(c)d.fireEvent("move",this.ownerTree,d,c,this,e,a);return d},remove:function(a){if(this.parentNode)this.parentNode.removeChild(this,a);return this},removeAll:function(a){var c=this.childNodes,b;while(b=c[0])this.removeChild(b,a);return this},item:function(a){return this.childNodes[a]},replaceChild:function(a,c){var b=c?c.nextSibling:null;this.removeChild(c);this.insertBefore(a,b);return c},indexOf:function(a){return this.childNodes.indexOf(a)},getOwnerTree:function(){if(!this.ownerTree){var a=this;while(a){if(a.ownerTree){this.ownerTree=a.ownerTree;break}a=a.parentNode}}return this.ownerTree},getDepth:function(){var b=0;var a=this;while(a.parentNode){++b;a=a.parentNode}return b},setOwnerTree:function(a,b){if(a!=this.ownerTree){if(this.ownerTree)this.ownerTree.unregisterNode(this);this.ownerTree=a;if(b!==true)Ext.each(this.childNodes,function(c){c.setOwnerTree(a)});if(a)a.registerNode(this)}},setId:function(b){if(b!==this.id){var a=this.ownerTree;if(a)a.unregisterNode(this);this.id=this.attributes.id=b;if(a)a.registerNode(this);this.onIdChange(b)}},onIdChange:Ext.emptyFn,getPath:function(c){c=c||"id";var e=this.parentNode;var a=[this.attributes[c]];while(e){a.unshift(e.attributes[c]);e=e.parentNode}var d=this.getOwnerTree().pathSeparator;return d+a.join(d)},bubble:function(c,b,a){var d=this;while(d){if(c.apply(b||d,a||[d])===false)break;d=d.parentNode}},cascade:function(g,e,b){if(g.apply(e||this,b||[this])!==false){var d=this.childNodes;for(var c=0,a=d.length;c<a;c++)d[c].cascade(g,e,b)}},eachChild:function(g,e,b){var d=this.childNodes;for(var c=0,a=d.length;c<a;c++)if(g.apply(e||this,b||[d[c]])===false)break},findChild:function(b,c,a){return this.findChildBy(function(){return this.attributes[b]==c},null,a)},findChildBy:function(h,g,b){var e=this.childNodes,a=e.length,d=0,j,c;for(;d<a;d++){j=e[d];if(h.call(g||j,j)===true)return j;else if(b){c=j.findChildBy(h,g,b);if(c!=null)return c}}return null},sort:function(e,d){var c=this.childNodes;var a=c.length;if(a>0){var g=d?function(){e.apply(d,arguments)}:e;c.sort(g);for(var b=0;b<a;b++){var h=c[b];h.previousSibling=c[b-1];h.nextSibling=c[b+1];if(b===0)this.setFirstChild(h);if(b==a-1)this.setLastChild(h)}}},contains:function(a){return a.isAncestor(this)},isAncestor:function(a){var b=this.parentNode;while(b){if(b==a)return true;b=b.parentNode}return false},toString:function(){return"[Node"+(this.id?" "+this.id:"")+"]"}});Ext.tree.TreeNode=function(a){a=a||{};if(Ext.isString(a))a={text:a};this.childrenRendered=false;this.rendered=false;Ext.tree.TreeNode.superclass.constructor.call(this,a);this.expanded=a.expanded===true;this.isTarget=a.isTarget!==false;this.draggable=a.draggable!==false&&a.allowDrag!==false;this.allowChildren=a.allowChildren!==false&&a.allowDrop!==false;this.text=a.text;this.disabled=a.disabled===true;this.hidden=a.hidden===true;this.addEvents("textchange","beforeexpand","beforecollapse","expand","disabledchange","collapse","beforeclick","click","checkchange","beforedblclick","dblclick","contextmenu","beforechildrenrendered");var b=this.attributes.uiProvider||this.defaultUI||Ext.tree.TreeNodeUI;this.ui=new b(this)};Ext.extend(Ext.tree.TreeNode,Ext.data.Node,{preventHScroll:true,isExpanded:function(){return this.expanded},getUI:function(){return this.ui},getLoader:function(){var a;return this.loader||((a=this.getOwnerTree())&&a.loader?a.loader:this.loader=new Ext.tree.TreeLoader)},setFirstChild:function(a){var b=this.firstChild;Ext.tree.TreeNode.superclass.setFirstChild.call(this,a);if(this.childrenRendered&&b&&a!=b)b.renderIndent(true,true);if(this.rendered)this.renderIndent(true,true)},setLastChild:function(b){var a=this.lastChild;Ext.tree.TreeNode.superclass.setLastChild.call(this,b);if(this.childrenRendered&&a&&b!=a)a.renderIndent(true,true);if(this.rendered)this.renderIndent(true,true)},appendChild:function(b){if(!b.render&&!Ext.isArray(b))b=this.getLoader().createNode(b);var a=Ext.tree.TreeNode.superclass.appendChild.call(this,b);if(a&&this.childrenRendered)a.render();this.ui.updateExpandIcon();return a},removeChild:function(b,a){this.ownerTree.getSelectionModel().unselect(b);Ext.tree.TreeNode.superclass.removeChild.apply(this,arguments);if(!a){if(b.ui.rendered)b.ui.remove();if(this.childNodes.length<1)this.collapse(false,false);else this.ui.updateExpandIcon();if(!this.firstChild&&!this.isHiddenRoot())this.childrenRendered=false}return b},insertBefore:function(c,a){if(!c.render)c=this.getLoader().createNode(c);var b=Ext.tree.TreeNode.superclass.insertBefore.call(this,c,a);if(b&&a&&this.childrenRendered)c.render();this.ui.updateExpandIcon();return b},setText:function(b){var a=this.text;this.text=this.attributes.text=b;if(this.rendered)this.ui.onTextChange(this,b,a);this.fireEvent("textchange",this,b,a)},select:function(){var a=this.getOwnerTree();if(a)a.getSelectionModel().select(this)},unselect:function(a){var b=this.getOwnerTree();if(b)b.getSelectionModel().unselect(this,a)},isSelected:function(){var a=this.getOwnerTree();return a?a.getSelectionModel().isSelected(this):false},expand:function(a,c,d,b){if(!this.expanded){if(this.fireEvent("beforeexpand",this,a,c)===false)return;if(!this.childrenRendered)this.renderChildren();this.expanded=true;if(!this.isHiddenRoot()&&this.getOwnerTree().animate&&c!==false||c){this.ui.animExpand(function(){this.fireEvent("expand",this);this.runCallback(d,b||this,[this]);if(a===true)this.expandChildNodes(true)}.createDelegate(this));return}else{this.ui.expand();this.fireEvent("expand",this);this.runCallback(d,b||this,[this])}}else this.runCallback(d,b||this,[this]);if(a===true)this.expandChildNodes(true)},runCallback:function(a,c,b){if(Ext.isFunction(a))a.apply(c,b)},isHiddenRoot:function(){return this.isRoot&&!this.getOwnerTree().rootVisible},collapse:function(b,g,h,e){if(this.expanded&&!this.isHiddenRoot()){if(this.fireEvent("beforecollapse",this,b,g)===false)return;this.expanded=false;if(this.getOwnerTree().animate&&g!==false||g){this.ui.animCollapse(function(){this.fireEvent("collapse",this);this.runCallback(h,e||this,[this]);if(b===true)this.collapseChildNodes(true)}.createDelegate(this));return}else{this.ui.collapse();this.fireEvent("collapse",this);this.runCallback(h,e||this,[this])}}else if(!this.expanded)this.runCallback(h,e||this,[this]);if(b===true){var d=this.childNodes;for(var c=0,a=d.length;c<a;c++)d[c].collapse(true,false)}},delayedExpand:function(a){if(!this.expandProcId)this.expandProcId=this.expand.defer(a,this)},cancelExpand:function(){if(this.expandProcId)clearTimeout(this.expandProcId);this.expandProcId=false},toggle:function(){if(this.expanded)this.collapse();else this.expand()},ensureVisible:function(c,b){var a=this.getOwnerTree();a.expandPath(this.parentNode?this.parentNode.getPath():this.getPath(),false,function(){var d=a.getNodeById(this.id);a.getTreeEl().scrollChildIntoView(d.ui.anchor);this.runCallback(c,b||this,[this])}.createDelegate(this))},expandChildNodes:function(b){var d=this.childNodes;for(var c=0,a=d.length;c<a;c++)d[c].expand(b)},collapseChildNodes:function(b){var d=this.childNodes;for(var c=0,a=d.length;c<a;c++)d[c].collapse(b)},disable:function(){this.disabled=true;this.unselect();if(this.rendered&&this.ui.onDisableChange)this.ui.onDisableChange(this,true);this.fireEvent("disabledchange",this,true)},enable:function(){this.disabled=false;if(this.rendered&&this.ui.onDisableChange)this.ui.onDisableChange(this,false);this.fireEvent("disabledchange",this,false)},renderChildren:function(b){if(b!==false)this.fireEvent("beforechildrenrendered",this);var d=this.childNodes;for(var c=0,a=d.length;c<a;c++)d[c].render(true);this.childrenRendered=true},sort:function(e,d){Ext.tree.TreeNode.superclass.sort.apply(this,arguments);if(this.childrenRendered){var c=this.childNodes;for(var b=0,a=c.length;b<a;b++)c[b].render(true)}},render:function(a){this.ui.render(a);if(!this.rendered){this.getOwnerTree().registerNode(this);this.rendered=true;if(this.expanded){this.expanded=false;this.expand(false,false)}}},renderIndent:function(b,e){if(e)this.ui.childIndent=null;this.ui.renderIndent();if(b===true&&this.childrenRendered){var d=this.childNodes;for(var c=0,a=d.length;c<a;c++)d[c].renderIndent(true,e)}},beginUpdate:function(){this.childrenRendered=false},endUpdate:function(){if(this.expanded&&this.rendered)this.renderChildren()},destroy:function(a){if(a===true)this.unselect(true);Ext.tree.TreeNode.superclass.destroy.call(this,a);Ext.destroy(this.ui,this.loader);this.ui=this.loader=null},onIdChange:function(a){this.ui.onIdChange(a)}});Ext.tree.TreePanel.nodeTypes.node=Ext.tree.TreeNode;Ext.tree.AsyncTreeNode=function(a){this.loaded=a&&a.loaded===true;this.loading=false;Ext.tree.AsyncTreeNode.superclass.constructor.apply(this,arguments);this.addEvents("beforeload","load")};Ext.extend(Ext.tree.AsyncTreeNode,Ext.tree.TreeNode,{expand:function(b,e,h,c){if(this.loading){var g;var d=function(){if(!this.loading){clearInterval(g);this.expand(b,e,h,c)}}.createDelegate(this);g=setInterval(d,200);return}if(!this.loaded){if(this.fireEvent("beforeload",this)===false)return;this.loading=true;this.ui.beforeLoad(this);var a=this.loader||this.attributes.loader||this.getOwnerTree().getLoader();if(a){a.load(this,this.loadComplete.createDelegate(this,[b,e,h,c]),this);return}}Ext.tree.AsyncTreeNode.superclass.expand.call(this,b,e,h,c)},isLoading:function(){return this.loading},loadComplete:function(a,c,d,b){this.loading=false;this.loaded=true;this.ui.afterLoad(this);this.fireEvent("load",this);this.expand(a,c,d,b)},isLoaded:function(){return this.loaded},hasChildNodes:function(){if(!this.isLeaf()&&!this.loaded)return true;else return Ext.tree.AsyncTreeNode.superclass.hasChildNodes.call(this)},reload:function(b,a){this.collapse(false,false);while(this.firstChild)this.removeChild(this.firstChild).destroy();this.childrenRendered=false;this.loaded=false;if(this.isHiddenRoot())this.expanded=false;this.expand(false,false,b,a)}});Ext.tree.TreePanel.nodeTypes.async=Ext.tree.AsyncTreeNode;Ext.tree.TreeNodeUI=function(a){this.node=a;this.rendered=false;this.animating=false;this.wasLeaf=true;this.ecc="x-tree-ec-icon x-tree-elbow";this.emptyIcon=Ext.BLANK_IMAGE_URL};Ext.tree.TreeNodeUI.prototype={removeChild:function(a){if(this.rendered)this.ctNode.removeChild(a.ui.getEl())},beforeLoad:function(){this.addClass("x-tree-node-loading")},afterLoad:function(){this.removeClass("x-tree-node-loading")},onTextChange:function(b,c,a){if(this.rendered)this.textNode.innerHTML=c},onDisableChange:function(a,b){this.disabled=b;if(this.checkbox)this.checkbox.disabled=b;if(b)this.addClass("x-tree-node-disabled");else this.removeClass("x-tree-node-disabled")},onSelectedChange:function(a){if(a){this.focus();this.addClass("x-tree-selected")}else this.removeClass("x-tree-selected")},onMove:function(a,h,e,g,d,b){this.childIndent=null;if(this.rendered){var i=g.ui.getContainer();if(!i){this.holder=document.createElement("div");this.holder.appendChild(this.wrap);return}var c=b?b.ui.getEl():null;if(c)i.insertBefore(this.wrap,c);else i.appendChild(this.wrap);this.node.renderIndent(true,e!=g)}},addClass:function(a){if(this.elNode)Ext.fly(this.elNode).addClass(a)},removeClass:function(a){if(this.elNode)Ext.fly(this.elNode).removeClass(a)},remove:function(){if(this.rendered){this.holder=document.createElement("div");this.holder.appendChild(this.wrap)}},fireEvent:function(){return this.node.fireEvent.apply(this.node,arguments)},initEvents:function(){this.node.on("move",this.onMove,this);if(this.node.disabled)this.onDisableChange(this.node,true);if(this.node.hidden)this.hide();var b=this.node.getOwnerTree();var a=b.enableDD||b.enableDrag||b.enableDrop;if(a&&(!this.node.isRoot||b.rootVisible))Ext.dd.Registry.register(this.elNode,{node:this.node,handles:this.getDDHandles(),isHandle:false})},getDDHandles:function(){return[this.iconNode,this.textNode,this.elNode]},hide:function(){this.node.hidden=true;if(this.wrap)this.wrap.style.display="none"},show:function(){this.node.hidden=false;if(this.wrap)this.wrap.style.display=""},onContextMenu:function(a){if(this.node.hasListener("contextmenu")||this.node.getOwnerTree().hasListener("contextmenu")){a.preventDefault();this.focus();this.fireEvent("contextmenu",this.node,a)}},onClick:function(c){if(this.dropping){c.stopEvent();return}if(this.fireEvent("beforeclick",this.node,c)!==false){var b=c.getTarget("a");if(!this.disabled&&this.node.attributes.href&&b){this.fireEvent("click",this.node,c);return}else if(b&&c.ctrlKey)c.stopEvent();c.preventDefault();if(this.disabled)return;if(this.node.attributes.singleClickExpand&&!this.animating&&this.node.isExpandable())this.node.toggle();this.fireEvent("click",this.node,c)}else c.stopEvent()},onDblClick:function(a){a.preventDefault();if(this.disabled)return;if(this.fireEvent("beforedblclick",this.node,a)!==false){if(this.checkbox)this.toggleCheck();if(!this.animating&&this.node.isExpandable())this.node.toggle();this.fireEvent("dblclick",this.node,a)}},onOver:function(a){this.addClass("x-tree-node-over")},onOut:function(a){this.removeClass("x-tree-node-over")},onCheckChange:function(){var a=this.checkbox.checked;this.checkbox.defaultChecked=a;this.node.attributes.checked=a;this.fireEvent("checkchange",this.node,a)},ecClick:function(a){if(!this.animating&&this.node.isExpandable())this.node.toggle()},startDrop:function(){this.dropping=true},endDrop:function(){setTimeout(function(){this.dropping=false}.createDelegate(this),50)},expand:function(){this.updateExpandIcon();this.ctNode.style.display=""},focus:function(){if(!this.node.preventHScroll)try{this.anchor.focus()}catch(c){}else try{var b=this.node.getOwnerTree().getTreeEl().dom;var a=b.scrollLeft;this.anchor.focus();b.scrollLeft=a}catch(c){}},toggleCheck:function(b){var a=this.checkbox;if(a){a.checked=b===undefined?!a.checked:b;this.onCheckChange()}},blur:function(){try{this.anchor.blur()}catch(a){}},animExpand:function(b){var a=Ext.get(this.ctNode);a.stopFx();if(!this.node.isExpandable()){this.updateExpandIcon();this.ctNode.style.display="";Ext.callback(b);return}this.animating=true;this.updateExpandIcon();a.slideIn("t",{callback:function(){this.animating=false;Ext.callback(b)},scope:this,duration:this.node.ownerTree.duration||.25})},highlight:function(){var a=this.node.getOwnerTree();Ext.fly(this.wrap).highlight(a.hlColor||"C3DAF9",{endColor:a.hlBaseColor})},collapse:function(){this.updateExpandIcon();this.ctNode.style.display="none"},animCollapse:function(b){var a=Ext.get(this.ctNode);a.enableDisplayMode("block");a.stopFx();this.animating=true;this.updateExpandIcon();a.slideOut("t",{callback:function(){this.animating=false;Ext.callback(b)},scope:this,duration:this.node.ownerTree.duration||.25})},getContainer:function(){return this.ctNode},getEl:function(){return this.wrap},appendDDGhost:function(a){a.appendChild(this.elNode.cloneNode(true))},getDDRepairXY:function(){return Ext.lib.Dom.getXY(this.iconNode)},onRender:function(){this.render()},render:function(c){var e=this.node,b=e.attributes;var d=e.parentNode?e.parentNode.ui.getContainer():e.ownerTree.innerCt.dom;if(!this.rendered){this.rendered=true;this.renderElements(e,b,d,c);if(b.qtip)if(this.textNode.setAttributeNS){this.textNode.setAttributeNS("ext","qtip",b.qtip);if(b.qtipTitle)this.textNode.setAttributeNS("ext","qtitle",b.qtipTitle)}else{this.textNode.setAttribute("ext:qtip",b.qtip);if(b.qtipTitle)this.textNode.setAttribute("ext:qtitle",b.qtipTitle)}else if(b.qtipCfg){b.qtipCfg.target=Ext.id(this.textNode);Ext.QuickTips.register(b.qtipCfg)}this.initEvents();if(!this.node.expanded)this.updateExpandIcon(true)}else if(c===true)d.appendChild(this.wrap)},renderElements:function(e,k,j,l){this.indentMarkup=e.parentNode?e.parentNode.ui.getChildIndent():"";var g=Ext.isBoolean(k.checked),b,c=k.href?k.href:Ext.isGecko?"":"#",d=['<li class="x-tree-node"><div ext:tree-node-id="',e.id,'" class="x-tree-node-el x-tree-node-leaf x-unselectable ',k.cls,'" unselectable="on">','<span class="x-tree-node-indent">',this.indentMarkup,"</span>",'<img src="',this.emptyIcon,'" class="x-tree-ec-icon x-tree-elbow" />','<img src="',k.icon||this.emptyIcon,'" class="x-tree-node-icon',k.icon?" x-tree-node-inline-icon":"",k.iconCls?" "+k.iconCls:"",'" unselectable="on" />',g?'<input class="x-tree-node-cb" type="checkbox" '+(k.checked?'checked="checked" />':"/>"):"",'<a hidefocus="on" class="x-tree-node-anchor" href="',c,'" tabIndex="1" ',k.hrefTarget?' target="'+k.hrefTarget+'"':"",'><span unselectable="on">',e.text,"</span></a></div>",'<ul class="x-tree-node-ct" style="display:none;"></ul>',"</li>"].join("");if(l!==true&&e.nextSibling&&(b=e.nextSibling.ui.getEl()))this.wrap=Ext.DomHelper.insertHtml("beforeBegin",b,d);else this.wrap=Ext.DomHelper.insertHtml("beforeEnd",j,d);this.elNode=this.wrap.childNodes[0];this.ctNode=this.wrap.childNodes[1];var i=this.elNode.childNodes;this.indentNode=i[0];this.ecNode=i[1];this.iconNode=i[2];var h=3;if(g){this.checkbox=i[3];this.checkbox.defaultChecked=this.checkbox.checked;h++}this.anchor=i[h];this.textNode=i[h].firstChild},getAnchor:function(){return this.anchor},getTextEl:function(){return this.textNode},getIconEl:function(){return this.iconNode},isChecked:function(){return this.checkbox?this.checkbox.checked:false},updateExpandIcon:function(){if(this.rendered){var g=this.node,d,c,a=g.isLast()?"x-tree-elbow-end":"x-tree-elbow",e=g.hasChildNodes();if(e||g.attributes.expandable){if(g.expanded){a+="-minus";d="x-tree-node-collapsed";c="x-tree-node-expanded"}else{a+="-plus";d="x-tree-node-expanded";c="x-tree-node-collapsed"}if(this.wasLeaf){this.removeClass("x-tree-node-leaf");this.wasLeaf=false}if(this.c1!=d||this.c2!=c){Ext.fly(this.elNode).replaceClass(d,c);this.c1=d;this.c2=c}}else if(!this.wasLeaf){Ext.fly(this.elNode).replaceClass("x-tree-node-expanded","x-tree-node-collapsed");delete this.c1;delete this.c2;this.wasLeaf=true}var b="x-tree-ec-icon "+a;if(this.ecc!=b){this.ecNode.className=b;this.ecc=b}}},onIdChange:function(a){if(this.rendered)this.elNode.setAttribute("ext:tree-node-id",a)},getChildIndent:function(){if(!this.childIndent){var a=[],b=this.node;while(b){if(!b.isRoot||b.isRoot&&b.ownerTree.rootVisible)if(!b.isLast())a.unshift('<img src="'+this.emptyIcon+'" class="x-tree-elbow-line" />');else a.unshift('<img src="'+this.emptyIcon+'" class="x-tree-icon" />');b=b.parentNode}this.childIndent=a.join("")}return this.childIndent},renderIndent:function(){if(this.rendered){var a="",b=this.node.parentNode;if(b)a=b.ui.getChildIndent();if(this.indentMarkup!=a){this.indentNode.innerHTML=a;this.indentMarkup=a}this.updateExpandIcon()}},destroy:function(){if(this.elNode)Ext.dd.Registry.unregister(this.elNode.id);Ext.each(["textnode","anchor","checkbox","indentNode","ecNode","iconNode","elNode","ctNode","wrap","holder"],function(a){if(this[a]){Ext.fly(this[a]).remove();delete this[a]}},this);delete this.node}};Ext.tree.RootTreeNodeUI=Ext.extend(Ext.tree.TreeNodeUI,{render:function(){if(!this.rendered){var a=this.node.ownerTree.innerCt.dom;this.node.expanded=true;a.innerHTML='<div class="x-tree-root-node"></div>';this.wrap=this.ctNode=a.firstChild}},collapse:Ext.emptyFn,expand:Ext.emptyFn});Ext.tree.TreeLoader=function(a){this.baseParams={};Ext.apply(this,a);this.addEvents("beforeload","load","loadexception");Ext.tree.TreeLoader.superclass.constructor.call(this);if(Ext.isString(this.paramOrder))this.paramOrder=this.paramOrder.split(/[\s,|]/)};Ext.extend(Ext.tree.TreeLoader,Ext.util.Observable,{uiProviders:{},clearOnLoad:true,paramOrder:undefined,paramsAsHash:false,nodeParameter:"node",directFn:undefined,load:function(b,c,a){if(this.clearOnLoad)while(b.firstChild)b.removeChild(b.firstChild);if(this.doPreload(b))this.runCallback(c,a||b,[b]);else if(this.directFn||this.dataUrl||this.url)this.requestData(b,c,a||b)},doPreload:function(d){if(d.attributes.children){if(d.childNodes.length<1){var c=d.attributes.children;d.beginUpdate();for(var b=0,a=c.length;b<a;b++){var e=d.appendChild(this.createNode(c[b]));if(this.preloadChildren)this.doPreload(e)}d.endUpdate()}return true}return false},getParams:function(g){var e=Ext.apply({},this.baseParams),h=this.nodeParameter,b=this.paramOrder;h&&(e[h]=g.id);if(this.directFn){var c=[g.id];if(b){if(h&&b.indexOf(h)>-1)c=[];for(var d=0,a=b.length;d<a;d++)c.push(e[b[d]])}else if(this.paramsAsHash)c=[e];return c}else return e},requestData:function(c,d,b){if(this.fireEvent("beforeload",this,c,d)!==false)if(this.directFn){var a=this.getParams(c);a.push(this.processDirectResponse.createDelegate(this,[{callback:d,node:c,scope:b}],true));this.directFn.apply(window,a)}else this.transId=Ext.Ajax.request({method:this.requestMethod,url:this.dataUrl||this.url,success:this.handleResponse,failure:this.handleFailure,scope:this,argument:{callback:d,node:c,scope:b},params:this.getParams(c)});else this.runCallback(d,b||c,[])},processDirectResponse:function(a,b,c){if(b.status)this.handleResponse({responseData:Ext.isArray(a)?a:null,responseText:a,argument:c});else this.handleFailure({argument:c})},runCallback:function(a,c,b){if(Ext.isFunction(a))a.apply(c,b)},isLoading:function(){return!!this.transId},abort:function(){if(this.isLoading())Ext.Ajax.abort(this.transId)},createNode:function(attr){if(this.baseAttrs)Ext.applyIf(attr,this.baseAttrs);if(this.applyLoader!==false&&!attr.loader)attr.loader=this;if(Ext.isString(attr.uiProvider))attr.uiProvider=this.uiProviders[attr.uiProvider]||eval(attr.uiProvider);if(attr.nodeType)return new Ext.tree.TreePanel.nodeTypes[attr.nodeType](attr);else return attr.leaf?new Ext.tree.TreeNode(attr):new Ext.tree.AsyncTreeNode(attr)},processResponse:function(d,c,k,l){var m=d.responseText;try{var a=d.responseData||Ext.decode(m);c.beginUpdate();for(var g=0,h=a.length;g<h;g++){var b=this.createNode(a[g]);if(b)c.appendChild(b)}c.endUpdate();this.runCallback(k,l||c,[c])}catch(j){this.handleFailure(d)}},handleResponse:function(c){this.transId=false;var b=c.argument;this.processResponse(c,b.node,b.callback,b.scope);this.fireEvent("load",this,b.node,c)},handleFailure:function(c){this.transId=false;var b=c.argument;this.fireEvent("loadexception",this,b.node,c);this.runCallback(b.callback,b.scope||b.node,[b.node])},destroy:function(){this.abort();this.purgeListeners()}});Ext.tree.TreeFilter=function(a,b){this.tree=a;this.filtered={};Ext.apply(this,b)};Ext.tree.TreeFilter.prototype={clearBlank:false,reverse:false,autoClear:false,remove:false,filter:function(d,a,b){a=a||"text";var c;if(typeof d=="string"){var e=d.length;if(e==0&&this.clearBlank){this.clear();return}d=d.toLowerCase();c=function(g){return g.attributes[a].substr(0,e).toLowerCase()==d}}else if(d.exec)c=function(g){return d.test(g.attributes[a])};else throw"Illegal filter type, must be string or regex";this.filterBy(c,null,b)},filterBy:function(d,c,b){b=b||this.tree.root;if(this.autoClear)this.clear();var a=this.filtered,i=this.reverse;var e=function(k){if(k==b)return true;if(a[k.id])return false;var j=d.call(c||k,k);if(!j||i){a[k.id]=k;k.ui.hide();return false}return true};b.cascade(e);if(this.remove)for(var h in a)if(typeof h!="function"){var g=a[h];if(g&&g.parentNode)g.parentNode.removeChild(g)}},clear:function(){var b=this.tree;var a=this.filtered;for(var d in a)if(typeof d!="function"){var c=a[d];if(c)c.ui.show()}this.filtered={}}};Ext.tree.TreeSorter=function(b,c){Ext.apply(this,c);b.on("beforechildrenrendered",this.doSort,this);b.on("append",this.updateSort,this);b.on("insert",this.updateSort,this);b.on("textchange",this.updateSortParent,this);var e=this.dir&&this.dir.toLowerCase()=="desc";var g=this.property||"text";var h=this.sortType;var a=this.folderSort;var d=this.caseSensitive===true;var i=this.leafAttr||"leaf";this.sortFn=function(k,j){if(a){if(k.attributes[i]&&!j.attributes[i])return 1;if(!k.attributes[i]&&j.attributes[i])return-1}var m=h?h(k):d?k.attributes[g]:k.attributes[g].toUpperCase();var l=h?h(j):d?j.attributes[g]:j.attributes[g].toUpperCase();if(m<l)return e?+1:-1;else if(m>l)return e?-1:+1;else return 0}};Ext.tree.TreeSorter.prototype={doSort:function(a){a.sort(this.sortFn)},compareNodes:function(b,a){return b.text.toUpperCase()>a.text.toUpperCase()?1:-1},updateSort:function(a,b){if(b.childrenRendered)this.doSort.defer(1,this,[b])},updateSortParent:function(a){var b=a.parentNode;if(b&&b.childrenRendered)this.doSort.defer(1,this,[b])}};if(Ext.dd.DropZone){Ext.tree.TreeDropZone=function(a,b){this.allowParentInsert=b.allowParentInsert||false;this.allowContainerDrop=b.allowContainerDrop||false;this.appendOnly=b.appendOnly||false;Ext.tree.TreeDropZone.superclass.constructor.call(this,a.getTreeEl(),b);this.tree=a;this.dragOverData={};this.lastInsertClass="x-tree-no-status"};Ext.extend(Ext.tree.TreeDropZone,Ext.dd.DropZone,{ddGroup:"TreeDD",expandDelay:1e3,expandNode:function(a){if(a.hasChildNodes()&&!a.isExpanded())a.expand(false,null,this.triggerCacheRefresh.createDelegate(this))},queueExpand:function(a){this.expandProcId=this.expandNode.defer(this.expandDelay,this,[a])},cancelExpand:function(){if(this.expandProcId){clearTimeout(this.expandProcId);this.expandProcId=false}},isValidDropPoint:function(a,k,i,d,c){if(!a||!c)return false;var g=a.node;var h=c.node;if(!(g&&g.isTarget&&k))return false;if(k=="append"&&g.allowChildren===false)return false;if((k=="above"||k=="below")&&g.parentNode&&g.parentNode.allowChildren===false)return false;if(h&&(g==h||h.contains(g)))return false;var b=this.dragOverData;b.tree=this.tree;b.target=g;b.data=c;b.point=k;b.source=i;b.rawEvent=d;b.dropNode=h;b.cancel=false;var j=this.tree.fireEvent("nodedragover",b);return b.cancel===false&&j!==false},getDropPoint:function(h,g,l){var m=g.node;if(m.isRoot)return m.allowChildren!==false?"append":false;var c=g.ddel;var o=Ext.lib.Dom.getY(c),j=o+c.offsetHeight;var i=Ext.lib.Event.getPageY(h);var k=m.allowChildren===false||m.isLeaf();if(this.appendOnly||m.parentNode.allowChildren===false)return k?false:"append";var d=false;if(!this.allowParentInsert)d=m.hasChildNodes()&&m.isExpanded();var a=(j-o)/(k?2:3);if(i>=o&&i<o+a)return"above";else if(!d&&(k||i>=j-a&&i<=j))return"below";else return"append"},onNodeEnter:function(d,a,c,b){this.cancelExpand()},onContainerOver:function(a,c,b){if(this.allowContainerDrop&&this.isValidDropPoint({ddel:this.tree.getRootNode().ui.elNode,node:this.tree.getRootNode()},"append",a,c,b))return this.dropAllowed;return this.dropNotAllowed},onNodeOver:function(b,i,h,g){var k=this.getDropPoint(h,b,i);var c=b.node;if(!this.expandProcId&&k=="append"&&c.hasChildNodes()&&!b.node.isExpanded())this.queueExpand(c);else if(k!="append")this.cancelExpand();var d=this.dropNotAllowed;if(this.isValidDropPoint(b,k,i,h,g))if(k){var a=b.ddel;var j;if(k=="above"){d=b.node.isFirst()?"x-tree-drop-ok-above":"x-tree-drop-ok-between";j="x-tree-drag-insert-above"}else if(k=="below"){d=b.node.isLast()?"x-tree-drop-ok-below":"x-tree-drop-ok-between";j="x-tree-drag-insert-below"}else{d="x-tree-drop-ok-append";j="x-tree-drag-append"}if(this.lastInsertClass!=j){Ext.fly(a).replaceClass(this.lastInsertClass,j);this.lastInsertClass=j}}return d},onNodeOut:function(d,a,c,b){this.cancelExpand();this.removeDropIndicators(d)},onNodeDrop:function(i,b,h,d){var a=this.getDropPoint(h,i,b);var g=i.node;g.ui.startDrop();if(!this.isValidDropPoint(i,a,b,h,d)){g.ui.endDrop();return false}var c=d.node||(b.getTreeNode?b.getTreeNode(d,g,a,h):null);return this.processDrop(g,d,a,b,h,c)},onContainerDrop:function(a,g,c){if(this.allowContainerDrop&&this.isValidDropPoint({ddel:this.tree.getRootNode().ui.elNode,node:this.tree.getRootNode()},"append",a,g,c)){var d=this.tree.getRootNode();d.ui.startDrop();var b=c.node||(a.getTreeNode?a.getTreeNode(c,d,"append",g):null);return this.processDrop(d,c,"append",a,g,b)}return false},processDrop:function(j,h,b,a,i,d){var g={tree:this.tree,target:j,data:h,point:b,source:a,rawEvent:i,dropNode:d,cancel:!d,dropStatus:false};var c=this.tree.fireEvent("beforenodedrop",g);if(c===false||g.cancel===true||!g.dropNode){j.ui.endDrop();return g.dropStatus}j=g.target;if(b=="append"&&!j.isExpanded())j.expand(false,null,function(){this.completeDrop(g)}.createDelegate(this));else this.completeDrop(g);return true},completeDrop:function(h){var d=h.dropNode,e=h.point,c=h.target;if(!Ext.isArray(d))d=[d];var g;for(var b=0,a=d.length;b<a;b++){g=d[b];if(e=="above")c.parentNode.insertBefore(g,c);else if(e=="below")c.parentNode.insertBefore(g,c.nextSibling);else c.appendChild(g)}g.ui.focus();if(Ext.enableFx&&this.tree.hlDrop)g.ui.highlight();c.ui.endDrop();this.tree.fireEvent("nodedrop",h)},afterNodeMoved:function(a,c,g,d,b){if(Ext.enableFx&&this.tree.hlDrop){b.ui.focus();b.ui.highlight()}this.tree.fireEvent("nodedrop",this.tree,d,c,a,g)},getTree:function(){return this.tree},removeDropIndicators:function(b){if(b&&b.ddel){var a=b.ddel;Ext.fly(a).removeClass(["x-tree-drag-insert-above","x-tree-drag-insert-below","x-tree-drag-append"]);this.lastInsertClass="_noclass"}},beforeDragDrop:function(b,a,c){this.cancelExpand();return true},afterRepair:function(a){if(a&&Ext.enableFx)a.node.ui.highlight();this.hideProxy()}})}if(Ext.dd.DragZone){Ext.tree.TreeDragZone=function(a,b){Ext.tree.TreeDragZone.superclass.constructor.call(this,a.innerCt,b);this.tree=a};Ext.extend(Ext.tree.TreeDragZone,Ext.dd.DragZone,{ddGroup:"TreeDD",onBeforeDrag:function(a,b){var c=a.node;return c&&c.draggable&&!c.disabled},onInitDrag:function(b){var a=this.dragData;this.tree.getSelectionModel().select(a.node);this.tree.eventModel.disable();this.proxy.update("");a.node.ui.appendDDGhost(this.proxy.ghost.dom);this.tree.fireEvent("startdrag",this.tree,a.node,b)},getRepairXY:function(b,a){return a.node.ui.getDDRepairXY()},onEndDrag:function(a,b){this.tree.eventModel.enable.defer(100,this.tree.eventModel);this.tree.fireEvent("enddrag",this.tree,a.node,b)},onValidDrop:function(a,b,c){this.tree.fireEvent("dragdrop",this.tree,this.dragData.node,a,b);this.hideProxy()},beforeInvalidDrop:function(a,c){var b=this.tree.getSelectionModel();b.clearSelections();b.select(this.dragData.node)},afterRepair:function(){if(Ext.enableFx&&this.tree.hlDrop)Ext.Element.fly(this.dragData.ddel).highlight(this.hlColor||"c3daf9");this.dragging=false}})}Ext.tree.TreeEditor=function(a,c,b){c=c||{};var d=c.events?c:new Ext.form.TextField(c);Ext.tree.TreeEditor.superclass.constructor.call(this,d,b);this.tree=a;if(!a.rendered)a.on("render",this.initEditor,this);else this.initEditor(a)};Ext.extend(Ext.tree.TreeEditor,Ext.Editor,{alignment:"l-l",autoSize:false,hideEl:false,cls:"x-small-editor x-tree-editor",shim:false,shadow:"frame",maxWidth:250,editDelay:350,initEditor:function(a){a.on({scope:this,beforeclick:this.beforeNodeClick,dblclick:this.onNodeDblClick});this.on({scope:this,complete:this.updateNode,beforestartedit:this.fitToTree,specialkey:this.onSpecialKey});this.on("startedit",this.bindScroll,this,{delay:10})},fitToTree:function(b,c){var e=this.tree.getTreeEl().dom,d=c.dom;if(e.scrollLeft>d.offsetLeft)e.scrollLeft=d.offsetLeft;var a=Math.min(this.maxWidth,(e.clientWidth>20?e.clientWidth:e.offsetWidth)-Math.max(0,d.offsetLeft-e.scrollLeft)-5);this.setSize(a,"")},triggerEdit:function(a,c){this.completeEdit();if(a.attributes.editable!==false){this.editNode=a;if(this.tree.autoScroll)Ext.fly(a.ui.getEl()).scrollIntoView(this.tree.body);var b=a.text||"";if(!Ext.isGecko&&Ext.isEmpty(a.text))a.setText("&#160;");this.autoEditTimer=this.startEdit.defer(this.editDelay,this,[a.ui.textNode,b]);return false}},bindScroll:function(){this.tree.getTreeEl().on("scroll",this.cancelEdit,this)},beforeNodeClick:function(a,b){clearTimeout(this.autoEditTimer);if(this.tree.getSelectionModel().isSelected(a)){b.stopEvent();return this.triggerEdit(a)}},onNodeDblClick:function(a,b){clearTimeout(this.autoEditTimer)},updateNode:function(a,b){this.tree.getTreeEl().un("scroll",this.cancelEdit,this);this.editNode.setText(b)},onHide:function(){Ext.tree.TreeEditor.superclass.onHide.call(this);if(this.editNode)this.editNode.ui.focus.defer(50,this.editNode.ui)},onSpecialKey:function(c,b){var a=b.getKey();if(a==b.ESC){b.stopEvent();this.cancelEdit()}else if(a==b.ENTER&&!b.hasModifier()){b.stopEvent();this.completeEdit()}},onDestroy:function(){clearTimeout(this.autoEditTimer);Ext.tree.TreeEditor.superclass.onDestroy.call(this);var a=this.tree;a.un("beforeclick",this.beforeNodeClick,this);a.un("dblclick",this.onNodeDblClick,this)}});var swfobject=function(){var E="undefined",s="object",T="Shockwave Flash",X="ShockwaveFlash.ShockwaveFlash",r="application/x-shockwave-flash",S="SWFObjectExprInst",y="onreadystatechange",P=window,k=document,u=navigator,U=false,V=[i],p=[],O=[],J=[],m,R,F,C,K=false,a=false,o,H,n=true,N=function(){var ab=typeof k.getElementById!=E&&typeof k.getElementsByTagName!=E&&typeof k.createElement!=E,ai=u.userAgent.toLowerCase(),Z=u.platform.toLowerCase(),af=Z?/win/.test(Z):/win/.test(ai),ad=Z?/mac/.test(Z):/mac/.test(ai),ag=/webkit/.test(ai)?parseFloat(ai.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,Y=!+"\v1",ah=[0,0,0],ac=null;if(typeof u.plugins!=E&&typeof u.plugins[T]==s){ac=u.plugins[T].description;if(ac&&!(typeof u.mimeTypes!=E&&u.mimeTypes[r]&&!u.mimeTypes[r].enabledPlugin)){U=true;Y=false;ac=ac.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ah[0]=parseInt(ac.replace(/^(.*)\..*$/,"$1"),10);ah[1]=parseInt(ac.replace(/^.*\.(.*)\s.*$/,"$1"),10);ah[2]=/[a-zA-Z]/.test(ac)?parseInt(ac.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else if(typeof P.ActiveXObject!=E)try{var ae=new ActiveXObject(X);if(ae){ac=ae.GetVariable("$version");if(ac){Y=true;ac=ac.split(" ")[1].split(",");ah=[parseInt(ac[0],10),parseInt(ac[1],10),parseInt(ac[2],10)]}}}catch(aa){}return{w3:ab,pv:ah,wk:ag,ie:Y,win:af,mac:ad}}(),l=function(){if(!N.w3)return;if(typeof k.readyState!=E&&k.readyState=="complete"||typeof k.readyState==E&&(k.getElementsByTagName("body")[0]||k.body))g();if(!K){if(typeof k.addEventListener!=E)k.addEventListener("DOMContentLoaded",g,false);if(N.ie&&N.win){k.attachEvent(y,function(){if(k.readyState=="complete"){k.detachEvent(y,arguments.callee);g()}});if(P==top)(function(){if(K)return;try{k.documentElement.doScroll("left")}catch(Y){setTimeout(arguments.callee,0);return}g()})()}if(N.wk)(function(){if(K)return;if(!/loaded|complete/.test(k.readyState)){setTimeout(arguments.callee,0);return}g()})();t(g)}}();function g(){if(K)return;try{var aa=k.getElementsByTagName("body")[0].appendChild(D("span"));aa.parentNode.removeChild(aa)}catch(ab){return}K=true;var Y=V.length;for(var Z=0;Z<Y;Z++)V[Z]()}function L(Y){if(K)Y();else V[V.length]=Y}function t(Z){if(typeof P.addEventListener!=E)P.addEventListener("load",Z,false);else if(typeof k.addEventListener!=E)k.addEventListener("load",Z,false);else if(typeof P.attachEvent!=E)j(P,"onload",Z);else if(typeof P.onload=="function"){var Y=P.onload;P.onload=function(){Y();Z()}}else P.onload=Z}function i(){if(U)W();else I()}function W(){var Y=k.getElementsByTagName("body")[0];var ab=D(s);ab.setAttribute("type",r);var aa=Y.appendChild(ab);if(aa){var Z=0;(function(){if(typeof aa.GetVariable!=E){var ac=aa.GetVariable("$version");if(ac){ac=ac.split(" ")[1].split(",");N.pv=[parseInt(ac[0],10),parseInt(ac[1],10),parseInt(ac[2],10)]}}else if(Z<10){Z++;setTimeout(arguments.callee,10);return}Y.removeChild(ab);aa=null;I()})()}else I()}function I(){var ah=p.length;if(ah>0)for(var ag=0;ag<ah;ag++){var Z=p[ag].id;var ac=p[ag].callbackFn;var ab={success:false,id:Z};if(N.pv[0]>0){var af=c(Z);if(af)if(G(p[ag].swfVersion)&&!(N.wk&&N.wk<312)){x(Z,true);if(ac){ab.success=true;ab.ref=A(Z);ac(ab)}}else if(p[ag].expressInstall&&B()){var aj={};aj.data=p[ag].expressInstall;aj.width=af.getAttribute("width")||"0";aj.height=af.getAttribute("height")||"0";if(af.getAttribute("class"))aj.styleclass=af.getAttribute("class");if(af.getAttribute("align"))aj.align=af.getAttribute("align");var ai={};var Y=af.getElementsByTagName("param");var ad=Y.length;for(var ae=0;ae<ad;ae++)if(Y[ae].getAttribute("name").toLowerCase()!="movie")ai[Y[ae].getAttribute("name")]=Y[ae].getAttribute("value");Q(aj,ai,Z,ac)}else{q(af);if(ac)ac(ab)}}else{x(Z,true);if(ac){var aa=A(Z);if(aa&&typeof aa.SetVariable!=E){ab.success=true;ab.ref=aa}ac(ab)}}}}function A(ab){var Y=null;var Z=c(ab);if(Z&&Z.nodeName=="OBJECT")if(typeof Z.SetVariable!=E)Y=Z;else{var aa=Z.getElementsByTagName(s)[0];if(aa)Y=aa}return Y}function B(){return!a&&G("6.0.65")&&(N.win||N.mac)&&!(N.wk&&N.wk<312)}function Q(ab,ac,Y,aa){a=true;F=aa||null;C={success:false,id:Y};var af=c(Y);if(af){if(af.nodeName=="OBJECT"){m=h(af);R=null}else{m=af;R=Y}ab.id=S;if(typeof ab.width==E||!/%$/.test(ab.width)&&parseInt(ab.width,10)<310)ab.width="310";if(typeof ab.height==E||!/%$/.test(ab.height)&&parseInt(ab.height,10)<137)ab.height="137";k.title=k.title.slice(0,47)+" - Flash Player Installation";var ae=N.ie&&N.win?"ActiveX":"PlugIn",ad="MMredirectURL="+P.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ae+"&MMdoctitle="+k.title;if(typeof ac.flashvars!=E)ac.flashvars+="&"+ad;else ac.flashvars=ad;if(N.ie&&N.win&&af.readyState!=4){var Z=D("div");Y+="SWFObjectNew";Z.setAttribute("id",Y);af.parentNode.insertBefore(Z,af);af.style.display="none";(function(){if(af.readyState==4)af.parentNode.removeChild(af);else setTimeout(arguments.callee,10)})()}v(ab,ac,Y)}}function q(Z){if(N.ie&&N.win&&Z.readyState!=4){var Y=D("div");Z.parentNode.insertBefore(Y,Z);Y.parentNode.replaceChild(h(Z),Y);Z.style.display="none";(function(){if(Z.readyState==4)Z.parentNode.removeChild(Z);else setTimeout(arguments.callee,10)})()}else Z.parentNode.replaceChild(h(Z),Z)}function h(ad){var ab=D("div");if(N.win&&N.ie)ab.innerHTML=ad.innerHTML;else{var Z=ad.getElementsByTagName(s)[0];if(Z){var ae=Z.childNodes;if(ae){var Y=ae.length;for(var aa=0;aa<Y;aa++)if(!(ae[aa].nodeType==1&&ae[aa].nodeName=="PARAM")&&!(ae[aa].nodeType==8))ab.appendChild(ae[aa].cloneNode(true))}}}return ab}function v(aj,ah,Z){var Y,ab=c(Z);if(N.wk&&N.wk<312)return Y;if(ab){if(typeof aj.id==E)aj.id=Z;if(N.ie&&N.win){var ai="";for(var af in aj)if(aj[af]!=Object.prototype[af])if(af.toLowerCase()=="data")ah.movie=aj[af];else if(af.toLowerCase()=="styleclass")ai+=' class="'+aj[af]+'"';else if(af.toLowerCase()!="classid")ai+=" "+af+'="'+aj[af]+'"';var ag="";for(var ae in ah)if(ah[ae]!=Object.prototype[ae])ag+='<param name="'+ae+'" value="'+ah[ae]+'" />';ab.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ai+">"+ag+"</object>";O[O.length]=aj.id;Y=c(aj.id)}else{var aa=D(s);aa.setAttribute("type",r);for(var ad in aj)if(aj[ad]!=Object.prototype[ad])if(ad.toLowerCase()=="styleclass")aa.setAttribute("class",aj[ad]);else if(ad.toLowerCase()!="classid")aa.setAttribute(ad,aj[ad]);for(var ac in ah)if(ah[ac]!=Object.prototype[ac]&&ac.toLowerCase()!="movie")e(aa,ac,ah[ac]);ab.parentNode.replaceChild(aa,ab);Y=aa}}return Y}function e(aa,Y,Z){var ab=D("param");ab.setAttribute("name",Y);ab.setAttribute("value",Z);aa.appendChild(ab)}function z(Z){var Y=c(Z);if(Y&&Y.nodeName=="OBJECT")if(N.ie&&N.win){Y.style.display="none";(function(){if(Y.readyState==4)b(Z);else setTimeout(arguments.callee,10)})()}else Y.parentNode.removeChild(Y)}function b(aa){var Z=c(aa);if(Z){for(var Y in Z)if(typeof Z[Y]=="function")Z[Y]=null;Z.parentNode.removeChild(Z)}}function c(aa){var Y=null;try{Y=k.getElementById(aa)}catch(Z){}return Y}function D(Y){return k.createElement(Y)}function j(aa,Y,Z){aa.attachEvent(Y,Z);J[J.length]=[aa,Y,Z]}function G(aa){var Z=N.pv,Y=aa.split(".");Y[0]=parseInt(Y[0],10);Y[1]=parseInt(Y[1],10)||0;Y[2]=parseInt(Y[2],10)||0;return Z[0]>Y[0]||Z[0]==Y[0]&&Z[1]>Y[1]||Z[0]==Y[0]&&Z[1]==Y[1]&&Z[2]>=Y[2]?true:false}function w(ad,Z,ae,ac){if(N.ie&&N.mac)return;var ab=k.getElementsByTagName("head")[0];if(!ab)return;var Y=ae&&typeof ae=="string"?ae:"screen";if(ac){o=null;H=null}if(!o||H!=Y){var aa=D("style");aa.setAttribute("type","text/css");aa.setAttribute("media",Y);o=ab.appendChild(aa);if(N.ie&&N.win&&typeof k.styleSheets!=E&&k.styleSheets.length>0)o=k.styleSheets[k.styleSheets.length-1];H=Y}if(N.ie&&N.win){if(o&&typeof o.addRule==s)o.addRule(ad,Z)}else if(o&&typeof k.createTextNode!=E)o.appendChild(k.createTextNode(ad+" {"+Z+"}"))}function x(aa,Y){if(!n)return;var Z=Y?"visible":"hidden";if(K&&c(aa))c(aa).style.visibility=Z;else w("#"+aa,"visibility:"+Z)}function M(Z){var aa=/[\\\"<>\.;]/;var Y=aa.exec(Z)!=null;return Y&&typeof encodeURIComponent!=E?encodeURIComponent(Z):Z}var d=function(){if(N.ie&&N.win)window.attachEvent("onunload",function(){var ad=J.length;for(var ac=0;ac<ad;ac++)J[ac][0].detachEvent(J[ac][1],J[ac][2]);var aa=O.length;for(var ab=0;ab<aa;ab++)z(O[ab]);for(var Z in N)N[Z]=null;N=null;for(var Y in swfobject)swfobject[Y]=null;swfobject=null})}();return{registerObject:function(ac,Y,ab,aa){if(N.w3&&ac&&Y){var Z={};Z.id=ac;Z.swfVersion=Y;Z.expressInstall=ab;Z.callbackFn=aa;p[p.length]=Z;x(ac,false)}else if(aa)aa({success:false,id:ac})},getObjectById:function(Y){if(N.w3)return A(Y)},embedSWF:function(ac,ai,af,ah,Z,ab,aa,ae,ag,ad){var Y={success:false,id:ai};if(N.w3&&!(N.wk&&N.wk<312)&&ac&&ai&&af&&ah&&Z){x(ai,false);L(function(){af+="";ah+="";var ak={};if(ag&&typeof ag===s)for(var am in ag)ak[am]=ag[am];ak.data=ac;ak.width=af;ak.height=ah;var an={};if(ae&&typeof ae===s)for(var al in ae)an[al]=ae[al];if(aa&&typeof aa===s)for(var aj in aa)if(typeof an.flashvars!=E)an.flashvars+="&"+aj+"="+aa[aj];else an.flashvars=aj+"="+aa[aj];if(G(Z)){var ao=v(ak,an,ai);if(ak.id==ai)x(ai,true);Y.success=true;Y.ref=ao}else if(ab&&B()){ak.data=ab;Q(ak,an,ai,ad);return}else x(ai,true);if(ad)ad(Y)})}else if(ad)ad(Y)},switchOffAutoHideShow:function(){n=false},ua:N,getFlashPlayerVersion:function(){return{major:N.pv[0],minor:N.pv[1],release:N.pv[2]}},hasFlashPlayerVersion:G,createSWF:function(aa,Z,Y){if(N.w3)return v(aa,Z,Y);else return undefined},showExpressInstall:function(aa,ab,Y,Z){if(N.w3&&B())Q(aa,ab,Y,Z)},removeSWF:function(Y){if(N.w3)z(Y)},createCSS:function(ab,aa,Z,Y){if(N.w3)w(ab,aa,Z,Y)},addDomLoadEvent:L,addLoadEvent:t,getQueryParamValue:function(ab){var aa=k.location.search||k.location.hash;if(aa){if(/\?/.test(aa))aa=aa.split("?")[1];if(ab==null)return M(aa);var Z=aa.split("&");for(var Y=0;Y<Z.length;Y++)if(Z[Y].substring(0,Z[Y].indexOf("="))==ab)return M(Z[Y].substring(Z[Y].indexOf("=")+1))}return""},expressInstallCallback:function(){if(a){var Y=c(S);if(Y&&m){Y.parentNode.replaceChild(m,Y);if(R){x(R,true);if(N.ie&&N.win)m.style.display="block"}if(F)F(C)}a=false}}}}();Ext.FlashComponent=Ext.extend(Ext.BoxComponent,{flashVersion:"9.0.115",backgroundColor:"#ffffff",wmode:"opaque",flashVars:undefined,flashParams:undefined,url:undefined,swfId:undefined,swfWidth:"100%",swfHeight:"100%",expressInstall:false,initComponent:function(){Ext.FlashComponent.superclass.initComponent.call(this);this.addEvents("initialize")},onRender:function(){Ext.FlashComponent.superclass.onRender.apply(this,arguments);var b=Ext.apply({allowScriptAccess:"always",bgcolor:this.backgroundColor,wmode:this.wmode},this.flashParams),a=Ext.apply({allowedDomain:document.location.hostname,YUISwfId:this.getId(),YUIBridgeCallback:"Ext.FlashEventProxy.onEvent"},this.flashVars);new swfobject.embedSWF(this.url,this.id,this.swfWidth,this.swfHeight,this.flashVersion,this.expressInstall?Ext.FlashComponent.EXPRESS_INSTALL_URL:undefined,a,b);this.swf=Ext.getDom(this.id);this.el=Ext.get(this.swf)},getSwfId:function(){return this.swfId||(this.swfId="extswf"+ ++Ext.Component.AUTO_ID)},getId:function(){return this.id||(this.id="extflashcmp"+ ++Ext.Component.AUTO_ID)},onFlashEvent:function(a){switch(a.type){case"swfReady":this.initSwf();return;case"log":return}a.component=this;this.fireEvent(a.type.toLowerCase().replace(/event$/,""),a)},initSwf:function(){this.onSwfReady(!!this.isInitialized);this.isInitialized=true;this.fireEvent("initialize",this)},beforeDestroy:function(){if(this.rendered)swfobject.removeSWF(this.swf.id);Ext.FlashComponent.superclass.beforeDestroy.call(this)},onSwfReady:Ext.emptyFn});Ext.FlashComponent.EXPRESS_INSTALL_URL="http://swfobject.googlecode.com/svn/trunk/swfobject/expressInstall.swf";Ext.reg("flash",Ext.FlashComponent);Ext.FlashEventProxy={onEvent:function(c,b){var a=Ext.getCmp(c);if(a)a.onFlashEvent(b);else arguments.callee.defer(10,this,[c,b])}};Ext.chart.Chart=Ext.extend(Ext.FlashComponent,{refreshBuffer:100,chartStyle:{padding:10,animationEnabled:true,font:{name:"Tahoma",color:4473924,size:11},dataTip:{padding:5,border:{color:10075112,size:1},background:{color:14346230,alpha:.9},font:{name:"Tahoma",color:1393291,size:10,bold:true}}},extraStyle:null,seriesStyles:null,disableCaching:Ext.isIE||Ext.isOpera,disableCacheParam:"_dc",initComponent:function(){Ext.chart.Chart.superclass.initComponent.call(this);if(!this.url)this.url=Ext.chart.Chart.CHART_URL;if(this.disableCaching)this.url=Ext.urlAppend(this.url,String.format("{0}={1}",this.disableCacheParam,(new Date).getTime()));this.addEvents("itemmouseover","itemmouseout","itemclick","itemdoubleclick","itemdragstart","itemdrag","itemdragend","beforerefresh","refresh");this.store=Ext.StoreMgr.lookup(this.store)},setStyle:function(a,b){this.swf.setStyle(a,Ext.encode(b))},setStyles:function(a){this.swf.setStyles(Ext.encode(a))},setSeriesStyles:function(b){this.seriesStyles=b;var a=[];Ext.each(b,function(c){a.push(Ext.encode(c))});this.swf.setSeriesStyles(a)},setCategoryNames:function(a){this.swf.setCategoryNames(a)},setLegendRenderer:function(c,b){var a=this;b=b||a;a.removeFnProxy(a.legendFnName);a.legendFnName=a.createFnProxy(function(d){return c.call(b,d)});a.swf.setLegendLabelFunction(a.legendFnName)},setTipRenderer:function(c,b){var a=this;b=b||a;a.removeFnProxy(a.tipFnName);a.tipFnName=a.createFnProxy(function(h,e,g){var d=a.store.getAt(e);return c.call(b,a,d,e,g)});a.swf.setDataTipFunction(a.tipFnName)},setSeries:function(a){this.series=a;this.refresh()},bindStore:function(a,b){if(!b&&this.store)if(a!==this.store&&this.store.autoDestroy)this.store.destroy();else{this.store.un("datachanged",this.refresh,this);this.store.un("add",this.delayRefresh,this);this.store.un("remove",this.delayRefresh,this);this.store.un("update",this.delayRefresh,this);this.store.un("clear",this.refresh,this)}if(a){a=Ext.StoreMgr.lookup(a);a.on({scope:this,datachanged:this.refresh,add:this.delayRefresh,remove:this.delayRefresh,update:this.delayRefresh,clear:this.refresh})}this.store=a;if(a&&!b)this.refresh()},onSwfReady:function(b){Ext.chart.Chart.superclass.onSwfReady.call(this,b);var a;this.swf.setType(this.type);if(this.chartStyle)this.setStyles(Ext.apply({},this.extraStyle,this.chartStyle));if(this.categoryNames)this.setCategoryNames(this.categoryNames);if(this.tipRenderer){a=this.getFunctionRef(this.tipRenderer);this.setTipRenderer(a.fn,a.scope)}if(this.legendRenderer){a=this.getFunctionRef(this.legendRenderer);this.setLegendRenderer(a.fn,a.scope)}if(!b)this.bindStore(this.store,true);this.refresh.defer(10,this)},delayRefresh:function(){if(!this.refreshTask)this.refreshTask=new Ext.util.DelayedTask(this.refresh,this);this.refreshTask.delay(this.refreshBuffer)},refresh:function(){if(this.fireEvent("beforerefresh",this)!==false){var m=false;var k=[],c=this.store.data.items;for(var g=0,l=c.length;g<l;g++)k[g]=c[g].data;var e=[];var d=0;var n=null;var h=0;if(this.series){d=this.series.length;for(h=0;h<d;h++){n=this.series[h];var b={};for(var a in n)if(a=="style"&&n.style!==null){b.style=Ext.encode(n.style);m=true}else b[a]=n[a];e.push(b)}}if(d>0)for(h=0;h<d;h++){n=e[h];if(!n.type)n.type=this.type;n.dataProvider=k}else e.push({type:this.type,dataProvider:k});this.swf.setDataProvider(e);if(this.seriesStyles)this.setSeriesStyles(this.seriesStyles);this.fireEvent("refresh",this)}},createFnProxy:function(a){var b="extFnProxy"+ ++Ext.chart.Chart.PROXY_FN_ID;Ext.chart.Chart.proxyFunction[b]=a;return"Ext.chart.Chart.proxyFunction."+b},removeFnProxy:function(a){if(!Ext.isEmpty(a)){a=a.replace("Ext.chart.Chart.proxyFunction.","");delete Ext.chart.Chart.proxyFunction[a]}},getFunctionRef:function(a){if(Ext.isFunction(a))return{fn:a,scope:this};else return{fn:a.fn,scope:a.scope||this}},onDestroy:function(){if(this.refreshTask&&this.refreshTask.cancel)this.refreshTask.cancel();Ext.chart.Chart.superclass.onDestroy.call(this);this.bindStore(null);this.removeFnProxy(this.tipFnName);this.removeFnProxy(this.legendFnName)}});Ext.reg("chart",Ext.chart.Chart);Ext.chart.Chart.PROXY_FN_ID=0;Ext.chart.Chart.proxyFunction={};Ext.chart.Chart.CHART_URL="http://yui.yahooapis.com/2.8.0/build/charts/assets/charts.swf";Ext.chart.PieChart=Ext.extend(Ext.chart.Chart,{type:"pie",onSwfReady:function(a){Ext.chart.PieChart.superclass.onSwfReady.call(this,a);this.setDataField(this.dataField);this.setCategoryField(this.categoryField)},setDataField:function(a){this.dataField=a;this.swf.setDataField(a)},setCategoryField:function(a){this.categoryField=a;this.swf.setCategoryField(a)}});Ext.reg("piechart",Ext.chart.PieChart);Ext.chart.CartesianChart=Ext.extend(Ext.chart.Chart,{onSwfReady:function(a){Ext.chart.CartesianChart.superclass.onSwfReady.call(this,a);this.labelFn=[];if(this.xField)this.setXField(this.xField);if(this.yField)this.setYField(this.yField);if(this.xAxis)this.setXAxis(this.xAxis);if(this.xAxes)this.setXAxes(this.xAxes);if(this.yAxis)this.setYAxis(this.yAxis);if(this.yAxes)this.setYAxes(this.yAxes);if(Ext.isDefined(this.constrainViewport))this.swf.setConstrainViewport(this.constrainViewport)},setXField:function(a){this.xField=a;this.swf.setHorizontalField(a)},setYField:function(a){this.yField=a;this.swf.setVerticalField(a)},setXAxis:function(a){this.xAxis=this.createAxis("xAxis",a);this.swf.setHorizontalAxis(this.xAxis)},setXAxes:function(c){var b;for(var a=0;a<c.length;a++){b=this.createAxis("xAxis"+a,c[a]);this.swf.setHorizontalAxis(b)}},setYAxis:function(a){this.yAxis=this.createAxis("yAxis",a);this.swf.setVerticalAxis(this.yAxis)},setYAxes:function(c){var b;for(var a=0;a<c.length;a++){b=this.createAxis("yAxis"+a,c[a]);this.swf.setVerticalAxis(b)}},createAxis:function(b,d){var e=Ext.apply({},d),c,a;if(this[b]){a=this[b].labelFunction;this.removeFnProxy(a);this.labelFn.remove(a)}if(e.labelRenderer){c=this.getFunctionRef(e.labelRenderer);e.labelFunction=this.createFnProxy(function(g){return c.fn.call(c.scope,g)});delete e.labelRenderer;this.labelFn.push(e.labelFunction)}if(b.indexOf("xAxis")>-1&&e.position=="left")e.position="bottom";return e},onDestroy:function(){Ext.chart.CartesianChart.superclass.onDestroy.call(this);Ext.each(this.labelFn,function(a){this.removeFnProxy(a)},this)}});Ext.reg("cartesianchart",Ext.chart.CartesianChart);Ext.chart.LineChart=Ext.extend(Ext.chart.CartesianChart,{type:"line"});Ext.reg("linechart",Ext.chart.LineChart);Ext.chart.ColumnChart=Ext.extend(Ext.chart.CartesianChart,{type:"column"});Ext.reg("columnchart",Ext.chart.ColumnChart);Ext.chart.StackedColumnChart=Ext.extend(Ext.chart.CartesianChart,{type:"stackcolumn"});Ext.reg("stackedcolumnchart",Ext.chart.StackedColumnChart);Ext.chart.BarChart=Ext.extend(Ext.chart.CartesianChart,{type:"bar"});Ext.reg("barchart",Ext.chart.BarChart);Ext.chart.StackedBarChart=Ext.extend(Ext.chart.CartesianChart,{type:"stackbar"});Ext.reg("stackedbarchart",Ext.chart.StackedBarChart);Ext.chart.Axis=function(a){Ext.apply(this,a)};Ext.chart.Axis.prototype={type:null,orientation:"horizontal",reverse:false,labelFunction:null,hideOverlappingLabels:true,labelSpacing:2};Ext.chart.NumericAxis=Ext.extend(Ext.chart.Axis,{type:"numeric",minimum:NaN,maximum:NaN,majorUnit:NaN,minorUnit:NaN,snapToUnits:true,alwaysShowZero:true,scale:"linear",roundMajorUnit:true,calculateByLabelSize:true,position:"left",adjustMaximumByMajorUnit:true,adjustMinimumByMajorUnit:true});Ext.chart.TimeAxis=Ext.extend(Ext.chart.Axis,{type:"time",minimum:null,maximum:null,majorUnit:NaN,majorTimeUnit:null,minorUnit:NaN,minorTimeUnit:null,snapToUnits:true,stackingEnabled:false,calculateByLabelSize:true});Ext.chart.CategoryAxis=Ext.extend(Ext.chart.Axis,{type:"category",categoryNames:null,calculateCategoryCount:false});Ext.chart.Series=function(a){Ext.apply(this,a)};Ext.chart.Series.prototype={type:null,displayName:null};Ext.chart.CartesianSeries=Ext.extend(Ext.chart.Series,{xField:null,yField:null,showInLegend:true,axis:"primary"});Ext.chart.ColumnSeries=Ext.extend(Ext.chart.CartesianSeries,{type:"column"});Ext.chart.LineSeries=Ext.extend(Ext.chart.CartesianSeries,{type:"line"});Ext.chart.BarSeries=Ext.extend(Ext.chart.CartesianSeries,{type:"bar"});Ext.chart.PieSeries=Ext.extend(Ext.chart.Series,{type:"pie",dataField:null,categoryField:null});Ext.menu.Menu=Ext.extend(Ext.Container,{minWidth:120,shadow:"sides",subMenuAlign:"tl-tr?",defaultAlign:"tl-bl?",allowOtherMenus:false,ignoreParentClicks:false,enableScrolling:true,maxHeight:null,scrollIncrement:24,showSeparator:true,defaultOffsets:[0,0],plain:false,floating:true,zIndex:15e3,hidden:true,layout:"menu",hideMode:"offsets",scrollerHeight:8,autoLayout:true,defaultType:"menuitem",bufferResize:false,initComponent:function(){if(Ext.isArray(this.initialConfig))Ext.apply(this,{items:this.initialConfig});this.addEvents("click","mouseover","mouseout","itemclick");Ext.menu.MenuMgr.register(this);if(this.floating)Ext.EventManager.onWindowResize(this.hide,this);else{if(this.initialConfig.hidden!==false)this.hidden=false;this.internalDefaults={hideOnClick:false}}Ext.menu.Menu.superclass.initComponent.call(this);if(this.autoLayout){var a=this.doLayout.createDelegate(this,[]);this.on({add:a,remove:a})}},getLayoutTarget:function(){return this.ul},onRender:function(b,a){if(!b)b=Ext.getBody();var c={id:this.getId(),cls:"x-menu "+(this.floating?"x-menu-floating x-layer ":"")+(this.cls||"")+(this.plain?" x-menu-plain":"")+(this.showSeparator?"":" x-menu-nosep"),style:this.style,cn:[{tag:"a",cls:"x-menu-focus",href:"#",onclick:"return false;",tabIndex:"-1"},{tag:"ul",cls:"x-menu-list"}]};if(this.floating)this.el=new Ext.Layer({shadow:this.shadow,dh:c,constrain:false,parentEl:b,zindex:this.zIndex});else this.el=b.createChild(c);Ext.menu.Menu.superclass.onRender.call(this,b,a);if(!this.keyNav)this.keyNav=new Ext.menu.MenuNav(this);this.focusEl=this.el.child("a.x-menu-focus");this.ul=this.el.child("ul.x-menu-list");this.mon(this.ul,{scope:this,click:this.onClick,mouseover:this.onMouseOver,mouseout:this.onMouseOut});if(this.enableScrolling)this.mon(this.el,{scope:this,delegate:".x-menu-scroller",click:this.onScroll,mouseover:this.deactivateActive})},findTargetItem:function(b){var a=b.getTarget(".x-menu-list-item",this.ul,true);if(a&&a.menuItemId)return this.items.get(a.menuItemId)},onClick:function(b){var a=this.findTargetItem(b);if(a)if(a.isFormField)this.setActiveItem(a);else if(a instanceof Ext.menu.BaseItem)if(a.menu&&this.ignoreParentClicks){a.expandMenu();b.preventDefault()}else if(a.onClick){a.onClick(b);this.fireEvent("click",this,a,b)}},setActiveItem:function(a,b){if(a!=this.activeItem){this.deactivateActive();if((this.activeItem=a).isFormField)a.focus();else a.activate(b)}else if(b)a.expandMenu()},deactivateActive:function(){var b=this.activeItem;if(b){if(b.isFormField){if(b.collapse)b.collapse()}else b.deactivate();delete this.activeItem}},tryActivate:function(g,e){var b=this.items;for(var c=g,a=b.length;c>=0&&c<a;c+=e){var d=b.get(c);if(!d.disabled&&(d.canActivate||d.isFormField)){this.setActiveItem(d,false);return d}}return false},onMouseOver:function(b){var a=this.findTargetItem(b);if(a)if(a.canActivate&&!a.disabled)this.setActiveItem(a,true);this.over=true;this.fireEvent("mouseover",this,b,a)},onMouseOut:function(b){var a=this.findTargetItem(b);if(a)if(a==this.activeItem&&a.shouldDeactivate&&a.shouldDeactivate(b)){this.activeItem.deactivate();delete this.activeItem}this.over=false;this.fireEvent("mouseout",this,b,a)},onScroll:function(d,b){if(d)d.stopEvent();var a=this.ul.dom,c=Ext.fly(b).is(".x-menu-scroller-top");a.scrollTop+=this.scrollIncrement*(c?-1:1);if(c?a.scrollTop<=0:a.scrollTop+this.activeMax>=a.scrollHeight)this.onScrollerOut(null,b)},onScrollerIn:function(d,b){var a=this.ul.dom,c=Ext.fly(b).is(".x-menu-scroller-top");if(c?a.scrollTop>0:a.scrollTop+this.activeMax<a.scrollHeight)Ext.fly(b).addClass(["x-menu-item-active","x-menu-scroller-active"])},onScrollerOut:function(b,a){Ext.fly(a).removeClass(["x-menu-item-active","x-menu-scroller-active"])},show:function(b,c,a){if(this.floating){this.parentMenu=a;if(!this.el){this.render();this.doLayout(false,true)}this.showAt(this.el.getAlignToXY(b,c||this.defaultAlign,this.defaultOffsets),a)}else Ext.menu.Menu.superclass.show.call(this)},showAt:function(b,a){if(this.fireEvent("beforeshow",this)!==false){this.parentMenu=a;if(!this.el)this.render();if(this.enableScrolling){this.el.setXY(b);b[1]=this.constrainScroll(b[1]);b=[this.el.adjustForConstraints(b)[0],b[1]]}else b=this.el.adjustForConstraints(b);this.el.setXY(b);this.el.show();Ext.menu.Menu.superclass.onShow.call(this);if(Ext.isIE){this.fireEvent("autosize",this);if(!Ext.isIE8)this.el.repaint()}this.hidden=false;this.focus();this.fireEvent("show",this)}},constrainScroll:function(i){var b,d=this.ul.setHeight("auto").getHeight(),a=i,h,e,g,c;if(this.floating){e=Ext.fly(this.el.dom.parentNode);g=e.getScroll().top;c=e.getViewSize().height;h=i-g;b=this.maxHeight?this.maxHeight:c-h;if(d>c){b=c;a=i-h}else if(b<d){a=i-(d-b);b=d}}else b=this.getHeight();if(this.maxHeight)b=Math.min(this.maxHeight,b);if(d>b&&b>0){this.activeMax=b-this.scrollerHeight*2-this.el.getFrameWidth("tb")-Ext.num(this.el.shadowOffset,0);this.ul.setHeight(this.activeMax);this.createScrollers();this.el.select(".x-menu-scroller").setDisplayed("")}else{this.ul.setHeight(d);this.el.select(".x-menu-scroller").setDisplayed("none")}this.ul.dom.scrollTop=0;return a},createScrollers:function(){if(!this.scroller){this.scroller={pos:0,top:this.el.insertFirst({tag:"div",cls:"x-menu-scroller x-menu-scroller-top",html:"&#160;"}),bottom:this.el.createChild({tag:"div",cls:"x-menu-scroller x-menu-scroller-bottom",html:"&#160;"})};this.scroller.top.hover(this.onScrollerIn,this.onScrollerOut,this);this.scroller.topRepeater=new Ext.util.ClickRepeater(this.scroller.top,{listeners:{click:this.onScroll.createDelegate(this,[null,this.scroller.top],false)}});this.scroller.bottom.hover(this.onScrollerIn,this.onScrollerOut,this);this.scroller.bottomRepeater=new Ext.util.ClickRepeater(this.scroller.bottom,{listeners:{click:this.onScroll.createDelegate(this,[null,this.scroller.bottom],false)}})}},onLayout:function(){if(this.isVisible()){if(this.enableScrolling)this.constrainScroll(this.el.getTop());if(this.floating)this.el.sync()}},focus:function(){if(!this.hidden)this.doFocus.defer(50,this)},doFocus:function(){if(!this.hidden)this.focusEl.focus()},hide:function(a){if(!this.isDestroyed){this.deepHide=a;Ext.menu.Menu.superclass.hide.call(this);delete this.deepHide}},onHide:function(){Ext.menu.Menu.superclass.onHide.call(this);this.deactivateActive();if(this.el&&this.floating)this.el.hide();var a=this.parentMenu;if(this.deepHide===true&&a)if(a.floating)a.hide(true);else a.deactivateActive()},lookupComponent:function(a){if(Ext.isString(a)){a=a=="separator"||a=="-"?new Ext.menu.Separator:new Ext.menu.TextItem(a);this.applyDefaults(a)}else if(Ext.isObject(a))a=this.getMenuItem(a);else if(a.tagName||a.el)a=new Ext.BoxComponent({el:a});return a},applyDefaults:function(b){if(!Ext.isString(b)){b=Ext.menu.Menu.superclass.applyDefaults.call(this,b);var a=this.internalDefaults;if(a)if(b.events){Ext.applyIf(b.initialConfig,a);Ext.apply(b,a)}else Ext.applyIf(b,a)}return b},getMenuItem:function(a){if(!a.isXType){if(!a.xtype&&Ext.isBoolean(a.checked))return new Ext.menu.CheckItem(a);return Ext.create(a,this.defaultType)}return a},addSeparator:function(){return this.add(new Ext.menu.Separator)},addElement:function(a){return this.add(new Ext.menu.BaseItem({el:a}))},addItem:function(a){return this.add(a)},addMenuItem:function(a){return this.add(this.getMenuItem(a))},addText:function(a){return this.add(new Ext.menu.TextItem(a))},onDestroy:function(){Ext.EventManager.removeResizeListener(this.hide,this);var a=this.parentMenu;if(a&&a.activeChild==this)delete a.activeChild;delete this.parentMenu;Ext.menu.Menu.superclass.onDestroy.call(this);Ext.menu.MenuMgr.unregister(this);if(this.keyNav)this.keyNav.disable();var b=this.scroller;if(b)Ext.destroy(b.topRepeater,b.bottomRepeater,b.top,b.bottom);Ext.destroy(this.el,this.focusEl,this.ul)}});Ext.reg("menu",Ext.menu.Menu);Ext.menu.MenuNav=Ext.extend(Ext.KeyNav,function(){function a(d,c){if(!c.tryActivate(c.items.indexOf(c.activeItem)-1,-1))c.tryActivate(c.items.length-1,-1)}function b(d,c){if(!c.tryActivate(c.items.indexOf(c.activeItem)+1,1))c.tryActivate(0,1)}return{constructor:function(c){Ext.menu.MenuNav.superclass.constructor.call(this,c.el);this.scope=this.menu=c},doRelay:function(g,d){var c=g.getKey();if(this.menu.activeItem&&this.menu.activeItem.isFormField&&c!=g.TAB)return false;if(!this.menu.activeItem&&g.isNavKeyPress()&&c!=g.SPACE&&c!=g.RETURN){this.menu.tryActivate(0,1);return false}return d.call(this.scope||this,g,this.menu)},tab:function(d,c){d.stopEvent();if(d.shiftKey)a(d,c);else b(d,c)},up:a,down:b,right:function(d,c){if(c.activeItem)c.activeItem.expandMenu(true)},left:function(d,c){c.hide();if(c.parentMenu&&c.parentMenu.activeItem)c.parentMenu.activeItem.activate()},enter:function(d,c){if(c.activeItem){d.stopPropagation();c.activeItem.onClick(d);c.fireEvent("click",this,c.activeItem);return true}}}}());Ext.menu.MenuMgr=function(){var g,d,c={},a=false,l=new Date;function n(){g={};d=new Ext.util.MixedCollection;Ext.getDoc().addKeyListener(27,function(){if(d.length>0)i()})}function i(){if(d&&d.length>0){var o=d.clone();o.each(function(p){p.hide()});return true}return false}function e(o){d.remove(o);if(d.length<1){Ext.getDoc().un("mousedown",m);a=false}}function k(o){var p=d.last();l=new Date;d.add(o);if(!a){Ext.getDoc().on("mousedown",m);a=true}if(o.parentMenu){o.getEl().setZIndex(parseInt(o.parentMenu.getEl().getStyle("z-index"),10)+3);o.parentMenu.activeChild=o}else if(p&&!p.isDestroyed&&p.isVisible())o.getEl().setZIndex(parseInt(p.getEl().getStyle("z-index"),10)+3)}function b(o){if(o.activeChild)o.activeChild.hide();if(o.autoHideTimer){clearTimeout(o.autoHideTimer);delete o.autoHideTimer}}function h(o){var p=o.parentMenu;if(!p&&!o.allowOtherMenus)i();else if(p&&p.activeChild)p.activeChild.hide()}function m(o){if(l.getElapsed()>50&&d.length>0&&!o.getTarget(".x-menu"))i()}function j(p,s){if(s){var r=c[p.group];for(var q=0,o=r.length;q<o;q++)if(r[q]!=p)r[q].setChecked(false)}}return{hideAll:function(){return i()},register:function(o){if(!g)n();g[o.id]=o;o.on({beforehide:b,hide:e,beforeshow:h,show:k})},get:function(o){if(typeof o=="string"){if(!g)return null;return g[o]}else if(o.events)return o;else if(typeof o.length=="number")return new Ext.menu.Menu({items:o});else return Ext.create(o,"menu")},unregister:function(o){delete g[o.id];o.un("beforehide",b);o.un("hide",e);o.un("beforeshow",h);o.un("show",k)},registerCheckable:function(o){var p=o.group;if(p){if(!c[p])c[p]=[];c[p].push(o);o.on("beforecheckchange",j)}},unregisterCheckable:function(o){var p=o.group;if(p){c[p].remove(o);o.un("beforecheckchange",j)}},getCheckedItem:function(q){var r=c[q];if(r)for(var p=0,o=r.length;p<o;p++)if(r[p].checked)return r[p];return null},setCheckedItem:function(q,s){var r=c[q];if(r)for(var p=0,o=r.length;p<o;p++)if(r[p].id==s)r[p].setChecked(true);return null}}}();Ext.menu.BaseItem=Ext.extend(Ext.Component,{canActivate:false,activeClass:"x-menu-item-active",hideOnClick:true,clickHideDelay:1,ctype:"Ext.menu.BaseItem",actionMode:"container",initComponent:function(){Ext.menu.BaseItem.superclass.initComponent.call(this);this.addEvents("click","activate","deactivate");if(this.handler)this.on("click",this.handler,this.scope)},onRender:function(b,a){Ext.menu.BaseItem.superclass.onRender.apply(this,arguments);if(this.ownerCt&&this.ownerCt instanceof Ext.menu.Menu)this.parentMenu=this.ownerCt;else{this.container.addClass("x-menu-list-item");this.mon(this.el,{scope:this,click:this.onClick,mouseenter:this.activate,mouseleave:this.deactivate})}},setHandler:function(b,a){if(this.handler)this.un("click",this.handler,this.scope);this.on("click",this.handler=b,this.scope=a)},onClick:function(a){if(!this.disabled&&this.fireEvent("click",this,a)!==false&&this.parentMenu&&this.parentMenu.fireEvent("itemclick",this,a)!==false)this.handleClick(a);else a.stopEvent()},activate:function(){if(this.disabled)return false;var a=this.container;a.addClass(this.activeClass);this.region=a.getRegion().adjust(2,2,-2,-2);this.fireEvent("activate",this);return true},deactivate:function(){this.container.removeClass(this.activeClass);this.fireEvent("deactivate",this)},shouldDeactivate:function(a){return!this.region||!this.region.contains(a.getPoint())},handleClick:function(b){var a=this.parentMenu;if(this.hideOnClick)if(a.floating)a.hide.defer(this.clickHideDelay,a,[true]);else a.deactivateActive()},expandMenu:Ext.emptyFn,hideMenu:Ext.emptyFn});Ext.reg("menubaseitem",Ext.menu.BaseItem);Ext.menu.TextItem=Ext.extend(Ext.menu.BaseItem,{hideOnClick:false,itemCls:"x-menu-text",constructor:function(a){if(typeof a=="string")a={text:a};Ext.menu.TextItem.superclass.constructor.call(this,a)},onRender:function(){var a=document.createElement("span");a.className=this.itemCls;a.innerHTML=this.text;this.el=a;Ext.menu.TextItem.superclass.onRender.apply(this,arguments)}});Ext.reg("menutextitem",Ext.menu.TextItem);Ext.menu.Separator=Ext.extend(Ext.menu.BaseItem,{itemCls:"x-menu-sep",hideOnClick:false,activeClass:"",onRender:function(a){var b=document.createElement("span");b.className=this.itemCls;b.innerHTML="&#160;";this.el=b;a.addClass("x-menu-sep-li");Ext.menu.Separator.superclass.onRender.apply(this,arguments)}});Ext.reg("menuseparator",Ext.menu.Separator);Ext.menu.Item=Ext.extend(Ext.menu.BaseItem,{itemCls:"x-menu-item",canActivate:true,showDelay:200,hideDelay:200,ctype:"Ext.menu.Item",initComponent:function(){Ext.menu.Item.superclass.initComponent.call(this);if(this.menu){this.menu=Ext.menu.MenuMgr.get(this.menu);this.menu.ownerCt=this}},onRender:function(d,b){if(!this.itemTpl)this.itemTpl=Ext.menu.Item.prototype.itemTpl=new Ext.XTemplate('<a id="{id}" class="{cls}" hidefocus="true" unselectable="on" href="{href}"','<tpl if="hrefTarget">',' target="{hrefTarget}"',"</tpl>",">",'<img src="{icon}" class="x-menu-item-icon {iconCls}"/>','<span class="x-menu-item-text">{text}</span>',"</a>");var c=this.getTemplateArgs();this.el=b?this.itemTpl.insertBefore(b,c,true):this.itemTpl.append(d,c,true);this.iconEl=this.el.child("img.x-menu-item-icon");this.textEl=this.el.child(".x-menu-item-text");if(!this.href)this.mon(this.el,"click",Ext.emptyFn,null,{preventDefault:true});Ext.menu.Item.superclass.onRender.call(this,d,b)},getTemplateArgs:function(){return{id:this.id,cls:this.itemCls+(this.menu?" x-menu-item-arrow":"")+(this.cls?" "+this.cls:""),href:this.href||"#",hrefTarget:this.hrefTarget,icon:this.icon||Ext.BLANK_IMAGE_URL,iconCls:this.iconCls||"",text:this.itemText||this.text||"&#160;"}},setText:function(a){this.text=a||"&#160;";if(this.rendered){this.textEl.update(this.text);this.parentMenu.layout.doAutoSize()}},setIconClass:function(a){var b=this.iconCls;this.iconCls=a;if(this.rendered)this.iconEl.replaceClass(b,this.iconCls)},beforeDestroy:function(){if(this.menu){delete this.menu.ownerCt;this.menu.destroy()}Ext.menu.Item.superclass.beforeDestroy.call(this)},handleClick:function(a){if(!this.href)a.stopEvent();Ext.menu.Item.superclass.handleClick.apply(this,arguments)},activate:function(a){if(Ext.menu.Item.superclass.activate.apply(this,arguments)){this.focus();if(a)this.expandMenu()}return true},shouldDeactivate:function(a){if(Ext.menu.Item.superclass.shouldDeactivate.call(this,a)){if(this.menu&&this.menu.isVisible())return!this.menu.getEl().getRegion().contains(a.getPoint());return true}return false},deactivate:function(){Ext.menu.Item.superclass.deactivate.apply(this,arguments);this.hideMenu()},expandMenu:function(a){if(!this.disabled&&this.menu){clearTimeout(this.hideTimer);delete this.hideTimer;if(!this.menu.isVisible()&&!this.showTimer)this.showTimer=this.deferExpand.defer(this.showDelay,this,[a]);else if(this.menu.isVisible()&&a)this.menu.tryActivate(0,1)}},deferExpand:function(a){delete this.showTimer;this.menu.show(this.container,this.parentMenu.subMenuAlign||"tl-tr?",this.parentMenu);if(a)this.menu.tryActivate(0,1)},hideMenu:function(){clearTimeout(this.showTimer);delete this.showTimer;if(!this.hideTimer&&this.menu&&this.menu.isVisible())this.hideTimer=this.deferHide.defer(this.hideDelay,this)},deferHide:function(){delete this.hideTimer;if(this.menu.over)this.parentMenu.setActiveItem(this,false);else this.menu.hide()}});Ext.reg("menuitem",Ext.menu.Item);Ext.menu.CheckItem=Ext.extend(Ext.menu.Item,{itemCls:"x-menu-item x-menu-check-item",groupClass:"x-menu-group-item",checked:false,ctype:"Ext.menu.CheckItem",initComponent:function(){Ext.menu.CheckItem.superclass.initComponent.call(this);this.addEvents("beforecheckchange","checkchange");if(this.checkHandler)this.on("checkchange",this.checkHandler,this.scope);Ext.menu.MenuMgr.registerCheckable(this)},onRender:function(a){Ext.menu.CheckItem.superclass.onRender.apply(this,arguments);if(this.group)this.el.addClass(this.groupClass);if(this.checked){this.checked=false;this.setChecked(true,true)}},destroy:function(){Ext.menu.MenuMgr.unregisterCheckable(this);Ext.menu.CheckItem.superclass.destroy.apply(this,arguments)},setChecked:function(b,a){var c=a===true;if(this.checked!=b&&(c||this.fireEvent("beforecheckchange",this,b)!==false)){if(this.container)this.container[b?"addClass":"removeClass"]("x-menu-item-checked");this.checked=b;if(!c)this.fireEvent("checkchange",this,b)}},handleClick:function(a){if(!this.disabled&&!(this.checked&&this.group))this.setChecked(!this.checked);Ext.menu.CheckItem.superclass.handleClick.apply(this,arguments)}});Ext.reg("menucheckitem",Ext.menu.CheckItem);Ext.menu.DateMenu=Ext.extend(Ext.menu.Menu,{enableScrolling:false,hideOnClick:true,pickerId:null,cls:"x-date-menu",initComponent:function(){this.on("beforeshow",this.onBeforeShow,this);if(this.strict=Ext.isIE7&&Ext.isStrict)this.on("show",this.onShow,this,{single:true,delay:20});Ext.apply(this,{plain:true,showSeparator:false,items:this.picker=new Ext.DatePicker(Ext.applyIf({internalRender:this.strict||!Ext.isIE,ctCls:"x-menu-date-item",id:this.pickerId},this.initialConfig))});this.picker.purgeListeners();Ext.menu.DateMenu.superclass.initComponent.call(this);this.relayEvents(this.picker,["select"]);this.on("show",this.picker.focus,this.picker);this.on("select",this.menuHide,this);if(this.handler)this.on("select",this.handler,this.scope||this)},menuHide:function(){if(this.hideOnClick)this.hide(true)},onBeforeShow:function(){if(this.picker)this.picker.hideMonthPicker(true)},onShow:function(){var a=this.picker.getEl();a.setWidth(a.getWidth())}});Ext.reg("datemenu",Ext.menu.DateMenu);Ext.menu.ColorMenu=Ext.extend(Ext.menu.Menu,{enableScrolling:false,hideOnClick:true,cls:"x-color-menu",paletteId:null,initComponent:function(){Ext.apply(this,{plain:true,showSeparator:false,items:this.palette=new Ext.ColorPalette(Ext.applyIf({id:this.paletteId},this.initialConfig))});this.palette.purgeListeners();Ext.menu.ColorMenu.superclass.initComponent.call(this);this.relayEvents(this.palette,["select"]);this.on("select",this.menuHide,this);if(this.handler)this.on("select",this.handler,this.scope||this)},menuHide:function(){if(this.hideOnClick)this.hide(true)}});Ext.reg("colormenu",Ext.menu.ColorMenu);Ext.form.Field=Ext.extend(Ext.BoxComponent,{invalidClass:"x-form-invalid",invalidText:"The value in this field is invalid",focusClass:"x-form-focus",validationEvent:"keyup",validateOnBlur:true,validationDelay:250,defaultAutoCreate:{tag:"input",type:"text",size:"20",autocomplete:"off"},fieldClass:"x-form-field",msgTarget:"qtip",msgFx:"normal",readOnly:false,disabled:false,submitValue:true,isFormField:true,msgDisplay:"",hasFocus:false,initComponent:function(){Ext.form.Field.superclass.initComponent.call(this);this.addEvents("focus","blur","specialkey","change","invalid","valid")},getName:function(){return this.rendered&&this.el.dom.name?this.el.dom.name:this.name||this.id||""},onRender:function(c,a){if(!this.el){var b=this.getAutoCreate();if(!b.name)b.name=this.name||this.id;if(this.inputType)b.type=this.inputType;this.autoEl=b}Ext.form.Field.superclass.onRender.call(this,c,a);if(this.submitValue===false)this.el.dom.removeAttribute("name");var d=this.el.dom.type;if(d){if(d=="password")d="text";this.el.addClass("x-form-"+d)}if(this.readOnly)this.setReadOnly(true);if(this.tabIndex!==undefined)this.el.dom.setAttribute("tabIndex",this.tabIndex);this.el.addClass([this.fieldClass,this.cls])},getItemCt:function(){return this.itemCt},initValue:function(){if(this.value!==undefined)this.setValue(this.value);else if(!Ext.isEmpty(this.el.dom.value)&&this.el.dom.value!=this.emptyText)this.setValue(this.el.dom.value);this.originalValue=this.getValue()},isDirty:function(){if(this.disabled||!this.rendered)return false;return String(this.getValue())!==String(this.originalValue)},setReadOnly:function(a){if(this.rendered)this.el.dom.readOnly=a;this.readOnly=a},afterRender:function(){Ext.form.Field.superclass.afterRender.call(this);this.initEvents();this.initValue()},fireKey:function(a){if(a.isSpecialKey())this.fireEvent("specialkey",this,a)},reset:function(){this.setValue(this.originalValue);this.clearInvalid()},initEvents:function(){this.mon(this.el,Ext.EventManager.useKeydown?"keydown":"keypress",this.fireKey,this);this.mon(this.el,"focus",this.onFocus,this);this.mon(this.el,"blur",this.onBlur,this,this.inEditor?{buffer:10}:null)},preFocus:Ext.emptyFn,onFocus:function(){this.preFocus();if(this.focusClass)this.el.addClass(this.focusClass);if(!this.hasFocus){this.hasFocus=true;this.startValue=this.getValue();this.fireEvent("focus",this)}},beforeBlur:Ext.emptyFn,onBlur:function(){this.beforeBlur();if(this.focusClass)this.el.removeClass(this.focusClass);this.hasFocus=false;if(this.validationEvent!==false&&(this.validateOnBlur||this.validationEvent=="blur"))this.validate();var a=this.getValue();if(String(a)!==String(this.startValue))this.fireEvent("change",this,a,this.startValue);this.fireEvent("blur",this);this.postBlur()},postBlur:Ext.emptyFn,isValid:function(a){if(this.disabled)return true;var c=this.preventMark;this.preventMark=a===true;var b=this.validateValue(this.processValue(this.getRawValue()));this.preventMark=c;return b},validate:function(){if(this.disabled||this.validateValue(this.processValue(this.getRawValue()))){this.clearInvalid();return true}return false},processValue:function(a){return a},validateValue:function(b){var a=this.getErrors(b)[0];if(a==undefined)return true;else{this.markInvalid(a);return false}},getErrors:function(){return[]},getActiveError:function(){return this.activeError||""},markInvalid:function(c){if(this.rendered&&!this.preventMark){c=c||this.invalidText;var a=this.getMessageHandler();if(a)a.mark(this,c);else if(this.msgTarget){this.el.addClass(this.invalidClass);var b=Ext.getDom(this.msgTarget);if(b){b.innerHTML=c;b.style.display=this.msgDisplay}}}this.setActiveError(c)},clearInvalid:function(){if(this.rendered&&!this.preventMark){this.el.removeClass(this.invalidClass);var a=this.getMessageHandler();if(a)a.clear(this);else if(this.msgTarget){this.el.removeClass(this.invalidClass);var b=Ext.getDom(this.msgTarget);if(b){b.innerHTML="";b.style.display="none"}}}this.unsetActiveError()},setActiveError:function(b,a){this.activeError=b;if(a!==true)this.fireEvent("invalid",this,b)},unsetActiveError:function(a){delete this.activeError;if(a!==true)this.fireEvent("valid",this)},getMessageHandler:function(){return Ext.form.MessageTargets[this.msgTarget]},getErrorCt:function(){return this.el.findParent(".x-form-element",5,true)||this.el.findParent(".x-form-field-wrap",5,true)},alignErrorEl:function(){this.errorEl.setWidth(this.getErrorCt().getWidth(true)-20)},alignErrorIcon:function(){this.errorIcon.alignTo(this.el,"tl-tr",[2,0])},getRawValue:function(){var a=this.rendered?this.el.getValue():Ext.value(this.value,"");if(a===this.emptyText)a="";return a},getValue:function(){if(!this.rendered)return this.value;var a=this.el.getValue();if(a===this.emptyText||a===undefined)a="";return a},setRawValue:function(a){return this.rendered?this.el.dom.value=Ext.isEmpty(a)?"":a:""},setValue:function(a){this.value=a;if(this.rendered){this.el.dom.value=Ext.isEmpty(a)?"":a;this.validate()}return this},append:function(a){this.setValue([this.getValue(),a].join(""))}});Ext.form.MessageTargets={qtip:{mark:function(a,b){a.el.addClass(a.invalidClass);a.el.dom.qtip=b;a.el.dom.qclass="x-form-invalid-tip";if(Ext.QuickTips)Ext.QuickTips.enable()},clear:function(a){a.el.removeClass(a.invalidClass);a.el.dom.qtip=""}},title:{mark:function(a,b){a.el.addClass(a.invalidClass);a.el.dom.title=b},clear:function(a){a.el.dom.title=""}},under:{mark:function(b,c){b.el.addClass(b.invalidClass);if(!b.errorEl){var a=b.getErrorCt();if(!a){b.el.dom.title=c;return}b.errorEl=a.createChild({cls:"x-form-invalid-msg"});b.on("resize",b.alignErrorEl,b);b.on("destroy",function(){Ext.destroy(this.errorEl)},b)}b.alignErrorEl();b.errorEl.update(c);Ext.form.Field.msgFx[b.msgFx].show(b.errorEl,b)},clear:function(a){a.el.removeClass(a.invalidClass);if(a.errorEl)Ext.form.Field.msgFx[a.msgFx].hide(a.errorEl,a);else a.el.dom.title=""}},side:{mark:function(b,c){b.el.addClass(b.invalidClass);if(!b.errorIcon){var a=b.getErrorCt();if(!a){b.el.dom.title=c;return}b.errorIcon=a.createChild({cls:"x-form-invalid-icon"});if(b.ownerCt){b.ownerCt.on("afterlayout",b.alignErrorIcon,b);b.ownerCt.on("expand",b.alignErrorIcon,b)}b.on("resize",b.alignErrorIcon,b);b.on("destroy",function(){Ext.destroy(this.errorIcon)},b)}b.alignErrorIcon();b.errorIcon.dom.qtip=c;b.errorIcon.dom.qclass="x-form-invalid-tip";b.errorIcon.show()},clear:function(a){a.el.removeClass(a.invalidClass);if(a.errorIcon){a.errorIcon.dom.qtip="";a.errorIcon.hide()}else a.el.dom.title=""}}};Ext.form.Field.msgFx={normal:{show:function(a,b){a.setDisplayed("block")},hide:function(a,b){a.setDisplayed(false).update("")}},slide:{show:function(a,b){a.slideIn("t",{stopFx:true})},hide:function(a,b){a.slideOut("t",{stopFx:true,useDisplay:true})}},slideRight:{show:function(a,b){a.fixDisplay();a.alignTo(b.el,"tl-tr");a.slideIn("l",{stopFx:true})},hide:function(a,b){a.slideOut("l",{stopFx:true,useDisplay:true})}}};Ext.reg("field",Ext.form.Field);Ext.form.TextField=Ext.extend(Ext.form.Field,{grow:false,growMin:30,growMax:800,vtype:null,maskRe:null,disableKeyFilter:false,allowBlank:true,minLength:0,maxLength:Number.MAX_VALUE,minLengthText:"The minimum length for this field is {0}",maxLengthText:"The maximum length for this field is {0}",selectOnFocus:false,blankText:"This field is required",validator:null,regex:null,regexText:"",emptyText:null,emptyClass:"x-form-empty-field",initComponent:function(){Ext.form.TextField.superclass.initComponent.call(this);this.addEvents("autosize","keydown","keyup","keypress")},initEvents:function(){Ext.form.TextField.superclass.initEvents.call(this);if(this.validationEvent=="keyup"){this.validationTask=new Ext.util.DelayedTask(this.validate,this);this.mon(this.el,"keyup",this.filterValidation,this)}else if(this.validationEvent!==false&&this.validationEvent!="blur")this.mon(this.el,this.validationEvent,this.validate,this,{buffer:this.validationDelay});if(this.selectOnFocus||this.emptyText){this.mon(this.el,"mousedown",this.onMouseDown,this);if(this.emptyText)this.applyEmptyText()}if(this.maskRe||this.vtype&&this.disableKeyFilter!==true&&(this.maskRe=Ext.form.VTypes[this.vtype+"Mask"]))this.mon(this.el,"keypress",this.filterKeys,this);if(this.grow){this.mon(this.el,"keyup",this.onKeyUpBuffered,this,{buffer:50});this.mon(this.el,"click",this.autoSize,this)}if(this.enableKeyEvents)this.mon(this.el,{scope:this,keyup:this.onKeyUp,keydown:this.onKeyDown,keypress:this.onKeyPress})},onMouseDown:function(a){if(!this.hasFocus)this.mon(this.el,"mouseup",Ext.emptyFn,this,{single:true,preventDefault:true})},processValue:function(a){if(this.stripCharsRe){var b=a.replace(this.stripCharsRe,"");if(b!==a){this.setRawValue(b);return b}}return a},filterValidation:function(a){if(!a.isNavKeyPress())this.validationTask.delay(this.validationDelay)},onDisable:function(){Ext.form.TextField.superclass.onDisable.call(this);if(Ext.isIE)this.el.dom.unselectable="on"},onEnable:function(){Ext.form.TextField.superclass.onEnable.call(this);if(Ext.isIE)this.el.dom.unselectable=""},onKeyUpBuffered:function(a){if(this.doAutoSize(a))this.autoSize()},doAutoSize:function(a){return!a.isNavKeyPress()},onKeyUp:function(a){this.fireEvent("keyup",this,a)},onKeyDown:function(a){this.fireEvent("keydown",this,a)},onKeyPress:function(a){this.fireEvent("keypress",this,a)},reset:function(){Ext.form.TextField.superclass.reset.call(this);this.applyEmptyText()},applyEmptyText:function(){if(this.rendered&&this.emptyText&&this.getRawValue().length<1&&!this.hasFocus){this.setRawValue(this.emptyText);this.el.addClass(this.emptyClass)}},preFocus:function(){var a=this.el;if(this.emptyText){if(a.dom.value==this.emptyText)this.setRawValue("");a.removeClass(this.emptyClass)}if(this.selectOnFocus)a.dom.select()},postBlur:function(){this.applyEmptyText()},filterKeys:function(b){if(b.ctrlKey)return;var a=b.getKey();if(Ext.isGecko&&(b.isNavKeyPress()||a==b.BACKSPACE||a==b.DELETE&&b.button==-1))return;var c=String.fromCharCode(b.getCharCode());if(!Ext.isGecko&&b.isSpecialKey()&&!c)return;if(!this.maskRe.test(c))b.stopEvent()},setValue:function(a){if(this.emptyText&&this.el&&!Ext.isEmpty(a))this.el.removeClass(this.emptyClass);Ext.form.TextField.superclass.setValue.apply(this,arguments);this.applyEmptyText();this.autoSize();return this},getErrors:function(a){var d=Ext.form.TextField.superclass.getErrors.apply(this,arguments);a=a||this.processValue(this.getRawValue());if(Ext.isFunction(this.validator)){var c=this.validator(a);if(c!==true)d.push(c)}if(a.length<1||a===this.emptyText)if(this.allowBlank)return d;else d.push(this.blankText);if(!this.allowBlank&&(a.length<1||a===this.emptyText))d.push(this.blankText);if(a.length<this.minLength)d.push(String.format(this.minLengthText,this.minLength));if(a.length>this.maxLength)d.push(String.format(this.maxLengthText,this.maxLength));if(this.vtype){var b=Ext.form.VTypes;if(!b[this.vtype](a,this))d.push(this.vtypeText||b[this.vtype+"Text"])}if(this.regex&&!this.regex.test(a))d.push(this.regexText);return d},selectText:function(h,a){var c=this.getRawValue();var e=false;if(c.length>0){h=h===undefined?0:h;a=a===undefined?c.length:a;var g=this.el.dom;if(g.setSelectionRange)g.setSelectionRange(h,a);else if(g.createTextRange){var b=g.createTextRange();b.moveStart("character",h);b.moveEnd("character",a-c.length);b.select()}e=Ext.isGecko||Ext.isOpera}else e=true;if(e)this.focus()},autoSize:function(){if(!this.grow||!this.rendered)return;if(!this.metrics)this.metrics=Ext.util.TextMetrics.createInstance(this.el);var c=this.el;var b=c.dom.value;var e=document.createElement("div");e.appendChild(document.createTextNode(b));b=e.innerHTML;Ext.removeNode(e);e=null;b+="&#160;";var a=Math.min(this.growMax,Math.max(this.metrics.getWidth(b)+10,this.growMin));this.el.setWidth(a);this.fireEvent("autosize",this,a)},onDestroy:function(){if(this.validationTask){this.validationTask.cancel();this.validationTask=null}Ext.form.TextField.superclass.onDestroy.call(this)}});Ext.reg("textfield",Ext.form.TextField);Ext.form.TriggerField=Ext.extend(Ext.form.TextField,{defaultAutoCreate:{tag:"input",type:"text",size:"16",autocomplete:"off"},hideTrigger:false,editable:true,readOnly:false,wrapFocusClass:"x-trigger-wrap-focus",autoSize:Ext.emptyFn,monitorTab:true,deferHeight:true,mimicing:false,actionMode:"wrap",defaultTriggerWidth:17,onResize:function(a,c){Ext.form.TriggerField.superclass.onResize.call(this,a,c);var b=this.getTriggerWidth();if(Ext.isNumber(a))this.el.setWidth(a-b);this.wrap.setWidth(this.el.getWidth()+b)},getTriggerWidth:function(){var a=this.trigger.getWidth();if(!this.hideTrigger&&!this.readOnly&&a===0)a=this.defaultTriggerWidth;return a},alignErrorIcon:function(){if(this.wrap)this.errorIcon.alignTo(this.wrap,"tl-tr",[2,0])},onRender:function(b,a){this.doc=Ext.isIE?Ext.getBody():Ext.getDoc();Ext.form.TriggerField.superclass.onRender.call(this,b,a);this.wrap=this.el.wrap({cls:"x-form-field-wrap x-form-field-trigger-wrap"});this.trigger=this.wrap.createChild(this.triggerConfig||{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.triggerClass});this.initTrigger();if(!this.width)this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth());this.resizeEl=this.positionEl=this.wrap},getWidth:function(){return this.el.getWidth()+this.trigger.getWidth()},updateEditState:function(){if(this.rendered){if(this.readOnly){this.el.dom.readOnly=true;this.el.addClass("x-trigger-noedit");this.mun(this.el,"click",this.onTriggerClick,this);this.trigger.setDisplayed(false)}else{if(!this.editable){this.el.dom.readOnly=true;this.el.addClass("x-trigger-noedit");this.mon(this.el,"click",this.onTriggerClick,this)}else{this.el.dom.readOnly=false;this.el.removeClass("x-trigger-noedit");this.mun(this.el,"click",this.onTriggerClick,this)}this.trigger.setDisplayed(!this.hideTrigger)}this.onResize(this.width||this.wrap.getWidth())}},setHideTrigger:function(a){if(a!=this.hideTrigger){this.hideTrigger=a;this.updateEditState()}},setEditable:function(a){if(a!=this.editable){this.editable=a;this.updateEditState()}},setReadOnly:function(a){if(a!=this.readOnly){this.readOnly=a;this.updateEditState()}},afterRender:function(){Ext.form.TriggerField.superclass.afterRender.call(this);this.updateEditState()},initTrigger:function(){this.mon(this.trigger,"click",this.onTriggerClick,this,{preventDefault:true});this.trigger.addClassOnOver("x-form-trigger-over");this.trigger.addClassOnClick("x-form-trigger-click")},onDestroy:function(){Ext.destroy(this.trigger,this.wrap);if(this.mimicing)this.doc.un("mousedown",this.mimicBlur,this);delete this.doc;Ext.form.TriggerField.superclass.onDestroy.call(this)},onFocus:function(){Ext.form.TriggerField.superclass.onFocus.call(this);if(!this.mimicing){this.wrap.addClass(this.wrapFocusClass);this.mimicing=true;this.doc.on("mousedown",this.mimicBlur,this,{delay:10});if(this.monitorTab)this.on("specialkey",this.checkTab,this)}},checkTab:function(a,b){if(b.getKey()==b.TAB)this.triggerBlur()},onBlur:Ext.emptyFn,mimicBlur:function(a){if(!this.isDestroyed&&!this.wrap.contains(a.target)&&this.validateBlur(a))this.triggerBlur()},triggerBlur:function(){this.mimicing=false;this.doc.un("mousedown",this.mimicBlur,this);if(this.monitorTab&&this.el)this.un("specialkey",this.checkTab,this);Ext.form.TriggerField.superclass.onBlur.call(this);if(this.wrap)this.wrap.removeClass(this.wrapFocusClass)},beforeBlur:Ext.emptyFn,validateBlur:function(a){return true},onTriggerClick:Ext.emptyFn});Ext.form.TwinTriggerField=Ext.extend(Ext.form.TriggerField,{initComponent:function(){Ext.form.TwinTriggerField.superclass.initComponent.call(this);this.triggerConfig={tag:"span",cls:"x-form-twin-triggers",cn:[{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.trigger1Class},{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.trigger2Class}]}},getTrigger:function(a){return this.triggers[a]},initTrigger:function(){var a=this.trigger.select(".x-form-trigger",true);var b=this;a.each(function(d,g,c){var e="Trigger"+(c+1);d.hide=function(){var h=b.wrap.getWidth();this.dom.style.display="none";b.el.setWidth(h-b.trigger.getWidth());this["hidden"+e]=true};d.show=function(){var h=b.wrap.getWidth();this.dom.style.display="";b.el.setWidth(h-b.trigger.getWidth());this["hidden"+e]=false};if(this["hide"+e]){d.dom.style.display="none";this["hidden"+e]=true}this.mon(d,"click",this["on"+e+"Click"],this,{preventDefault:true});d.addClassOnOver("x-form-trigger-over");d.addClassOnClick("x-form-trigger-click")},this);this.triggers=a.elements},getTriggerWidth:function(){var a=0;Ext.each(this.triggers,function(d,c){var e="Trigger"+(c+1),b=d.getWidth();if(b===0&&!this["hidden"+e])a+=this.defaultTriggerWidth;else a+=b},this);return a},onDestroy:function(){Ext.destroy(this.triggers);Ext.form.TwinTriggerField.superclass.onDestroy.call(this)},onTrigger1Click:Ext.emptyFn,onTrigger2Click:Ext.emptyFn});Ext.reg("trigger",Ext.form.TriggerField);Ext.form.TextArea=Ext.extend(Ext.form.TextField,{growMin:60,growMax:1e3,growAppend:"&#160;\n&#160;",enterIsSpecial:false,preventScrollbars:false,onRender:function(b,a){if(!this.el)this.defaultAutoCreate={tag:"textarea",style:"width:100px;height:60px;",autocomplete:"off"};Ext.form.TextArea.superclass.onRender.call(this,b,a);if(this.grow){this.textSizeEl=Ext.DomHelper.append(document.body,{tag:"pre",cls:"x-form-grow-sizer"});if(this.preventScrollbars)this.el.setStyle("overflow","hidden");this.el.setHeight(this.growMin)}},onDestroy:function(){Ext.removeNode(this.textSizeEl);Ext.form.TextArea.superclass.onDestroy.call(this)},fireKey:function(a){if(a.isSpecialKey()&&(this.enterIsSpecial||a.getKey()!=a.ENTER||a.hasModifier()))this.fireEvent("specialkey",this,a)},doAutoSize:function(a){return!a.isNavKeyPress()||a.getKey()==a.ENTER},autoSize:function(){if(!this.grow||!this.textSizeEl)return;var c=this.el,a=Ext.util.Format.htmlEncode(c.dom.value),d=this.textSizeEl,b;Ext.fly(d).setWidth(this.el.getWidth());if(a.length<1)a="&#160;&#160;";else{a+=this.growAppend;if(Ext.isIE)a=a.replace(/\n/g,"&#160;<br />")}d.innerHTML=a;b=Math.min(this.growMax,Math.max(d.offsetHeight,this.growMin));if(b!=this.lastHeight){this.lastHeight=b;this.el.setHeight(b);this.fireEvent("autosize",this,b)}}});Ext.reg("textarea",Ext.form.TextArea);Ext.form.NumberField=Ext.extend(Ext.form.TextField,{fieldClass:"x-form-field x-form-num-field",allowDecimals:true,decimalSeparator:".",decimalPrecision:2,allowNegative:true,minValue:Number.NEGATIVE_INFINITY,maxValue:Number.MAX_VALUE,minText:"The minimum value for this field is {0}",maxText:"The maximum value for this field is {0}",nanText:"{0} is not a valid number",baseChars:"0123456789",initEvents:function(){var a=this.baseChars+"";if(this.allowDecimals)a+=this.decimalSeparator;if(this.allowNegative)a+="-";this.maskRe=new RegExp("["+Ext.escapeRe(a)+"]");Ext.form.NumberField.superclass.initEvents.call(this)},getErrors:function(b){var c=Ext.form.NumberField.superclass.getErrors.apply(this,arguments);b=b||this.processValue(this.getRawValue());if(b.length<1)return c;b=String(b).replace(this.decimalSeparator,".");if(isNaN(b))c.push(String.format(this.nanText,b));var a=this.parseValue(b);if(a<this.minValue)c.push(String.format(this.minText,this.minValue));if(a>this.maxValue)c.push(String.format(this.maxText,this.maxValue));return c},getValue:function(){return this.fixPrecision(this.parseValue(Ext.form.NumberField.superclass.getValue.call(this)))},setValue:function(a){a=Ext.isNumber(a)?a:parseFloat(String(a).replace(this.decimalSeparator,"."));a=isNaN(a)?"":String(a).replace(".",this.decimalSeparator);return Ext.form.NumberField.superclass.setValue.call(this,a)},setMinValue:function(a){this.minValue=Ext.num(a,Number.NEGATIVE_INFINITY)},setMaxValue:function(a){this.maxValue=Ext.num(a,Number.MAX_VALUE)},parseValue:function(a){a=parseFloat(String(a).replace(this.decimalSeparator,"."));return isNaN(a)?"":a},fixPrecision:function(b){var a=isNaN(b);if(!this.allowDecimals||this.decimalPrecision==-1||a||!b)return a?"":b;return parseFloat(parseFloat(b).toFixed(this.decimalPrecision))},beforeBlur:function(){var a=this.parseValue(this.getRawValue());if(!Ext.isEmpty(a))this.setValue(this.fixPrecision(a))}});Ext.reg("numberfield",Ext.form.NumberField);Ext.form.DateField=Ext.extend(Ext.form.TriggerField,{format:"m/d/Y",altFormats:"m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d",disabledDaysText:"Disabled",disabledDatesText:"Disabled",minText:"The date in this field must be equal to or after {0}",maxText:"The date in this field must be equal to or before {0}",invalidText:"{0} is not a valid date - it must be in the format {1}",triggerClass:"x-form-date-trigger",showToday:true,defaultAutoCreate:{tag:"input",type:"text",size:"10",autocomplete:"off"},initTime:"12",initTimeFormat:"H",safeParse:function(b,c){if(/[gGhH]/.test(c.replace(/(\\.)/g,"")))return Date.parseDate(b,c);else{var a=Date.parseDate(b+" "+this.initTime,c+" "+this.initTimeFormat);if(a)return a.clearTime()}},initComponent:function(){Ext.form.DateField.superclass.initComponent.call(this);this.addEvents("select");if(Ext.isString(this.minValue))this.minValue=this.parseDate(this.minValue);if(Ext.isString(this.maxValue))this.maxValue=this.parseDate(this.maxValue);this.disabledDatesRE=null;this.initDisabledDays()},initEvents:function(){Ext.form.DateField.superclass.initEvents.call(this);this.keyNav=new Ext.KeyNav(this.el,{down:function(a){this.onTriggerClick()},scope:this,forceKeyDown:true})},initDisabledDays:function(){if(this.disabledDates){var b=this.disabledDates,a=b.length-1,c="(?:";Ext.each(b,function(g,e){c+=Ext.isDate(g)?"^"+Ext.escapeRe(g.dateFormat(this.format))+"$":b[e];if(e!=a)c+="|"},this);this.disabledDatesRE=new RegExp(c+")")}},setDisabledDates:function(a){this.disabledDates=a;this.initDisabledDays();if(this.menu)this.menu.picker.setDisabledDates(this.disabledDatesRE)},setDisabledDays:function(a){this.disabledDays=a;if(this.menu)this.menu.picker.setDisabledDays(a)},setMinValue:function(a){this.minValue=Ext.isString(a)?this.parseDate(a):a;if(this.menu)this.menu.picker.setMinDate(this.minValue)},setMaxValue:function(a){this.maxValue=Ext.isString(a)?this.parseDate(a):a;if(this.menu)this.menu.picker.setMaxDate(this.maxValue)},getErrors:function(e){var h=Ext.form.DateField.superclass.getErrors.apply(this,arguments);e=this.formatDate(e||this.processValue(this.getRawValue()));if(e.length<1)return h;var c=e;e=this.parseDate(e);if(!e){h.push(String.format(this.invalidText,c,this.format));return h}var g=e.getTime();if(this.minValue&&g<this.minValue.getTime())h.push(String.format(this.minText,this.formatDate(this.minValue)));if(this.maxValue&&g>this.maxValue.getTime())h.push(String.format(this.maxText,this.formatDate(this.maxValue)));if(this.disabledDays){var a=e.getDay();for(var b=0;b<this.disabledDays.length;b++)if(a===this.disabledDays[b]){h.push(this.disabledDaysText);break}}var d=this.formatDate(e);if(this.disabledDatesRE&&this.disabledDatesRE.test(d))h.push(String.format(this.disabledDatesText,d));return h},validateBlur:function(){return!this.menu||!this.menu.isVisible()},getValue:function(){return this.parseDate(Ext.form.DateField.superclass.getValue.call(this))||""},setValue:function(a){return Ext.form.DateField.superclass.setValue.call(this,this.formatDate(this.parseDate(a)))},parseDate:function(g){if(!g||Ext.isDate(g))return g;var b=this.safeParse(g,this.format),c=this.altFormats,e=this.altFormatsArray;if(!b&&c){e=e||c.split("|");for(var d=0,a=e.length;d<a&&!b;d++)b=this.safeParse(g,e[d])}return b},onDestroy:function(){Ext.destroy(this.menu,this.keyNav);Ext.form.DateField.superclass.onDestroy.call(this)},formatDate:function(a){return Ext.isDate(a)?a.dateFormat(this.format):a},onTriggerClick:function(){if(this.disabled)return;if(this.menu==null)this.menu=new Ext.menu.DateMenu({hideOnClick:false,focusOnSelect:false});this.onFocus();Ext.apply(this.menu.picker,{minDate:this.minValue,maxDate:this.maxValue,disabledDatesRE:this.disabledDatesRE,disabledDatesText:this.disabledDatesText,disabledDays:this.disabledDays,disabledDaysText:this.disabledDaysText,format:this.format,showToday:this.showToday,minText:String.format(this.minText,this.formatDate(this.minValue)),maxText:String.format(this.maxText,this.formatDate(this.maxValue))});this.menu.picker.setValue(this.getValue()||new Date);this.menu.show(this.el,"tl-bl?");this.menuEvents("on")},menuEvents:function(a){this.menu[a]("select",this.onSelect,this);this.menu[a]("hide",this.onMenuHide,this);this.menu[a]("show",this.onFocus,this)},onSelect:function(a,b){this.setValue(b);this.fireEvent("select",this,b);this.menu.hide()},onMenuHide:function(){this.focus(false,60);this.menuEvents("un")},beforeBlur:function(){var a=this.parseDate(this.getRawValue());if(a)this.setValue(a)}});Ext.reg("datefield",Ext.form.DateField);Ext.form.DisplayField=Ext.extend(Ext.form.Field,{validationEvent:false,validateOnBlur:false,defaultAutoCreate:{tag:"div"},fieldClass:"x-form-display-field",htmlEncode:false,initEvents:Ext.emptyFn,isValid:function(){return true},validate:function(){return true},getRawValue:function(){var a=this.rendered?this.el.dom.innerHTML:Ext.value(this.value,"");if(a===this.emptyText)a="";if(this.htmlEncode)a=Ext.util.Format.htmlDecode(a);return a},getValue:function(){return this.getRawValue()},getName:function(){return this.name},setRawValue:function(a){if(this.htmlEncode)a=Ext.util.Format.htmlEncode(a);return this.rendered?this.el.dom.innerHTML=Ext.isEmpty(a)?"":a:this.value=a},setValue:function(a){this.setRawValue(a);return this}});Ext.reg("displayfield",Ext.form.DisplayField);Ext.form.ComboBox=Ext.extend(Ext.form.TriggerField,{defaultAutoCreate:{tag:"input",type:"text",size:"24",autocomplete:"off"},listClass:"",selectedClass:"x-combo-selected",listEmptyText:"",triggerClass:"x-form-arrow-trigger",shadow:"sides",listAlign:"tl-bl?",maxHeight:300,minHeight:90,triggerAction:"query",minChars:4,autoSelect:true,typeAhead:false,queryDelay:500,pageSize:0,selectOnFocus:false,queryParam:"query",loadingText:"Loading...",resizable:false,handleHeight:8,allQuery:"",mode:"remote",minListWidth:70,forceSelection:false,typeAheadDelay:250,lazyInit:true,clearFilterOnReset:true,submitValue:undefined,initComponent:function(){Ext.form.ComboBox.superclass.initComponent.call(this);this.addEvents("expand","collapse","beforeselect","select","beforequery");if(this.transform){var c=Ext.getDom(this.transform);if(!this.hiddenName)this.hiddenName=c.name;if(!this.store){this.mode="local";var j=[],e=c.options;for(var b=0,a=e.length;b<a;b++){var h=e[b],g=h.hasAttribute?h.hasAttribute("value"):h.getAttributeNode("value").specified?h.value:h.text;if(h.selected&&Ext.isEmpty(this.value,true))this.value=g;j.push([g,h.text])}this.store=new Ext.data.ArrayStore({id:0,fields:["value","text"],data:j,autoDestroy:true});this.valueField="value";this.displayField="text"}c.name=Ext.id();if(!this.lazyRender){this.target=true;this.el=Ext.DomHelper.insertBefore(c,this.autoCreate||this.defaultAutoCreate);this.render(this.el.parentNode,c)}Ext.removeNode(c)}else if(this.store){this.store=Ext.StoreMgr.lookup(this.store);if(this.store.autoCreated){this.displayField=this.valueField="field1";if(!this.store.expandData)this.displayField="field2";this.mode="local"}}this.selectedIndex=-1;if(this.mode=="local"){if(!Ext.isDefined(this.initialConfig.queryDelay))this.queryDelay=10;if(!Ext.isDefined(this.initialConfig.minChars))this.minChars=0}},onRender:function(b,a){if(this.hiddenName&&!Ext.isDefined(this.submitValue))this.submitValue=false;Ext.form.ComboBox.superclass.onRender.call(this,b,a);if(this.hiddenName)this.hiddenField=this.el.insertSibling({tag:"input",type:"hidden",name:this.hiddenName,id:this.hiddenId||this.hiddenName},"before",true);if(Ext.isGecko)this.el.dom.setAttribute("autocomplete","off");if(!this.lazyInit)this.initList();else this.on("focus",this.initList,this,{single:true})},initValue:function(){Ext.form.ComboBox.superclass.initValue.call(this);if(this.hiddenField)this.hiddenField.value=Ext.value(Ext.isDefined(this.hiddenValue)?this.hiddenValue:this.value,"")},getParentZIndex:function(){var a;if(this.ownerCt)this.findParentBy(function(b){a=parseInt(b.getPositionEl().getStyle("z-index"),10);return!!a});return a},initList:function(){if(!this.list){var a="x-combo-list",d=Ext.getDom(this.getListParent()||Ext.getBody()),b=parseInt(Ext.fly(d).getStyle("z-index"),10);if(!b)b=this.getParentZIndex();this.list=new Ext.Layer({parentEl:d,shadow:this.shadow,cls:[a,this.listClass].join(" "),constrain:false,zindex:(b||12e3)+5});var c=this.listWidth||Math.max(this.wrap.getWidth(),this.minListWidth);this.list.setSize(c,0);this.list.swallowEvent("mousewheel");this.assetHeight=0;if(this.syncFont!==false)this.list.setStyle("font-size",this.el.getStyle("font-size"));if(this.title){this.header=this.list.createChild({cls:a+"-hd",html:this.title});this.assetHeight+=this.header.getHeight()}this.innerList=this.list.createChild({cls:a+"-inner"});this.mon(this.innerList,"mouseover",this.onViewOver,this);this.mon(this.innerList,"mousemove",this.onViewMove,this);this.innerList.setWidth(c-this.list.getFrameWidth("lr"));if(this.pageSize){this.footer=this.list.createChild({cls:a+"-ft"});this.pageTb=new Ext.PagingToolbar({store:this.store,pageSize:this.pageSize,renderTo:this.footer});this.assetHeight+=this.footer.getHeight()}if(!this.tpl)this.tpl='<tpl for="."><div class="'+a+'-item">{'+this.displayField+"}</div></tpl>";this.view=new Ext.DataView({applyTo:this.innerList,tpl:this.tpl,singleSelect:true,selectedClass:this.selectedClass,itemSelector:this.itemSelector||"."+a+"-item",emptyText:this.listEmptyText,deferEmptyText:false});this.mon(this.view,{containerclick:this.onViewClick,click:this.onViewClick,scope:this});this.bindStore(this.store,true);if(this.resizable){this.resizer=new Ext.Resizable(this.list,{pinned:true,handles:"se"});this.mon(this.resizer,"resize",function(i,e,g){this.maxHeight=g-this.handleHeight-this.list.getFrameWidth("tb")-this.assetHeight;this.listWidth=e;this.innerList.setWidth(e-this.list.getFrameWidth("lr"));this.restrictHeight()},this);this[this.pageSize?"footer":"innerList"].setStyle("margin-bottom",this.handleHeight+"px")}}},getListParent:function(){return document.body},getStore:function(){return this.store},bindStore:function(a,b){if(this.store&&!b){if(this.store!==a&&this.store.autoDestroy)this.store.destroy();else{this.store.un("beforeload",this.onBeforeLoad,this);this.store.un("load",this.onLoad,this);this.store.un("exception",this.collapse,this)}if(!a){this.store=null;if(this.view)this.view.bindStore(null);if(this.pageTb)this.pageTb.bindStore(null)}}if(a){if(!b){this.lastQuery=null;if(this.pageTb)this.pageTb.bindStore(a)}this.store=Ext.StoreMgr.lookup(a);this.store.on({scope:this,beforeload:this.onBeforeLoad,load:this.onLoad,exception:this.collapse});if(this.view)this.view.bindStore(a)}},reset:function(){Ext.form.ComboBox.superclass.reset.call(this);if(this.clearFilterOnReset&&this.mode=="local")this.store.clearFilter()},initEvents:function(){Ext.form.ComboBox.superclass.initEvents.call(this);this.keyNav=new Ext.KeyNav(this.el,{up:function(a){this.inKeyMode=true;this.selectPrev()},down:function(a){if(!this.isExpanded())this.onTriggerClick();else{this.inKeyMode=true;this.selectNext()}},enter:function(a){this.onViewClick()},esc:function(a){this.collapse()},tab:function(a){if(this.forceSelection===true)this.collapse();else this.onViewClick(false);return true},scope:this,doRelay:function(c,b,a){if(a=="down"||this.scope.isExpanded()){var d=Ext.KeyNav.prototype.doRelay.apply(this,arguments);if(!Ext.isIE&&Ext.EventManager.useKeydown)this.scope.fireKey(c);return d}return true},forceKeyDown:true,defaultEventAction:"stopEvent"});this.queryDelay=Math.max(this.queryDelay||10,this.mode=="local"?10:250);this.dqTask=new Ext.util.DelayedTask(this.initQuery,this);if(this.typeAhead)this.taTask=new Ext.util.DelayedTask(this.onTypeAhead,this);if(!this.enableKeyEvents)this.mon(this.el,"keyup",this.onKeyUp,this)},onDestroy:function(){if(this.dqTask){this.dqTask.cancel();this.dqTask=null}this.bindStore(null);Ext.destroy(this.resizer,this.view,this.pageTb,this.list);Ext.destroyMembers(this,"hiddenField");Ext.form.ComboBox.superclass.onDestroy.call(this)},fireKey:function(a){if(!this.isExpanded())Ext.form.ComboBox.superclass.fireKey.call(this,a)},onResize:function(a,b){Ext.form.ComboBox.superclass.onResize.apply(this,arguments);if(!isNaN(a)&&this.isVisible()&&this.list)this.doResize(a);else this.bufferSize=a},doResize:function(a){if(!Ext.isDefined(this.listWidth)){var b=Math.max(a,this.minListWidth);this.list.setWidth(b);this.innerList.setWidth(b-this.list.getFrameWidth("lr"))}},onEnable:function(){Ext.form.ComboBox.superclass.onEnable.apply(this,arguments);if(this.hiddenField)this.hiddenField.disabled=false},onDisable:function(){Ext.form.ComboBox.superclass.onDisable.apply(this,arguments);if(this.hiddenField)this.hiddenField.disabled=true},onBeforeLoad:function(){if(!this.hasFocus)return;this.innerList.update(this.loadingText?'<div class="loading-indicator">'+this.loadingText+"</div>":"");this.restrictHeight();this.selectedIndex=-1},onLoad:function(){if(!this.hasFocus)return;if(this.store.getCount()>0||this.listEmptyText){this.expand();this.restrictHeight();if(this.lastQuery==this.allQuery){if(this.editable)this.el.dom.select();if(this.autoSelect!==false&&!this.selectByValue(this.value,true))this.select(0,true)}else{if(this.autoSelect!==false)this.selectNext();if(this.typeAhead&&this.lastKey!=Ext.EventObject.BACKSPACE&&this.lastKey!=Ext.EventObject.DELETE)this.taTask.delay(this.typeAheadDelay)}}else this.collapse()},onTypeAhead:function(){if(this.store.getCount()>0){var b=this.store.getAt(0);var c=b.data[this.displayField];var a=c.length;var d=this.getRawValue().length;if(d!=a){this.setRawValue(c);this.selectText(d,c.length)}}},assertValue:function(){var b=this.getRawValue(),a=this.findRecord(this.displayField,b);if(!a&&this.forceSelection)if(b.length>0&&b!=this.emptyText){this.el.dom.value=Ext.value(this.lastSelectionText,"");this.applyEmptyText()}else this.clearValue();else{if(a){if(b==a.get(this.displayField)&&this.value==a.get(this.valueField))return;b=a.get(this.valueField||this.displayField)}this.setValue(b)}},onSelect:function(a,b){if(this.fireEvent("beforeselect",this,a,b)!==false){this.setValue(a.data[this.valueField||this.displayField]);this.collapse();this.fireEvent("select",this,a,b)}},getName:function(){var a=this.hiddenField;return a&&a.name?a.name:this.hiddenName||Ext.form.ComboBox.superclass.getName.call(this)},getValue:function(){if(this.valueField)return Ext.isDefined(this.value)?this.value:"";else return Ext.form.ComboBox.superclass.getValue.call(this)},clearValue:function(){if(this.hiddenField)this.hiddenField.value="";this.setRawValue("");this.lastSelectionText="";this.applyEmptyText();this.value=""},setValue:function(a){var c=a;if(this.valueField){var b=this.findRecord(this.valueField,a);if(b)c=b.data[this.displayField];else if(Ext.isDefined(this.valueNotFoundText))c=this.valueNotFoundText}this.lastSelectionText=c;if(this.hiddenField)this.hiddenField.value=Ext.value(a,"");Ext.form.ComboBox.superclass.setValue.call(this,c);this.value=a;return this},findRecord:function(c,b){var a;if(this.store.getCount()>0)this.store.each(function(d){if(d.data[c]==b){a=d;return false}});return a},onViewMove:function(b,a){this.inKeyMode=false},onViewOver:function(d,b){if(this.inKeyMode)return;var c=this.view.findItemFromChild(b);if(c){var a=this.view.indexOf(c);this.select(a,false)}},onViewClick:function(b){var a=this.view.getSelectedIndexes()[0],c=this.store,d=c.getAt(a);if(d)this.onSelect(d,a);else this.collapse();if(b!==false)this.el.focus()},restrictHeight:function(){this.innerList.dom.style.height="";var b=this.innerList.dom,e=this.list.getFrameWidth("tb")+(this.resizable?this.handleHeight:0)+this.assetHeight,c=Math.max(b.clientHeight,b.offsetHeight,b.scrollHeight),a=this.getPosition()[1]-Ext.getBody().getScroll().top,g=Ext.lib.Dom.getViewHeight()-a-this.getSize().height,d=Math.max(a,g,this.minHeight||0)-this.list.shadowOffset-e-5;c=Math.min(c,d,this.maxHeight);this.innerList.setHeight(c);this.list.beginUpdate();this.list.setHeight(c+e);this.list.alignTo.apply(this.list,[this.el].concat(this.listAlign));this.list.endUpdate()},isExpanded:function(){return this.list&&this.list.isVisible()},selectByValue:function(a,c){if(!Ext.isEmpty(a,true)){var b=this.findRecord(this.valueField||this.displayField,a);if(b){this.select(this.store.indexOf(b),c);return true}}return false},select:function(a,c){this.selectedIndex=a;this.view.select(a);if(c!==false){var b=this.view.getNode(a);if(b)this.innerList.scrollChildIntoView(b,false)}},selectNext:function(){var a=this.store.getCount();if(a>0)if(this.selectedIndex==-1)this.select(0);else if(this.selectedIndex<a-1)this.select(this.selectedIndex+1)},selectPrev:function(){var a=this.store.getCount();if(a>0)if(this.selectedIndex==-1)this.select(0);else if(this.selectedIndex!==0)this.select(this.selectedIndex-1)},onKeyUp:function(b){var a=b.getKey();if(this.editable!==false&&this.readOnly!==true&&(a==b.BACKSPACE||!b.isSpecialKey())){this.lastKey=a;this.dqTask.delay(this.queryDelay)}Ext.form.ComboBox.superclass.onKeyUp.call(this,b)},validateBlur:function(){return!this.list||!this.list.isVisible()},initQuery:function(){this.doQuery(this.getRawValue())},beforeBlur:function(){this.assertValue()},postBlur:function(){Ext.form.ComboBox.superclass.postBlur.call(this);this.collapse();this.inKeyMode=false},doQuery:function(c,b){c=Ext.isEmpty(c)?"":c;var a={query:c,forceAll:b,combo:this,cancel:false};if(this.fireEvent("beforequery",a)===false||a.cancel)return false;c=a.query;b=a.forceAll;if(b===true||c.length>=this.minChars)if(this.lastQuery!==c){this.lastQuery=c;if(this.mode=="local"){this.selectedIndex=-1;if(b)this.store.clearFilter();else this.store.filter(this.displayField,c);this.onLoad()}else{this.store.baseParams[this.queryParam]=c;this.store.load({params:this.getParams(c)});this.expand()}}else{this.selectedIndex=-1;this.onLoad()}},getParams:function(a){var b={};if(this.pageSize){b.start=0;b.limit=this.pageSize}return b},collapse:function(){if(!this.isExpanded())return;this.list.hide();Ext.getDoc().un("mousewheel",this.collapseIf,this);Ext.getDoc().un("mousedown",this.collapseIf,this);this.fireEvent("collapse",this)},collapseIf:function(a){if(!this.isDestroyed&&!a.within(this.wrap)&&!a.within(this.list))this.collapse()},expand:function(){if(this.isExpanded()||!this.hasFocus)return;if(this.title||this.pageSize){this.assetHeight=0;if(this.title)this.assetHeight+=this.header.getHeight();if(this.pageSize)this.assetHeight+=this.footer.getHeight()}if(this.bufferSize){this.doResize(this.bufferSize);delete this.bufferSize}this.list.alignTo.apply(this.list,[this.el].concat(this.listAlign));var b=Ext.getDom(this.getListParent()||Ext.getBody()),a=parseInt(Ext.fly(b).getStyle("z-index"),10);if(!a)a=this.getParentZIndex();if(a)this.list.setZIndex(a+5);this.list.show();if(Ext.isGecko2)this.innerList.setOverflow("auto");this.mon(Ext.getDoc(),{scope:this,mousewheel:this.collapseIf,mousedown:this.collapseIf});this.fireEvent("expand",this)},onTriggerClick:function(){if(this.readOnly||this.disabled)return;if(this.isExpanded()){this.collapse();this.el.focus()}else{this.onFocus({});if(this.triggerAction=="all")this.doQuery(this.allQuery,true);else this.doQuery(this.getRawValue());this.el.focus()}}});Ext.reg("combo",Ext.form.ComboBox);Ext.form.Checkbox=Ext.extend(Ext.form.Field,{focusClass:undefined,fieldClass:"x-form-field",checked:false,boxLabel:"&#160;",defaultAutoCreate:{tag:"input",type:"checkbox",autocomplete:"off"},actionMode:"wrap",initComponent:function(){Ext.form.Checkbox.superclass.initComponent.call(this);this.addEvents("check")},onResize:function(){Ext.form.Checkbox.superclass.onResize.apply(this,arguments);if(!this.boxLabel&&!this.fieldLabel)this.el.alignTo(this.wrap,"c-c")},initEvents:function(){Ext.form.Checkbox.superclass.initEvents.call(this);this.mon(this.el,{scope:this,click:this.onClick,change:this.onClick})},markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn,onRender:function(b,a){Ext.form.Checkbox.superclass.onRender.call(this,b,a);if(this.inputValue!==undefined)this.el.dom.value=this.inputValue;this.wrap=this.el.wrap({cls:"x-form-check-wrap"});if(this.boxLabel)this.wrap.createChild({tag:"label",htmlFor:this.el.id,cls:"x-form-cb-label",html:this.boxLabel});if(this.checked)this.setValue(true);else this.checked=this.el.dom.checked;if(Ext.isIE)this.wrap.repaint();this.resizeEl=this.positionEl=this.wrap},onDestroy:function(){Ext.destroy(this.wrap);Ext.form.Checkbox.superclass.onDestroy.call(this)},initValue:function(){this.originalValue=this.getValue()},getValue:function(){if(this.rendered)return this.el.dom.checked;return this.checked},onClick:function(){if(this.el.dom.checked!=this.checked)this.setValue(this.el.dom.checked)},setValue:function(a){var b=this.checked;this.checked=a===true||a==="true"||a=="1"||String(a).toLowerCase()=="on";if(this.rendered){this.el.dom.checked=this.checked;this.el.dom.defaultChecked=this.checked}if(b!=this.checked){this.fireEvent("check",this,this.checked);if(this.handler)this.handler.call(this.scope||this,this,this.checked)}return this}});Ext.reg("checkbox",Ext.form.Checkbox);Ext.form.CheckboxGroup=Ext.extend(Ext.form.Field,{columns:"auto",vertical:false,allowBlank:true,blankText:"You must select at least one item in this group",defaultType:"checkbox",groupCls:"x-form-check-group",initComponent:function(){this.addEvents("change");this.on("change",this.validate,this);Ext.form.CheckboxGroup.superclass.initComponent.call(this)},onRender:function(j,g){if(!this.el){var p={autoEl:{id:this.id},cls:this.groupCls,layout:"column",renderTo:j,bufferResize:false};var a={xtype:"container",defaultType:this.defaultType,layout:"form",defaults:{hideLabel:true,anchor:"100%"}};if(this.items[0].items){Ext.apply(p,{layoutConfig:{columns:this.items.length},defaults:this.defaults,items:this.items});for(var e=0,m=this.items.length;e<m;e++)Ext.applyIf(this.items[e],a)}else{var d,n=[];if(typeof this.columns=="string")this.columns=this.items.length;if(!Ext.isArray(this.columns)){var k=[];for(var e=0;e<this.columns;e++)k.push(100/this.columns*.01);this.columns=k}d=this.columns.length;for(var e=0;e<d;e++){var b=Ext.apply({items:[]},a);b[this.columns[e]<=1?"columnWidth":"width"]=this.columns[e];if(this.defaults)b.defaults=Ext.apply(b.defaults||{},this.defaults);n.push(b)}if(this.vertical){var r=Math.ceil(this.items.length/d),o=0;for(var e=0,m=this.items.length;e<m;e++){if(e>0&&e%r==0)o++;if(this.items[e].fieldLabel)this.items[e].hideLabel=false;n[o].items.push(this.items[e])}}else for(var e=0,m=this.items.length;e<m;e++){var q=e%d;if(this.items[e].fieldLabel)this.items[e].hideLabel=false;n[q].items.push(this.items[e])}Ext.apply(p,{layoutConfig:{columns:d},items:n})}this.panel=new Ext.Container(p);this.panel.ownerCt=this;this.el=this.panel.getEl();if(this.forId&&this.itemCls){var c=this.el.up(this.itemCls).child("label",true);if(c)c.setAttribute("htmlFor",this.forId)}var h=this.panel.findBy(function(i){return i.isFormField},this);this.items=new Ext.util.MixedCollection;this.items.addAll(h)}Ext.form.CheckboxGroup.superclass.onRender.call(this,j,g)},initValue:function(){if(this.value){this.setValue.apply(this,this.buffered?this.value:[this.value]);delete this.buffered;delete this.value}},afterRender:function(){Ext.form.CheckboxGroup.superclass.afterRender.call(this);this.eachItem(function(a){a.on("check",this.fireChecked,this);a.inGroup=true})},doLayout:function(){if(this.rendered){this.panel.forceLayout=this.ownerCt.forceLayout;this.panel.doLayout()}},fireChecked:function(){var a=[];this.eachItem(function(b){if(b.checked)a.push(b)});this.fireEvent("change",this,a)},getErrors:function(){var b=Ext.form.CheckboxGroup.superclass.getErrors.apply(this,arguments);if(!this.allowBlank){var a=true;this.eachItem(function(c){if(c.checked)return a=false});if(a)b.push(this.blankText)}return b},isDirty:function(){if(this.disabled||!this.rendered)return false;var a=false;this.eachItem(function(b){if(b.isDirty()){a=true;return false}});return a},setReadOnly:function(a){if(this.rendered)this.eachItem(function(b){b.setReadOnly(a)});this.readOnly=a},onDisable:function(){this.eachItem(function(a){a.disable()})},onEnable:function(){this.eachItem(function(a){a.enable()})},onResize:function(a,b){this.panel.setSize(a,b);this.panel.doLayout()},reset:function(){if(this.originalValue){this.eachItem(function(a){if(a.setValue){a.setValue(false);a.originalValue=a.getValue()}});this.resetOriginal=true;this.setValue(this.originalValue);delete this.resetOriginal}else this.eachItem(function(a){if(a.reset)a.reset()});(function(){this.clearInvalid()}).defer(50,this)},setValue:function(){if(this.rendered)this.onSetValue.apply(this,arguments);else{this.buffered=true;this.value=arguments}return this},onSetValue:function(d,c){if(arguments.length==1)if(Ext.isArray(d))Ext.each(d,function(h,e){if(Ext.isObject(h)&&h.setValue){h.setValue(true);if(this.resetOriginal===true)h.originalValue=h.getValue()}else{var g=this.items.itemAt(e);if(g)g.setValue(h)}},this);else if(Ext.isObject(d))for(var a in d){var b=this.getBox(a);if(b)b.setValue(d[a])}else this.setValueForItem(d);else{var b=this.getBox(d);if(b)b.setValue(c)}},beforeDestroy:function(){Ext.destroy(this.panel);Ext.form.CheckboxGroup.superclass.beforeDestroy.call(this)},setValueForItem:function(a){a=String(a).split(",");this.eachItem(function(b){if(a.indexOf(b.inputValue)>-1)b.setValue(true)})},getBox:function(b){var a=null;this.eachItem(function(c){if(b==c||c.dataIndex==b||c.id==b||c.getName()==b){a=c;return false}});return a},getValue:function(){var a=[];this.eachItem(function(b){if(b.checked)a.push(b)});return a},eachItem:function(b,a){if(this.items&&this.items.each)this.items.each(b,a||this)},getRawValue:Ext.emptyFn,setRawValue:Ext.emptyFn});Ext.reg("checkboxgroup",Ext.form.CheckboxGroup);Ext.form.CompositeField=Ext.extend(Ext.form.Field,{defaultMargins:"0 5 0 0",skipLastItemMargin:true,isComposite:true,combineErrors:true,initComponent:function(){var e=[],a=this.items,d;for(var c=0,b=a.length;c<b;c++){d=a[c];e.push(d.fieldLabel);Ext.apply(d,this.defaults);if(!(c==b-1&&this.skipLastItemMargin))Ext.applyIf(d,{margins:this.defaultMargins})}this.fieldLabel=this.fieldLabel||this.buildLabel(e);this.fieldErrors=new Ext.util.MixedCollection(true,function(g){return g.field});this.fieldErrors.on({scope:this,add:this.updateInvalidMark,remove:this.updateInvalidMark,replace:this.updateInvalidMark});Ext.form.CompositeField.superclass.initComponent.apply(this,arguments)},onRender:function(d,b){if(!this.el){var e=this.innerCt=new Ext.Container({layout:"hbox",renderTo:d,items:this.items,cls:"x-form-composite",defaultMargins:"0 3 0 0"});this.el=e.getEl();var a=e.findBy(function(g){return g.isFormField},this);this.items=new Ext.util.MixedCollection;this.items.addAll(a);if(this.combineErrors)this.eachItem(function(g){Ext.apply(g,{markInvalid:this.onFieldMarkInvalid.createDelegate(this,[g],0),clearInvalid:this.onFieldClearInvalid.createDelegate(this,[g],0)})});var c=this.el.parent().parent().child("label",true);if(c)c.setAttribute("for",this.items.items[0].id)}Ext.form.CompositeField.superclass.onRender.apply(this,arguments)},onFieldMarkInvalid:function(d,c){var b=d.getName(),a={field:b,error:c};this.fieldErrors.replace(b,a);d.el.addClass(d.invalidClass)},onFieldClearInvalid:function(a){this.fieldErrors.removeKey(a.getName());a.el.removeClass(a.invalidClass)},updateInvalidMark:function(){var a=Ext.isIE6&&Ext.isStrict;if(this.fieldErrors.length==0){this.clearInvalid();if(a)this.clearInvalid.defer(50,this)}else{var b=this.buildCombinedErrorMessage(this.fieldErrors.items);this.sortErrors();this.markInvalid(b);if(a)this.markInvalid(b)}},validateValue:function(){var a=true;this.eachItem(function(b){if(!b.isValid())a=false});return a},buildCombinedErrorMessage:function(e){var d=[],b;for(var c=0,a=e.length;c<a;c++){b=e[c];d.push(String.format("{0}: {1}",b.field,b.error))}return d.join("<br />")},sortErrors:function(){var a=this.items;this.fieldErrors.sort("ASC",function(g,d){var c=function(b){return function(i){return i.getName()==b}};var h=a.findIndexBy(c(g.field)),e=a.findIndexBy(c(d.field));return h<e?-1:1})},reset:function(){this.eachItem(function(a){a.reset()});(function(){this.clearInvalid()}).defer(50,this)},clearInvalidChildren:function(){this.eachItem(function(a){a.clearInvalid()})},buildLabel:function(a){return a.join(", ")},isDirty:function(){if(this.disabled||!this.rendered)return false;var a=false;this.eachItem(function(b){if(b.isDirty()){a=true;return false}});return a},eachItem:function(b,a){if(this.items&&this.items.each)this.items.each(b,a||this)},onResize:function(e,c,a,d){var b=this.innerCt;if(this.rendered&&b.rendered)b.setSize(e,c);Ext.form.CompositeField.superclass.onResize.apply(this,arguments)},doLayout:function(c,b){if(this.rendered){var a=this.innerCt;a.forceLayout=this.ownerCt.forceLayout;a.doLayout(c,b)}},beforeDestroy:function(){Ext.destroy(this.innerCt);Ext.form.CompositeField.superclass.beforeDestroy.call(this)},setReadOnly:function(a){a=a||true;if(this.rendered)this.eachItem(function(b){b.setReadOnly(a)});this.readOnly=a},onShow:function(){Ext.form.CompositeField.superclass.onShow.call(this);this.doLayout()},onDisable:function(){this.eachItem(function(a){a.disable()})},onEnable:function(){this.eachItem(function(a){a.enable()})}});Ext.reg("compositefield",Ext.form.CompositeField);Ext.form.Radio=Ext.extend(Ext.form.Checkbox,{inputType:"radio",markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn,getGroupValue:function(){var a=this.el.up("form")||Ext.getBody();var b=a.child("input[name="+this.el.dom.name+"]:checked",true);return b?b.value:null},onClick:function(){if(this.el.dom.checked!=this.checked){var a=this.getCheckEl().select("input[name="+this.el.dom.name+"]");a.each(function(b){if(b.dom.id==this.id)this.setValue(true);else Ext.getCmp(b.dom.id).setValue(false)},this)}},setValue:function(a){if(typeof a=="boolean")Ext.form.Radio.superclass.setValue.call(this,a);else if(this.rendered){var b=this.getCheckEl().child("input[name="+this.el.dom.name+"][value="+a+"]",true);if(b)Ext.getCmp(b.id).setValue(true)}return this},getCheckEl:function(){if(this.inGroup)return this.el.up(".x-form-radio-group");return this.el.up("form")||Ext.getBody()}});Ext.reg("radio",Ext.form.Radio);Ext.form.RadioGroup=Ext.extend(Ext.form.CheckboxGroup,{allowBlank:true,blankText:"You must select one item in this group",defaultType:"radio",groupCls:"x-form-radio-group",getValue:function(){var a=null;this.eachItem(function(b){if(b.checked){a=b;return false}});return a},onSetValue:function(c,b){if(arguments.length>1){var a=this.getBox(c);if(a){a.setValue(b);if(a.checked)this.eachItem(function(d){if(d!==a)d.setValue(false)})}}else this.setValueForItem(c)},setValueForItem:function(a){a=String(a).split(",")[0];this.eachItem(function(b){b.setValue(a==b.inputValue)})},fireChecked:function(){if(!this.checkTask)this.checkTask=new Ext.util.DelayedTask(this.bufferChecked,this);this.checkTask.delay(10)},bufferChecked:function(){var a=null;this.eachItem(function(b){if(b.checked){a=b;return false}});this.fireEvent("change",this,a)},onDestroy:function(){if(this.checkTask){this.checkTask.cancel();this.checkTask=null}Ext.form.RadioGroup.superclass.onDestroy.call(this)}});Ext.reg("radiogroup",Ext.form.RadioGroup);Ext.form.Hidden=Ext.extend(Ext.form.Field,{inputType:"hidden",onRender:function(){Ext.form.Hidden.superclass.onRender.apply(this,arguments)},initEvents:function(){this.originalValue=this.getValue()},setSize:Ext.emptyFn,setWidth:Ext.emptyFn,setHeight:Ext.emptyFn,setPosition:Ext.emptyFn,setPagePosition:Ext.emptyFn,markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn});Ext.reg("hidden",Ext.form.Hidden);Ext.form.BasicForm=Ext.extend(Ext.util.Observable,{constructor:function(b,a){Ext.apply(this,a);if(Ext.isString(this.paramOrder))this.paramOrder=this.paramOrder.split(/[\s,|]/);this.items=new Ext.util.MixedCollection(false,function(c){return c.getItemId()});this.addEvents("beforeaction","actionfailed","actioncomplete");if(b)this.initEl(b);Ext.form.BasicForm.superclass.constructor.call(this)},timeout:30,paramOrder:undefined,paramsAsHash:false,waitTitle:"Please Wait...",activeAction:null,trackResetOnLoad:false,initEl:function(a){this.el=Ext.get(a);this.id=this.el.id||Ext.id();if(!this.standardSubmit)this.el.on("submit",this.onSubmit,this);this.el.addClass("x-form")},getEl:function(){return this.el},onSubmit:function(a){a.stopEvent()},destroy:function(a){if(a!==true){this.items.each(function(b){Ext.destroy(b)});Ext.destroy(this.el)}this.items.clear();this.purgeListeners()},isValid:function(){var a=true;this.items.each(function(b){if(!b.validate())a=false});return a},isDirty:function(){var a=false;this.items.each(function(b){if(b.isDirty()){a=true;return false}});return a},doAction:function(b,a){if(Ext.isString(b))b=new Ext.form.Action.ACTION_TYPES[b](this,a);if(this.fireEvent("beforeaction",this,b)!==false){this.beforeAction(b);b.run.defer(100,b)}return this},submit:function(b){b=b||{};if(this.standardSubmit){var a=b.clientValidation===false||this.isValid();if(a){var c=this.el.dom;if(this.url&&Ext.isEmpty(c.action))c.action=this.url;c.submit()}return a}var d=String.format("{0}submit",this.api?"direct":"");this.doAction(d,b);return this},load:function(a){var b=String.format("{0}load",this.api?"direct":"");this.doAction(b,a);return this},updateRecord:function(b){b.beginEdit();var a=b.fields;a.each(function(c){var d=this.findField(c.name);if(d)b.set(c.name,d.getValue())},this);b.endEdit();return this},loadRecord:function(a){this.setValues(a.data);return this},beforeAction:function(a){this.items.each(function(c){if(c.isFormField&&c.syncValue)c.syncValue()});var b=a.options;if(b.waitMsg)if(this.waitMsgTarget===true)this.el.mask(b.waitMsg,"x-mask-loading");else if(this.waitMsgTarget){this.waitMsgTarget=Ext.get(this.waitMsgTarget);this.waitMsgTarget.mask(b.waitMsg,"x-mask-loading")}else Ext.MessageBox.wait(b.waitMsg,b.waitTitle||this.waitTitle)},afterAction:function(a,c){this.activeAction=null;var b=a.options;if(b.waitMsg)if(this.waitMsgTarget===true)this.el.unmask();else if(this.waitMsgTarget)this.waitMsgTarget.unmask();else{Ext.MessageBox.updateProgress(1);Ext.MessageBox.hide()}if(c){if(b.reset)this.reset();Ext.callback(b.success,b.scope,[this,a]);this.fireEvent("actioncomplete",this,a)}else{Ext.callback(b.failure,b.scope,[this,a]);this.fireEvent("actionfailed",this,a)}},findField:function(c){var b=this.items.get(c);if(!Ext.isObject(b)){var a=function(d){if(d.isFormField)if(d.dataIndex==c||d.id==c||d.getName()==c){b=d;return false}else if(d.isComposite&&d.rendered)return d.items.each(a)};this.items.each(a)}return b||null},markInvalid:function(h){if(Ext.isArray(h))for(var c=0,a=h.length;c<a;c++){var b=h[c];var d=this.findField(b.id);if(d)d.markInvalid(b.msg)}else{var e,g;for(g in h)if(!Ext.isFunction(h[g])&&(e=this.findField(g)))e.markInvalid(h[g])}return this},setValues:function(c){if(Ext.isArray(c))for(var d=0,a=c.length;d<a;d++){var b=c[d];var e=this.findField(b.id);if(e){e.setValue(b.value);if(this.trackResetOnLoad)e.originalValue=e.getValue()}}else{var g,h;for(h in c)if(!Ext.isFunction(c[h])&&(g=this.findField(h))){g.setValue(c[h]);if(this.trackResetOnLoad)g.originalValue=g.getValue()}}return this},getValues:function(b){var a=Ext.lib.Ajax.serializeForm(this.el.dom);if(b===true)return a;return Ext.urlDecode(a)},getFieldValues:function(a){var d={},e,b,c;this.items.each(function(g){if(a!==true||g.isDirty()){e=g.getName();b=d[e];c=g.getValue();if(Ext.isDefined(b))if(Ext.isArray(b))d[e].push(c);else d[e]=[b,c];else d[e]=c}});return d},clearInvalid:function(){this.items.each(function(a){a.clearInvalid()});return this},reset:function(){this.items.each(function(a){a.reset()});return this},add:function(){this.items.addAll(Array.prototype.slice.call(arguments,0));return this},remove:function(a){this.items.remove(a);return this},cleanDestroyed:function(){this.items.filterBy(function(a){return!!a.isDestroyed}).each(this.remove,this)},render:function(){this.items.each(function(a){if(a.isFormField&&!a.rendered&&document.getElementById(a.id))a.applyToMarkup(a.id)});return this},applyToFields:function(a){this.items.each(function(b){Ext.apply(b,a)});return this},applyIfToFields:function(a){this.items.each(function(b){Ext.applyIf(b,a)});return this},callFieldMethod:function(b,a){a=a||[];this.items.each(function(c){if(Ext.isFunction(c[b]))c[b].apply(c,a)});return this}});Ext.BasicForm=Ext.form.BasicForm;Ext.FormPanel=Ext.extend(Ext.Panel,{minButtonWidth:75,labelAlign:"left",monitorValid:false,monitorPoll:200,layout:"form",initComponent:function(){this.form=this.createForm();Ext.FormPanel.superclass.initComponent.call(this);this.bodyCfg={tag:"form",cls:this.baseCls+"-body",method:this.method||"POST",id:this.formId||Ext.id()};if(this.fileUpload)this.bodyCfg.enctype="multipart/form-data";this.initItems();this.addEvents("clientvalidation");this.relayEvents(this.form,["beforeaction","actionfailed","actioncomplete"])},createForm:function(){var a=Ext.applyIf({listeners:{}},this.initialConfig);return new Ext.form.BasicForm(null,a)},initFields:function(){var c=this.form;var a=this;var b=function(d){if(a.isField(d))c.add(d);else if(d.findBy&&d!=a){a.applySettings(d);if(d.items&&d.items.each)d.items.each(b,this)}};this.items.each(b,this)},applySettings:function(b){var a=b.ownerCt;Ext.applyIf(b,{labelAlign:a.labelAlign,labelWidth:a.labelWidth,itemCls:a.itemCls})},getLayoutTarget:function(){return this.form.el},getForm:function(){return this.form},onRender:function(b,a){this.initFields();Ext.FormPanel.superclass.onRender.call(this,b,a);this.form.initEl(this.body)},beforeDestroy:function(){this.stopMonitoring();this.form.destroy(true);Ext.FormPanel.superclass.beforeDestroy.call(this)},isField:function(a){return!!a.setValue&&!!a.getValue&&!!a.markInvalid&&!!a.clearInvalid},initEvents:function(){Ext.FormPanel.superclass.initEvents.call(this);this.on({scope:this,add:this.onAddEvent,remove:this.onRemoveEvent});if(this.monitorValid)this.startMonitoring()},onAdd:function(a){Ext.FormPanel.superclass.onAdd.call(this,a);this.processAdd(a)},onAddEvent:function(a,b){if(a!==this)this.processAdd(b)},processAdd:function(a){if(this.isField(a))this.form.add(a);else if(a.findBy){this.applySettings(a);this.form.add.apply(this.form,a.findBy(this.isField))}},onRemove:function(a){Ext.FormPanel.superclass.onRemove.call(this,a);this.processRemove(a)},onRemoveEvent:function(a,b){if(a!==this)this.processRemove(b)},processRemove:function(a){if(!this.destroying)if(this.isField(a))this.form.remove(a);else if(a.findBy){Ext.each(a.findBy(this.isField),this.form.remove,this.form);if(a.isDestroyed)this.form.cleanDestroyed()}},startMonitoring:function(){if(!this.validTask){this.validTask=new Ext.util.TaskRunner;this.validTask.start({run:this.bindHandler,interval:this.monitorPoll||200,scope:this})}},stopMonitoring:function(){if(this.validTask){this.validTask.stopAll();this.validTask=null}},load:function(){this.form.load.apply(this.form,arguments)},onDisable:function(){Ext.FormPanel.superclass.onDisable.call(this);if(this.form)this.form.items.each(function(){this.disable()})},onEnable:function(){Ext.FormPanel.superclass.onEnable.call(this);if(this.form)this.form.items.each(function(){this.enable()})},bindHandler:function(){var e=true;this.form.items.each(function(g){if(!g.isValid(true)){e=false;return false}});if(this.fbar){var b=this.fbar.items.items;for(var d=0,a=b.length;d<a;d++){var c=b[d];if(c.formBind===true&&c.disabled===e)c.setDisabled(!e)}}this.fireEvent("clientvalidation",this,e)}});Ext.reg("form",Ext.FormPanel);Ext.form.FormPanel=Ext.FormPanel;Ext.form.FieldSet=Ext.extend(Ext.Panel,{baseCls:"x-fieldset",layout:"form",animCollapse:false,onRender:function(b,a){if(!this.el){this.el=document.createElement("fieldset");this.el.id=this.id;if(this.title||this.header||this.checkboxToggle)this.el.appendChild(document.createElement("legend")).className=this.baseCls+"-header"}Ext.form.FieldSet.superclass.onRender.call(this,b,a);if(this.checkboxToggle){var c=typeof this.checkboxToggle=="object"?this.checkboxToggle:{tag:"input",type:"checkbox",name:this.checkboxName||this.id+"-checkbox"};this.checkbox=this.header.insertFirst(c);this.checkbox.dom.checked=!this.collapsed;this.mon(this.checkbox,"click",this.onCheckClick,this)}},onCollapse:function(a,b){if(this.checkbox)this.checkbox.dom.checked=false;Ext.form.FieldSet.superclass.onCollapse.call(this,a,b)},onExpand:function(a,b){if(this.checkbox)this.checkbox.dom.checked=true;Ext.form.FieldSet.superclass.onExpand.call(this,a,b)},onCheckClick:function(){this[this.checkbox.dom.checked?"expand":"collapse"]()}});Ext.reg("fieldset",Ext.form.FieldSet);Ext.form.HtmlEditor=Ext.extend(Ext.form.Field,{enableFormat:true,enableFontSize:true,enableColors:true,enableAlignments:true,enableLists:true,enableSourceEdit:true,enableLinks:true,enableFont:true,createLinkText:"Please enter the URL for the link:",defaultLinkValue:"http://",fontFamilies:["Arial","Courier New","Tahoma","Times New Roman","Verdana"],defaultFont:"tahoma",defaultValue:Ext.isOpera||Ext.isIE6?"&#160;":"&#8203;",actionMode:"wrap",validationEvent:false,deferHeight:true,initialized:false,activated:false,sourceEditMode:false,onFocus:Ext.emptyFn,iframePad:3,hideMode:"offsets",defaultAutoCreate:{tag:"textarea",style:"width:500px;height:300px;",autocomplete:"off"},initComponent:function(){this.addEvents("initialize","activate","beforesync","beforepush","sync","push","editmodechange")},createFontOptions:function(){var d=[],b=this.fontFamilies,c,g;for(var e=0,a=b.length;e<a;e++){c=b[e];g=c.toLowerCase();d.push('<option value="',g,'" style="font-family:',c,';"',this.defaultFont==g?' selected="true">':">",c,"</option>")}return d.join("")},createToolbar:function(e){var c=[];var a=Ext.QuickTips&&Ext.QuickTips.isEnabled();function d(j,h,i){return{itemId:j,cls:"x-btn-icon",iconCls:"x-edit-"+j,enableToggle:h!==false,scope:e,handler:i||e.relayBtnCmd,clickEvent:"mousedown",tooltip:a?e.buttonTips[j]||undefined:undefined,overflowText:e.buttonTips[j].title||undefined,tabIndex:-1}}if(this.enableFont&&!Ext.isSafari2){var g=new Ext.Toolbar.Item({autoEl:{tag:"select",cls:"x-font-select",html:this.createFontOptions()}});c.push(g,"-")}if(this.enableFormat)c.push(d("bold"),d("italic"),d("underline"));if(this.enableFontSize)c.push("-",d("increasefontsize",false,this.adjustFont),d("decreasefontsize",false,this.adjustFont));if(this.enableColors)c.push("-",{itemId:"forecolor",cls:"x-btn-icon",iconCls:"x-edit-forecolor",clickEvent:"mousedown",tooltip:a?e.buttonTips.forecolor||undefined:undefined,tabIndex:-1,menu:new Ext.menu.ColorMenu({allowReselect:true,focus:Ext.emptyFn,value:"000000",plain:true,listeners:{scope:this,select:function(i,h){this.execCmd("forecolor",Ext.isWebKit||Ext.isIE?"#"+h:h);this.deferFocus()}},clickEvent:"mousedown"})},{itemId:"backcolor",cls:"x-btn-icon",iconCls:"x-edit-backcolor",clickEvent:"mousedown",tooltip:a?e.buttonTips.backcolor||undefined:undefined,tabIndex:-1,menu:new Ext.menu.ColorMenu({focus:Ext.emptyFn,value:"FFFFFF",plain:true,allowReselect:true,listeners:{scope:this,select:function(i,h){if(Ext.isGecko){this.execCmd("useCSS",false);this.execCmd("hilitecolor",h);this.execCmd("useCSS",true);this.deferFocus()}else{this.execCmd(Ext.isOpera?"hilitecolor":"backcolor",Ext.isWebKit||Ext.isIE?"#"+h:h);this.deferFocus()}}},clickEvent:"mousedown"})});if(this.enableAlignments)c.push("-",d("justifyleft"),d("justifycenter"),d("justifyright"));if(!Ext.isSafari2){if(this.enableLinks)c.push("-",d("createlink",false,this.createLink));if(this.enableLists)c.push("-",d("insertorderedlist"),d("insertunorderedlist"));if(this.enableSourceEdit)c.push("-",d("sourceedit",true,function(h){this.toggleSourceEdit(!this.sourceEditMode)}))}var b=new Ext.Toolbar({renderTo:this.wrap.dom.firstChild,items:c});if(g){this.fontSelect=g.el;this.mon(this.fontSelect,"change",function(){var h=this.fontSelect.dom.value;this.relayCmd("fontname",h);this.deferFocus()},this)}this.mon(b.el,"click",function(h){h.preventDefault()});this.tb=b;this.tb.doLayout()},onDisable:function(){this.wrap.mask();Ext.form.HtmlEditor.superclass.onDisable.call(this)},onEnable:function(){this.wrap.unmask();Ext.form.HtmlEditor.superclass.onEnable.call(this)},setReadOnly:function(b){Ext.form.HtmlEditor.superclass.setReadOnly.call(this,b);if(this.initialized){if(Ext.isIE)this.getEditorBody().contentEditable=!b;else this.setDesignMode(!b);var a=this.getEditorBody();if(a)a.style.cursor=this.readOnly?"default":"text";this.disableItems(b)}},getDocMarkup:function(){var a=Ext.fly(this.iframe).getHeight()-this.iframePad*2;return String.format('<html><head><style type="text/css">body{border: 0; margin: 0; padding: {0}px; height: {1}px; cursor: text}</style></head><body></body></html>',this.iframePad,a)},getEditorBody:function(){var a=this.getDoc();return a.body||a.documentElement},getDoc:function(){return Ext.isIE?this.getWin().document:this.iframe.contentDocument||this.getWin().document},getWin:function(){return Ext.isIE?this.iframe.contentWindow:window.frames[this.iframe.name]},onRender:function(b,a){Ext.form.HtmlEditor.superclass.onRender.call(this,b,a);this.el.dom.style.border="0 none";this.el.dom.setAttribute("tabIndex",-1);this.el.addClass("x-hidden");if(Ext.isIE)this.el.applyStyles("margin-top:-1px;margin-bottom:-1px;");this.wrap=this.el.wrap({cls:"x-html-editor-wrap",cn:{cls:"x-html-editor-tb"}});this.createToolbar(this);this.disableItems(true);this.tb.doLayout();this.createIFrame();if(!this.width){var c=this.el.getSize();this.setSize(c.width,this.height||c.height)}this.resizeEl=this.positionEl=this.wrap},createIFrame:function(){var a=document.createElement("iframe");a.name=Ext.id();a.frameBorder="0";a.style.overflow="auto";this.wrap.dom.appendChild(a);this.iframe=a;this.monitorTask=Ext.TaskMgr.start({run:this.checkDesignMode,scope:this,interval:100})},initFrame:function(){Ext.TaskMgr.stop(this.monitorTask);var b=this.getDoc();this.win=this.getWin();b.open();b.write(this.getDocMarkup());b.close();var a={run:function(){var c=this.getDoc();if(c.body||c.readyState=="complete"){Ext.TaskMgr.stop(a);this.setDesignMode(true);this.initEditor.defer(10,this)}},interval:10,duration:1e4,scope:this};Ext.TaskMgr.start(a)},checkDesignMode:function(){if(this.wrap&&this.wrap.dom.offsetWidth){var a=this.getDoc();if(!a)return;if(!a.editorInitialized||this.getDesignMode()!="on")this.initFrame()}},setDesignMode:function(b){var a;if(a=this.getDoc()){if(this.readOnly)b=false;a.designMode=/on|true/i.test(String(b).toLowerCase())?"on":"off"}},getDesignMode:function(){var a=this.getDoc();if(!a)return"";return String(a.designMode).toLowerCase()},disableItems:function(a){if(this.fontSelect)this.fontSelect.dom.disabled=a;this.tb.items.each(function(b){if(b.getItemId()!="sourceedit")b.setDisabled(a)})},onResize:function(b,c){Ext.form.HtmlEditor.superclass.onResize.apply(this,arguments);if(this.el&&this.iframe){if(Ext.isNumber(b)){var e=b-this.wrap.getFrameWidth("lr");this.el.setWidth(e);this.tb.setWidth(e);this.iframe.style.width=Math.max(e,0)+"px"}if(Ext.isNumber(c)){var a=c-this.wrap.getFrameWidth("tb")-this.tb.el.getHeight();this.el.setHeight(a);this.iframe.style.height=Math.max(a,0)+"px";var d=this.getEditorBody();if(d)d.style.height=Math.max(a-this.iframePad*2,0)+"px"}}},toggleSourceEdit:function(c){var e,b,a;if(c===undefined)c=!this.sourceEditMode;this.sourceEditMode=c===true;var d=this.tb.getComponent("sourceedit");if(d.pressed!==this.sourceEditMode){d.toggle(this.sourceEditMode);if(!d.xtbHidden)return}if(this.sourceEditMode){a=this.getSize();e=Ext.get(this.iframe).getHeight();this.disableItems(true);this.syncValue();this.iframe.className="x-hidden";this.el.removeClass("x-hidden");this.el.dom.removeAttribute("tabIndex");this.el.focus();this.el.dom.style.height=e+"px"}else{b=parseInt(this.el.dom.style.height,10);if(this.initialized)this.disableItems(this.readOnly);this.pushValue();this.iframe.className="";this.el.addClass("x-hidden");this.el.dom.setAttribute("tabIndex",-1);this.deferFocus();this.setSize(a);this.iframe.style.height=b+"px"}this.fireEvent("editmodechange",this,this.sourceEditMode)},createLink:function(){var a=prompt(this.createLinkText,this.defaultLinkValue);if(a&&a!="http://")this.relayCmd("createlink",a)},initEvents:function(){this.originalValue=this.getValue()},markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn,setValue:function(a){Ext.form.HtmlEditor.superclass.setValue.call(this,a);this.pushValue();return this},cleanHtml:function(a){a=String(a);if(Ext.isWebKit)a=a.replace(/\sclass="(?:Apple-style-span|khtml-block-placeholder)"/gi,"");if(a.charCodeAt(0)==this.defaultValue.replace(/\D/g,""))a=a.substring(1);return a},syncValue:function(){if(this.initialized){var d=this.getEditorBody();var c=d.innerHTML;if(Ext.isWebKit){var b=d.getAttribute("style");var a=b.match(/text-align:(.*?);/i);if(a&&a[1])c='<div style="'+a[0]+'">'+c+"</div>"}c=this.cleanHtml(c);if(this.fireEvent("beforesync",this,c)!==false){this.el.dom.value=c;this.fireEvent("sync",this,c)}}},getValue:function(){this[this.sourceEditMode?"pushValue":"syncValue"]();return Ext.form.HtmlEditor.superclass.getValue.call(this)},pushValue:function(){if(this.initialized){var a=this.el.dom.value;if(!this.activated&&a.length<1)a=this.defaultValue;if(this.fireEvent("beforepush",this,a)!==false){this.getEditorBody().innerHTML=a;if(Ext.isGecko){this.setDesignMode(false);this.setDesignMode(true)}this.fireEvent("push",this,a)}}},deferFocus:function(){this.focus.defer(10,this)},focus:function(){if(this.win&&!this.sourceEditMode)this.win.focus();else this.el.focus()},initEditor:function(){try{var c=this.getEditorBody(),a=this.el.getStyles("font-size","font-family","background-image","background-repeat","background-color","color"),g,b;a["background-attachment"]="fixed";c.bgProperties="fixed";Ext.DomHelper.applyStyles(c,a);g=this.getDoc();if(g)try{Ext.EventManager.removeAll(g)}catch(d){}b=this.onEditorEvent.createDelegate(this);Ext.EventManager.on(g,{mousedown:b,dblclick:b,click:b,keyup:b,buffer:100});if(Ext.isGecko)Ext.EventManager.on(g,"keypress",this.applyCommand,this);if(Ext.isIE||Ext.isWebKit||Ext.isOpera)Ext.EventManager.on(g,"keydown",this.fixKeys,this);g.editorInitialized=true;this.initialized=true;this.pushValue();this.setReadOnly(this.readOnly);this.fireEvent("initialize",this)}catch(d){}},onDestroy:function(){if(this.monitorTask)Ext.TaskMgr.stop(this.monitorTask);if(this.rendered){Ext.destroy(this.tb);var b=this.getDoc();if(b)try{Ext.EventManager.removeAll(b);for(var c in b)delete b[c]}catch(a){}if(this.wrap){this.wrap.dom.innerHTML="";this.wrap.remove()}}if(this.el){this.el.removeAllListeners();this.el.remove()}this.purgeListeners()},onFirstFocus:function(){this.activated=true;this.disableItems(this.readOnly);if(Ext.isGecko){this.win.focus();var a=this.win.getSelection();if(!a.focusNode||a.focusNode.nodeType!=3){var b=a.getRangeAt(0);b.selectNodeContents(this.getEditorBody());b.collapse(true);this.deferFocus()}try{this.execCmd("useCSS",true);this.execCmd("styleWithCSS",false)}catch(c){}}this.fireEvent("activate",this)},adjustFont:function(b){var d=b.getItemId()=="increasefontsize"?1:-1,c=this.getDoc(),a=parseInt(c.queryCommandValue("FontSize")||2,10);if(Ext.isSafari&&!Ext.isSafari2||Ext.isChrome||Ext.isAir){if(a<=10)a=1+d;else if(a<=13)a=2+d;else if(a<=16)a=3+d;else if(a<=18)a=4+d;else if(a<=24)a=5+d;else a=6+d;a=a.constrain(1,6)}else{if(Ext.isSafari)d*=2;a=Math.max(1,a+d)+(Ext.isSafari?"px":0)}this.execCmd("FontSize",a)},onEditorEvent:function(a){this.updateToolbar()},updateToolbar:function(){if(this.readOnly)return;if(!this.activated){this.onFirstFocus();return}var b=this.tb.items.map,c=this.getDoc();if(this.enableFont&&!Ext.isSafari2){var a=(c.queryCommandValue("FontName")||this.defaultFont).toLowerCase();if(a!=this.fontSelect.dom.value)this.fontSelect.dom.value=a}if(this.enableFormat){b.bold.toggle(c.queryCommandState("bold"));b.italic.toggle(c.queryCommandState("italic"));b.underline.toggle(c.queryCommandState("underline"))}if(this.enableAlignments){b.justifyleft.toggle(c.queryCommandState("justifyleft"));b.justifycenter.toggle(c.queryCommandState("justifycenter"));b.justifyright.toggle(c.queryCommandState("justifyright"))}if(!Ext.isSafari2&&this.enableLists){b.insertorderedlist.toggle(c.queryCommandState("insertorderedlist"));b.insertunorderedlist.toggle(c.queryCommandState("insertunorderedlist"))}Ext.menu.MenuMgr.hideAll();this.syncValue()},relayBtnCmd:function(a){this.relayCmd(a.getItemId())},relayCmd:function(b,a){(function(){this.focus();this.execCmd(b,a);this.updateToolbar()}).defer(10,this)},execCmd:function(b,a){var c=this.getDoc();c.execCommand(b,false,a===undefined?null:a);this.syncValue()},applyCommand:function(b){if(b.ctrlKey){var d=b.getCharCode(),a;if(d>0){d=String.fromCharCode(d);switch(d){case"b":a="bold";break;case"i":a="italic";break;case"u":a="underline";break}if(a){this.win.focus();this.execCmd(a);this.deferFocus();b.preventDefault()}}}},insertAtCursor:function(c){if(!this.activated)return;if(Ext.isIE){this.win.focus();var b=this.getDoc(),a=b.selection.createRange();if(a){a.pasteHTML(c);this.syncValue();this.deferFocus()}}else{this.win.focus();this.execCmd("InsertHTML",c);this.deferFocus()}},fixKeys:function(){if(Ext.isIE)return function(g){var a=g.getKey(),d=this.getDoc(),b;if(a==g.TAB){g.stopEvent();b=d.selection.createRange();if(b){b.collapse(true);b.pasteHTML("&nbsp;&nbsp;&nbsp;&nbsp;");this.deferFocus()}}else if(a==g.ENTER){b=d.selection.createRange();if(b){var c=b.parentElement();if(!c||c.tagName.toLowerCase()!="li"){g.stopEvent();b.pasteHTML("<br />");b.collapse(false);b.select()}}}};else if(Ext.isOpera)return function(b){var a=b.getKey();if(a==b.TAB){b.stopEvent();this.win.focus();this.execCmd("InsertHTML","&nbsp;&nbsp;&nbsp;&nbsp;");this.deferFocus()}};else if(Ext.isWebKit)return function(b){var a=b.getKey();if(a==b.TAB){b.stopEvent();this.execCmd("InsertText","\t");this.deferFocus()}else if(a==b.ENTER){b.stopEvent();this.execCmd("InsertHtml","<br /><br />");this.deferFocus()}}}(),getToolbar:function(){return this.tb},buttonTips:{bold:{title:"Bold (Ctrl+B)",text:"Make the selected text bold.",cls:"x-html-editor-tip"},italic:{title:"Italic (Ctrl+I)",text:"Make the selected text italic.",cls:"x-html-editor-tip"},underline:{title:"Underline (Ctrl+U)",text:"Underline the selected text.",cls:"x-html-editor-tip"},increasefontsize:{title:"Grow Text",text:"Increase the font size.",cls:"x-html-editor-tip"},decreasefontsize:{title:"Shrink Text",text:"Decrease the font size.",cls:"x-html-editor-tip"},backcolor:{title:"Text Highlight Color",text:"Change the background color of the selected text.",cls:"x-html-editor-tip"},forecolor:{title:"Font Color",text:"Change the color of the selected text.",cls:"x-html-editor-tip"},justifyleft:{title:"Align Text Left",text:"Align text to the left.",cls:"x-html-editor-tip"},justifycenter:{title:"Center Text",text:"Center text in the editor.",cls:"x-html-editor-tip"},justifyright:{title:"Align Text Right",text:"Align text to the right.",cls:"x-html-editor-tip"},insertunorderedlist:{title:"Bullet List",text:"Start a bulleted list.",cls:"x-html-editor-tip"},insertorderedlist:{title:"Numbered List",text:"Start a numbered list.",cls:"x-html-editor-tip"},createlink:{title:"Hyperlink",text:"Make the selected text a hyperlink.",cls:"x-html-editor-tip"},sourceedit:{title:"Source Edit",text:"Switch to source editing mode.",cls:"x-html-editor-tip"}}});Ext.reg("htmleditor",Ext.form.HtmlEditor);Ext.form.TimeField=Ext.extend(Ext.form.ComboBox,{minValue:undefined,maxValue:undefined,minText:"The time in this field must be equal to or after {0}",maxText:"The time in this field must be equal to or before {0}",invalidText:"{0} is not a valid time",format:"g:i A",altFormats:"g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H|gi a|hi a|giA|hiA|gi A|hi A",increment:15,mode:"local",triggerAction:"all",typeAhead:false,initDate:"1/1/2008",initDateFormat:"j/n/Y",initComponent:function(){if(Ext.isDefined(this.minValue))this.setMinValue(this.minValue,true);if(Ext.isDefined(this.maxValue))this.setMaxValue(this.maxValue,true);if(!this.store)this.generateStore(true);Ext.form.TimeField.superclass.initComponent.call(this)},setMinValue:function(b,a){this.setLimit(b,true,a);return this},setMaxValue:function(b,a){this.setLimit(b,false,a);return this},generateStore:function(b){var c=this.minValue||new Date(this.initDate).clearTime(),a=this.maxValue||new Date(this.initDate).clearTime().add("mi",24*60-1),d=[];while(c<=a){d.push(c.dateFormat(this.format));c=c.add("mi",this.increment)}this.bindStore(d,b)},setLimit:function(b,g,a){var e;if(Ext.isString(b))e=this.parseDate(b);else if(Ext.isDate(b))e=b;if(e){var c=new Date(this.initDate).clearTime();c.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds());this[g?"minValue":"maxValue"]=c;if(!a)this.generateStore()}},getValue:function(){var a=Ext.form.TimeField.superclass.getValue.call(this);return this.formatDate(this.parseDate(a))||""},setValue:function(a){return Ext.form.TimeField.superclass.setValue.call(this,this.formatDate(this.parseDate(a)))},validateValue:Ext.form.DateField.prototype.validateValue,formatDate:Ext.form.DateField.prototype.formatDate,parseDate:function(h){if(!h||Ext.isDate(h))return h;var j=this.initDate+" ",g=this.initDateFormat+" ",b=Date.parseDate(j+h,g+this.format),c=this.altFormats;if(!b&&c){if(!this.altFormatsArray)this.altFormatsArray=c.split("|");for(var e=0,d=this.altFormatsArray,a=d.length;e<a&&!b;e++)b=Date.parseDate(j+h,g+d[e])}return b}});Ext.reg("timefield",Ext.form.TimeField);Ext.form.SliderField=Ext.extend(Ext.form.Field,{useTips:true,tipText:null,actionMode:"wrap",initComponent:function(){var b=Ext.copyTo({id:this.id+"-slider"},this.initialConfig,["vertical","minValue","maxValue","decimalPrecision","keyIncrement","increment","clickToChange","animate"]);if(this.useTips){var a=this.tipText?{getText:this.tipText}:{};b.plugins=[new Ext.slider.Tip(a)]}this.slider=new Ext.Slider(b);Ext.form.SliderField.superclass.initComponent.call(this)},onRender:function(b,a){this.autoCreate={id:this.id,name:this.name,type:"hidden",tag:"input"};Ext.form.SliderField.superclass.onRender.call(this,b,a);this.wrap=this.el.wrap({cls:"x-form-field-wrap"});this.resizeEl=this.positionEl=this.wrap;this.slider.render(this.wrap)},onResize:function(b,c,d,a){Ext.form.SliderField.superclass.onResize.call(this,b,c,d,a);this.slider.setSize(b,c)},initEvents:function(){Ext.form.SliderField.superclass.initEvents.call(this);this.slider.on("change",this.onChange,this)},onChange:function(b,a){this.setValue(a,undefined,true)},onEnable:function(){Ext.form.SliderField.superclass.onEnable.call(this);this.slider.enable()},onDisable:function(){Ext.form.SliderField.superclass.onDisable.call(this);this.slider.disable()},beforeDestroy:function(){Ext.destroy(this.slider);Ext.form.SliderField.superclass.beforeDestroy.call(this)},alignErrorIcon:function(){this.errorIcon.alignTo(this.slider.el,"tl-tr",[2,0])},setMinValue:function(a){this.slider.setMinValue(a);return this},setMaxValue:function(a){this.slider.setMaxValue(a);return this},setValue:function(c,b,a){if(!a)this.slider.setValue(c,b);return Ext.form.SliderField.superclass.setValue.call(this,this.slider.getValue())},getValue:function(){return this.slider.getValue()}});Ext.reg("sliderfield",Ext.form.SliderField);Ext.form.Label=Ext.extend(Ext.BoxComponent,{onRender:function(b,a){if(!this.el){this.el=document.createElement("label");this.el.id=this.getId();this.el.innerHTML=this.text?Ext.util.Format.htmlEncode(this.text):this.html||"";if(this.forId)this.el.setAttribute("for",this.forId)}Ext.form.Label.superclass.onRender.call(this,b,a)},setText:function(a,b){var c=b===false;this[!c?"text":"html"]=a;delete this[c?"text":"html"];if(this.rendered)this.el.dom.innerHTML=b!==false?Ext.util.Format.htmlEncode(a):a;return this}});Ext.reg("label",Ext.form.Label);Ext.form.Action=function(b,a){this.form=b;this.options=a||{}};Ext.form.Action.CLIENT_INVALID="client";Ext.form.Action.SERVER_INVALID="server";Ext.form.Action.CONNECT_FAILURE="connect";Ext.form.Action.LOAD_FAILURE="load";Ext.form.Action.prototype={type:"default",run:function(a){},success:function(a){},handleResponse:function(a){},failure:function(a){this.response=a;this.failureType=Ext.form.Action.CONNECT_FAILURE;this.form.afterAction(this,false)},processResponse:function(a){this.response=a;if(!a.responseText&&!a.responseXML)return true;this.result=this.handleResponse(a);return this.result},getUrl:function(c){var a=this.options.url||this.form.url||this.form.el.dom.action;if(c){var b=this.getParams();if(b)a=Ext.urlAppend(a,b)}return a},getMethod:function(){return(this.options.method||this.form.method||this.form.el.dom.method||"POST").toUpperCase()},getParams:function(){var a=this.form.baseParams;var b=this.options.params;if(b){if(typeof b=="object")b=Ext.urlEncode(Ext.applyIf(b,a));else if(typeof b=="string"&&a)b+="&"+Ext.urlEncode(a)}else if(a)b=Ext.urlEncode(a);return b},createCallback:function(a){var a=a||{};return{success:this.success,failure:this.failure,scope:this,timeout:a.timeout*1e3||this.form.timeout*1e3,upload:this.form.fileUpload?this.success:undefined}}};Ext.form.Action.Submit=function(b,a){Ext.form.Action.Submit.superclass.constructor.call(this,b,a)};Ext.extend(Ext.form.Action.Submit,Ext.form.Action,{type:"submit",run:function(){var d=this.options,e=this.getMethod(),c=e=="GET";if(d.clientValidation===false||this.form.isValid()){if(d.submitEmptyText===false){var a=this.form.items,b=[];a.each(function(g){if(g.el.getValue()==g.emptyText){b.push(g);g.el.dom.value=""}})}Ext.Ajax.request(Ext.apply(this.createCallback(d),{form:this.form.el.dom,url:this.getUrl(c),method:e,headers:d.headers,params:!c?this.getParams():null,isUpload:this.form.fileUpload}));if(d.submitEmptyText===false)Ext.each(b,function(g){if(g.applyEmptyText)g.applyEmptyText()})}else if(d.clientValidation!==false){this.failureType=Ext.form.Action.CLIENT_INVALID;this.form.afterAction(this,false)}},success:function(b){var a=this.processResponse(b);if(a===true||a.success){this.form.afterAction(this,true);return}if(a.errors)this.form.markInvalid(a.errors);this.failureType=Ext.form.Action.SERVER_INVALID;this.form.afterAction(this,false)},handleResponse:function(c){if(this.form.errorReader){var b=this.form.errorReader.read(c);var g=[];if(b.records)for(var d=0,a=b.records.length;d<a;d++){var e=b.records[d];g[d]=e.data}if(g.length<1)g=null;return{success:b.success,errors:g}}return Ext.decode(c.responseText)}});Ext.form.Action.Load=function(b,a){Ext.form.Action.Load.superclass.constructor.call(this,b,a);this.reader=this.form.reader};Ext.extend(Ext.form.Action.Load,Ext.form.Action,{type:"load",run:function(){Ext.Ajax.request(Ext.apply(this.createCallback(this.options),{method:this.getMethod(),url:this.getUrl(false),headers:this.options.headers,params:this.getParams()}))},success:function(b){var a=this.processResponse(b);if(a===true||!a.success||!a.data){this.failureType=Ext.form.Action.LOAD_FAILURE;this.form.afterAction(this,false);return}this.form.clearInvalid();this.form.setValues(a.data);this.form.afterAction(this,true)},handleResponse:function(b){if(this.form.reader){var a=this.form.reader.read(b);var c=a.records&&a.records[0]?a.records[0].data:null;return{success:a.success,data:c}}return Ext.decode(b.responseText)}});Ext.form.Action.DirectLoad=Ext.extend(Ext.form.Action.Load,{constructor:function(b,a){Ext.form.Action.DirectLoad.superclass.constructor.call(this,b,a)},type:"directload",run:function(){var a=this.getParams();a.push(this.success,this);this.form.api.load.apply(window,a)},getParams:function(){var c=[],h={};var e=this.form.baseParams;var g=this.options.params;Ext.apply(h,g,e);var b=this.form.paramOrder;if(b)for(var d=0,a=b.length;d<a;d++)c.push(h[b[d]]);else if(this.form.paramsAsHash)c.push(h);return c},processResponse:function(a){this.result=a;return a},success:function(a,b){if(b.type==Ext.Direct.exceptions.SERVER)a={};Ext.form.Action.DirectLoad.superclass.success.call(this,a)}});Ext.form.Action.DirectSubmit=Ext.extend(Ext.form.Action.Submit,{constructor:function(b,a){Ext.form.Action.DirectSubmit.superclass.constructor.call(this,b,a)},type:"directsubmit",run:function(){var a=this.options;if(a.clientValidation===false||this.form.isValid()){this.success.params=this.getParams();this.form.api.submit(this.form.el.dom,this.success,this)}else if(a.clientValidation!==false){this.failureType=Ext.form.Action.CLIENT_INVALID;this.form.afterAction(this,false)}},getParams:function(){var c={};var a=this.form.baseParams;var b=this.options.params;Ext.apply(c,b,a);return c},processResponse:function(a){this.result=a;return a},success:function(a,b){if(b.type==Ext.Direct.exceptions.SERVER)a={};Ext.form.Action.DirectSubmit.superclass.success.call(this,a)}});Ext.form.Action.ACTION_TYPES={load:Ext.form.Action.Load,submit:Ext.form.Action.Submit,directload:Ext.form.Action.DirectLoad,directsubmit:Ext.form.Action.DirectSubmit};Ext.form.VTypes=function(){var c=/^[a-zA-Z_]+$/,d=/^[a-zA-Z0-9_]+$/,b=/^(\w+)([\-+.][\w]+)*@(\w[\-\w]*\.){1,5}([A-Za-z]){2,6}$/,a=/(((^https?)|(^ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i;return{email:function(e){return b.test(e)},emailText:'This field should be an e-mail address in the format "user@example.com"',emailMask:/[a-z0-9_\.\-@\+]/i,url:function(e){return a.test(e)},urlText:'This field should be a URL in the format "http://www.example.com"',alpha:function(e){return c.test(e)},alphaText:"This field should only contain letters and _",alphaMask:/[a-z_]/i,alphanum:function(e){return d.test(e)},alphanumText:"This field should only contain letters, numbers and _",alphanumMask:/[a-z0-9_]/i}}();Ext.grid.GridPanel=Ext.extend(Ext.Panel,{autoExpandColumn:false,autoExpandMax:1e3,autoExpandMin:50,columnLines:false,ddText:"{0} selected row{1}",deferRowRender:true,enableColumnHide:true,enableColumnMove:true,enableDragDrop:false,enableHdMenu:true,loadMask:false,minColumnWidth:25,stripeRows:false,trackMouseOver:true,stateEvents:["columnmove","columnresize","sortchange","groupchange"],view:null,bubbleEvents:[],rendered:false,viewReady:false,initComponent:function(){Ext.grid.GridPanel.superclass.initComponent.call(this);if(this.columnLines)this.cls=(this.cls||"")+" x-grid-with-col-lines";this.autoScroll=false;this.autoWidth=false;if(Ext.isArray(this.columns)){this.colModel=new Ext.grid.ColumnModel(this.columns);delete this.columns}if(this.ds){this.store=this.ds;delete this.ds}if(this.cm){this.colModel=this.cm;delete this.cm}if(this.sm){this.selModel=this.sm;delete this.sm}this.store=Ext.StoreMgr.lookup(this.store);this.addEvents("click","dblclick","contextmenu","mousedown","mouseup","mouseover","mouseout","keypress","keydown","cellmousedown","rowmousedown","headermousedown","groupmousedown","rowbodymousedown","containermousedown","cellclick","celldblclick","rowclick","rowdblclick","headerclick","headerdblclick","groupclick","groupdblclick","containerclick","containerdblclick","rowbodyclick","rowbodydblclick","rowcontextmenu","cellcontextmenu","headercontextmenu","groupcontextmenu","containercontextmenu","rowbodycontextmenu","bodyscroll","columnresize","columnmove","sortchange","groupchange","reconfigure","viewready")},onRender:function(d,a){Ext.grid.GridPanel.superclass.onRender.apply(this,arguments);var e=this.getGridEl();this.el.addClass("x-grid-panel");this.mon(e,{scope:this,mousedown:this.onMouseDown,click:this.onClick,dblclick:this.onDblClick,contextmenu:this.onContextMenu});this.relayEvents(e,["mousedown","mouseup","mouseover","mouseout","keypress","keydown"]);var b=this.getView();b.init(this);b.render();this.getSelectionModel().init(this)},initEvents:function(){Ext.grid.GridPanel.superclass.initEvents.call(this);if(this.loadMask)this.loadMask=new Ext.LoadMask(this.bwrap,Ext.apply({store:this.store},this.loadMask))},initStateEvents:function(){Ext.grid.GridPanel.superclass.initStateEvents.call(this);this.mon(this.colModel,"hiddenchange",this.saveState,this,{delay:100})},applyState:function(a){var l=this.colModel,g=a.columns,k=this.store,m,h,j;if(g)for(var d=0,e=g.length;d<e;d++){m=g[d];h=l.getColumnById(m.id);if(h){h.hidden=m.hidden;h.width=m.width;j=l.getIndexById(m.id);if(j!=d)l.moveColumn(j,d)}}if(k){m=a.sort;if(m)k[k.remoteSort?"setDefaultSort":"sort"](m.field,m.direction);m=a.group;if(k.groupBy)if(m)k.groupBy(m);else k.clearGrouping()}var b=Ext.apply({},a);delete b.columns;delete b.sort;Ext.grid.GridPanel.superclass.applyState.call(this,b)},getState:function(){var g={columns:[]},b=this.store,e,a;for(var d=0,h;h=this.colModel.config[d];d++){g.columns[d]={id:h.id,width:h.width};if(h.hidden)g.columns[d].hidden=true}if(b){e=b.getSortState();if(e)g.sort=e;if(b.getGroupState){a=b.getGroupState();if(a)g.group=a}}return g},afterRender:function(){Ext.grid.GridPanel.superclass.afterRender.call(this);var a=this.view;this.on("bodyresize",a.layout,a);a.layout();if(this.deferRowRender){if(!this.deferRowRenderTask)this.deferRowRenderTask=new Ext.util.DelayedTask(a.afterRender,this.view);this.deferRowRenderTask.delay(10)}else a.afterRender();this.viewReady=true},reconfigure:function(a,b){var c=this.rendered;if(c)if(this.loadMask){this.loadMask.destroy();this.loadMask=new Ext.LoadMask(this.bwrap,Ext.apply({},{store:a},this.initialConfig.loadMask))}if(this.view)this.view.initData(a,b);this.store=a;this.colModel=b;if(c)this.view.refresh(true);this.fireEvent("reconfigure",this,a,b)},onDestroy:function(){if(this.deferRowRenderTask&&this.deferRowRenderTask.cancel)this.deferRowRenderTask.cancel();if(this.rendered)Ext.destroy(this.view,this.loadMask);else if(this.store&&this.store.autoDestroy)this.store.destroy();Ext.destroy(this.colModel,this.selModel);this.store=this.selModel=this.colModel=this.view=this.loadMask=null;Ext.grid.GridPanel.superclass.onDestroy.call(this)},processEvent:function(a,b){this.view.processEvent(a,b)},onClick:function(a){this.processEvent("click",a)},onMouseDown:function(a){this.processEvent("mousedown",a)},onContextMenu:function(b,a){this.processEvent("contextmenu",b)},onDblClick:function(a){this.processEvent("dblclick",a)},walkCells:function(k,c,b,e,j){var i=this.colModel,g=i.getColumnCount(),a=this.store,h=a.getCount(),d=true;if(b<0){if(c<0){k--;d=false}while(k>=0){if(!d)c=g-1;d=false;while(c>=0){if(e.call(j||this,k,c,i)===true)return[k,c];c--}k--}}else{if(c>=g){k++;d=false}while(k<h){if(!d)c=0;d=false;while(c<g){if(e.call(j||this,k,c,i)===true)return[k,c];c++}k++}}return null},getGridEl:function(){return this.body},stopEditing:Ext.emptyFn,getSelectionModel:function(){if(!this.selModel)this.selModel=new Ext.grid.RowSelectionModel(this.disableSelection?{selectRow:Ext.emptyFn}:null);return this.selModel},getStore:function(){return this.store},getColumnModel:function(){return this.colModel},getView:function(){if(!this.view)this.view=new Ext.grid.GridView(this.viewConfig);return this.view},getDragDropText:function(){var a=this.selModel.getCount();return String.format(this.ddText,a,a==1?"":"s")}});Ext.reg("grid",Ext.grid.GridPanel);Ext.grid.GridView=Ext.extend(Ext.util.Observable,{deferEmptyText:true,scrollOffset:undefined,autoFill:false,forceFit:false,sortClasses:["sort-asc","sort-desc"],sortAscText:"Sort Ascending",sortDescText:"Sort Descending",columnsText:"Columns",selectedRowClass:"x-grid3-row-selected",borderWidth:2,tdClass:"x-grid3-cell",hdCls:"x-grid3-hd",markDirty:true,cellSelectorDepth:4,rowSelectorDepth:10,rowBodySelectorDepth:10,cellSelector:"td.x-grid3-cell",rowSelector:"div.x-grid3-row",rowBodySelector:"div.x-grid3-row-body",firstRowCls:"x-grid3-row-first",lastRowCls:"x-grid3-row-last",rowClsRe:/(?:^|\s+)x-grid3-row-(first|last|alt)(?:\s+|$)/g,constructor:function(a){Ext.apply(this,a);this.addEvents("beforerowremoved","beforerowsinserted","beforerefresh","rowremoved","rowsinserted","rowupdated","refresh");Ext.grid.GridView.superclass.constructor.call(this)},initTemplates:function(){var c=this.templates||{};if(!c.master)c.master=new Ext.Template('<div class="x-grid3" hidefocus="true">','<div class="x-grid3-viewport">','<div class="x-grid3-header"><div class="x-grid3-header-inner"><div class="x-grid3-header-offset" style="{ostyle}">{header}</div></div><div class="x-clear"></div></div>','<div class="x-grid3-scroller"><div class="x-grid3-body" style="{bstyle}">{body}</div><a href="#" class="x-grid3-focus" tabIndex="-1"></a></div>',"</div>",'<div class="x-grid3-resize-marker">&#160;</div>','<div class="x-grid3-resize-proxy">&#160;</div>',"</div>");if(!c.header)c.header=new Ext.Template('<table border="0" cellspacing="0" cellpadding="0" style="{tstyle}">','<thead><tr class="x-grid3-hd-row">{cells}</tr></thead>',"</table>");if(!c.hcell)c.hcell=new Ext.Template('<td class="x-grid3-hd x-grid3-cell x-grid3-td-{id} {css}" style="{style}"><div {tooltip} {attr} class="x-grid3-hd-inner x-grid3-hd-{id}" unselectable="on" style="{istyle}">',this.grid.enableHdMenu?'<a class="x-grid3-hd-btn" href="#"></a>':"",'{value}<img class="x-grid3-sort-icon" src="',Ext.BLANK_IMAGE_URL,'" />',"</div></td>");if(!c.body)c.body=new Ext.Template("{rows}");if(!c.row)c.row=new Ext.Template('<div class="x-grid3-row {alt}" style="{tstyle}"><table class="x-grid3-row-table" border="0" cellspacing="0" cellpadding="0" style="{tstyle}">',"<tbody><tr>{cells}</tr>",this.enableRowBody?'<tr class="x-grid3-row-body-tr" style="{bodyStyle}"><td colspan="{cols}" class="x-grid3-body-cell" tabIndex="0" hidefocus="on"><div class="x-grid3-row-body">{body}</div></td></tr>':"","</tbody></table></div>");if(!c.cell)c.cell=new Ext.Template('<td class="x-grid3-col x-grid3-cell x-grid3-td-{id} {css}" style="{style}" tabIndex="0" {cellAttr}>','<div class="x-grid3-cell-inner x-grid3-col-{id}" unselectable="on" {attr}>{value}</div>',"</td>");for(var a in c){var b=c[a];if(b&&Ext.isFunction(b.compile)&&!b.compiled){b.disableFormats=true;b.compile()}}this.templates=c;this.colRe=new RegExp("x-grid3-td-([^\\s]+)","")},fly:function(a){if(!this._flyweight)this._flyweight=new Ext.Element.Flyweight(document.body);this._flyweight.dom=a;return this._flyweight},getEditorParent:function(){return this.scroller.dom},initElements:function(){var c=Ext.Element;var b=this.grid.getGridEl().dom.firstChild;var a=b.childNodes;this.el=new c(b);this.mainWrap=new c(a[0]);this.mainHd=new c(this.mainWrap.dom.firstChild);if(this.grid.hideHeaders)this.mainHd.setDisplayed(false);this.innerHd=this.mainHd.dom.firstChild;this.scroller=new c(this.mainWrap.dom.childNodes[1]);if(this.forceFit)this.scroller.setStyle("overflow-x","hidden");this.mainBody=new c(this.scroller.dom.firstChild);this.focusEl=new c(this.scroller.dom.childNodes[1]);this.focusEl.swallowEvent("click",true);this.resizeMarker=new c(a[1]);this.resizeProxy=new c(a[2])},getRows:function(){return this.hasRows()?this.mainBody.dom.childNodes:[]},findCell:function(a){if(!a)return false;return this.fly(a).findParent(this.cellSelector,this.cellSelectorDepth)},findCellIndex:function(c,b){var a=this.findCell(c);if(a&&(!b||this.fly(a).hasClass(b)))return this.getCellIndex(a);return false},getCellIndex:function(b){if(b){var a=b.className.match(this.colRe);if(a&&a[1])return this.cm.getIndexById(a[1])}return false},findHeaderCell:function(b){var a=this.findCell(b);return a&&this.fly(a).hasClass(this.hdCls)?a:null},findHeaderIndex:function(a){return this.findCellIndex(a,this.hdCls)},findRow:function(a){if(!a)return false;return this.fly(a).findParent(this.rowSelector,this.rowSelectorDepth)},findRowIndex:function(a){var b=this.findRow(a);return b?b.rowIndex:false},findRowBody:function(a){if(!a)return false;return this.fly(a).findParent(this.rowBodySelector,this.rowBodySelectorDepth)},getRow:function(a){return this.getRows()[a]},getCell:function(b,a){return this.getRow(b).getElementsByTagName("td")[a]},getHeaderCell:function(a){return this.mainHd.dom.getElementsByTagName("td")[a]},addRowClass:function(c,a){var b=this.getRow(c);if(b)this.fly(b).addClass(a)},removeRowClass:function(c,a){var b=this.getRow(c);if(b)this.fly(b).removeClass(a)},removeRow:function(a){Ext.removeNode(this.getRow(a));this.syncFocusEl(a)},removeRows:function(c,a){var b=this.mainBody.dom;for(var d=c;d<=a;d++)Ext.removeNode(b.childNodes[c]);this.syncFocusEl(c)},getScrollState:function(){var a=this.scroller.dom;return{left:a.scrollLeft,top:a.scrollTop}},restoreScroll:function(a){var b=this.scroller.dom;b.scrollLeft=a.left;b.scrollTop=a.top},scrollToTop:function(){this.scroller.dom.scrollTop=0;this.scroller.dom.scrollLeft=0},syncScroll:function(){this.syncHeaderScroll();var a=this.scroller.dom;this.grid.fireEvent("bodyscroll",a.scrollLeft,a.scrollTop)},syncHeaderScroll:function(){var a=this.scroller.dom;this.innerHd.scrollLeft=a.scrollLeft;this.innerHd.scrollLeft=a.scrollLeft},updateSortIcon:function(b,a){var d=this.sortClasses;var c=this.mainHd.select("td").removeClass(d);c.item(b).addClass(d[a=="DESC"?1:0])},updateAllColumnWidths:function(){var d=this.getTotalWidth(),l=this.cm.getColumnCount(),g=[],e,b;for(b=0;b<l;b++)g[b]=this.getColumnWidth(b);this.innerHd.firstChild.style.width=this.getOffsetWidth();this.innerHd.firstChild.firstChild.style.width=d;this.mainBody.dom.style.width=d;for(b=0;b<l;b++){var c=this.getHeaderCell(b);c.style.width=g[b]}var k=this.getRows(),m,h;for(b=0,e=k.length;b<e;b++){m=k[b];m.style.width=d;if(m.firstChild){m.firstChild.style.width=d;h=m.firstChild.rows[0];for(var a=0;a<l;a++)h.childNodes[a].style.width=g[a]}}this.onAllColumnWidthsUpdated(g,d)},updateColumnWidth:function(b,a){var j=this.getColumnWidth(b);var e=this.getTotalWidth();this.innerHd.firstChild.style.width=this.getOffsetWidth();this.innerHd.firstChild.firstChild.style.width=e;this.mainBody.dom.style.width=e;var d=this.getHeaderCell(b);d.style.width=j;var h=this.getRows(),k;for(var c=0,g=h.length;c<g;c++){k=h[c];k.style.width=e;if(k.firstChild){k.firstChild.style.width=e;k.firstChild.rows[0].childNodes[b].style.width=j}}this.onColumnWidthUpdated(b,j,e)},updateColumnHidden:function(a,e){var d=this.getTotalWidth();this.innerHd.firstChild.style.width=this.getOffsetWidth();this.innerHd.firstChild.firstChild.style.width=d;this.mainBody.dom.style.width=d;var h=e?"none":"";var c=this.getHeaderCell(a);c.style.display=h;var j=this.getRows(),k;for(var b=0,g=j.length;b<g;b++){k=j[b];k.style.width=d;if(k.firstChild){k.firstChild.style.width=d;k.firstChild.rows[0].childNodes[a].style.display=h}}this.onColumnHiddenUpdated(a,e,d);delete this.lastViewWidth;this.layout()},doRender:function(d,v,m,a,r,t){var e=this.templates,c=e.cell,y=e.row,o=r-1;var b="width:"+this.getTotalWidth()+";";var k=[],l=[],n={tstyle:b},q={},h,g;for(var s=0,w=v.length;s<w;s++){g=v[s];l=[];var p=s+a;for(var u=0;u<r;u++){h=d[u];q.id=h.id;q.css=u===0?"x-grid3-cell-first ":u==o?"x-grid3-cell-last ":"";q.attr=q.cellAttr="";q.style=h.style;q.value=h.renderer.call(h.scope,g.data[h.name],q,g,p,u,m);if(Ext.isEmpty(q.value))q.value="&#160;";if(this.markDirty&&g.dirty&&Ext.isDefined(g.modified[h.name]))q.css+=" x-grid3-dirty-cell";l[l.length]=c.apply(q)}var x=[];if(t&&(p+1)%2===0)x[0]="x-grid3-row-alt";if(g.dirty)x[1]=" x-grid3-dirty-row";n.cols=r;if(this.getRowClass)x[2]=this.getRowClass(g,p,n,m);n.alt=x.join(" ");n.cells=l.join("");k[k.length]=y.apply(n)}return k.join("")},processRows:function(b,g){if(!this.ds||this.ds.getCount()<1)return;var e=this.getRows(),a=e.length,c,d;g=g||!this.grid.stripeRows;b=b||0;for(c=0;c<a;c++){d=e[c];if(d){d.rowIndex=c;if(!g){d.className=d.className.replace(this.rowClsRe," ");if((c+1)%2===0)d.className+=" x-grid3-row-alt"}}}if(b===0)Ext.fly(e[0]).addClass(this.firstRowCls);Ext.fly(e[e.length-1]).addClass(this.lastRowCls)},afterRender:function(){if(!this.ds||!this.cm)return;this.mainBody.dom.innerHTML=this.renderRows()||"&#160;";this.processRows(0,true);if(this.deferEmptyText!==true)this.applyEmptyText();this.grid.fireEvent("viewready",this.grid)},renderUI:function(){var c=this.templates,e=this.renderHeaders(),a=c.body.apply({rows:"&#160;"});var b=c.master.apply({body:a,header:e,ostyle:"width:"+this.getOffsetWidth()+";",bstyle:"width:"+this.getTotalWidth()+";"});var d=this.grid;d.getGridEl().dom.innerHTML=b;this.initElements();Ext.fly(this.innerHd).on("click",this.handleHdDown,this);this.mainHd.on({scope:this,mouseover:this.handleHdOver,mouseout:this.handleHdOut,mousemove:this.handleHdMove});this.scroller.on("scroll",this.syncScroll,this);if(d.enableColumnResize!==false)this.splitZone=new Ext.grid.GridView.SplitDragZone(d,this.mainHd.dom);if(d.enableColumnMove){this.columnDrag=new Ext.grid.GridView.ColumnDragZone(d,this.innerHd);this.columnDrop=new Ext.grid.HeaderDropZone(d,this.mainHd.dom)}if(d.enableHdMenu!==false){this.hmenu=new Ext.menu.Menu({id:d.id+"-hctx"});this.hmenu.add({itemId:"asc",text:this.sortAscText,cls:"xg-hmenu-sort-asc"},{itemId:"desc",text:this.sortDescText,cls:"xg-hmenu-sort-desc"});if(d.enableColumnHide!==false){this.colMenu=new Ext.menu.Menu({id:d.id+"-hcols-menu"});this.colMenu.on({scope:this,beforeshow:this.beforeColMenuShow,itemclick:this.handleHdMenuClick});this.hmenu.add("-",{itemId:"columns",hideOnClick:false,text:this.columnsText,menu:this.colMenu,iconCls:"x-cols-icon"})}this.hmenu.on("itemclick",this.handleHdMenuClick,this)}if(d.trackMouseOver)this.mainBody.on({scope:this,mouseover:this.onRowOver,mouseout:this.onRowOut});if(d.enableDragDrop||d.enableDrag)this.dragZone=new Ext.grid.GridDragZone(d,{ddGroup:d.ddGroup||"GridDD"});this.updateHeaderSortState()},processEvent:function(c,i){var d=i.getTarget(),h=this.grid,k=this.findHeaderIndex(d);h.fireEvent(c,i);if(k!==false)h.fireEvent("header"+c,h,k,i);else{var j=this.findRowIndex(d),b,a;if(j!==false){h.fireEvent("row"+c,h,j,i);b=this.findCellIndex(d);if(b!==false)h.fireEvent("cell"+c,h,j,b,i);else{a=this.findRowBody(d);if(a)h.fireEvent("rowbody"+c,h,j,i)}}else h.fireEvent("container"+c,h,i)}},layout:function(){if(!this.mainBody)return;var d=this.grid;var i=d.getGridEl();var a=i.getSize(true);var b=a.width;if(!d.hideHeaders&&(b<20||a.height<20))return;if(d.autoHeight){this.scroller.dom.style.overflow="visible";if(Ext.isWebKit)this.scroller.dom.style.position="static"}else{this.el.setSize(a.width,a.height);var h=this.mainHd.getHeight();var e=a.height-h;this.scroller.setSize(b,e);if(this.innerHd)this.innerHd.style.width=b+"px"}if(this.forceFit){if(this.lastViewWidth!=b){this.fitColumns(false,false);this.lastViewWidth=b}}else{this.autoExpand();this.syncHeaderScroll()}this.onLayout(b,e)},onLayout:function(a,b){},onColumnWidthUpdated:function(c,a,b){},onAllColumnWidthsUpdated:function(a,b){},onColumnHiddenUpdated:function(b,c,a){},updateColumnText:function(a,b){},afterMove:function(a){},init:function(a){this.grid=a;this.initTemplates();this.initData(a.store,a.colModel);this.initUI(a)},getColumnId:function(a){return this.cm.getColumnId(a)},getOffsetWidth:function(){return this.cm.getTotalWidth()+this.getScrollOffset()+"px"},getScrollOffset:function(){return Ext.num(this.scrollOffset,Ext.getScrollBarWidth())},renderHeaders:function(){var c=this.cm,h=this.templates,e=h.hcell,b=[],j={},a=c.getColumnCount(),g=a-1;for(var d=0;d<a;d++){j.id=c.getColumnId(d);j.value=c.getColumnHeader(d)||"";j.style=this.getColumnStyle(d,true);j.tooltip=this.getColumnTooltip(d);j.css=d===0?"x-grid3-cell-first ":d==g?"x-grid3-cell-last ":"";if(c.config[d].align=="right")j.istyle="padding-right:16px";else delete j.istyle;b[b.length]=e.apply(j)}return h.header.apply({cells:b.join(""),tstyle:"width:"+this.getTotalWidth()+";"})},getColumnTooltip:function(a){var b=this.cm.getColumnTooltip(a);if(b)if(Ext.QuickTips.isEnabled())return'ext:qtip="'+b+'"';else return'title="'+b+'"';return""},beforeUpdate:function(){this.grid.stopEditing(true)},updateHeaders:function(){this.innerHd.firstChild.innerHTML=this.renderHeaders();this.innerHd.firstChild.style.width=this.getOffsetWidth();this.innerHd.firstChild.firstChild.style.width=this.getTotalWidth()},focusRow:function(a){this.focusCell(a,0,false)},focusCell:function(c,a,b){this.syncFocusEl(this.ensureVisible(c,a,b));if(Ext.isGecko)this.focusEl.focus();else this.focusEl.focus.defer(1,this.focusEl)},resolveCell:function(h,d,g){if(!Ext.isNumber(h))h=h.rowIndex;if(!this.ds)return null;if(h<0||h>=this.ds.getCount())return null;d=d!==undefined?d:0;var c=this.getRow(h),a=this.cm,e=a.getColumnCount(),b;if(!(g===false&&d===0)){while(d<e&&a.isHidden(d))d++;b=this.getCell(h,d)}return{row:c,cell:b}},getResolvedXY:function(a){if(!a)return null;var b=this.scroller.dom,e=a.cell,d=a.row;return e?Ext.fly(e).getXY():[this.el.getX(),Ext.fly(d).getY()]},syncFocusEl:function(d,a,c){var b=d;if(!Ext.isArray(b)){d=Math.min(d,Math.max(0,this.getRows().length-1));if(isNaN(d))return;b=this.getResolvedXY(this.resolveCell(d,a,c))}this.focusEl.setXY(b||this.scroller.getXY())},ensureVisible:function(t,g,e){var r=this.resolveCell(t,g,e);if(!r||!r.row)return;var k=r.row,h=r.cell,n=this.scroller.dom,s=0,d=k,o=this.el.dom;while(d&&d!=o){s+=d.offsetTop;d=d.offsetParent}s-=this.mainHd.dom.offsetHeight;o=parseInt(n.scrollTop,10);var q=s+k.offsetHeight,a=n.clientHeight,m=o+a;if(s<o)n.scrollTop=s;else if(q>m)n.scrollTop=q-a;if(e!==false){var l=parseInt(h.offsetLeft,10);var j=l+h.offsetWidth;var i=parseInt(n.scrollLeft,10);var b=i+n.clientWidth;if(l<i)n.scrollLeft=l;else if(j>b)n.scrollLeft=j-n.clientWidth}return this.getResolvedXY(r)},insertRows:function(a,i,e,h){var d=a.getCount()-1;if(!h&&i===0&&e>=d){this.fireEvent("beforerowsinserted",this,i,e);this.refresh();this.fireEvent("rowsinserted",this,i,e)}else{if(!h)this.fireEvent("beforerowsinserted",this,i,e);var b=this.renderRows(i,e),g=this.getRow(i);if(g){if(i===0)Ext.fly(this.getRow(0)).removeClass(this.firstRowCls);Ext.DomHelper.insertHtml("beforeBegin",g,b)}else{var c=this.getRow(d-1);if(c)Ext.fly(c).removeClass(this.lastRowCls);Ext.DomHelper.insertHtml("beforeEnd",this.mainBody.dom,b)}if(!h){this.fireEvent("rowsinserted",this,i,e);this.processRows(i)}else if(i===0||i>=d)Ext.fly(this.getRow(i)).addClass(i===0?this.firstRowCls:this.lastRowCls)}this.syncFocusEl(i)},deleteRows:function(a,c,b){if(a.getRowCount()<1)this.refresh();else{this.fireEvent("beforerowsdeleted",this,c,b);this.removeRows(c,b);this.processRows(c);this.fireEvent("rowsdeleted",this,c,b)}},getColumnStyle:function(a,c){var b=!c?this.cm.config[a].css||"":"";b+="width:"+this.getColumnWidth(a)+";";if(this.cm.isHidden(a))b+="display:none;";var d=this.cm.config[a].align;if(d)b+="text-align:"+d+";";return b},getColumnWidth:function(b){var a=this.cm.getColumnWidth(b);if(Ext.isNumber(a))return(Ext.isBorderBox||Ext.isWebKit&&!Ext.isSafari2?a:a-this.borderWidth>0?a-this.borderWidth:0)+"px";return a},getTotalWidth:function(){return this.cm.getTotalWidth()+"px"},fitColumns:function(d,h,j){var q=this.cm,k;var l=q.getTotalWidth(false);var a=this.grid.getGridEl().getWidth(true)-this.getScrollOffset();if(a<20)return;var e=a-l;if(e===0)return false;var m=q.getColumnCount(true);var s=m-(Ext.isNumber(j)?1:0);if(s===0){s=1;j=undefined}var r=q.getColumnCount();var o=[];var n=0;var c=0;var p;for(k=0;k<r;k++)if(!q.isHidden(k)&&!q.isFixed(k)&&k!==j){p=q.getColumnWidth(k);o.push(k);n=k;o.push(p);c+=p}var b=(a-q.getTotalWidth())/c;while(o.length){p=o.pop();k=o.pop();q.setColumnWidth(k,Math.max(this.grid.minColumnWidth,Math.floor(p+p*b)),true)}if((l=q.getTotalWidth(false))>a){var g=s!=m?j:n;q.setColumnWidth(g,Math.max(1,q.getColumnWidth(g)-(l-a)),true)}if(d!==true)this.updateAllColumnWidths();return true},autoExpand:function(b){var i=this.grid,a=this.cm;if(!this.userResized&&i.autoExpandColumn){var d=a.getTotalWidth(false);var j=this.grid.getGridEl().getWidth(true)-this.getScrollOffset();if(d!=j){var h=a.getIndexById(i.autoExpandColumn);var e=a.getColumnWidth(h);var c=Math.min(Math.max(j-d+e,i.autoExpandMin),i.autoExpandMax);if(c!=e){a.setColumnWidth(h,c,true);if(b!==true)this.updateColumnWidth(h,c)}}}},getColumnData:function(){var d=[],a=this.cm,e=a.getColumnCount();for(var c=0;c<e;c++){var b=a.getDataIndex(c);d[c]={name:!Ext.isDefined(b)?this.ds.fields.get(c).name:b,renderer:a.getRenderer(c),scope:a.getRendererScope(c),id:a.getColumnId(c),style:this.getColumnStyle(c)}}return d},renderRows:function(j,c){var d=this.grid,h=d.colModel,a=d.store,k=d.stripeRows;var i=h.getColumnCount();if(a.getCount()<1)return"";var e=this.getColumnData();j=j||0;c=!Ext.isDefined(c)?a.getCount()-1:c;var b=a.getRange(j,c);return this.doRender(e,b,a,j,i,k)},renderBody:function(){var a=this.renderRows()||"&#160;";return this.templates.body.apply({rows:a})},refreshRow:function(a){var c=this.ds,b;if(Ext.isNumber(a)){b=a;a=c.getAt(b);if(!a)return}else{b=c.indexOf(a);if(b<0)return}this.insertRows(c,b,b,true);this.getRow(b).rowIndex=b;this.onRemove(c,a,b+1,true);this.fireEvent("rowupdated",this,b,a)},refresh:function(b){this.fireEvent("beforerefresh",this);this.grid.stopEditing(true);var a=this.renderBody();this.mainBody.update(a).setWidth(this.getTotalWidth());if(b===true){this.updateHeaders();this.updateHeaderSortState()}this.processRows(0,true);this.layout();this.applyEmptyText();this.fireEvent("refresh",this)},applyEmptyText:function(){if(this.emptyText&&!this.hasRows())this.mainBody.update('<div class="x-grid-empty">'+this.emptyText+"</div>")},updateHeaderSortState:function(){var b=this.ds.getSortState();if(!b)return;if(!this.sortState||this.sortState.field!=b.field||this.sortState.direction!=b.direction)this.grid.fireEvent("sortchange",this.grid,b);this.sortState=b;var c=this.cm.findColumnIndex(b.field);if(c!=-1){var a=b.direction;this.updateSortIcon(c,a)}},clearHeaderSortState:function(){if(!this.sortState)return;this.grid.fireEvent("sortchange",this.grid,null);this.mainHd.select("td").removeClass(this.sortClasses);delete this.sortState},destroy:function(){if(this.scrollToTopTask&&this.scrollToTopTask.cancel)this.scrollToTopTask.cancel();if(this.colMenu){Ext.menu.MenuMgr.unregister(this.colMenu);this.colMenu.destroy();delete this.colMenu}if(this.hmenu){Ext.menu.MenuMgr.unregister(this.hmenu);this.hmenu.destroy();delete this.hmenu}this.initData(null,null);this.purgeListeners();Ext.fly(this.innerHd).un("click",this.handleHdDown,this);if(this.grid.enableColumnMove){Ext.destroy(this.columnDrag.el,this.columnDrag.proxy.ghost,this.columnDrag.proxy.el,this.columnDrop.el,this.columnDrop.proxyTop,this.columnDrop.proxyBottom,this.columnDrag.dragData.ddel,this.columnDrag.dragData.header);if(this.columnDrag.proxy.anim)Ext.destroy(this.columnDrag.proxy.anim);delete this.columnDrag.proxy.ghost;delete this.columnDrag.dragData.ddel;delete this.columnDrag.dragData.header;this.columnDrag.destroy();delete Ext.dd.DDM.locationCache[this.columnDrag.id];delete this.columnDrag._domRef;delete this.columnDrop.proxyTop;delete this.columnDrop.proxyBottom;this.columnDrop.destroy();delete Ext.dd.DDM.locationCache["gridHeader"+this.grid.getGridEl().id];delete this.columnDrop._domRef;delete Ext.dd.DDM.ids[this.columnDrop.ddGroup]}if(this.splitZone){this.splitZone.destroy();delete this.splitZone._domRef;delete Ext.dd.DDM.ids["gridSplitters"+this.grid.getGridEl().id]}Ext.fly(this.innerHd).removeAllListeners();Ext.removeNode(this.innerHd);delete this.innerHd;Ext.destroy(this.el,this.mainWrap,this.mainHd,this.scroller,this.mainBody,this.focusEl,this.resizeMarker,this.resizeProxy,this.activeHdBtn,this.dragZone,this.splitZone,this._flyweight);delete this.grid.container;if(this.dragZone)this.dragZone.destroy();Ext.dd.DDM.currentTarget=null;delete Ext.dd.DDM.locationCache[this.grid.getGridEl().id];Ext.EventManager.removeResizeListener(this.onWindowResize,this)},onDenyColumnHide:function(){},render:function(){if(this.autoFill){var a=this.grid.ownerCt;if(a&&a.getLayout())a.on("afterlayout",function(){this.fitColumns(true,true);this.updateHeaders()},this,{single:true});else this.fitColumns(true,true)}else if(this.forceFit)this.fitColumns(true,false);else if(this.grid.autoExpandColumn)this.autoExpand(true);this.renderUI()},initData:function(b,a){if(this.ds){this.ds.un("load",this.onLoad,this);this.ds.un("datachanged",this.onDataChange,this);this.ds.un("add",this.onAdd,this);this.ds.un("remove",this.onRemove,this);this.ds.un("update",this.onUpdate,this);this.ds.un("clear",this.onClear,this);if(this.ds!==b&&this.ds.autoDestroy)this.ds.destroy()}if(b)b.on({scope:this,load:this.onLoad,datachanged:this.onDataChange,add:this.onAdd,remove:this.onRemove,update:this.onUpdate,clear:this.onClear});this.ds=b;if(this.cm){this.cm.un("configchange",this.onColConfigChange,this);this.cm.un("widthchange",this.onColWidthChange,this);this.cm.un("headerchange",this.onHeaderChange,this);this.cm.un("hiddenchange",this.onHiddenChange,this);this.cm.un("columnmoved",this.onColumnMove,this)}if(a){delete this.lastViewWidth;a.on({scope:this,configchange:this.onColConfigChange,widthchange:this.onColWidthChange,headerchange:this.onHeaderChange,hiddenchange:this.onHiddenChange,columnmoved:this.onColumnMove})}this.cm=a},onDataChange:function(){this.refresh();this.updateHeaderSortState();this.syncFocusEl(0)},onClear:function(){this.refresh();this.syncFocusEl(0)},onUpdate:function(b,a){this.refreshRow(a)},onAdd:function(c,a,b){this.insertRows(c,b,b+(a.length-1))},onRemove:function(d,a,b,c){if(c!==true)this.fireEvent("beforerowremoved",this,b,a);this.removeRow(b);if(c!==true){this.processRows(b);this.applyEmptyText();this.fireEvent("rowremoved",this,b,a)}},onLoad:function(){if(Ext.isGecko){if(!this.scrollToTopTask)this.scrollToTopTask=new Ext.util.DelayedTask(this.scrollToTop,this);this.scrollToTopTask.delay(1)}else this.scrollToTop()},onColWidthChange:function(a,b,c){this.updateColumnWidth(b,c)},onHeaderChange:function(a,b,c){this.updateHeaders()},onHiddenChange:function(a,b,c){this.updateColumnHidden(b,c)},onColumnMove:function(a,d,b){this.indexMap=null;var c=this.getScrollState();this.refresh(true);this.restoreScroll(c);this.afterMove(b);this.grid.fireEvent("columnmove",d,b)},onColConfigChange:function(){delete this.lastViewWidth;this.indexMap=null;this.refresh(true)},initUI:function(a){a.on("headerclick",this.onHeaderClick,this)},initEvents:function(){},onHeaderClick:function(b,a){if(this.headersDisabled||!this.cm.isSortable(a))return;b.stopEditing(true);b.store.sort(this.cm.getDataIndex(a))},onRowOver:function(b,a){var c;if((c=this.findRowIndex(a))!==false)this.addRowClass(c,"x-grid3-row-over")},onRowOut:function(b,a){var c;if((c=this.findRowIndex(a))!==false&&!b.within(this.getRow(c),true))this.removeRowClass(c,"x-grid3-row-over")},handleWheel:function(a){a.stopPropagation()},onRowSelect:function(a){this.addRowClass(a,this.selectedRowClass)},onRowDeselect:function(a){this.removeRowClass(a,this.selectedRowClass)},onCellSelect:function(c,b){var a=this.getCell(c,b);if(a)this.fly(a).addClass("x-grid3-cell-selected")},onCellDeselect:function(c,b){var a=this.getCell(c,b);if(a)this.fly(a).removeClass("x-grid3-cell-selected")},onColumnSplitterMoved:function(c,b){this.userResized=true;var a=this.grid.colModel;a.setColumnWidth(c,b,true);if(this.forceFit){this.fitColumns(true,false,c);this.updateAllColumnWidths()}else{this.updateColumnWidth(c,b);this.syncHeaderScroll()}this.grid.fireEvent("columnresize",c,b)},handleHdMenuClick:function(c){var b=this.hdCtxIndex,a=this.cm,d=this.ds,e=c.getItemId();switch(e){case"asc":d.sort(a.getDataIndex(b),"ASC");break;case"desc":d.sort(a.getDataIndex(b),"DESC");break;default:b=a.getIndexById(e.substr(4));if(b!=-1){if(c.checked&&a.getColumnsBy(this.isHideableColumn,this).length<=1){this.onDenyColumnHide();return false}a.setHidden(b,c.checked)}}return true},isHideableColumn:function(a){return!a.hidden},beforeColMenuShow:function(){var a=this.cm,c=a.getColumnCount();this.colMenu.removeAll();for(var b=0;b<c;b++)if(a.config[b].hideable!==false)this.colMenu.add(new Ext.menu.CheckItem({itemId:"col-"+a.getColumnId(b),text:a.getColumnHeader(b),checked:!a.isHidden(b),hideOnClick:false,disabled:a.config[b].hideable===false}))},handleHdDown:function(h,d){if(Ext.fly(d).hasClass("x-grid3-hd-btn")){h.stopEvent();var g=this.findHeaderCell(d);Ext.fly(g).addClass("x-grid3-hd-menu-open");var c=this.getCellIndex(g);this.hdCtxIndex=c;var b=this.hmenu.items,a=this.cm;b.get("asc").setDisabled(!a.isSortable(c));b.get("desc").setDisabled(!a.isSortable(c));this.hmenu.on("hide",function(){Ext.fly(g).removeClass("x-grid3-hd-menu-open")},this,{single:true});this.hmenu.show(d,"tl-bl?")}},handleHdOver:function(d,a){var c=this.findHeaderCell(a);if(c&&!this.headersDisabled){this.activeHdRef=a;this.activeHdIndex=this.getCellIndex(c);var b=this.fly(c);this.activeHdRegion=b.getRegion();if(!this.cm.isMenuDisabled(this.activeHdIndex)){b.addClass("x-grid3-hd-over");this.activeHdBtn=b.child(".x-grid3-hd-btn");if(this.activeHdBtn)this.activeHdBtn.dom.style.height=c.firstChild.offsetHeight-1+"px"}}},handleHdMove:function(i,d){var h=this.findHeaderCell(this.activeHdRef);if(h&&!this.headersDisabled){var b=this.splitHandleWidth||5,g=this.activeHdRegion,a=i.getPageX(),c=h.style,j="";if(this.grid.enableColumnResize!==false)if(a-g.left<=b&&this.cm.isResizable(this.activeHdIndex-1))j=Ext.isAir?"move":Ext.isWebKit?"e-resize":"col-resize";else if(g.right-a<=(!this.activeHdBtn?b:2)&&this.cm.isResizable(this.activeHdIndex))j=Ext.isAir?"move":Ext.isWebKit?"w-resize":"col-resize";c.cursor=j}},handleHdOut:function(c,a){var b=this.findHeaderCell(a);if(b&&(!Ext.isIE||!c.within(b,true))){this.activeHdRef=null;this.fly(b).removeClass("x-grid3-hd-over");b.style.cursor=""}},hasRows:function(){var a=this.mainBody.dom.firstChild;return a&&a.nodeType==1&&a.className!="x-grid-empty"},bind:function(a,b){this.initData(a,b)}});Ext.grid.GridView.SplitDragZone=Ext.extend(Ext.dd.DDProxy,{constructor:function(a,b){this.grid=a;this.view=a.getView();this.marker=this.view.resizeMarker;this.proxy=this.view.resizeProxy;Ext.grid.GridView.SplitDragZone.superclass.constructor.call(this,b,"gridSplitters"+this.grid.getGridEl().id,{dragElId:Ext.id(this.proxy.dom),resizeFrame:false});this.scroll=false;this.hw=this.view.splitHandleWidth||5},b4StartDrag:function(a,e){this.dragHeadersDisabled=this.view.headersDisabled;this.view.headersDisabled=true;var d=this.view.mainWrap.getHeight();this.marker.setHeight(d);this.marker.show();this.marker.alignTo(this.view.getHeaderCell(this.cellIndex),"tl-tl",[-2,0]);this.proxy.setHeight(d);var b=this.cm.getColumnWidth(this.cellIndex),c=Math.max(b-this.grid.minColumnWidth,0);this.resetConstraints();this.setXConstraint(c,1e3);this.setYConstraint(0,0);this.minX=a-c;this.maxX=a+1e3;this.startPos=a;Ext.dd.DDProxy.prototype.b4StartDrag.call(this,a,e)},allowHeaderDrag:function(a){return true},handleMouseDown:function(a){var i=this.view.findHeaderCell(a.getTarget());if(i&&this.allowHeaderDrag(a)){var l=this.view.fly(i).getXY(),d=l[0],c=l[1],j=a.getXY(),b=j[0],h=i.offsetWidth,g=false;if(b-d<=this.hw)g=-1;else if(d+h-b<=this.hw)g=0;if(g!==false){this.cm=this.grid.colModel;var k=this.view.getCellIndex(i);if(g==-1){if(k+g<0)return;while(this.cm.isHidden(k+g)){--g;if(k+g<0)return}}this.cellIndex=k+g;this.split=i.dom;if(this.cm.isResizable(this.cellIndex)&&!this.cm.isFixed(this.cellIndex))Ext.grid.GridView.SplitDragZone.superclass.handleMouseDown.apply(this,arguments)}else if(this.view.columnDrag)this.view.columnDrag.callHandleMouseDown(a)}},endDrag:function(g){this.marker.hide();var a=this.view,c=Math.max(this.minX,g.getPageX()),d=c-this.startPos,b=this.dragHeadersDisabled;a.onColumnSplitterMoved(this.cellIndex,this.cm.getColumnWidth(this.cellIndex)+d);setTimeout(function(){a.headersDisabled=b},50)},autoOffset:function(){this.setDelta(0,0)}});Ext.grid.HeaderDragZone=Ext.extend(Ext.dd.DragZone,{maxDragWidth:120,constructor:function(a,c,b){this.grid=a;this.view=a.getView();this.ddGroup="gridHeader"+this.grid.getGridEl().id;Ext.grid.HeaderDragZone.superclass.constructor.call(this,c);if(b){this.setHandleElId(Ext.id(c));this.setOuterHandleElId(Ext.id(b))}this.scroll=false},getDragData:function(c){var a=Ext.lib.Event.getTarget(c),b=this.view.findHeaderCell(a);if(b)return{ddel:b.firstChild,header:b};return false},onInitDrag:function(a){this.dragHeadersDisabled=this.view.headersDisabled;this.view.headersDisabled=true;var b=this.dragData.ddel.cloneNode(true);b.id=Ext.id();b.style.width=Math.min(this.dragData.header.offsetWidth,this.maxDragWidth)+"px";this.proxy.update(b);return true},afterValidDrop:function(){this.completeDrop()},afterInvalidDrop:function(){this.completeDrop()},completeDrop:function(){var a=this.view,b=this.dragHeadersDisabled;setTimeout(function(){a.headersDisabled=b},50)}});Ext.grid.HeaderDropZone=Ext.extend(Ext.dd.DropZone,{proxyOffsets:[-4,-9],fly:Ext.Element.fly,constructor:function(a,c,b){this.grid=a;this.view=a.getView();this.proxyTop=Ext.DomHelper.append(document.body,{cls:"col-move-top",html:"&#160;"},true);this.proxyBottom=Ext.DomHelper.append(document.body,{cls:"col-move-bottom",html:"&#160;"},true);this.proxyTop.hide=this.proxyBottom.hide=function(){this.setLeftTop(-100,-100);this.setStyle("visibility","hidden")};this.ddGroup="gridHeader"+this.grid.getGridEl().id;Ext.grid.HeaderDropZone.superclass.constructor.call(this,a.getGridEl().dom)},getTargetFromEvent:function(c){var a=Ext.lib.Event.getTarget(c),b=this.view.findCellIndex(a);if(b!==false)return this.view.getHeaderCell(b)},nextVisible:function(c){var b=this.view,a=this.grid.colModel;c=c.nextSibling;while(c){if(!a.isHidden(b.getCellIndex(c)))return c;c=c.nextSibling}return null},prevVisible:function(c){var b=this.view,a=this.grid.colModel;c=c.prevSibling;while(c){if(!a.isHidden(b.getCellIndex(c)))return c;c=c.prevSibling}return null},positionIndicator:function(d,k,j){var a=Ext.lib.Event.getPageX(j),g=Ext.lib.Dom.getRegion(k.firstChild),c,i,b=g.top+this.proxyOffsets[1];if(g.right-a<=(g.right-g.left)/2){c=g.right+this.view.borderWidth;i="after"}else{c=g.left;i="before"}if(this.grid.colModel.isFixed(this.view.getCellIndex(k)))return false;c+=this.proxyOffsets[0];this.proxyTop.setLeftTop(c,b);this.proxyTop.show();if(!this.bottomOffset)this.bottomOffset=this.view.mainHd.getHeight();this.proxyBottom.setLeftTop(c,b+this.proxyTop.dom.offsetHeight+this.bottomOffset);this.proxyBottom.show();return i},onNodeEnter:function(d,a,c,b){if(b.header!=d)this.positionIndicator(b.header,d,c)},onNodeOver:function(g,b,d,c){var a=false;if(c.header!=g)a=this.positionIndicator(c.header,g,d);if(!a){this.proxyTop.hide();this.proxyBottom.hide()}return a?this.dropAllowed:this.dropNotAllowed},onNodeOut:function(d,a,c,b){this.proxyTop.hide();this.proxyBottom.hide()},onNodeDrop:function(b,m,g,c){var d=c.header;if(d!=b){var k=this.grid.colModel,j=Ext.lib.Event.getPageX(g),a=Ext.lib.Dom.getRegion(b.firstChild),o=a.right-j<=(a.right-a.left)/2?"after":"before",i=this.view.getCellIndex(d),l=this.view.getCellIndex(b);if(o=="after")l++;if(i<l)l--;k.moveColumn(i,l);return true}return false}});Ext.grid.GridView.ColumnDragZone=Ext.extend(Ext.grid.HeaderDragZone,{constructor:function(a,b){Ext.grid.GridView.ColumnDragZone.superclass.constructor.call(this,a,b,null);this.proxy.el.addClass("x-grid3-col-dd")},handleMouseDown:function(a){},callHandleMouseDown:function(a){Ext.grid.GridView.ColumnDragZone.superclass.handleMouseDown.call(this,a)}});Ext.grid.SplitDragZone=Ext.extend(Ext.dd.DDProxy,{fly:Ext.Element.fly,constructor:function(a,c,b){this.grid=a;this.view=a.getView();this.proxy=this.view.resizeProxy;Ext.grid.SplitDragZone.superclass.constructor.call(this,c,"gridSplitters"+this.grid.getGridEl().id,{dragElId:Ext.id(this.proxy.dom),resizeFrame:false});this.setHandleElId(Ext.id(c));this.setOuterHandleElId(Ext.id(b));this.scroll=false},b4StartDrag:function(a,d){this.view.headersDisabled=true;this.proxy.setHeight(this.view.mainWrap.getHeight());var b=this.cm.getColumnWidth(this.cellIndex);var c=Math.max(b-this.grid.minColumnWidth,0);this.resetConstraints();this.setXConstraint(c,1e3);this.setYConstraint(0,0);this.minX=a-c;this.maxX=a+1e3;this.startPos=a;Ext.dd.DDProxy.prototype.b4StartDrag.call(this,a,d)},handleMouseDown:function(c){var b=Ext.EventObject.setEvent(c);var a=this.fly(b.getTarget());if(a.hasClass("x-grid-split")){this.cellIndex=this.view.getCellIndex(a.dom);this.split=a.dom;this.cm=this.grid.colModel;if(this.cm.isResizable(this.cellIndex)&&!this.cm.isFixed(this.cellIndex))Ext.grid.SplitDragZone.superclass.handleMouseDown.apply(this,arguments)}},endDrag:function(c){this.view.headersDisabled=false;var a=Math.max(this.minX,Ext.lib.Event.getPageX(c));var b=a-this.startPos;this.view.onColumnSplitterMoved(this.cellIndex,this.cm.getColumnWidth(this.cellIndex)+b)},autoOffset:function(){this.setDelta(0,0)}});Ext.grid.GridDragZone=function(b,a){this.view=b.getView();Ext.grid.GridDragZone.superclass.constructor.call(this,this.view.mainBody.dom,a);this.scroll=false;this.grid=b;this.ddel=document.createElement("div");this.ddel.className="x-grid-dd-wrap"};Ext.extend(Ext.grid.GridDragZone,Ext.dd.DragZone,{ddGroup:"GridDD",getDragData:function(b){var a=Ext.lib.Event.getTarget(b);var d=this.view.findRowIndex(a);if(d!==false){var c=this.grid.selModel;if(!c.isSelected(d)||b.hasModifier())c.handleMouseDown(this.grid,d,b);return{grid:this.grid,ddel:this.ddel,rowIndex:d,selections:c.getSelections()}}return false},onInitDrag:function(b){var a=this.dragData;this.ddel.innerHTML=this.grid.getDragDropText();this.proxy.update(this.ddel)},afterRepair:function(){this.dragging=false},getRepairXY:function(b,a){return false},onEndDrag:function(a,b){},onValidDrop:function(a,b,c){this.hideProxy()},beforeInvalidDrop:function(a,b){}});Ext.grid.ColumnModel=Ext.extend(Ext.util.Observable,{defaultWidth:100,defaultSortable:false,constructor:function(a){if(a.columns){Ext.apply(this,a);this.setConfig(a.columns,true)}else this.setConfig(a,true);this.addEvents("widthchange","headerchange","hiddenchange","columnmoved","configchange");Ext.grid.ColumnModel.superclass.constructor.call(this)},getColumnId:function(a){return this.config[a].id},getColumnAt:function(a){return this.config[a]},setConfig:function(d,b){var e,h,a;if(!b){delete this.totalWidth;for(e=0,a=this.config.length;e<a;e++){h=this.config[e];if(h.setEditor)h.setEditor(null)}}this.defaults=Ext.apply({width:this.defaultWidth,sortable:this.defaultSortable},this.defaults);this.config=d;this.lookup={};for(e=0,a=d.length;e<a;e++){h=Ext.applyIf(d[e],this.defaults);if(Ext.isEmpty(h.id))h.id=e;if(!h.isColumn){var g=Ext.grid.Column.types[h.xtype||"gridcolumn"];h=new g(h);d[e]=h}this.lookup[h.id]=h}if(!b)this.fireEvent("configchange",this)},getColumnById:function(a){return this.lookup[a]},getIndexById:function(c){for(var b=0,a=this.config.length;b<a;b++)if(this.config[b].id==c)return b;return-1},moveColumn:function(d,a){var b=this.config[d];this.config.splice(d,1);this.config.splice(a,0,b);this.dataMap=null;this.fireEvent("columnmoved",this,d,a)},getColumnCount:function(d){if(d===true){var e=0;for(var b=0,a=this.config.length;b<a;b++)if(!this.isHidden(b))e++;return e}return this.config.length},getColumnsBy:function(e,d){var g=[];for(var b=0,a=this.config.length;b<a;b++){var h=this.config[b];if(e.call(d||this,h,b)===true)g[g.length]=h}return g},isSortable:function(a){return!!this.config[a].sortable},isMenuDisabled:function(a){return!!this.config[a].menuDisabled},getRenderer:function(a){if(!this.config[a].renderer)return Ext.grid.ColumnModel.defaultRenderer;return this.config[a].renderer},getRendererScope:function(a){return this.config[a].scope},setRenderer:function(a,b){this.config[a].renderer=b},getColumnWidth:function(a){return this.config[a].width},setColumnWidth:function(b,c,a){this.config[b].width=c;this.totalWidth=null;if(!a)this.fireEvent("widthchange",this,b,c)},getTotalWidth:function(b){if(!this.totalWidth){this.totalWidth=0;for(var c=0,a=this.config.length;c<a;c++)if(b||!this.isHidden(c))this.totalWidth+=this.getColumnWidth(c)}return this.totalWidth},getColumnHeader:function(a){return this.config[a].header},setColumnHeader:function(a,b){this.config[a].header=b;this.fireEvent("headerchange",this,a,b)},getColumnTooltip:function(a){return this.config[a].tooltip},setColumnTooltip:function(a,b){this.config[a].tooltip=b},getDataIndex:function(a){return this.config[a].dataIndex},setDataIndex:function(a,b){this.config[a].dataIndex=b},findColumnIndex:function(d){var e=this.config;for(var b=0,a=e.length;b<a;b++)if(e[b].dataIndex==d)return b;return-1},isCellEditable:function(b,e){var d=this.config[b],a=d.editable;return!!(a||!Ext.isDefined(a)&&d.editor)},getCellEditor:function(a,b){return this.config[a].getCellEditor(b)},setEditable:function(a,b){this.config[a].editable=b},isHidden:function(a){return!!this.config[a].hidden},isFixed:function(a){return!!this.config[a].fixed},isResizable:function(a){return a>=0&&this.config[a].resizable!==false&&this.config[a].fixed!==true},setHidden:function(a,b){var d=this.config[a];if(d.hidden!==b){d.hidden=b;this.totalWidth=null;this.fireEvent("hiddenchange",this,a,b)}},setEditor:function(a,b){this.config[a].setEditor(b)},destroy:function(){var d;for(var b=0,a=this.config.length;b<a;b++){d=this.config[b];if(d.setEditor)d.setEditor(null)}this.purgeListeners()}});Ext.grid.ColumnModel.defaultRenderer=function(a){if(typeof a=="string"&&a.length<1)return"&#160;";return a};Ext.grid.AbstractSelectionModel=Ext.extend(Ext.util.Observable,{constructor:function(){this.locked=false;Ext.grid.AbstractSelectionModel.superclass.constructor.call(this)},init:function(a){this.grid=a;if(this.lockOnInit){delete this.lockOnInit;this.locked=false;this.lock()}this.initEvents()},lock:function(){if(!this.locked){this.locked=true;var a=this.grid;if(a)a.getView().on({scope:this,beforerefresh:this.sortUnLock,refresh:this.sortLock});else this.lockOnInit=true}},sortLock:function(){this.locked=true},sortUnLock:function(){this.locked=false},unlock:function(){if(this.locked){this.locked=false;var a=this.grid,b;if(a){b=a.getView();b.un("beforerefresh",this.sortUnLock,this);b.un("refresh",this.sortLock,this)}else delete this.lockOnInit}},isLocked:function(){return this.locked},destroy:function(){this.unlock();this.purgeListeners()}});Ext.grid.RowSelectionModel=Ext.extend(Ext.grid.AbstractSelectionModel,{singleSelect:false,constructor:function(a){Ext.apply(this,a);this.selections=new Ext.util.MixedCollection(false,function(b){return b.id});this.last=false;this.lastActive=false;this.addEvents("selectionchange","beforerowselect","rowselect","rowdeselect");Ext.grid.RowSelectionModel.superclass.constructor.call(this)},initEvents:function(){if(!this.grid.enableDragDrop&&!this.grid.enableDrag)this.grid.on("rowmousedown",this.handleMouseDown,this);this.rowNav=new Ext.KeyNav(this.grid.getGridEl(),{up:function(b){if(!b.shiftKey||this.singleSelect)this.selectPrevious(false);else if(this.last!==false&&this.lastActive!==false){var a=this.last;this.selectRange(this.last,this.lastActive-1);this.grid.getView().focusRow(this.lastActive);if(a!==false)this.last=a}else this.selectFirstRow()},down:function(b){if(!b.shiftKey||this.singleSelect)this.selectNext(false);else if(this.last!==false&&this.lastActive!==false){var a=this.last;this.selectRange(this.last,this.lastActive+1);this.grid.getView().focusRow(this.lastActive);if(a!==false)this.last=a}else this.selectFirstRow()},scope:this});this.grid.getView().on({scope:this,refresh:this.onRefresh,rowupdated:this.onRowUpdated,rowremoved:this.onRemove})},onRefresh:function(){var g=this.grid.store,b;var d=this.getSelections();this.clearSelections(true);for(var c=0,a=d.length;c<a;c++){var e=d[c];if((b=g.indexOfId(e.id))!=-1)this.selectRow(b,true)}if(d.length!=this.selections.getCount())this.fireEvent("selectionchange",this)},onRemove:function(a,b,c){if(this.selections.remove(c)!==false)this.fireEvent("selectionchange",this)},onRowUpdated:function(a,b,c){if(this.isSelected(c))a.onRowSelect(b)},selectRecords:function(b,e){if(!e)this.clearSelections();var d=this.grid.store;for(var c=0,a=b.length;c<a;c++)this.selectRow(d.indexOf(b[c]),true)},getCount:function(){return this.selections.length},selectFirstRow:function(){this.selectRow(0)},selectLastRow:function(a){this.selectRow(this.grid.store.getCount()-1,a)},selectNext:function(a){if(this.hasNext()){this.selectRow(this.last+1,a);this.grid.getView().focusRow(this.last);return true}return false},selectPrevious:function(a){if(this.hasPrevious()){this.selectRow(this.last-1,a);this.grid.getView().focusRow(this.last);return true}return false},hasNext:function(){return this.last!==false&&this.last+1<this.grid.store.getCount()},hasPrevious:function(){return!!this.last},getSelections:function(){return[].concat(this.selections.items)},getSelected:function(){return this.selections.itemAt(0)},each:function(e,d){var c=this.getSelections();for(var b=0,a=c.length;b<a;b++)if(e.call(d||this,c[b],b)===false)return false;return true},clearSelections:function(a){if(this.isLocked())return;if(a!==true){var c=this.grid.store;var b=this.selections;b.each(function(d){this.deselectRow(c.indexOfId(d.id))},this);b.clear()}else this.selections.clear();this.last=false},selectAll:function(){if(this.isLocked())return;this.selections.clear();for(var b=0,a=this.grid.store.getCount();b<a;b++)this.selectRow(b,true)},hasSelection:function(){return this.selections.length>0},isSelected:function(a){var b=Ext.isNumber(a)?this.grid.store.getAt(a):a;return b&&this.selections.key(b.id)?true:false},isIdSelected:function(a){return this.selections.key(a)?true:false},handleMouseDown:function(d,i,h){if(h.button!==0||this.isLocked())return;var a=this.grid.getView();if(h.shiftKey&&!this.singleSelect&&this.last!==false){var c=this.last;this.selectRange(c,i,h.ctrlKey);this.last=c;a.focusRow(i)}else{var b=this.isSelected(i);if(h.ctrlKey&&b)this.deselectRow(i);else if(!b||this.getCount()>1){this.selectRow(i,h.ctrlKey||h.shiftKey);a.focusRow(i)}}},selectRows:function(c,d){if(!d)this.clearSelections();for(var b=0,a=c.length;b<a;b++)this.selectRow(c[b],true)},selectRange:function(b,a,d){var c;if(this.isLocked())return;if(!d)this.clearSelections();if(b<=a)for(c=b;c<=a;c++)this.selectRow(c,true);else for(c=b;c>=a;c--)this.selectRow(c,true)},deselectRange:function(c,b,a){if(this.isLocked())return;for(var d=c;d<=b;d++)this.deselectRow(d,a)},selectRow:function(b,d,a){if(this.isLocked()||b<0||b>=this.grid.store.getCount()||d&&this.isSelected(b))return;var c=this.grid.store.getAt(b);if(c&&this.fireEvent("beforerowselect",this,b,d,c)!==false){if(!d||this.singleSelect)this.clearSelections();this.selections.add(c);this.last=this.lastActive=b;if(!a)this.grid.getView().onRowSelect(b);this.fireEvent("rowselect",this,b,c);this.fireEvent("selectionchange",this)}},deselectRow:function(b,a){if(this.isLocked())return;if(this.last==b)this.last=false;if(this.lastActive==b)this.lastActive=false;var c=this.grid.store.getAt(b);if(c){this.selections.remove(c);if(!a)this.grid.getView().onRowDeselect(b);this.fireEvent("rowdeselect",this,b,c);this.fireEvent("selectionchange",this)}},restoreLast:function(){if(this._last)this.last=this._last},acceptsNav:function(c,b,a){return!a.isHidden(b)&&a.isCellEditable(b,c)},onEditorKey:function(n,l){var d=l.getKey(),h,i=this.grid,o=i.lastEdit,j=i.activeEditor,p,a,m;var b=l.shiftKey;if(d==l.TAB){l.stopEvent();j.completeEdit();if(b)h=i.walkCells(j.row,j.col-1,-1,this.acceptsNav,this);else h=i.walkCells(j.row,j.col+1,1,this.acceptsNav,this)}else if(d==l.ENTER)if(this.moveEditorOnEnter!==false)if(b)h=i.walkCells(o.row-1,o.col,-1,this.acceptsNav,this);else h=i.walkCells(o.row+1,o.col,1,this.acceptsNav,this);if(h){a=h[0];m=h[1];if(o.row!=a)this.selectRow(a);if(i.isEditor&&i.editing){p=i.activeEditor;if(p&&p.field.triggerBlur)p.field.triggerBlur()}i.startEditing(a,m)}},destroy:function(){if(this.rowNav){this.rowNav.disable();this.rowNav=null}Ext.grid.RowSelectionModel.superclass.destroy.call(this)}});Ext.grid.Column=Ext.extend(Object,{isColumn:true,constructor:function(b){Ext.apply(this,b);if(Ext.isString(this.renderer))this.renderer=Ext.util.Format[this.renderer];else if(Ext.isObject(this.renderer)){this.scope=this.renderer.scope;this.renderer=this.renderer.fn}if(!this.scope)this.scope=this;var a=this.editor;delete this.editor;this.setEditor(a)},renderer:function(a){if(Ext.isString(a)&&a.length<1)return"&#160;";return a},getEditor:function(a){return this.editable!==false?this.editor:null},setEditor:function(b){var a=this.editor;if(a)if(a.gridEditor){a.gridEditor.destroy();delete a.gridEditor}else a.destroy();this.editor=null;if(b){if(!b.isXType)b=Ext.create(b,"textfield");this.editor=b}},getCellEditor:function(b){var a=this.getEditor(b);if(a)if(!a.startEdit){if(!a.gridEditor)a.gridEditor=new Ext.grid.GridEditor(a);a=a.gridEditor}return a}});Ext.grid.BooleanColumn=Ext.extend(Ext.grid.Column,{trueText:"true",falseText:"false",undefinedText:"&#160;",constructor:function(a){Ext.grid.BooleanColumn.superclass.constructor.call(this,a);var c=this.trueText,d=this.falseText,b=this.undefinedText;this.renderer=function(e){if(e===undefined)return b;if(!e||e==="false")return d;return c}}});Ext.grid.NumberColumn=Ext.extend(Ext.grid.Column,{format:"0,000.00",constructor:function(a){Ext.grid.NumberColumn.superclass.constructor.call(this,a);this.renderer=Ext.util.Format.numberRenderer(this.format)}});Ext.grid.DateColumn=Ext.extend(Ext.grid.Column,{format:"m/d/Y",constructor:function(a){Ext.grid.DateColumn.superclass.constructor.call(this,a);this.renderer=Ext.util.Format.dateRenderer(this.format)}});Ext.grid.TemplateColumn=Ext.extend(Ext.grid.Column,{constructor:function(a){Ext.grid.TemplateColumn.superclass.constructor.call(this,a);var b=!Ext.isPrimitive(this.tpl)&&this.tpl.compile?this.tpl:new Ext.XTemplate(this.tpl);this.renderer=function(d,e,c){return b.apply(c.data)};this.tpl=b}});Ext.grid.Column.types={gridcolumn:Ext.grid.Column,booleancolumn:Ext.grid.BooleanColumn,numbercolumn:Ext.grid.NumberColumn,datecolumn:Ext.grid.DateColumn,templatecolumn:Ext.grid.TemplateColumn};Ext.grid.RowNumberer=Ext.extend(Object,{header:"",width:23,sortable:false,constructor:function(a){Ext.apply(this,a);if(this.rowspan)this.renderer=this.renderer.createDelegate(this)},fixed:true,hideable:false,menuDisabled:true,dataIndex:"",id:"numberer",rowspan:undefined,renderer:function(b,c,a,d){if(this.rowspan)c.cellAttr='rowspan="'+this.rowspan+'"';return d+1}});Ext.grid.CheckboxSelectionModel=Ext.extend(Ext.grid.RowSelectionModel,{header:'<div class="x-grid3-hd-checker">&#160;</div>',width:20,sortable:false,menuDisabled:true,fixed:true,hideable:false,dataIndex:"",id:"checker",constructor:function(){Ext.grid.CheckboxSelectionModel.superclass.constructor.apply(this,arguments);if(this.checkOnly)this.handleMouseDown=Ext.emptyFn},initEvents:function(){Ext.grid.CheckboxSelectionModel.superclass.initEvents.call(this);this.grid.on("render",function(){var a=this.grid.getView();a.mainBody.on("mousedown",this.onMouseDown,this);Ext.fly(a.innerHd).on("mousedown",this.onHdMouseDown,this)},this)},handleMouseDown:function(){Ext.grid.CheckboxSelectionModel.superclass.handleMouseDown.apply(this,arguments);this.mouseHandled=true},onMouseDown:function(c,b){if(c.button===0&&b.className=="x-grid3-row-checker"){c.stopEvent();var d=c.getTarget(".x-grid3-row");if(!this.mouseHandled&&d){var a=d.rowIndex;if(this.isSelected(a))this.deselectRow(a);else{this.selectRow(a,true);this.grid.getView().focusRow(a)}}}this.mouseHandled=false},onHdMouseDown:function(c,a){if(a.className=="x-grid3-hd-checker"){c.stopEvent();var b=Ext.fly(a.parentNode);var d=b.hasClass("x-grid3-hd-checker-on");if(d){b.removeClass("x-grid3-hd-checker-on");this.clearSelections()}else{b.addClass("x-grid3-hd-checker-on");this.selectAll()}}},renderer:function(b,c,a){return'<div class="x-grid3-row-checker">&#160;</div>'}});Ext.grid.CellSelectionModel=Ext.extend(Ext.grid.AbstractSelectionModel,{constructor:function(a){Ext.apply(this,a);this.selection=null;this.addEvents("beforecellselect","cellselect","selectionchange");Ext.grid.CellSelectionModel.superclass.constructor.call(this)},initEvents:function(){this.grid.on("cellmousedown",this.handleMouseDown,this);this.grid.on(Ext.EventManager.useKeydown?"keydown":"keypress",this.handleKeyDown,this);this.grid.getView().on({scope:this,refresh:this.onViewChange,rowupdated:this.onRowUpdated,beforerowremoved:this.clearSelections,beforerowsinserted:this.clearSelections});if(this.grid.isEditor)this.grid.on("beforeedit",this.beforeEdit,this)},beforeEdit:function(a){this.select(a.row,a.column,false,true,a.record)},onRowUpdated:function(a,b,c){if(this.selection&&this.selection.record==c)a.onCellSelect(b,this.selection.cell[1])},onViewChange:function(){this.clearSelections(true)},getSelectedCell:function(){return this.selection?this.selection.cell:null},clearSelections:function(b){var a=this.selection;if(a){if(b!==true)this.grid.view.onCellDeselect(a.cell[0],a.cell[1]);this.selection=null;this.fireEvent("selectionchange",this,null)}},hasSelection:function(){return this.selection?true:false},handleMouseDown:function(b,d,a,c){if(c.button!==0||this.isLocked())return;this.select(d,a)},select:function(g,c,b,e,d){if(this.fireEvent("beforecellselect",this,g,c)!==false){this.clearSelections();d=d||this.grid.store.getAt(g);this.selection={record:d,cell:[g,c]};if(!b){var a=this.grid.getView();a.onCellSelect(g,c);if(e!==true)a.focusCell(g,c)}this.fireEvent("cellselect",this,g,c);this.fireEvent("selectionchange",this,this.selection)}},isSelectable:function(c,b,a){return!a.isHidden(b)},onEditorKey:function(b,a){if(a.getKey()==a.TAB)this.handleKeyDown(a)},handleKeyDown:function(j){if(!j.isNavKeyPress())return;var d=j.getKey(),i=this.grid,p=this.selection,b=this,m=function(g,c,e){return i.walkCells(g,c,e,i.isEditor&&i.editing?b.acceptsNav:b.isSelectable,b)},o,h,a,l,n;switch(d){case j.ESC:case j.PAGE_UP:case j.PAGE_DOWN:break;default:j.stopEvent();break}if(!p){o=m(0,0,1);if(o)this.select(o[0],o[1]);return}o=p.cell;a=o[0];l=o[1];switch(d){case j.TAB:if(j.shiftKey)h=m(a,l-1,-1);else h=m(a,l+1,1);break;case j.DOWN:h=m(a+1,l,1);break;case j.UP:h=m(a-1,l,-1);break;case j.RIGHT:h=m(a,l+1,1);break;case j.LEFT:h=m(a,l-1,-1);break;case j.ENTER:if(i.isEditor&&!i.editing){i.startEditing(a,l);return}break}if(h){a=h[0];l=h[1];this.select(a,l);if(i.isEditor&&i.editing){n=i.activeEditor;if(n&&n.field.triggerBlur)n.field.triggerBlur();i.startEditing(a,l)}}},acceptsNav:function(c,b,a){return!a.isHidden(b)&&a.isCellEditable(b,c)}});Ext.grid.EditorGridPanel=Ext.extend(Ext.grid.GridPanel,{clicksToEdit:2,forceValidation:false,isEditor:true,detectEdit:false,autoEncode:false,trackMouseOver:false,initComponent:function(){Ext.grid.EditorGridPanel.superclass.initComponent.call(this);if(!this.selModel)this.selModel=new Ext.grid.CellSelectionModel;this.activeEditor=null;this.addEvents("beforeedit","afteredit","validateedit")},initEvents:function(){Ext.grid.EditorGridPanel.superclass.initEvents.call(this);this.getGridEl().on("mousewheel",this.stopEditing.createDelegate(this,[true]),this);this.on("columnresize",this.stopEditing,this,[true]);if(this.clicksToEdit==1)this.on("cellclick",this.onCellDblClick,this);else{var a=this.getView();if(this.clicksToEdit=="auto"&&a.mainBody)a.mainBody.on("mousedown",this.onAutoEditClick,this);this.on("celldblclick",this.onCellDblClick,this)}},onResize:function(){Ext.grid.EditorGridPanel.superclass.onResize.apply(this,arguments);var a=this.activeEditor;if(this.editing&&a)a.realign(true)},onCellDblClick:function(b,c,a){this.startEditing(c,a)},onAutoEditClick:function(c,b){if(c.button!==0)return;var g=this.view.findRowIndex(b),a=this.view.findCellIndex(b);if(g!==false&&a!==false){this.stopEditing();if(this.selModel.getSelectedCell){var d=this.selModel.getSelectedCell();if(d&&d[0]===g&&d[1]===a)this.startEditing(g,a)}else if(this.selModel.isSelected(g))this.startEditing(g,a)}},onEditComplete:function(b,d,a){this.editing=false;this.lastActiveEditor=this.activeEditor;this.activeEditor=null;var c=b.record,h=this.colModel.getDataIndex(b.col);d=this.postEditValue(d,a,c,h);if(this.forceValidation===true||String(d)!==String(a)){var g={grid:this,record:c,field:h,originalValue:a,value:d,row:b.row,column:b.col,cancel:false};if(this.fireEvent("validateedit",g)!==false&&!g.cancel&&String(d)!==String(a)){c.set(h,g.value);delete g.cancel;this.fireEvent("afteredit",g)}}this.view.focusCell(b.row,b.col)},startEditing:function(i,c){this.stopEditing();if(this.colModel.isCellEditable(c,i)){this.view.ensureVisible(i,c,true);var d=this.store.getAt(i),h=this.colModel.getDataIndex(c),g={grid:this,record:d,field:h,value:d.data[h],row:i,column:c,cancel:false};if(this.fireEvent("beforeedit",g)!==false&&!g.cancel){this.editing=true;var b=this.colModel.getCellEditor(c,i);if(!b)return;if(!b.rendered){b.parentEl=this.view.getEditorParent(b);b.on({scope:this,render:{fn:function(e){e.field.focus(false,true)},single:true,scope:this},specialkey:function(k,j){this.getSelectionModel().onEditorKey(k,j)},complete:this.onEditComplete,canceledit:this.stopEditing.createDelegate(this,[true])})}Ext.apply(b,{row:i,col:c,record:d});this.lastEdit={row:i,col:c};this.activeEditor=b;b.selectSameEditor=this.activeEditor==this.lastActiveEditor;var a=this.preEditValue(d,h);b.startEdit(this.view.getCell(i,c).firstChild,Ext.isDefined(a)?a:"");(function(){delete b.selectSameEditor}).defer(50)}}},preEditValue:function(a,c){var b=a.data[c];return this.autoEncode&&Ext.isString(b)?Ext.util.Format.htmlDecode(b):b},postEditValue:function(c,a,b,d){return this.autoEncode&&Ext.isString(c)?Ext.util.Format.htmlEncode(c):c},stopEditing:function(b){if(this.editing){var a=this.lastActiveEditor=this.activeEditor;if(a){a[b===true?"cancelEdit":"completeEdit"]();this.view.focusCell(a.row,a.col)}this.activeEditor=null}this.editing=false}});Ext.reg("editorgrid",Ext.grid.EditorGridPanel);Ext.grid.GridEditor=function(b,a){Ext.grid.GridEditor.superclass.constructor.call(this,b,a);b.monitorTab=false};Ext.extend(Ext.grid.GridEditor,Ext.Editor,{alignment:"tl-tl",autoSize:"width",hideEl:false,cls:"x-small-editor x-grid-editor",shim:false,shadow:false});Ext.grid.PropertyRecord=Ext.data.Record.create([{name:"name",type:"string"},"value"]);Ext.grid.PropertyStore=Ext.extend(Ext.util.Observable,{constructor:function(a,b){this.grid=a;this.store=new Ext.data.Store({recordType:Ext.grid.PropertyRecord});this.store.on("update",this.onUpdate,this);if(b)this.setSource(b);Ext.grid.PropertyStore.superclass.constructor.call(this)},setSource:function(c){this.source=c;this.store.removeAll();var b=[];for(var a in c)if(this.isEditableValue(c[a]))b.push(new Ext.grid.PropertyRecord({name:a,value:c[a]},a));this.store.loadRecords({records:b},{},true)},onUpdate:function(e,a,d){if(d==Ext.data.Record.EDIT){var b=a.data.value;var c=a.modified.value;if(this.grid.fireEvent("beforepropertychange",this.source,a.id,b,c)!==false){this.source[a.id]=b;a.commit();this.grid.fireEvent("propertychange",this.source,a.id,b,c)}else a.reject()}},getProperty:function(a){return this.store.getAt(a)},isEditableValue:function(a){return Ext.isPrimitive(a)||Ext.isDate(a)},setValue:function(d,c,a){var b=this.getRec(d);if(b){b.set("value",c);this.source[d]=c}else if(a){this.source[d]=c;b=new Ext.grid.PropertyRecord({name:d,value:c},d);this.store.add(b)}},remove:function(b){var a=this.getRec(b);if(a){this.store.remove(a);delete this.source[b]}},getRec:function(a){return this.store.getById(a)},getSource:function(){return this.source}});Ext.grid.PropertyColumnModel=Ext.extend(Ext.grid.ColumnModel,{nameText:"Name",valueText:"Value",dateFormat:"m/j/Y",trueText:"true",falseText:"false",constructor:function(c,b){var d=Ext.grid,e=Ext.form;this.grid=c;d.PropertyColumnModel.superclass.constructor.call(this,[{header:this.nameText,width:50,sortable:true,dataIndex:"name",id:"name",menuDisabled:true},{header:this.valueText,width:50,resizable:false,dataIndex:"value",id:"value",menuDisabled:true}]);this.store=b;var a=new e.Field({autoCreate:{tag:"select",children:[{tag:"option",value:"true",html:this.trueText},{tag:"option",value:"false",html:this.falseText}]},getValue:function(){return this.el.dom.value=="true"}});this.editors={date:new d.GridEditor(new e.DateField({selectOnFocus:true})),string:new d.GridEditor(new e.TextField({selectOnFocus:true})),number:new d.GridEditor(new e.NumberField({selectOnFocus:true,style:"text-align:left;"})),boolean:new d.GridEditor(a,{autoSize:"both"})};this.renderCellDelegate=this.renderCell.createDelegate(this);this.renderPropDelegate=this.renderProp.createDelegate(this)},renderDate:function(a){return a.dateFormat(this.dateFormat)},renderBool:function(a){return this[a?"trueText":"falseText"]},isCellEditable:function(a,b){return a==1},getRenderer:function(a){return a==1?this.renderCellDelegate:this.renderPropDelegate},renderProp:function(a){return this.getPropertyName(a)},renderCell:function(d,b,c){var a=this.grid.customRenderers[c.get("name")];if(a)return a.apply(this,arguments);var e=d;if(Ext.isDate(d))e=this.renderDate(d);else if(typeof d=="boolean")e=this.renderBool(d);return Ext.util.Format.htmlEncode(e)},getPropertyName:function(b){var a=this.grid.propertyNames;return a&&a[b]?a[b]:b},getCellEditor:function(a,e){var b=this.store.getProperty(e),d=b.data.name,c=b.data.value;if(this.grid.customEditors[d])return this.grid.customEditors[d];if(Ext.isDate(c))return this.editors.date;else if(typeof c=="number")return this.editors.number;else if(typeof c=="boolean")return this.editors["boolean"];else return this.editors.string},destroy:function(){Ext.grid.PropertyColumnModel.superclass.destroy.call(this);for(var a in this.editors)Ext.destroy(this.editors[a])}});Ext.grid.PropertyGrid=Ext.extend(Ext.grid.EditorGridPanel,{enableColumnMove:false,stripeRows:false,trackMouseOver:false,clicksToEdit:1,enableHdMenu:false,viewConfig:{forceFit:true},initComponent:function(){this.customRenderers=this.customRenderers||{};this.customEditors=this.customEditors||{};this.lastEditRow=null;var b=new Ext.grid.PropertyStore(this);this.propStore=b;var a=new Ext.grid.PropertyColumnModel(this,b);b.store.sort("name","ASC");this.addEvents("beforepropertychange","propertychange");this.cm=a;this.ds=b.store;Ext.grid.PropertyGrid.superclass.initComponent.call(this);this.mon(this.selModel,"beforecellselect",function(e,d,c){if(c===0){this.startEditing.defer(200,this,[d,1]);return false}},this)},onRender:function(){Ext.grid.PropertyGrid.superclass.onRender.apply(this,arguments);this.getGridEl().addClass("x-props-grid")},afterRender:function(){Ext.grid.PropertyGrid.superclass.afterRender.apply(this,arguments);if(this.source)this.setSource(this.source)},setSource:function(a){this.propStore.setSource(a)},getSource:function(){return this.propStore.getSource()},setProperty:function(c,b,a){this.propStore.setValue(c,b,a)},removeProperty:function(a){this.propStore.remove(a)}});Ext.reg("propertygrid",Ext.grid.PropertyGrid);Ext.grid.GroupingView=Ext.extend(Ext.grid.GridView,{groupByText:"Group By This Field",showGroupsText:"Show in Groups",hideGroupedColumn:false,showGroupName:true,startCollapsed:false,enableGrouping:true,enableGroupingMenu:true,enableNoGroups:true,emptyGroupText:"(None)",ignoreAdd:false,groupTextTpl:"{text}",groupMode:"value",initTemplates:function(){Ext.grid.GroupingView.superclass.initTemplates.call(this);this.state={};var a=this.grid.getSelectionModel();a.on(a.selectRow?"beforerowselect":"beforecellselect",this.onBeforeRowSelect,this);if(!this.startGroup)this.startGroup=new Ext.XTemplate('<div id="{groupId}" class="x-grid-group {cls}">','<div id="{groupId}-hd" class="x-grid-group-hd" style="{style}"><div class="x-grid-group-title">',this.groupTextTpl,"</div></div>",'<div id="{groupId}-bd" class="x-grid-group-body">');this.startGroup.compile();if(!this.endGroup)this.endGroup="</div></div>"},findGroup:function(a){return Ext.fly(a).up(".x-grid-group",this.mainBody.dom)},getGroups:function(){return this.hasRows()?this.mainBody.dom.childNodes:[]},onAdd:function(d,a,b){if(this.canGroup()&&!this.ignoreAdd){var c=this.getScrollState();this.fireEvent("beforerowsinserted",d,b,b+(a.length-1));this.refresh();this.restoreScroll(c);this.fireEvent("rowsinserted",d,b,b+(a.length-1))}else if(!this.canGroup())Ext.grid.GroupingView.superclass.onAdd.apply(this,arguments)},onRemove:function(e,a,b,d){Ext.grid.GroupingView.superclass.onRemove.apply(this,arguments);var c=document.getElementById(a._groupId);if(c&&c.childNodes[1].childNodes.length<1)Ext.removeNode(c);this.applyEmptyText()},refreshRow:function(a){if(this.ds.getCount()==1)this.refresh();else{this.isUpdating=true;Ext.grid.GroupingView.superclass.refreshRow.apply(this,arguments);this.isUpdating=false}},beforeMenuShow:function(){var c,a=this.hmenu.items,b=this.cm.config[this.hdCtxIndex].groupable===false;if(c=a.get("groupBy"))c.setDisabled(b);if(c=a.get("showGroups")){c.setDisabled(b);c.setChecked(this.enableGrouping,true)}},renderUI:function(){Ext.grid.GroupingView.superclass.renderUI.call(this);this.mainBody.on("mousedown",this.interceptMouse,this);if(this.enableGroupingMenu&&this.hmenu){this.hmenu.add("-",{itemId:"groupBy",text:this.groupByText,handler:this.onGroupByClick,scope:this,iconCls:"x-group-by-icon"});if(this.enableNoGroups)this.hmenu.add({itemId:"showGroups",text:this.showGroupsText,checked:true,checkHandler:this.onShowGroupsClick,scope:this});this.hmenu.on("beforeshow",this.beforeMenuShow,this)}},processEvent:function(b,h){Ext.grid.GroupingView.superclass.processEvent.call(this,b,h);var g=h.getTarget(".x-grid-group-hd",this.mainBody);if(g){var d=this.getGroupField(),c=this.getPrefix(d),a=g.id.substring(c.length);a=a.substr(0,a.length-3);if(a)this.grid.fireEvent("group"+b,this.grid,d,a,h)}},onGroupByClick:function(){this.enableGrouping=true;this.grid.store.groupBy(this.cm.getDataIndex(this.hdCtxIndex));this.grid.fireEvent("groupchange",this,this.grid.store.getGroupState());this.beforeMenuShow();this.refresh()},onShowGroupsClick:function(a,b){this.enableGrouping=b;if(b)this.onGroupByClick();else{this.grid.store.clearGrouping();this.grid.fireEvent("groupchange",this,null)}},toggleRowIndex:function(c,a){if(!this.canGroup())return;var b=this.getRow(c);if(b)this.toggleGroup(this.findGroup(b),a)},toggleGroup:function(c,b){var a=Ext.get(c);b=Ext.isDefined(b)?b:a.hasClass("x-grid-group-collapsed");if(this.state[a.id]!==b){this.grid.stopEditing(true);this.state[a.id]=b;a[b?"removeClass":"addClass"]("x-grid-group-collapsed")}},toggleAllGroups:function(c){var b=this.getGroups();for(var d=0,a=b.length;d<a;d++)this.toggleGroup(b[d],c)},expandAllGroups:function(){this.toggleAllGroups(true)},collapseAllGroups:function(){this.toggleAllGroups(false)},interceptMouse:function(b){var a=b.getTarget(".x-grid-group-hd",this.mainBody);if(a){b.stopEvent();this.toggleGroup(a.parentNode)}},getGroup:function(a,d,h,i,b,e){var c=h?h(a,{},d,i,b,e):String(a);if(c===""||c==="&#160;")c=this.cm.config[b].emptyGroupText||this.emptyGroupText;return c},getGroupField:function(){return this.grid.store.getGroupState()},afterRender:function(){if(!this.ds||!this.cm)return;Ext.grid.GroupingView.superclass.afterRender.call(this);if(this.grid.deferRowRender)this.updateGroupWidths()},renderRows:function(){var a=this.getGroupField();var e=!!a;if(this.hideGroupedColumn){var b=this.cm.findColumnIndex(a),d=Ext.isDefined(this.lastGroupField);if(!e&&d){this.mainBody.update("");this.cm.setHidden(this.cm.findColumnIndex(this.lastGroupField),false);delete this.lastGroupField}else if(e&&!d){this.lastGroupField=a;this.cm.setHidden(b,true)}else if(e&&d&&a!==this.lastGroupField){this.mainBody.update("");var c=this.cm.findColumnIndex(this.lastGroupField);this.cm.setHidden(c,false);this.lastGroupField=a;this.cm.setHidden(b,true)}}return Ext.grid.GroupingView.superclass.renderRows.apply(this,arguments)},doRender:function(c,h,q,a,p,s){if(h.length<1)return"";if(!this.canGroup()||this.isUpdating)return Ext.grid.GroupingView.superclass.doRender.apply(this,arguments);var z=this.getGroupField(),o=this.cm.findColumnIndex(z),w,j="width:"+this.getTotalWidth()+";",e=this.cm.config[o],b=e.groupRenderer||e.renderer,t=this.showGroupName?(e.groupName||e.header)+": ":"",y=[],l,u,v,n;for(u=0,v=h.length;u<v;u++){var k=a+u,m=h[u],d=m.data[z];w=this.getGroup(d,m,b,k,o,q);if(!l||l.group!=w){n=this.constructId(d,z,o);this.state[n]=!(Ext.isDefined(this.state[n])?!this.state[n]:this.startCollapsed);l={group:w,gvalue:d,text:t+w,groupId:n,startRow:k,rs:[m],cls:this.state[n]?"":"x-grid-group-collapsed",style:j};y.push(l)}else l.rs.push(m);m._groupId=n}var x=[];for(u=0,v=y.length;u<v;u++){w=y[u];this.doGroupStart(x,w,c,q,p);x[x.length]=Ext.grid.GroupingView.superclass.doRender.call(this,c,w.rs,q,w.startRow,p,s);this.doGroupEnd(x,w,c,q,p)}return x.join("")},getGroupId:function(a){var b=this.getGroupField();return this.constructId(a,b,this.cm.findColumnIndex(b))},constructId:function(c,e,a){var b=this.cm.config[a],d=b.groupRenderer||b.renderer,g=this.groupMode=="value"?c:this.getGroup(c,{data:{}},d,0,a,this.ds);return this.getPrefix(e)+Ext.util.Format.htmlEncode(g)},canGroup:function(){return this.enableGrouping&&!!this.getGroupField()},getPrefix:function(a){return this.grid.getGridEl().id+"-gp-"+a+"-"},doGroupStart:function(a,d,b,e,c){a[a.length]=this.startGroup.apply(d)},doGroupEnd:function(a,d,b,e,c){a[a.length]=this.endGroup},getRows:function(){if(!this.canGroup())return Ext.grid.GroupingView.superclass.getRows.call(this);var k=[],c=this.getGroups(),h,e=0,a=c.length,d,b;for(;e<a;++e){h=c[e].childNodes[1];if(h){h=h.childNodes;for(d=0,b=h.length;d<b;++d)k[k.length]=h[d]}}return k},updateGroupWidths:function(){if(!this.canGroup()||!this.hasRows())return;var c=Math.max(this.cm.getTotalWidth(),this.el.dom.offsetWidth-this.getScrollOffset())+"px";var b=this.getGroups();for(var d=0,a=b.length;d<a;d++)b[d].firstChild.style.width=c},onColumnWidthUpdated:function(c,a,b){Ext.grid.GroupingView.superclass.onColumnWidthUpdated.call(this,c,a,b);this.updateGroupWidths()},onAllColumnWidthsUpdated:function(a,b){Ext.grid.GroupingView.superclass.onAllColumnWidthsUpdated.call(this,a,b);this.updateGroupWidths()},onColumnHiddenUpdated:function(b,c,a){Ext.grid.GroupingView.superclass.onColumnHiddenUpdated.call(this,b,c,a);this.updateGroupWidths()},onLayout:function(){this.updateGroupWidths()},onBeforeRowSelect:function(b,a){this.toggleRowIndex(a,true)}});Ext.grid.GroupingView.GROUP_ID=1e3;
/*!
 * Ext JS Library 3.2.1
 * Copyright(c) 2006-2010 Ext JS, Inc.
 * licensing@extjs.com
 * http://www.extjs.com/license
 */
Ext.ux.StatusBar=Ext.extend(Ext.Toolbar,{cls:"x-statusbar",busyIconCls:"x-status-busy",busyText:"Loading...",autoClear:5e3,emptyText:"&nbsp;",activeThreadId:0,initComponent:function(){if(this.statusAlign=="right")this.cls+=" x-status-right";Ext.ux.StatusBar.superclass.initComponent.call(this)},afterRender:function(){Ext.ux.StatusBar.superclass.afterRender.call(this);var right=this.statusAlign=="right";this.currIconCls=this.iconCls||this.defaultIconCls;this.statusEl=new Ext.Toolbar.TextItem({cls:"x-status-text "+(this.currIconCls||""),text:this.text||this.defaultText||""});if(right){this.add("->");this.add(this.statusEl)}else{this.insert(0,this.statusEl);this.insert(1,"->")}this.doLayout()},setStatus:function(o){o=o||{};if(typeof o=="string")o={text:o};if(o.text!==undefined)this.setText(o.text);if(o.iconCls!==undefined)this.setIcon(o.iconCls);if(o.clear){var c=o.clear,wait=this.autoClear,defaults={useDefaults:true,anim:true};if(typeof c=="object"){c=Ext.applyIf(c,defaults);if(c.wait)wait=c.wait}else if(typeof c=="number"){wait=c;c=defaults}else if(typeof c=="boolean")c=defaults;c.threadId=this.activeThreadId;this.clearStatus.defer(wait,this,[c])}return this},clearStatus:function(o){o=o||{};if(o.threadId&&o.threadId!==this.activeThreadId)return this;var text=o.useDefaults?this.defaultText:this.emptyText,iconCls=o.useDefaults?this.defaultIconCls?this.defaultIconCls:"":"";if(o.anim)this.statusEl.el.fadeOut({remove:false,useDisplay:true,scope:this,callback:function(){this.setStatus({text:text,iconCls:iconCls});this.statusEl.el.show()}});else{this.statusEl.hide();this.setStatus({text:text,iconCls:iconCls});this.statusEl.show()}return this},setText:function(text){this.activeThreadId++;this.text=text||"";if(this.rendered)this.statusEl.setText(this.text);return this},getText:function(){return this.text},setIcon:function(cls){this.activeThreadId++;cls=cls||"";if(this.rendered){if(this.currIconCls){this.statusEl.removeClass(this.currIconCls);this.currIconCls=null}if(cls.length>0){this.statusEl.addClass(cls);this.currIconCls=cls}}else this.currIconCls=cls;return this},showBusy:function(o){if(typeof o=="string")o={text:o};o=Ext.applyIf(o||{},{text:this.busyText,iconCls:this.busyIconCls});return this.setStatus(o)}});Ext.reg("statusbar",Ext.ux.StatusBar);
/*!
 * Ext JS Library 3.2.1
 * Copyright(c) 2006-2010 Ext JS, Inc.
 * licensing@extjs.com
 * http://www.extjs.com/license
 */
Ext.UpdateManager.defaults.indicatorText='<div class="loading-indicator">Loading...</div>';if(Ext.data.Types)Ext.data.Types.stripRe=/[\$,%]/g;if(Ext.DataView)Ext.DataView.prototype.emptyText="";if(Ext.grid.GridPanel)Ext.grid.GridPanel.prototype.ddText="{0} selected row{1}";if(Ext.LoadMask)Ext.LoadMask.prototype.msg="Loading...";Date.monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"];Date.getShortMonthName=function(month){return Date.monthNames[month].substring(0,3)};Date.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};Date.getMonthNumber=function(name){return Date.monthNumbers[name.substring(0,1).toUpperCase()+name.substring(1,3).toLowerCase()]};Date.dayNames=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];Date.getShortDayName=function(day){return Date.dayNames[day].substring(0,3)};Date.parseCodes.S.s="(?:st|nd|rd|th)";if(Ext.MessageBox)Ext.MessageBox.buttonText={ok:"OK",cancel:"Cancel",yes:"Yes",no:"No"};if(Ext.util.Format)Ext.util.Format.date=function(v,format){if(!v)return"";if(!(v instanceof Date))v=new Date(Date.parse(v));return v.dateFormat(format||"m/d/Y")};if(Ext.DatePicker)Ext.apply(Ext.DatePicker.prototype,{todayText:"Today",minText:"This date is before the minimum date",maxText:"This date is after the maximum date",disabledDaysText:"",disabledDatesText:"",monthNames:Date.monthNames,dayNames:Date.dayNames,nextText:"Next Month (Control+Right)",prevText:"Previous Month (Control+Left)",monthYearText:"Choose a month (Control+Up/Down to move years)",todayTip:"{0} (Spacebar)",format:"m/d/y",okText:"&#160;OK&#160;",cancelText:"Cancel",startDay:0});if(Ext.PagingToolbar)Ext.apply(Ext.PagingToolbar.prototype,{beforePageText:"Page",afterPageText:"of {0}",firstText:"First Page",prevText:"Previous Page",nextText:"Next Page",lastText:"Last Page",refreshText:"Refresh",displayMsg:"Displaying {0} - {1} of {2}",emptyMsg:"No data to display"});if(Ext.form.BasicForm)Ext.form.BasicForm.prototype.waitTitle="Please Wait...";if(Ext.form.Field)Ext.form.Field.prototype.invalidText="The value in this field is invalid";if(Ext.form.TextField)Ext.apply(Ext.form.TextField.prototype,{minLengthText:"The minimum length for this field is {0}",maxLengthText:"The maximum length for this field is {0}",blankText:"This field is required",regexText:"",emptyText:null});if(Ext.form.NumberField)Ext.apply(Ext.form.NumberField.prototype,{decimalSeparator:".",decimalPrecision:2,minText:"The minimum value for this field is {0}",maxText:"The maximum value for this field is {0}",nanText:"{0} is not a valid number"});if(Ext.form.DateField)Ext.apply(Ext.form.DateField.prototype,{disabledDaysText:"Disabled",disabledDatesText:"Disabled",minText:"The date in this field must be after {0}",maxText:"The date in this field must be before {0}",invalidText:"{0} is not a valid date - it must be in the format {1}",format:"m/d/y",altFormats:"m/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d"});if(Ext.form.ComboBox)Ext.apply(Ext.form.ComboBox.prototype,{loadingText:"Loading...",valueNotFoundText:undefined});if(Ext.form.VTypes)Ext.apply(Ext.form.VTypes,{emailText:'This field should be an e-mail address in the format "user@example.com"',urlText:'This field should be a URL in the format "http:/'+'/www.example.com"',alphaText:"This field should only contain letters and _",alphanumText:"This field should only contain letters, numbers and _"});if(Ext.form.HtmlEditor)Ext.apply(Ext.form.HtmlEditor.prototype,{createLinkText:"Please enter the URL for the link:",buttonTips:{bold:{title:"Bold (Ctrl+B)",text:"Make the selected text bold.",cls:"x-html-editor-tip"},italic:{title:"Italic (Ctrl+I)",text:"Make the selected text italic.",cls:"x-html-editor-tip"},underline:{title:"Underline (Ctrl+U)",text:"Underline the selected text.",cls:"x-html-editor-tip"},increasefontsize:{title:"Grow Text",text:"Increase the font size.",cls:"x-html-editor-tip"},decreasefontsize:{title:"Shrink Text",text:"Decrease the font size.",cls:"x-html-editor-tip"},backcolor:{title:"Text Highlight Color",text:"Change the background color of the selected text.",cls:"x-html-editor-tip"},forecolor:{title:"Font Color",text:"Change the color of the selected text.",cls:"x-html-editor-tip"},justifyleft:{title:"Align Text Left",text:"Align text to the left.",cls:"x-html-editor-tip"},justifycenter:{title:"Center Text",text:"Center text in the editor.",cls:"x-html-editor-tip"},justifyright:{title:"Align Text Right",text:"Align text to the right.",cls:"x-html-editor-tip"},insertunorderedlist:{title:"Bullet List",text:"Start a bulleted list.",cls:"x-html-editor-tip"},insertorderedlist:{title:"Numbered List",text:"Start a numbered list.",cls:"x-html-editor-tip"},createlink:{title:"Hyperlink",text:"Make the selected text a hyperlink.",cls:"x-html-editor-tip"},sourceedit:{title:"Source Edit",text:"Switch to source editing mode.",cls:"x-html-editor-tip"}}});if(Ext.grid.GridView)Ext.apply(Ext.grid.GridView.prototype,{sortAscText:"Sort Ascending",sortDescText:"Sort Descending",columnsText:"Columns"});if(Ext.grid.GroupingView)Ext.apply(Ext.grid.GroupingView.prototype,{emptyGroupText:"(None)",groupByText:"Group By This Field",showGroupsText:"Show in Groups"});if(Ext.grid.PropertyColumnModel)Ext.apply(Ext.grid.PropertyColumnModel.prototype,{nameText:"Name",valueText:"Value",dateFormat:"m/j/Y",trueText:"true",falseText:"false"});if(Ext.grid.BooleanColumn)Ext.apply(Ext.grid.BooleanColumn.prototype,{trueText:"true",falseText:"false",undefinedText:"&#160;"});if(Ext.grid.NumberColumn)Ext.apply(Ext.grid.NumberColumn.prototype,{format:"0,000.00"});if(Ext.grid.DateColumn)Ext.apply(Ext.grid.DateColumn.prototype,{format:"m/d/Y"});if(Ext.layout.BorderLayout&&Ext.layout.BorderLayout.SplitRegion)Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype,{splitTip:"Drag to resize.",collapsibleSplitTip:"Drag to resize. Double click to hide."});if(Ext.form.TimeField)Ext.apply(Ext.form.TimeField.prototype,{minText:"The time in this field must be equal to or after {0}",maxText:"The time in this field must be equal to or before {0}",invalidText:"{0} is not a valid time",format:"g:i A",altFormats:"g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H"});if(Ext.form.CheckboxGroup)Ext.apply(Ext.form.CheckboxGroup.prototype,{blankText:"You must select at least one item in this group"});if(Ext.form.RadioGroup)Ext.apply(Ext.form.RadioGroup.prototype,{blankText:"You must select one item in this group"});(function(){var EV=Ext.lib.Event;Ext.ux.ManagedIFrame=function(){var args=Array.prototype.slice.call(arguments,0),el=Ext.get(args[0]),config=args[0];if(el&&el.dom&&el.dom.tagName=="IFRAME")config=args[1]||{};else{config=args[0]||args[1]||{};el=config.autoCreate?Ext.get(Ext.DomHelper.append(config.autoCreate.parent||document.body,Ext.apply({tag:"iframe",src:Ext.isIE&&Ext.isSecure?Ext.SSL_SECURE_URL:""},config.autoCreate))):null}if(!el||el.dom.tagName!="IFRAME")return el;el.dom.name||(el.dom.name=el.dom.id);this.addEvents({focus:true,blur:true,unload:true,domready:true,documentloaded:true,exception:true,message:true});if(config.listeners){this.listeners=config.listeners;Ext.ux.ManagedIFrame.superclass.constructor.call(this)}Ext.apply(el,this);el.addClass("x-managed-iframe");if(config.style)el.applyStyles(config.style);el._maskEl=el.parent(".x-managed-iframe-mask")||el.parent().addClass("x-managed-iframe-mask");Ext.apply(el,{disableMessaging:config.disableMessaging===true,loadMask:Ext.apply({msg:"Loading..",msgCls:"x-mask-loading",maskEl:el._maskEl,hideOnReady:true,disabled:!config.loadMask},config.loadMask),_eventName:Ext.isIE?"onreadystatechange":"onload",_windowContext:null,eventsFollowFrameLinks:typeof config.eventsFollowFrameLinks=="undefined"?true:config.eventsFollowFrameLinks});el.dom[el._eventName]=el.loadHandler.createDelegate(el);if(document.addEventListener)Ext.EventManager.on(window,"DOMFrameContentLoaded",el.dom[el._eventName]);var um=el.updateManager=new Ext.UpdateManager(el,true);um.showLoadIndicator=config.showLoadIndicator||false;if(config.src)el.setSrc(config.src);else{var content=config.html||config.content||false;if(content)el.update.defer(10,el,[content])}return Ext.ux.ManagedIFrame.Manager.register(el)};var MIM=Ext.ux.ManagedIFrame.Manager=function(){var frames={};return{shimCls:"x-frame-shim",register:function(frame){frame.manager=this;frames[frame.id]=frames[frame.dom.name]={ref:frame,elCache:{}};return frame},deRegister:function(frame){frame._unHook();delete frames[frame.id];delete frames[frame.dom.name]},hideShims:function(){if(!this.shimApplied)return;Ext.select("."+this.shimCls,true).removeClass(this.shimCls+"-on");this.shimApplied=false},showShims:function(){if(!this.shimApplied){this.shimApplied=true;Ext.select("."+this.shimCls,true).addClass(this.shimCls+"-on")}},getFrameById:function(id){return typeof id=="string"?frames[id]?frames[id].ref||null:null:null},getFrameByName:function(name){return this.getFrameById(name)},getFrameHash:function(frame){return frame.id?frames[frame.id]:null},eventProxy:function(e){e=Ext.lib.Event.getEvent(e);if(!e)return;var be=e.browserEvent||e;if(e.type=="unload")this._unHook();if(!be["eventPhase"]||be["eventPhase"]==(be["AT_TARGET"]||2))return this.fireEvent(e.type,e)},_flyweights:{},removeNode:Ext.isIE?function(frame,n){frame=MIM.getFrameHash(frame);if(frame&&n&&n.tagName!="BODY"){d=frame.scratchDiv||(frame.scratchDiv=frame.getDocument().createElement("div"));d.appendChild(n);d.innerHTML=""}}:function(frame,n){if(n&&n.parentNode&&n.tagName!="BODY")n.parentNode.removeChild(n)}}}();MIM.showDragMask=MIM.showShims;MIM.hideDragMask=MIM.hideShims;MIM.El=function(frame,el,forceNew){var frameObj;frame=(frameObj=MIM.getFrameHash(frame))?frameObj.ref:null;if(!frame)return null;var elCache=frameObj.elCache||(frameObj.elCache={});var dom=frame.getDom(el);if(!dom)return null;var id=dom.id;if(forceNew!==true&&id&&elCache[id])return elCache[id];this.dom=dom;this.id=id||Ext.id(dom)};MIM.El.get=function(frame,el){var ex,elm,id,doc;if(!frame||!el)return null;var frameObj;frame=(frameObj=MIM.getFrameHash(frame))?frameObj.ref:null;if(!frame)return null;var elCache=frameObj.elCache||(frameObj.elCache={});if(!(doc=frame.getDocument()))return null;if(typeof el=="string"){if(!(elm=frame.getDom(el)))return null;if(ex=elCache[el])ex.dom=elm;else ex=elCache[el]=new MIM.El(frame,elm);return ex}else if(el.tagName){if(!(id=el.id))id=Ext.id(el);if(ex=elCache[id])ex.dom=el;else ex=elCache[id]=new MIM.El(frame,el);return ex}else if(el instanceof MIM.El){if(el!=frameObj.docEl){el.dom=frame.getDom(el.id)||el.dom;elCache[el.id]=el}return el}else if(el.isComposite)return el;else if(Ext.isArray(el))return frame.select(el);else if(el==doc){if(!frameObj.docEl){var f=function(){};f.prototype=MIM.El.prototype;frameObj.docEl=new f;frameObj.docEl.dom=doc}return frameObj.docEl}return null};Ext.apply(MIM.El.prototype,Ext.Element.prototype);Ext.extend(Ext.ux.ManagedIFrame,Ext.util.Observable,{src:null,setSrc:function(url,discardUrl,callback){var reset=Ext.isIE&&Ext.isSecure?Ext.SSL_SECURE_URL:"";var src=url||this.src||reset;if(Ext.isOpera)this.dom.src=reset;this._windowContext=null;this._unHook();this._callBack=callback||false;this.showMask();(function(){var s=typeof src=="function"?src()||"":src;try{this._frameAction=true;this.dom.src=s;this.frameInit=true;this.checkDOM()}catch(ex){this.fireEvent("exception",this,ex)}}).defer(10,this);if(discardUrl!==true)this.src=src;return this},reset:function(src,callback){this.setSrc(src||(Ext.isIE&&Ext.isSecure?Ext.SSL_SECURE_URL:""),true,callback)},scriptRE:/(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/gi,update:function(content,loadScripts,callback){loadScripts=loadScripts||this.getUpdateManager().loadScripts||false;content=Ext.DomHelper.markup(content||"");content=loadScripts===true?content:content.replace(this.scriptRE,"");var doc;if(doc=this.getDocument()){this._frameAction=!!content.length;this._windowContext=this.src=null;this._callBack=callback||false;this._unHook();this.showMask();doc.open();doc.write(content);doc.close();this.frameInit=true;if(this._frameAction)this.checkDOM();else{this.hideMask(true);if(this._callBack)this._callBack()}}else{this.hideMask(true);if(this._callBack)this._callBack()}return this},disableMessaging:true,_XFrameMessaging:function(){var tagStack={$:[]};var isEmpty=function(v,allowBlank){return v===null||v===undefined||(!allowBlank?v==="":false)};window.sendMessage=function(message,tag,origin){var MIF;if(MIF=arguments.callee.manager)if(message._fromHost){var fn,result;var compTag=message.tag||tag||null;var mstack=!isEmpty(compTag)?tagStack[compTag.toLowerCase()]||[]:tagStack["$"];for(var i=0,l=mstack.length;i<l;i++)if(fn=mstack[i]){result=fn.apply(fn.__scope,arguments)===false?false:result;if(fn.__single)mstack[i]=null;if(result===false)break}return result}else{message={type:isEmpty(tag)?"message":"message:"+tag.toLowerCase().replace(/^\s+|\s+$/g,""),data:message,domain:origin||document.domain,uri:document.documentURI,source:window,tag:isEmpty(tag)?null:tag.toLowerCase()};try{return MIF.disableMessaging!==true?MIF.fireEvent.call(MIF,message.type,MIF,message):null}catch(ex){}return null}};window.onhostmessage=function(fn,scope,single,tag){if(typeof fn=="function"){if(!isEmpty(fn.__index))throw"onhostmessage: duplicate handler definition"+(tag?" for tag:"+tag:"");var k=isEmpty(tag)?"$":tag.toLowerCase();tagStack[k]||(tagStack[k]=[]);Ext.apply(fn,{__tag:k,__single:single||false,__scope:scope||window,__index:tagStack[k].length});tagStack[k].push(fn)}else throw"onhostmessage: function required";};window.unhostmessage=function(fn){if(typeof fn=="function"&&typeof fn.__index!="undefined"){var k=fn.__tag||"$";tagStack[k][fn.__index]=null}}},get:function(el){return MIM.El.get(this,el)},fly:function(el,named){named=named||"_global";el=this.getDom(el);if(!el)return null;if(!MIM._flyweights[named])MIM._flyweights[named]=new Ext.Element.Flyweight;MIM._flyweights[named].dom=el;return MIM._flyweights[named]},getDom:function(el){var d;if(!el||!(d=this.getDocument()))return null;return el.dom?el.dom:typeof el=="string"?d.getElementById(el):el},select:function(selector,unique){var d;return(d=this.getDocument())?Ext.Element.select(selector,unique,d):null},query:function(selector){var d;return(d=this.getDocument())?Ext.DomQuery.select(selector,d):null},getDoc:function(){return this.get(this.getDocument())},removeNode:function(node){MIM.removeNode(this,this.getDom(node))},_unHook:function(){var elcache,h=MIM.getFrameHash(this)||{};if(this._hooked&&h&&(elcache=h.elCache)){for(var id in elcache){var el=elcache[id];delete elcache[id];if(el.removeAllListeners)el.removeAllListeners()}if(h.docEl){h.docEl.removeAllListeners();h.docEl=null;delete h.docEl}}this._hooked=this._domReady=this._domFired=false},_renderHook:function(){this._windowContext=null;this._hooked=false;try{if(this.writeScript('(function(){(window.hostMIF = parent.Ext.get("'+this.dom.id+'"))._windowContext='+(Ext.isIE?"window":"{eval:function(s){return eval(s);}}")+";})();")){this._frameProxy||(this._frameProxy=MIM.eventProxy.createDelegate(this));EV.doAdd(this.getWindow(),"focus",this._frameProxy);EV.doAdd(this.getWindow(),"blur",this._frameProxy);EV.doAdd(this.getWindow(),"unload",this._frameProxy);if(this.disableMessaging!==true){this.loadFunction({name:"XMessage",fn:this._XFrameMessaging},false,true);var sm;if(sm=this.getWindow().sendMessage)sm.manager=this}this.CSS=new CSSInterface(this.getDocument())}return this.domWritable()}catch(ex){}return false},sendMessage:function(message,tag,origin){var win;if(this.disableMessaging!==true&&(win=this.getWindow())){tag||(tag=message.tag||"");tag=tag.toLowerCase();message=Ext.applyIf(message.data?message:{data:message},{type:Ext.isEmpty(tag)?"message":"message:"+tag,domain:origin||document.domain,uri:document.documentURI,source:window,tag:tag||null,_fromHost:this});return win.sendMessage?win.sendMessage.call(null,message,tag,origin):null}return null},_windowContext:null,getDocument:function(){var win;return(win=this.getWindow())?win.document:null},getBody:function(){var d;return(d=this.getDocument())?d.body:null},getDocumentURI:function(){var URI;try{URI=this.src?this.getDocument().location.href:null}catch(ex){}return URI||this.src},getWindow:function(){var dom=this.dom;return dom?dom.contentWindow||window.frames[dom.name]:null},print:function(){try{var win=this.getWindow();if(Ext.isIE)win.focus();win.print()}catch(ex){throw"print exception: "+(ex.description||ex.message||ex);}},destroy:function(){this.removeAllListeners();if(this.dom){if(document.addEventListener)Ext.EventManager.un(window,"DOMFrameContentLoaded",this.dom[this._eventName]);this.dom[this._eventName]=null;Ext.ux.ManagedIFrame.Manager.deRegister(this);this._windowContext=null;if(Ext.isIE&&this.dom.src)this.dom.src="javascript:false";this._maskEl=null;Ext.removeNode(this.dom)}Ext.apply(this.loadMask,{masker:null,maskEl:null})},domWritable:function(){return!!this._windowContext},execScript:function(block,useDOM){try{if(this.domWritable())if(useDOM)this.writeScript(block);else return this._windowContext.eval(block);else throw"execScript:non-secure context";}catch(ex){this.fireEvent("exception",this,ex);return false}return true},writeScript:function(block,attributes){attributes=Ext.apply({},attributes||{},{type:"text/javascript",text:block});try{var head,script,doc=this.getDocument();if(doc&&doc.getElementsByTagName){if(!(head=doc.getElementsByTagName("head")[0])){head=doc.createElement("head");doc.getElementsByTagName("html")[0].appendChild(head)}if(head&&(script=doc.createElement("script"))){for(var attrib in attributes)if(attributes.hasOwnProperty(attrib)&&attrib in script)script[attrib]=attributes[attrib];return!!head.appendChild(script)}}}catch(ex){this.fireEvent("exception",this,ex)}return false},loadFunction:function(fn,useDOM,invokeIt){var name=fn.name||fn;var fn=fn.fn||window[fn];this.execScript(name+"="+fn,useDOM);if(invokeIt)this.execScript(name+"()")},showMask:function(msg,msgCls,forced){var lmask;if((lmask=this.loadMask)&&(!lmask.disabled||forced)){if(lmask._vis)return;lmask.masker||(lmask.masker=Ext.get(lmask.maskEl||this.dom.parentNode||this.wrap({tag:"div",style:{position:"relative"}})));lmask._vis=true;lmask.masker.mask.defer(lmask.delay||5,lmask.masker,[msg||lmask.msg,msgCls||lmask.msgCls])}},hideMask:function(forced){var tlm;if((tlm=this.loadMask)&&!tlm.disabled&&tlm.masker){if(!forced&&tlm.hideOnReady!==true&&this._domReady)return;tlm._vis=false;tlm.masker.unmask.defer(tlm.delay||5,tlm.masker)}},loadHandler:function(e){if(!this.frameInit||!this._frameAction&&!this.eventsFollowFrameLinks)return;var rstatus=e&&typeof e.type!=="undefined"?e.type:this.dom.readyState;switch(rstatus){case"loading":case"interactive":break;case"DOMFrameContentLoaded":if(this._domFired||e&&e.target!==this.dom)return;case"domready":if(this._domFired)return;if(this._domFired=this._hooked=this._renderHook())this._frameAction=this.fireEvent("domready",this)===false?false:this._frameAction;case"domfail":this._domReady=true;this.hideMask();break;case"load":case"complete":if(!this._domFired)this.loadHandler({type:"domready"});this.hideMask(true);if(this._frameAction||this.eventsFollowFrameLinks)this.fireEvent.defer(50,this,["documentloaded",this]);this._frameAction=false;if(this.eventsFollowFrameLinks)this._domFired=this._domReady=false;if(this._callBack)this._callBack(this);break;default:}},checkDOM:function(win){if(Ext.isOpera)return;var n=0,win=win||this.getWindow(),manager=this,domReady=false,max=100;var poll=function(){try{domReady=false;var doc=win.document,body;if(!manager._domReady){domReady=doc&&doc.getElementsByTagName;domReady=domReady&&(body=doc.getElementsByTagName("body")[0])&&!!body.innerHTML.length}}catch(ex){n=max}if(!manager._frameAction||manager._domReady)return;if(n++<max&&!domReady){setTimeout(arguments.callee,10);return}manager.loadHandler({type:domReady?"domready":"domfail"})};setTimeout(poll,50)}});var styleCamelRe=/(-[a-z])/gi;var styleCamelFn=function(m,a){return a.charAt(1).toUpperCase()};var CSSInterface=function(hostDocument){var doc;if(hostDocument){doc=hostDocument;return{rules:null,createStyleSheet:function(cssText,id){var ss;if(!doc)return;var head=doc.getElementsByTagName("head")[0];var rules=doc.createElement("style");rules.setAttribute("type","text/css");if(id)rules.setAttribute("id",id);if(Ext.isIE){head.appendChild(rules);ss=rules.styleSheet;ss.cssText=cssText}else{try{rules.appendChild(doc.createTextNode(cssText))}catch(e){rules.cssText=cssText}head.appendChild(rules);ss=rules.styleSheet?rules.styleSheet:rules.sheet||doc.styleSheets[doc.styleSheets.length-1]}this.cacheStyleSheet(ss);return ss},removeStyleSheet:function(id){if(!doc)return;var existing=doc.getElementById(id);if(existing)existing.parentNode.removeChild(existing)},swapStyleSheet:function(id,url){this.removeStyleSheet(id);if(!doc)return;var ss=doc.createElement("link");ss.setAttribute("rel","stylesheet");ss.setAttribute("type","text/css");ss.setAttribute("id",id);ss.setAttribute("href",url);doc.getElementsByTagName("head")[0].appendChild(ss)},refreshCache:function(){return this.getRules(true)},cacheStyleSheet:function(ss){if(this.rules)this.rules={};try{var ssRules=ss.cssRules||ss.rules;for(var j=ssRules.length-1;j>=0;--j)this.rules[ssRules[j].selectorText]=ssRules[j]}catch(e){}},getRules:function(refreshCache){if(this.rules==null||refreshCache){this.rules={};if(doc){var ds=doc.styleSheets;for(var i=0,len=ds.length;i<len;i++)try{this.cacheStyleSheet(ds[i])}catch(e){}}}return this.rules},getRule:function(selector,refreshCache){var rs=this.getRules(refreshCache);if(!Ext.isArray(selector))return rs[selector];for(var i=0;i<selector.length;i++)if(rs[selector[i]])return rs[selector[i]];return null},updateRule:function(selector,property,value){if(!Ext.isArray(selector)){var rule=this.getRule(selector);if(rule){rule.style[property.replace(styleCamelRe,styleCamelFn)]=value;return true}}else for(var i=0;i<selector.length;i++)if(this.updateRule(selector[i],property,value))return true;return false}}}};Ext.ux.ManagedIframePanel=Ext.extend(Ext.Panel,{defaultSrc:null,bodyStyle:{height:"100%",width:"100%",position:"relative"},frameStyle:{overflow:"auto"},frameConfig:null,hideMode:!Ext.isIE?"nosize":"display",shimCls:Ext.ux.ManagedIFrame.Manager.shimCls,shimUrl:null,loadMask:false,animCollapse:Ext.isIE,autoScroll:false,closable:true,ctype:"Ext.ux.ManagedIframePanel",showLoadIndicator:false,unsupportedText:"Inline frames are NOT enabled/supported by your browser.",initComponent:function(){var unsup=this.unsupportedText?{html:this.unsupportedText}:false;this.bodyCfg||(this.bodyCfg={tag:"div",cls:"x-panel-body",children:[{cls:"x-managed-iframe-mask",children:[Ext.apply(Ext.apply({tag:"iframe",frameborder:0,cls:"x-managed-iframe",style:this.frameStyle||null},this.frameConfig),unsup,Ext.isIE&&Ext.isSecure?{src:Ext.SSL_SECURE_URL}:false),{tag:"img",src:this.shimUrl||Ext.BLANK_IMAGE_URL,cls:this.shimCls}]}]});this.autoScroll=false;this.items=null;if(this.stateful!==false)this.stateEvents||(this.stateEvents=["documentloaded"]);Ext.ux.ManagedIframePanel.superclass.initComponent.call(this);this.monitorResize||(this.monitorResize=this.fitToParent);this.addEvents({documentloaded:true,domready:true,message:true,exception:true});this.addListener=this.on},doLayout:function(){if(this.fitToParent&&!this.ownerCt){var pos=this.getPosition(),size=(Ext.get(this.fitToParent)||this.getEl().parent()).getViewSize();this.setSize(size.width-pos[0],size.height-pos[1])}Ext.ux.ManagedIframePanel.superclass.doLayout.apply(this,arguments)},beforeDestroy:function(){if(this.rendered){if(this.tools)for(var k in this.tools)Ext.destroy(this.tools[k]);if(this.header&&this.headerAsText){var s;if(s=this.header.child("span"))s.remove();this.header.update("")}Ext.each(["iframe","shim","header","topToolbar","bottomToolbar","footer","loadMask","body","bwrap"],function(elName){if(this[elName]){if(typeof this[elName].destroy=="function")this[elName].destroy();else Ext.destroy(this[elName]);this[elName]=null;delete this[elName]}},this)}Ext.ux.ManagedIframePanel.superclass.beforeDestroy.call(this)},onDestroy:function(){Ext.Panel.superclass.onDestroy.call(this)},onRender:function(ct,position){Ext.ux.ManagedIframePanel.superclass.onRender.call(this,ct,position);if(this.iframe=this.body.child("iframe.x-managed-iframe")){var El=Ext.Element;var mode=El[this.hideMode.toUpperCase()]||"x-hide-nosize";Ext.each([this[this.collapseEl],this.floating?null:this.getActionEl(),this.iframe],function(el){if(el)el.setVisibilityMode(mode)},this);if(this.loadMask)this.loadMask=Ext.apply({disabled:false,maskEl:this.body,hideOnReady:true},this.loadMask);if(this.iframe=new Ext.ux.ManagedIFrame(this.iframe,{loadMask:this.loadMask,showLoadIndicator:this.showLoadIndicator,disableMessaging:this.disableMessaging,style:this.frameStyle})){this.loadMask=this.iframe.loadMask;this.iframe.ownerCt=this;this.relayEvents(this.iframe,["blur","focus","unload","documentloaded","domready","exception","message"].concat(this._msgTagHandlers||[]));delete this._msgTagHandlers}this.getUpdater().showLoadIndicator=this.showLoadIndicator||false;var ownerCt=this.ownerCt;while(ownerCt){ownerCt.on("afterlayout",function(container,layout){var MIM=Ext.ux.ManagedIFrame.Manager,st=false;Ext.each(["north","south","east","west"],function(region){var reg;if((reg=layout[region])&&reg.splitEl){st=true;if(!reg.split._splitTrapped){reg.split.on("beforeresize",MIM.showShims,MIM);reg.split._splitTrapped=true}}},this);if(st&&!this._splitTrapped){this.on("resize",MIM.hideShims,MIM);this._splitTrapped=true}},this,{single:true});ownerCt=ownerCt.ownerCt}}this.shim=Ext.get(this.body.child("."+this.shimCls))},toggleShim:function(){if(this.shim&&this.shimCls)this.shim.toggleClass(this.shimCls+"-on")},afterRender:function(container){var html=this.html;delete this.html;Ext.ux.ManagedIframePanel.superclass.afterRender.call(this);if(this.iframe)if(this.defaultSrc)this.setSrc();else if(html)this.iframe.update(typeof html=="object"?Ext.DomHelper.markup(html):html)},sendMessage:function(){if(this.iframe)this.iframe.sendMessage.apply(this.iframe,arguments)},on:function(name){var tagRE=/^message\:/i,n=null;if(typeof name=="object"){for(var na in name)if(!this.filterOptRe.test(na)&&tagRE.test(na)){n||(n=[]);n.push(na.toLowerCase())}}else if(tagRE.test(name))n=[name.toLowerCase()];if(this.getFrame()&&n)this.relayEvents(this.iframe,n);else{this._msgTagHandlers||(this._msgTagHandlers=[]);if(n)this._msgTagHandlers=this._msgTagHandlers.concat(n)}Ext.ux.ManagedIframePanel.superclass.on.apply(this,arguments)},setSrc:function(url,discardUrl,callback){url=url||this.defaultSrc||false;if(!url)return this;if(url.url){callback=url.callback||false;discardUrl=url.discardUrl||false;url=url.url||false}var src=url||(Ext.isIE&&Ext.isSecure?Ext.SSL_SECURE_URL:"");if(this.rendered&&this.iframe)this.iframe.setSrc(src,discardUrl,callback);return this},getState:function(){var URI=this.iframe?this.iframe.getDocumentURI()||null:null;return Ext.apply(Ext.ux.ManagedIframePanel.superclass.getState.call(this)||{},URI?{defaultSrc:typeof URI=="function"?URI():URI}:null)},getUpdater:function(){return this.rendered?(this.iframe||this.body).getUpdater():null},getFrame:function(){return this.rendered?this.iframe:null},getFrameWindow:function(){return this.rendered&&this.iframe?this.iframe.getWindow():null},getFrameDocument:function(){return this.rendered&&this.iframe?this.iframe.getDocument():null},getFrameDoc:function(){return this.rendered&&this.iframe?this.iframe.getDoc():null},getFrameBody:function(){return this.rendered&&this.iframe?this.iframe.getBody():null},load:function(loadCfg){var um;if(um=this.getUpdater()){if(loadCfg&&loadCfg.renderer){um.setRenderer(loadCfg.renderer);delete loadCfg.renderer}um.update.apply(um,arguments)}return this},doAutoLoad:function(){this.load(typeof this.autoLoad=="object"?this.autoLoad:{url:this.autoLoad})}});Ext.reg("iframepanel",Ext.ux.ManagedIframePanel);Ext.ux.ManagedIframePortlet=Ext.extend(Ext.ux.ManagedIframePanel,{anchor:"100%",frame:true,collapseEl:"bwrap",collapsible:true,draggable:true,cls:"x-portlet"});Ext.reg("iframeportlet",Ext.ux.ManagedIframePortlet);Ext.apply(Ext.Element.prototype,{setVisible:function(visible,animate){if(!animate||!Ext.lib.Anim)if(this.visibilityMode==Ext.Element.DISPLAY)this.setDisplayed(visible);else if(this.visibilityMode==Ext.Element.VISIBILITY){this.fixDisplay();this.dom.style.visibility=visible?"visible":"hidden"}else this[visible?"removeClass":"addClass"](String(this.visibilityMode));else{var dom=this.dom;var visMode=this.visibilityMode;if(visible){this.setOpacity(.01);this.setVisible(true)}this.anim({opacity:{to:visible?1:0}},this.preanim(arguments,1),null,.35,"easeIn",function(){if(!visible){if(visMode==Ext.Element.DISPLAY)dom.style.display="none";else if(visMode==Ext.Element.VISIBILITY)dom.style.visibility="hidden";else Ext.get(dom).addClass(String(visMode));Ext.get(dom).setOpacity(1)}})}return this},isVisible:function(deep){var vis=!(this.getStyle("visibility")=="hidden"||this.getStyle("display")=="none"||this.hasClass(this.visibilityMode));if(deep!==true||!vis)return vis;var p=this.dom.parentNode;while(p&&p.tagName.toLowerCase()!="body"){if(!Ext.fly(p,"_isVisible").isVisible())return false;p=p.parentNode}return true}});Ext.onReady(function(){var CSS=Ext.util.CSS,rules=[];CSS.getRule(".x-managed-iframe")||rules.push(".x-managed-iframe {height:100%;width:100%;overflow:auto;}");CSS.getRule(".x-managed-iframe-mask")||rules.push(".x-managed-iframe-mask{width:100%;height:100%;position:relative;}");if(!CSS.getRule(".x-frame-shim")){rules.push(".x-frame-shim {z-index:9000;position:absolute;top:0px;left:0px;background:transparent!important;overflow:hidden;display:none;}");rules.push(".x-frame-shim-on{width:100%;height:100%;display:block;zoom:1;}");rules.push(".ext-ie6 .x-frame-shim{margin-left:5px;margin-top:3px;}")}CSS.getRule(".x-hide-nosize")||rules.push(".x-hide-nosize,.x-hide-nosize object,.x-hide-nosize iframe{height:0px!important;width:0px!important;border:none;}");if(!!rules.length)CSS.createStyleSheet(rules.join(" "))})})();(function(){Ext.namespace("Ext.ux");var tmceInitialized=false;var WindowManager;var ControlManager;Ext.ux.TinyMCE=Ext.extend(Ext.form.Field,{tinymceSettings:null,allowBlank:true,invalidText:"The value in this field is invalid",invalidClass:"invalid-content-body",minLengthText:"The minimum length for this field is {0}",maxLengthText:"The maximum length for this field is {0}",blankText:"This field is required",hideMode:"offsets",defaultAutoCreate:{tag:"textarea",style:"width:1px;height:1px;",autocomplete:"off"},constructor:function(cfg){var config={tinymceSettings:{accessibility_focus:false}};Ext.apply(config,cfg);this.addEvents({editorcreated:true});Ext.ux.TinyMCE.superclass.constructor.call(this,config)},initComponent:function(){this.tinymceSettings=this.tinymceSettings||{};Ext.ux.TinyMCE.initTinyMCE({language:this.tinymceSettings.language})},initEvents:function(){this.originalValue=this.getValue()},onRender:function(ct,position){Ext.ux.TinyMCE.superclass.onRender.call(this,ct,position);if(Ext.type(this.width)=="number")this.tinymceSettings.width=this.width;if(Ext.type(this.height)=="number")this.tinymceSettings.height=this.height;this.el.dom.setAttribute("tabIndex",-1);this.el.addClass("x-hidden");this.textareaEl=this.el;var wrapElStyle={overflow:"hidden"};if(Ext.isIE){wrapElStyle["margin-top"]="-1px";wrapElStyle["margin-bottom"]="-1px"}this.wrapEl=this.el.wrap({style:wrapElStyle});this.actionMode="wrapEl";this.positionEl=this.wrapEl;var id=this.getId();this.ed=new tinymce.Editor(id,this.tinymceSettings);var validateContentTask=new Ext.util.DelayedTask(this.validate,this);this.ed.onKeyPress.add(function(ed,controlManager){validateContentTask.delay(250)}.createDelegate(this));this.ed.onBeforeRenderUI.add(function(ed,controlManager){ed.controlManager=new ControlManager(this,ed)}.createDelegate(this));this.ed.onPostRender.add(function(ed,controlManager){var s=ed.settings;var tbar=Ext.get(Ext.DomQuery.selectNode("#"+this.ed.id+"_tbl td.mceToolbar"));if(tbar!=null){var tbars=tbar.select("> table.mceToolbar");Ext.DomHelper.append(tbar,{tag:"div",id:this.ed.id+"_xtbar",style:{overflow:"hidden"}},true).appendChild(tbars)}ed.windowManager=new WindowManager({editor:this.ed,manager:this.manager});Ext.get(ed.getContentAreaContainer()).addClass("patch-content-body");Ext.Element.fly(s.content_editable?ed.getBody():ed.getWin()).on("focus",this.onFocus,this);Ext.Element.fly(s.content_editable?ed.getBody():ed.getWin()).on("blur",this.onBlur,this,this.inEditor&&Ext.isWindows&&Ext.isGecko?{buffer:10}:null)}.createDelegate(this));this.ed.onChange.add(function(ed,l){this.fireEvent("change",ed,l)}.createDelegate(this));this.ed.render();tinyMCE.add(this.ed);(function(){if(!this.isVisible()){arguments.callee.defer(50,this);return}var size=this.getSize();this.withEd(function(){this._setEditorSize(size.width,size.height);this.fireEvent("editorcreated")})}).call(this)},getResizeEl:function(){return this.wrapEl},getName:function(){return this.rendered&&this.textareaEl.dom.name?this.textareaEl.dom.name:this.name||""},initValue:function(){if(!this.rendered)Ext.ux.TinyMCE.superclass.initValue.call(this);else if(this.value!==undefined)this.setValue(this.value);else{var v=this.textareaEl.value;if(v)this.setValue(v)}},beforeDestroy:function(){if(this.ed)tinyMCE.remove(this.ed);if(this.wrapEl)Ext.destroy(this.wrapEl);Ext.ux.TinyMCE.superclass.beforeDestroy.call(this)},getRawValue:function(){if(!this.rendered||!this.ed.initialized)return Ext.value(this.value,"");var v=this.ed.getContent();if(v===this.emptyText)v="";return v},getValue:function(){if(!this.rendered||!this.ed.initialized)return Ext.value(this.value,"");var v=this.ed.getContent();if(v===this.emptyText||v===undefined)v="";return v},setRawValue:function(v){this.value=v;if(this.rendered)this.withEd(function(){this.ed.undoManager.clear();this.ed.setContent(v===null||v===undefined?"":v);this.ed.startContent=this.ed.getContent({format:"raw"})})},setValue:function(v){this.value=v;if(this.rendered)this.withEd(function(){this.ed.undoManager.clear();this.ed.setContent(v===null||v===undefined?"":v);this.ed.startContent=this.ed.getContent({format:"raw"});this.validate()})},isDirty:function(){if(this.disabled||!this.rendered)return false;return this.ed&&this.ed.initialized&&this.ed.isDirty()},syncValue:function(){if(this.rendered&&this.ed.initialized)this.ed.save()},getEd:function(){return this.ed},disable:function(){this.withEd(function(){var bodyEl=this.ed.getBody();bodyEl=Ext.get(bodyEl);if(bodyEl.hasClass("mceContentBody")){bodyEl.removeClass("mceContentBody");bodyEl.addClass("mceNonEditable")}})},enable:function(){this.withEd(function(){var bodyEl=this.ed.getBody();bodyEl=Ext.get(bodyEl);if(bodyEl.hasClass("mceNonEditable")){bodyEl.removeClass("mceNonEditable");bodyEl.addClass("mceContentBody")}})},onResize:function(aw,ah){if(Ext.type(aw)!="number")aw=this.getWidth();if(Ext.type(ah)!="number")ah=this.getHeight();if(aw==0||ah==0)return;if(this.rendered&&this.isVisible())this.withEd(function(){this._setEditorSize(aw,ah)})},_setEditorSize:function(width,height){if(!this.ed.theme.AdvancedTheme)return;if(width<100)width=100;if(height<129)height=129;var edTable=Ext.get(this.ed.id+"_tbl"),edIframe=Ext.get(this.ed.id+"_ifr"),edToolbar=Ext.get(this.ed.id+"_xtbar");var toolbarWidth=width;if(edTable)toolbarWidth=width-edTable.getFrameWidth("lr");var toolbarHeight=0;if(edToolbar){toolbarHeight=edToolbar.getHeight();var toolbarTd=edToolbar.findParent("td",5,true);toolbarHeight+=toolbarTd.getFrameWidth("tb");edToolbar.setWidth(toolbarWidth)}var edStatusbarTd=edTable.child(".mceStatusbar");var statusbarHeight=0;if(edStatusbarTd)statusbarHeight+=edStatusbarTd.getHeight();var iframeHeight=height-toolbarHeight-statusbarHeight;var iframeTd=edIframe.findParent("td",5,true);if(iframeTd)iframeHeight-=iframeTd.getFrameWidth("tb");edTable.setSize(width,height);edIframe.setSize(toolbarWidth,iframeHeight)},focus:function(selectText,delay){if(delay){this.focus.defer(typeof delay=="number"?delay:10,this,[selectText,false]);return}this.withEd(function(){this.ed.focus()});return this},processValue:function(value){return Ext.util.Format.stripTags(value)},validateValue:function(value){if(Ext.isFunction(this.validator)){var msg=this.validator(value);if(msg!==true){this.markInvalid(msg);return false}}if(value.length<1||value===this.emptyText)if(this.allowBlank){this.clearInvalid();return true}else{this.markInvalid(this.blankText);return false}if(value.length<this.minLength){this.markInvalid(String.format(this.minLengthText,this.minLength));return false}if(value.length>this.maxLength){this.markInvalid(String.format(this.maxLengthText,this.maxLength));return false}if(this.vtype){var vt=Ext.form.VTypes;if(!vt[this.vtype](value,this)){this.markInvalid(this.vtypeText||vt[this.vtype+"Text"]);return false}}if(this.regex&&!this.regex.test(value)){this.markInvalid(this.regexText);return false}return true},withEd:function(func){if(!this.ed)this.on("editorcreated",function(){this.withEd(func)},this);else if(this.ed.initialized)func.call(this);else this.ed.onInit.add(function(){func.defer(10,this)}.createDelegate(this))}});Ext.apply(Ext.ux.TinyMCE,{tinymcePlugins:"pagebreak,style,layer,table,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,noneditable,visualchars,nonbreaking,xhtmlxtras,template",initTinyMCE:function(settings){if(!tmceInitialized){WindowManager=Ext.extend(tinymce.WindowManager,{constructor:function(cfg){WindowManager.superclass.constructor.call(this,cfg.editor);this.manager=cfg.manager},alert:function(txt,cb,s){Ext.MessageBox.alert("",txt,function(){if(!Ext.isEmpty(cb))cb.call(this)},s)},confirm:function(txt,cb,s){Ext.MessageBox.confirm("",txt,function(btn){if(!Ext.isEmpty(cb))cb.call(this,btn=="yes")},s)},open:function(s,p){s=s||{};p=p||{};if(!s.type)this.bookmark=this.editor.selection.getBookmark("simple");s.width=parseInt(s.width||320);s.height=parseInt(s.height||240)+(tinymce.isIE?8:0);s.min_width=parseInt(s.min_width||150);s.min_height=parseInt(s.min_height||100);s.max_width=parseInt(s.max_width||2e3);s.max_height=parseInt(s.max_height||2e3);s.movable=true;s.resizable=true;p.mce_width=s.width;p.mce_height=s.height;p.mce_inline=true;this.features=s;this.params=p;var win=new Ext.Window({title:s.name,width:s.width,height:s.height,minWidth:s.min_width,minHeight:s.min_height,resizable:true,maximizable:s.maximizable,minimizable:s.minimizable,modal:true,stateful:false,constrain:true,manager:this.manager,layout:"fit",items:[new Ext.BoxComponent({autoEl:{tag:"iframe",src:s.url||s.file},style:"border-width: 0px;"})]});p.mce_window_id=win.getId();win.show(null,function(){if(s.left&&s.top)win.setPagePosition(s.left,s.top);var pos=win.getPosition();s.left=pos[0];s.top=pos[1];this.onOpen.dispatch(this,s,p)},this);return win},close:function(win){if(!win.tinyMCEPopup||!win.tinyMCEPopup.id){WindowManager.superclass.close.call(this,win);return}var w=Ext.getCmp(win.tinyMCEPopup.id);if(w){this.onClose.dispatch(this);w.close()}},setTitle:function(win,ti){if(!win.tinyMCEPopup||!win.tinyMCEPopup.id){WindowManager.superclass.setTitle.call(this,win,ti);return}var w=Ext.getCmp(win.tinyMCEPopup.id);if(w)w.setTitle(ti)},resizeBy:function(dw,dh,id){var w=Ext.getCmp(id);if(w){var size=w.getSize();w.setSize(size.width+dw,size.height+dh)}},focus:function(id){var w=Ext.getCmp(id);if(w)w.setActive(true)}});ControlManager=Ext.extend(tinymce.ControlManager,{control:null,constructor:function(control,ed,s){this.control=control;ControlManager.superclass.constructor.call(this,ed,s)},createDropMenu:function(id,s){var res=ControlManager.superclass.createDropMenu.call(this,id,s);var orig=res.showMenu;res.showMenu=function(x,y,px){orig.call(this,x,y,px);Ext.fly("menu_"+this.id).setStyle("z-index",200001)};return res},createColorSplitButton:function(id,s){var res=ControlManager.superclass.createColorSplitButton.call(this,id,s);var orig=res.showMenu;res.showMenu=function(x,y,px){orig.call(this,x,y,px);Ext.fly(this.id+"_menu").setStyle("z-index",200001)};return res}});var s={mode:"none",plugins:Ext.ux.TinyMCE.tinymcePlugins,theme:"advanced"};Ext.apply(s,settings);if(!tinymce.dom.Event.domLoaded)tinymce.dom.Event._pageInit();tinyMCE.init(s);tmceInitialized=true}}});Ext.ComponentMgr.registerType("tinymce",Ext.ux.TinyMCE)})();Ext.ns("Ext.ux.form");Ext.ux.form.DateTime=Ext.extend(Ext.form.Field,{defaultAutoCreate:{tag:"input",type:"hidden"},timeWidth:100,dtSeparator:" ",hiddenFormat:"Y-m-d H:i:s",otherToNow:true,timePosition:"right",dateFormat:"m/d/y",timeFormat:"g:i A",initComponent:function(){Ext.ux.form.DateTime.superclass.initComponent.call(this);var dateConfig=Ext.apply({},{id:this.id+"-date",format:this.dateFormat||Ext.form.DateField.prototype.format,width:this.timeWidth,selectOnFocus:this.selectOnFocus,listeners:{blur:{scope:this,fn:this.onBlur},focus:{scope:this,fn:this.onFocus}}},this.dateConfig);this.df=new Ext.form.DateField(dateConfig);delete this.dateFormat;var timeConfig=Ext.apply({},{id:this.id+"-time",format:this.timeFormat||Ext.form.TimeField.prototype.format,width:this.timeWidth,selectOnFocus:this.selectOnFocus,listeners:{blur:{scope:this,fn:this.onBlur},focus:{scope:this,fn:this.onFocus}}},this.timeConfig);this.tf=new Ext.form.TimeField(timeConfig);delete this.timeFormat;this.relayEvents(this.df,["focus","specialkey","invalid","valid"]);this.relayEvents(this.tf,["focus","specialkey","invalid","valid"])},onRender:function(ct,position){if(this.isRendered)return;Ext.ux.form.DateTime.superclass.onRender.call(this,ct,position);var t;if("bellow"===this.timePosition)t=Ext.DomHelper.append(ct,{tag:"table",style:"border-collapse:collapse",children:[{tag:"tr",children:[{tag:"td",style:"padding-bottom:1px",cls:"ux-datetime-date"}]},{tag:"tr",children:[{tag:"td",cls:"ux-datetime-time"}]}]},true);else t=Ext.DomHelper.append(ct,{tag:"table",style:"border-collapse:collapse",children:[{tag:"tr",children:[{tag:"td",style:"padding-right:4px",cls:"ux-datetime-date"},{tag:"td",cls:"ux-datetime-time"}]}]},true);this.tableEl=t;this.wrap=t.wrap({cls:"x-form-field-wrap"});this.wrap.on("mousedown",this.onMouseDown,this,{delay:10});this.df.render(t.child("td.ux-datetime-date"));this.tf.render(t.child("td.ux-datetime-time"));if(Ext.isIE&&Ext.isStrict)t.select("input").applyStyles({top:0});this.on("specialkey",this.onSpecialKey,this);this.df.el.swallowEvent(["keydown","keypress"]);this.tf.el.swallowEvent(["keydown","keypress"]);if("side"===this.msgTarget){var elp=this.el.findParent(".x-form-element",10,true);this.errorIcon=elp.createChild({cls:"x-form-invalid-icon"});this.df.errorIcon=this.errorIcon;this.tf.errorIcon=this.errorIcon}this.isRendered=true},adjustSize:Ext.BoxComponent.prototype.adjustSize,alignErrorIcon:function(){this.errorIcon.alignTo(this.tableEl,"tl-tr",[2,0])},initDateValue:function(){this.dateValue=this.otherToNow?new Date:new Date(1970,0,1,0,0,0)},disable:function(){if(this.isRendered){this.df.disabled=this.disabled;this.df.onDisable();this.tf.onDisable()}this.disabled=true;this.df.disabled=true;this.tf.disabled=true;this.fireEvent("disable",this);return this},enable:function(){if(this.rendered){this.df.onEnable();this.tf.onEnable()}this.disabled=false;this.df.disabled=false;this.tf.disabled=false;this.fireEvent("enable",this);return this},focus:function(){this.df.focus()},getPositionEl:function(){return this.wrap},getResizeEl:function(){return this.wrap},getValue:function(){return this.dateValue?new Date(this.dateValue):""},isValid:function(){return this.df.isValid()&&this.tf.isValid()},isVisible:function(){return this.df.rendered&&this.df.getActionEl().isVisible()},onBlur:function(f){if(this.wrapClick){f.focus();this.wrapClick=false}if(f===this.df)this.updateDate();else this.updateTime();this.updateHidden();(function(){if(!this.df.hasFocus&&!this.tf.hasFocus){var v=this.getValue();if(String(v)!==String(this.startValue))this.fireEvent("change",this,v,this.startValue);this.hasFocus=false;this.fireEvent("blur",this)}}).defer(100,this)},onFocus:function(){if(!this.hasFocus){this.hasFocus=true;this.startValue=this.getValue();this.fireEvent("focus",this)}},onMouseDown:function(e){this.wrapClick="td"===e.target.nodeName.toLowerCase()},onSpecialKey:function(t,e){var key=e.getKey();if(key==e.TAB){if(t===this.df&&!e.shiftKey){e.stopEvent();this.tf.focus()}if(t===this.tf&&e.shiftKey){e.stopEvent();this.df.focus()}}if(key==e.ENTER)this.updateValue()},setDate:function(date){this.df.setValue(date)},setTime:function(date){this.tf.setValue(date)},setSize:function(w,h){if(!w)return;if("bellow"==this.timePosition){this.df.setSize(w,h);this.tf.setSize(w,h);if(Ext.isIE){this.df.el.up("td").setWidth(w);this.tf.el.up("td").setWidth(w)}}else{this.df.setSize(w-this.timeWidth-4,h);this.tf.setSize(this.timeWidth,h);if(Ext.isIE){this.df.el.up("td").setWidth(w-this.timeWidth-4);this.tf.el.up("td").setWidth(this.timeWidth)}}},setValue:function(val){if(!val&&true===this.emptyToNow){this.setValue(new Date);return}else if(!val){this.setDate("");this.setTime("");this.updateValue();return}val=val?val:new Date(1970,0,1,0,0,0);var da,time;if(val instanceof Date){this.setDate(val);this.setTime(val);this.dateValue=new Date(val)}else{da=val.split(this.dtSeparator);this.setDate(da[0]);if(da[1])this.setTime(da[1])}this.updateValue()},setVisible:function(visible){if(visible){this.df.show();this.tf.show()}else{this.df.hide();this.tf.hide()}return this},show:function(){return this.setVisible(true)},hide:function(){return this.setVisible(false)},updateDate:function(){var d=this.df.getValue();if(d){if(!(this.dateValue instanceof Date)){this.initDateValue();if(!this.tf.getValue())this.setTime(this.dateValue)}this.dateValue.setMonth(0);this.dateValue.setFullYear(d.getFullYear());this.dateValue.setMonth(d.getMonth());this.dateValue.setDate(d.getDate())}else{this.dateValue="";this.setTime("")}},updateTime:function(){var t=this.tf.getValue();if(t&&!(t instanceof Date))t=Date.parseDate(t,this.tf.format);if(t&&!this.df.getValue()){this.initDateValue();this.setDate(this.dateValue)}if(this.dateValue instanceof Date)if(t){this.dateValue.setHours(t.getHours());this.dateValue.setMinutes(t.getMinutes());this.dateValue.setSeconds(t.getSeconds())}else{this.dateValue.setHours(0);this.dateValue.setMinutes(0);this.dateValue.setSeconds(0)}},updateHidden:function(){if(this.isRendered){var value=this.dateValue instanceof Date?this.dateValue.format(this.hiddenFormat):"";this.el.dom.value=value}},updateValue:function(){this.updateDate();this.updateTime();this.updateHidden();return},validate:function(){return this.df.validate()&&this.tf.validate()},renderer:function(field){var format=field.editor.dateFormat||Ext.ux.form.DateTime.prototype.dateFormat;format+=" "+(field.editor.timeFormat||Ext.ux.form.DateTime.prototype.timeFormat);var renderer=function(val){var retval=Ext.util.Format.date(val,format);return retval};return renderer}});Ext.reg("xdatetime",Ext.ux.form.DateTime);Ext.namespace("Ext.ux.form");Ext.ux.form.BrowseButton=Ext.extend(Ext.Button,{inputFileName:"file",debug:false,FLOAT_EL_WIDTH:60,FLOAT_EL_HEIGHT:18,buttonCt:null,clipEl:null,floatEl:null,inputFileEl:null,originalHandler:null,originalScope:null,initComponent:function(){Ext.ux.form.BrowseButton.superclass.initComponent.call(this);this.originalHandler=this.handler||null;this.originalScope=this.scope||window;this.handler=null;this.scope=null},onRender:function(ct,position){Ext.ux.form.BrowseButton.superclass.onRender.call(this,ct,position);this.buttonCt=this.el.child(".x-btn-center em");this.buttonCt.position("relative");var styleCfg={position:"absolute",overflow:"hidden",top:"0px",left:"0px"};if(Ext.isIE)Ext.apply(styleCfg,{left:"-3px",top:"-3px"});else if(Ext.isGecko)Ext.apply(styleCfg,{left:"-3px",top:"-3px"});else if(Ext.isSafari)Ext.apply(styleCfg,{left:"-4px",top:"-2px"});this.clipEl=this.buttonCt.createChild({tag:"div",style:styleCfg});this.setClipSize();this.clipEl.on({mousemove:this.onButtonMouseMove,mouseover:this.onButtonMouseMove,scope:this});this.floatEl=this.clipEl.createChild({tag:"div",style:{position:"absolute",width:this.FLOAT_EL_WIDTH+"px",height:this.FLOAT_EL_HEIGHT+"px",overflow:"hidden"}});if(this.debug){this.clipEl.applyStyles({"background-color":"green"});this.floatEl.applyStyles({"background-color":"red"})}else this.clipEl.setOpacity(0);this.createInputFile()},setClipSize:function(){if(this.clipEl){var width=this.buttonCt.getWidth();var height=this.buttonCt.getHeight();if(Ext.isIE){width=width+5;height=height+5}else if(Ext.isGecko){width=width+6;height=height+6}else if(Ext.isSafari){width=width+6;height=height+6}this.clipEl.setSize(width,height)}},createInputFile:function(){this.inputFileEl=this.floatEl.createChild({tag:"input",type:"file",size:1,name:this.inputFileName||Ext.id(this.el),style:{position:"absolute",cursor:"pointer",right:"0px",top:"0px"}});this.inputFileEl=this.inputFileEl.child("input")||this.inputFileEl;this.inputFileEl.on({click:this.onInputFileClick,change:this.onInputFileChange,scope:this});if(this.tooltip)if(typeof this.tooltip=="object")Ext.QuickTips.register(Ext.apply({target:this.inputFileEl},this.tooltip));else this.inputFileEl.dom[this.tooltipType]=this.tooltip},onButtonMouseMove:function(e){var xy=e.getXY();xy[0]-=this.FLOAT_EL_WIDTH/2;xy[1]-=this.FLOAT_EL_HEIGHT/2;this.floatEl.setXY(xy)},onInputFileClick:function(e){e.stopPropagation()},onInputFileChange:function(){if(this.originalHandler)this.originalHandler.call(this.originalScope,this)},detachInputFile:function(noCreate){var result=this.inputFileEl;if(typeof this.tooltip=="object")Ext.QuickTips.unregister(this.inputFileEl);else this.inputFileEl.dom[this.tooltipType]=null;this.inputFileEl.removeAllListeners();this.inputFileEl=null;if(!noCreate)this.createInputFile();return result},getInputFile:function(){return this.inputFileEl},disable:function(){Ext.ux.form.BrowseButton.superclass.disable.call(this);this.inputFileEl.dom.disabled=true},enable:function(){Ext.ux.form.BrowseButton.superclass.enable.call(this);this.inputFileEl.dom.disabled=false}});Ext.reg("browsebutton",Ext.ux.form.BrowseButton);Ext.ux.FileUploader=function(config){Ext.apply(this,config);Ext.ux.FileUploader.superclass.constructor.apply(this,arguments);this.addEvents("beforeallstart","allfinished","beforefilestart","filefinished","progress")};Ext.extend(Ext.ux.FileUploader,Ext.util.Observable,{baseParams:{cmd:"upload",dir:"."},concurrent:true,enableProgress:true,jsonErrorText:"Cannot decode JSON object",maxFileSize:524288,progressIdName:"UPLOAD_IDENTIFIER",progressInterval:2e3,progressUrl:"progress.php",progressMap:{bytes_total:"bytesTotal",bytes_uploaded:"bytesUploaded",est_sec:"estSec",files_uploaded:"filesUploaded",speed_average:"speedAverage",speed_last:"speedLast",time_last:"timeLast",time_start:"timeStart"},singleUpload:false,unknownErrorText:"Unknown error",upCount:0,createForm:function(record){var progressId=parseInt(Math.random()*1e10,10);var form=Ext.getBody().createChild({tag:"form",action:this.url,method:"post",cls:"x-hidden",id:Ext.id(),cn:[{tag:"input",type:"hidden",name:"APC_UPLOAD_PROGRESS",value:progressId},{tag:"input",type:"hidden",name:this.progressIdName,value:progressId},{tag:"input",type:"hidden",name:"MAX_FILE_SIZE",value:this.maxFileSize}]});if(record){record.set("form",form);record.set("progressId",progressId)}else this.progressId=progressId;return form},deleteForm:function(form,record){form.remove();if(record)record.set("form",null)},fireFinishEvents:function(options){if(true!==this.eventsSuspended&&!this.singleUpload)this.fireEvent("filefinished",this,options&&options.record);if(true!==this.eventsSuspended&&0===this.upCount){this.stopProgress();this.fireEvent("allfinished",this)}},getIframe:function(record){var iframe=null;var form=record.get("form");if(form&&form.dom&&form.dom.target)iframe=Ext.get(form.dom.target);return iframe},getOptions:function(record,params){var o={url:this.url,method:"post",isUpload:true,scope:this,callback:this.uploadCallback,record:record,params:this.getParams(record,params)};return o},getParams:function(record,params){var p={path:this.path};Ext.apply(p,this.baseParams||{},params||{});return p},processSuccess:function(options,response,o){var record=false;if(this.singleUpload)this.store.each(function(r){r.set("state","done");r.set("error","");r.commit()});else{record=options.record;record.set("state","done");record.set("error","");record.commit()}this.deleteForm(options.form,record)},processFailure:function(options,response,error){var record=options.record;var records;if(this.singleUpload){records=this.store.queryBy(function(r){return"done"!==r.get("state")});records.each(function(record){var e=error.errors?error.errors[record.id]:this.unknownErrorText;if(e){record.set("state","failed");record.set("error",e);Ext.getBody().appendChild(record.get("input"))}else{record.set("state","done");record.set("error","")}record.commit()},this);this.deleteForm(options.form)}else{if(error&&"object"===Ext.type(error))record.set("error",error.errors&&error.errors[record.id]?error.errors[record.id]:this.unknownErrorText);else if(error)record.set("error",error);else if(response&&response.responseText)record.set("error",response.responseText);else record.set("error",this.unknownErrorText);record.set("state","failed");record.commit()}},requestProgress:function(){var records,p;var o={url:this.progressUrl,method:"post",params:{},scope:this,callback:function(options,success,response){var o;if(true!==success)return;try{o=Ext.decode(response.responseText)}catch(e){return}if("object"!==Ext.type(o)||true!==o.success)return;if(this.singleUpload){this.progress={};for(p in o)if(this.progressMap[p])this.progress[this.progressMap[p]]=parseInt(o[p],10);if(true!==this.eventsSuspended)this.fireEvent("progress",this,this.progress)}else{for(p in o)if(this.progressMap[p]&&options.record)options.record.set(this.progressMap[p],parseInt(o[p],10));if(options.record){options.record.commit();if(true!==this.eventsSuspended)this.fireEvent("progress",this,options.record.data,options.record)}}this.progressTask.delay(this.progressInterval)}};if(this.singleUpload){o.params[this.progressIdName]=this.progressId;o.params.APC_UPLOAD_PROGRESS=this.progressId;Ext.Ajax.request(o)}else{records=this.store.query("state","uploading");records.each(function(r){o.params[this.progressIdName]=r.get("progressId");o.params.APC_UPLOAD_PROGRESS=o.params[this.progressIdName];o.record=r;(function(){Ext.Ajax.request(o)}).defer(250)},this)}},setPath:function(path){this.path=path},setUrl:function(url){this.url=url},startProgress:function(){if(!this.progressTask)this.progressTask=new Ext.util.DelayedTask(this.requestProgress,this);this.progressTask.delay.defer(this.progressInterval/2,this.progressTask,[this.progressInterval])},stopProgress:function(){if(this.progressTask)this.progressTask.cancel()},stopAll:function(){var records=this.store.query("state","uploading");records.each(this.stopUpload,this)},stopUpload:function(record){var iframe=false;if(record){iframe=this.getIframe(record);this.stopIframe(iframe);this.upCount--;this.upCount=0>this.upCount?0:this.upCount;record.set("state","stopped");this.fireFinishEvents({record:record})}else if(this.form){iframe=Ext.fly(this.form.dom.target);this.stopIframe(iframe);this.upCount=0;this.fireFinishEvents()}},stopIframe:function(iframe){if(iframe)try{iframe.dom.contentWindow.stop();iframe.remove.defer(250,iframe)}catch(e){}},upload:function(){var records=this.store.queryBy(function(r){return"done"!==r.get("state")});if(!records.getCount())return;if(true!==this.eventsSuspended&&false===this.fireEvent("beforeallstart",this))return;if(this.singleUpload)this.uploadSingle();else records.each(this.uploadFile,this);if(true===this.enableProgress)this.startProgress()},uploadCallback:function(options,success,response){var o;this.upCount--;this.form=false;if(true===success){try{o=Ext.decode(response.responseText)}catch(e){this.processFailure(options,response,this.jsonErrorText);this.fireFinishEvents(options);return}if(true===o.success)this.processSuccess(options,response,o);else this.processFailure(options,response,o)}else this.processFailure(options,response);this.fireFinishEvents(options)},uploadFile:function(record,params){if(true!==this.eventsSuspended&&false===this.fireEvent("beforefilestart",this,record))return;var form=this.createForm(record);var inp=record.get("input");inp.set({name:inp.id});form.appendChild(inp);var o=this.getOptions(record,params);o.form=form;record.set("state","uploading");record.set("pctComplete",0);this.upCount++;Ext.Ajax.request(o);this.getIframe.defer(100,this,[record])},uploadSingle:function(){var records=this.store.queryBy(function(r){return"done"!==r.get("state")});if(!records.getCount())return;var form=this.createForm();records.each(function(record){var inp=record.get("input");inp.set({name:inp.id});form.appendChild(inp);record.set("state","uploading")},this);var o=this.getOptions();o.form=form;this.form=form;this.upCount++;Ext.Ajax.request(o)}});Ext.reg("fileuploader",Ext.ux.FileUploader);Ext.ux.UploadPanel=Ext.extend(Ext.Panel,{addIconCls:"icon-plus",addText:"Add",bodyStyle:"padding:2px",buttonsAt:"tbar",clickRemoveText:"Click to remove",clickStopText:"Click to stop",emptyText:"No files",enableProgress:true,errorText:"Error",fileCls:"file",fileQueuedText:"File <b>{0}</b> is queued for upload",fileDoneText:"File <b>{0}</b> has been successfully uploaded",fileFailedText:"File <b>{0}</b> failed to upload",fileStoppedText:"File <b>{0}</b> stopped by user",fileUploadingText:"Uploading file <b>{0}</b>",maxFileSize:524288,maxLength:18,removeAllIconCls:"icon-cross",removeAllText:"Remove All",removeIconCls:"icon-minus",removeText:"Remove",selectedClass:"ux-up-item-selected",singleUpload:false,stopAllText:"Stop All",stopIconCls:"icon-stop",uploadText:"Upload",uploadIconCls:"icon-upload",workingIconCls:"icon-working",initComponent:function(){var addCfg={xtype:"browsebutton",text:this.addText+"...",iconCls:this.addIconCls,scope:this,handler:this.onAddFile};var upCfg={xtype:"button",iconCls:this.uploadIconCls,text:this.uploadText,scope:this,handler:this.onUpload,disabled:true};var removeAllCfg={xtype:"button",iconCls:this.removeAllIconCls,tooltip:this.removeAllText,scope:this,handler:this.onRemoveAllClick,disabled:true};if("body"!==this.buttonsAt)this[this.buttonsAt]=[addCfg,upCfg,"->",removeAllCfg];var fields=[{name:"id",type:"text",system:true},{name:"shortName",type:"text",system:true},{name:"fileName",type:"text",system:true},{name:"filePath",type:"text",system:true},{name:"fileCls",type:"text",system:true},{name:"input",system:true},{name:"form",system:true},{name:"state",type:"text",system:true},{name:"error",type:"text",system:true},{name:"progressId",type:"int",system:true},{name:"bytesTotal",type:"int",system:true},{name:"bytesUploaded",type:"int",system:true},{name:"estSec",type:"int",system:true},{name:"filesUploaded",type:"int",system:true},{name:"speedAverage",type:"int",system:true},{name:"speedLast",type:"int",system:true},{name:"timeLast",type:"int",system:true},{name:"timeStart",type:"int",system:true},{name:"pctComplete",type:"int",system:true}];if(Ext.isArray(this.customFields))fields.push(this.customFields);this.store=new Ext.data.SimpleStore({id:0,fields:fields,data:[]});Ext.apply(this,{items:[{xtype:"dataview",itemSelector:"div.ux-up-item",store:this.store,selectedClass:this.selectedClass,singleSelect:true,emptyText:this.emptyText,tpl:this.tpl||new Ext.XTemplate('<tpl for=".">'+'<div class="ux-up-item">'+'<div class="ux-up-icon-file {fileCls}">&#160;</div>'+'<div class="ux-up-text x-unselectable" qtip="{fileName}">{shortName}</div>'+'<div id="remove-{[values.input.id]}" class="ux-up-icon-state ux-up-icon-{state}"'+'qtip="{[this.scope.getQtip(values)]}">&#160;</div>'+"</div>"+"</tpl>",{scope:this}),listeners:{click:{scope:this,fn:this.onViewClick}}}]});Ext.ux.UploadPanel.superclass.initComponent.apply(this,arguments);this.view=this.items.itemAt(0);this.addEvents("beforefileadd","fileadd","beforefileremove","fileremove","beforequeueclear","queueclear","beforeupload");this.relayEvents(this.view,["beforeclick","beforeselect","click","containerclick","contextmenu","dblclick","selectionchange"]);var config={store:this.store,singleUpload:this.singleUpload,maxFileSize:this.maxFileSize,enableProgress:this.enableProgress,url:this.url,path:this.path};if(this.baseParams)config.baseParams=this.baseParams;this.uploader=new Ext.ux.FileUploader(config);this.relayEvents(this.uploader,["beforeallstart","allfinished","progress"]);this.on({beforeallstart:{scope:this,fn:function(){this.uploading=true;this.updateButtons()}},allfinished:{scope:this,fn:function(){this.uploading=false;this.updateButtons()}},progress:{fn:this.onProgress.createDelegate(this)}})},onRender:function(){Ext.ux.UploadPanel.superclass.onRender.apply(this,arguments);var tb="tbar"===this.buttonsAt?this.getTopToolbar():this.getBottomToolbar();this.addBtn=Ext.getCmp(tb.items.first().id);this.uploadBtn=Ext.getCmp(tb.items.itemAt(1).id);this.removeAllBtn=Ext.getCmp(tb.items.last().id)},getQtip:function(values){var qtip="";switch(values.state){case"queued":qtip=String.format(this.fileQueuedText,values.fileName);qtip+="<br>"+this.clickRemoveText;break;case"uploading":qtip=String.format(this.fileUploadingText,values.fileName);qtip+="<br>"+values.pctComplete+"% done";qtip+="<br>"+this.clickStopText;break;case"done":qtip=String.format(this.fileDoneText,values.fileName);qtip+="<br>"+this.clickRemoveText;break;case"failed":qtip=String.format(this.fileFailedText,values.fileName);qtip+="<br>"+this.errorText+":"+values.error;qtip+="<br>"+this.clickRemoveText;break;case"stopped":qtip=String.format(this.fileStoppedText,values.fileName);qtip+="<br>"+this.clickRemoveText;break}return qtip},getFileName:function(inp){return inp.getValue().split(/[\/\\]/).pop()},getFilePath:function(inp){return inp.getValue().replace(/[^\/\\]+$/,"")},getFileCls:function(name){var atmp=name.split(".");if(1===atmp.length)return this.fileCls;else return this.fileCls+"-"+atmp.pop().toLowerCase()},onAddFile:function(bb){if(true!==this.eventsSuspended&&false===this.fireEvent("beforefileadd",this,bb.getInputFile()))return;var inp=bb.detachInputFile();inp.addClass("x-hidden");var fileName=this.getFileName(inp);var rec=new this.store.recordType({input:inp,fileName:fileName,filePath:this.getFilePath(inp),shortName:Ext.util.Format.ellipsis(fileName,this.maxLength),fileCls:this.getFileCls(fileName),state:"queued"},inp.id);rec.commit();this.store.add(rec);this.syncShadow();this.uploadBtn.enable();this.removeAllBtn.enable();if(true!==this.eventsSuspended)this.fireEvent("fileadd",this,this.store,rec);this.doLayout()},onDestroy:function(){if(this.uploader){this.uploader.stopAll();this.uploader.purgeListeners();this.uploader=null}if(this.view){this.view.purgeListeners();this.view.destroy();this.view=null}if(this.store){this.store.purgeListeners();this.store.destroy();this.store=null}},onProgress:function(uploader,data,record){var bytesTotal,bytesUploaded,pctComplete,state,idx,item,width,pgWidth;if(record){state=record.get("state");bytesTotal=record.get("bytesTotal")||1;bytesUploaded=record.get("bytesUploaded")||0;if("uploading"===state)pctComplete=Math.round(1e3*bytesUploaded/bytesTotal)/10;else if("done"===state)pctComplete=100;else pctComplete=0;record.set("pctComplete",pctComplete);idx=this.store.indexOf(record);item=Ext.get(this.view.getNode(idx));if(item){width=item.getWidth();item.applyStyles({"background-position":width*pctComplete/100+"px"})}}},onRemoveFile:function(record){if(true!==this.eventsSuspended&&false===this.fireEvent("beforefileremove",this,this.store,record))return;var inp=record.get("input");var wrap=inp.up("em");inp.remove();if(wrap)wrap.remove();this.store.remove(record);var count=this.store.getCount();this.uploadBtn.setDisabled(!count);this.removeAllBtn.setDisabled(!count);if(true!==this.eventsSuspended){this.fireEvent("fileremove",this,this.store);this.syncShadow()}},onRemoveAllClick:function(btn){if(true===this.uploading)this.stopAll();else this.removeAll()},stopAll:function(){this.uploader.stopAll()},onViewClick:function(view,index,node,e){var t=e.getTarget("div:any(.ux-up-icon-queued|.ux-up-icon-failed|.ux-up-icon-done|.ux-up-icon-stopped)");if(t)this.onRemoveFile(this.store.getAt(index));t=e.getTarget("div.ux-up-icon-uploading");if(t)this.uploader.stopUpload(this.store.getAt(index))},onUpload:function(){if(true!==this.eventsSuspended&&false===this.fireEvent("beforeupload",this))return false;this.uploader.upload()},setUrl:function(url){this.url=url;this.uploader.setUrl(url)},setPath:function(path){this.uploader.setPath(path)},updateButtons:function(){if(true===this.uploading){this.addBtn.disable();this.uploadBtn.disable();this.removeAllBtn.setIconClass(this.stopIconCls);this.removeAllBtn.getEl().child(this.removeAllBtn.buttonSelector).dom[this.removeAllBtn.tooltipType]=this.stopAllText}else{this.addBtn.enable();this.uploadBtn.enable();this.removeAllBtn.setIconClass(this.removeAllIconCls);this.removeAllBtn.getEl().child(this.removeAllBtn.buttonSelector).dom[this.removeAllBtn.tooltipType]=this.removeAllText}},removeAll:function(){var suspendState=this.eventsSuspended;if(false!==this.eventsSuspended&&false===this.fireEvent("beforequeueclear",this,this.store))return false;this.suspendEvents();this.store.each(this.onRemoveFile,this);this.eventsSuspended=suspendState;if(true!==this.eventsSuspended)this.fireEvent("queueclear",this,this.store);this.syncShadow()},syncShadow:function(){if(this.contextmenu&&this.contextmenu.shadow)this.contextmenu.getEl().shadow.show(this.contextmenu.getEl())}});Ext.reg("uploadpanel",Ext.ux.UploadPanel);Ext.ux.FileTreeMenu=function(config){config=config||{};var uploadPanelConfig={contextmenu:this,buttonsAt:config.buttonsAt||"tbar",singleUpload:config.singleUpload||false,maxFileSize:config.maxFileSize,enableProgress:config.enableProgress};if(config.baseParams){config.baseParams.cmd=config.baseParams.cmd||"upload";config.baseParams.dir=config.baseParams.dir||".";uploadPanelConfig.baseParams=config.baseParams}Ext.apply(config,{items:[{text:"&#160",cls:"ux-ftm-nodename",disabledClass:"",disabled:true,cmd:"nodename"},{text:this.openText+" (Enter)",iconCls:this.openIconCls,cmd:"open",menu:{items:[{text:this.openSelfText,iconCls:this.openSelfIconCls,cmd:"open-self"},{text:this.openPopupText,iconCls:this.openPopupIconCls,cmd:"open-popup"},{text:this.openBlankText,iconCls:this.openBlankIconCls,cmd:"open-blank"},{text:this.openDwnldText,iconCls:this.openDwnldIconCls,cmd:"open-dwnld"}]}},new Ext.menu.Separator({cmd:"sep-open"}),{text:this.reloadText+" (Ctrl+E)",iconCls:this.reloadIconCls,cmd:"reload"},{text:this.expandText+" (Ctrl+&nbsp;&rarr;)",iconCls:this.expandIconCls,cmd:"expand"},{text:this.collapseText+" (Ctrl+&nbsp;&larr;)",iconCls:this.collapseIconCls,cmd:"collapse"},new Ext.menu.Separator({cmd:"sep-collapse"}),{text:this.renameText+" (F2)",iconCls:this.renameIconCls,cmd:"rename"},{text:this.deleteText+" ("+this.deleteKeyName+")",iconCls:this.deleteIconCls,cmd:"delete"},{text:this.newdirText+"... (Ctrl+N)",iconCls:this.newdirIconCls,cmd:"newdir"},new Ext.menu.Separator({cmd:"sep-upload"}),{text:this.uploadFileText+" (Ctrl+U)",iconCls:this.uploadIconCls,hideOnClick:false,cmd:"upload"},new Ext.menu.Adapter(new Ext.ux.UploadPanel(uploadPanelConfig),{hideOnClick:false,cmd:"upload-panel"})]});Ext.ux.FileTreeMenu.superclass.constructor.call(this,config);this.relayEvents(this.getItemByCmd("open").menu,["click","itemclick"])};Ext.extend(Ext.ux.FileTreeMenu,Ext.menu.Menu,{collapseIconCls:"icon-collapse-all",collapseText:"Collapse all",deleteIconCls:"icon-cross",deleteKeyName:"Delete Key",deleteText:"Delete",expandIconCls:"icon-expand-all",expandText:"Expand all",newdirIconCls:"icon-folder-add",newdirText:"New folder",openBlankIconCls:"icon-open-blank",openBlankText:"Open in new window",openDwnldIconCls:"icon-open-download",openDwnldText:"Download",openIconCls:"icon-open",openPopupIconCls:"icon-open-popup",openPopupText:"Open in popup",openSelfIconCls:"icon-open-self",openSelfText:"Open in this window",openText:"Open",reloadIconCls:"icon-refresh",reloadText:'R<span style="text-decoration:underline">e</span>load',renameIconCls:"icon-pencil",renameText:"Rename",uploadFileText:'<span style="text-decoration:underline">U</span>pload file',uploadIconCls:"icon-upload",uploadText:"Upload",width:190,getItemByCmd:function(cmd){var open;var item=this.items.find(function(i){return cmd===i.cmd});if(!item){open=this.items.find(function(i){return"open"===i.cmd});if(!open)return null;item=open.menu.items.find(function(i){return cmd===i.cmd})}return item},setItemDisabled:function(cmd,disabled){var item=this.getItemByCmd(cmd);if(item)item.setDisabled(disabled)},beforeDestroy:function(){var uploadPanel=this.getItemByCmd("upload-panel");if(uploadPanel&&uploadPanel.component){uploadPanel.component.purgeListeners();uploadPanel.component.destroy();uploadPanel.component=null}}});Ext.reg("filetreemenu",Ext.ux.FileTreeMenu);Ext.ux.FileTreePanel=Ext.extend(Ext.tree.TreePanel,{confirmText:"Confirm",containerScroll:true,deleteText:"Delete",enableDD:true,enableDelete:true,enableNewDir:true,enableOpen:true,enableProgress:true,enableRename:true,enableSort:true,enableUpload:true,errorText:"Error",existsText:"File <b>{0}</b> already exists",expandOnRender:true,fileCls:"file",fileText:"File",focusPopup:true,folderSort:true,hrefPrefix:"",hrefSuffix:"",layout:"fit",loadingText:"Loading",loadMask:false,maxFileSize:524288,maxMsgLen:2e3,method:"post",newdirText:"New Folder",openMode:"popup",overwriteText:"Do you want to overwrite it?",popupFeatures:"width=800,height=600,dependent=1,scrollbars=1,resizable=1,toolbar=1",readOnly:false,reallyWantText:"Do you really want to",rootPath:"root",rootText:"Tree Root",selectOnEdit:true,singleUpload:false,topMenu:false,url:"filetree.php",initComponent:function(){Ext.apply(this,{root:new Ext.tree.AsyncTreeNode({text:this.rootText,path:this.rootPath,allowDrag:false}),treeEditor:!this.readOnly?new Ext.tree.TreeEditor(this,{allowBlank:false,cancelOnEsc:true,completeOnEnter:true,ignoreNoChange:true,selectOnFocus:this.selectOnEdit}):undefined,dropConfig:this.dropConfig?this.dropConfig:{ddGroup:this.ddGroup||"TreeDD",appendOnly:this.enableSort,expandDelay:36e5},treeSorter:this.enableSort?new Ext.tree.TreeSorter(this,{folderSort:this.folderSort}):undefined,keys:[{key:Ext.EventObject.ENTER,scope:this,fn:function(key,e){var sm=this.getSelectionModel();var node=sm.getSelectedNode();if(node&&0!==node.getDepth()&&node.isLeaf())this.openNode(node)}},{key:113,scope:this,fn:function(key,e){var sm=this.getSelectionModel();var node=sm.getSelectedNode();if(node&&0!==node.getDepth()&&this.enableRename&&this.readOnly!==true)this.treeEditor.triggerEdit(node)}},{key:46,stopEvent:true,scope:this,fn:function(key,e){var sm=this.getSelectionModel();var node=sm.getSelectedNode();if(node&&0!==node.getDepth()&&this.enableDelete&&this.readOnly!==true)this.deleteNode(node)}},{key:69,ctrl:true,stopEvent:true,scope:this,fn:function(key,e){var sm=this.getSelectionModel();var node=sm.getSelectedNode();if(node){node=node.isLeaf()?node.parentNode:node;sm.select(node);node.reload()}}},{key:39,ctrl:true,stopEvent:true,scope:this,fn:function(key,e){var sm=this.getSelectionModel();var node=sm.getSelectedNode();if(node&&!node.isLeaf()){sm.select(node);node.expand.defer(1,node,[true])}}},{key:37,ctrl:true,scope:this,stopEvent:true,fn:function(key,e){var sm=this.getSelectionModel();var node=sm.getSelectedNode();if(node&&!node.isLeaf()){sm.select(node);node.collapse.defer(1,node,[true])}}},{key:78,ctrl:true,scope:this,stopEvent:true,fn:function(key,e){var sm,node;sm=this.getSelectionModel();node=sm.getSelectedNode();if(node&&this.enableNewDir&&this.readOnly!==true){node=node.isLeaf()?node.parentNode:node;this.createNewDir(node)}}}]});if(!this.loader)this.loader=new Ext.tree.TreeLoader({url:this.url,baseParams:{cmd:"get"},listeners:{beforeload:{scope:this,fn:function(loader,node){loader.baseParams.path=this.getPath(node)}}}});if(true===this.topMenu)this.tbar=[{text:this.fileText,disabled:true,scope:this,menu:this.getContextMenu()}];Ext.ux.FileTreePanel.superclass.initComponent.apply(this,arguments);if(this.treeEditor){this.treeEditor.beforeNodeClick=function(node,e){return true};this.treeEditor.on({complete:{scope:this,fn:this.onEditComplete},beforecomplete:{scope:this,fn:this.onBeforeEditComplete}})}this.on({contextmenu:{scope:this,fn:this.onContextMenu,stopEvent:true},dblclick:{scope:this,fn:this.onDblClick},beforenodedrop:{scope:this,fn:this.onBeforeNodeDrop},nodedrop:{scope:this,fn:this.onNodeDrop},nodedragover:{scope:this,fn:this.onNodeDragOver}});this.addEvents("beforeopen","open","beforerename","rename","renamefailure","beforedelete","delete","deletefailure","beforenewdir","newdir","newdirfailure")},onRender:function(){Ext.ux.FileTreePanel.superclass.onRender.apply(this,arguments);if(true===this.topMenu){this.topMenu=Ext.getCmp(this.getTopToolbar().items.itemAt(0).id);this.getSelectionModel().on({scope:this,selectionchange:function(sm,node){var disable=node?false:true;disable=disable||this.readOnly;this.topMenu.setDisabled(disable)}});Ext.apply(this.topMenu,{showMenu:function(){this.showContextMenu(false)}.createDelegate(this)})}if(this.expandOnRender)this.root.expand();this.el.on({contextmenu:{fn:function(){return false},stopEvent:true}});if(true===this.loadMask)this.loader.on({scope:this.el,beforeload:this.el.mask.createDelegate(this.el,[this.loadingText+"..."]),load:this.el.unmask,loadexception:this.el.unmask})},cmdCallback:function(options,success,response){var i,o,node;var showMsg=true;if(true===success){try{o=Ext.decode(response.responseText)}catch(ex){this.showError(response.responseText)}if(true===o.success)switch(options.params.cmd){case"delete":if(true!==this.eventsSuspended)this.fireEvent("delete",this,this.getPath(options.node));options.node.parentNode.removeChild(options.node);break;case"newdir":if(true!==this.eventsSuspended)this.fireEvent("newdir",this,options.node);break;case"rename":this.updateCls(options.node,options.params.oldname);if(true!==this.eventsSuspended)this.fireEvent("rename",this,options.node,options.params.newname,options.params.oldname);break}else{switch(options.params.cmd){case"rename":if(options.oldParent)options.oldParent.appendChild(options.node);else options.node.setText(options.oldName);if(options.e)options.e.failure=true;if(true!==this.eventsSuspended)this.fireEvent("renamefailure",this,options.node,options.params.newname,options.params.oldname);break;case"newdir":if(false!==this.eventsSuspended)this.fireEvent("newdirfailure",this,options.params.dir);options.node.parentNode.removeChild(options.node);break;case"delete":if(true!==this.eventsSuspended)this.fireEvent("deletefailure",this,options.node);options.node.parentNode.reload.defer(1,options.node.parentNode);break;default:this.root.reload();break}this.showError(o.error||response.responseText)}}else this.showError(response.responseText)},confirmOverwrite:function(filename,callback,scope){Ext.Msg.show({title:this.confirmText,msg:String.format(this.existsText,filename)+". "+this.overwriteText,icon:Ext.Msg.QUESTION,buttons:Ext.Msg.YESNO,fn:callback.createDelegate(scope||this)})},createNewDir:function(node){if(true!==this.eventsSuspended&&false===this.fireEvent("beforenewdir",this,node))return;var treeEditor=this.treeEditor;var newNode;var appendNode=node.isLeaf()?node.parentNode:node;appendNode.expand(false,false,function(n){newNode=n.appendChild(new Ext.tree.AsyncTreeNode({text:this.newdirText,iconCls:"folder"}));treeEditor.on({complete:{scope:this,single:true,fn:this.onNewDir}});treeEditor.creatingNewDir=true;(function(){treeEditor.triggerEdit(newNode)}).defer(10)}.createDelegate(this))},deleteNode:function(node){if(true!==this.eventsSuspended&&false===this.fireEvent("beforedelete",this,node))return;Ext.Msg.show({title:this.deleteText,msg:this.reallyWantText+" "+this.deleteText.toLowerCase()+" <b>"+node.text+"</b>?",icon:Ext.Msg.WARNING,buttons:Ext.Msg.YESNO,scope:this,fn:function(response){if("yes"!==response){this.getEl().dom.focus();return}var options={url:this.deleteUrl||this.url,method:this.method,scope:this,callback:this.cmdCallback,node:node,params:{cmd:"delete",file:this.getPath(node)}};Ext.Ajax.request(options)}})},downloadFile:function(path){var id=Ext.id();var frame=document.createElement("iframe");frame.id=id;frame.name=id;frame.className="x-hidden";if(Ext.isIE)frame.src=Ext.SSL_SECURE_URL;document.body.appendChild(frame);if(Ext.isIE)document.frames[id].name=id;var form=Ext.DomHelper.append(document.body,{tag:"form",method:"post",action:this.downloadUrl||this.url,target:id});document.body.appendChild(form);var hidden;hidden=document.createElement("input");hidden.type="hidden";hidden.name="cmd";hidden.value="download";form.appendChild(hidden);hidden=document.createElement("input");hidden.type="hidden";hidden.name="path";hidden.value=path;form.appendChild(hidden);var callback=function(){Ext.EventManager.removeListener(frame,"load",callback,this);setTimeout(function(){document.body.removeChild(form)},100);setTimeout(function(){document.body.removeChild(frame)},110)};Ext.EventManager.on(frame,"load",callback,this);form.submit()},getContextMenu:function(){if(!this.contextmenu){var config={singleUpload:this.singleUpload,maxFileSize:this.maxFileSize,enableProgress:this.enableProgress};if(this.baseParams)config.baseParams=this.baseParams;this.contextmenu=new Ext.ux.FileTreeMenu(config);this.contextmenu.on({click:{scope:this,fn:this.onContextClick}});this.uploadPanel=this.contextmenu.getItemByCmd("upload-panel").component;this.uploadPanel.on({beforeupload:{scope:this,fn:this.onBeforeUpload},allfinished:{scope:this,fn:this.onAllFinished}});this.uploadPanel.setUrl(this.uploadUrl||this.url)}return this.contextmenu},getFileCls:function(name){var atmp=name.split(".");if(1===atmp.length)return this.fileCls;else return this.fileCls+"-"+atmp.pop().toLowerCase()},getPath:function(node){var path,p,a;if(node!==this.root){p=node.parentNode;a=[node.text];while(p&&p!==this.root){a.unshift(p.text);p=p.parentNode}a.unshift(this.root.attributes.path||"");path=a.join(this.pathSeparator)}else path=node.attributes.path||"";path=path.replace(/^[\/\.]*/,"");return path},hasChild:function(node,childName){return(node.isLeaf()?node.parentNode:node).findChild("text",childName)!==null},hideContextMenu:function(){if(this.contextmenu&&this.contextmenu.isVisible())this.contextmenu.hide();return this},onBeforeEditComplete:function(editor,newName,oldName){if(editor.cancellingEdit){editor.cancellingEdit=false;return}var oldPath=this.getPath(editor.editNode);var newPath=oldPath.replace(/\/[^\\]+$/,"/"+newName);if(false===this.fireEvent("beforerename",this,editor.editNode,newPath,oldPath)){editor.cancellingEdit=true;editor.cancelEdit();return false}},onBeforeNodeDrop:function(e){var s=e.dropNode;var d=e.target.leaf?e.target.parentNode:e.target;if(s.parentNode===d)return false;if(this.hasChild(d,s.text)&&undefined===e.confirmed){this.confirmOverwrite(s.text,function(response){e.confirmed="yes"===response;this.onBeforeNodeDrop(e)});return false}if(false===e.confirmed)return false;e.confirmed=undefined;e.oldParent=s.parentNode;var oldName=this.getPath(s);var newName=this.getPath(d)+"/"+s.text;if(true!==this.eventsSuspended&&false===this.fireEvent("beforerename",this,s,newName,oldName))return false;var options={url:this.renameUrl||this.url,method:this.method,scope:this,callback:this.cmdCallback,node:s,oldParent:s.parentNode,e:e,params:{cmd:"rename",oldname:oldName,newname:newName}};Ext.Ajax.request(options);return true},onBeforeUpload:function(uploadPanel){var menu=this.getContextMenu();var path=this.getPath(menu.node);if(menu.node.isLeaf())path=path.replace(/\/[^\/]+$/,"",path);uploadPanel.setPath(path)},onAllFinished:function(uploader){var menu=this.getContextMenu();(menu.node.isLeaf()?menu.node.parentNode:menu.node).reload()},onContextClick:function(menu,item,e){if(item.disabled)return;var node=menu.node;if(!node)node=menu.parentMenu.node;switch(item.cmd){case"reload":node.reload();break;case"expand":node.expand(true);break;case"collapse":node.collapse(true);break;case"open":this.openNode(node);break;case"open-self":this.openNode(node,"_self");break;case"open-popup":this.openNode(node,"popup");break;case"open-blank":this.openNode(node,"_blank");break;case"open-dwnld":this.openNode(node,"download");break;case"rename":this.treeEditor.triggerEdit(node);break;case"delete":this.deleteNode(node);break;case"newdir":this.createNewDir(node);break;default:break}},onContextMenu:function(node,e){if(this.readOnly)return false;this.showContextMenu(node);return false},onDblClick:function(node,e){this.openNode(node)},onDestroy:function(){if(this.contextmenu){this.contextmenu.purgeListeners();this.contextmenu.destroy();this.contextmenu=null}if(this.treeEditor){this.treeEditor.purgeListeners();this.treeEditor.destroy();this.treeEditor=null}if(this.treeSorter)this.treeSorter=null;Ext.ux.FileTreePanel.superclass.onDestroy.call(this)},onEditComplete:function(editor,newName,oldName){var node=editor.editNode;if(newName===oldName||editor.creatingNewDir){editor.creatingNewDir=false;return}var path=this.getPath(node.parentNode);var options={url:this.renameUrl||this.url,method:this.method,scope:this,callback:this.cmdCallback,node:node,oldName:oldName,params:{cmd:"rename",oldname:path+"/"+oldName,newname:path+"/"+newName}};Ext.Ajax.request(options)},onNewDir:function(editor){var path=this.getPath(editor.editNode);var options={url:this.newdirUrl||this.url,method:this.method,scope:this,node:editor.editNode,callback:this.cmdCallback,params:{cmd:"newdir",dir:path}};Ext.Ajax.request(options)},onNodeDragOver:function(e){e.cancel=e.target.disabled||e.dropNode.parentNode===e.target.parentNode&&e.target.isLeaf()},onNodeDrop:function(e){if(true===e.failure){e.oldParent.appendChild(e.dropNode);return}var sameNode=e.dropNode.parentNode.findChild("text",e.dropNode.text);if(sameNode&&sameNode!==e.dropNode)sameNode.parentNode.removeChild(sameNode)},openNode:function(node,mode){if(!this.enableOpen)return;mode=mode||this.openMode;var url;var path;if(node.isLeaf()){path=this.getPath(node);url=this.hrefPrefix+path+this.hrefSuffix;if(true!==this.eventsSuspended&&false===this.fireEvent("beforeopen",this,node.text,url,mode))return;switch(mode){case"popup":if(!this.popup||this.popup.closed)this.popup=window.open(url,this.hrefTarget,this.popupFeatures);this.popup.location=url;if(this.focusPopup)this.popup.focus();break;case"_self":window.location=url;break;case"_blank":window.open(url);break;case"download":this.downloadFile(path);break}if(true!==this.eventsSuspended)this.fireEvent("open",this,node.text,url,mode)}},setDeleteDisabled:function(disabled){disabled=!!disabled;if(!this.enableDelete===disabled)return this;this.hideContextMenu();this.enableDelete=!disabled},setNewdirDisabled:function(disabled){disabled=!!disabled;if(!this.enableNewDir===disabled)return this;this.hideContextMenu();this.enableNewDir=!disabled},setOpenDisabled:function(disabled){disabled=!!disabled;if(!this.enableOpen===disabled)return this;this.hideContextMenu();this.enableOpen=!disabled;return this},setReadOnly:function(readOnly){readOnly=!!readOnly;if(this.readOnly===readOnly)return this;this.hideContextMenu();if(this.dragZone)this.dragZone.locked=readOnly;this.readOnly=readOnly;return this},setRenameDisabled:function(disabled){disabled=!!disabled;if(!this.enableRename===disabled)return this;this.hideContextMenu();if(this.dragZone)this.dragZone.locked=disabled;this.enableRename=!disabled;return this},setUploadDisabled:function(disabled){disabled=!!disabled;if(!this.enableUpload===disabled)return this;this.hideContextMenu();this.enableUpload=!disabled;return this},showContextMenu:function(node){var topAlign=false;var alignEl=this.topMenu?this.topMenu.getEl():this.body;if(!node){node=this.getSelectionModel().getSelectedNode();topAlign=true}else alignEl=node.getUI().getEl();if(!node)return;var menu=this.getContextMenu();menu.node=node;menu.getItemByCmd("nodename").setText(Ext.util.Format.ellipsis(node.text,22));menu.setItemDisabled("open",!node.isLeaf());menu.setItemDisabled("reload",node.isLeaf());menu.setItemDisabled("expand",node.isLeaf());menu.setItemDisabled("collapse",node.isLeaf());menu.setItemDisabled("delete",node===this.root||node.disabled);menu.setItemDisabled("rename",this.readOnly||node===this.root||node.disabled);menu.setItemDisabled("newdir",this.readOnly||(node.isLeaf()?node.parentNode.disabled:node.disabled));menu.setItemDisabled("upload",node.isLeaf()?node.parentNode.disabled:node.disabled);menu.setItemDisabled("upload-panel",node.isLeaf()?node.parentNode.disabled:node.disabled);menu.getItemByCmd("open").setVisible(this.enableOpen);menu.getItemByCmd("delete").setVisible(this.enableDelete);menu.getItemByCmd("newdir").setVisible(this.enableNewDir);menu.getItemByCmd("rename").setVisible(this.enableRename);menu.getItemByCmd("upload").setVisible(this.enableUpload);menu.getItemByCmd("upload-panel").setVisible(this.enableUpload);menu.getItemByCmd("sep-upload").setVisible(this.enableUpload);menu.getItemByCmd("sep-collapse").setVisible(this.enableNewDir||this.enableDelete||this.enableRename);node.select();if(topAlign)menu.showAt(menu.getEl().getAlignToXY(alignEl,"tl-bl?"));else menu.showAt(menu.getEl().getAlignToXY(alignEl,"tl-tl?",[0,18]))},showError:function(msg,title){Ext.Msg.show({title:title||this.errorText,msg:Ext.util.Format.ellipsis(msg,this.maxMsgLen),fixCursor:true,icon:Ext.Msg.ERROR,buttons:Ext.Msg.OK,minWidth:1200>String(msg).length?360:600})},updateCls:function(node,oldName){if(node.isLeaf()){Ext.fly(node.getUI().iconNode).removeClass(this.getFileCls(oldName));Ext.fly(node.getUI().iconNode).addClass(this.getFileCls(node.text))}}});Ext.reg("filetreepanel",Ext.ux.FileTreePanel);Ext.namespace("Ext.ux.dd");Ext.ux.dd.GridReorderDropTarget=function(grid,config){this.target=new Ext.dd.DropTarget(grid.getEl(),{ddGroup:grid.ddGroup||"GridDD",grid:grid,gridDropTarget:this,notifyDrop:function(dd,e,data){var t=Ext.lib.Event.getTarget(e);var rindex=this.grid.getView().findRowIndex(t);if(rindex===false)return false;if(rindex==data.rowIndex)return false;if(this.gridDropTarget.fireEvent(this.copy?"beforerowcopy":"beforerowmove",this.gridDropTarget,data.rowIndex,rindex,data.selections)===false)return false;var ds=this.grid.getStore();if(!this.copy)for(i=0;i<data.selections.length;i++)ds.remove(ds.getById(data.selections[i].id));ds.insert(rindex,data.selections);var sm=this.grid.getSelectionModel();if(sm)sm.selectRecords(data.selections);this.gridDropTarget.fireEvent(this.copy?"afterrowcopy":"afterrowmove",this.gridDropTarget,data.rowIndex,rindex,data.selections);return true},notifyOver:function(dd,e,data){var t=Ext.lib.Event.getTarget(e);var rindex=this.grid.getView().findRowIndex(t);if(rindex==data.rowIndex)rindex=false;return rindex===false?this.dropNotAllowed:this.dropAllowed}});if(config){Ext.apply(this.target,config);if(config.listeners)Ext.apply(this,{listeners:config.listeners})}this.addEvents({beforerowmove:true,afterrowmove:true,beforerowcopy:true,afterrowcopy:true});Ext.ux.dd.GridReorderDropTarget.superclass.constructor.call(this)};Ext.extend(Ext.ux.dd.GridReorderDropTarget,Ext.util.Observable,{getTarget:function(){return this.target},getGrid:function(){return this.target.grid},getCopy:function(){return this.target.copy?true:false},setCopy:function(b){this.target.copy=b?true:false}});Ext.form.FileUploadField=Ext.extend(Ext.form.TextField,{buttonText:"Browse...",buttonOnly:false,buttonOffset:3,readOnly:true,autoSize:Ext.emptyFn,initComponent:function(){Ext.form.FileUploadField.superclass.initComponent.call(this);this.addEvents("fileselected")},onRender:function(ct,position){Ext.form.FileUploadField.superclass.onRender.call(this,ct,position);this.wrap=this.el.wrap({cls:"x-form-field-wrap x-form-file-wrap"});this.el.addClass("x-form-file-text");this.el.dom.removeAttribute("name");this.fileInput=this.wrap.createChild({id:this.getFileInputId(),name:this.name||this.getId(),cls:"x-form-file",tag:"input",type:"file",size:1});var btnCfg=Ext.applyIf(this.buttonCfg||{},{text:this.buttonText});this.button=new Ext.Button(Ext.apply(btnCfg,{renderTo:this.wrap,cls:"x-form-file-btn"+(btnCfg.iconCls?" x-btn-icon":"")}));if(this.buttonOnly){this.el.hide();this.wrap.setWidth(this.button.getEl().getWidth())}this.fileInput.on("change",function(){var v=this.fileInput.dom.value;this.setValue(v);this.fireEvent("fileselected",this,v)},this)},getFileInputId:function(){return this.id+"-file"},onResize:function(w,h){Ext.form.FileUploadField.superclass.onResize.call(this,w,h);this.wrap.setWidth(w);if(!this.buttonOnly){var w=this.wrap.getWidth()-this.button.getEl().getWidth()-this.buttonOffset;this.el.setWidth(w)}},preFocus:Ext.emptyFn,getResizeEl:function(){return this.wrap},getPositionEl:function(){return this.wrap},alignErrorIcon:function(){this.errorIcon.alignTo(this.wrap,"tl-tr",[2,0])}});Ext.reg("fileuploadfield",Ext.form.FileUploadField);(function(){var c=0,h=[],j={},f={},a={"<":"lt",">":"gt","&":"amp",'"':"quot","'":"#39"},i=/[<>&\"\']/g,b;function e(){this.returnValue=false}function g(){this.cancelBubble=true}(function(k){var l=k.split(/,/),m,o,n;for(m=0;m<l.length;m+=2){n=l[m+1].split(/ /);for(o=0;o<n.length;o++)f[n[o]]=l[m]}})("application/msword,doc dot,application/pdf,pdf,application/pgp-signature,pgp,application/postscript,ps ai eps,application/rtf,rtf,application/vnd.ms-excel,xls xlb,application/vnd.ms-powerpoint,ppt pps pot,application/zip,zip,application/x-shockwave-flash,swf swfl,application/vnd.openxmlformats,docx pptx xlsx,audio/mpeg,mpga mpega mp2 mp3,audio/x-wav,wav,image/bmp,bmp,image/gif,gif,image/jpeg,jpeg jpg jpe,image/png,png,image/svg+xml,svg svgz,image/tiff,tiff tif,text/html,htm html xhtml,text/rtf,rtf,video/mpeg,mpeg mpg mpe,video/quicktime,qt mov,video/x-flv,flv,video/vnd.rn-realvideo,rv,text/plain,asc txt text diff log,application/octet-stream,exe");var d={STOPPED:1,STARTED:2,QUEUED:1,UPLOADING:2,FAILED:4,DONE:5,GENERIC_ERROR:-100,HTTP_ERROR:-200,IO_ERROR:-300,SECURITY_ERROR:-400,INIT_ERROR:-500,FILE_SIZE_ERROR:-600,FILE_EXTENSION_ERROR:-700,mimeTypes:f,extend:function(k){d.each(arguments,function(l,m){if(m>0)d.each(l,function(o,n){k[n]=o})});return k},cleanName:function(k){var l,m;m=[/[\300-\306]/g,"A",/[\340-\346]/g,"a",/\307/g,"C",/\347/g,"c",/[\310-\313]/g,"E",/[\350-\353]/g,"e",/[\314-\317]/g,"I",/[\354-\357]/g,"i",/\321/g,"N",/\361/g,"n",/[\322-\330]/g,"O",/[\362-\370]/g,"o",/[\331-\334]/g,"U",/[\371-\374]/g,"u"];for(l=0;l<m.length;l+=2)k=k.replace(m[l],m[l+1]);k=k.replace(/\s+/g,"_");k=k.replace(/[^a-z0-9_\-\.]+/gi,"");return k},addRuntime:function(k,l){l.name=k;h[k]=l;h.push(l);return l},guid:function(){var k=(new Date).getTime().toString(32),l;for(l=0;l<5;l++)k+=Math.floor(Math.random()*65535).toString(32);return(d.guidPrefix||"p")+k+(c++).toString(32)},buildUrl:function(l,k){var m="";d.each(k,function(o,n){m+=(m?"&":"")+encodeURIComponent(n)+"="+encodeURIComponent(o)});if(m)l+=(l.indexOf("?")>0?"&":"?")+m;return l},each:function(n,o){var m,l,k;if(n){m=n.length;if(m===b){for(l in n)if(n.hasOwnProperty(l))if(o(n[l],l)===false)return}else for(k=0;k<m;k++)if(o(n[k],k)===false)return}},formatSize:function(k){if(k===b)return d.translate("N/A");if(k>1048576)return Math.round(k/1048576,1)+" MB";if(k>1024)return Math.round(k/1024,1)+" KB";return k+" b"},getPos:function(l,p){var q=0,o=0,s,r=document,m,n;l=l;p=p||r.body;function k(w){var u,v,t=0,z=0;if(w){v=w.getBoundingClientRect();u=r.compatMode==="CSS1Compat"?r.documentElement:r.body;t=v.left+u.scrollLeft;z=v.top+u.scrollTop}return{x:t,y:z}}if(l.getBoundingClientRect&&navigator.userAgent.indexOf("MSIE")>0&&r.documentMode!==8){m=k(l);n=k(p);return{x:m.x-n.x,y:m.y-n.y}}s=l;while(s&&s!=p&&s.nodeType){q+=s.offsetLeft||0;o+=s.offsetTop||0;s=s.offsetParent}s=l.parentNode;while(s&&s!=p&&s.nodeType){q-=s.scrollLeft||0;o-=s.scrollTop||0;s=s.parentNode}return{x:q,y:o}},getSize:function(k){return{w:k.clientWidth||k.offsetWidth,h:k.clientHeight||k.offsetHeight}},parseSize:function(k){var l;if(typeof k=="string"){k=/^([0-9]+)([mgk]+)$/.exec(k.toLowerCase().replace(/[^0-9mkg]/g,""));l=k[2];k=+k[1];if(l=="g")k*=1073741824;if(l=="m")k*=1048576;if(l=="k")k*=1024}return k},xmlEncode:function(k){return k?(""+k).replace(i,function(l){return a[l]?"&"+a[l]+";":l}):k},toArray:function(m){var l,k=[];for(l=0;l<m.length;l++)k[l]=m[l];return k},addI18n:function(k){return d.extend(j,k)},translate:function(k){return j[k]||k},addEvent:function(l,k,m){if(l.attachEvent)l.attachEvent("on"+k,function(){var n=window.event;if(!n.target)n.target=n.srcElement;n.preventDefault=e;n.stopPropagation=g;m(n)});else if(l.addEventListener)l.addEventListener(k,m,false)}};d.Uploader=function(n){var l={},q,p=[],r,m;q=new d.QueueProgress;n=d.extend({chunk_size:0,max_file_size:"1gb",multi_selection:true,file_data_name:"file",filters:[]},n);function o(){var s;if(this.state==d.STARTED&&r<p.length){s=p[r++];if(s.status==d.QUEUED)this.trigger("UploadFile",s);else o.call(this)}else this.stop()}function k(){var t,s;q.reset();for(t=0;t<p.length;t++){s=p[t];if(s.size!==b){q.size+=s.size;q.loaded+=s.loaded}else q.size=b;if(s.status==d.DONE)q.uploaded++;else if(s.status==d.FAILED)q.failed++;else q.queued++}if(q.size===b)q.percent=p.length>0?Math.ceil(q.uploaded/p.length*100):0;else{q.bytesPerSec=Math.ceil(q.loaded/((+new Date-m||1)/1e3));q.percent=q.size>0?Math.ceil(q.loaded/q.size*100):0}}d.extend(this,{state:d.STOPPED,features:{},files:p,settings:n,total:q,id:d.guid(),init:function(){var x=this,y,u,t,w=0,v;n.page_url=n.page_url||document.location.pathname.replace(/\/[^\/]+$/g,"/");if(!/^(\w+:\/\/|\/)/.test(n.url))n.url=n.page_url+n.url;n.chunk_size=d.parseSize(n.chunk_size);n.max_file_size=d.parseSize(n.max_file_size);x.bind("FilesAdded",function(z,C){var B,A,F=0,E,D=n.filters;if(D&&D.length){E={};d.each(D,function(G){d.each(G.extensions.split(/,/),function(H){E[H]=true})})}for(B=0;B<C.length;B++){A=C[B];A.loaded=0;A.percent=0;A.status=d.QUEUED;if(E&&!E[A.name.split(".").slice(-1)]){z.trigger("Error",{code:d.FILE_EXTENSION_ERROR,message:"File extension error.",file:A});continue}if(A.size!==b&&A.size>n.max_file_size){z.trigger("Error",{code:d.FILE_SIZE_ERROR,message:"File size error.",file:A});continue}p.push(A);F++}if(F){x.trigger("QueueChanged");x.refresh()}});if(n.unique_names)x.bind("UploadFile",function(z,A){A.target_name=A.id+".tmp"});x.bind("UploadProgress",function(z,A){if(A.status==d.QUEUED)A.status=d.UPLOADING;A.percent=A.size>0?Math.ceil(A.loaded/A.size*100):100;k()});x.bind("StateChanged",function(z){if(z.state==d.STARTED)m=+new Date});x.bind("QueueChanged",k);x.bind("Error",function(z,A){if(A.file){A.file.status=d.FAILED;k();window.setTimeout(function(){o.call(x)})}});x.bind("FileUploaded",function(z,A){A.status=d.DONE;z.trigger("UploadProgress",A);o.call(x)});if(n.runtimes){u=[];v=n.runtimes.split(/\s?,\s?/);for(y=0;y<v.length;y++)if(h[v[y]])u.push(h[v[y]])}else u=h;function s(){var z=u[w++];if(z)z.init(x,function(C){var A,B;if(C&&C.success){A=x.settings.required_features;if(A){A=A.split(",");for(B=0;B<A.length;B++)if(!x.features[A[B]]){s();return}}x.trigger("Init",{runtime:z.name});x.trigger("PostInit");x.refresh()}else s()});else x.trigger("Error",{code:d.INIT_ERROR,message:"Init error."})}s()},refresh:function(){this.trigger("Refresh")},start:function(){if(this.state!=d.STARTED){r=0;this.state=d.STARTED;this.trigger("StateChanged");o.call(this)}},stop:function(){if(this.state!=d.STOPPED){this.state=d.STOPPED;this.trigger("StateChanged")}},getFile:function(t){var s;for(s=p.length-1;s>=0;s--)if(p[s].id===t)return p[s]},removeFile:function(t){var s;for(s=p.length-1;s>=0;s--)if(p[s].id===t.id)return this.splice(s,1)[0]},splice:function(u,s){var t;t=p.splice(u,s);this.trigger("FilesRemoved",t);this.trigger("QueueChanged");return t},trigger:function(t){var v=l[t.toLowerCase()],u,s;if(v){s=Array.prototype.slice.call(arguments);s[0]=this;for(u=0;u<v.length;u++)if(v[u].func.apply(v[u].scope,s)===false)return false}return true},bind:function(s,u,t){var v;s=s.toLowerCase();v=l[s]||[];v.push({func:u,scope:t||this});l[s]=v},unbind:function(s,u){var v=l[s.toLowerCase()],t;if(v)for(t=v.length-1;t>=0;t--)if(v[t].func===u)v.splice(t,1)}})};d.File=function(n,l,m){var k=this;k.id=n;k.name=l;k.size=m;k.loaded=0;k.percent=0;k.status=0};d.Runtime=function(){this.init=function(k,l){}};d.QueueProgress=function(){var k=this;k.size=0;k.loaded=0;k.uploaded=0;k.failed=0;k.queued=0;k.percent=0;k.bytesPerSec=0;k.reset=function(){k.size=k.loaded=k.uploaded=k.failed=k.queued=k.percent=k.bytesPerSec=0}};d.runtimes={};window.plupload=d})();(function(b){var c={};function a(i,e,k,j,d){var l,g,f,h;g=google.gears.factory.create("beta.canvas");g.decode(i);h=Math.min(e/g.width,k/g.height);if(h<1){e=Math.round(g.width*h);k=Math.round(g.height*h)}else{e=g.width;k=g.height}g.resize(e,k);return g.encode(d,{quality:j/100})}b.runtimes.Gears=b.addRuntime("gears",{init:function(g,i){var h;if(!window.google||!google.gears)return i({success:false});try{h=google.gears.factory.create("beta.desktop")}catch(f){return i({success:false})}function d(k){var j,e,l=[],m;for(e=0;e<k.length;e++){j=k[e];m=b.guid();c[m]=j.blob;l.push(new b.File(m,j.name,j.blob.length))}g.trigger("FilesAdded",l)}g.bind("PostInit",function(){var j=g.settings,e=document.getElementById(j.drop_element);if(e){b.addEvent(e,"dragover",function(k){h.setDropEffect(k,"copy");k.preventDefault()});b.addEvent(e,"drop",function(l){var k=h.getDragData(l,"application/x-gears-files");if(k)d(k.files);l.preventDefault()});e=0}b.addEvent(document.getElementById(j.browse_button),"click",function(o){var n=[],l,k,m;o.preventDefault();for(l=0;l<j.filters.length;l++){m=j.filters[l].extensions.split(",");for(k=0;k<m.length;k++)n.push("."+m[k])}h.openFiles(d,{singleFile:!j.multi_selection,filter:n})})});g.bind("UploadFile",function(o,l){var q=0,p,m,n=0,k=o.settings.resize,e;m=o.settings.chunk_size;e=m>0;p=Math.ceil(l.size/m);if(!e){m=l.size;p=1}if(k&&/\.(png|jpg|jpeg)$/i.test(l.name))c[l.id]=a(c[l.id],k.width,k.height,k.quality||90,/\.png$/i.test(l.name)?"image/png":"image/jpeg");l.size=c[l.id].length;function j(){var u,w,s=o.settings.multipart,r=0,v={name:l.target_name||l.name};function t(y){var x,C="----pluploadboundary"+b.guid(),A="--",B="\r\n",z;if(s){u.setRequestHeader("Content-Type","multipart/form-data; boundary="+C);x=google.gears.factory.create("beta.blobbuilder");b.each(o.settings.multipart_params,function(E,D){x.append(A+C+B+'Content-Disposition: form-data; name="'+D+'"'+B+B);x.append(E+B)});x.append(A+C+B+'Content-Disposition: form-data; name="'+o.settings.file_data_name+'"; filename="'+l.name+'"'+B+"Content-Type: application/octet-stream"+B+B);x.append(y);x.append(B+A+C+A+B);z=x.getAsBlob();r=z.length-y.length;y=z}u.send(y)}if(l.status==b.DONE||l.status==b.FAILED||o.state==b.STOPPED)return;if(e){v.chunk=q;v.chunks=p}w=Math.min(m,l.size-q*m);u=google.gears.factory.create("beta.httprequest");u.open("POST",b.buildUrl(o.settings.url,v));if(!s){u.setRequestHeader("Content-Disposition",'attachment; filename="'+l.name+'"');u.setRequestHeader("Content-Type","application/octet-stream")}u.upload.onprogress=function(x){l.loaded=n+x.loaded-r;o.trigger("UploadProgress",l)};u.onreadystatechange=function(){var x;if(u.readyState==4)if(u.status==200){x={chunk:q,chunks:p,response:u.responseText,status:u.status};o.trigger("ChunkUploaded",l,x);if(x.cancelled){l.status=b.FAILED;return}n+=w;if(++q>=p){l.status=b.DONE;o.trigger("FileUploaded",l,{response:u.responseText,status:u.status})}else j()}else o.trigger("Error",{code:b.HTTP_ERROR,message:"HTTP Error.",file:l,chunk:q,chunks:p,status:u.status})};if(q<p)t(c[l.id].slice(q*m,w))}j()});g.features={dragdrop:true,jpgresize:true,pngresize:true,chunks:true,progress:true};i({success:true})}})})(plupload);(function(c){var a={};function b(l){var k,j=typeof l,h,e,g,f;if(j==="string"){k="\bb\tt\nn\ff\rr\"\"''\\\\";return'"'+l.replace(/([\u0080-\uFFFF\x00-\x1f\"])/g,function(n,m){var i=k.indexOf(m);if(i+1)return"\\"+k.charAt(i+1);n=m.charCodeAt().toString(16);return"\\u"+"0000".substring(n.length)+n})+'"'}if(j=="object"){e=l.length!==h;k="";if(e){for(g=0;g<l.length;g++){if(k)k+=",";k+=b(l[g])}k="["+k+"]"}else{for(f in l)if(l.hasOwnProperty(f)){if(k)k+=",";k+=b(f)+":"+b(l[f])}k="{"+k+"}"}return k}if(l===h)return"null";return""+l}function d(o){var r=false,f=null,k=null,g,h,i,q,j,m=0;try{try{k=new ActiveXObject("AgControl.AgControl");if(k.IsVersionSupported(o))r=true;k=null}catch(n){var l=navigator.plugins["Silverlight Plug-In"];if(l){g=l.description;if(g==="1.0.30226.2")g="2.0.30226.2";h=g.split(".");while(h.length>3)h.pop();while(h.length<4)h.push(0);i=o.split(".");while(i.length>4)i.pop();do{q=parseInt(i[m],10);j=parseInt(h[m],10);m++}while(m<i.length&&q===j);if(q<=j&&!isNaN(q))r=true}}}catch(p){r=false}return r}c.silverlight={trigger:function(j,f){var h=a[j],g,e;if(h){e=c.toArray(arguments).slice(1);e[0]="Silverlight:"+f;setTimeout(function(){h.trigger.apply(h,e)},0)}}};c.runtimes.Silverlight=c.addRuntime("silverlight",{init:function(l,m){var k,h="",j=l.settings.filters,g,f=document.body;if(!d("2.0.31005.0")||window.opera&&window.opera.buildNumber){m({success:false});return}a[l.id]=l;k=document.createElement("div");k.id=l.id+"_silverlight_container";c.extend(k.style,{position:"absolute",top:"0px",background:l.settings.shim_bgcolor||"transparent",zIndex:99999,width:"100px",height:"100px",overflow:"hidden",opacity:l.settings.shim_bgcolor?"":.01});k.className="plupload silverlight";if(l.settings.container){f=document.getElementById(l.settings.container);f.style.position="relative"}f.appendChild(k);for(g=0;g<j.length;g++)h+=(h!=""?"|":"")+j[g].title+" | *."+j[g].extensions.replace(/,/g,";*.");k.innerHTML='<object id="'+l.id+'_silverlight" data="data:application/x-silverlight," type="application/x-silverlight-2" style="outline:none;" width="1024" height="1024"><param name="source" value="'+l.settings.silverlight_xap_url+'"/><param name="background" value="Transparent"/><param name="windowless" value="true"/><param name="initParams" value="id='+l.id+",filter="+h+'"/></object>';function e(){return document.getElementById(l.id+"_silverlight").content.Upload}l.bind("Silverlight:Init",function(){var i,n={};l.bind("Silverlight:StartSelectFiles",function(o){i=[]});l.bind("Silverlight:SelectFile",function(o,r,p,q){var s;s=c.guid();n[s]=r;n[r]=s;i.push(new c.File(s,p,q))});l.bind("Silverlight:SelectSuccessful",function(){if(i.length)l.trigger("FilesAdded",i)});l.bind("Silverlight:UploadChunkError",function(o,r,p,s,q){l.trigger("Error",{code:c.IO_ERROR,message:"IO Error.",details:q,file:o.getFile(n[r])})});l.bind("Silverlight:UploadFileProgress",function(o,s,p,r){var q=o.getFile(n[s]);if(q.status!=c.FAILED){q.size=r;q.loaded=p;o.trigger("UploadProgress",q)}});l.bind("Refresh",function(o){var p,q,r;p=document.getElementById(o.settings.browse_button);q=c.getPos(p,document.getElementById(o.settings.container));r=c.getSize(p);c.extend(document.getElementById(o.id+"_silverlight_container").style,{top:q.y+"px",left:q.x+"px",width:r.w+"px",height:r.h+"px"})});l.bind("Silverlight:UploadChunkSuccessful",function(o,r,p,u,t){var s,q=o.getFile(n[r]);s={chunk:p,chunks:u,response:t};o.trigger("ChunkUploaded",q,s);if(q.status!=c.FAILED)e().UploadNextChunk();if(p==u-1){q.status=c.DONE;o.trigger("FileUploaded",q,{response:t})}});l.bind("Silverlight:UploadSuccessful",function(o,r,p){var q=o.getFile(n[r]);q.status=c.DONE;o.trigger("FileUploaded",q,{response:p})});l.bind("FilesRemoved",function(o,q){var p;for(p=0;p<q.length;p++)e().RemoveFile(n[q[p].id])});l.bind("UploadFile",function(o,q){var r=o.settings,p=r.resize||{};e().UploadFile(n[q.id],c.buildUrl(o.settings.url,{name:q.target_name||q.name}),b({chunk_size:r.chunk_size,image_width:p.width,image_height:p.height,image_quality:p.quality||90,multipart:!!r.multipart,multipart_params:r.multipart_params||{}}))});l.features={jpgresize:true,pngresize:true,chunks:true,progress:true};m({success:true})})}})})(plupload);(function(c){var a={};function b(){var d;try{d=navigator.plugins["Shockwave Flash"];d=d.description}catch(f){try{d=new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version")}catch(e){d="0.0"}}d=d.match(/\d+/g);return parseFloat(d[0]+"."+d[1])}c.flash={trigger:function(f,d,e){setTimeout(function(){var j=a[f],h,g;if(j)j.trigger("Flash:"+d,e)},0)}};c.runtimes.Flash=c.addRuntime("flash",{init:function(g,l){var k,f,h,e,m=0,d=document.body;if(b()<10){l({success:false});return}a[g.id]=g;k=document.getElementById(g.settings.browse_button);f=document.createElement("div");f.id=g.id+"_flash_container";c.extend(f.style,{position:"absolute",top:"0px",background:g.settings.shim_bgcolor||"transparent",zIndex:99999,width:"100%",height:"100%"});f.className="plupload flash";if(g.settings.container){d=document.getElementById(g.settings.container);d.style.position="relative"}d.appendChild(f);h="id="+escape(g.id);f.innerHTML='<object id="'+g.id+'_flash" width="100%" height="100%" style="outline:0" type="application/x-shockwave-flash" data="'+g.settings.flash_swf_url+'"><param name="movie" value="'+g.settings.flash_swf_url+'" /><param name="flashvars" value="'+h+'" /><param name="wmode" value="transparent" /><param name="allowscriptaccess" value="always" /></object>';function j(){return document.getElementById(g.id+"_flash")}function i(){if(m++>5e3){l({success:false});return}if(!e)setTimeout(i,1)}i();k=f=null;g.bind("Flash:Init",function(){var p={},o,n=g.settings.resize||{};e=true;j().setFileFilters(g.settings.filters,g.settings.multi_selection);g.bind("UploadFile",function(q,r){var s=q.settings;j().uploadFile(p[r.id],c.buildUrl(s.url,{name:r.target_name||r.name}),{chunk_size:s.chunk_size,width:n.width,height:n.height,quality:n.quality||90,multipart:s.multipart,multipart_params:s.multipart_params,file_data_name:s.file_data_name,format:/\.(jpg|jpeg)$/i.test(r.name)?"jpg":"png"})});g.bind("Flash:UploadProcess",function(r,q){var s=r.getFile(p[q.id]);if(s.status!=c.FAILED){s.loaded=q.loaded;s.size=q.size;r.trigger("UploadProgress",s)}});g.bind("Flash:UploadChunkComplete",function(q,s){var t,r=q.getFile(p[s.id]);t={chunk:s.chunk,chunks:s.chunks,response:s.text};q.trigger("ChunkUploaded",r,t);if(r.status!=c.FAILED)j().uploadNextChunk();if(s.chunk==s.chunks-1){r.status=c.DONE;q.trigger("FileUploaded",r,{response:s.text})}});g.bind("Flash:SelectFiles",function(q,t){var s,r,u=[],v;for(r=0;r<t.length;r++){s=t[r];v=c.guid();p[v]=s.id;p[s.id]=v;u.push(new c.File(v,s.name,s.size))}if(u.length)g.trigger("FilesAdded",u)});g.bind("Flash:SecurityError",function(q,r){g.trigger("Error",{code:c.SECURITY_ERROR,message:"Security error.",details:r.message,file:g.getFile(p[r.id])})});g.bind("Flash:GenericError",function(q,r){g.trigger("Error",{code:c.GENERIC_ERROR,message:"Generic error.",details:r.message,file:g.getFile(p[r.id])})});g.bind("Flash:IOError",function(q,r){g.trigger("Error",{code:c.IO_ERROR,message:"IO error.",details:r.message,file:g.getFile(p[r.id])})});g.bind("QueueChanged",function(q){g.refresh()});g.bind("FilesRemoved",function(q,s){var r;for(r=0;r<s.length;r++)j().removeFile(p[s[r].id])});g.bind("StateChanged",function(q){g.refresh()});g.bind("Refresh",function(q){var r,s,t;j().setFileFilters(g.settings.filters,g.settings.multi_selection);r=document.getElementById(q.settings.browse_button);s=c.getPos(r,document.getElementById(q.settings.container));t=c.getSize(r);c.extend(document.getElementById(q.id+"_flash_container").style,{top:s.y+"px",left:s.x+"px",width:t.w+"px",height:t.h+"px"})});g.features={jpgresize:true,pngresize:true,chunks:true,progress:true};l({success:true})})}})})(plupload);(function(a){a.runtimes.BrowserPlus=a.addRuntime("browserplus",{init:function(g,i){var e=window.BrowserPlus,h={},d=g.settings,c=d.resize;function f(n){var m,l,j=[],k,o;for(l=0;l<n.length;l++){k=n[l];o=a.guid();h[o]=k;j.push(new a.File(o,k.name,k.size))}if(l)g.trigger("FilesAdded",j)}function b(){g.bind("PostInit",function(){var m,k=d.drop_element,o=g.id+"_droptarget",j=document.getElementById(k),l;function p(r,q){e.DragAndDrop.AddDropTarget({id:r},function(s){e.DragAndDrop.AttachCallbacks({id:r,hover:function(t){if(!t&&q)q()},drop:function(t){if(q)q();f(t)}},function(){})})}function n(){document.getElementById(o).style.top="-1000px"}if(j)if(document.attachEvent&&/MSIE/gi.test(navigator.userAgent)){m=document.createElement("div");m.setAttribute("id",o);a.extend(m.style,{position:"absolute",top:"-1000px",background:"red",filter:"alpha(opacity=0)",opacity:0});document.body.appendChild(m);a.addEvent(j,"dragenter",function(r){var q,s;q=document.getElementById(k);s=a.getPos(q);a.extend(document.getElementById(o).style,{top:s.y+"px",left:s.x+"px",width:q.offsetWidth+"px",height:q.offsetHeight+"px"})});p(o,n)}else p(k);a.addEvent(document.getElementById(d.browse_button),"click",function(v){var t=[],r,q,u=d.filters,s;v.preventDefault();for(r=0;r<u.length;r++){s=u[r].extensions.split(",");for(q=0;q<s.length;q++)t.push(a.mimeTypes[s[q]])}e.FileBrowse.OpenBrowseDialog({mimeTypes:t},function(w){if(w.success)f(w.value)})});j=m=null});g.bind("UploadFile",function(n,k){var m=h[k.id],j={},l=n.settings.chunk_size,o,p=[];function r(s,u){var t;if(k.status==a.FAILED)return;j.name=k.target_name||k.name;if(l){j.chunk=s;j.chunks=u}t=p.shift();e.Uploader.upload({url:a.buildUrl(n.settings.url,j),files:{file:t},cookies:document.cookies,postvars:n.settings.multipart_params,progressCallback:function(x){var w,v=0;o[s]=parseInt(x.filePercent*t.size/100,10);for(w=0;w<o.length;w++)v+=o[w];k.loaded=v;n.trigger("UploadProgress",k)}},function(w){var v,x;if(w.success){v=w.value.statusCode;if(l)n.trigger("ChunkUploaded",k,{chunk:s,chunks:u,response:w.value.body,status:v});if(p.length>0)r(++s,u);else{k.status=a.DONE;n.trigger("FileUploaded",k,{response:w.value.body,status:v});if(v>=400)n.trigger("Error",{code:a.HTTP_ERROR,message:"HTTP Error.",file:k,status:v})}}else n.trigger("Error",{code:a.GENERIC_ERROR,message:"Generic Error.",file:k,details:w.error})})}function q(s){k.size=s.size;if(l)e.FileAccess.chunk({file:s,chunkSize:l},function(v){if(v.success){var w=v.value,t=w.length;o=Array(t);for(var u=0;u<t;u++){o[u]=0;p.push(w[u])}r(0,t)}});else{o=Array(1);p.push(s);r(0,1)}}if(c&&/\.(png|jpg|jpeg)$/i.test(k.name))BrowserPlus.ImageAlter.transform({file:m,quality:c.quality||90,actions:[{scale:{maxwidth:c.width,maxheight:c.height}}]},function(s){if(s.success)q(s.value.file)});else q(m)});g.features={dragdrop:true,jpgresize:true,pngresize:true,chunks:true,progress:true};i({success:true})}if(e)e.init(function(k){var j=[{service:"Uploader",version:"3"},{service:"DragAndDrop",version:"1"},{service:"FileBrowse",version:"1"},{service:"FileAccess",version:"2"}];if(c)j.push({service:"ImageAlter",version:"4"});if(k.success)e.require({services:j},function(l){if(l.success)b();else i()});else i()});else i()}})})(plupload);(function(b){function a(i,l,j,c,k){var e,d,h,g,f;e=document.createElement("canvas");e.style.display="none";document.body.appendChild(e);d=e.getContext("2d");h=new Image;h.onload=function(){var o,m,n;f=Math.min(l/h.width,j/h.height);if(f<1){o=Math.round(h.width*f);m=Math.round(h.height*f)}else{o=h.width;m=h.height}e.width=o;e.height=m;d.drawImage(h,0,0,o,m);g=e.toDataURL(c);g=g.substring(g.indexOf("base64,")+7);g=atob(g);e.parentNode.removeChild(e);k({success:true,data:g})};h.src=i}b.runtimes.Html5=b.addRuntime("html5",{init:function(g,i){var c={},d,h;function f(m){var k,j,l=[],n;for(j=0;j<m.length;j++){k=m[j];n=b.guid();c[n]=k;l.push(new b.File(n,k.fileName,k.fileSize))}if(l.length)g.trigger("FilesAdded",l)}function e(){var j;if(window.XMLHttpRequest){j=new XMLHttpRequest;h=!!j.upload;return!!(j.sendAsBinary||j.upload)}return false}if(!e()){i({success:false});return}g.bind("Init",function(n){var r,p=[],m,q,k=n.settings.filters,l,o,j=document.body;r=document.createElement("div");r.id=n.id+"_html5_container";for(m=0;m<k.length;m++){l=k[m].extensions.split(/,/);for(q=0;q<l.length;q++){o=b.mimeTypes[l[q]];if(o)p.push(o)}}b.extend(r.style,{position:"absolute",background:g.settings.shim_bgcolor||"transparent",width:"100px",height:"100px",overflow:"hidden",zIndex:99999,opacity:g.settings.shim_bgcolor?"":0});r.className="plupload html5";if(g.settings.container){j=document.getElementById(g.settings.container);j.style.position="relative"}j.appendChild(r);r.innerHTML='<input id="'+g.id+'_html5" style="width:100%;" type="file" accept="'+p.join(",")+'" '+(g.settings.multi_selection?'multiple="multiple"':"")+" />";document.getElementById(g.id+"_html5").onchange=function(){f(this.files);this.value=""}});g.bind("PostInit",function(){var j=document.getElementById(g.settings.drop_element);if(j){b.addEvent(j,"dragover",function(k){k.preventDefault()});b.addEvent(j,"drop",function(l){var k=l.dataTransfer;if(k&&k.files)f(k.files);l.preventDefault()})}});g.bind("Refresh",function(j){var k,l,m;k=document.getElementById(g.settings.browse_button);l=b.getPos(k,document.getElementById(j.settings.container));m=b.getSize(k);b.extend(document.getElementById(g.id+"_html5_container").style,{top:l.y+"px",left:l.x+"px",width:m.w+"px",height:m.h+"px"})});g.bind("UploadFile",function(j,m){var q=new XMLHttpRequest,l=q.upload,k=j.settings.resize,p,o=0;function n(r){var v="----pluploadboundary"+b.guid(),t="--",u="\r\n",s="";if(j.settings.multipart){q.setRequestHeader("Content-Type","multipart/form-data; boundary="+v);b.each(j.settings.multipart_params,function(x,w){s+=t+v+u+'Content-Disposition: form-data; name="'+w+'"'+u+u;s+=x+u});s+=t+v+u+'Content-Disposition: form-data; name="'+j.settings.file_data_name+'"; filename="'+m.name+'"'+u+"Content-Type: application/octet-stream"+u+u+r+u+t+v+t+u;o=s.length-r.length;r=s}q.sendAsBinary(r)}if(m.status==b.DONE||m.status==b.FAILED||j.state==b.STOPPED)return;if(l)l.onprogress=function(r){m.loaded=r.loaded-o;j.trigger("UploadProgress",m)};q.onreadystatechange=function(){var r;if(q.readyState==4){try{r=q.status}catch(s){r=0}m.status=b.DONE;m.loaded=m.size;j.trigger("UploadProgress",m);j.trigger("FileUploaded",m,{response:q.responseText,status:r});if(r>=400)j.trigger("Error",{code:b.HTTP_ERROR,message:"HTTP Error.",file:m,status:r})}};q.open("post",b.buildUrl(j.settings.url,{name:m.target_name||m.name}),true);q.setRequestHeader("Content-Type","application/octet-stream");p=c[m.id];if(q.sendAsBinary)if(k&&/\.(png|jpg|jpeg)$/i.test(m.name))a(p.getAsDataURL(),k.width,k.height,/\.png$/i.test(m.name)?"image/png":"image/jpeg",function(r){if(r.success){m.size=r.data.length;n(r.data)}else n(p.getAsBinary())});else n(p.getAsBinary());else q.send(p)});d=!!(File&&File.prototype.getAsDataURL);g.features={dragdrop:window.mozInnerScreenX!==undefined,jpgresize:d,pngresize:d,progress:h};i({success:true})}})})(plupload);(function(a){a.runtimes.Html4=a.addRuntime("html4",{init:function(f,g){var d={},c,b;function e(l){var k,j,m=[],n,h;h=l.value.replace(/\\/g,"/");h=h.substring(h.length,h.lastIndexOf("/")+1);n=a.guid();k=new a.File(n,h);d[n]=k;k.input=l;m.push(k);if(m.length)f.trigger("FilesAdded",m)}f.bind("Init",function(p){var h,x,v,t=[],o,u,m=p.settings.filters,l,s,r=/MSIE/.test(navigator.userAgent),k="javascript",w,j=document.body,n;if(f.settings.container){j=document.getElementById(f.settings.container);j.style.position="relative"}c=typeof p.settings.form=="string"?document.getElementById(p.settings.form):p.settings.form;if(!c){n=document.getElementById(f.settings.browse_button);for(;n;n=n.parentNode)if(n.nodeName=="FORM")c=n}if(!c){c=document.createElement("form");c.style.display="inline";n=document.getElementById(f.settings.container);n.parentNode.insertBefore(c,n);c.appendChild(n)}c.setAttribute("method","post");c.setAttribute("enctype","multipart/form-data");a.each(p.settings.multipart_params,function(z,y){var i=document.createElement("input");a.extend(i,{type:"hidden",name:y,value:z});c.appendChild(i)});b=document.createElement("iframe");b.setAttribute("src",k+':""');b.setAttribute("name",p.id+"_iframe");b.setAttribute("id",p.id+"_iframe");b.style.display="none";a.addEvent(b,"load",function(B){var C=B.target,z=f.currentfile,A;try{A=C.contentWindow.document||C.contentDocument||window.frames[C.id].document}catch(y){p.trigger("Error",{code:a.SECURITY_ERROR,message:"Security error.",file:z});return}if(A.location.href=="about:blank"||!z)return;var i=A.documentElement.innerText||A.documentElement.textContent;if(i!=""){z.status=a.DONE;z.loaded=1025;z.percent=100;if(z.input)z.input.removeAttribute("name");p.trigger("UploadProgress",z);p.trigger("FileUploaded",z,{response:i});if(c.tmpAction)c.setAttribute("action",c.tmpAction);if(c.tmpTarget)c.setAttribute("target",c.tmpTarget)}});c.appendChild(b);if(r)window.frames[b.id].name=b.name;x=document.createElement("div");x.id=p.id+"_iframe_container";for(o=0;o<m.length;o++){l=m[o].extensions.split(/,/);for(u=0;u<l.length;u++){s=a.mimeTypes[l[u]];if(s)t.push(s)}}a.extend(x.style,{position:"absolute",background:"transparent",width:"100px",height:"100px",overflow:"hidden",zIndex:99999,opacity:0});w=f.settings.shim_bgcolor;if(w)a.extend(x.style,{background:w,opacity:1});x.className="plupload_iframe";j.appendChild(x);function q(){v=document.createElement("input");v.setAttribute("type","file");v.setAttribute("accept",t.join(","));v.setAttribute("size",1);a.extend(v.style,{width:"100%",height:"100%",opacity:0});if(r)a.extend(v.style,{filter:"alpha(opacity=0)"});a.addEvent(v,"change",function(i){var y=i.target;if(y.value){q();y.style.display="none";e(y)}});x.appendChild(v);return true}q()});f.bind("Refresh",function(h){var i,j,k;i=document.getElementById(f.settings.browse_button);j=a.getPos(i,document.getElementById(h.settings.container));k=a.getSize(i);a.extend(document.getElementById(f.id+"_iframe_container").style,{top:j.y+"px",left:j.x+"px",width:k.w+"px",height:k.h+"px"})});f.bind("UploadFile",function(h,i){if(i.status==a.DONE||i.status==a.FAILED||h.state==a.STOPPED)return;if(!i.input){i.status=a.ERROR;return}i.input.setAttribute("name",h.settings.file_data_name);c.tmpAction=c.getAttribute("action");c.setAttribute("action",a.buildUrl(h.settings.url,{name:i.target_name||i.name}));c.tmpTarget=c.getAttribute("target");c.setAttribute("target",b.name);this.currentfile=i;c.submit()});f.bind("FilesRemoved",function(h,k){var j,l;for(j=0;j<k.length;j++){l=k[j].input;if(l)l.parentNode.removeChild(l)}});f.features={};g({success:true})}})})(plupload);
/*!
 * Ext.ux.PluploadPanel
 * Ext.ux.PluploadButton
 * (c) http://adtim.ru/extjs/ux_plupload
 * 2010-04-28 v0.1
 */
Ext.ux.PluploadPanel=Ext.extend(Ext.Panel,{constructor:function(config){this.autoScroll=false;this.bodyCssClass="x-plupload-body";this.success=[];this.failed=[];this.viewTpl=new Ext.XTemplate('<tpl for=".">','<dl id="{id}">','<dt style="width: 50%">{name}</dt>','<dt style="width: 15%">{size:fileSize}</dt>','<tpl exec="this.statusValue(status, percent, msg)"></tpl><dt style="width: 35%">{this.statusText}</dt>','<div class="x-clear"></div>',"</dl>","</tpl>",{compiled:true,statusText:"-",statusTextQueued:config.statusQueuedText||"Queued",statusTextUploading:config.statusUploadingText||"Uploaded ({0}%)",statusTextFailed:config.statusFailedText||"FAILED",statusTextDone:config.statusDoneText||"DONE",statusValue:function(status,percent,msg){if(status==1)this.statusText=this.statusTextQueued;else if(status==2)this.statusText=String.format(this.statusTextUploading,percent);else if(status==4)this.statusText=msg||this.statusTextFailed;else if(status==5)this.statusText=this.statusTextDone}});this.store=new Ext.data.JsonStore({fields:["id","loaded","name","size","percent","status","msg"],listeners:{load:this.onStoreLoad,remove:this.onStoreRemove,update:this.onStoreUpdate,scope:this}});this.pbar=new Ext.ProgressBar({flex:1});this.bbar=new Ext.Toolbar({layout:"hbox",style:{paddingLeft:"5px"},items:[this.pbar,new Ext.Toolbar.TextItem({text:"<i>uploader not initialized</i>",itemId:"status"})]});this.tbar=new Ext.Toolbar({enableOverflow:true,items:[new Ext.Button({text:config.addButtonText||"Add files",itemId:"addButton",iconCls:config.addButtonCls,disabled:true}),new Ext.Button({text:config.uploadButtonText||"Upload",handler:this.onStart,scope:this,disabled:true,itemId:"start",iconCls:config.uploadButtonCls}),new Ext.Button({text:config.cancelButtonText||"Cancel",handler:this.onCancel,scope:this,disabled:true,itemId:"cancel",iconCls:config.cancelButtonCls}),new Ext.SplitButton({text:config.deleteButtonText||"Remove",handler:this.onDeleteSelected,menu:new Ext.menu.Menu({items:[{text:config.deleteSelectedText||"<b>Remove selected</b>",handler:this.onDeleteSelected,scope:this},"-",{text:config.deleteUploadedText||"Remove uploaded",handler:this.onDeleteUploaded,scope:this},"-",{text:config.deleteAllText||"Remove all",handler:this.onDeleteAll,scope:this}]}),scope:this,disabled:true,itemId:"delete",iconCls:config.deleteButtonCls})]});this.view=new Ext.DataView({store:this.store,tpl:this.viewTpl,multiSelect:true,overClass:"plupload_over",selectedClass:"plupload_selected",itemSelector:"dl",emptyText:config.emptyText||'<div class="plupload_emptytext"><span>Queue is empty</span></div>',emptyDropText:config.emptyDropText||'<div class="plupload_emptytext"><span>Drop files here</span></div>',deferEmptyText:false,plugins:Ext.DataView.DragSelector?new Ext.DataView.DragSelector:""});this.items=this.view;Ext.ux.PluploadPanel.superclass.constructor.apply(this,arguments)},initComponent:function(){Ext.ux.PluploadPanel.superclass.initComponent.apply(this,arguments)},afterRender:function(){Ext.ux.PluploadPanel.superclass.afterRender.apply(this,arguments);this.initialize_uploader()},onDeleteSelected:function(){Ext.each(this.view.getSelectedRecords(),function(record){this.remove_file(record.get("id"))},this)},onDeleteAll:function(){this.store.each(function(record){this.remove_file(record.get("id"))},this)},onDeleteUploaded:function(){this.store.each(function(record){if(record.get("status")==5)this.remove_file(record.get("id"))},this)},onCancel:function(){this.uploader.stop()},onStart:function(){this.fireEvent("beforestart",this);if(this.multipart_params)this.uploader.settings.multipart_params=this.multipart_params;this.uploader.start()},initialize_uploader:function(){var runtimes="gears,browserplus,html5";if(this.flash_swf_url)runtimes="flash,"+runtimes;if(this.silverlight_xap_url)runtimes="silverlight,"+runtimes;this.uploader=new plupload.Uploader({url:this.url,runtimes:this.runtimes||runtimes,browse_button:this.getTopToolbar().getComponent("addButton").getEl().dom.id,container:this.getTopToolbar().getEl().dom.id,max_file_size:this.max_file_size||"10mb",resize:this.resize||"",flash_swf_url:this.flash_swf_url||"",silverlight_xap_url:this.silverlight_xap_url||"",filters:this.filters||[],chunk_size:this.chunk_size,unique_names:this.unique_names,multipart:this.multipart,multipart_params:this.multipart_params,drop_element:this.body.dom.id,required_features:this.required_features});Ext.each(["Init","ChunkUploaded","FilesAdded","FilesRemoved","FileUploaded","PostInit","QueueChanged","Refresh","StateChanged","UploadFile","UploadProgress","Error"],function(v){this.uploader.bind(v,eval("this."+v),this)},this);this.uploader.init()},remove_file:function(id){var fileObj=this.uploader.getFile(id);if(fileObj)this.uploader.removeFile(fileObj);else this.store.remove(this.store.getById(id))},update_pbar:function(){var t=this.uploader.total;var speed=Ext.util.Format.fileSize(t.bytesPerSec);var total=this.store.data.length;var failed=this.failed.length;var success=this.success.length;var sent=failed+success;var queued=total-success-failed;if(total){this.progressText="";var pbarText=String.format(this.progressText||"{2} of {1} uploaded ({5}/s)",sent,total,success,failed,queued,speed);var percent=t.percent/100;if(this.runtime=="flash"||this.runtime=="html4")if(total==sent||this.store.find("status",/1|2/)==-1)percent=1;this.pbar.updateProgress(percent,pbarText)}else this.pbar.updateProgress(0," ")},update_store:function(v){if(!v.msg)v.msg="";var data=this.store.getById(v.id);if(data){data.data=v;data.commit()}else this.store.loadData(v,true)},onStoreLoad:function(store,record,operation){this.update_pbar()},onStoreRemove:function(store,record,operation){if(!store.data.length){this.getTopToolbar().getComponent("delete").setDisabled(true);this.getTopToolbar().getComponent("start").setDisabled(true);this.uploader.total.reset()}var id=record.get("id");Ext.each(this.success,function(v){if(v&&v.id==id)this.success.remove(v)},this);Ext.each(this.failed,function(v){if(v&&v.id==id)this.failed.remove(v)},this);this.update_pbar()},onStoreUpdate:function(store,record,operation){this.update_pbar()},Init:function(uploader,data){var bbar=this.getBottomToolbar();var statusCmp=bbar.getComponent("status");this.runtime=data.runtime;if(this.runtime_visible==true)statusCmp.setText(" Uploader runtime: "+this.runtime);else statusCmp.setText("");bbar.syncSize();if(this.uploader.features.dragdrop){var v=this.view;v.emptyText=this.emptyDropText;if(v.rendered)v.refresh()}this.getTopToolbar().getComponent("addButton").setDisabled(false)},ChunkUploaded:function(){},FilesAdded:function(uploader,files){this.getTopToolbar().getComponent("delete").setDisabled(false);this.getTopToolbar().getComponent("start").setDisabled(false);Ext.each(files,function(v){this.update_store(v)},this)},FilesRemoved:function(uploader,files){Ext.each(files,function(file){this.store.remove(this.store.getById(file.id))},this)},FileUploaded:function(uploader,file,status){var response=Ext.util.JSON.decode(status.response);if(response.success==true){file.server_error=0;this.success.push(file)}else{if(response.message)file.msg='<span style="color: red">'+response.message+"</span>";file.server_error=1;this.failed.push(file)}this.update_store(file)},PostInit:function(){},QueueChanged:function(uploader){},Refresh:function(uploader){Ext.each(uploader.files,function(v){this.update_store(v)},this)},StateChanged:function(uploader){if(uploader.state==2){this.fireEvent("uploadstarted",this);this.getTopToolbar().getComponent("cancel").setDisabled(false);this.getTopToolbar().getComponent("start").setDisabled(true)}else{this.fireEvent("uploadcomplete",this,this.success,this.failed);this.getTopToolbar().getComponent("cancel").setDisabled(true);this.getTopToolbar().getComponent("start").setDisabled(false)}},UploadFile:function(){},UploadProgress:function(uploader,file){if(file.server_error)file.status=4;this.update_store(file)},Error:function(uploader,data){data.file.status=4;if(data.code==-600)data.file.msg=String.format('<span style="color: red">{0}</span>',this.statusInvalidSizeText||"Too big");else if(data.code==-700)data.file.msg=String.format('<span style="color: red">{0}</span>',this.statusInvalidExtensionText||"Invalid file type");else data.file.msg=String.format('<span style="color: red">{2} ({0}: {1})</span>',data.code,data.details,data.message);this.update_store(data.file)}});Ext.reg("pluploadpanel",Ext.ux.PluploadPanel);Ext.ux.PluploadButton=Ext.extend(Ext.Button,{constructor:function(config){this.uploadpanel=new Ext.ux.PluploadPanel(config.upload_config);this.window=new Ext.Window({title:config.window_title||config.text||"Upload files",width:config.window_width||640,height:config.window_height||380,layout:"fit",items:this.uploadpanel,closeAction:"hide",listeners:{hide:function(window){if(this.clearOnClose)this.uploadpanel.onDeleteAll()},scope:this}});this.handler=function(){this.window.show();this.uploadpanel.doLayout()};Ext.ux.PluploadButton.superclass.constructor.apply(this,arguments)}});Ext.reg("pluploadbutton",Ext.ux.PluploadButton);(function(){Ext.ns("Ext.ensible.ux","Ext.ensible.sample","Ext.ensible.plugins","Ext.ensible.cal");Ext.apply(Ext.ensible,{version:"1.0.1",versionDetails:{major:1,minor:0,patch:1},hasBorderRadius:!(Ext.isIE||Ext.isOpera),log:function(a){},Date:{use24HourTime:false,diff:function(f,a,c){var b=1,e=a.getTime()-f.getTime();if(c=="s")b=1e3;else if(c=="m")b=1e3*60;else if(c=="h")b=1e3*60*60;return Math.round(e/b)},diffDays:function(e,a){var b=1e3*60*60*24,c=a.clearTime(true).getTime()-e.clearTime(true).getTime();return Math.ceil(c/b)},copyTime:function(c,b){var a=b.clone();a.setHours(c.getHours(),c.getMinutes(),c.getSeconds(),c.getMilliseconds());return a},compare:function(c,b,a){var f=c,e=b;if(a!==true){f=c.clone();f.setMilliseconds(0);e=b.clone();e.setMilliseconds(0)}return e.getTime()-f.getTime()},maxOrMin:function(a){var f=a?0:Number.MAX_VALUE,c=0,b=arguments[1],e=b.length;for(;c<e;c++)f=Math[a?"max":"min"](f,b[c].getTime());return new Date(f)},max:function(){return this.maxOrMin.apply(this,[true,arguments])},min:function(){return this.maxOrMin.apply(this,[false,arguments])},isInRange:function(a,c,b){return a>=c&&a<=b},rangesOverlap:function(g,b,f,a){var c=g>=f&&g<=a,e=b>=f&&b<=a,h=g<=f&&b>=a;return c||e||h},isWeekend:function(a){return a.getDay()%6===0},isWeekday:function(a){return a.getDay()%6!==0}}})})();Ext.override(Ext.XTemplate,{applySubTemplate:function(a,i,h,e,c){var g=this,f,l=g.tpls[a],k,b=[];if(l.test&&!l.test.call(g,i,h,e,c)||l.exec&&l.exec.call(g,i,h,e,c))return"";k=l.target?l.target.call(g,i,h):i;f=k.length;h=l.target?i:h;if(l.target&&Ext.isArray(k)){Ext.each(k,function(m,n){b[b.length]=l.compiled.call(g,m,h,n+1,f)});return b.join("")}return l.compiled.call(g,k,h,e,c)}});Ext.override(Ext.form.DateField,{altFormats:"m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d|n-j|n/j",safeParse:function(b,c){if(/[gGhH]/.test(c.replace(/(\\.)/g,"")))return Date.parseDate(b,c);else{var a=Date.parseDate(b+" "+this.initTime,c+" "+this.initTimeFormat);if(a)return a.clearTime()}}});Ext.override(Ext.data.Store,{add:function(b){var e,a,c;b=[].concat(b);if(b.length<1)return;for(e=0,len=b.length;e<len;e++){a=b[e];a.join(this);if((a.dirty||a.phantom)&&this.modified.indexOf(a)==-1)this.modified.push(a)}c=this.data.length;this.data.addAll(b);if(this.snapshot)this.snapshot.addAll(b);this.fireEvent("add",this,b,c)},insert:function(c,b){var e,a;b=[].concat(b);for(e=0,len=b.length;e<len;e++){a=b[e];this.data.insert(c+e,a);a.join(this);if((a.dirty||a.phantom)&&this.modified.indexOf(a)==-1)this.modified.push(a)}if(this.snapshot)this.snapshot.addAll(b);this.fireEvent("add",this,b,c)},createRecords:function(c,b,f){var e=this.modified,h=b.length,a,g;for(g=0;g<h;g++){a=b[g];if(a.phantom&&a.isValid()){a.markDirty();if(e.indexOf(a)==-1)e.push(a)}}if(this.autoSave===true)this.save()}});Ext.data.MemoryProxy=function(b){var a={};a[Ext.data.Api.actions.read]=true;a[Ext.data.Api.actions.create]=true;a[Ext.data.Api.actions.update]=true;a[Ext.data.Api.actions.destroy]=true;Ext.data.MemoryProxy.superclass.constructor.call(this,{api:a});this.data=b};Ext.extend(Ext.data.MemoryProxy,Ext.data.DataProxy,{doRequest:function(f,c,g,b,h,e,a){h.call(e,null,a,true)}});Ext.apply(Ext.DomHelper,function(){var x=null,l=/^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i,n=/^table|tbody|tr|td$/i,e=/tag|children|cn|html$/i,t=/td|tr|tbody/i,p=/([a-z0-9-]+)\s*:\s*([^;\s]+(?:\s*[^;\s]+)*);?/gi,v=/end/i,s,o="afterbegin",q="afterend",c="beforebegin",r="beforeend",a="<table>",i="</table>",b=a+"<tbody>",k="</tbody>"+i,m=b+"<tr>",w="</tr>"+k;function h(B,D,C,E,A,y){var z=s.insertHtml(E,Ext.getDom(B),u(D));return C?Ext.get(z,true):z}function u(D){var z="",y,C,B,E;if(typeof D=="string")z=D;else if(Ext.isArray(D)){for(var A=0;A<D.length;A++)if(D[A])z+=u(D[A])}else{z+="<"+(D.tag=D.tag||"div");for(y in D){C=D[y];if(!e.test(y))if(typeof C=="object"){z+=" "+y+'="';for(B in C)z+=B+":"+C[B]+";";z+='"'}else z+=" "+({cls:"class",htmlFor:"for"}[y]||y)+'="'+C+'"'}if(l.test(D.tag))z+="/>";else{z+=">";if(E=D.children||D.cn)z+=u(E);else if(D.html)z+=D.html;z+="</"+D.tag+">"}}return z}function g(F,C,B,D){x.innerHTML=[C,B,D].join("");var y=-1,A=x,z;while(++y<F)A=A.firstChild;if(z=A.nextSibling){var E=document.createDocumentFragment();while(A){z=A.nextSibling;E.appendChild(A);A=z}A=E}return A}function f(y,z,B,A){var C,D;x=x||document.createElement("div");if(y=="td"&&(z==o||z==r)||!t.test(y)&&(z==c||z==q))return;D=z==c?B:z==q?B.nextSibling:z==o?B.firstChild:null;if(z==c||z==q)B=B.parentNode;if(y=="td"||y=="tr"&&(z==r||z==o))C=g(4,m,A,w);else if(y=="tbody"&&(z==r||z==o)||y=="tr"&&(z==c||z==q))C=g(3,b,A,k);else C=g(2,a,A,i);B.insertBefore(C,D);return C}s={markup:function(y){return u(y)},applyStyles:function(y,z){if(z){var A;y=Ext.fly(y);if(typeof z=="function")z=z.call();if(typeof z=="string"){p.lastIndex=0;while(A=p.exec(z))y.setStyle(A[1],A[2])}else if(typeof z=="object")y.setStyle(z)}},insertHtml:function(D,y,E){var C={},A,G,F,I,B,z,H;D=D.toLowerCase();C[c]=["BeforeBegin","previousSibling"];C[q]=["AfterEnd","nextSibling"];if(y.insertAdjacentHTML){if(n.test(y.tagName)&&(z=f(y.tagName.toLowerCase(),D,y,E)))return z;C[o]=["AfterBegin","firstChild"];C[r]=["BeforeEnd","lastChild"];if(A=C[D]){y.insertAdjacentHTML(A[0],E);return y[A[1]]}}else{F=y.ownerDocument.createRange();G="setStart"+(v.test(D)?"After":"Before");if(C[D]){F[G](y);if(F.createContextualFragment)I=F.createContextualFragment(E);else{I=document.createDocumentFragment(),H=document.createElement("div");I.appendChild(H);H.outerHTML=E}y.parentNode.insertBefore(I,D==c?y:y.nextSibling);return y[(D==c?"previous":"next")+"Sibling"]}else{B=(D==o?"first":"last")+"Child";if(y.firstChild){F[G](y[B]);I=F.createContextualFragment(E);if(D==o)y.insertBefore(I,y.firstChild);else y.appendChild(I)}else y.innerHTML=E;return y[B]}}throw'Illegal insertion point -> "'+D+'"';},insertBefore:function(y,A,z){return h(y,A,z,c)},insertAfter:function(y,A,z){return h(y,A,z,q,"nextSibling")},insertFirst:function(y,A,z){return h(y,A,z,o,"firstChild")},append:function(y,A,z){return h(y,A,z,r,"",true)},overwrite:function(y,A,z){y=Ext.getDom(y);y.innerHTML=u(A);return z?Ext.get(y.firstChild):y.firstChild},createHtml:u};return s}());Ext.ensible.cal.DayHeaderTemplate=function(a){Ext.apply(this,a);this.allDayTpl=new Ext.ensible.cal.BoxLayoutTemplate(a);this.allDayTpl.compile();Ext.ensible.cal.DayHeaderTemplate.superclass.constructor.call(this,'<div class="ext-cal-hd-ct">','<table class="ext-cal-hd-days-tbl" cellspacing="0" cellpadding="0">',"<tbody>","<tr>",'<td class="ext-cal-gutter"></td>','<td class="ext-cal-hd-days-td"><div class="ext-cal-hd-ad-inner">{allDayTpl}</div></td>','<td class="ext-cal-gutter-rt"></td>',"</tr>","</tbody>","</table>","</div>")};Ext.extend(Ext.ensible.cal.DayHeaderTemplate,Ext.XTemplate,{applyTemplate:function(a){return Ext.ensible.cal.DayHeaderTemplate.superclass.applyTemplate.call(this,{allDayTpl:this.allDayTpl.apply(a)})}});Ext.ensible.cal.DayHeaderTemplate.prototype.apply=Ext.ensible.cal.DayHeaderTemplate.prototype.applyTemplate;Ext.ensible.cal.DayBodyTemplate=function(a){Ext.apply(this,a);Ext.ensible.cal.DayBodyTemplate.superclass.constructor.call(this,'<table class="ext-cal-bg-tbl" cellspacing="0" cellpadding="0" style="height:{dayHeight}px;">',"<tbody>",'<tr height="1">','<td class="ext-cal-gutter"></td>','<td colspan="{dayCount}">','<div class="ext-cal-bg-rows">','<div class="ext-cal-bg-rows-inner">','<tpl for="times">','<div class="ext-cal-bg-row ext-row-{[xindex]}" style="height:{parent.hourHeight}px;">','<div class="ext-cal-bg-row-div {parent.hourSeparatorCls}" style="height:{parent.hourSeparatorHeight}px;"></div>',"</div>","</tpl>","</div>","</div>","</td>","</tr>","<tr>",'<td class="ext-cal-day-times">','<tpl for="times">','<div class="ext-cal-bg-row" style="height:{parent.hourHeight}px;">','<div class="ext-cal-day-time-inner"  style="height:{parent.hourHeight-1}px;">{.}</div>',"</div>","</tpl>","</td>",'<tpl for="days">','<td class="ext-cal-day-col">','<div class="ext-cal-day-col-inner">','<div id="{[this.id]}-day-col-{.:date("Ymd")}" class="ext-cal-day-col-gutter" style="height:{parent.dayHeight}px;"></div>',"</div>","</td>","</tpl>","</tr>","</tbody>","</table>")};Ext.extend(Ext.ensible.cal.DayBodyTemplate,Ext.XTemplate,{applyTemplate:function(e){this.today=(new Date).clearTime();this.dayCount=this.dayCount||1;var h=0,l=[],f=e.viewStart.clone();for(;h<this.dayCount;h++)l[h]=f.add(Date.DAY,h);var a=[],b=this.viewStartHour,g=this.viewEndHour,c=this.hourIncrement,k=this.hourHeight*(g-b);fmt=Ext.ensible.Date.use24HourTime?"G:i":"ga";f=new Date("1/1/2010").clearTime().add(Date.HOUR,b);for(h=b;h<g;h++){a.push(f.format(fmt));f=f.add(Date.MINUTE,c)}return Ext.ensible.cal.DayBodyTemplate.superclass.applyTemplate.call(this,{days:l,dayCount:l.length,times:a,hourHeight:this.hourHeight,hourSeparatorCls:this.showHourSeparator?"":"no-sep",dayHeight:k,hourSeparatorHeight:this.hourHeight/2-1})}});Ext.ensible.cal.DayBodyTemplate.prototype.apply=Ext.ensible.cal.DayBodyTemplate.prototype.applyTemplate;Ext.ensible.cal.BoxLayoutTemplate=function(a){Ext.apply(this,a);var b=this.showWeekLinks?'<div id="{weekLinkId}" class="ext-cal-week-link">{weekNum}</div>':"";Ext.ensible.cal.BoxLayoutTemplate.superclass.constructor.call(this,'<tpl for="weeks">','<div id="{[this.id]}-wk-{[xindex-1]}" class="ext-cal-wk-ct" style="top:{[this.getRowTop(xindex, xcount)]}%; height:{[this.getRowHeight(xcount)]}%;">',b,'<table class="ext-cal-bg-tbl" cellpadding="0" cellspacing="0">',"<tbody>","<tr>",'<tpl for=".">','<td id="{[this.id]}-day-{date:date("Ymd")}" class="{cellCls}">&#160;</td>',"</tpl>","</tr>","</tbody>","</table>",'<table class="ext-cal-evt-tbl" cellpadding="0" cellspacing="0">',"<tbody>","<tr>",'<tpl for=".">','<td id="{[this.id]}-ev-day-{date:date("Ymd")}" class="{titleCls}"><div>{title}</div></td>',"</tpl>","</tr>","</tbody>","</table>","</div>","</tpl>",{getRowTop:function(c,e){return(c-1)*(100/e)},getRowHeight:function(c){return 100/c}})};Ext.extend(Ext.ensible.cal.BoxLayoutTemplate,Ext.XTemplate,{firstWeekDateFormat:"D j",otherWeeksDateFormat:"j",singleDayDateFormat:"l, F j, Y",multiDayFirstDayFormat:"M j, Y",multiDayMonthStartFormat:"M j",applyTemplate:function(n){Ext.apply(this,n);var k=0,u="",f=true,v=false,h=false,t=false,a=false,m=false,e=n.weekendCls,p=n.prevMonthCls,s=n.nextMonthCls,b=n.todayCls,g=[[]],r=(new Date).clearTime(),l=this.viewStart.clone(),c=this.startDate.getMonth();for(;k<this.weekCount||this.weekCount==-1;k++){if(l>this.viewEnd)break;g[k]=[];for(var q=0;q<this.dayCount;q++){v=l.getTime()===r.getTime();h=f||l.getDate()==1;t=l.getMonth()<c&&this.weekCount==-1;a=l.getMonth()>c&&this.weekCount==-1;m=l.getDay()%6===0;if(l.getDay()==1){g[k].weekNum=this.showWeekNumbers?l.format("W"):"&#160;";g[k].weekLinkId="ext-cal-week-"+l.format("Ymd")}if(h)if(v)u=this.getTodayText();else u=l.format(this.dayCount==1?this.singleDayDateFormat:f?this.multiDayFirstDayFormat:this.multiDayMonthStartFormat);else{var i=k==0&&this.showHeader!==true?this.firstWeekDateFormat:this.otherWeeksDateFormat;u=v?this.getTodayText():l.format(i)}g[k].push({title:u,date:l.clone(),titleCls:"ext-cal-dtitle "+(v?" ext-cal-dtitle-today":"")+(k==0?" ext-cal-dtitle-first":"")+(t?" ext-cal-dtitle-prev":"")+(a?" ext-cal-dtitle-next":""),cellCls:"ext-cal-day "+(v?" "+b:"")+(q==0?" ext-cal-day-first":"")+(t?" "+p:"")+(a?" "+s:"")+(m&&e?" "+e:"")});l=l.add(Date.DAY,1);f=false}}return Ext.ensible.cal.BoxLayoutTemplate.superclass.applyTemplate.call(this,{weeks:g})},getTodayText:function(){var b=Ext.ensible.Date.use24HourTime?"G:i ":"g:ia ",c=this.showTodayText!==false?this.todayText:"",a=this.showTime!==false?' <span id="'+this.id+'-clock" class="ext-cal-dtitle-time">'+(new Date).format(b)+"</span>":"",e=c.length>0||a.length>0?" &#8212; ":"";if(this.dayCount==1)return(new Date).format(this.singleDayDateFormat)+e+c+a;fmt=this.weekCount==1?this.firstWeekDateFormat:this.otherWeeksDateFormat;return c.length>0?c+a:(new Date).format(fmt)+a}});Ext.ensible.cal.BoxLayoutTemplate.prototype.apply=Ext.ensible.cal.BoxLayoutTemplate.prototype.applyTemplate;Ext.ensible.cal.MonthViewTemplate=function(a){Ext.apply(this,a);this.weekTpl=new Ext.ensible.cal.BoxLayoutTemplate(a);this.weekTpl.compile();var b=this.showWeekLinks?'<div class="ext-cal-week-link-hd">&#160;</div>':"";Ext.ensible.cal.MonthViewTemplate.superclass.constructor.call(this,'<div class="ext-cal-inner-ct {extraClasses}">','<div class="ext-cal-hd-ct ext-cal-month-hd">',b,'<table class="ext-cal-hd-days-tbl" cellpadding="0" cellspacing="0">',"<tbody>","<tr>",'<tpl for="days">','<th class="ext-cal-hd-day{[xindex==1 ? " ext-cal-day-first" : ""]}" title="{title}">{name}</th>',"</tpl>","</tr>","</tbody>","</table>","</div>",'<div class="ext-cal-body-ct">{weeks}</div>',"</div>")};Ext.extend(Ext.ensible.cal.MonthViewTemplate,Ext.XTemplate,{dayHeaderFormat:"D",dayHeaderTitleFormat:"l, F j, Y",applyTemplate:function(g){var h=[],e=this.weekTpl.apply(g),c=g.viewStart;for(var b=0;b<7;b++){var f=c.add(Date.DAY,b);h.push({name:f.format(this.dayHeaderFormat),title:f.format(this.dayHeaderTitleFormat)})}var a=this.showHeader===true?"":"ext-cal-noheader";if(this.showWeekLinks)a+=" ext-cal-week-links";return Ext.ensible.cal.MonthViewTemplate.superclass.applyTemplate.call(this,{days:h,weeks:e,extraClasses:a})}});Ext.ensible.cal.MonthViewTemplate.prototype.apply=Ext.ensible.cal.MonthViewTemplate.prototype.applyTemplate;Ext.dd.ScrollManager=function(){var c=Ext.dd.DragDropMgr;var f={};var b=null;var i={};var h=function(m){b=null;a()};var k=function(){if(c.dragCurrent)c.refreshCache(c.dragCurrent.groups)};var e=function(){if(c.dragCurrent){var m=Ext.dd.ScrollManager;var n=i.el.ddScrollConfig?i.el.ddScrollConfig.increment:m.increment;if(!m.animate){if(i.el.scroll(i.dir,n))k()}else i.el.scroll(i.dir,n,true,m.animDuration,k)}};var a=function(){if(i.id)clearInterval(i.id);i.id=0;i.el=null;i.dir=""};var g=function(n,m){a();i.el=n;i.dir=m;var p=n.ddScrollConfig&&n.ddScrollConfig.frequency?n.ddScrollConfig.frequency:Ext.dd.ScrollManager.frequency,o=n.ddScrollConfig?n.ddScrollConfig.ddGroup:undefined;if(o===undefined||c.dragCurrent.ddGroup==o)i.id=setInterval(e,p)};var l=function(p,s){if(s||!c.dragCurrent)return;var t=Ext.dd.ScrollManager;if(!b||b!=c.dragCurrent){b=c.dragCurrent;t.refreshCache()}var u=Ext.lib.Event.getXY(p);var v=new Ext.lib.Point(u[0],u[1]);for(var n in f){var o=f[n],m=o._region;var q=o.ddScrollConfig?o.ddScrollConfig:t;if(m&&m.contains(v)&&o.isScrollable())if(m.bottom-v.y<=q.vthresh){if(i.el!=o)g(o,"down");return}else if(m.right-v.x<=q.hthresh){if(i.el!=o)g(o,"left");return}else if(v.y-m.top<=q.vthresh){if(i.el!=o)g(o,"up");return}else if(v.x-m.left<=q.hthresh){if(i.el!=o)g(o,"right");return}}a()};c.fireEvents=c.fireEvents.createSequence(l,c);c.stopDrag=c.stopDrag.createSequence(h,c);return{register:function(o){if(Ext.isArray(o))for(var n=0,m=o.length;n<m;n++)this.register(o[n]);else{o=Ext.get(o);f[o.id]=o}},unregister:function(o){if(Ext.isArray(o))for(var n=0,m=o.length;n<m;n++)this.unregister(o[n]);else{o=Ext.get(o);delete f[o.id]}},vthresh:25,hthresh:25,increment:100,frequency:500,animate:true,animDuration:.4,refreshCache:function(){for(var m in f)if(typeof f[m]=="object")f[m]._region=f[m].getRegion()}}}();Ext.ensible.cal.StatusProxy=function(a){Ext.apply(this,a);this.id=this.id||Ext.id();this.el=new Ext.Layer({dh:{id:this.id,cls:"ext-dd-drag-proxy x-dd-drag-proxy "+this.dropNotAllowed,cn:[{cls:"x-dd-drop-icon"},{cls:"ext-dd-ghost-ct",cn:[{cls:"x-dd-drag-ghost"},{cls:"ext-dd-msg"}]}]},shadow:!a||a.shadow!==false});this.ghost=Ext.get(this.el.dom.childNodes[1].childNodes[0]);this.message=Ext.get(this.el.dom.childNodes[1].childNodes[1]);this.dropStatus=this.dropNotAllowed};Ext.extend(Ext.ensible.cal.StatusProxy,Ext.dd.StatusProxy,{moveEventCls:"ext-cal-dd-move",addEventCls:"ext-cal-dd-add",update:function(a){if(typeof a=="string")this.ghost.update(a);else{this.ghost.update("");a.style.margin="0";this.ghost.dom.appendChild(a)}var b=this.ghost.dom.firstChild;if(b){Ext.fly(b).setStyle("float","none").setHeight("auto");Ext.getDom(b).id+="-ddproxy"}},updateMsg:function(a){this.message.update(a)}});Ext.ensible.cal.DragZone=Ext.extend(Ext.dd.DragZone,{ddGroup:"CalendarDD",eventSelector:".ext-cal-evt",constructor:function(b,a){if(!Ext.ensible.cal._statusProxyInstance)Ext.ensible.cal._statusProxyInstance=new Ext.ensible.cal.StatusProxy;this.proxy=Ext.ensible.cal._statusProxyInstance;Ext.ensible.cal.DragZone.superclass.constructor.call(this,b,a)},getDragData:function(b){var a=b.getTarget(this.eventSelector,3);if(a){var c=this.view.getEventRecordFromEl(a);if(!c)return;return{type:"eventdrag",ddel:a,eventStart:c.data[Ext.ensible.cal.EventMappings.StartDate.name],eventEnd:c.data[Ext.ensible.cal.EventMappings.EndDate.name],proxy:this.proxy}}a=this.view.getDayAt(b.xy[0],b.xy[1]);if(a.el)return{type:"caldrag",start:a.date,proxy:this.proxy};return null},onInitDrag:function(a,e){if(this.dragData.ddel){var b=this.dragData.ddel.cloneNode(true),c=Ext.fly(b).child("dl");Ext.fly(b).setWidth("auto");if(c)c.setHeight("auto");this.proxy.update(b);this.onStartDrag(a,e)}else if(this.dragData.start)this.onStartDrag(a,e);this.view.onInitDrag();return true},afterRepair:function(){if(Ext.enableFx&&this.dragData.ddel)Ext.Element.fly(this.dragData.ddel).highlight(this.hlColor||"c3daf9");this.dragging=false},getRepairXY:function(a){if(this.dragData.ddel)return Ext.Element.fly(this.dragData.ddel).getXY()},afterInvalidDrop:function(a,b){Ext.select(".ext-dd-shim").hide()},destroy:function(){Ext.ensible.cal.DragZone.superclass.destroy.call(this);delete Ext.ensible.cal._statusProxyInstance}});Ext.ensible.cal.DropZone=Ext.extend(Ext.dd.DropZone,{ddGroup:"CalendarDD",eventSelector:".ext-cal-evt",dateRangeFormat:"{0}-{1}",dateFormat:"n/j",shims:[],getTargetFromEvent:function(b){var a=this.dragOffset||0,f=b.getPageY()-a,c=this.view.getDayAt(b.getPageX(),f);return c.el?c:null},onNodeOver:function(f,l,k,h){var a=Ext.ensible.Date,b=h.type=="eventdrag"?f.date:a.min(h.start,f.date),g=h.type=="eventdrag"?f.date.add(Date.DAY,a.diffDays(h.eventStart,h.eventEnd)):a.max(h.start,f.date);if(!this.dragStartDate||!this.dragEndDate||a.diffDays(b,this.dragStartDate)!=0||a.diffDays(g,this.dragEndDate)!=0){this.dragStartDate=b;this.dragEndDate=g.clearTime().add(Date.DAY,1).add(Date.MINUTE,-30);this.shim(b,g);var i=b.format(this.dateFormat);if(a.diffDays(b,g)>0){g=g.format(this.dateFormat);i=String.format(this.dateRangeFormat,i,g)}var c=String.format(h.type=="eventdrag"?this.moveText:this.createText,i);h.proxy.updateMsg(c)}return this.dropAllowed},shim:function(a,f){this.currWeek=-1;var b=a.clone(),g=0,e,h,c=Ext.ensible.Date.diffDays(b,f)+1;Ext.each(this.shims,function(i){if(i)i.isActive=false});while(g++<c){var k=this.view.getDayEl(b);if(k){var l=this.view.getWeekIndex(b),e=this.shims[l];if(!e){e=this.createShim();this.shims[l]=e}if(l!=this.currWeek){e.boxInfo=k.getBox();this.currWeek=l}else{h=k.getBox();e.boxInfo.right=h.right;e.boxInfo.width=h.right-e.boxInfo.x}e.isActive=true}b=b.add(Date.DAY,1)}Ext.each(this.shims,function(i){if(i)if(i.isActive){i.show();i.setBox(i.boxInfo)}else if(i.isVisible())i.hide()})},createShim:function(){var a=this.view.ownerCalendarPanel?this.view.ownerCalendarPanel:this.view;if(!this.shimCt){this.shimCt=Ext.get("ext-dd-shim-ct-"+a.id);if(!this.shimCt){this.shimCt=document.createElement("div");this.shimCt.id="ext-dd-shim-ct-"+a.id;a.getEl().parent().appendChild(this.shimCt)}}var b=document.createElement("div");b.className="ext-dd-shim";this.shimCt.appendChild(b);return new Ext.Layer({shadow:false,useDisplay:true,constrain:false},b)},clearShims:function(){Ext.each(this.shims,function(a){if(a)a.hide()})},onContainerOver:function(a,c,b){return this.dropAllowed},onCalendarDragComplete:function(){delete this.dragStartDate;delete this.dragEndDate;this.clearShims()},onNodeDrop:function(h,a,f,c){if(h&&c){if(c.type=="eventdrag"){var g=this.view.getEventRecordFromEl(c.ddel),b=Ext.ensible.Date.copyTime(g.data[Ext.ensible.cal.EventMappings.StartDate.name],h.date);this.view.onEventDrop(g,b);this.onCalendarDragComplete();return true}if(c.type=="caldrag"){this.view.onCalendarEndDrag(this.dragStartDate,this.dragEndDate,this.onCalendarDragComplete.createDelegate(this));return true}}this.onCalendarDragComplete();return false},onContainerDrop:function(a,c,b){this.onCalendarDragComplete();return false}});Ext.ensible.cal.DayViewDragZone=Ext.extend(Ext.ensible.cal.DragZone,{ddGroup:"DayViewDD",resizeSelector:".ext-evt-rsz",getDragData:function(c){var a=c.getTarget(this.resizeSelector,2,true);if(a){var b=a.parent(this.eventSelector),f=this.view.getEventRecordFromEl(b);if(!f)return;return{type:"eventresize",xy:c.xy,ddel:b.dom,eventStart:f.data[Ext.ensible.cal.EventMappings.StartDate.name],eventEnd:f.data[Ext.ensible.cal.EventMappings.EndDate.name],proxy:this.proxy}}var a=c.getTarget(this.eventSelector,3);if(a){var f=this.view.getEventRecordFromEl(a);if(!f)return;return{type:"eventdrag",xy:c.xy,ddel:a,eventStart:f.data[Ext.ensible.cal.EventMappings.StartDate.name],eventEnd:f.data[Ext.ensible.cal.EventMappings.EndDate.name],proxy:this.proxy}}a=this.view.getDayAt(c.xy[0],c.xy[1]);if(a.el)return{type:"caldrag",dayInfo:a,proxy:this.proxy};return null}});Ext.ensible.cal.DayViewDropZone=Ext.extend(Ext.ensible.cal.DropZone,{ddGroup:"DayViewDD",dateRangeFormat:"{0}-{1}",dateFormat:"n/j",onNodeOver:function(c,o,m,i){var b,p=this.createText,h=Ext.ensible.Date.use24HourTime?"G:i":"g:ia";if(i.type=="caldrag"){if(!this.dragStartMarker){this.dragStartMarker=c.el.parent().createChild({style:"position:absolute;"});this.dragStartMarker.setBox(i.dayInfo.timeBox);this.dragCreateDt=i.dayInfo.date}var l,k=this.dragStartMarker.getBox();k.height=Math.ceil(Math.abs(m.xy[1]-k.y)/c.timeBox.height)*c.timeBox.height;if(m.xy[1]<k.y){k.height+=c.timeBox.height;k.y=k.y-k.height+c.timeBox.height;l=this.dragCreateDt.add(Date.MINUTE,this.ddIncrement)}else c.date=c.date.add(Date.MINUTE,this.ddIncrement);this.shim(this.dragCreateDt,k);var s=Ext.ensible.Date.copyTime(c.date,this.dragCreateDt);this.dragStartDate=Ext.ensible.Date.min(this.dragCreateDt,s);this.dragEndDate=l||Ext.ensible.Date.max(this.dragCreateDt,s);b=String.format(this.dateRangeFormat,this.dragStartDate.format(h),this.dragEndDate.format(h))}else{var r=Ext.get(i.ddel),q=r.parent().parent(),k=r.getBox();k.width=q.getWidth();if(i.type=="eventdrag"){if(this.dragOffset===undefined){var f=this.view.getDayAt(i.xy[0],i.xy[1]).timeBox;this.dragOffset=f.y-k.y}else k.y=c.timeBox.y;b=c.date.format(this.dateFormat+" "+h);k.x=c.el.getLeft();this.shim(c.date,k);p=this.moveText}if(i.type=="eventresize"){if(!this.resizeDt)this.resizeDt=c.date;k.x=q.getLeft();k.height=Math.ceil(Math.abs(m.xy[1]-k.y)/c.timeBox.height)*c.timeBox.height;if(m.xy[1]<k.y)k.y-=k.height;else c.date=c.date.add(Date.MINUTE,this.ddIncrement);this.shim(this.resizeDt,k);var s=Ext.ensible.Date.copyTime(c.date,this.resizeDt),a=Ext.ensible.Date.min(i.eventStart,s),g=Ext.ensible.Date.max(i.eventStart,s);i.resizeDates={StartDate:a,EndDate:g};b=String.format(this.dateRangeFormat,a.format(h),g.format(h));p=this.resizeText}}i.proxy.updateMsg(String.format(p,b));return this.dropAllowed},shim:function(b,a){Ext.each(this.shims,function(e){if(e){e.isActive=false;e.hide()}});var c=this.shims[0];if(!c){c=this.createShim();this.shims[0]=c}c.isActive=true;c.show();c.setBox(a)},onNodeDrop:function(g,a,c,b){if(g&&b){if(b.type=="eventdrag"){var f=this.view.getEventRecordFromEl(b.ddel);this.view.onEventDrop(f,g.date);this.onCalendarDragComplete();delete this.dragOffset;return true}if(b.type=="eventresize"){var f=this.view.getEventRecordFromEl(b.ddel);this.view.onEventResize(f,b.resizeDates);this.onCalendarDragComplete();delete this.resizeDt;return true}if(b.type=="caldrag"){Ext.destroy(this.dragStartMarker);delete this.dragStartMarker;delete this.dragCreateDt;this.view.onCalendarEndDrag(this.dragStartDate,this.dragEndDate,this.onCalendarDragComplete.createDelegate(this));return true}}this.onCalendarDragComplete();return false}});Ext.ensible.cal.EventStore=Ext.extend(Ext.data.Store,{constructor:function(a){this.deferLoad=a.autoLoad;a.autoLoad=false;Ext.ensible.cal.EventStore.superclass.constructor.apply(this,arguments)},load:function(a){Ext.ensible.log("store load");if(a.params)delete this.initialParams;if(this.initialParams){a=Ext.isObject(a)?a:{};a.params=a.params||{};Ext.apply(a.params,this.initialParams);delete this.initialParams}Ext.ensible.cal.EventStore.superclass.load.call(this,a)}});Ext.reg("extensible.eventstore",Ext.ensible.cal.EventStore);Ext.ensible.cal.EventMappings={EventId:{name:"EventId",mapping:"id",type:"int"},CalendarId:{name:"CalendarId",mapping:"cid",type:"int"},Title:{name:"Title",mapping:"title",type:"string"},StartDate:{name:"StartDate",mapping:"start",type:"date",dateFormat:"c"},EndDate:{name:"EndDate",mapping:"end",type:"date",dateFormat:"c"},RRule:{name:"RecurRule",mapping:"recur_rule"},Location:{name:"Location",mapping:"loc",type:"string"},Notes:{name:"Notes",mapping:"notes",type:"string"},Url:{name:"Url",mapping:"url",type:"string"},IsAllDay:{name:"IsAllDay",mapping:"ad",type:"boolean"},Reminder:{name:"Reminder",mapping:"rem",type:"string"}};Ext.ensible.cal.CalendarMappings={CalendarId:{name:"CalendarId",mapping:"id",type:"int"},Title:{name:"Title",mapping:"title",type:"string"},Description:{name:"Description",mapping:"desc",type:"string"},ColorId:{name:"ColorId",mapping:"color",type:"int"},IsHidden:{name:"IsHidden",mapping:"hidden",type:"boolean"}};Ext.ensible.cal.EventRecord=Ext.extend(Ext.data.Record,{fields:new Ext.util.MixedCollection(false,function(a){return a.name})});Ext.ensible.cal.EventRecord.reconfigure=function(){var f=Ext.ensible.cal,g=f.EventMappings,e=f.EventRecord.prototype,b=[];for(prop in g)if(g.hasOwnProperty(prop))b.push(g[prop]);e.fields.clear();for(var c=0,a=b.length;c<a;c++)e.fields.add(new Ext.data.Field(b[c]));return f.EventRecord};Ext.ensible.cal.EventRecord.reconfigure();Ext.ensible.cal.CalendarRecord=Ext.extend(Ext.data.Record,{fields:new Ext.util.MixedCollection(false,function(a){return a.name})});Ext.ensible.cal.CalendarRecord.reconfigure=function(){var f=Ext.ensible.cal,g=f.CalendarMappings,e=f.CalendarRecord.prototype,b=[];for(prop in g)if(g.hasOwnProperty(prop))b.push(g[prop]);e.fields.clear();for(var c=0,a=b.length;c<a;c++)e.fields.add(new Ext.data.Field(b[c]));return f.CalendarRecord};Ext.ensible.cal.CalendarRecord.reconfigure();Ext.ensible.cal.WeekEventRenderer=function(){var a=function(i,f,e){var h=1;var c,b=Ext.get(i+"-wk-"+f);if(b){var g=b.child(".ext-cal-evt-tbl",true);c=g.tBodies[0].childNodes[e+h];if(!c)c=Ext.DomHelper.append(g.tBodies[0],"<tr></tr>")}return Ext.get(c)};return{render:function(n){var g=0,b=n.eventGrid,l=n.viewStart.clone(),m=n.tpl,r=n.maxEventsPerDay!=undefined?n.maxEventsPerDay:999,t=n.weekCount<1?6:n.weekCount,p=n.weekCount==1?n.dayCount:7;for(;g<t;g++){var f,y=0,c=b[g];var A=l.clone();var h=A.add(Date.DAY,p).add(Date.MILLI,-1);for(;y<p;y++){if(c&&c[y]){var x=emptyCells=skipped=0,s=c[y],e=s.length,k;for(;x<e;x++){if(!s[x]){emptyCells++;continue}if(emptyCells>0&&x-emptyCells<r){f=a(n.id,g,x-emptyCells);var q={tag:"td",cls:"ext-cal-ev",html:"&#160;",id:n.id+"-empty-"+e+"-day-"+l.format("Ymd")};if(emptyCells>1&&r-x>emptyCells)q.rowspan=Math.min(emptyCells,r-x);Ext.DomHelper.append(f,q);emptyCells=0}if(x>=r){skipped++;continue}k=s[x];if(!k.isSpan||k.isSpanStart){var v=k.data||k.event.data;v._weekIndex=g;v._renderAsAllDay=v[Ext.ensible.cal.EventMappings.IsAllDay.name]||k.isSpanStart;v.spanLeft=v[Ext.ensible.cal.EventMappings.StartDate.name].getTime()<A.getTime();v.spanRight=v[Ext.ensible.cal.EventMappings.EndDate.name].getTime()>h.getTime();v.spanCls=v.spanLeft?v.spanRight?"ext-cal-ev-spanboth":"ext-cal-ev-spanleft":v.spanRight?"ext-cal-ev-spanright":"";var f=a(n.id,g,x),q={tag:"td",cls:"ext-cal-ev",cn:m.apply(n.templateDataFn(v))},i=Ext.ensible.Date.diffDays(l,v[Ext.ensible.cal.EventMappings.EndDate.name])+1,u=Math.min(i,p-y);if(u>1)q.colspan=u;Ext.DomHelper.append(f,q)}}if(x>r){f=a(n.id,g,r);Ext.DomHelper.append(f,{tag:"td",cls:"ext-cal-ev-more",id:"ext-cal-ev-more-"+l.format("Ymd"),cn:{tag:"a",html:String.format(n.getMoreText(skipped),skipped)}})}if(e<n.evtMaxCount[g]){f=a(n.id,g,e);if(f){var q={tag:"td",cls:"ext-cal-ev",id:n.id+"-empty-"+(e+1)+"-day-"+l.format("Ymd")};var z=n.evtMaxCount[g]-e;if(z>1)q.rowspan=z;Ext.DomHelper.append(f,q)}}}else{f=a(n.id,g,0);if(f){var q={tag:"td",cls:"ext-cal-ev",html:"&#160;",id:n.id+"-empty-day-"+l.format("Ymd")};if(n.evtMaxCount[g]>1)q.rowspan=n.evtMaxCount[g];Ext.DomHelper.append(f,q)}}l=l.add(Date.DAY,1)}}}}}();Ext.ensible.cal.CalendarCombo=Ext.extend(Ext.form.ComboBox,{fieldLabel:"Calendar",triggerAction:"all",mode:"local",forceSelection:true,selectOnFocus:true,width:200,defaultCls:"x-cal-default",initComponent:function(){var a=Ext.ensible.cal,b=a.CalendarMappings;a.CalendarCombo.superclass.initComponent.call(this);this.valueField=b.CalendarId.name;this.displayField=b.Title.name;this.tpl=this.tpl||'<tpl for="."><div class="x-combo-list-item x-cal-{'+b.ColorId.name+'}"><div class="ext-cal-picker-icon">&#160;</div>{'+this.displayField+"}</div></tpl>"},afterRender:function(){Ext.ensible.cal.CalendarCombo.superclass.afterRender.call(this);this.wrap=this.el.up(".x-form-field-wrap");this.wrap.addClass("ext-calendar-picker");this.icon=Ext.DomHelper.append(this.wrap,{tag:"div",cls:"ext-cal-picker-icon ext-cal-picker-mainicon"})},assertValue:function(){var b=this.getRawValue(),a=this.findRecord(this.displayField,b);if(!a&&this.forceSelection)if(b.length>0&&b!=this.emptyText){this.store.clearFilter();this.setValue(this.value);this.applyEmptyText()}else this.clearValue();else{if(a){if(b==a.get(this.displayField)&&this.value==a.get(this.valueField))return;b=a.get(this.valueField||this.displayField)}this.setValue(b)}},getStyleClass:function(a){if(a&&a!==""){var b=this.store.getById(a);return"x-cal-"+b.data[Ext.ensible.cal.CalendarMappings.ColorId.name]}},setValue:function(a){this.wrap.removeClass(this.getStyleClass(this.getValue()));a=a||this.store.getAt(0).data[Ext.ensible.cal.CalendarMappings.CalendarId.name];Ext.ensible.cal.CalendarCombo.superclass.setValue.call(this,a);this.wrap.addClass(this.getStyleClass(a))}});Ext.reg("extensible.calendarcombo",Ext.ensible.cal.CalendarCombo);Ext.ensible.cal.RecurrenceCombo=Ext.extend(Ext.form.ComboBox,{width:160,fieldLabel:"Repeats",mode:"local",triggerAction:"all",forceSelection:true,displayField:"pattern",valueField:"id",recurrenceText:{none:"Does not repeat",daily:"Daily",weekly:"Weekly",monthly:"Monthly",yearly:"Yearly"},initComponent:function(){Ext.ensible.cal.RecurrenceCombo.superclass.initComponent.call(this);this.addEvents("recurrencechange");this.store=this.store||new Ext.data.ArrayStore({fields:["id","pattern"],idIndex:0,data:[["NONE",this.recurrenceText.none],["DAILY",this.recurrenceText.daily],["WEEKLY",this.recurrenceText.weekly],["MONTHLY",this.recurrenceText.monthly],["YEARLY",this.recurrenceText.yearly]]})},initValue:function(){Ext.ensible.cal.RecurrenceCombo.superclass.initValue.call(this);if(this.value!=undefined)this.fireEvent("recurrencechange",this.value)},setValue:function(b){var a=this.value;Ext.ensible.cal.RecurrenceCombo.superclass.setValue.call(this,b);if(a!=b)this.fireEvent("recurrencechange",b);return this}});Ext.reg("extensible.recurrencecombo",Ext.ensible.cal.RecurrenceCombo);Ext.ensible.cal.RecurrenceField=Ext.extend(Ext.form.Field,{fieldLabel:"Repeats",startDate:(new Date).clearTime(),enableFx:true,initComponent:function(){Ext.ensible.cal.RecurrenceField.superclass.initComponent.call(this);if(!this.height)this.autoHeight=true},onRender:function(b,a){if(!this.el){this.frequencyCombo=new Ext.ensible.cal.RecurrenceCombo({id:this.id+"-frequency",listeners:{recurrencechange:{fn:this.showOptions,scope:this}}});if(this.fieldLabel)this.frequencyCombo.fieldLabel=this.fieldLabel;this.innerCt=new Ext.Container({cls:"extensible-recur-inner-ct",items:[]});this.fieldCt=new Ext.Container({autoEl:{id:this.id},cls:"extensible-recur-ct",renderTo:b,items:[this.frequencyCombo,this.innerCt]});this.fieldCt.ownerCt=this;this.innerCt.ownerCt=this.fieldCt;this.el=this.fieldCt.getEl();this.items=new Ext.util.MixedCollection;this.items.addAll(this.initSubComponents())}Ext.ensible.cal.RecurrenceField.superclass.onRender.call(this,b,a)},initValue:function(){this.setStartDate(this.startDate);if(this.value!==undefined)this.setValue(this.value);else if(this.frequency!==undefined)this.setValue("FREQ="+this.frequency);else this.setValue("NONE");this.originalValue=this.getValue()},showOptions:function(c){var b=false,a="day";if(c!="NONE")this.hideSubPanels();this.frequency=c;switch(c){case"DAILY":b=this.showSubPanel(this.repeatEvery);b|=this.showSubPanel(this.until);break;case"WEEKLY":b=this.showSubPanel(this.repeatEvery);b|=this.showSubPanel(this.weekly);b|=this.showSubPanel(this.until);a="week";break;case"MONTHLY":b=this.showSubPanel(this.repeatEvery);b|=this.showSubPanel(this.monthly);b|=this.showSubPanel(this.until);a="month";break;case"YEARLY":b=this.showSubPanel(this.repeatEvery);b|=this.showSubPanel(this.yearly);b|=this.showSubPanel(this.until);a="year";break;default:this.hideInnerCt();return}if(b)this.innerCt.doLayout();this.showInnerCt();this.repeatEvery.updateLabel(a)},showSubPanel:function(a){if(a.rendered){a.show();return false}else{if(this.repeatEvery.rendered)a=this.innerCt.insert(1,a);else a=this.innerCt.add(a);a.show();return true}},showInnerCt:function(){if(!this.innerCt.isVisible())if(this.enableFx&&Ext.enableFx)this.innerCt.getPositionEl().slideIn("t",{duration:.3});else this.innerCt.show()},hideInnerCt:function(){if(this.innerCt.isVisible())if(this.enableFx&&Ext.enableFx)this.innerCt.getPositionEl().slideOut("t",{duration:.3,easing:"easeIn",callback:this.hideSubPanels,scope:this});else{this.innerCt.hide();this.hideSubPanels()}},setStartDate:function(a){this.items.each(function(b){b.setStartDate(a)})},getValue:function(){if(!this.rendered)return this.value;if(this.frequency=="NONE")return"";var a="FREQ="+this.frequency;this.items.each(function(b){if(b.isVisible())a+=b.getValue()});return a},setValue:function(a){this.value=a;if(a==null||a==""||a=="NONE"){this.frequencyCombo.setValue("NONE");this.showOptions("NONE");return this}var b=a.split(";");this.items.each(function(c){c.setValue(b)});Ext.each(b,function(e){if(e.indexOf("FREQ")>-1){var c=e.split("=")[1];this.frequencyCombo.setValue(c);this.showOptions(c);return}},this);return this},hideSubPanels:function(){this.items.each(function(a){a.hide()})},initSubComponents:function(){Ext.ensible.cal.recurrenceBase=Ext.extend(Ext.Container,{fieldLabel:" ",labelSeparator:"",hideLabel:true,layout:"table",anchor:"100%",startDate:this.startDate,getSuffix:function(a){if(!Ext.isNumber(a))return"";switch(a){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th"}},initNthCombo:function(i){var i=Ext.getCmp(this.id+"-combo"),b=this.startDate,n=i.getStore(),o=b.getLastDateOfMonth().getDate(),c=b.getDate(),p=b.format("jS")+" day",h=this.id.indexOf("-yearly")>-1,l=" in "+b.format("F"),g,e,k,a,m,f,q;g=Math.ceil(c/7);e=g+this.getSuffix(g)+b.format(" l");if(h){p+=l;e+=l}f=[[p],[e]];q=h?l:"";if(o-c<7)f.push(["last "+b.format("l")+q]);if(o==c)f.push(["last day"+q]);m=n.find("field1",i.getValue());n.removeAll();i.clearValue();n.loadData(f);if(m>f.length-1)m=f.length-1;i.setValue(n.getAt(m>-1?m:0).data.field1);return this},setValue:Ext.emptyFn});this.repeatEvery=new Ext.ensible.cal.recurrenceBase({id:this.id+"-every",layoutConfig:{columns:3},items:[{xtype:"label",text:"Repeat every"},{xtype:"numberfield",id:this.id+"-every-num",value:1,width:35,minValue:1,maxValue:99,allowBlank:false,enableKeyEvents:true,listeners:{keyup:{fn:function(){this.repeatEvery.updateLabel()},scope:this}}},{xtype:"label",id:this.id+"-every-label"}],setStartDate:function(a){this.startDate=a;this.updateLabel();return this},getValue:function(){var a=Ext.getCmp(this.id+"-num").getValue();return a>1?";INTERVAL="+a:""},setValue:function(a){var c=false,b=Ext.isArray(a)?a:a.split(";");Ext.each(b,function(f){if(f.indexOf("INTERVAL")>-1){var e=f.split("=")[1];Ext.getCmp(this.id+"-num").setValue(e)}},this);return this},updateLabel:function(b){if(this.rendered){var a=Ext.getCmp(this.id+"-num").getValue()==1?"":"s";this.type=b?b.toLowerCase():this.type||"day";var c=Ext.getCmp(this.id+"-label");if(c.rendered)c.update(this.type+a+" beginning "+this.startDate.format("l, F j"))}return this},afterRender:function(){Ext.ensible.cal.recurrenceBase.superclass.afterRender.call(this);this.updateLabel()}});this.weekly=new Ext.ensible.cal.recurrenceBase({id:this.id+"-weekly",layoutConfig:{columns:2},items:[{xtype:"label",text:"on:"},{xtype:"checkboxgroup",id:this.id+"-weekly-days",items:[{boxLabel:"Sun",name:"SU",id:this.id+"-weekly-SU"},{boxLabel:"Mon",name:"MO",id:this.id+"-weekly-MO"},{boxLabel:"Tue",name:"TU",id:this.id+"-weekly-TU"},{boxLabel:"Wed",name:"WE",id:this.id+"-weekly-WE"},{boxLabel:"Thu",name:"TH",id:this.id+"-weekly-TH"},{boxLabel:"Fri",name:"FR",id:this.id+"-weekly-FR"},{boxLabel:"Sat",name:"SA",id:this.id+"-weekly-SA"}]}],setStartDate:function(a){this.startDate=a;this.selectToday();return this},selectToday:function(){this.clearValue();var a=this.startDate.format("D").substring(0,2).toUpperCase();Ext.getCmp(this.id+"-days").setValue(a,true)},clearValue:function(){Ext.getCmp(this.id+"-days").setValue([false,false,false,false,false,false,false])},getValue:function(){var b="",c=Ext.getCmp(this.id+"-days").getValue();Ext.each(c,function(e){if(b.length>0)b+=",";b+=e.name});var a=this.startDate.format("D").substring(0,2).toUpperCase();return b.length>0&&b!=a?";BYDAY="+b:""},setValue:function(a){var c=false,b=Ext.isArray(a)?a:a.split(";");this.clearValue();Ext.each(b,function(f){if(f.indexOf("BYDAY")>-1){var g=f.split("=")[1].split(","),e={};Ext.each(g,function(h){e[h]=true},this);Ext.getCmp(this.id+"-days").setValue(e);return c=true}},this);if(!c)this.selectToday();return this}});this.monthly=new Ext.ensible.cal.recurrenceBase({id:this.id+"-monthly",layoutConfig:{columns:3},items:[{xtype:"label",text:"on the"},{xtype:"combo",id:this.id+"-monthly-combo",mode:"local",width:150,triggerAction:"all",forceSelection:true,store:[]},{xtype:"label",text:"of each month"}],setStartDate:function(a){this.startDate=a;this.initNthCombo();return this},getValue:function(){var f=Ext.getCmp(this.id+"-combo"),c=f.getStore(),a=c.find("field1",f.getValue()),e=this.startDate,b=e.format("D").substring(0,2).toUpperCase();if(a>-1)switch(a){case 0:return";BYMONTHDAY="+e.format("j");case 1:return";BYDAY="+f.getValue()[0].substring(0,1)+b;case 2:return";BYDAY=-1"+b;default:return";BYMONTHDAY=-1"}return""}});this.yearly=new Ext.ensible.cal.recurrenceBase({id:this.id+"-yearly",layoutConfig:{columns:3},items:[{xtype:"label",text:"on the"},{xtype:"combo",id:this.id+"-yearly-combo",mode:"local",width:170,triggerAction:"all",forceSelection:true,store:[]},{xtype:"label",text:"each year"}],setStartDate:function(a){this.startDate=a;this.initNthCombo();return this},getValue:function(){var f=Ext.getCmp(this.id+"-combo"),c=f.getStore(),a=c.find("field1",f.getValue()),e=this.startDate,b=e.format("D").substring(0,2).toUpperCase(),g=";BYMONTH="+e.format("n");if(a>-1)switch(a){case 0:return g;case 1:return g+";BYDAY="+f.getValue()[0].substring(0,1)+b;case 2:return g+";BYDAY=-1"+b;default:return g+";BYMONTHDAY=-1"}return""}});this.until=new Ext.ensible.cal.recurrenceBase({id:this.id+"-until",untilDateFormat:"Ymd\\T000000\\Z",layoutConfig:{columns:5},items:[{xtype:"label",text:"and continuing"},{xtype:"combo",id:this.id+"-until-combo",mode:"local",width:85,triggerAction:"all",forceSelection:true,value:"forever",store:["forever","for","until"],listeners:{select:{fn:function(b,c){var a=Ext.getCmp(this.id+"-until-date");if(c.data.field1=="until"){a.show();if(a.getValue()==""){a.setValue(this.startDate.add(Date.DAY,5));a.setMinValue(this.startDate.clone().add(Date.DAY,1))}}else a.hide();if(c.data.field1=="for"){Ext.getCmp(this.id+"-until-num").show();Ext.getCmp(this.id+"-until-endlabel").show()}else{Ext.getCmp(this.id+"-until-num").hide();Ext.getCmp(this.id+"-until-endlabel").hide()}},scope:this}}},{xtype:"datefield",id:this.id+"-until-date",showToday:false,hidden:true},{xtype:"numberfield",id:this.id+"-until-num",value:5,width:35,minValue:1,maxValue:99,allowBlank:false,hidden:true},{xtype:"label",id:this.id+"-until-endlabel",text:"occurrences",hidden:true}],setStartDate:function(a){this.startDate=a;return this},getValue:function(){var b=Ext.getCmp(this.id+"-date");if(b.isVisible())return";UNTIL="+b.getValue().format(this.untilDateFormat);var a=Ext.getCmp(this.id+"-num");if(a.isVisible())return";COUNT="+a.getValue();return""},setValue:function(a){var c=false,b=Ext.isArray(a)?a:a.split(";");Ext.each(b,function(g){if(g.indexOf("COUNT")>-1){var f=g.split("=")[1];Ext.getCmp(this.id+"-combo").setValue("for");Ext.getCmp(this.id+"-num").setValue(f).show();Ext.getCmp(this.id+"-endlabel").show()}else if(g.indexOf("UNTIL")>-1){var e=g.split("=")[1];Ext.getCmp(this.id+"-combo").setValue("until");Ext.getCmp(this.id+"-date").setValue(Date.parseDate(e,this.untilDateFormat)).show();Ext.getCmp(this.id+"-endlabel").hide()}},this);return this}});return[this.repeatEvery,this.weekly,this.monthly,this.yearly,this.until]}});Ext.reg("extensible.recurrencefield",Ext.ensible.cal.RecurrenceField);Ext.ensible.cal.DateRangeField=Ext.extend(Ext.form.Field,{toText:"to",allDayText:"All day",singleLine:"auto",singleLineMinWidth:490,dateFormat:"n/j/Y",onRender:function(e,b){if(!this.el){this.startDate=new Ext.form.DateField({id:this.id+"-start-date",format:this.dateFormat,width:100,listeners:{change:{fn:function(){this.onFieldChange("date","start")},scope:this}}});this.startTime=new Ext.form.TimeField({id:this.id+"-start-time",hidden:this.showTimes===false,labelWidth:0,hideLabel:true,width:90,listeners:{select:{fn:function(){this.onFieldChange("time","start")},scope:this}}});this.endTime=new Ext.form.TimeField({id:this.id+"-end-time",hidden:this.showTimes===false,labelWidth:0,hideLabel:true,width:90,listeners:{select:{fn:function(){this.onFieldChange("time","end")},scope:this}}});this.endDate=new Ext.form.DateField({id:this.id+"-end-date",format:this.dateFormat,hideLabel:true,width:100,listeners:{change:{fn:function(){this.onFieldChange("date","end")},scope:this}}});this.allDay=new Ext.form.Checkbox({id:this.id+"-allday",hidden:this.showTimes===false||this.showAllDay===false,boxLabel:this.allDayText,handler:function(g,h){this.startTime.setVisible(!h);this.endTime.setVisible(!h)},scope:this});this.toLabel=new Ext.form.Label({xtype:"label",id:this.id+"-to-label",text:this.toText});var a=this.singleLine;if(a=="auto"){var f,c=this.ownerCt.getWidth()-this.ownerCt.getEl().getPadding("lr");if(f=this.ownerCt.getEl().child(".x-panel-body"))c-=f.getPadding("lr");if(f=this.ownerCt.getEl().child(".x-form-item-label"))c-=f.getWidth()-f.getPadding("lr");a=c<=this.singleLineMinWidth?false:true}this.fieldCt=new Ext.Container({autoEl:{id:this.id},cls:"ext-dt-range",renderTo:e,layout:"table",layoutConfig:{columns:a?6:3},defaults:{hideParent:true},items:[this.startDate,this.startTime,this.toLabel,a?this.endTime:this.endDate,a?this.endDate:this.endTime,this.allDay]});this.fieldCt.ownerCt=this;this.el=this.fieldCt.getEl();this.items=new Ext.util.MixedCollection;this.items.addAll([this.startDate,this.endDate,this.toLabel,this.startTime,this.endTime,this.allDay])}Ext.ensible.cal.DateRangeField.superclass.onRender.call(this,e,b);if(!a)this.el.child("tr").addClass("ext-dt-range-row1")},onFieldChange:function(a,b){this.checkDates(a,b);this.fireEvent("change",this,this.getValue())},checkDates:function(f,g){var e=Ext.getCmp(this.id+"-start-"+f),b=Ext.getCmp(this.id+"-end-"+f),c=this.getDT("start"),a=this.getDT("end");if(c>a)if(g=="start")b.setValue(c);else{e.setValue(a);this.checkDates(f,"start")}if(f=="date")this.checkDates("time",g)},getValue:function(){return[this.getDT("start"),this.getDT("end"),this.allDay.getValue()]},getDT:function(c){var b=this[c+"Time"].getValue(),a=this[c+"Date"].getValue();if(Ext.isDate(a))a=a.format(this[c+"Date"].format);else return null;if(b!="")return Date.parseDate(a+" "+b,this[c+"Date"].format+" "+this[c+"Time"].format);return Date.parseDate(a,this[c+"Date"].format)},setValue:function(a){if(Ext.isArray(a)){this.setDT(a[0],"start");this.setDT(a[1],"end");this.allDay.setValue(!!a[2])}else if(Ext.isDate(a)){this.setDT(a,"start");this.setDT(a,"end");this.allDay.setValue(false)}else if(a[Ext.ensible.cal.EventMappings.StartDate.name]){this.setDT(a[Ext.ensible.cal.EventMappings.StartDate.name],"start");if(!this.setDT(a[Ext.ensible.cal.EventMappings.EndDate.name],"end"))this.setDT(a[Ext.ensible.cal.EventMappings.StartDate.name],"end");this.allDay.setValue(!!a[Ext.ensible.cal.EventMappings.IsAllDay.name])}},setDT:function(a,b){if(a&&Ext.isDate(a)){this[b+"Date"].setValue(a);this[b+"Time"].setValue(a.format(this[b+"Time"].format));return true}},isDirty:function(){var a=false;if(this.rendered&&!this.disabled)this.items.each(function(b){if(b.isDirty()){a=true;return false}});return a},onDisable:function(){this.delegateFn("disable")},onEnable:function(){this.delegateFn("enable")},reset:function(){this.delegateFn("reset")},delegateFn:function(a){this.items.each(function(b){if(b[a])b[a]()})},beforeDestroy:function(){Ext.destroy(this.fieldCt);Ext.ensible.cal.DateRangeField.superclass.beforeDestroy.call(this)},getRawValue:Ext.emptyFn,setRawValue:Ext.emptyFn});Ext.reg("extensible.daterangefield",Ext.ensible.cal.DateRangeField);Ext.ensible.cal.ReminderField=Ext.extend(Ext.form.ComboBox,{width:200,fieldLabel:"Reminder",mode:"local",triggerAction:"all",forceSelection:true,displayField:"desc",valueField:"value",noneText:"None",atStartTimeText:"At start time",reminderValueFormat:"{0} {1} before start",minutesText:"minutes",hourText:"hour",hoursText:"hours",dayText:"day",daysText:"days",weekText:"week",weeksText:"weeks",getValueList:function(){var c=this,a=c.reminderValueFormat,b=String.format;return[["",c.noneText],["0",c.atStartTimeText],["5",b(a,"5",c.getMinutesText(5))],["15",b(a,"15",c.getMinutesText(15))],["30",b(a,"30",c.getMinutesText(30))],["60",b(a,"1",c.getHoursText(1))],["90",b(a,"1.5",c.getHoursText(1.5))],["120",b(a,"2",c.getHoursText(2))],["180",b(a,"3",c.getHoursText(3))],["360",b(a,"6",c.getHoursText(6))],["720",b(a,"12",c.getHoursText(12))],["1440",b(a,"1",c.getDaysText(1))],["2880",b(a,"2",c.getDaysText(2))],["4320",b(a,"3",c.getDaysText(3))],["5760",b(a,"4",c.getDaysText(4))],["7200",b(a,"5",c.getDaysText(5))],["10080",b(a,"1",c.getWeeksText(1))],["20160",b(a,"2",c.getWeeksText(2))]]},getMinutesText:function(a){return a===1?this.minuteText:this.minutesText},getHoursText:function(a){return a===1?this.hourText:this.hoursText},getDaysText:function(a){return a===1?this.dayText:this.daysText},getWeeksText:function(a){return a===1?this.weekText:this.weeksText},initComponent:function(){Ext.ensible.cal.ReminderField.superclass.initComponent.call(this);this.store=this.store||new Ext.data.ArrayStore({fields:[this.valueField,this.displayField],idIndex:0,data:this.getValueList()})},initValue:function(){if(this.value!==undefined)this.setValue(this.value);else this.setValue("");this.originalValue=this.getValue()}});Ext.reg("extensible.reminderfield",Ext.ensible.cal.ReminderField);Ext.ensible.cal.ColorPalette=Ext.extend(Ext.ColorPalette,{colorCount:32,initComponent:function(){Ext.ensible.cal.ColorPalette.superclass.initComponent.call(this);this.addClass("x-calendar-palette");this.tpl=new Ext.XTemplate('<tpl for="."><a class="x-unselectable x-cal-color" id="'+this.id+'-color-{.}" href="#" hidefocus="on"><em><span class="x-cal-{.}">&#160;</span></em></a></tpl>');if(this.handler)this.on("select",this.handler,this.scope||this);this.colors=[];for(var a=1;a<=this.colorCount;a++)this.colors.push(a)},handleClick:function(c,a){c.preventDefault();var b=c.getTarget(".x-cal-color",3,true);if(b){var f=b.id.split("-color-")[1];this.select(f)}},select:function(b,a){if(b!=this.value){if(this.value)Ext.fly(this.id+"-color-"+this.value).removeClass("x-color-palette-sel");Ext.get(this.id+"-color-"+b).addClass("x-color-palette-sel");this.value=b;if(a!==true)this.fireEvent("select",this,b)}}});Ext.reg("extensible.calendarcolorpalette",Ext.ensible.cal.ColorPalette);Ext.ensible.cal.CalendarListMenu=Ext.extend(Ext.menu.Menu,{hideOnClick:true,ignoreParentClicks:true,cls:"x-calendar-list-menu",displayOnlyThisCalendarText:"Display only this calendar",enableScrolling:false,initComponent:function(){this.addEvents("showcalendar","hidecalendar","radiocalendar","colorchange");Ext.apply(this,{items:[{text:this.displayOnlyThisCalendarText,iconCls:"extensible-cal-icon-cal-show",handler:this.handleRadioCalendarClick.createDelegate(this)},"-",{xtype:"extensible.calendarcolorpalette",handler:this.handleColorSelect.createDelegate(this)}]});Ext.ensible.cal.CalendarListMenu.superclass.initComponent.call(this)},afterRender:function(){Ext.ensible.cal.CalendarListMenu.superclass.afterRender.call(this);this.palette=this.findByType("extensible.calendarcolorpalette")[0];if(this.colorId)this.palette.select(this.colorId,true)},handleRadioCalendarClick:function(b,a){this.fireEvent("radiocalendar",this,this.calendarId)},handleColorSelect:function(b,a){this.fireEvent("colorchange",this,this.calendarId,a,this.colorId);this.colorId=a;this.menuHide()},setCalendar:function(b,a){this.calendarId=b;this.colorId=a;if(this.rendered)this.palette.select(a,true);return this},menuHide:function(){if(this.hideOnClick)this.hide(true)}});Ext.reg("extensible.calendarlistmenu",Ext.ensible.cal.CalendarListMenu);Ext.ensible.cal.EventContextMenu=Ext.extend(Ext.menu.Menu,{hideOnClick:true,ignoreParentClicks:true,editDetailsText:"Edit Details",deleteText:"Delete",moveToText:"Move to...",enableScrolling:false,initComponent:function(){this.addEvents("editdetails","eventdelete","eventmove");this.buildMenu();Ext.ensible.cal.CalendarListMenu.superclass.initComponent.call(this)},buildMenu:function(){if(this.rendered)return;this.dateMenu=new Ext.menu.DateMenu({scope:this,handler:function(b,a){a=Ext.ensible.Date.copyTime(this.rec.data[Ext.ensible.cal.EventMappings.StartDate.name],a);this.fireEvent("eventmove",this,this.rec,a)}});Ext.apply(this,{items:[{text:this.editDetailsText,iconCls:"extensible-cal-icon-evt-edit",scope:this,handler:function(){this.fireEvent("editdetails",this,this.rec,this.ctxEl)}},{text:this.deleteText,iconCls:"extensible-cal-icon-evt-del",scope:this,handler:function(){this.fireEvent("eventdelete",this,this.rec,this.ctxEl)}},"-",{text:this.moveToText,iconCls:"extensible-cal-icon-evt-move",menu:this.dateMenu}]})},showForEvent:function(c,a,b){this.rec=c;this.ctxEl=a;this.dateMenu.picker.setValue(c.data[Ext.ensible.cal.EventMappings.StartDate.name]);this.showAt(b)},onHide:function(){Ext.ensible.cal.CalendarListMenu.superclass.onHide.call(this);delete this.ctxEl}});Ext.reg("extensible.eventcontextmenu",Ext.ensible.cal.EventContextMenu);Ext.ensible.cal.CalendarList=Ext.extend(Ext.Panel,{title:"Calendars",collapsible:true,autoHeight:true,layout:"fit",menuSelector:"em",width:100,initComponent:function(){this.addClass("x-calendar-list");Ext.ensible.cal.CalendarList.superclass.initComponent.call(this)},afterRender:function(b,a){Ext.ensible.cal.CalendarList.superclass.afterRender.call(this);if(this.store)this.setStore(this.store,true);this.refresh();this.body.on("click",this.onClick,this);this.body.on("mouseover",this.onMouseOver,this,{delegate:"li"});this.body.on("mouseout",this.onMouseOut,this,{delegate:"li"})},getListTemplate:function(){if(!this.tpl){this.tpl=!(Ext.isIE||Ext.isOpera)?new Ext.XTemplate('<ul class="x-unselectable"><tpl for=".">','<li id="{cmpId}" class="ext-cal-evr {colorCls} {hiddenCls}">{title}<em>&#160;</em></li>',"</tpl></ul>"):new Ext.XTemplate('<ul class="x-unselectable"><tpl for=".">','<li id="{cmpId}" class="ext-cal-evo {colorCls} {hiddenCls}">','<div class="ext-cal-evm">','<div class="ext-cal-evi">{title}<em>&#160;</em></div>',"</div>","</li>","</tpl></ul>");this.tpl.compile()}return this.tpl},setStore:function(a,b){if(!b&&this.store){this.store.un("load",this.refresh,this);this.store.un("add",this.refresh,this);this.store.un("remove",this.refresh,this);this.store.un("update",this.onUpdate,this);this.store.un("clear",this.refresh,this)}if(a){a.on("load",this.refresh,this);a.on("add",this.refresh,this);a.on("remove",this.refresh,this);a.on("update",this.onUpdate,this);a.on("clear",this.refresh,this)}this.store=a},onUpdate:function(b,c,a){if(a==Ext.data.Record.COMMIT)this.refresh()},refresh:function(){if(this.skipRefresh)return;var f=[],c=0,g=null,b=Ext.ensible.cal.CalendarMappings,e=this.store.getRange(),a=e.length;for(;c<a;c++){g={cmpId:this.id+"__"+e[c].data[b.CalendarId.name],title:e[c].data[b.Title.name],colorCls:this.getColorCls(e[c].data[b.ColorId.name])};if(e[c].data[b.IsHidden.name]===true)g.hiddenCls="ext-cal-hidden";f[f.length]=g}this.getListTemplate().overwrite(this.body,f)},getColorCls:function(a){return"x-cal-"+a+"-ad"},toggleCalendar:function(f,e){var c=this.store.getById(f),a=Ext.ensible.cal.CalendarMappings,b=c.data[a.IsHidden.name];c.set([a.IsHidden.name],!b);if(e!==false)c.commit()},showCalendar:function(c,b){var a=this.store.getById(c);if(a.data[Ext.ensible.cal.CalendarMappings.IsHidden.name]===true)this.toggleCalendar(c,b)},hideCalendar:function(c,b){var a=this.store.getById(c);if(a.data[Ext.ensible.cal.CalendarMappings.IsHidden.name]!==true)this.toggleCalendar(c,b)},radioCalendar:function(g){var b=0,f,c=Ext.ensible.cal.CalendarMappings.CalendarId.name,e=this.store.getRange(),a=e.length;for(;b<a;b++){f=e[b].data[c];if(f==g)this.showCalendar(f,false);else this.hideCalendar(f,false)}this.skipRefresh=true;this.store.commitChanges();delete this.skipRefresh;this.refresh()},onMouseOver:function(b,a){Ext.fly(a).addClass("hover")},onMouseOut:function(b,a){Ext.fly(a).removeClass("hover")},getCalendarId:function(a){return a.id.split("__")[1]},getCalendarItemEl:function(a){return Ext.get(this.id+"__"+a)},onClick:function(c,a){var b;if(b=c.getTarget(this.menuSelector,3,true))this.showEventMenu(b,c.getXY());else if(b=c.getTarget("li",3,true))this.toggleCalendar(this.getCalendarId(b))},handleColorChange:function(e,f,c,a){var b=this.store.getById(f);b.data[Ext.ensible.cal.CalendarMappings.ColorId.name]=c;b.commit()},handleRadioCalendar:function(a,b){this.radioCalendar(b)},showEventMenu:function(a,b){var f=this.getCalendarId(a.parent("li")),e=this.store.getById(f),c=e.data[Ext.ensible.cal.CalendarMappings.ColorId.name];if(!this.menu){this.menu=new Ext.ensible.cal.CalendarListMenu;this.menu.on("colorchange",this.handleColorChange,this);this.menu.on("radiocalendar",this.handleRadioCalendar,this)}this.menu.setCalendar(f,c);this.menu.showAt(b)}});Ext.reg("extensible.calendarlist",Ext.ensible.cal.CalendarList);Ext.ensible.cal.EventEditForm=Ext.extend(Ext.form.FormPanel,{labelWidth:65,labelWidthRightCol:65,colWidthLeft:.6,colWidthRight:.4,title:"Event Form",titleTextAdd:"Add Event",titleTextEdit:"Edit Event",titleLabelText:"Title",datesLabelText:"When",reminderLabelText:"Reminder",notesLabelText:"Notes",locationLabelText:"Location",webLinkLabelText:"Web Link",calendarLabelText:"Calendar",repeatsLabelText:"Repeats",saveButtonText:"Save",deleteButtonText:"Delete",cancelButtonText:"Cancel",bodyStyle:"padding:20px 20px 10px;",border:false,buttonAlign:"center",autoHeight:true,enableRecurrence:false,layout:"column",cls:"ext-evt-edit-form",initComponent:function(){this.addEvents({eventadd:true,eventupdate:true,eventdelete:true,eventcancel:true});this.titleField=new Ext.form.TextField({fieldLabel:this.titleLabelText,name:Ext.ensible.cal.EventMappings.Title.name,anchor:"90%"});this.dateRangeField=new Ext.ensible.cal.DateRangeField({fieldLabel:this.datesLabelText,singleLine:false,anchor:"90%",listeners:{change:this.onDateChange.createDelegate(this)}});this.reminderField=new Ext.ensible.cal.ReminderField({name:Ext.ensible.cal.EventMappings.Reminder.name,fieldLabel:this.reminderLabelText});this.notesField=new Ext.form.TextArea({fieldLabel:this.notesLabelText,name:Ext.ensible.cal.EventMappings.Notes.name,grow:true,growMax:150,anchor:"100%"});this.locationField=new Ext.form.TextField({fieldLabel:this.locationLabelText,name:Ext.ensible.cal.EventMappings.Location.name,anchor:"100%"});this.urlField=new Ext.form.TextField({fieldLabel:this.webLinkLabelText,name:Ext.ensible.cal.EventMappings.Url.name,anchor:"100%"});var a=[this.titleField,this.dateRangeField,this.reminderField],b=[this.notesField,this.locationField,this.urlField];if(this.enableRecurrence){this.recurrenceField=new Ext.ensible.cal.RecurrenceField({name:Ext.ensible.cal.EventMappings.RRule.name,fieldLabel:this.repeatsLabelText,anchor:"100%"});a.splice(2,0,this.recurrenceField)}if(this.calendarStore){this.calendarField=new Ext.ensible.cal.CalendarCombo({store:this.calendarStore,fieldLabel:this.calendarLabelText,name:Ext.ensible.cal.EventMappings.CalendarId.name});a.splice(2,0,this.calendarField)}this.items=[{id:this.id+"-left-col",columnWidth:this.colWidthLeft,layout:"form",border:false,items:a},{id:this.id+"-right-col",columnWidth:this.colWidthRight,layout:"form",labelWidth:this.labelWidthRightCol||this.labelWidth,border:false,items:b}];this.fbar=[{text:this.saveButtonText,scope:this,handler:this.onSave},{cls:"ext-del-btn",text:this.deleteButtonText,scope:this,handler:this.onDelete},{text:this.cancelButtonText,scope:this,handler:this.onCancel}];Ext.ensible.cal.EventEditForm.superclass.initComponent.call(this)},onDateChange:function(a,b){if(this.recurrenceField)this.recurrenceField.setStartDate(b[0])},loadRecord:function(a){this.form.reset().loadRecord.apply(this.form,arguments);this.activeRecord=a;this.dateRangeField.setValue(a.data);if(this.recurrenceField)this.recurrenceField.setStartDate(a.data[Ext.ensible.cal.EventMappings.StartDate.name]);if(this.calendarStore)this.form.setValues({calendar:a.data[Ext.ensible.cal.EventMappings.CalendarId.name]});if(a.phantom){this.setTitle(this.titleTextAdd);Ext.select(".ext-del-btn").setDisplayed(false)}else{this.setTitle(this.titleTextEdit);Ext.select(".ext-del-btn").setDisplayed(true)}this.titleField.focus()},updateRecord:function(){var c=this.dateRangeField.getValue(),f=Ext.ensible.cal.EventMappings,e=this.activeRecord,a=e.fields,b=false;e.beginEdit();a.each(function(h){var i=this.form.findField(h.name);if(i){var g=i.getValue();if(g.getGroupValue)g=g.getGroupValue();else if(i.eachItem){g=[];i.eachItem(function(k){g.push(k.getValue())})}e.set(h.name,g)}},this);e.set(f.StartDate.name,c[0]);e.set(f.EndDate.name,c[1]);e.set(f.IsAllDay.name,c[2]);b=e.dirty;e.endEdit();return b},onCancel:function(){this.cleanup(true);this.fireEvent("eventcancel",this,this.activeRecord)},cleanup:function(a){if(this.activeRecord)this.activeRecord.reject();delete this.activeRecord;if(this.form.isDirty())this.form.reset()},onSave:function(){if(!this.form.isValid())return;if(!this.updateRecord()){this.onCancel();return}this.fireEvent(this.activeRecord.phantom?"eventadd":"eventupdate",this,this.activeRecord)},onDelete:function(){this.fireEvent("eventdelete",this,this.activeRecord)}});Ext.reg("extensible.eventeditform",Ext.ensible.cal.EventEditForm);Ext.ensible.cal.EventEditWindow=Ext.extend(Ext.Window,{titleTextAdd:"Add Event",titleTextEdit:"Edit Event",width:600,border:true,closeAction:"hide",modal:false,resizable:false,buttonAlign:"left",labelWidth:65,detailsLinkText:"Edit Details...",savingMessage:"Saving changes...",deletingMessage:"Deleting event...",saveButtonText:"Save",deleteButtonText:"Delete",cancelButtonText:"Cancel",titleLabelText:"Title",datesLabelText:"When",calendarLabelText:"Calendar",editDetailsLinkClass:"edit-dtl-link",bodyStyle:"padding:5px 10px;",enableEditDetails:true,initComponent:function(){this.addEvents({eventadd:true,eventupdate:true,eventdelete:true,eventcancel:true,editdetails:true});this.fbar=["->",{text:this.saveButtonText,disabled:false,handler:this.onSave,scope:this},{id:this.id+"-delete-btn",text:this.deleteButtonText,disabled:false,handler:this.onDelete,scope:this,hideMode:"offsets"},{text:this.cancelButtonText,disabled:false,handler:this.onCancel,scope:this}];if(this.enableEditDetails!==false)this.fbar.unshift({xtype:"tbtext",text:'<a href="#" class="'+this.editDetailsLinkClass+'">'+this.detailsLinkText+"</a>"});Ext.ensible.cal.EventEditWindow.superclass.initComponent.call(this)},onRender:function(c,a){this.deleteBtn=Ext.getCmp(this.id+"-delete-btn");this.titleField=new Ext.form.TextField({name:Ext.ensible.cal.EventMappings.Title.name,fieldLabel:this.titleLabelText,anchor:"100%"});this.dateRangeField=new Ext.ensible.cal.DateRangeField({anchor:"95%",fieldLabel:this.datesLabelText});var b=[this.titleField,this.dateRangeField];if(this.calendarStore){this.calendarField=new Ext.ensible.cal.CalendarCombo({name:Ext.ensible.cal.EventMappings.CalendarId.name,anchor:"100%",fieldLabel:this.calendarLabelText,store:this.calendarStore});b.push(this.calendarField)}this.formPanel=new Ext.FormPanel({labelWidth:this.labelWidth,frame:false,bodyBorder:false,border:false,items:b});this.add(this.formPanel);Ext.ensible.cal.EventEditWindow.superclass.onRender.call(this,c,a)},afterRender:function(){Ext.ensible.cal.EventEditWindow.superclass.afterRender.call(this);this.el.addClass("ext-cal-event-win");this.el.select("."+this.editDetailsLinkClass).on("click",this.onEditDetailsClick,this)},onEditDetailsClick:function(a){a.stopEvent();this.updateRecord(true);this.fireEvent("editdetails",this,this.activeRecord,this.animateTarget)},show:function(h,g){var c=Ext.isIE8&&Ext.isStrict?null:g,k=Ext.ensible.cal.EventMappings;Ext.ensible.cal.EventEditWindow.superclass.show.call(this,c,function(){this.titleField.focus(false,100)});this.deleteBtn[h.data&&h.data[k.EventId.name]?"show":"hide"]();var e,b=this.formPanel.form;if(h.data){e=h;if(e.phantom)this.setTitle(this.titleTextAdd);else this.setTitle(this.titleTextEdit);b.loadRecord(e)}else{this.setTitle(this.titleTextAdd);var i=h[k.StartDate.name],a=h[k.EndDate.name]||i.add("h",1);e=new Ext.ensible.cal.EventRecord;e.data[k.StartDate.name]=i;e.data[k.EndDate.name]=a;e.data[k.IsAllDay.name]=!!h[k.IsAllDay.name]||i.getDate()!=a.clone().add(Date.MILLI,1).getDate();b.reset();b.loadRecord(e)}if(this.calendarStore)this.calendarField.setValue(e.data[k.CalendarId.name]);this.dateRangeField.setValue(e.data);this.activeRecord=e;this.el.setStyle("z-index",12e3);return this},roundTime:function(b,c){c=c||15;var a=parseInt(b.getMinutes());return b.add("mi",c-a%c)},onCancel:function(){this.cleanup(true);this.fireEvent("eventcancel",this,this.animateTarget)},cleanup:function(a){if(this.activeRecord)this.activeRecord.reject();delete this.activeRecord;if(a===true)this.hide()},updateRecord:function(e){var f=this.dateRangeField.getValue(),h=Ext.ensible.cal.EventMappings,g=this.activeRecord,c=this.formPanel.form,a=g.fields,b=false;g.beginEdit();a.each(function(k){var l=c.findField(k.name);if(l){var i=l.getValue();if(i.getGroupValue)i=i.getGroupValue();else if(l.eachItem){i=[];l.eachItem(function(m){i.push(m.getValue())})}g.set(k.name,i)}},this);g.set(h.StartDate.name,f[0]);g.set(h.EndDate.name,f[1]);g.set(h.IsAllDay.name,f[2]);b=g.dirty;if(!e)g.endEdit();return b},onSave:function(){if(!this.formPanel.form.isValid())return;if(!this.updateRecord()){this.onCancel();return}this.fireEvent(this.activeRecord.phantom?"eventadd":"eventupdate",this,this.activeRecord,this.animateTarget)},onDelete:function(){this.fireEvent("eventdelete",this,this.activeRecord,this.animateTarget)}});Ext.reg("extensible.eventeditwindow",Ext.ensible.cal.EventEditWindow);Ext.ensible.cal.CalendarView=Ext.extend(Ext.BoxComponent,{startDay:0,spansHavePriority:false,trackMouseOver:true,enableFx:true,enableAddFx:true,enableUpdateFx:false,enableRemoveFx:true,enableDD:true,enableContextMenus:true,suppressBrowserContextMenu:false,monitorResize:true,todayText:"Today",ddCreateEventText:"Create event for {0}",ddMoveEventText:"Move event to {0}",ddResizeEventText:"Update event to {0}",defaultEventTitleText:"(No title)",dateParamStart:"start",dateParamEnd:"end",dateParamFormat:"Y-m-d",editModal:false,enableEditDetails:true,weekendCls:"ext-cal-day-we",prevMonthCls:"ext-cal-day-prev",nextMonthCls:"ext-cal-day-next",todayCls:"ext-cal-day-today",weekCount:1,dayCount:1,eventSelector:".ext-cal-evt",eventOverClass:"ext-evt-over",eventElIdDelimiter:"-evt-",dayElIdDelimiter:"-day-",getEventBodyMarkup:Ext.emptyFn,getEventTemplate:Ext.emptyFn,initComponent:function(){this.setStartDate(this.startDate||new Date);Ext.ensible.cal.CalendarView.superclass.initComponent.call(this);if(this.readOnly===true)this.addClass("ext-cal-readonly");this.addEvents({eventsrendered:true,eventclick:true,eventover:true,eventout:true,beforedatechange:true,datechange:true,rangeselect:true,beforeeventmove:true,eventmove:true,initdrag:true,dayover:true,dayout:true,editdetails:true,eventadd:true,eventupdate:true,eventcancel:true,beforeeventdelete:true,eventdelete:true})},afterRender:function(){Ext.ensible.cal.CalendarView.superclass.afterRender.call(this);this.renderTemplate();if(this.store){this.setStore(this.store,true);if(this.store.deferLoad){this.reloadStore(this.store.deferLoad);delete this.store.deferLoad}else this.store.initialParams=this.getStoreParams()}if(this.calendarStore)this.setCalendarStore(this.calendarStore,true);this.el.on({mouseover:this.onMouseOver,mouseout:this.onMouseOut,click:this.onClick,resize:this.onResize,scope:this});if(this.enableContextMenus&&this.readOnly!==true)this.el.on("contextmenu",this.onContextMenu,this);this.el.unselectable();if(this.enableDD&&this.readOnly!==true&&this.initDD)this.initDD();this.on("eventsrendered",this.forceSize);this.forceSize.defer(100,this)},getStoreDateParams:function(){var a={};a[this.dateParamStart]=this.viewStart.format(this.dateParamFormat);a[this.dateParamEnd]=this.viewEnd.format(this.dateParamFormat);return a},getStoreParams:function(){var a=this.getStoreDateParams();return a},reloadStore:function(a){Ext.ensible.log("reloadStore");a=Ext.isObject(a)?a:{};a.params=a.params||{};Ext.apply(a.params,this.getStoreParams());this.store.load(a)},forceSize:function(){if(this.el&&this.el.child){var e=this.el.child(".ext-cal-hd-ct"),b=this.el.child(".ext-cal-body-ct");if(b==null||e==null)return;var a=e.getHeight(),c=this.el.parent().getSize();b.setHeight(c.height-a)}},refresh:function(a){Ext.ensible.log("refresh (base), reload = "+a);if(a===true)this.reloadStore();this.prepareData();this.renderTemplate();this.renderItems()},getWeekCount:function(){var a=Ext.ensible.Date.diffDays(this.viewStart,this.viewEnd);return Math.ceil(a/this.dayCount)},prepareData:function(){var h=this.startDate.getLastDateOfMonth(),c=0,g=0,f=this.viewStart.clone(),e=this.weekCount<1?6:this.weekCount;this.eventGrid=[[]];this.allDayGrid=[[]];this.evtMaxCount=[];var b=this.store.queryBy(function(i){return this.isEventVisible(i.data)},this);for(;c<e;c++){this.evtMaxCount[c]=0;if(this.weekCount==-1&&f>h)break;this.eventGrid[c]=this.eventGrid[c]||[];this.allDayGrid[c]=this.allDayGrid[c]||[];for(d=0;d<this.dayCount;d++){if(b.getCount()>0){var a=b.filterBy(function(l){var k=f.getTime()==l.data[Ext.ensible.cal.EventMappings.StartDate.name].clearTime(true).getTime();var i=c==0&&d==0&&f>l.data[Ext.ensible.cal.EventMappings.StartDate.name];return k||i},this);this.sortEventRecordsForDay(a);this.prepareEventGrid(a,c,d)}f=f.add(Date.DAY,1)}}this.currentWeekCount=c},prepareEventGrid:function(c,b,g){var f=0,e=this.viewStart.clone(),a=this.maxEventsPerDay?this.maxEventsPerDay:999;c.each(function(i){var k=Ext.ensible.cal.EventMappings;if(Ext.ensible.Date.diffDays(i.data[k.StartDate.name],i.data[k.EndDate.name])>0){var h=Ext.ensible.Date.diffDays(Ext.ensible.Date.max(this.viewStart,i.data[k.StartDate.name]),Ext.ensible.Date.min(this.viewEnd,i.data[k.EndDate.name]))+1;this.prepareEventGridSpans(i,this.eventGrid,b,g,h);this.prepareEventGridSpans(i,this.allDayGrid,b,g,h,true)}else{f=this.findEmptyRowIndex(b,g);this.eventGrid[b][g]=this.eventGrid[b][g]||[];this.eventGrid[b][g][f]=i;if(i.data[k.IsAllDay.name]){f=this.findEmptyRowIndex(b,g,true);this.allDayGrid[b][g]=this.allDayGrid[b][g]||[];this.allDayGrid[b][g][f]=i}}if(this.evtMaxCount[b]<this.eventGrid[b][g].length)this.evtMaxCount[b]=Math.min(a+1,this.eventGrid[b][g].length);return true},this)},prepareEventGridSpans:function(i,a,h,g,k,l){var f=h,b=g,m=this.findEmptyRowIndex(h,g,l),e=this.viewStart.clone();var c={event:i,isSpan:true,isSpanStart:true,spanLeft:false,spanRight:g==6};a[h][g]=a[h][g]||[];a[h][g][m]=c;while(--k){e=e.add(Date.DAY,1);if(e>this.viewEnd)break;if(++b>6){b=0;f++;m=this.findEmptyRowIndex(f,0)}a[f]=a[f]||[];a[f][b]=a[f][b]||[];a[f][b][m]={event:i,isSpan:true,isSpanStart:b==0,spanLeft:f>h&&b%7==0,spanRight:b==6&&k>1}}},findEmptyRowIndex:function(b,h,a){var f=a?this.allDayGrid:this.eventGrid,c=f[b]?f[b][h]||[]:[],e=0,g=c.length;for(;e<g;e++)if(c[e]==null)return e;return g},renderTemplate:function(){if(this.tpl){this.tpl.overwrite(this.el,this.getTemplateParams());this.lastRenderStart=this.viewStart.clone();this.lastRenderEnd=this.viewEnd.clone()}},getTemplateParams:function(){return{viewStart:this.viewStart,viewEnd:this.viewEnd,startDate:this.startDate,dayCount:this.dayCount,weekCount:this.weekCount,weekendCls:this.weekendCls,prevMonthCls:this.prevMonthCls,nextMonthCls:this.nextMonthCls,todayCls:this.todayCls}},disableStoreEvents:function(){this.monitorStoreEvents=false;return this},enableStoreEvents:function(a){this.monitorStoreEvents=true;if(a===true)this.refresh();return this},onResize:function(){this.refresh(false)},onInitDrag:function(){this.fireEvent("initdrag",this)},onEventDrop:function(b,a){this.moveEvent(b,a)},onCalendarEndDrag:function(e,a,c){this.dragPending=true;var b={},c=this.onCalendarEndDragComplete.createDelegate(this,[c]);b[Ext.ensible.cal.EventMappings.StartDate.name]=e;b[Ext.ensible.cal.EventMappings.EndDate.name]=a;if(this.fireEvent("rangeselect",this,b,c)!==false){this.showEventEditor(b,null);this.editWin.on("hide",c,this,{single:true})}else this.onCalendarEndDragComplete(c)},onCalendarEndDragComplete:function(a){a();this.dragPending=false},onUpdate:function(b,c,a){if(this.hidden===true||this.monitorStoreEvents===false)return;if(a==Ext.data.Record.COMMIT){Ext.ensible.log("onUpdate");this.dismissEventEditor();var e=c.data[Ext.ensible.cal.EventMappings.RRule.name];this.refresh(e!==undefined&&e!=="");if(this.enableFx&&this.enableUpdateFx)this.doUpdateFx(this.getEventEls(c.data[Ext.ensible.cal.EventMappings.EventId.name]),{scope:this})}},doUpdateFx:function(a,b){this.highlightEvent(a,null,b)},onAdd:function(c,b,a){var e=Ext.isArray(b)?b[0]:b;if(this.hidden===true||this.monitorStoreEvents===false||e.phantom)return;if(e._deleting){delete e._deleting;return}Ext.ensible.log("onAdd");var f=e.data[Ext.ensible.cal.EventMappings.RRule.name];this.dismissEventEditor();this.tempEventId=e.id;this.refresh(f!==undefined&&f!=="");if(this.enableFx&&this.enableAddFx)this.doAddFx(this.getEventEls(e.data[Ext.ensible.cal.EventMappings.EventId.name]),{scope:this})},doAddFx:function(a,b){a.fadeIn(Ext.apply(b,{duration:2}))},onRemove:function(b,c){if(this.hidden===true||this.monitorStoreEvents===false)return;Ext.ensible.log("onRemove");this.dismissEventEditor();var e=c.data[Ext.ensible.cal.EventMappings.RRule.name],a=e!==undefined&&e!=="";if(this.enableFx&&this.enableRemoveFx)this.doRemoveFx(this.getEventEls(c.data[Ext.ensible.cal.EventMappings.EventId.name]),{remove:true,scope:this,callback:this.refresh.createDelegate(this,[a])});else{this.getEventEls(c.data[Ext.ensible.cal.EventMappings.EventId.name]).remove();this.refresh(a)}},doRemoveFx:function(a,b){if(a.getCount()==0&&Ext.isFunction(b.callback))b.callback.call(b.scope||this);else a.fadeOut(b)},highlightEvent:function(b,a,e){if(this.enableFx){var f;!(Ext.isIE||Ext.isOpera)?b.highlight(a,e):b.each(function(c){c.highlight(a,Ext.applyIf({attr:"color"},e));if(f=c.child(".ext-cal-evm"))f.highlight(a,e)},this)}},getEventIdFromEl:function(c){c=Ext.get(c);var e,f="",a,b=c.dom.className.split(" ");Ext.each(b,function(g){e=g.split(this.eventElIdDelimiter);if(e.length>1){f=e[1];return false}},this);return f},getEventId:function(a){if(a===undefined&&this.tempEventId)a=this.tempEventId;return a},getEventSelectorCls:function(b,a){var c=a?".":"";return c+this.id+this.eventElIdDelimiter+this.getEventId(b)},getEventEls:function(b){var a=this.el.select(this.getEventSelectorCls(this.getEventId(b),true),false);return new Ext.CompositeElement(a)},isToday:function(){var a=(new Date).clearTime().getTime();return this.viewStart.getTime()<=a&&this.viewEnd.getTime()>=a},onDataChanged:function(a){Ext.ensible.log("onDataChanged");this.refresh(false)},isEventVisible:function(i){var f=Ext.ensible.cal.EventMappings,e=i.data?i.data:i,h=e[f.CalendarId.name],b=this.calendarStore?this.calendarStore.getById(h):null;if(b&&b.data[Ext.ensible.cal.CalendarMappings.IsHidden.name]===true)return false;var a=this.viewStart.getTime(),c=this.viewEnd.getTime(),k=e[f.StartDate.name].getTime(),g=e[f.EndDate.name].getTime();return Ext.ensible.Date.rangesOverlap(a,c,k,g)},isOverlapping:function(m,l){var k=m.data?m.data:m,i=l.data?l.data:l,f=Ext.ensible.cal.EventMappings,c=k[f.StartDate.name].getTime(),g=k[f.EndDate.name].add(Date.SECOND,-1).getTime(),b=i[f.StartDate.name].getTime(),e=i[f.EndDate.name].add(Date.SECOND,-1).getTime(),h=Ext.ensible.Date.diff(k[f.StartDate.name],i[f.StartDate.name],"m");if(g<c)g=c;if(e<b)e=b;var o=Ext.ensible.Date.rangesOverlap(c,g,b,e),n=this.minEventDisplayMinutes||0,a=n>0&&h>-n&&h<n;return o||a},getDayEl:function(a){return Ext.get(this.getDayId(a))},getDayId:function(a){if(Ext.isDate(a))a=a.format("Ymd");return this.id+this.dayElIdDelimiter+a},getStartDate:function(){return this.startDate},setStartDate:function(b,a){Ext.ensible.log("setStartDate (base) "+b.format("Y-m-d"));if(this.fireEvent("beforedatechange",this,this.startDate,b,this.viewStart,this.viewEnd)!==false){this.startDate=b.clearTime();this.setViewBounds(b);if(this.rendered)this.refresh(a);this.fireEvent("datechange",this,this.startDate,this.viewStart,this.viewEnd)}},setViewBounds:function(a){var e=a||this.startDate,c=e.getDay()-this.startDay;if(c<0)c+=7;switch(this.weekCount){case 0:case 1:this.viewStart=this.dayCount<7&&!this.startDayIsStatic?e:e.add(Date.DAY,-c).clearTime(true);this.viewEnd=this.viewStart.add(Date.DAY,this.dayCount||7).add(Date.SECOND,-1);return;case-1:e=e.getFirstDateOfMonth();c=e.getDay()-this.startDay;if(c<0)c+=7;this.viewStart=e.add(Date.DAY,-c).clearTime(true);var b=e.add(Date.MONTH,1).add(Date.SECOND,-1);c=this.startDay;if(c>b.getDay())c-=7;this.viewEnd=b.add(Date.DAY,6-b.getDay()+c);return;default:this.viewStart=e.add(Date.DAY,-c).clearTime(true);this.viewEnd=this.viewStart.add(Date.DAY,this.weekCount*7).add(Date.SECOND,-1)}},getViewBounds:function(){return{start:this.viewStart,end:this.viewEnd}},sortEventRecordsForDay:function(a){if(a.length<2)return;a.sort("ASC",function(g,f){var e=g.data,c=f.data,i=Ext.ensible.cal.EventMappings;if(e[i.IsAllDay.name])return-1;else if(c[i.IsAllDay.name])return 1;if(this.spansHavePriority){var h=Ext.ensible.Date.diffDays;if(h(e[i.StartDate.name],e[i.EndDate.name])>0){if(h(c[i.StartDate.name],c[i.EndDate.name])>0){if(e[i.StartDate.name].getTime()==c[i.StartDate.name].getTime())return c[i.EndDate.name].getTime()-e[i.EndDate.name].getTime();return e[i.StartDate.name].getTime()-c[i.StartDate.name].getTime()}return-1}else if(h(c[i.StartDate.name],c[i.EndDate.name])>0)return 1;return e[i.StartDate.name].getTime()-c[i.StartDate.name].getTime()}else return e[i.StartDate.name].getTime()-c[i.StartDate.name].getTime()}.createDelegate(this))},moveTo:function(b,a){if(Ext.isDate(b)){this.setStartDate(b,a);return this.startDate}return b},moveNext:function(a){return this.moveTo(this.viewEnd.add(Date.DAY,1),a)},movePrev:function(a){var b=Ext.ensible.Date.diffDays(this.viewStart,this.viewEnd)+1;return this.moveDays(-b,a)},moveMonths:function(b,a){return this.moveTo(this.startDate.add(Date.MONTH,b),a)},moveWeeks:function(b,a){return this.moveTo(this.startDate.add(Date.DAY,b*7),a)},moveDays:function(b,a){return this.moveTo(this.startDate.add(Date.DAY,b),a)},moveToday:function(a){return this.moveTo(new Date,a)},setStore:function(a,b){var c=this.store;if(!b&&c){c.un("datachanged",this.onDataChanged,this);c.un("clear",this.refresh,this);c.un("write",this.onWrite,this);c.un("exception",this.onException,this)}if(a){a.on("datachanged",this.onDataChanged,this);a.on("clear",this.refresh,this);a.on("write",this.onWrite,this);a.on("exception",this.onException,this)}this.store=a},onException:function(c,e,f,g,b,a){if(a.reject)a.reject()},setCalendarStore:function(a,b){if(!b&&this.calendarStore){this.calendarStore.un("datachanged",this.refresh,this);this.calendarStore.un("add",this.refresh,this);this.calendarStore.un("remove",this.refresh,this);this.calendarStore.un("update",this.refresh,this)}if(a){a.on("datachanged",this.refresh,this);a.on("add",this.refresh,this);a.on("remove",this.refresh,this);a.on("update",this.refresh,this)}this.calendarStore=a},getEventRecord:function(b){var a=this.store.find(Ext.ensible.cal.EventMappings.EventId.name,b);return this.store.getAt(a)},getEventRecordFromEl:function(a){return this.getEventRecord(this.getEventIdFromEl(a))},getEventEditor:function(){this.editWin=this.editWin||Ext.WindowMgr.get("ext-cal-editwin");if(!this.editWin)this.editWin=new Ext.ensible.cal.EventEditWindow({id:"ext-cal-editwin",calendarStore:this.calendarStore,modal:this.editModal,enableEditDetails:this.enableEditDetails,listeners:{eventadd:{fn:function(b,c,a){b.currentView.onEventAdd(null,c)},scope:this},eventupdate:{fn:function(b,c,a){b.currentView.onEventUpdate(null,c)},scope:this},eventdelete:{fn:function(b,c,a){b.currentView.onEventDelete(null,c)},scope:this},editdetails:{fn:function(c,e,b,a){c.hide(b);c.currentView.fireEvent("editdetails",c.currentView,e,b)},scope:this},eventcancel:{fn:function(b,c,a){this.dismissEventEditor(a);b.currentView.onEventCancel()},scope:this}}});this.editWin.currentView=this;return this.editWin},showEventEditor:function(b,a){this.getEventEditor().show(b,a,this);return this},dismissEventEditor:function(b,c){if(this.newRecord&&this.newRecord.phantom)this.store.remove(this.newRecord);delete this.newRecord;var a=Ext.WindowMgr.get("ext-cal-editwin");if(a)a[b?b:"hide"](c);return this},save:function(){if(!this.store.autoSave)this.store.save()},onWrite:function(a,c,b,f,e){switch(c){case"create":this.onAdd(a,e);break;case"update":this.onUpdate(a,e,Ext.data.Record.COMMIT);break;case"destroy":this.onRemove(a,e);break}},onEventAdd:function(a,b){this.newRecord=b;if(!b.store){this.store.add(b);this.save()}this.fireEvent("eventadd",this,b)},onEventUpdate:function(a,b){this.save();this.fireEvent("eventupdate",this,b)},onEventDelete:function(a,b){if(b.store)this.store.remove(b);this.save();this.fireEvent("eventdelete",this,b)},onEventCancel:function(a,b){this.fireEvent("eventcancel",this,b)},onDayClick:function(c,b,a){if(this.readOnly===true)return;if(this.fireEvent("dayclick",this,c,b,a)!==false){var f=Ext.ensible.cal.EventMappings,e={};e[f.StartDate.name]=c;e[f.IsAllDay.name]=b;this.showEventEditor(e,a)}},showEventMenu:function(a,b){if(!this.eventMenu)this.eventMenu=new Ext.ensible.cal.EventContextMenu({listeners:{editdetails:this.onEditDetails.createDelegate(this),eventdelete:this.onDeleteEvent.createDelegate(this),eventmove:this.onMoveEvent.createDelegate(this)}});this.eventMenu.showForEvent(this.getEventRecordFromEl(a),a,b);this.menuActive=true},onEditDetails:function(c,b,a){this.fireEvent("editdetails",this,b,a);this.menuActive=false},onMoveEvent:function(c,b,a){this.moveEvent(b,a);this.menuActive=false},moveEvent:function(c,a){if(Ext.ensible.Date.compare(c.data[Ext.ensible.cal.EventMappings.StartDate.name],a)===0)return;if(this.fireEvent("beforeeventmove",this,c,a)!==false){var b=a.getTime()-c.data[Ext.ensible.cal.EventMappings.StartDate.name].getTime();c.beginEdit();c.set(Ext.ensible.cal.EventMappings.StartDate.name,a);c.set(Ext.ensible.cal.EventMappings.EndDate.name,c.data[Ext.ensible.cal.EventMappings.EndDate.name].add(Date.MILLI,b));c.endEdit();this.save();this.fireEvent("eventmove",this,c)}},onDeleteEvent:function(c,b,a){b._deleting=true;this.deleteEvent(b,a);this.menuActive=false},deleteEvent:function(b,a){if(this.fireEvent("beforeeventdelete",this,b,a)!==false){this.store.remove(b);this.save();this.fireEvent("eventdelete",this,b,a)}},onContextMenu:function(f,b){var c,a=false;if(c=f.getTarget(this.eventSelector,5,true)){this.dismissEventEditor().showEventMenu(c,f.getXY());a=true}if(a||this.suppressBrowserContextMenu===true)f.preventDefault()},onClick:function(c,a){if(this.readOnly===true)return true;if(this.dropZone)this.dropZone.clearShims();if(this.menuActive===true){this.menuActive=false;return true}var b=c.getTarget(this.eventSelector,5);if(b){var g=this.getEventIdFromEl(b),f=this.getEventRecord(g);if(this.fireEvent("eventclick",this,f,b)!==false)this.showEventEditor(f,b);return true}},onMouseOver:function(b,a){if(this.trackMouseOver!==false&&(this.dragZone==undefined||!this.dragZone.dragging))if(!this.handleEventMouseEvent(b,a,"over"))this.handleDayMouseEvent(b,a,"over")},onMouseOut:function(b,a){if(this.trackMouseOver!==false&&(this.dragZone==undefined||!this.dragZone.dragging))if(!this.handleEventMouseEvent(b,a,"out"))this.handleDayMouseEvent(b,a,"out")},handleEventMouseEvent:function(h,c,g){var f;if(f=h.getTarget(this.eventSelector,5,true)){var a=Ext.get(h.getRelatedTarget());if(f==a||f.contains(a))return true;var i=this.getEventIdFromEl(f);if(this.eventOverClass!=""){var b=this.getEventEls(i);b[g=="over"?"addClass":"removeClass"](this.eventOverClass)}this.fireEvent("event"+g,this,this.getEventRecord(i),f);return true}return false},getDateFromId:function(c,b){var a=c.split(b);return a[a.length-1]},handleDayMouseEvent:function(k,f,h){if(f=k.getTarget("td",3))if(f.id&&f.id.indexOf(this.dayElIdDelimiter)>-1){var i=this.getDateFromId(f.id,this.dayElIdDelimiter),a=Ext.get(k.getRelatedTarget()),c,b;if(a){c=a.is("td")?a:a.up("td",3);b=c&&c.id?this.getDateFromId(c.id,this.dayElIdDelimiter):""}if(!a||i!=b){var g=this.getDayEl(i);if(g&&this.dayOverClass!="")g[h=="over"?"addClass":"removeClass"](this.dayOverClass);this.fireEvent("day"+h,this,Date.parseDate(i,"Ymd"),g)}}},renderItems:function(){throw"This method must be implemented by a subclass";},destroy:function(){Ext.ensible.cal.CalendarView.superclass.destroy.call(this);if(this.el)this.el.un("contextmenu",this.onContextMenu,this);Ext.destroy(this.editWin,this.eventMenu,this.dragZone,this.dropZone)}});Ext.ensible.cal.MonthView=Ext.extend(Ext.ensible.cal.CalendarView,{moreText:"+{0} more...",detailsTitleDateFormat:"F j",showTime:true,showTodayText:true,showHeader:false,showWeekLinks:false,showWeekNumbers:false,weekLinkOverClass:"ext-week-link-over",daySelector:".ext-cal-day",moreSelector:".ext-cal-ev-more",weekLinkSelector:".ext-cal-week-link",weekCount:-1,dayCount:7,moreElIdDelimiter:"-more-",weekLinkIdDelimiter:"ext-cal-week-",initComponent:function(){Ext.ensible.cal.MonthView.superclass.initComponent.call(this);this.addEvents({dayclick:true,weekclick:true,dayover:true,dayout:true})},initDD:function(){var a={view:this,createText:this.ddCreateEventText,moveText:this.ddMoveEventText,ddGroup:this.ddGroup||this.id+"-MonthViewDD"};this.dragZone=new Ext.ensible.cal.DragZone(this.el,a);this.dropZone=new Ext.ensible.cal.DropZone(this.el,a)},onDestroy:function(){Ext.destroy(this.ddSelector);Ext.destroy(this.dragZone);Ext.destroy(this.dropZone);Ext.ensible.cal.MonthView.superclass.onDestroy.call(this)},afterRender:function(){if(!this.tpl)this.tpl=new Ext.ensible.cal.MonthViewTemplate({id:this.id,showTodayText:this.showTodayText,todayText:this.todayText,showTime:this.showTime,showHeader:this.showHeader,showWeekLinks:this.showWeekLinks,showWeekNumbers:this.showWeekNumbers});this.tpl.compile();this.addClass("ext-cal-monthview ext-cal-ct");Ext.ensible.cal.MonthView.superclass.afterRender.call(this)},onResize:function(){if(this.monitorResize){this.maxEventsPerDay=this.getMaxEventsPerDay();this.refresh()}},forceSize:function(){if(this.showWeekLinks&&this.el&&this.el.child){var f=this.el.select(".ext-cal-hd-days-tbl"),e=this.el.select(".ext-cal-bg-tbl"),c=this.el.select(".ext-cal-evt-tbl"),b=this.el.child(".ext-cal-week-link").getWidth(),a=this.el.getWidth()-b;f.setWidth(a);e.setWidth(a);c.setWidth(a)}Ext.ensible.cal.MonthView.superclass.forceSize.call(this)},initClock:function(){if(Ext.fly(this.id+"-clock")!==null){this.prevClockDay=(new Date).getDay();if(this.clockTask)Ext.TaskMgr.stop(this.clockTask);this.clockTask=Ext.TaskMgr.start({run:function(){var b=Ext.fly(this.id+"-clock"),a=new Date;if(a.getDay()==this.prevClockDay){if(b)b.update(a.format(Ext.ensible.Date.use24HourTime?"G:i":"g:ia"))}else{this.prevClockDay=a.getDay();this.moveTo(a)}},scope:this,interval:1e3})}},getMoreText:function(a){return this.moreText},getEventBodyMarkup:function(){if(!this.eventBodyMarkup)this.eventBodyMarkup=["{Title}",'<tpl if="_isReminder">','<i class="ext-cal-ic ext-cal-ic-rem">&#160;</i>',"</tpl>",'<tpl if="_isRecurring">','<i class="ext-cal-ic ext-cal-ic-rcr">&#160;</i>',"</tpl>",'<tpl if="spanLeft">','<i class="ext-cal-spl">&#160;</i>',"</tpl>",'<tpl if="spanRight">','<i class="ext-cal-spr">&#160;</i>',"</tpl>"].join("");return this.eventBodyMarkup},getEventTemplate:function(){if(!this.eventTpl){var b,a=this.getEventBodyMarkup();b=!(Ext.isIE||Ext.isOpera)?new Ext.XTemplate('<div class="{_extraCls} {spanCls} ext-cal-evt ext-cal-evr">',a,"</div>"):new Ext.XTemplate('<tpl if="_renderAsAllDay">','<div class="{_extraCls} {spanCls} ext-cal-evt ext-cal-evo">','<div class="ext-cal-evm">','<div class="ext-cal-evi">',"</tpl>",'<tpl if="!_renderAsAllDay">','<div class="{_extraCls} ext-cal-evt ext-cal-evr">',"</tpl>",a,'<tpl if="_renderAsAllDay">',"</div>","</div>","</tpl>","</div>");b.compile();this.eventTpl=b}return this.eventTpl},getTemplateEventData:function(k){var h=Ext.ensible.cal.EventMappings,f=[this.getEventSelectorCls(k[h.EventId.name])],g={},b=k[h.RRule.name]!="",a="x-cal-default",i=k[h.Title.name],c=Ext.ensible.Date.use24HourTime?"G:i ":"g:ia ";if(this.calendarStore&&k[h.CalendarId.name]){var e=this.calendarStore.getById(k[h.CalendarId.name]);if(e)a="x-cal-"+e.data[Ext.ensible.cal.CalendarMappings.ColorId.name]}a+=k._renderAsAllDay?"-ad":"";f.push(a);if(this.getEventClass){var e=this.getEventRecord(k[h.EventId.name]),l=this.getEventClass(e,!!k._renderAsAllDay,g,this.store);f.push(l)}g._extraCls=f.join(" ");g._isRecurring=k.Recurrence&&k.Recurrence!="";g._isReminder=k[h.Reminder.name]&&k[h.Reminder.name]!="";g.Title=(k[h.IsAllDay.name]?"":k[h.StartDate.name].format(c))+(!i||i.length==0?this.defaultEventTitleText:i);return Ext.applyIf(g,k)},refresh:function(a){Ext.ensible.log("refresh (MonthView)");if(this.detailPanel)this.detailPanel.hide();Ext.ensible.cal.MonthView.superclass.refresh.call(this,a);if(this.showTime!==false)this.initClock()},renderItems:function(){Ext.ensible.cal.WeekEventRenderer.render({eventGrid:this.allDayOnly?this.allDayGrid:this.eventGrid,viewStart:this.viewStart,tpl:this.getEventTemplate(),maxEventsPerDay:this.maxEventsPerDay,id:this.id,templateDataFn:this.getTemplateEventData.createDelegate(this),evtMaxCount:this.evtMaxCount,weekCount:this.weekCount,dayCount:this.dayCount,getMoreText:this.getMoreText.createDelegate(this)});this.fireEvent("eventsrendered",this)},getDayEl:function(a){return Ext.get(this.getDayId(a))},getDayId:function(a){if(Ext.isDate(a))a=a.format("Ymd");return this.id+this.dayElIdDelimiter+a},getWeekIndex:function(b){var a=this.getDayEl(b).up(".ext-cal-wk-ct");return parseInt(a.id.split("-wk-")[1])},getDaySize:function(g){var c=this.el.getBox(),f=this.getViewPadding(),a=(c.width-f.width)/this.dayCount,b=(c.height-f.height)/this.getWeekCount();if(g){var e=this.el.select(".ext-cal-dtitle").last().parent("tr");b=e?b-e.getHeight(true):b}return{height:b,width:a}},getEventHeight:function(){if(!this.eventHeight){var a=this.el.select(".ext-cal-evt").first();if(a)this.eventHeight=a.parent("tr").getHeight();else return 16}return this.eventHeight},getMaxEventsPerDay:function(){var b=this.getDaySize(true).height,c=this.getEventHeight(),e=5,a=Math.max(Math.floor((b-c-e)/c),0);return a},getViewPadding:function(e){var e=e||"tlbr",g=e.indexOf("t")>-1,f=e.indexOf("l")>-1,b=e.indexOf("r")>-1,a=this.showHeader&&g?this.el.select(".ext-cal-hd-days-tbl").first().getHeight():0,c=0;if(this.isHeaderView){if(f)c=this.el.select(".ext-cal-gutter").first().getWidth();if(b)c+=this.el.select(".ext-cal-gutter-rt").first().getWidth()}else if(this.showWeekLinks&&f)c=this.el.select(".ext-cal-week-link").first().getWidth();return{height:a,width:c}},getDayAt:function(i,f){var c=this.el.getBox(),g=this.getViewPadding("tl"),h=this.getDaySize(),e=Math.floor((i-c.x-g.width)/h.width),b=Math.floor((f-c.y-g.height)/h.height),k=b*7+e;var a=this.viewStart.add(Date.DAY,k);return{date:a,el:this.getDayEl(a)}},moveNext:function(){return this.moveMonths(1,true)},movePrev:function(){return this.moveMonths(-1,true)},onInitDrag:function(){Ext.ensible.cal.MonthView.superclass.onInitDrag.call(this);Ext.select(this.daySelector).removeClass(this.dayOverClass);if(this.detailPanel)this.detailPanel.hide()},onMoreClick:function(a){if(!this.detailPanel){this.detailPanel=new Ext.Panel({id:this.id+"-details-panel",title:a.format(this.detailsTitleDateFormat),layout:"fit",floating:true,renderTo:Ext.getBody(),tools:[{id:"close",handler:function(f,b,c){c.hide()}}],items:{xtype:"extensible.monthdaydetailview",id:this.id+"-details-view",date:a,view:this,store:this.store,calendarStore:this.calendarStore,listeners:{eventsrendered:this.onDetailViewUpdated.createDelegate(this)}}});this.detailPanel.body.on("contextmenu",this.onContextMenu,this)}else this.detailPanel.setTitle(a.format(this.detailsTitleDateFormat));this.detailPanel.getComponent(this.id+"-details-view").update(a)},onDetailViewUpdated:function(h,c,i){var b=this.detailPanel,f=b.getFrameHeight(),k=this.getEventHeight(),a=f+i*k+3,g=this.getDayEl(c),e=g.getBox();b.setHeight(a);b.setWidth(Math.max(e.width,220));b.show();b.getPositionEl().alignTo(g,"t-t?")},onHide:function(){Ext.ensible.cal.MonthView.superclass.onHide.call(this);if(this.detailPanel)this.detailPanel.hide()},onClick:function(f,a){if(this.detailPanel)this.detailPanel.hide();if(el=f.getTarget(this.moreSelector,3)){var b=el.id.split(this.moreElIdDelimiter)[1];this.onMoreClick(Date.parseDate(b,"Ymd"));return}if(el=f.getTarget(this.weekLinkSelector,3)){var b=el.id.split(this.weekLinkIdDelimiter)[1];this.fireEvent("weekclick",this,Date.parseDate(b,"Ymd"));return}if(Ext.ensible.cal.MonthView.superclass.onClick.apply(this,arguments))return;if(el=f.getTarget("td",3))if(el.id&&el.id.indexOf(this.dayElIdDelimiter)>-1){var c=el.id.split(this.dayElIdDelimiter),b=c[c.length-1];this.onDayClick(Date.parseDate(b,"Ymd"),false,Ext.get(this.getDayId(b)));return}},handleDayMouseEvent:function(f,a,c){var b=f.getTarget(this.weekLinkSelector,3,true);if(b){b[c=="over"?"addClass":"removeClass"](this.weekLinkOverClass);return}Ext.ensible.cal.MonthView.superclass.handleDayMouseEvent.apply(this,arguments)},destroy:function(){Ext.ensible.cal.MonthView.superclass.destroy.call(this);if(this.detailsPanel)this.detailPanel.body.un("contextmenu",this.onContextMenu,this)}});Ext.reg("extensible.monthview",Ext.ensible.cal.MonthView);Ext.ensible.cal.DayHeaderView=Ext.extend(Ext.ensible.cal.MonthView,{weekCount:1,dayCount:1,allDayOnly:true,monitorResize:false,isHeaderView:true,afterRender:function(){if(!this.tpl)this.tpl=new Ext.ensible.cal.DayHeaderTemplate({id:this.id,showTodayText:this.showTodayText,todayText:this.todayText,showTime:this.showTime});this.tpl.compile();this.addClass("ext-cal-day-header");Ext.ensible.cal.DayHeaderView.superclass.afterRender.call(this)},forceSize:Ext.emptyFn,refresh:function(a){Ext.ensible.log("refresh (DayHeaderView)");Ext.ensible.cal.DayHeaderView.superclass.refresh.call(this,a);this.recalcHeaderBox()},recalcHeaderBox:function(){var b=this.el.child(".ext-cal-evt-tbl"),a=b.getHeight();this.el.setHeight(a+7);this.el.child(".ext-cal-hd-ad-inner").setHeight(a+5);this.el.child(".ext-cal-bg-tbl").setHeight(a+5)},moveNext:function(){this.moveDays(this.dayCount)},movePrev:function(){this.moveDays(-this.dayCount)},onClick:function(f,a){if(el=f.getTarget("td",3))if(el.id&&el.id.indexOf(this.dayElIdDelimiter)>-1){var c=el.id.split(this.dayElIdDelimiter),b=c[c.length-1];this.onDayClick(Date.parseDate(b,"Ymd"),true,Ext.get(this.getDayId(b,true)));return}Ext.ensible.cal.DayHeaderView.superclass.onClick.apply(this,arguments)}});Ext.reg("extensible.dayheaderview",Ext.ensible.cal.DayHeaderView);Ext.ensible.cal.DayBodyView=Ext.extend(Ext.ensible.cal.CalendarView,{dayColumnElIdDelimiter:"-day-col-",hourIncrement:60,initComponent:function(){Ext.ensible.cal.DayBodyView.superclass.initComponent.call(this);if(this.readOnly===true)this.enableEventResize=false;this.incrementsPerHour=this.hourIncrement/this.ddIncrement;this.minEventHeight=this.minEventDisplayMinutes/(this.hourIncrement/this.hourHeight);this.addEvents({beforeeventresize:true,eventresize:true,dayclick:true})},initDD:function(){var a={view:this,createText:this.ddCreateEventText,moveText:this.ddMoveEventText,resizeText:this.ddResizeEventText,ddIncrement:this.ddIncrement,ddGroup:this.ddGroup||this.id+"-DayViewDD"};this.el.ddScrollConfig={vthresh:Ext.isIE||Ext.isOpera?100:40,hthresh:-1,frequency:50,increment:100,ddGroup:this.ddGroup||this.id+"-DayViewDD"};this.dragZone=new Ext.ensible.cal.DayViewDragZone(this.el,Ext.apply({containerScroll:true},a));this.dropZone=new Ext.ensible.cal.DayViewDropZone(this.el,a)},refresh:function(a){Ext.ensible.log("refresh (DayBodyView)");var b=this.el.getScroll().top;Ext.ensible.cal.DayBodyView.superclass.refresh.call(this,a);if(this.scrollReady)this.scrollTo(b)},scrollTo:function(b,a){a=a||Ext.isIE||Ext.isOpera;if(a)(function(){this.el.scrollTo("top",b);this.scrollReady=true}).defer(10,this);else{this.el.scrollTo("top",b);this.scrollReady=true}},afterRender:function(){if(!this.tpl)this.tpl=new Ext.ensible.cal.DayBodyTemplate({id:this.id,dayCount:this.dayCount,showTodayText:this.showTodayText,todayText:this.todayText,showTime:this.showTime,showHourSeparator:this.showHourSeparator,viewStartHour:this.viewStartHour,viewEndHour:this.viewEndHour,hourIncrement:this.hourIncrement,hourHeight:this.hourHeight});this.tpl.compile();this.addClass("ext-cal-body-ct");Ext.ensible.cal.DayBodyView.superclass.afterRender.call(this);var b=Math.max(this.scrollStartHour,this.viewStartHour),a=Math.max(0,b-this.viewStartHour);if(a>0)this.scrollTo(a*this.hourHeight)},forceSize:Ext.emptyFn,onEventResize:function(e,b){if(this.fireEvent("beforeeventresize",this,e,b)!==false){var c=Ext.ensible.Date,f=Ext.ensible.cal.EventMappings.StartDate.name,a=Ext.ensible.cal.EventMappings.EndDate.name;if(c.compare(e.data[f],b.StartDate)===0&&c.compare(e.data[a],b.EndDate)===0)return;e.set(f,b.StartDate);e.set(a,b.EndDate);this.onEventUpdate(null,e);this.fireEvent("eventresize",this,e)}},getEventBodyMarkup:function(){if(!this.eventBodyMarkup)this.eventBodyMarkup=["{Title}",'<tpl if="_isReminder">','<i class="ext-cal-ic ext-cal-ic-rem">&#160;</i>',"</tpl>",'<tpl if="_isRecurring">','<i class="ext-cal-ic ext-cal-ic-rcr">&#160;</i>',"</tpl>"].join("");return this.eventBodyMarkup},getEventTemplate:function(){if(!this.eventTpl){this.eventTpl=!(Ext.isIE||Ext.isOpera)?new Ext.XTemplate('<div id="{_elId}" class="{_extraCls} ext-cal-evt ext-cal-evr" style="left: {_left}%; width: {_width}%; top: {_top}px; height: {_height}px;">','<div class="ext-evt-bd">',this.getEventBodyMarkup(),"</div>",this.enableEventResize?'<div class="ext-evt-rsz"><div class="ext-evt-rsz-h">&#160;</div></div>':"","</div>"):new Ext.XTemplate('<div id="{_elId}" class="ext-cal-evt {_extraCls}" style="left: {_left}%; width: {_width}%; top: {_top}px;">','<div class="ext-cal-evb">&#160;</div>','<dl style="height: {_height}px;" class="ext-cal-evdm">','<dd class="ext-evt-bd">',this.getEventBodyMarkup(),"</dd>",this.enableEventResize?'<div class="ext-evt-rsz"><div class="ext-evt-rsz-h">&#160;</div></div>':"","</dl>",'<div class="ext-cal-evb">&#160;</div>',"</div>");this.eventTpl.compile()}return this.eventTpl},getEventAllDayTemplate:function(){if(!this.eventAllDayTpl){var b,a=this.getEventBodyMarkup();b=!(Ext.isIE||Ext.isOpera)?new Ext.XTemplate('<div class="{_extraCls} {spanCls} ext-cal-evt ext-cal-evr" style="left: {_left}%; width: {_width}%; top: {_top}px; height: {_height}px;">',a,"</div>"):new Ext.XTemplate('<div class="ext-cal-evt" style="left: {_left}%; width: {_width}%; top: {_top}px; height: {_height}px;">','<div class="{_extraCls} {spanCls} ext-cal-evo">','<div class="ext-cal-evm">','<div class="ext-cal-evi">',a,"</div>","</div>","</div></div>");b.compile();this.eventAllDayTpl=b}return this.eventAllDayTpl},getTemplateEventData:function(k){var h=Ext.ensible.cal.EventMappings,f=[this.getEventSelectorCls(k[h.EventId.name])],g={},a="x-cal-default",i=k[h.Title.name],c=Ext.ensible.Date.use24HourTime?"G:i ":"g:ia ",b=k[h.RRule.name]!="";this.getTemplateEventBox(k);if(this.calendarStore&&k[h.CalendarId.name]){var e=this.calendarStore.getById(k[h.CalendarId.name]);if(e)a="x-cal-"+e.data[Ext.ensible.cal.CalendarMappings.ColorId.name]}a+=(k._renderAsAllDay?"-ad":"")+(Ext.isIE||Ext.isOpera?"-x":"");f.push(a);if(this.getEventClass){var e=this.getEventRecord(k[h.EventId.name]),l=this.getEventClass(e,!!k._renderAsAllDay,g,this.store);f.push(l)}g._extraCls=f.join(" ");g._isRecurring=k.Recurrence&&k.Recurrence!="";g._isReminder=k[h.Reminder.name]&&k[h.Reminder.name]!="";g.Title=(k[h.IsAllDay.name]?"":k[h.StartDate.name].format(c))+(!i||i.length==0?this.defaultEventTitleText:i);return Ext.applyIf(g,k)},getEventPositionOffsets:function(){return{top:1,height:-2}},getTemplateEventBox:function(k){var c=this.hourHeight/this.hourIncrement,b=k[Ext.ensible.cal.EventMappings.StartDate.name],e=k[Ext.ensible.cal.EventMappings.EndDate.name],h=Math.max(b.getHours()-this.viewStartHour,0),i=Math.min(e.getHours()-this.viewStartHour,this.viewEndHour-this.viewStartHour),a=h*this.hourIncrement,f=i*this.hourIncrement,l=e.clearTime(true).add(Date.HOUR,this.viewEndHour),g=this.getEventPositionOffsets();if(b.getHours()>=this.viewStartHour)a+=b.getMinutes();if(e<=l)f+=e.getMinutes();k._left=0;k._width=100;k._top=a*c+g.top;k._height=Math.max((f-a)*c,this.minEventHeight)+g.height},renderItems:function(){var o=0,c=[];for(;o<this.dayCount;o++){var t=emptyCells=skipped=0,u=this.eventGrid[0][o],b=u?u.length:0,g;for(;t<b;t++){g=u[t];if(!g)continue;var s=g.data||g.event.data,e=Ext.ensible.cal.EventMappings,v=s[e.IsAllDay.name]===true,n=Ext.ensible.Date.diffDays(s[e.StartDate.name],s[e.EndDate.name])>0,f=v||n;if(f)continue;Ext.apply(s,{cls:"ext-cal-ev",_positioned:true});c.push({data:this.getTemplateEventData(s),date:this.viewStart.add(Date.DAY,o)})}}var p=j=0,q=[],k=c.length,a;for(;p<k;p++){var g=c[p].data,m=null,h=g[Ext.ensible.cal.EventMappings.StartDate.name].getDate();for(j=0;j<k;j++){if(p==j)continue;m=c[j].data;if(this.isOverlapping(g,m)){g._overlap=g._overlap==undefined?1:g._overlap+1;if(p<j){if(g._overcol===undefined)g._overcol=0;m._overcol=g._overcol+1;q[h]=q[h]?Math.max(q[h],m._overcol):m._overcol}}}}for(p=0;p<k;p++){var g=c[p].data,h=g[Ext.ensible.cal.EventMappings.StartDate.name].getDate();if(g._overlap!==undefined){var w=100/(q[h]+1),y=100-w*g._overlap;g._width=w;g._left=w*g._overcol}var r=this.getEventTemplate().apply(g),x=this.id+"-day-col-"+c[p].date.format("Ymd");Ext.DomHelper.append(x,r)}this.fireEvent("eventsrendered",this)},getDayEl:function(a){return Ext.get(this.getDayId(a))},getDayId:function(a){if(Ext.isDate(a))a=a.format("Ymd");return this.id+this.dayColumnElIdDelimiter+a},getDaySize:function(){var a=this.el.child(".ext-cal-day-col-inner").getBox();return{height:a.height,width:a.width}},getDayAt:function(o,k){var f=".ext-cal-body-ct",h=this.el.child(".ext-cal-day-times").getWidth(),s=this.el.getBox(),n=this.getDaySize(false),p=o-s.x-h,a=Math.floor(p/n.width),m=this.el.getScroll(),r=this.el.child(".ext-cal-bg-row"),q=r.getHeight()/this.incrementsPerHour,l=k-s.y-q+m.top,i=Math.max(0,Math.ceil(l/q)),b=i*(this.hourIncrement/this.incrementsPerHour),e=this.viewStart.add(Date.DAY,a).add(Date.MINUTE,b).add(Date.HOUR,this.viewStartHour),c=this.getDayEl(e),g=o;if(c)g=c.getLeft();return{date:e,el:c,timeBox:{x:g,y:i*this.hourHeight/this.incrementsPerHour+s.y-m.top,width:n.width,height:q}}},onClick:function(g,b){if(this.dragPending||Ext.ensible.cal.DayBodyView.superclass.onClick.apply(this,arguments))return;if(g.getTarget(".ext-cal-day-times",3)!==null)return;var c=g.getTarget("td",3);if(c)if(c.id&&c.id.indexOf(this.dayElIdDelimiter)>-1){var f=this.getDateFromId(c.id,this.dayElIdDelimiter);this.onDayClick(Date.parseDate(f,"Ymd"),true,Ext.get(this.getDayId(f)));return}var a=this.getDayAt(g.xy[0],g.xy[1]);if(a&&a.date)this.onDayClick(a.date,false,null)}});Ext.reg("extensible.daybodyview",Ext.ensible.cal.DayBodyView);Ext.ensible.cal.DayView=Ext.extend(Ext.Container,{ddCreateEventText:Ext.ensible.cal.CalendarView.prototype.ddCreateEventText,ddMoveEventText:Ext.ensible.cal.CalendarView.prototype.ddMoveEventText,showTime:true,showTodayText:true,dayCount:1,enableEventResize:true,ddIncrement:30,minEventDisplayMinutes:30,showHourSeparator:true,viewStartHour:0,viewEndHour:24,scrollStartHour:7,hourHeight:42,initComponent:function(){this.dayCount=this.dayCount>7?7:this.dayCount<1?1:this.dayCount;var b=Ext.apply({},this.initialConfig);b.showTime=this.showTime;b.showTodayText=this.showTodayText;b.todayText=this.todayText;b.dayCount=this.dayCount;b.weekCount=1;b.readOnly=this.readOnly;b.ddIncrement=this.ddIncrement;b.minEventDisplayMinutes=this.minEventDisplayMinutes;var c=Ext.applyIf({xtype:"extensible.dayheaderview",id:this.id+"-hd",ownerCalendarPanel:this.ownerCalendarPanel},b);var a=Ext.applyIf({xtype:"extensible.daybodyview",enableEventResize:this.enableEventResize,showHourSeparator:this.showHourSeparator,viewStartHour:this.viewStartHour,viewEndHour:this.viewEndHour,scrollStartHour:this.scrollStartHour,hourHeight:this.hourHeight,id:this.id+"-bd",ownerCalendarPanel:this.ownerCalendarPanel},b);this.items=[c,a];this.addClass("ext-cal-dayview ext-cal-ct");Ext.ensible.cal.DayView.superclass.initComponent.call(this)},afterRender:function(){Ext.ensible.cal.DayView.superclass.afterRender.call(this);this.header=Ext.getCmp(this.id+"-hd");this.body=Ext.getCmp(this.id+"-bd");this.body.on("eventsrendered",this.forceSize,this)},refresh:function(){Ext.ensible.log("refresh (DayView)");this.header.refresh();this.body.refresh()},forceSize:function(){(function(){var a=this.el.up(".x-panel-body"),c=this.el.child(".ext-cal-day-header"),b=a.getHeight()-c.getHeight();this.el.child(".ext-cal-body-ct").setHeight(b-1)}).defer(10,this)},onResize:function(){this.forceSize();this.refresh.defer(1,this)},doHide:function(){this.header.doHide.apply(this,arguments);this.body.doHide.apply(this,arguments)},getViewBounds:function(){return this.header.getViewBounds()},getStartDate:function(){return this.header.getStartDate()},setStartDate:function(a){this.header.setStartDate(a,true);this.body.setStartDate(a)},renderItems:function(){this.header.renderItems();this.body.renderItems()},isToday:function(){return this.header.isToday()},moveTo:function(a){this.header.moveTo(a);return this.body.moveTo(a,true)},moveNext:function(){this.header.moveNext();return this.body.moveNext(true)},movePrev:function(a){this.header.movePrev();return this.body.movePrev(true)},moveDays:function(a){this.header.moveDays(a);return this.body.moveDays(a,true)},moveToday:function(){this.header.moveToday();return this.body.moveToday(true)},showEventEditor:function(b,a){return Ext.ensible.cal.CalendarView.prototype.showEventEditor.apply(this,arguments)},dismissEventEditor:function(a){return Ext.ensible.cal.CalendarView.prototype.dismissEventEditor.apply(this,arguments)}});Ext.reg("extensible.dayview",Ext.ensible.cal.DayView);Ext.ensible.cal.MultiDayView=Ext.extend(Ext.ensible.cal.DayView,{dayCount:3,startDayIsStatic:false,moveNext:function(a){return this.moveDays(this.startDayIsStatic?7:this.dayCount,a)},movePrev:function(a){return this.moveDays(this.startDayIsStatic?-7:-this.dayCount,a)}});Ext.reg("extensible.multidayview",Ext.ensible.cal.MultiDayView);Ext.ensible.cal.WeekView=Ext.extend(Ext.ensible.cal.MultiDayView,{dayCount:7});Ext.reg("extensible.weekview",Ext.ensible.cal.WeekView);Ext.ensible.cal.MultiWeekView=Ext.extend(Ext.ensible.cal.MonthView,{weekCount:2,moveNext:function(){return this.moveWeeks(this.weekCount,true)},movePrev:function(){return this.moveWeeks(-this.weekCount,true)}});Ext.reg("extensible.multiweekview",Ext.ensible.cal.MultiWeekView);Ext.ensible.cal.MonthDayDetailView=Ext.extend(Ext.BoxComponent,{initComponent:function(){Ext.ensible.cal.CalendarView.superclass.initComponent.call(this);this.addEvents({eventsrendered:true});if(!this.el)this.el=document.createElement("div")},afterRender:function(){this.tpl=this.getTemplate();Ext.ensible.cal.MonthDayDetailView.superclass.afterRender.call(this);this.el.on({click:this.view.onClick,mouseover:this.view.onMouseOver,mouseout:this.view.onMouseOut,scope:this.view})},getTemplate:function(){if(!this.tpl)this.tpl=new Ext.XTemplate('<div class="ext-cal-mdv x-unselectable">','<table class="ext-cal-mvd-tbl" cellpadding="0" cellspacing="0">',"<tbody>",'<tpl for=".">','<tr><td class="ext-cal-ev">{markup}</td></tr>',"</tpl>","</tbody>","</table>","</div>");this.tpl.compile();return this.tpl},update:function(a){this.date=a;this.refresh()},refresh:function(){if(!this.rendered)return;var a=this.view.getEventTemplate(),b=[];evts=this.store.queryBy(function(e){var g=this.date.clearTime(true).getTime(),k=Ext.ensible.cal.EventMappings,i=e.data[k.StartDate.name].clearTime(true).getTime(),f=g==i,h=false,m=e.data[k.CalendarId.name],c=this.calendarStore?this.calendarStore.getById(m):null;if(c&&c.data[Ext.ensible.cal.CalendarMappings.IsHidden.name]===true)return false;if(!f){var l=e.data[Ext.ensible.cal.EventMappings.EndDate.name].clearTime(true).getTime();h=i<g&&l>=g}return f||h},this);Ext.ensible.cal.CalendarView.prototype.sortEventRecordsForDay.call(this,evts);evts.each(function(c){var e=c.data,f=Ext.ensible.cal.EventMappings;e._renderAsAllDay=e[f.IsAllDay.name]||Ext.ensible.Date.diffDays(e[f.StartDate.name],e[f.EndDate.name])>0;e.spanLeft=Ext.ensible.Date.diffDays(e[f.StartDate.name],this.date)>0;e.spanRight=Ext.ensible.Date.diffDays(this.date,e[f.EndDate.name])>0;e.spanCls=e.spanLeft?e.spanRight?"ext-cal-ev-spanboth":"ext-cal-ev-spanleft":e.spanRight?"ext-cal-ev-spanright":"";b.push({markup:a.apply(this.getTemplateEventData(e))})},this);this.tpl.overwrite(this.el,b);this.fireEvent("eventsrendered",this,this.date,evts.getCount())},getTemplateEventData:function(a){var b=this.view.getTemplateEventData(a);b._elId="dtl-"+b._elId;return b}});Ext.reg("extensible.monthdaydetailview",Ext.ensible.cal.MonthDayDetailView);Ext.ensible.cal.CalendarPanel=Ext.extend(Ext.Panel,{enableRecurrence:false,showDayView:true,showMultiDayView:false,showWeekView:true,showMultiWeekView:true,showMonthView:true,showNavBar:true,todayText:"Today",showTodayText:true,showTime:true,readOnly:false,showNavToday:true,showNavJump:true,showNavNextPrev:true,jumpToText:"Jump to:",goText:"Go",dayText:"Day",multiDayText:"{0} Days",weekText:"Week",multiWeekText:"{0} Weeks",monthText:"Month",editModal:false,enableEditDetails:true,layoutConfig:{layoutOnCardChange:true,deferredRender:true},startDate:new Date,initComponent:function(){this.tbar={cls:"ext-cal-toolbar",border:true,items:[]};this.viewCount=0;var b=this.multiDayViewCfg&&this.multiDayViewCfg.dayCount||3,g=this.multiWeekViewCfg&&this.multiWeekViewCfg.weekCount||2;if(this.showNavToday)this.tbar.items.push({id:this.id+"-tb-today",text:this.todayText,handler:this.onTodayClick,scope:this});if(this.showNavNextPrev)this.tbar.items.push([{id:this.id+"-tb-prev",handler:this.onPrevClick,scope:this,iconCls:"x-tbar-page-prev"},{id:this.id+"-tb-next",handler:this.onNextClick,scope:this,iconCls:"x-tbar-page-next"}]);if(this.showNavJump)this.tbar.items.push([this.jumpToText,{id:this.id+"-tb-jump-dt",xtype:"datefield",showToday:false},{id:this.id+"-tb-jump",text:this.goText,handler:this.onJumpClick,scope:this}]);this.tbar.items.push("->");if(this.showDayView){this.tbar.items.push({id:this.id+"-tb-day",text:this.dayText,handler:this.onDayNavClick,scope:this,toggleGroup:this.id+"-tb-views"});this.viewCount++}if(this.showMultiDayView){var i=String.format(this.getMultiDayText(b),b);this.tbar.items.push({id:this.id+"-tb-multiday",text:i,handler:this.onMultiDayNavClick,scope:this,toggleGroup:this.id+"-tb-views"});this.viewCount++}if(this.showWeekView){this.tbar.items.push({id:this.id+"-tb-week",text:this.weekText,handler:this.onWeekNavClick,scope:this,toggleGroup:this.id+"-tb-views"});this.viewCount++}if(this.showMultiWeekView){var i=String.format(this.getMultiWeekText(g),g);this.tbar.items.push({id:this.id+"-tb-multiweek",text:i,handler:this.onMultiWeekNavClick,scope:this,toggleGroup:this.id+"-tb-views"});this.viewCount++}if(this.showMonthView||this.viewCount==0){this.tbar.items.push({id:this.id+"-tb-month",text:this.monthText,handler:this.onMonthNavClick,scope:this,toggleGroup:this.id+"-tb-views"});this.viewCount++;this.showMonthView=true}var h=this.viewCount-1;this.activeItem=this.activeItem===undefined?h:this.activeItem>h?h:this.activeItem;if(this.showNavBar===false){delete this.tbar;this.addClass("x-calendar-nonav")}Ext.ensible.cal.CalendarPanel.superclass.initComponent.call(this);this.addEvents({eventadd:true,eventupdate:true,beforeeventdelete:true,eventdelete:true,eventcancel:true,viewchange:true,editdetails:true});this.layout="card";this.addClass("x-cal-panel");if(this.eventStore){this.store=this.eventStore;delete this.eventStore}this.setStore(this.store);var k={showToday:this.showToday,todayText:this.todayText,showTodayText:this.showTodayText,showTime:this.showTime,readOnly:this.readOnly,enableRecurrence:this.enableRecurrence,store:this.store,calendarStore:this.calendarStore,editModal:this.editModal,enableEditDetails:this.enableEditDetails,ownerCalendarPanel:this};if(this.showDayView){var f=Ext.apply({xtype:"extensible.dayview",title:this.dayText},k);f=Ext.apply(Ext.apply(f,this.viewConfig),this.dayViewCfg);f.id=this.id+"-day";this.initEventRelay(f);this.add(f)}if(this.showMultiDayView){var a=Ext.apply({xtype:"extensible.multidayview",title:this.getMultiDayText(b)},k);a=Ext.apply(Ext.apply(a,this.viewConfig),this.multiDayViewCfg);a.id=this.id+"-multiday";this.initEventRelay(a);this.add(a)}if(this.showWeekView){var l=Ext.applyIf({xtype:"extensible.weekview",title:this.weekText},k);l=Ext.apply(Ext.apply(l,this.viewConfig),this.weekViewCfg);l.id=this.id+"-week";this.initEventRelay(l);this.add(l)}if(this.showMultiWeekView){var e=Ext.applyIf({xtype:"extensible.multiweekview",title:this.getMultiWeekText(g)},k);e=Ext.apply(Ext.apply(e,this.viewConfig),this.multiWeekViewCfg);e.id=this.id+"-multiweek";this.initEventRelay(e);this.add(e)}if(this.showMonthView){var c=Ext.applyIf({xtype:"extensible.monthview",title:this.monthText,listeners:{weekclick:{fn:function(n,m){this.showWeek(m)},scope:this}}},k);c=Ext.apply(Ext.apply(c,this.viewConfig),this.monthViewCfg);c.id=this.id+"-month";this.initEventRelay(c);this.add(c)}this.add(Ext.applyIf({xtype:"extensible.eventeditform",id:this.id+"-edit",calendarStore:this.calendarStore,enableRecurrence:this.enableRecurrence,listeners:{eventadd:{scope:this,fn:this.onEventAdd},eventupdate:{scope:this,fn:this.onEventUpdate},eventdelete:{scope:this,fn:this.onEventDelete},eventcancel:{scope:this,fn:this.onEventCancel}}},this.editViewCfg))},initEventRelay:function(a){a.listeners=a.listeners||{};a.listeners.afterrender={fn:function(b){this.relayEvents(b,["eventsrendered","eventclick","dayclick","eventover","eventout","beforedatechange","datechange","rangeselect","beforeeventmove","eventmove","initdrag","dayover","dayout","beforeeventresize","eventresize","eventadd","eventupdate","beforeeventdelete","eventdelete","eventcancel"]);b.on("editdetails",this.onEditDetails,this)},scope:this,single:true}},afterRender:function(){Ext.ensible.cal.CalendarPanel.superclass.afterRender.call(this);this.body.addClass("x-cal-body");this.activeView=this.getLayout().activeItem;this.fireViewChange()},onLayout:function(){Ext.ensible.cal.CalendarPanel.superclass.onLayout.call(this);if(!this.navInitComplete){this.updateNavState();this.navInitComplete=true}},getMultiDayText:function(a){return this.multiDayText},getMultiWeekText:function(a){return this.multiWeekText},setStore:function(a,b){var c=this.store;if(!b&&c)c.un("write",this.onWrite,this);if(a)a.on("write",this.onWrite,this);this.store=a},onStoreAdd:function(c,b,a){var e=Ext.isArray(b)?b[0]:b;if(e.phantom)return;this.hideEditForm()},onStoreUpdate:function(b,c,a){if(a==Ext.data.Record.COMMIT)this.hideEditForm()},onStoreRemove:function(a,b){this.hideEditForm()},onWrite:function(a,c,b,f,e){switch(c){case"create":this.onStoreAdd(a,e);break;case"update":this.onStoreUpdate(a,e,Ext.data.Record.COMMIT);break;case"destroy":this.onStoreRemove(a,e);break}},onEditDetails:function(b,c,a){if(this.fireEvent("editdetails",this,b,c,a)!==false)this.showEditForm(c)},save:function(){if(!this.store.autoSave)this.store.save()},onEventAdd:function(a,b){if(!b.store){this.store.add(b);this.save()}this.fireEvent("eventadd",this,b)},onEventUpdate:function(a,b){this.save();this.fireEvent("eventupdate",this,b)},onEventDelete:function(a,b){this.store.remove(b);this.save();this.fireEvent("eventdelete",this,b)},onEventCancel:function(a,b){this.hideEditForm();this.fireEvent("eventcancel",this,b)},showEditForm:function(a){this.preEditView=this.layout.activeItem.id;this.setActiveView(this.id+"-edit");this.layout.activeItem.loadRecord(a);return this},hideEditForm:function(){if(this.preEditView){this.setActiveView(this.preEditView);delete this.preEditView}return this},setActiveView:function(c){var b=this.layout,a=this.getTopToolbar();b.setActiveItem(c);this.activeView=b.activeItem;if(c==this.id+"-edit"){if(a)a.hide();this.doLayout()}else{if(c!==this.preEditView)b.activeItem.setStartDate(this.startDate,true);if(a)a.show();this.updateNavState()}this.fireViewChange()},fireViewChange:function(){var c=null,a=this.layout.activeItem;if(a.getViewBounds)var b=a.getViewBounds(),c={activeDate:a.getStartDate(),viewStart:b.start,viewEnd:b.end};if(a.dismissEventEditor)a.dismissEventEditor();this.fireEvent("viewchange",this,a,c)},updateNavState:function(){if(this.showNavBar!==false){var b=this.layout.activeItem,c=b.id.split(this.id+"-")[1];if(this.showNavToday)Ext.getCmp(this.id+"-tb-today").setDisabled(b.isToday());var a=Ext.getCmp(this.id+"-tb-"+c);a.toggle(true)}},setStartDate:function(a){Ext.ensible.log("setStartDate (CalendarPanel");this.startDate=a;this.layout.activeItem.setStartDate(a,true);this.updateNavState();this.fireViewChange();return this},showWeek:function(a){this.setActiveView(this.id+"-week");this.setStartDate(a)},onTodayClick:function(){this.startDate=this.layout.activeItem.moveToday(true);this.updateNavState();this.fireViewChange()},onJumpClick:function(){var a=Ext.getCmp(this.id+"-tb-jump-dt").getValue();if(a!==""){this.startDate=this.layout.activeItem.moveTo(a,true);this.updateNavState();this.fireViewChange()}},onPrevClick:function(){this.startDate=this.layout.activeItem.movePrev(true);this.updateNavState();this.fireViewChange()},onNextClick:function(){this.startDate=this.layout.activeItem.moveNext(true);this.updateNavState();this.fireViewChange()},onDayNavClick:function(){this.setActiveView(this.id+"-day")},onMultiDayNavClick:function(){this.setActiveView(this.id+"-multiday")},onWeekNavClick:function(){this.setActiveView(this.id+"-week")},onMultiWeekNavClick:function(){this.setActiveView(this.id+"-multiweek")},onMonthNavClick:function(){this.setActiveView(this.id+"-month")},getActiveView:function(){return this.layout.activeItem}});Ext.reg("extensible.calendarpanel",Ext.ensible.cal.CalendarPanel);if(!window.console||!console.log){var names=["log","debug","info","warn","error","assert","dir","dirxml","group","groupEnd","time","timeEnd","count","trace","profile","profileEnd"];window.console={};for(var i=0;i<names.length;++i)window.console[names[i]]=function(){}}Ext.namespace("TJ");Ext.BLANK_IMAGE_URL="/lib/external/s.gif";Ext.Ajax.timeout=15e3;Ext.Ajax.on("requestexception",function(conn,res,opt){console.log("ajax requestexception",conn,res,opt)});Ext.Ajax.extraParams={__source__:"Ext"};Ext.onReady(function(){Ext.QuickTips.init()});TJ.HumanFileSize=function(size){if(size=="")return"";var units=["B","KB","MB","GB","TB"];for(var i=0;size>1024;i++)size=size/1024;return Math.round(size*10)/10+" "+units[i]};if(!Ext.StatusBar)Ext.StatusBar=Ext.ux.StatusBar;Ext.namespace("TJ.comp");TJ.comp.OneLangRequired=function(){var sibling;if(this.langRequired){if(!this.basename)this.basename=this.name.substr(0,this.name.length-3);for(lang in TJ.LANGUAGEDESC){var sibling=this.ownerCt.getForm().findField(this.basename+"_"+lang);if(sibling)if(sibling.getValue().length>0)return true}this.markInvalid("At least one language is required");return false}return true};TJ.comp.Select=Ext.extend(Ext.form.ComboBox,{typeAhead:true,mode:"local",triggerAction:"all",selectOnFocus:true,width:300,minListWidth:400,forceSelection:true,initComponent:function(){this.hiddenName=this.name;TJ.comp.Select.superclass.initComponent.call(this)}});Ext.reg("tjselect",TJ.comp.Select);TJ.comp.CachedStores=[];TJ.comp.Language=Ext.extend(Ext.form.ComboBox,{langs:null,valueField:"code",displayField:"lang",typeAhead:true,mode:"local",triggerAction:"all",emptyText:"Select a language...",forceSelection:true,selectOnFocus:true,initComponent:function(){if(this.langs===null){this.langs=new Array;for(lang in TJ.LANGUAGEDESC){console.log(lang,TJ.LANGUAGEDESC[lang]);this.langs.push([lang,TJ.LANGUAGEDESC[lang]])}}this.hiddenName=this.name;delete this.maxLength;this.store=new Ext.data.SimpleStore({fields:["code","lang"],data:this.langs});TJ.comp.Language.superclass.initComponent.call(this)}});Ext.reg("tjlanguage",TJ.comp.Language);TJ.comp.ComboBoxCached=Ext.extend(Ext.form.ComboBox,{width:400,valueField:"id",displayField:"title",editable:true,mode:"local",triggerAction:"all",forceSelection:true,selectOnFocus:true,allowBlank:true,forceLowercase:false,cache:true,setValue:function(value){if(this.forceLowercase)value=value.toLowerCase();TJ.comp.ComboBoxCached.superclass.setValue.call(this,value.toLowerCase())},getStore:function(){return new Ext.data.JsonStore({url:this.url,root:"rows",fields:[{name:this.valueField},{name:this.displayField},{name:"class"}],remoteLoaded:false})},initComponent:function(){delete this.maxLength;this.hiddenName=this.name;if(this.cache){if(!TJ.comp.CachedStores[this.url])TJ.comp.CachedStores[this.url]=this.getStore();this.store=TJ.comp.CachedStores[this.url]}else this.store=this.getStore();TJ.comp.ComboBoxCached.superclass.initComponent.call(this);if(this.value&&!this.store.remoteLoaded){if(this.forceLowercase)this.value=this.value.toLowerCase();if(this.displayValue)this.store.loadData({rows:[{id:this.value,title:this.displayValue||this.value}]},true);else{this.setDisabled(true);this.store.on("load",function(s,r,o){this.setValue(this.value);this.setDisabled(false)},this,{single:true});this.doQuery("")}}TJ.comp.ComboBoxCached.superclass.initComponent.call(this)},setValue:function(v){TJ.comp.ComboBoxCached.superclass.setValue.call(this,v);if(!this.store.remoteLoaded){this.store.on("load",function(s,r,o){this.setValue(this.value);this.setDisabled(false)},this,{single:true});this.doQuery("")}},render:function(ct,pos){TJ.comp.ComboBoxCached.superclass.render.call(this,ct,pos)},doQuery:function(q,forceAll){if(!this.store.remoteLoaded){this.store.remoteLoaded=true;this.store.load({})}TJ.comp.ComboBoxCached.superclass.doQuery.call(this,q,forceAll)}});Ext.reg("tjcombo",TJ.comp.ComboBoxCached);TJ.comp.Application=Ext.extend(TJ.comp.ComboBoxCached,{url:"/en/form:fieldapplication",emptyText:"Select an application..."});Ext.reg("tjapplication",TJ.comp.Application);TJ.comp.Type=Ext.extend(TJ.comp.ComboBoxCached,{forceLowercase:true,url:TJ.LANGUAGESS+"form:fieldtype",useTablenameAsKey:false,emptyText:"Select a table type...",initComponent:function(){if(this.useTablenameAsKey)this.url=TJ.LANGUAGESS+"form-tablename:fieldtype";TJ.comp.Type.superclass.initComponent.call(this)}});Ext.reg("tjtype",TJ.comp.Type);TJ.comp.Tablename=Ext.extend(TJ.comp.Type,{useTablenameAsKey:true});Ext.reg("tjtablename",TJ.comp.Tablename);TJ.comp.TableField=Ext.extend(TJ.comp.ComboBoxCached,{table:0,forceLowercase:true,emptyText:"Select a table field...",initComponent:function(){this.url=TJ.LANGUAGESS+"form:fieldtablefield?table="+this.table;TJ.comp.TableField.superclass.initComponent.call(this)}});Ext.reg("tjtablefield",TJ.comp.TableField);TJ.comp.ComboBoxTwin=Ext.extend(Ext.form.ComboBox,{initComponent:function(){TJ.comp.ComboBoxTwin.superclass.initComponent.call(this);this.triggerConfig={tag:"span",cls:"x-form-twin-triggers",style:"padding-right:2px",cn:[{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger"},{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger x-form-search-trigger"}]}},getTrigger:function(index){return this.triggers[index]},initTrigger:function(){var ts=this.trigger.select(".x-form-trigger",true);this.wrap.setStyle("overflow","hidden");var triggerField=this;ts.each(function(t,all,index){t.hide=function(){var w=triggerField.wrap.getWidth();this.dom.style.display="none";triggerField.el.setWidth(w-triggerField.trigger.getWidth())};t.show=function(){var w=triggerField.wrap.getWidth();this.dom.style.display="";triggerField.el.setWidth(w-triggerField.trigger.getWidth())};var triggerIndex="Trigger"+(index+1);if(this["hide"+triggerIndex])t.dom.style.display="none";t.on("click",this["on"+triggerIndex+"Click"],this,{preventDefault:true});t.addClassOnOver("x-form-trigger-over");t.addClassOnClick("x-form-trigger-click")},this);this.triggers=ts.elements},onTrigger1Click:function(){this.onTriggerClick()},onTrigger2Click:Ext.emptyFn});TJ.comp.Object=Ext.extend(TJ.comp.ComboBoxTwin,{valueField:"_id",displayField:"_summary",editable:true,mode:"remote",triggerAction:"all",forceSelection:true,selectOnFocus:true,minChars:1,width:300,emptyText:"[Select a record]",zeroText:"[Record not selected]",tableField:null,parentFiltering:false,parentID:0,tpl:'<tpl for="."><div class="x-combo-list-item">{_summary} [{_id}]</div></tpl>',setTableClass:function(table){this.setDisabled(true);TJ.CallbackManager.GetTableInfo(table,this.tableInfoCallback,this)},setParentID:function(id,reset){this.parentID=id;this.parentFiltering=true;this.store.baseParams._parentid=this.parentID;console.log("parent",this.parentID,id,this.store.baseParams);if(reset){delete this.lastQuery;this.reset()}this.setDisabled(id===0)},tableInfoCallback:function(val){this.tableinfo=val;if(this.tableinfo.parentClass){console.log(this.tableinfo.parentClass);if(this.fieldArray&&this.fieldArray._parentid){var parentField=Ext.getCmp(this.fieldArray._parentid);if(parentField&&parentField!=this){this.setParentID(parentField.getValue(),false);if(parentField.tableinfo["class"].toLowerCase()==this.tableinfo.parentClass.toLowerCase())parentField.on("change",function(f){this.setParentID(f.getValue(),true)},this)}}}if(val){this.zeroText=this.initialConfig.zeroText||String.format("[{0} not selected]",val.lang.label);this.initStore(this.tableinfo["class"]);if(this.popupwindow){this.popupwindow.destroy();this.popupwindow=null}if(this.parentFiltering)this.setDisabled(this.parentID<1);else this.setDisabled(false)}},initComponent:function(){this.hiddenName=this.name;this.popupwindow=null;this.store=new Ext.data.JsonStore({root:"rows",fields:[{name:"_id"},{name:"_summary"}],url:"/en/form:fieldobject"});this.store.on("load",this.storeLoad,this);TJ.comp.Object.superclass.initComponent.call(this)},initStore:function(table){if(!this.store)return;console.log("stuff",this.store.baseParams);this.store.baseParams.table=table;console.log("stuff2",this.store.baseParams);delete this.lastQuery;if(this.value===0)this.store.loadData({rows:[{_id:this.value,_summary:this.zeroText}]});else if(this.value>0){this.store.loadData({rows:[{_id:this.value,_summary:this.displayValue||String.format("Record [{0}]",this.value)}]});this.getDisplayValue(this.value)}},render:function(pos,ct){this.disabled=true;if(this.table)this.setTableClass(this.table);else{if(this.tableField&&this.fieldArray[this.tableField])this.tableFieldCmp=Ext.getCmp(this.fieldArray[this.tableField]);if(this.tableFieldCmp){this.tableFieldCmp.on("select",function(f){this.setValue(null);this.setTableClass(f.getValue())},this);this.setTableClass(this.tableFieldCmp.getValue())}}TJ.comp.Object.superclass.render.call(this,pos,ct)},storeLoad:function(store,records){console.log(store);if(this.allowZero){if(store.lastOptions)if(store.lastOptions.params.query)return;store.insert(0,new Ext.data.Record({_id:0,_summary:this.zeroText}))}},getDisplayValue:function(id){if(this.displayValue)return;this.displayValue=null;var options={url:"/en/form-"+":fieldobject",scope:this,params:{id:id,table:this.tableinfo["class"]},callback:this.callbackDisplayValue};Ext.Ajax.request(options)},callbackDisplayValue:function(options,success,response){if(response.responseText){var data=Ext.util.JSON.decode(response.responseText);if(data.rows[0]){if(this.value==data.rows[0]._id)this.store.loadData({rows:[{_id:this.value,_summary:data.rows[0]._summary}]});this.setValue(this.value)}}},validateValue:function(value){if(!TJ.comp.Object.superclass.validateValue.call(this,value))return false;if(this.value===0&&!this.allowZero){this.markInvalid("You must select a "+this.label);return false}return true},doQuery:function(q,forceAll){if(q.length<=100)this.mode="remote";TJ.comp.Object.superclass.doQuery.call(this,q,forceAll);if(q.length>=100){this.mode="local";this.queryDelay=10}else{this.mode="remote";this.queryDelay=200}},onRender:function(ct,position){TJ.comp.Object.superclass.onRender.call(this,ct,position)},setRecord:function(record){console.log("setting!!!",record);if(this.propertyGrid&&this.propertyGrid.selModel.selection)this.propertyGrid.selModel.selection.record.set("value",record._id);this.store.loadData({rows:[{_id:record._id,_summary:record._summary}]});this.setValue(record._id);this.fireEvent("change",this);this.fireEvent("select",this);this.popupwindow.hide()},onTrigger2Click:function(){if(!this.tableinfo)return;if(!this.popupwindow){this.popupwindow=new TJ.Admin.TableSelectWindow({tableinfo:this.tableinfo});this.popupwindow.on("recordselected",this.setRecord,this)}this.popupwindow.setParentFilter(this.parentID);this.popupwindow.setSelectedId(this.value);this.popupwindow.show(this)}});Ext.reg("tjobject",TJ.comp.Object);TJ.comp.Record=Ext.extend(TJ.comp.Object,{tableField:"tablename"});Ext.reg("tjrecord",TJ.comp.Record);TJ.comp.ParentFilter=Ext.extend(TJ.comp.Object,{allowZero:true,value:0,zeroText:"No Parent Selected",width:250});Ext.reg("tjparentfilter",TJ.comp.ParentFilter);TJ.comp.User=Ext.extend(TJ.comp.Object,{table:"CL_User_Account_Table"});Ext.reg("tjuser",TJ.comp.User);TJ.comp.UserGroup=Ext.extend(TJ.comp.Object,{table:"CL_User_Group_Table"});Ext.reg("tjusergroup",TJ.comp.UserGroup);TJ.comp.DateField=Ext.extend(Ext.form.DateField,{width:100,format:"Y-m-d",altFormats:"Y-m-d",initComponent:function(){TJ.comp.DateField.superclass.initComponent.call(this);this.on("specialkey",function(field,e){if(e.getKey()==e.ENTER)field.fireEvent("dosubmit",field)})}});Ext.reg("tjdate",TJ.comp.DateField);TJ.comp.TimeField=Ext.extend(Ext.form.TimeField,{width:100,format:"G:i:s",altFormats:"G:i:s",initComponent:function(){TJ.comp.TimeField.superclass.initComponent.call(this)}});Ext.reg("tjtime",TJ.comp.TimeField);TJ.comp.DateTimeField=Ext.extend(Ext.ux.form.DateTime,{dateFormat:"Y-m-d",dateConfig:{msgTarget:"qtip",minWidth:100,width:80},timeFormat:"G:i:s",timeConfig:{msgTarget:"qtip",width:80},format:"Y-m-d H:i:s",validate:function(){this.updateHidden();return TJ.comp.DateTimeField.superclass.validate.call(this)},initComponent:function(){this.hiddenName=this.name;TJ.comp.DateTimeField.superclass.initComponent.call(this)}});Ext.reg("tjdatetime",TJ.comp.DateTimeField);TJ.comp.Captcha=Ext.extend(Ext.form.TextField,{allowBlank:false,width:200,maskRe:/[a-zA-Z]/,initComponent:function(){TJ.comp.Captcha.superclass.initComponent.call(this);this.on("specialkey",function(field,e){if(e.getKey()==e.ENTER)field.fireEvent("dosubmit",field)})},onRender:function(ct,position){TJ.comp.Captcha.superclass.onRender.call(this,ct,position);this.imageSrc=TJ.LANGUAGESS+"_field/captcha:GetImage";this.wrap=this.el.wrap({});this.wrap.createChild({tag:"br"});this.image=this.wrap.createChild({tag:"img",width:"200px",height:"70px",style:"margin: 4px 0;",src:this.imageSrc});this.image.on("click",function(img){this.image.dom.src=this.imageSrc+"?"+Math.random();this.focus()},this)}});Ext.reg("tjcaptcha",TJ.comp.Captcha);TJ.comp.HtmlPublic=Ext.extend(Ext.form.HtmlEditor,{width:600,height:120,focus:function(){},validateValue:function(value){if(!TJ.comp.OneLangRequired.call(this))return false;return TJ.comp.HtmlPublic.superclass.validateValue.call(this,value)}});Ext.reg("tjhtmlpublic",TJ.comp.HtmlPublic);TJ.comp.SelectFile=function(){var browser;return{TinyMCE:function(field_name,url,type,win){this.Display(url,function(file){win.document.getElementById(field_name).value="/"+file;if(win.ImageDialog){if(win.ImageDialog.getImageData)win.ImageDialog.getImageData();if(win.ImageDialog.showPreviewImage)win.ImageDialog.showPreviewImage("/"+file)}})},Display:function(initialValue,callback){if(!browser)browser=new TJ.Admin.FileSelectWindow;browser.show(callback);browser.setValue(initialValue)}}}();TJ.comp.HtmlTinyMCE=Ext.extend(Ext.ux.TinyMCE,{initComponent:function(){settings={theme:"advanced",plugins:"safari,pagebreak,style,layer,table,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,noneditable,visualchars,nonbreaking,xhtmlxtras,template",content_css:TJ.CLIENTCSS,body_class:"clientHTML",theme_advanced_buttons1:"bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",theme_advanced_buttons2:"cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",theme_advanced_buttons3:"tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|",theme_advanced_buttons4:"insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak",theme_advanced_toolbar_location:"top",forced_root_block:false,theme_advanced_toolbar_align:"left",theme_advanced_statusbar_location:"bottom",theme_advanced_resizing:false,theme_advanced_source_editor_width:500,theme_advanced_source_editor_height:400,relative_urls:false,extended_valid_elements:"a[class|name|href|target|title|onclick],img[style|class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],hr[class|width|size|noshade],font[face|size|color|style],div[id|class|align|style],span[class|align|style],iframe[src|width|height|frameborder|scrolling|marginheight|marginwidth|name|align|style]",file_browser_callback:"TJ.comp.SelectFile.TinyMCE"};this.tinymceSettings=Ext.apply(settings,this.tinymceSettings);TJ.comp.HtmlTinyMCE.superclass.initComponent.call(this)},width:720,height:120,validateValue:function(value){if(!TJ.comp.OneLangRequired.call(this))return false;return TJ.comp.HtmlTinyMCE.superclass.validateValue.call(this,value)}});Ext.reg("tjtinymce",TJ.comp.HtmlTinyMCE);TJ.comp.Color=Ext.extend(Ext.form.TriggerField,{invalidText:'This is not a valid color - it must be in a the hex format "#1A2B3C"',defaultAutoCreate:{tag:"input",type:"text",size:"10",maxlength:"7",autocomplete:"off"},maskRe:/[#a-f0-9]/i,regex:/^#([a-f0-9]{3}|[a-f0-9]{6})$/i,markInvalid:function(){this.el.setStyle({"background-color":"#FFF","background-image":"none",color:"000"});TJ.comp.Color.superclass.markInvalid.apply(this,arguments)},validateValue:function(value){if(!TJ.comp.Color.superclass.validateValue.call(this,value))return false;if(value.length<1)return true;var parseOK=this.parseColor(value);if(!value||parseOK===false){this.markInvalid(String.format(this.invalidText,value,"#AABBCC"));return false}var bgColorBr=this.hex2rgb(value);fgColor=(bgColorBr.R*299+bgColorBr.G*587+bgColorBr.B*114)/1e3-125<0?"#FFF":"#000";this.el.setStyle({"background-color":value,"background-image":"none",color:fgColor});return true},validateBlur:function(){return!this.menu||!this.menu.isVisible()},getValue:function(){return TJ.comp.Color.superclass.getValue.call(this)||""},setValue:function(color){TJ.comp.Color.superclass.setValue.call(this,this.formatColor(color))},hex2dec:function(hexchar){return"0123456789ABCDEF".indexOf(hexchar.toUpperCase())},hex2rgb:function(color){color=color.replace("#","");return{R:this.hex2dec(color.substr(0,1))*16+this.hex2dec(color.substr(1,1)),G:this.hex2dec(color.substr(2,1))*16+this.hex2dec(color.substr(3,1)),B:this.hex2dec(color.substr(4,1))*16+this.hex2dec(color.substr(5,1))}},parseColor:function(value){return!value||value.substring(0,1)!="#"?false:true},formatColor:function(value){if(value&&value.substring(0,1)!="#")value="#"+value;return value},menuListeners:{select:function(e,c){this.setValue(c)},show:function(){this.onFocus()},hide:function(){this.focus();var ml=this.menuListeners;this.menu.un("select",ml.select,this);this.menu.un("show",ml.show,this);this.menu.un("hide",ml.hide,this)}},onTriggerClick:function(){if(this.disabled)return;if(!this.menu){this.menu=new Ext.menu.ColorMenu;this.menu.palette.on("render",function(){this.el.setWidth(325)});this.menu.palette.colors=["000000","000033","000066","000099","0000CC","0000FF","330000","330033","330066","330099","3300CC","3300FF","660000","660033","660066","660099","6600CC","6600FF","990000","990033","990066","990099","9900CC","9900FF","CC0000","CC0033","CC0066","CC0099","CC00CC","CC00FF","FF0000","FF0033","FF0066","FF0099","FF00CC","FF00FF","003300","003333","003366","003399","0033CC","0033FF","333300","333333","333366","333399","3333CC","3333FF","663300","663333","663366","663399","6633CC","6633FF","993300","993333","993366","993399","9933CC","9933FF","CC3300","CC3333","CC3366","CC3399","CC33CC","CC33FF","FF3300","FF3333","FF3366","FF3399","FF33CC","FF33FF","006600","006633","006666","006699","0066CC","0066FF","336600","336633","336666","336699","3366CC","3366FF","666600","666633","666666","666699","6666CC","6666FF","996600","996633","996666","996699","9966CC","9966FF","CC6600","CC6633","CC6666","CC6699","CC66CC","CC66FF","FF6600","FF6633","FF6666","FF6699","FF66CC","FF66FF","009900","009933","009966","009999","0099CC","0099FF","339900","339933","339966","339999","3399CC","3399FF","669900","669933","669966","669999","6699CC","6699FF","999900","999933","999966","999999","9999CC","9999FF","CC9900","CC9933","CC9966","CC9999","CC99CC","CC99FF","FF9900","FF9933","FF9966","FF9999","FF99CC","FF99FF","00CC00","00CC33","00CC66","00CC99","00CCCC","00CCFF","33CC00","33CC33","33CC66","33CC99","33CCCC","33CCFF","66CC00","66CC33","66CC66","66CC99","66CCCC","66CCFF","99CC00","99CC33","99CC66","99CC99","99CCCC","99CCFF","CCCC00","CCCC33","CCCC66","CCCC99","CCCCCC","CCCCFF","FFCC00","FFCC33","FFCC66","FFCC99","FFCCCC","FFCCFF","00FF00","00FF33","00FF66","00FF99","00FFCC","00FFFF","33FF00","33FF33","33FF66","33FF99","33FFCC","33FFFF","66FF00","66FF33","66FF66","66FF99","66FFCC","66FFFF","99FF00","99FF33","99FF66","99FF99","99FFCC","99FFFF","CCFF00","CCFF33","CCFF66","CCFF99","CCFFCC","CCFFFF","FFFF00","FFFF33","FFFF66","FFFF99","FFFFCC","FFFFFF"]}this.menu.on(Ext.apply({},this.menuListeners,{scope:this}));this.menu.show(this.el,"tl-bl?")}});Ext.reg("tjcolor",TJ.comp.Color);TJ.comp.CalendarColor=Ext.extend(Ext.form.TextField,{initComponent:function(){TJ.comp.CalendarColor.superclass.initComponent.call(this)},value:1,onRender:function(ct,position){TJ.comp.CalendarColor.superclass.onRender.call(this,ct,position);this.el.dom.setAttribute("readOnly",true);this.el.setStyle("color","white");this.wrap=this.el.wrap({});this.cp=new Ext.ensible.cal.ColorPalette({renderTo:this.wrap,value:this.value});this.cp.on("select",this.set,this)},set:function(e,v){this.setRawValue(v);this.el.addClass(String.format("x-cal-{0}-ad",v));console.log("set",e,v)},setValue:function(v){if(this.cp)this.cp.select(v);TJ.comp.CalendarColor.superclass.setValue.call(this,v)}});Ext.reg("tjcalendarcolor",TJ.comp.CalendarColor);TJ.comp.File=Ext.extend(Ext.form.TriggerField,{width:300,triggerClass:"x-form-elipsis-trigger",browse:null,selectMode:"single",onTriggerClick:function(){if(!this.browse){this.browse=new TJ.Admin.FileSelectWindow({title:"Select File"});this.browse.on("select",function(file){if(this.propertyGrid&&this.propertyGrid.selModel.selection)this.propertyGrid.selModel.selection.record.set("value","/"+file);this.browse.hide();this.setValue("/"+file);this.focus(true);this.fireEvent("change",this)},this)}this.browse.show();this.browse.setValue(this.getValue())},onDestroy:function(){if(this.browse){this.browse.destroy();this.browse=null}}});Ext.reg("tjfile",TJ.comp.File);TJ.comp.Directory=Ext.extend(Ext.form.TriggerField,{width:300,triggerClass:"x-form-elipsis-trigger",browse:null,onTriggerClick:function(){if(!this.browse){this.browse=new TJ.Admin.DirectorySelectWindow({title:"Select Directory"});this.browse.on("select",function(dir){if(this.propertyGrid&&this.propertyGrid.selModel.selection)this.propertyGrid.selModel.selection.record.set("value","/"+dir);this.browse.hide();this.setValue("/"+dir);this.focus(true);this.fireEvent("change",this)},this)}this.browse.show();this.browse.setValue(this.getValue())},onDestroy:function(){if(this.browse){this.browse.destroy();this.browse=null}}});Ext.reg("tjdirectory",TJ.comp.Directory);Ext.override(Ext.Editor,{beforeDestroy:function(){Ext.destroy(this.field);this.field=null}});Ext.grid.GridPanel.prototype.applyState=Ext.grid.GridPanel.prototype.applyState.createSequence(function(state){delete state.columns;delete state.sort;Ext.grid.GridPanel.superclass.applyState.call(this,state)});TJ.clone=function(obj){if(obj===null||typeof obj!="object")return obj;var temp=obj.constructor();for(var key in obj)temp[key]=TJ.clone(obj[key]);return temp};TJ.unique=function(array){var a=[],i,l=array.length;for(i=0;i<l;i++)if(a.indexOf(array[i])<0)a.push(array[i]);return a};TJ.removeHTMLTags=function(text){var strInputCode=new String(text);strInputCode=strInputCode.replace(/&(lt|gt);/g,function(strMatch,p1){return p1=="lt"?"<":">"});var strTagStrippedText=strInputCode.replace(/<\/?[^>]+(>|$)/g,"");return strTagStrippedText};TJ.nl2br=function(str,is_xhtml){var breakTag="";breakTag="<br />";if(typeof is_xhtml!="undefined"&&!is_xhtml)breakTag="<br>";return(str+"").replace(/([^>]?)\n/g,"$1"+breakTag+"\n")};TJ.GetIDList=function(selectionModel){recs=selectionModel.getSelections();params=new Array;for(var i=0;i<recs.length;i++)params[i]=recs[i].data._id;return params.join(",")};Ext.state.SessionProvider=Ext.extend(Ext.state.CookieProvider,{readCookies:function(){if(this.state)for(var k in this.state)if(typeof this.state[k]=="string")this.state[k]=this.decodeValue(escape(this.state[k]));return Ext.apply(this.state||{},Ext.state.SessionProvider.superclass.readCookies.call(this))}});Ext.override(Ext.tree.TreeEditor,{triggerEdit:function(node,defer){this.completeEdit();if(node.attributes.editable!==false){this.editNode=node;if(this.tree.autoScroll)Ext.fly(node.ui.getEl()).scrollIntoView(this.tree.body);this.autoEditTimer=this.startEdit.defer(this.editDelay,this,[node.ui.textNode,node.text]);return false}}});TJ.IE6BoxFix=function(){return;headers=Ext.select("div.hd > div.c");headers.each(function(e){console.log(e.getStyle("background-image"));parent=e.parent();parent.setWidth(parent.getWidth());console.log(parent);e.createChild({tag:"img",style:"border: 1px solid red; float: right;",src:e.getStyle("background-image").substring(4,e.getStyle("background-image").length-1)});e.setStyle("background","none")});headers.each(function(e){console.log(e)});return;temp.total=temp.topnav.getWidth();temp.items=Ext.select("ul.AC_TopNav li");temp.items.each(function(e){temp.total=temp.total-e.getWidth()});temp.filler=Ext.select("ul.AC_TopNav li.filler",true).first();temp.filler.setWidth(temp.filler.getWidth()+temp.total)};TJ.CallbackManager=function(){var cache={};var callbacks={};var requests={};var storeTo={};var directPending={};var directSent={};var directTransID=1;var directCallback=function(options,success,response){if(true===success){var res=Ext.util.JSON.decode(response.responseText);for(var id in res){TJ.Admin.ProcessStandardResponse(res[id]);if(directSent[id]){if(directSent[id].updateEl)Ext.fly(directSent[id].updateEl).update(res[id].data);if(directSent[id].callback)directSent[id].callback.call(directSent[id].scope||this,res[id].data,res[id],directSent[id]);else{console.log("No callback:  Data,Response,Options",res[id].data,res[id],directSent[id]);alert("No Callback:  use Ext.emptyFN")}delete directSent[id]}}}};var getCallback=function(options,success,response){console.log("getcallback",success,response,options);requests[options.opt.url]=null;if(true===success){var res;try{res=Ext.util.JSON.decode(response.responseText);TJ.Admin.ProcessStandardResponse(res);cache[options.opt.url]=res.data}catch(ex){callbacks[options.opt.url].fails=(callbacks[options.opt.url].fails||0)+1;if(callbacks[options.opt.url].fails<3)requests[options.opt.url]=Ext.Ajax.request({url:options.opt.url,params:options.opt.params,opt:options.opt,callback:getCallback});return}}else cache[options.opt.url]=null;if(callbacks[options.opt.url])while(callbacks[options.opt.url].length){cb=callbacks[options.opt.url].pop();cb.callback.call(cb.scope||this,cache[options.opt.url])}};var executeCallback=function(options,success,response){if(options.opt.wait)Ext.MessageBox.hide();if(true===success){var res=Ext.util.JSON.decode(response.responseText);TJ.Admin.ProcessStandardResponse(res);if(options.opt.callback)options.opt.callback.call(options.opt.scope||this,res.data,res,options.opt)}else Ext.MessageBox.alert("Altius","Error waiting for response.")};return{Execute:function(opt){if(opt.wait)Ext.MessageBox.wait(opt.wait.msg,opt.wait.title||"Processing...",opt);Ext.Ajax.request({url:opt.url,params:opt.params,opt:opt,callback:executeCallback})},GetTableInfo:function(tableClass,callback,scope){this.GetInfo({url:TJ.LANGUAGESS+"admin/apps/content-"+tableClass+":gettableinfo2",callback:callback,scope:scope})},GetInfo:function(opt){opt=Ext.apply({refresh:false,standard:true},opt);console.log("Callback.GetInfo",opt);if(!opt.refresh)if(cache[opt.url]){if(opt.callback)opt.callback.call(opt.scope||this,cache[opt.url]);return}if(opt.callback){if(!callbacks[opt.url])callbacks[opt.url]=[];callbacks[opt.url].push({callback:opt.callback,scope:opt.scope})}if(requests[opt.url]&&requests[opt.url]["conn"])return;requests[opt.url]=Ext.Ajax.request({url:opt.url,params:opt.params,opt:opt,callback:getCallback})},timeout:null,Direct:function(opt){opt.transid=directTransID++;directPending[opt.transid]=opt;if(this.timeout)clearTimeout(this.timeout);this.timeout=this.SendRequests.defer(opt.delay||100,this)},SendRequests:function(){var toSend=[];for(var id in directPending){directSent[id]=directPending[id];toSend.push({cls:directPending[id].cls,method:directPending[id].method,params:directPending[id].params,transid:directPending[id].transid});if(directPending[id].updateEl)Ext.fly(directPending[id].updateEl).mask();delete directPending[id]}toSend=Ext.encode(toSend);Ext.Ajax.request({url:TJ.LANGUAGESS+"_direct",params:{requests:toSend},callback:directCallback,scope:this})}}}();TJ.RelativeDate=function(date1){var dateFunc=new Date;date1=date1.replace("+0000 ","");date=Date.parse(date1);if(!date)date=Date.parseDate(date1,"Y-m-d H:i:s");date-=dateFunc.getTimezoneOffset()*60*1e3;var timeSince=dateFunc.getTime()-date;var inSeconds=timeSince/1e3;var inMinutes=timeSince/1e3/60;var inHours=timeSince/1e3/60/60;var inDays=timeSince/1e3/60/60/24;var inWeeks=timeSince/1e3/60/60/24/7;var inYears=timeSince/1e3/60/60/24/365;if(Math.round(inSeconds)<1)return TJ.RelativeDate.justNow;else if(Math.round(inSeconds)==1)return TJ.RelativeDate.oneSecondAgo;else if(inMinutes<1.01)return String.format(TJ.RelativeDate.secondsAgo,Math.round(inSeconds));else if(Math.round(inMinutes)==1)return TJ.RelativeDate.oneMinuteAgo;else if(inHours<1.01)return String.format(TJ.RelativeDate.minutesAgo,Math.round(inMinutes));else if(Math.round(inHours)==1)return TJ.RelativeDate.oneHourAgo;else if(inDays<1.01)return String.format(TJ.RelativeDate.hoursAgo,Math.round(inHours));else if(Math.round(inDays)==1)return TJ.RelativeDate.oneDayAgo;else if(inWeeks<1.01)return String.format(TJ.RelativeDate.daysAgo,Math.round(inDays));else if(Math.round(inWeeks)==1)return TJ.RelativeDate.oneWeekAgo;else if(inYears<1.01)return String.format(TJ.RelativeDate.weeksAgo,Math.round(inWeeks));else if(Math.round(inYears)==1)return TJ.RelativeDate.oneYearAgo;else return String.format(TJ.RelativeDate.yearsAgo,Math.round(inYears))};TJ.RelativeDate.justNow="Just now";TJ.RelativeDate.oneSecondAgo="1 second ago";TJ.RelativeDate.secondsAgo="{0} seconds ago";TJ.RelativeDate.oneMinuteAgo="1 minute ago";TJ.RelativeDate.minutesAgo="{0} minutes ago";TJ.RelativeDate.oneHourAgo="1 hour ago";TJ.RelativeDate.hoursAgo="{0} hours ago";TJ.RelativeDate.oneDayAgo="Yesterday";TJ.RelativeDate.daysAgo="{0} days ago";TJ.RelativeDate.oneWeekAgo="Last Week";TJ.RelativeDate.weeksAgo="{0} weeks ago";TJ.RelativeDate.oneYearAgo="Last Year";TJ.RelativeDate.yearsAgo="{0} years ago";TJ.GetServerTime=function(){return Math.round((new Date).getTime()/1e3)+TJ.SERVERTIMEOFFSET};Ext.namespace("TJ.comp");TJ.comp.Text=Ext.extend(Ext.form.TextField,{width:300,readOnly:false,initComponent:function(){if(typeof this.maskRe=="string")this.maskRe=new RegExp(this.maskRe);this.hiddenName=this.name;TJ.comp.Text.superclass.initComponent.call(this);this.on("specialkey",function(field,e){if(e.getKey()==e.ENTER)field.fireEvent("dosubmit",field)})},setReadOnly:function(r){this.readOnly=r;if(r){this.el.dom.setAttribute("readOnly",true);this.el.addClass("x-item-disabled")}else{this.el.dom.removeAttribute("readOnly");this.el.removeClass("x-item-disabled")}},onRender:function(ct,position){TJ.comp.Text.superclass.onRender.call(this,ct,position);this.setReadOnly(this.readOnly)},validateValue:function(value){if(!TJ.comp.OneLangRequired.call(this))return false;return TJ.comp.Text.superclass.validateValue.call(this,value)}});Ext.reg("tjtext",TJ.comp.Text);Ext.reg("tjurl",TJ.comp.Text);TJ.comp.ChangePassword=Ext.extend(TJ.comp.Text,{width:200,inputType:"password",minLength:8});Ext.reg("tjchangepassword",TJ.comp.ChangePassword);TJ.comp.Email=Ext.extend(TJ.comp.Text,{maxLength:72});Ext.reg("tjemail",TJ.comp.Email);Ext.reg("tjhidden",Ext.form.Hidden);TJ.comp.Password=Ext.extend(TJ.comp.Text,{inputType:"password"});Ext.reg("tjpassword",TJ.comp.Password);Ext.reg("tjfloat",Ext.form.NumberField);TJ.comp.IntegerField=Ext.extend(Ext.form.NumberField,{allowDecimals:false,readOnly:false,setReadOnly:function(r){this.readOnly=r;if(r){this.el.dom.setAttribute("readOnly",true);this.el.addClass("x-item-disabled")}else{this.el.dom.removeAttribute("readOnly");this.el.removeClass("x-item-disabled")}},onRender:function(ct,position){TJ.comp.IntegerField.superclass.onRender.call(this,ct,position);this.setReadOnly(this.readOnly);this.on("specialkey",function(field,e){if(e.getKey()==e.ENTER)field.fireEvent("dosubmit",field)})}});Ext.reg("tjinteger",TJ.comp.IntegerField);TJ.comp.TextArea=Ext.extend(Ext.form.TextArea,{width:400,height:64,validateValue:function(value){if(!TJ.comp.OneLangRequired.call(this))return false;return TJ.comp.TextArea.superclass.validateValue.call(this,value)}});Ext.reg("tjtextarea",TJ.comp.TextArea);TJ.comp.Checkbox=Ext.extend(Ext.form.CheckboxGroup,{blankText:"This field is required",width:60,checked:false,initComponent:function(){this.checked=this.value;this.items=[{name:this.name,checked:this.checked}];TJ.comp.Checkbox.superclass.initComponent.call(this);this.on("specialkey",function(field,e){if(e.getKey()==e.ENTER)field.fireEvent("dosubmit",field)})},focus:function(selectText,delay){if(this.rendered)if(this.items[0])this.items[0].focus(selectText,delay)},getValue:function(){if(this.rendered)return this.items.items[0].checked;return this.checked},setValue:function(value){if(this.rendered)this.items.items[0].setValue(value);else this.checked=value}});Ext.reg("tjcheckbox",TJ.comp.Checkbox);TJ.comp.MultiCheck=Ext.extend(Ext.form.CheckboxGroup,{anchor:"-20",columns:1,allowBlank:false,options:[],values:[],initComponent:function(){this.items=[];var initvalue=(this.value||"").split(",");for(var i=0;i<this.values.length;i++)this.items.push({boxLabel:this.options[i]||this.values[i],name:this.name+"[]",inputValue:this.values[i],checked:initvalue.indexOf(this.values[i])>=0});TJ.comp.MultiCheck.superclass.initComponent.call(this);this.on("specialkey",function(field,e){if(e.getKey()==e.ENTER)field.fireEvent("dosubmit",field)});this.on("change",function(field,e){this.validate()})},focus:function(selectText,delay){TJ.comp.MultiCheck.superclass.focus(false,delay)},getName:function(){return this.name},setValue:function(value){if(this.rendered){val=value.split(",");this.items.each(function(item){item.setValue(val.indexOf(this.inputValue)>=0)})}else this.value=value}});Ext.reg("tjmulticheck",TJ.comp.MultiCheck);TJ.comp.Radio=Ext.extend(Ext.form.RadioGroup,{anchor:"-20",columns:1,allowBlank:false,initComponent:function(){this.items=[];for(var i=0;i<this.values.length;i++)this.items.push({boxLabel:this.options[i]||this.values[i],name:this.name,inputValue:this.values[i],checked:this.values[i]==this.value});TJ.comp.Radio.superclass.initComponent.call(this);this.on("specialkey",function(field,e){if(e.getKey()==e.ENTER)field.fireEvent("dosubmit",field)});this.on("change",function(field,e){this.validate()})},focus:function(selectText,delay){TJ.comp.Radio.superclass.focus(false,delay)},getName:function(){return this.name},setValue:function(v){if(this.rendered)this.items.each(function(item){item.setValue(item.getRawValue()==v)});else for(k in this.items)this.items[k].checked=this.items[k].inputValue==v}});Ext.reg("tjradio",TJ.comp.Radio);TJ.comp.UserFile=Ext.extend(Ext.form.FileUploadField,{width:400,allowBlank:false,buttonCfg:{iconCls:"icon_folder_magnify",text:""},getName:function(){return this.name}});Ext.reg("tjuserfile",TJ.comp.UserFile);Ext.ux.ValidationStatus=Ext.extend(Ext.Component,{errorIconCls:"x-status-error",errorListCls:"x-status-error-list",validIconCls:"x-status-valid",showText:"The form has errors (click for details...)",hideText:"Click again to hide the error list",submitText:"Saving...",init:function(sb){sb.on("render",function(){this.statusBar=sb;this.monitor=true;this.errors=new Ext.util.MixedCollection;this.listAlign=sb.statusAlign=="right"?"br-tr?":"bl-tl?";if(this.form){this.startMonitoring();(function(){sb.statusEl.on("click",this.onStatusClick,this,{buffer:200})}).defer(200,this);this.form.on("beforeaction",function(f,action){if(action.type=="submit")this.monitor=false},this);var startMonitor=function(){this.monitor=true};this.form.on("actioncomplete",startMonitor,this);this.form.on("actionfailed",startMonitor,this)}},this,{single:true})},startMonitoring:function(){this.form.items.each(function(f){f.on("invalid",this.onFieldValidation,this);f.on("valid",this.onFieldValidation,this)},this)},stopMonitoring:function(){this.form.items.each(function(f){f.un("invalid",this.onFieldValidation,this);f.un("valid",this.onFieldValidation,this)},this)},onDestroy:function(){this.stopMonitoring();this.statusBar.statusEl.un("click",this.onStatusClick,this);Ext.ux.ValidationStatus.superclass.onDestroy.call(this)},onFieldValidation:function(f,msg){if(!this.monitor)return false;if(msg)this.errors.add(f.id,{field:f,msg:msg});else this.errors.removeKey(f.id);this.updateErrorList();if(this.errors.getCount()>0){if(this.statusBar.getText()!=this.showText)this.statusBar.setStatus({text:this.showText,iconCls:this.errorIconCls})}else this.statusBar.clearStatus().setIcon(this.validIconCls)},updateErrorList:function(){if(this.errors.getCount()>0){var msg="<ul>";this.errors.each(function(err){msg+='<li id="x-err-'+err.field.id+'"><a href="#">'+err.msg+"</a></li>"},this);this.getMsgEl().update(msg+"</ul>")}else this.getMsgEl().update("")},getMsgEl:function(){if(!this.msgEl){this.msgEl=Ext.DomHelper.append(Ext.getBody(),{cls:this.errorListCls+" x-hide-offsets"},true);this.msgEl.on("click",function(e){var t=e.getTarget("li",10,true);if(t){Ext.getCmp(t.id.split("x-err-")[1]).focus();this.hideErrors()}},this,{stopEvent:true})}return this.msgEl},showErrors:function(){this.updateErrorList();this.getMsgEl().alignTo(this.statusBar.getEl(),this.listAlign).slideIn("b",{duration:.3,easing:"easeOut"});this.statusBar.setText(this.hideText);this.form.getEl().on("click",this.hideErrors,this,{single:true})},hideErrors:function(){var el=this.getMsgEl();if(el.isVisible()){el.slideOut("b",{duration:.2,easing:"easeIn"});this.statusBar.setText(this.showText)}this.form.getEl().un("click",this.hideErrors,this)},onStatusClick:function(){if(this.getMsgEl().isVisible())this.hideErrors();else if(this.errors.getCount()>0)this.showErrors()}});Ext.namespace("TJ.comp");TJ.comp.GetPopupInstance=function(cls){if(!cls.instance)cls.instance=new cls;return cls.instance};TJ.comp.GenericPopupWindow=Ext.extend(Ext.Window,{stateful:true,constrainHeader:true,width:600,height:400,modal:true,layout:"fit",closeAction:"hide",showParams:null,title:"Generic Popup Window",initialTitle:"",initComponent:function(){this.initialTitle=this.title;this.saveBtn=new Ext.Button({text:"Save",handler:this.save,scope:this});this.cancelBtn=new Ext.Button({text:"Cancel",handler:this.hideMe,scope:this});this.buttons=[this.saveBtn,this.cancelBtn];this.onEsc=this.hideMe;TJ.comp.GenericPopupWindow.superclass.initComponent.call(this)},validate:function(){return true},hideMe:function(){if(this.showParams.callback)this.showParams.callback.call(this.showParams.scope,false);this.hide()},save:function(){if(!this.validate())return false;if(this.showParams.callback)this.showParams.callback.call(this.showParams.scope,this);else alert("callback not defined");return true},show:function(obj){this.showParams=obj;if(this.showParams.field.fieldLabel||this.showParams.field.name)this.setTitle(this.initialTitle+' "'+(this.showParams.field.fieldLabel||this.showParams.field.name)+'"');else this.setTitle(this.initialTitle);TJ.comp.GenericPopupWindow.superclass.show.call(this);this.setValue(obj.value)},setValue:function(value){alert("must override setValue");console.log("setvalue",value)},getValue:function(){return"Must override getValue"}});TJ.comp.GenericTriggerField=Ext.extend(Ext.form.TriggerField,{width:400,value:"",objectValue:{},triggerClass:"x-form-elipsis-trigger",initComponent:function(){this.hiddenName=this.name;TJ.comp.GenericTriggerField.superclass.initComponent.call(this)},enableKeyEvents:true,render:function(ct,p){TJ.comp.GenericTriggerField.superclass.render.call(this,ct,p);this.hiddenField=this.el.insertSibling({tag:"input",type:"hidden",name:this.hiddenName,id:this.hiddenId||this.hiddenName},"before",true);this.hiddenField.value=this.value;this.el.dom.removeAttribute("name");this.el.dom.setAttribute("readOnly",true);this.el.on("dblclick",function(e){if(e.shiftKey)Ext.Msg.prompt(this.fieldLabel,"Enter the raw JSON value",function(btn,txt){if(btn=="ok")this.setValue(txt)},this,true,this.value)},this);this.on("keydown",function(field,e){if(e.getKey()==e.DOWN)this.onTriggerClick()},this)},onTriggerClick:function(){if(this.disabled)return;this.selectText();var popup=this.getPopupWindow();popup.show({value:this.objectValue,field:this,fieldName:this.getName(),callback:this.callback,scope:this})},callback:function(browse){if(browse){this.setValue(browse.getValue());if(this.propertyGrid&&this.propertyGrid.selModel.selection)this.propertyGrid.selModel.selection.record.set("value",this.value);browse.hide();this.fireEvent("change",this)}this.selectText()},convertValue:function(v){return v},setValue:function(v){if(v&&typeof v=="object")this.objectValue=v;else try{this.objectValue=Ext.util.JSON.decode(v)}catch(ex){this.objectValue=this.getNullValue()}this.objectValue=this.convertValue(this.objectValue);this.value=Ext.util.JSON.encode(this.objectValue);if(this.hiddenField)this.hiddenField.value=this.value;this.displayValueGetInfo();if(this.rendered)this.validate()},getNullValue:function(){return{}},getPopupWindow:function(){return TJ.comp.GetPopupInstance(this.popupClass)},popupClass:TJ.comp.GenericPopupWindow,getValue:function(){return this.value},displayValueGetInfo:function(){this.displayValueCallback()},displayValueCallback:function(){if(this.rendered){this.el.dom.value=this.getDisplayValue();this.el.dom.setAttribute("title",this.el.dom.value)}},getDisplayValue:function(){return this.value}});TJ.comp.TableDependantPopupWindow=Ext.extend(TJ.comp.GenericPopupWindow,{title:"Table Dependant Popup",layout:"fit",editor:null,initComponent:function(){this.tableCombo=new TJ.comp.Type;this.setBtn=new Ext.Toolbar.Button({text:"Set Table",iconCls:"icon_table_go",disabled:true,handler:function(b){this.setTable(this.tableCombo.getValue());b.setDisabled(true)},scope:this});this.tbar=["Table ",this.tableCombo,this.setBtn];this.tableCombo.on("select",function(f){this.setBtn.setDisabled(false)},this);TJ.comp.TableDependantPopupWindow.superclass.initComponent.call(this)},show:function(obj){this.initialTitle=obj.field.popupTitle;TJ.comp.TableDependantPopupWindow.superclass.show.call(this,obj)},setTable:function(table){TJ.Admin.ClearPanel(this);this.saveBtn.setDisabled(true);if(table===null||table==="")return;TJ.CallbackManager.GetInfo({url:TJ.LANGUAGESS+"admin/apps/content-"+table+":gettableinfo2",callback:function(val){this.tableinfo=val;this.tableChanged()},scope:this})},initValue:null,tableChanged:function(){TJ.Admin.ClearPanel(this);this.editor=new this.showParams.field.popupEditor({tableinfo:this.tableinfo,value:this.initValue});this.items.add(this.editor);this.initValue=this.showParams.field.getNullValue();this.doLayout();this.saveBtn.setDisabled(false)},setValue:function(value){this.initValue=value;if(this.showParams.field.table){this.tableCombo.setValue(this.showParams.field.table);this.tableCombo.setDisabled(true);this.setTable(this.showParams.field.table)}else{this.tableCombo.setDisabled(false);this.tableCombo.setValue(value.table);this.setTable(this.tableCombo.getValue())}},getValue:function(){value=this.editor.getValue();if(this.showParams.field.table===null)value.table=this.tableinfo["class"];console.log("getvalue",value);return value}});TJ.comp.TableDependantEditor=Ext.extend(Ext.Panel,{initComponent:function(){this.title=this.title||this.tableinfo.lang.plural;this.html="Create Editor subclassed on TableDependantEditor";TJ.comp.TableDependantEditor.superclass.initComponent.call(this)},getValue:function(){return{value:"Not Defined"}}});TJ.comp.TableDependantTriggerField=Ext.extend(TJ.comp.GenericTriggerField,{table:null,popupClass:TJ.comp.TableDependantPopupWindow,popupTitle:"Edit ",popupEditor:TJ.comp.TableDependantEditor,getNullValue:function(){if(this.table)return{};return{table:null}},displayValueGetInfo:function(){if(this.table)TJ.CallbackManager.GetInfo({url:TJ.LANGUAGESS+"admin/apps/content-"+this.table+":gettableinfo2",callback:function(val){this.tableinfo=val;this.displayValueCallback()},scope:this});else if(this.objectValue.table)TJ.CallbackManager.GetInfo({url:TJ.LANGUAGESS+"admin/apps/content-"+this.objectValue.table+":gettableinfo2",callback:function(val){this.tableinfo=val;this.displayValueCallback()},scope:this});else this.displayValueCallback()},getDisplayValue:function(){if(this.tableinfo&&this.tableinfo.lang)return String.format("{0}: ",this.tableinfo.lang.plural);return"Please select table"}});TJ.comp.TablePopupWindow=Ext.extend(TJ.comp.GenericPopupWindow,{show:function(obj){this.initialTitle=obj.field.popupTitle;this.tableinfo=obj.field.tableinfo;console.log("tablepopupwindow",obj.field.tableinfo);TJ.comp.TablePopupWindow.superclass.show.call(this,obj)}});TJ.comp.TableTriggerField=Ext.extend(TJ.comp.GenericTriggerField,{popupClass:TJ.comp.TablePopupWindow,popupTitle:"Edit ",disabled:true,generic:false,tableField:"table",tableinfo:null,setEmpty:function(status){if(status)this.el.addClass("x-form-empty-field");else this.el.removeClass("x-form-empty-field")},render:function(ct,pos){TJ.comp.TableTriggerField.superclass.render.call(this,ct,pos);if(this.generic)this.setTable();else if(this.table)this.setTable(this.table);else{if(this.propertyGrid)this.propertyGrid.on("afteredit",this.setTable,this);if(this.formValues&&this.formValues[this.tableField])this.setTable(this.formValues[this.tableField])}},siblingChange:function(f){if(f.name==this.tableField)this.setTable(f.getValue())},setTable:function(table){if(this.generic)TJ.CallbackManager.GetInfo({url:TJ.LANGUAGESS+"admin/apps/content-"+"generic"+":gettableinfo2",callback:function(val){this.tableChanged(val)},scope:this});if(!table){if(this.propertyGrid)table=this.propertyGrid.getSource()[this.tableField];if(this.form)table=this.form.getValues()[this.tableField]}if(!table)return;this.setDisabled(true);if(table===null||table==="")return;TJ.CallbackManager.GetInfo({url:TJ.LANGUAGESS+"admin/apps/content-"+table+":gettableinfo2",callback:function(val){this.tableChanged(val)},scope:this})},tableChanged:function(val){this.tableinfo=val;console.log("val",val);if(val){this.setDisabled(false);this.displayValueGetInfo()}},getNullValue:function(){return{}},displayValueGetInfo:function(){this.displayValueCallback();return;if(this.table)TJ.CallbackManager.GetInfo({url:TJ.LANGUAGESS+"admin/apps/content-"+this.table+":gettableinfo2",callback:function(val){this.tableinfo=val;this.displayValueCallback()},scope:this});else if(this.objectValue.table)TJ.CallbackManager.GetInfo({url:TJ.LANGUAGESS+"admin/apps/content-"+this.objectValue.table+":gettableinfo2",callback:function(val){this.tableinfo=val;this.displayValueCallback()},scope:this});else this.displayValueCallback()},getDisplayValue:function(){if(this.tableinfo&&this.tableinfo.lang)return this.tableinfo.lang.plural;return"Please select table"}});TJ.comp.MicroformatPopupWindow2=Ext.extend(TJ.comp.TablePopupWindow,{stateId:"TJ_comp_MicroformatPopupWindow",layout:"border",microformat:null,initialValues:null,ready:false,setValue:function(val){console.log("setvalue",this.tableinfo);this.ready=true;this.tp.getLoader().baseParams.table=this.tableinfo["class"];this.tp.getLoader().load(this.tp.getRootNode(),function(){if(val.name)this.tp.selectPath("/root/"+val.microformat+"/"+val.microformat+":"+val.name);else if(val.microformat){this.initialValues=val.values;this.tp.selectPath("/root/"+val.microformat)}else this.tp.selectPath("/root/summary")},this)},initComponent:function(){this.templateName=new Ext.form.TextField({width:100,enableKeyEvents:true,maxLength:16,maskRe:/[_a-z0-9]/i,disabled:true});this.saveNamed=new Ext.Toolbar.Button({iconCls:"icon_drive",text:"Save",handler:this.saveTemplate,scope:this,disabled:true});this.deleteNamed=new Ext.Toolbar.Button({iconCls:"icon_drive_delete",text:"Delete",handler:this.deleteTemplate,scope:this,disabled:true});this.templateName.on("keyup",function(f){this.saveNamed.setDisabled(!f.isValid()||f.getValue().length===0)},this);this.main=new Ext.Panel({title:"Parameters",region:"center",layout:"card",border:false,tbar:["Named ",this.templateName,this.saveNamed,"-",this.deleteNamed]});this.tp=new Ext.tree.TreePanel({title:"Microformats",border:false,autoScroll:true,enableDD:false,containerScroll:true,rootVisible:false,region:"west",split:true,minSize:120,singleExpand:true,width:160,root:new Ext.tree.AsyncTreeNode({id:"root",text:this.rootTitle||"Home"}),loader:new Ext.tree.TreeLoader({dataUrl:TJ.LANGUAGESS+"admin/pagemanager:getmicroformats",listeners:{beforeload:{fn:function(){if(!this.ready)return false},scope:this}}})});this.tp.getSelectionModel().on("selectionchange",this.nodeSelect,this);this.items=[this.main,this.tp];TJ.comp.MicroformatPopupWindow2.superclass.initComponent.call(this)},nodeSelect:function(sm,node){if(node&&node.attributes){this.createForm(node);this.templateName.setDisabled(false);if(node.attributes.leaf){this.templateName.setValue(node.attributes.text);this.templateName.setDisabled(true);this.deleteNamed.setDisabled(false);this.saveNamed.setDisabled(false)}else{this.templateName.setDisabled(false);this.templateName.setValue("");this.saveNamed.setDisabled(true);this.deleteNamed.setDisabled(true);if(this.initialValues){this.form.getForm().setValues(this.initialValues);this.initialValues=null}}}},forms:{},createForm:function(node,values){console.log("create",node,this.initialValues);if(!this.forms[node.attributes.mf.code]){this.forms[node.attributes.mf.code]=this.main.add(new Ext.form.FormPanel({frame:true,autoScroll:true,labelAlign:"right",border:false,layout:"tjadminform",monitorValid:true,defaults:{anchor:"-40",msgTarget:"side",listeners:{change:{fn:function(f){if(tinyMCE)tinyMCE.triggerSave();this.fieldChange(f)},scope:this}}},labelWidth:160,items:node.attributes.mf.fields}));this.forms[node.attributes.mf.code].on("clientvalidation",this.validate,this)}this.form=this.forms[node.attributes.mf.code];if(node.attributes.values)this.form.getForm().setValues(Ext.decode(node.attributes.values));this.main.layout.setActiveItem(this.form);if(node.attributes.leaf)this.main.setTitle(String.format("Settings: {0} [{1}]",node.attributes.mf.text,node.attributes.text));else this.main.setTitle(String.format("Settings: {0}",node.attributes.mf.text));this.microformat=node.attributes.mf.code},getFormValues:function(){var values={};if(this.form)this.form.items.each(function(i){values[i.getName()]=i.getValue()});return values},getValue:function(){var node=this.tp.getSelectionModel().getSelectedNode();if(node.isLeaf())return{microformat:this.microformat,table:node.attributes.mf.table,name:node.attributes.text};return{microformat:this.microformat,values:this.getFormValues()}},validate:function(){this.saveBtn.setDisabled(!this.form.getForm().isValid());return this.form.getForm().isValid()},fieldChange:function(f){this.form.items.each(function(i){if(i.siblingChange)i.siblingChange(f);if(i.disableField==f.name)i.setDisabled(!f.getValue())})},deleteTemplate:function(){var node=this.tp.getSelectionModel().getSelectedNode();TJ.CallbackManager.Execute({url:TJ.LANGUAGESS+"admin/pagemanager:deletemicroformat",params:{name:this.templateName.getValue(),microformat:this.microformat,table:node.attributes.mf.table},callback:this.delCB,scope:this})},delCB:function(){var node=this.tp.getSelectionModel().getSelectedNode();node.parentNode.select();node.remove(true)},saveTemplate:function(){var node=this.tp.getSelectionModel().getSelectedNode();TJ.CallbackManager.Execute({url:TJ.LANGUAGESS+"admin/pagemanager:savemicroformat",params:{name:this.templateName.getValue(),microformat:this.microformat,table:node.attributes.mf.table,values:Ext.encode(this.getFormValues())},callback:this.saveCB,scope:this})},saveCB:function(){var node=this.tp.getSelectionModel().getSelectedNode();var newpath="/root/"+this.microformat+"/"+this.microformat+":"+this.templateName.getValue();if(node.isLeaf())node.attributes.values=Ext.encode(this.getFormValues());else node.parentNode.reload(function(){this.tp.selectPath(newpath)},this)}});TJ.comp.MicroformatPopupWindow=Ext.extend(TJ.comp.TablePopupWindow,{stateId:"TJ_comp_MicroformatPopupWindow",layout:"fit",microformat:null,values:{},setValue:function(val){if(this.main){this.remove(this.main);this.main.destroy()}var buttons=[];var selected=-1;for(i=0;i<this.tableinfo.microformats.length;i++){buttons.push(new Ext.Toolbar.Button({text:this.tableinfo.microformats[i].text,microformat:this.tableinfo.microformats[i],handler:this.selectFormat,pressed:val.microformat==this.tableinfo.microformats[i].code,toggleGroup:"formats",iconCls:"icon_page_green",scope:this}));if(val.microformat==this.tableinfo.microformats[i].code)selected=i;buttons.push("|");buttons.push(new Ext.CycleButton({showText:true,prependText:this.tableinfo.microformats[i].text+": ",microformat:this.tableinfo.microformats[i],defaults:{iconCls:"icon_page_green"},items:[{value:"custom",text:"Custom"},{value:"saved1",text:"saved1"},{value:"saved2",text:"saved2"}]}))}this.setTitle(this.title+" for "+this.tableinfo.lang.plural);this.main=new Ext.Panel({frame:false,border:false,layout:"card",tbar:buttons});this.add(this.main);this.doLayout();if(selected>=0){this.selectFormat(buttons[selected]);this.form.getForm().setValues(val.values)}else if(buttons[0]){buttons[0].toggle(true);this.selectFormat(buttons[0])}},fieldChange:function(f){this.form.items.each(function(i){if(i.siblingChange)i.siblingChange(f);if(i.disableField==f.name)i.setDisabled(!f.getValue())})},selectFormat:function(b){console.log("select format",b);this.microformat=b.microformat.code;if(!b.form){b.form=this.main.add(new Ext.form.FormPanel({frame:true,autoScroll:true,labelAlign:"right",border:false,layout:"tjadminform",monitorValid:true,defaults:{anchor:"-40",msgTarget:"side",listeners:{change:{fn:function(f){if(tinyMCE)tinyMCE.triggerSave();this.fieldChange(f)},scope:this}}},labelWidth:160,items:b.microformat.fields}));b.form.on("clientvalidation",this.validate,this)}this.main.layout.setActiveItem(this.form=b.form)},getValue:function(){var values={};this.form.items.each(function(i){values[i.getName()]=i.getValue()});return{microformat:this.microformat,values:values}},validate:function(){this.saveBtn.setDisabled(!this.form.getForm().isValid());return this.form.getForm().isValid()}});TJ.comp.Microformat=Ext.extend(TJ.comp.TableTriggerField,{popupClass:TJ.comp.MicroformatPopupWindow2,popupTitle:"Edit ",getDisplayValue:function(){var disp=TJ.comp.Microformat.superclass.getDisplayValue.call(this);console.log(this.objectValue);if(this.objectValue.microformat){disp="";if(this.tableinfo)Ext.each(this.tableinfo.microformats,function(f){if(f.code==this.objectValue.microformat){disp=f.text;var params=Array();if(this.objectValue.name)disp=String.format("{0} [{1}]",disp,this.objectValue.name);else{Ext.each(f.fields,function(fi){params.push(String.format("{0}: {1}",fi.fieldLabel,this.objectValue.values[fi.name]))},this);disp=String.format("{0}. {1}",disp,params.join(", "))}return false}},this);return disp||this.objectValue.microformat}if(this.tableinfo&&this.tableinfo.lang)return String.format("Select {0} microformat...",this.tableinfo.lang.plural);return"Please select table"}});Ext.reg("tjmicroformat",TJ.comp.Microformat);TJ.comp.MicroformatGeneric=Ext.extend(TJ.comp.Microformat,{tableField:"----nofield----",generic:true});Ext.reg("tjmicroformatgeneric",TJ.comp.MicroformatGeneric);TJ.comp.UserOrGroupPopup=Ext.extend(TJ.comp.GenericPopupWindow,{width:400,height:140,title:"Select a Username or Usergroup",setValue:function(val){this.form.user.reset();this.form.usergroup.reset();if(val<0)this.form.usergroup.setValue(-val);else if(val>0)this.form.user.setValue(val)},initComponent:function(){this.items=this.form=new TJ.Admin.Form({labelWidth:80,defaults:{anchor:"-20",selectOnFocus:true,msgTarget:"side"},buttons:[],items:[{xtype:"tjuser",name:"user",ref:"user",listeners:{change:{fn:function(f){if(f.getValue()>0)f.ownerCt.getForm().findField("usergroup").reset()},scope:this}},fieldLabel:"Username"},{xtype:"tjusergroup",name:"usergroup",ref:"usergroup",listeners:{change:{fn:function(f){if(f.getValue()>0)f.ownerCt.getForm().findField("user").reset()},scope:this}},fieldLabel:"Usergroup"}]});TJ.comp.UserOrGroupPopup.superclass.initComponent.call(this)},getValue:function(){if(this.form.user.getValue())return this.form.user.getValue();if(this.form.usergroup.getValue())return-this.form.usergroup.getValue();return 0}});TJ.comp.UserOrGroup=Ext.extend(TJ.comp.GenericTriggerField,{popupClass:TJ.comp.UserOrGroupPopup,getNullValue:function(){return 0},displayValueGetInfo:function(){if(this.value>0){var options={url:"/en/form-"+":fieldobject",scope:this,params:{id:this.value,table:"cl_user_account_table"},callback:this.displayValueCallback};Ext.Ajax.request(options)}else if(this.value<0){var options={url:"/en/form-"+":fieldobject",scope:this,params:{id:-this.value,table:"cl_user_group_table"},callback:this.displayValueCallback};Ext.Ajax.request(options)}else this.displayValueCallback()},record:null,displayValueCallback:function(info,success,res){if(success){var record=Ext.util.JSON.decode(res.responseText);console.log("a",record,record.rows);this.record=record.rows[0];console.log(this.record)}else this.record=null;TJ.comp.UserOrGroup.superclass.displayValueCallback.call(this)},getDisplayValue:function(){console.log("value",this.value,this.objectValue);if(this.value>0)if(this.record)return String.format("User: {0} ({1})",this.record._summary,this.record._id);else return String.format("User: {0} Not found",this.value);else if(this.value<0)if(this.record)return String.format("Usergroup: {0} ({1})",this.record._summary,this.record._id);else return String.format("Usergroup: {0} Not found",this.value);return"Please select a user or group"}});Ext.reg("tjuserorgroup",TJ.comp.UserOrGroup);Ext.namespace("TJ.Admin");TJ.Admin.FormLayout=Ext.extend(Ext.layout.FormLayout,{getTemplateArgs:function(c){return[c.id,c.fieldLabel,c.labelStyle||this.labelStyle||"",this.elementStyle||"",typeof c.labelSeparator=="undefined"?this.labelSeparator:c.labelSeparator,(c.itemCls||this.container.itemCls||"")+(c.hideLabel?" x-hide-label":"")+(c.disableField?" disableField":""),c.clearCls||"x-form-clear-left",c.desc||"",c.narrative||"",c.narrative?" border-bottom:1px dashed #00CC00; cursor:help;":"",c.subheading?'<div class="FieldSubheading">'+c.subheading+"</div>":"",c.heading?'<div class="FieldHeading">'+c.heading+"</div>":"",c.allowBlank?c.langRequired?"required single":"":"required"]},labelSeparator:"",fieldTpl:function(){var t=new Ext.Template('<div class="x-form-item {5}" tabIndex="-1">',"{11}","{10}",'<label for="{0}" style="{2}" class="x-form-item-label {12}"><span style="{9}" title="{8}">{1}</span>{4}</label>','<div class="x-form-element" id="x-form-el-{0}" style="{3}">','</div><div class="FieldDesc" style="{3}">{7}</div><div class="{6}"></div>',"</div>");t.disableFormats=true;return t.compile()}()});Ext.Container.LAYOUTS["tjadminform"]=TJ.Admin.FormLayout;TJ.Admin.FieldSet=Ext.extend(Ext.form.FieldSet,{layout:"tjadminform"});Ext.reg("tjfieldset",TJ.Admin.FieldSet);TJ.Admin.StatusPanelForm=Ext.extend(Ext.Panel,{errorIconCls:"x-form-invalid-icon",validIconCls:"x-status-valid",autoScroll:true,border:false,layout:"fit",setDefault:function(button){if(button.field){button.field.setValue(button.field["default"]);button.field.focus();TJ.Admin.statusGrid.addMessage({message:String.format("Field {0} reset to default",button.field.fieldLabel)})}else Ext.Msg.confirm("Please confirm","Revert all fields to their defaults",function(btn){if(btn=="yes"){this.form.items.each(function(f){f.setValue(f["default"])},this);TJ.Admin.statusGrid.addMessage({message:String.format("All {0} fields reset to their defaults",this.title)})}},this)},initComponent:function(){this.items=this.form=new TJ.Admin.Form(this.formconfig);this.bbar=new Ext.StatusBar({iconCls:"ready-icon",defaultText:"Ready"});if(this.revert){var items=[];this.form.items.each(function(f){items.push({text:f.fieldLabel,field:f})},this);this.defaultButton=new Ext.SplitButton({text:"Set to default:  All Fields",iconCls:"icon_arrow_undo",handler:this.setDefault,field:null,scope:this,menu:new Ext.menu.Menu({defaults:{iconCls:"icon_arrow_undo",handler:this.setDefault},items:items})});this.tbar=[this.defaultButton]}TJ.Admin.StatusPanelForm.superclass.initComponent.call(this);this.form.on("failed",function(message){this.getBottomToolbar().setStatus({text:message,iconCls:"x-status-error"})},this);this.form.on("actioncomplete",function(form,action){this.getBottomToolbar().clearStatus()},this)},render:function(ct,pos){if(Ext.get(ct).hasClass("x-mask-loading")){Ext.get(ct).removeClass("x-mask-loading");div=Ext.get(ct).first();if(div)div.remove()}TJ.Admin.StatusPanelForm.superclass.render.call(this,ct,pos)}});Ext.reg("tjstatuspanelform",TJ.Admin.StatusPanelForm);TJ.Admin.Form=Ext.extend(Ext.FormPanel,{frame:true,layout:"tjadminform",labelAlign:"right",autoScroll:true,labelWidth:145,fileUpload:false,notifyComponent:null,params:{},focus:true,defaults:{selectOnFocus:true,msgTarget:"side"},render:function(ct,pos){TJ.Admin.Form.superclass.render.call(this,ct,pos);if(this.focus)this.focusFirst()},initComponent:function(){if(this.buttons){var i=0;while(this.buttons[i]){this.buttons[i].handler=this.doSubmit;this.buttons[i].scope=this;if(i===0)this.buttons[i]["default"]=true;i=i+1}}else this.buttons=[{text:"Save",scope:this,handler:this.doSubmit,"default":true}];for(i=0;i<this.items.length;i++)if(this.items[i].xtype=="tjuserfile"){this.fileUpload=true;break}TJ.Admin.Form.superclass.initComponent.call(this);this.form.trackResetOnLoad=true;this.fieldArray={};this.items.each(function(f){f.on("dosubmit",this.doSubmit,this);f.on("focus",this.fieldFocus,this);if(f.getName)this.fieldArray[f.getName()]=f.getId()},this);this.items.each(function(f){f.fieldArray=this.fieldArray},this);this.on("actioncomplete",function(form,action){this.getEl().unmask();if(action.result)TJ.Admin.ProcessStandardResponse(action.result);if(this.callback)this.callback.call(this.scope||this,action.result,action,this)});this.on("actionfailed",function(form,action){this.getEl().unmask();if(action.failureType==Ext.form.Action.SERVER_INVALID){if(action.result){TJ.Admin.ProcessStandardResponse(action.result);if(action.result.errors)form.items.each(function(f){if(action.result.errors[f.name||f.getName()]){f.focus(true,true);return false}});if(action.result.errors.__form__)this.fireEvent("failed",action.result.errors.__form__)}}else if(action.failureType==Ext.form.Action.CLIENT_INVALID)this.focusInvalidField();else if(action.result)TJ.Admin.ProcessStandardResponse(action.result)})},fieldFocus:function(field){this.fireEvent("fieldFocus",field)},doSubmit:function(field){if(tinyMCE)tinyMCE.triggerSave();this.getForm().submitValue=field.value||"default";if(this.getForm().isValid()){this.getEl().mask("Processing...","x-mask-loading");this.getForm().baseParams=this.getForm().baseParams||{};this.getForm().baseParams._formId=this.getId();this.getForm().baseParams._submit=this.getForm().submitValue;this.getForm().doAction("tjsubmit",{})}else this.focusInvalidField()},focusInvalidField:function(){this.items.each(function(f){if(!f.isValid()){f.focus(true,true);return false}});this.fireEvent("failed","There are errors in your input")},focusFirst:function(){this.items.each(function(f){if(!f.disabled){f.focus(true,true);return false}})}});TJ.formSubmit=Ext.extend(Ext.form.Action.Submit,{handleResponse:function(response){try{return TJ.formSubmit.superclass.handleResponse.call(this,response)}catch(ex){console.log("Form Processing Error:",response,ex);return{success:false,errors:{__form__:"We were unable to process your form.  Please try again"},alert:{title:"Error",message:"We were unable to process your form.  Please try again.<BR>"+ex.name+": "+ex.message+"<BR>"+response.responseText}}}}});Ext.form.Action.ACTION_TYPES.tjsubmit=TJ.formSubmit;TJ.Admin.FormPlugin=function(){return{init:function(form){var fieldChange=function(f){form.items.each(function(i){if(i.siblingChange)i.siblingChange(f);if(i.enableField==f.name)i.setDisabled(f.getValue());if(i.disableField==f.name)i.setDisabled(!f.getValue())})};Ext.apply(form,{onRender:form.onRender.createSequence(function(ct,position){this.items.each(function(i){i.on("change",fieldChange,form);i.on("select",fieldChange,form);fieldChange(i)});console.log("do an initial run!",form)})})}}};Ext.namespace("TJ.Admin");TJ.CMSRoles=new Array("None","Select","Edit","Publish");TJ.Admin.HomePanel=Ext.extend(Ext.TabPanel,{activeTab:0,border:false,initComponent:function(){this.items=[{title:"Altius",html:'<BR><BR><table width="100%"><tr><TD align=center style="color: #929596; font-family:arial,tahoma,helvetica,sans-serif;"><A HREF="http://www.altiussoftware.com" target=_blank><IMG SRC="/lib/external/altius/logo_195x45.png" WIDTH="195" HEIGHT="45" BORDER="0" ALT=""></A><BR><BR><A HREF="http://www.altiussoftware.com" target=_blank>Altius Software</A><br/>Powering Online Experiences</TD></tr></TABLE>'},{title:"Content Summary",autoScroll:true,autoLoad:{url:TJ.LANGUAGESS+"admin/home:summary"}}];TJ.Admin.HomePanel.superclass.initComponent.call(this)}});TJ.Admin.LoadMainTabFromNode=function(node){var tab=TJ.Admin.MainTabPanel.getComponent(node.id);if(tab)TJ.Admin.MainTabPanel.setActiveTab(tab);else if(node.attributes.table){tab=TJ.Admin.MainTabPanel.insert(1,{title:node.text,id:node.id,border:false,layout:"fit",iconCls:node.attributes.iconCls,autoScroll:true,closable:true,listeners:{close:function(p){var node=TJ.Admin.MainTreePanel.getNodeById(p.id);if(node)node.ui.removeClass("cardenabled")}}}).show();tab.body.mask("Loading...","x-mask-loading");TJ.CallbackManager.GetInfo({url:TJ.LANGUAGESS+"admin/apps/content-"+node.attributes.table+":gettableinfo2",callback:function(val){tab.body.unmask();var tp=new TJ.Admin.TableManagerTabPanel({parentFilterID:node.attributes.parentid,tableinfo:val});tab.add(tp);tab.doLayout()},scope:this});node.ui.addClass("cardenabled")}else{if(node.attributes.nopage){if(!node.leaf)node.expand();return}if(node.attributes.cardconfig){console.log(node.attributes.cardconfig);TJ.Admin.MainTabPanel.add({title:node.qtip||node.text,id:node.id,border:false,layout:"fit",iconCls:node.attributes.iconCls,autoScroll:true,closable:true,items:[node.attributes.cardconfig],listeners:{close:function(p){var node=TJ.Admin.MainTreePanel.getNodeById(p.id);if(node)node.ui.removeClass("cardenabled")}}}).show();node.ui.addClass("cardenabled")}else if(!node.leaf)if(node.isExpanded())node.collapse();else node.expand()}};TJ.Admin.MainTabChange=function(panel,tab){if(TJ.Admin.MainTreePanel.rendered){var node=TJ.Admin.MainTreePanel.getNodeById(tab.id);if(node){if(node.getDepth()>0){node.ensureVisible();node.parentNode.expand()}node.select()}}};TJ.Admin.Request=function(conn,response,options){alert(conn.responseText)};TJ.MergeObject=function(dest,source){for(var name in source)dest[name]=source[name];return dest};Ext.namespace("TJ.Comp");TJ.Comp.SearchField=Ext.extend(Ext.form.TwinTriggerField,{initComponent:function(){if(!this.store.baseParams)this.store.baseParams={};TJ.Comp.SearchField.superclass.initComponent.call(this);this.on("specialkey",function(f,e){if(e.getKey()==e.ENTER)this.onTrigger2Click()},this)},validationEvent:false,validateOnBlur:false,trigger1Class:"x-form-clear-trigger",trigger2Class:"x-form-search-trigger",hideTrigger1:true,width:180,hasSearch:false,paramName:"query",onTrigger1Click:function(){if(this.hasSearch){this.store.baseParams[this.paramName]="";if(this.store.lastOptions.params)this.store.lastOptions.params.start=0;this.store.reload();this.el.dom.value="";this.triggers[0].hide();this.hasSearch=false;this.focus()}},onTrigger2Click:function(){var v=this.getRawValue();if(v.length<1){this.onTrigger1Click();return}if(v.length<2){Ext.Msg.alert("Invalid Search","You must enter a minimum of 2 characters to search");return}this.store.baseParams[this.paramName]=v;if(this.store.lastOptions.params)this.store.lastOptions.params.start=0;this.store.reload();this.hasSearch=true;this.triggers[0].show();this.focus()}});TJ.Admin.TableBrowserTabChange=function(panel,tab){var url=tab.recordid?TJ.LANGUAGESS+tab.ownerCt.initialConfig.tableinfo.baseurl+"-"+tab.recordid+":"+tab.func:TJ.LANGUAGESS+tab.ownerCt.initialConfig.tableinfo.baseurl+":"+tab.func;if(!tab.loaded)TJ.Admin.GetRemoteComponent({url:url,container:tab})};TJ.Admin.ListManagerTabPanel=Ext.extend(Ext.TabPanel,{border:false,activeTab:0,defaults:{layout:"fit",autoScroll:true},initComponent:function(){this.items=[];for(var i=0;i<this.tableinfo.listdefs.length;i++)this.items.push({title:this.tableinfo.listdefs[i][0],qtip:this.tableinfo.listdefs[i][1]});this.on("tabchange",this.tabChange,this);TJ.Admin.ListManagerTabPanel.superclass.initComponent.call(this)},tabChange:function(tp,tab){if(!tab.loaded){tab.add(new TJ.Admin.TableListGridPanel({tableinfo:this.tableinfo,listname:tab.title}));tab.doLayout();tab.loaded=true}}});TJ.Admin.TableGridPanel=Ext.extend(Ext.grid.GridPanel,{stripeRows:true,border:false,parentFilter:0,idRender:function(val,p,record){var icon="";if(record.data._createdby==TJ.userid){icon="[A]";p.attr='title="You are the author of this content"'}return String.format("{0} {1}",val,icon)},secureRender:function(val,p,record){return val>0?"Yes":"No"},defaultRender:function(value,metaData,record,rowIndex,colIndex,store){var summaryName="__"+this.dataIndex;if(record.data[summaryName])return String.format("{0} ({1})",record.data[summaryName],value);return Ext.util.Format.ellipsis(Ext.util.Format.stripTags(value),40)},initComponent:function(){TJ.TableScopes=this.tableinfo.scopes;this.columns=this.tableinfo.columns.slice();for(var i=0;i<this.columns.length;i++)if(this.columns[i].dataIndex=="_id")this.columns[i].renderer=this.idRender;else if(this.columns[i].dataIndex=="_secure")this.columns[i].renderer=this.secureRender;else if(this.columns[i].evalrenderer)this.columns[i].renderer=eval(this.columns[i].evalrenderer);else this.columns[i].renderer=this.defaultRender;if(this.singleSelect)this.columns.unshift(new TJ.Admin.RowSelectedRenderer);this.store=new Ext.data.Store({remoteSort:true,sortInfo:{field:"_id",direction:"DESC"},proxy:new Ext.data.HttpProxy({url:TJ.LANGUAGESS+this.tableinfo.baseurl+":getdata"}),reader:new Ext.data.JsonReader({root:"rows",totalProperty:"numrows",id:"_id"},this.tableinfo.record)});this.view=new Ext.grid.GridView({forceFit:true});this.sm=new Ext.grid.RowSelectionModel({singleSelect:this.singleSelect});this.bbar=new Ext.PagingToolbar({pageSize:20,store:this.store,displayInfo:true,displayMsg:"Displaying "+this.tableinfo.lang.plural+" {0} - {1} of {2}",emptyMsg:"No "+this.tableinfo.lang.plural+" to display",items:["-","Search: "," ",new TJ.Comp.SearchField({width:160,store:this.store,paramName:"search"})]});if(!this.noTitle)this.title=this.title||"Browse "+this.tableinfo.lang.plural;this.initialTitle=this.title;TJ.Admin.TableGridPanel.superclass.initComponent.call(this);TJ.Admin.TableManager.on("tabledatachange",this.tableDataChange,this);this.store.on("load",function(){this.setTitle(this.initialTitle)},this)},onRender:function(ct,position){TJ.Admin.TableGridPanel.superclass.onRender.call(this,ct,position);this.store.load()},tableDataChange:function(table,operation,recordid){if(table==this.tableinfo.table)this.setTitle(this.initialTitle+"*")},setSelectedId:function(id){this.store.selectedId=id;if(this.rendered)this.getView().refresh()}});TJ.Admin.RowSelectedRenderer=function(config){Ext.apply(this,config);if(this.rowspan)this.renderer=this.renderer.createDelegate(this)};TJ.Admin.RowSelectedRenderer.prototype={header:"",width:18,sortable:false,fixed:true,menuDisabled:true,dataIndex:"",id:"_selected",rowspan:undefined,renderer:function(value,metaData,record,rowIndex,colIndex,store){if(this.rowspan)metaData.cellAttr='rowspan="'+this.rowspan+'"';if(record.id==store.selectedId){metaData.attr='title="Currently selected"';metaData.css+="icon_accept";console.log(metaData)}return""}};TJ.Admin.TableBrowseGridPanel=Ext.extend(TJ.Admin.TableGridPanel,{stateful:true,parentFilterID:0,showAllText:"[Show All]",viewHandler:function(item){var records=this.getSelectionModel().getSelections();for(var i=0;i<records.length;i++)this.fireEvent("recordview",{grid:this,record:records[i],activeNode:item.node})},childHandler:function(item){if(item.table){var node={id:item.baseurl,text:item.text,attributes:{table:item.table,iconCls:item.iconCls,parentid:this.getSelectionModel().getSelected().id}};TJ.Admin.LoadMainTabFromNode(node)}},initComponent:function(){this.stateId="TJ_Admin_TableBrowseGridPanel_"+this.tableinfo.table;this.stateEvents.push("parentFilter");this.tbar=[];var i;var viewItems=[];for(i=0;i<this.tableinfo.recordnodes.length;i++)viewItems.push({text:this.tableinfo.recordnodes[i].text,qtip:this.tableinfo.recordnodes[i].qtip,iconCls:this.tableinfo.recordnodes[i].iconCls,ref:this.tableinfo.recordnodes[i].ref,node:this.tableinfo.recordnodes[i].id,handler:this.viewHandler,scope:this});this.rowMenu=new Ext.menu.Menu({items:viewItems});this.rowMenu.on("beforeshow",function(menu){var record=this.getSelectionModel().getSelected();if(record){if(menu.edit)menu.edit.setDisabled(!record.data._cmsroles.edit);if(menu.media)menu.media.setDisabled(!record.data._cmsroles.edit)}else{if(menu.edit)menu.edit.setDisabled(true);if(menu.media)menu.media.setDisabled(true)}},this);this.viewBtn=new Ext.SplitButton({text:this.tableinfo.recordnodes[0].text,disabled:true,qtip:this.tableinfo.recordnodes[0].qtip,node:this.tableinfo.recordnodes[0].id,iconCls:this.tableinfo.recordnodes[0].iconCls,handler:this.viewHandler,menu:this.rowMenu,scope:this});this.tbar.push(this.viewBtn);this.on("rowdblclick",function(grid,rowIndex){this.getSelectionModel().getSelected();this.fireEvent("recordview",{grid:this,record:this.getSelectionModel().getSelected(),activeNode:"view"})},this);this.on("rowcontextmenu",function(grid,index,e){var xy=e.getXY();this.getSelectionModel().selectRow(index);this.rowMenu.showAt(xy);e.preventDefault()},this);this.deleteBtn=new Ext.Toolbar.Button({text:"Delete",disabled:true,tooltip:"Delete the selected "+this.tableinfo.lang.plural,iconCls:"icon_table_delete",scope:this,handler:function(){var records=this.getSelectionModel().getSelections();if(records.length){var msg="<TABLE>";var ids=[];for(var i=0;i<records.length;i++){msg=msg+"<TR><TD>"+records[i].data["_id"]+"</TD><TD>"+records[i].data[this.tableinfo.summary]+"</TD></TR>";ids[i]=records[i].data["_id"]}msg=msg+"</TABLE>";Ext.Msg.show({title:"Please confirm",width:300,msg:"Are you sure you want to delete the following records?<BR> "+msg,buttons:Ext.Msg.YESNO,records:records,scope:this,fn:function(btn){if(btn=="yes")Ext.Ajax.request({url:TJ.LANGUAGESS+this.tableinfo.baseurl+":delete?ids="+ids.join(","),ids:ids,scope:this,callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response);for(i=0;i<options.ids.length;i++)TJ.Admin.TableManager.tableDataChange(this.tableinfo.table,"delete",options.ids[i]);this.store.reload()}})},animEl:this.deleteBtn,icon:Ext.MessageBox.QUESTION})}}});if(!this.tableinfo.readonly)this.tbar.push(this.deleteBtn);this.tbar.push("-");this.refreshBtn=new Ext.Toolbar.Button({text:"Refresh",tooltip:"Refresh this table",iconCls:"icon-refresh",handler:function(){this.store.reload()},scope:this});this.tbar.push(this.refreshBtn);this.exportBtn=new Ext.Toolbar.Button({text:"Export",disabled:true,tooltip:"Export the data to csv format",iconCls:"icon_table_save",handler:function(){this.doExport()},scope:this});this.tbar.push(this.exportBtn);this.childBtn=null;if(this.tableinfo.cmsroles){this.tbar.push("-");console.log(this.tableinfo.cmsroles);this.tbar.push("Own content: "+TJ.CMSRoles[this.tableinfo.cmsroles.own]);this.tbar.push("-");this.tbar.push("All content: "+TJ.CMSRoles[this.tableinfo.cmsroles.all])}this.parentFilterID=this.parentFilterID||0;if(this.tableinfo.publishable){this.tbar.push("->");this.tbar.push("Status Filter:");this.tbar.push(" ");this.tbar.push(this.status=new TJ.comp.Select({listWidth:100,fieldLabel:"Status",name:"status",width:100,store:[this.showAllText,"Draft","Editing","Review","Published","Archived"],value:this.showAllText}));this.status.on("select",function(field,value){if(field.getValue()==this.showAllText)this.store.baseParams["status"]="";else this.store.baseParams["status"]=field.getValue();var o={start:0};this.store.reload({params:o})},this)}if(this.tableinfo.parentClass){this.tbar.push("->");this.tbar.push("Parent Filter:");this.tbar.push(" ");this.tbar.push({xtype:"tjparentfilter",value:this.parentFilterID,table:this.tableinfo.parentClass,ref:"parentFilter",listeners:{select:{fn:function(field,value){this.parentFilterID=field.getValue()*1;this.store.baseParams["parentid"]=field.getValue();var o={start:0};this.store.reload({params:o});this.fireEvent("parentFilter")},scope:this}}})}TJ.Admin.TableBrowseGridPanel.superclass.initComponent.call(this);this.store.baseParams["parentid"]=this.parentFilterID;this.store.on("load",function(){this.exportBtn.setDisabled(this.store.getTotalCount()===0)},this);this.getSelectionModel().on("selectionchange",function(sm){var records=this.getSelectionModel().getSelections();var delEnabled=true;for(var i=0;i<records.length;i++)delEnabled=delEnabled&&records[i].data._cmsroles["delete"];this.deleteBtn.setDisabled(sm.getCount()===0||!delEnabled);this.viewBtn.setDisabled(sm.getCount()===0);if(this.childBtn)this.childBtn.setDisabled(sm.getCount()!=1)},this)},applyState:function(state){if(state.parentFilterID){this.parentFilterID=state.parentFilterID;this.getTopToolbar().parentFilter.setValue(state.parentFilterID);this.store.baseParams["parentid"]=this.parentFilterID}TJ.Admin.TableBrowseGridPanel.superclass.applyState.call(this,state)},getState:function(){var state=TJ.Admin.TableBrowseGridPanel.superclass.getState.call(this);state.parentFilterID=this.parentFilterID;return state},doExport:function(){url=TJ.LANGUAGESS+this.tableinfo.baseurl+":doexport?"+Ext.urlEncode(this.store.baseParams);location.href=url;TJ.Admin.statusGrid.addMessage({message:this.tableinfo.lang.label+" records exported."})}});TJ.Admin.ReturnRemoteComponent=function(config){if(config.container)config.container.body.mask("Loading...","x-mask-loading");Ext.Ajax.request({url:config.url,config:config,callback:function(options,success,response){var ret=eval(response.responseText);if(options.config.container){TJ.Admin.ClearPanel(options.config.container);options.config.container.add(ret);options.config.container.doLayout();options.config.container.body.unmask()}if(options.config.callback)options.config.callback.call(options.config.scope||this,ret)}})};TJ.Admin.GetRemoteComponent=function(config){config.container.body.mask("Loading...","x-mask-loading");Ext.Ajax.request({url:config.url,config:config,callback:function(options,success,response){var TJInfo={container:options.config.container};eval(response.responseText);options.config.container.body.unmask();options.config.container.loaded=true;if(options.config.callback)options.config.callback.call(options.config.scope||this)}})};TJ.Admin.ClearPanel=function(panel){var f;if(panel&&panel.items)if(panel.rendered)while(f=panel.items.first()){panel.remove(f,true);Ext.destroy(f)}else panel.items.clear()};TJ.Admin.ValidateRequest=function(config){Ext.Ajax.request({url:config.url,params:config.params,callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response)}})};TJ.Admin.ProcessJSONResponse=function(options,success,response){var res=Ext.util.JSON.decode(response.responseText);TJ.Admin.ProcessStandardResponse(res);return res};TJ.Admin.ProcessStandardResponse=function(res){var i;if(!res)return;if(res.status)for(i=0;i<res.status.length;i++)TJ.Admin.statusGrid.addMessage(res.status[i]);if(res.alert)Ext.MessageBox.show({title:res.alert.title,msg:res.alert.message,buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.INFO});if(res.redirect){Ext.getBody().mask(res.redirect.message||"Loading...","x-mask-loading");window.location=res.redirect.url}if(res.replace){div=Ext.get(res.replace.div);if(div){div.update(Ext.util.Format.htmlDecode(res.replace.content)).highlight();Ext.getBody().scrollTo("top",div.getY()-20,true);Ext.getBody().parent().scrollTo("top",div.getY()-20,true);TJ.ExpandColumns({heights:true})}}if(res.console)if(console)for(i=0;i<res.console.length;i++)console.log(res.console[i])};TJ.Admin.GetSequencePanel=function(info){if(info.parent&&info.parent.table!=info.table)return TJ.Admin.GetSimpleSequencePanel(info,info.parent);return TJ.Admin.GetSimpleSequencePanel(info)};TJ.Admin.GetSimpleSequencePanel=function(info,parentinfo){var preview=new TJ.Admin.RecordPreviewPanel({tableinfo:info});var previewParent=parentinfo?new TJ.Admin.RecordPreviewPanel({tableinfo:parentinfo}):null;var tree=new Ext.tree.TreePanel({title:"Sequencing",autoScroll:true,animate:true,enableDD:true,rootVisible:false,containerScroll:true,loader:new Ext.tree.TreeLoader({dataUrl:TJ.LANGUAGESS+info.baseurl+":sequencenodes"}),root:new Ext.tree.AsyncTreeNode({text:"Sequence "+info.lang.plural,draggable:false,id:"0"}),tbar:[{text:"Refresh",iconCls:"icon-refresh",handler:function(){tree.getLoader().load(tree.getRootNode());tree.getRootNode().expand()},scope:this},{text:"Expand All",iconCls:"icon-expand-all",handler:function(){var node=tree.getSelectionModel().getSelectedNode();if(node)node.expand(true)},scope:this},{text:"Collapse All",iconCls:"icon-collapse-all",handler:function(){tree.getRootNode().collapse(true)},scope:this}],listeners:{nodedrop:function(obj){Ext.Ajax.request({url:TJ.LANGUAGESS+info.baseurl+":sequencedo",params:{drop:obj.dropNode.attributes._id,point:obj.point,target:obj.target.attributes._id},callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response)}})},nodedragover:function(obj){return true},click:function(node,e){var url;if(parentinfo)if(node.isLeaf()){preview.ownerCt.activate(preview);preview.setRecordByID(node.attributes["_id"])}else{previewParent.ownerCt.activate(previewParent);previewParent.setRecordByID(node.attributes["_id"])}else preview.setRecordByID(node.attributes["_id"])},render:function(tree){tree.getRootNode().expand()}}});var border=new Ext.Panel({layout:"border",frame:false,items:[{region:"center",layout:"fit",items:tree},{region:"east",width:400,minSize:100,collapsible:true,split:true,autoScroll:true,layout:"border",items:[{region:"center",xtype:"tabpanel",autoScroll:true,activeTab:0,items:previewParent?[previewParent,preview]:[preview]}]}]});border.doLayout();return border};TJ.Admin.TableSelectWindow=Ext.extend(Ext.Window,{layout:"fit",modal:true,width:800,height:550,title:"Select Content",closeAction:"hide",plain:true,parentFilter:0,initComponent:function(){this.selBtn=new Ext.Button({text:"Select",disabled:true,handler:function(){this.doSelect()},scope:this});this.closeBtn=new Ext.Button({text:"Close",handler:function(){this.hide()},scope:this});this.buttons=[this.selBtn,this.closeBtn];this.setTitle("Select "+this.tableinfo.lang.label);this.grid=new TJ.Admin.TableGridPanel({tableinfo:this.tableinfo,noTitle:true,singleSelect:true});this.grid.on("rowdblclick",function(grid){this.doSelect()},this);this.items=[this.grid];TJ.Admin.TableSelectWindow.superclass.initComponent.call(this);this.grid.getSelectionModel().on("selectionchange",function(sm){this.selBtn.setDisabled(sm.getCount()===0)},this)},setParentFilter:function(id){if(this.parentFilter!=id){this.parentFilter=id;this.grid.store.baseParams["parentid"]=id;this.grid.store.reload()}},doSelect:function(){this.fireEvent("recordselected",this.grid.getSelectionModel().getSelected().json)},show:function(animateTarget,cb,scope){TJ.Admin.TableSelectWindow.superclass.show.call(this,animateTarget,cb,scope)},setSelectedId:function(id){this.grid.setSelectedId(id)}});TJ.Admin.statusGrid=function(){var grid;var store=new Ext.data.SimpleStore({fields:[{name:"timestamp"},{name:"message"},{name:"description"},{name:"code"}]});var msgRender=function(val,p,record){if(record.data.code==2)p.attr='style="background: #c00; font-weight: bold; color: white;"';if(record.data.code==1)p.attr='style="background: yellow; font-weight: bold;"';return val};return{init:function(config){grid=new Ext.grid.GridPanel(Ext.apply({title:"Status",border:false,store:store,columns:[{header:"Timestamp",width:125,sortable:true,renderer:Ext.util.Format.dateRenderer("Y/m/d H:i:s"),dataIndex:"timestamp"},{header:"Message",width:500,sortable:true,dataIndex:"message",renderer:msgRender}],stripeRows:true},config));return grid},addMessage:function(info){if(grid){store.insert(0,new Ext.data.Record({timestamp:new Date,message:info.message,description:info.description,code:info.code}));Ext.get(grid.getView().getRow(0)).highlight("ffff9c",{duration:2})}else Ext.example.msg(info.title||"Altius",info.message)}}}();TJ.Admin.relatedContentPanel=function(reltabs,record){var panel=new Ext.TabPanel({title:"Related Content",items:reltabs,defaults:{layout:"fit",autoScroll:true},listeners:{tabchange:function(panel,tab){if(!tab.loaded){Ext.Ajax.request({url:TJ.LANGUAGESS+"/admin/apps/content-"+tab.initialConfig.related.table+":gettableinfo",callback:function(options,success,response){tableinfo=Ext.util.JSON.decode(response.responseText);tab.add(new TJ.Admin.TableRelatedGridPanel({tableinfo:tableinfo,relation:{table:record.table,id:record.id,relname:tab.related.name}}));tab.doLayout()}});tab.loaded=true}}}});return panel};TJ.Admin.TableAddRemoveGridPanel=Ext.extend(TJ.Admin.TableGridPanel,{addText:"Add {0}",addTooltip:"Add {0}",addIconCls:"icon_user_add",remText:"Remove selected {0}",remTooltip:"Remove selected {0}",remIconCls:"icon_delete",initComponent:function(){this.window=null;this.addBtn=new Ext.Toolbar.Button({text:String.format(this.addText,this.tableinfo.lang.plural),tooltip:String.format(this.addTooltip,this.tableinfo.lang.plural),iconCls:this.addIconCls,handler:function(){if(this.window===null){this.window=new TJ.Admin.TableSelectWindow({tableinfo:this.tableinfo});this.window.on("recordselected",this.addRecord,this)}this.window.show()},scope:this});this.remBtn=new Ext.Toolbar.Button({text:String.format(this.remText,this.tableinfo.lang.plural),tooltip:String.format(this.remTooltip,this.tableinfo.lang.plural),iconCls:this.remIconCls,disabled:true,handler:function(){var records=this.getSelectionModel().getSelections();var ids=[];for(var i=0;i<records.length;i++)ids[i]=records[i].data["_id"];this.removeRecords(records,ids)},scope:this});this.tbar=[this.addBtn,this.remBtn];TJ.Admin.TableAddRemoveGridPanel.superclass.initComponent.call(this);this.store.baseParams=this.baseParams;this.getSelectionModel().on("selectionchange",function(sm){this.remBtn.setDisabled(sm.getCount()===0)},this)},addRecord:function(record){},removeRecords:function(records,ids){}});TJ.Admin.TableListGridPanel=Ext.extend(TJ.Admin.TableAddRemoveGridPanel,{enableDragDrop:true,initComponent:function(){this.baseParams={listname:this.listname};this.noTitle=true;TJ.Admin.TableListGridPanel.superclass.initComponent.call(this)},listeners:{render:function(g){var ddrow=new Ext.ux.dd.GridReorderDropTarget(g,{copy:false,listeners:{beforerowmove:function(objThis,oldIndex,newIndex,records){if(records.length==1){var grid=objThis.getGrid();var dest=grid.store.getAt(newIndex);Ext.Ajax.request({url:TJ.LANGUAGESS+grid.tableinfo.baseurl+":listsequence",params:{source:records[0].data._id,dest:dest.data._id,listname:grid.listname},callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response)}});return true}else return false}}});Ext.dd.ScrollManager.register(g.getView().getEditorParent())},beforedestroy:function(g){Ext.dd.ScrollManager.unregister(g.getView().getEditorParent())}},addRecord:function(record){Ext.Ajax.request({url:TJ.LANGUAGESS+this.tableinfo.baseurl+":listadd",params:{listname:this.listname,id:record._id},callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response);if(res.success)this.store.reload()},scope:this})},removeRecords:function(records,ids){Ext.Ajax.request({url:TJ.LANGUAGESS+this.tableinfo.baseurl+":listrem",params:{listname:this.listname,ids:ids.join(",")},callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response);if(res.success)this.store.reload()},scope:this})}});TJ.Admin.TableRelatedGridPanel=Ext.extend(TJ.Admin.TableAddRemoveGridPanel,{initComponent:function(){this.baseParams=this.relation;this.noTitle=true;TJ.Admin.TableRelatedGridPanel.superclass.initComponent.call(this)},addRecord:function(record){Ext.Ajax.request({url:TJ.LANGUAGESS+this.tableinfo.baseurl+":relatedadd",params:{reltab:this.relation.table,relid:this.relation.id,relname:this.relation.relname,id:record._id},callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response);if(res.success)this.store.reload()},scope:this})},removeRecords:function(records,ids){Ext.Ajax.request({url:TJ.LANGUAGESS+this.tableinfo.baseurl+":relatedrem",params:{reltab:this.relation.table,relid:this.relation.id,relname:this.relation.relname,ids:ids.join(",")},callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response);if(res.success)for(var i=0;i<records.length;i++){this.store.remove(records[i]);ids[i]=records[i].data["_id"]}},scope:this})}});TJ.Admin.RelatedContentGrid=function(info,related,relname){var previewID;for(var i=0;i<info.columns.length;i++)if(info.columns[i].evalrenderer)info.columns[i].renderer=eval(info.columns[i].evalrenderer);related["relname"]=relname;var store=new Ext.data.Store({remoteSort:true,proxy:new Ext.data.HttpProxy({url:TJ.LANGUAGESS+info.baseurl+":getdata"}),baseParams:related,reader:new Ext.data.JsonReader({root:"rows",totalProperty:"numrows",id:"_id"},info.record)});store.load({params:{start:0,limit:20}});var grid=new Ext.grid.GridPanel({store:store,view:new Ext.grid.GridView({forceFit:true}),columns:info.columns,sm:new Ext.grid.RowSelectionModel({singleSelect:true,listeners:{selectionchange:function(sm){if(sm.getCount()>0)grid.getTopToolbar().items.items[1].enable();else grid.getTopToolbar().items.items[1].disable()}}}),stripeRows:true,tbar:[{text:"Add "+info.lang.label,tooltip:"Add a related "+info.lang.label,iconCls:"icon_user_add",handler:function(){TJ.Admin.SelectContent.display(info["class"],{callback:function(record){Ext.Ajax.request({url:TJ.LANGUAGESS+info.baseurl+":relatedadd",params:{reltab:related.table,relid:related.id,relname:relname,id:record._id},callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response);if(res.success)store.reload()}})}})}},{text:"Remove selected "+info.lang.label,iconCls:"adminuser",disabled:true,handler:function(){var record=grid.getSelectionModel().getSelected();Ext.Ajax.request({url:TJ.LANGUAGESS+info.baseurl+":relatedrem",params:{reltab:related.table,relid:related.id,relname:relname,id:record.id},callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response);if(res.success)store.reload()}})}}],bbar:new Ext.PagingToolbar({pageSize:20,store:store,displayInfo:true,displayMsg:"Displaying "+info.lang.plural+" {0} - {1} of {2}",emptyMsg:"No "+info.lang.plural+" to display",items:["-","Search: "," ",new TJ.Comp.SearchField({width:160,store:store,paramName:"search"})]})});return grid};TJ.Admin.TableManagerTabPanel=Ext.extend(Ext.TabPanel,{parentFilterID:0,activeTab:0,defaults:{autoScroll:true,layout:"fit",loaded:false},initComponent:function(){if(this.tableinfo)this.items=this.tableinfo.tabletabs;this.on("tabchange",this.tabChange,this);TJ.Admin.TableManagerTabPanel.superclass.initComponent.call(this);TJ.Admin.TableManager.on("tabledatachange",this.tableDataChange,this)},tabChange:function(mainpanel,tab){console.log("tabchange",tab);if(tab.func)if(!tab.loaded){var url;if(tab.func=="browse"){this.browsetab=tab;this.browsepanel=new TJ.Admin.BrowsePreviewPanel({tableinfo:this.tableinfo,parentFilterID:this.parentFilterID});this.browsepanel.grid.on("recordview",function(params){this.RecordView(params)},this);tab.add(this.browsepanel);tab.doLayout();tab.loaded=true}else if(tab.func=="insert"){var parent=0;if(this.tableinfo.parent)parent=this.browsepanel.grid.parentFilterID;url=TJ.LANGUAGESS+tab.ownerCt.initialConfig.tableinfo.baseurl+":"+tab.func+"?parent="+escape(parent);TJ.Admin.GetRemoteComponent({url:url,container:tab})}else if(tab.func=="lists"){tab.add(new TJ.Admin.ListManagerTabPanel({tableinfo:this.tableinfo}));tab.doLayout();tab.loaded=true}else if(tab.func=="sequence"){tab.add(TJ.Admin.GetSequencePanel(this.tableinfo));tab.doLayout();tab.loaded=true}else if(tab.func){url=tab.recordid?TJ.LANGUAGESS+tab.ownerCt.initialConfig.tableinfo.baseurl+"-"+tab.recordid+":"+tab.func:TJ.LANGUAGESS+tab.ownerCt.initialConfig.tableinfo.baseurl+":"+tab.func;TJ.Admin.GetRemoteComponent({url:url,container:tab})}}},showBrowse:function(){this.setActiveTab(this.browsetab)},tableDataChange:function(table,operation,recordid){if(table==this.tableinfo.table)if(operation=="delete")this.recordClose({record:{id:recordid}})},RecordView:function(params){var id="RecordView_"+this.tableinfo.table+params.record.id;var tab=this.getComponent(id);if(tab)this.setActiveTab(tab);else{var recordpanel=new TJ.Admin.NavTreeCardPanel({activeNode:params.activeNode||"view",rooturl:TJ.LANGUAGESS+this.tableinfo.baseurl+"-"+params.record.id,cardDefaults:{tableinfo:this.tableinfo,recordid:params.record.id,record:params.record}});tab=this.add({title:this.tableinfo.lang.label+" "+(params.record.summary||params.record.data["_summary"]||params.record.data[this.tableinfo.summary]),recordid:params.record.id,closable:true,id:"RecordView_"+this.tableinfo.table+params.record.id,items:recordpanel});tab.recordpanel=recordpanel;tab.show()}},recordClose:function(params){var id="RecordView_"+this.tableinfo.table+params.record.id;var tab=this.getComponent(id);if(tab)this.remove(tab)}});TJ.Admin.BrowsePreviewPanel=Ext.extend(Ext.Panel,{layout:"border",frame:false,border:false,initComponent:function(){this.grid=new TJ.Admin.TableBrowseGridPanel({tableinfo:this.tableinfo,parentFilterID:this.parentFilterID});if(this.tableinfo.publishable)this.publisher=new TJ.Admin.RecordPublishPanel({tableinfo:this.tableinfo,title:"Publishing"});this.previewer=new TJ.Admin.RecordPreviewPanel({tableinfo:this.tableinfo,title:"Preview"});console.log(this.tableinfo);this.related=new TJ.Admin.RecordQuickRelatedPanel({tableinfo:this.tableinfo,title:"Related"});var items;if(this.tableinfo.publishable)items=[this.previewer,this.publisher,this.related];else items=[this.previewer,this.related];this.tp=new Ext.TabPanel({width:400,minWidth:300,region:"east",minSize:75,collapsible:true,collapsed:false,split:true,autoScroll:true,activeTab:0,items:items});Ext.apply(this,{items:[{region:"center",layout:"fit",items:this.grid},this.tp]});TJ.Admin.BrowsePreviewPanel.superclass.initComponent.call(this);this.grid.getSelectionModel().on("rowselect",function(sm,ind,record){if(this.publisher)this.publisher.setRecord(record);this.previewer.setRecord(record);this.related.setRecord(record)},this)}});TJ.EventManager=new Ext.util.Observable({});TJ.EventManager.events={};TJ.Admin.TableManager=new Ext.util.Observable({});TJ.Admin.TableManager.addEvents({tabledatachange:true});TJ.Admin.TableManager.tableDataChange=function(table,operation,recordid){this.fireEvent("tabledatachange",table,operation,recordid)};TJ.Admin.TableManager.addEvents({loginsucces:true});TJ.Admin.TableManager.loginSuccess=function(usersummary){this.fireEvent("loginsuccess",usersummary)};TJ.Admin.TranslationGridPanel=Ext.extend(Ext.grid.EditorGridPanel,{title:"Template Translations",stripeRows:true,border:false,initComponent:function(){this.columns=[{header:"Code",width:150,sortable:true,dataIndex:"code"}];fields=["code","count","help"];for(lang in TJ.LANGUAGEDESC){this.columns.push({header:TJ.LANGUAGEDESC[lang],width:150,sortable:true,dataIndex:"trans_"+lang,editor:new Ext.form.TextArea({})});fields.push("trans_"+lang);fields.push("default_"+lang)}for(lang in TJ.LANGUAGEDESC)this.columns.push({header:"Default ("+lang+")",width:100,sortable:true,dataIndex:"default_"+lang});this.columns.push({header:"Description",width:300,sortable:false,dataIndex:"help"});this.columns.push({header:"Count",width:50,sortable:true,dataIndex:"count"});this.store=new Ext.data.Store({remoteSort:true,proxy:new Ext.data.HttpProxy({url:TJ.LANGUAGESS+"admin/utilities/translation:getdata"}),reader:new Ext.data.JsonReader({root:"rows",totalProperty:"numrows",id:"code"},fields)});this.store.on({update:{scope:this,fn:this.recordUpdate},beforeload:{scope:this,fn:this.beforeLoad}});this.scanBtn=new Ext.Toolbar.Button({text:"Scan Templates",tooltip:"Scan Templates",iconCls:"icon_style_go",handler:this.doScan,scope:this});this.saveBtn=new Ext.Toolbar.Button({text:"Save Changes",tooltip:"Save Changes",iconCls:"icon_accept",handler:this.saveChanges,disabled:true,scope:this});this.writeBtn=new Ext.Toolbar.Button({text:"Write Translation File",tooltip:"Write File",handler:this.writeFile,scope:this});this.cancelBtn=new Ext.Toolbar.Button({text:"Cancel Changes",tooltip:"Cancel Changes",iconCls:"icon_cancel",handler:this.cancelChanges,disabled:true,scope:this});this.tbar=[this.saveBtn,this.cancelBtn,"-",this.writeBtn,this.scanBtn];this.bbar=new Ext.PagingToolbar({pageSize:20,store:this.store,displayInfo:true,displayMsg:"Displaying Translations  {0} - {1} of {2}",emptyMsg:"No Translations to display",items:["-","Search: "," ",new TJ.Comp.SearchField({width:160,store:this.store,value:this.code,paramName:"search"})]});this.store.load({params:{start:0,limit:20,search:this.code}});TJ.Admin.TranslationGridPanel.superclass.initComponent.call(this)},recordUpdate:function(store,record,operation){this.saveBtn.setDisabled(false);this.cancelBtn.setDisabled(false);this.scanBtn.setDisabled(true)},beforeLoad:function(store,options){if(this.store.getModifiedRecords().length>0){Ext.Msg.show({title:"Updates not saved",width:300,msg:"Please save or cancel your changes before loading new data.",buttons:Ext.Msg.OK,icon:Ext.MessageBox.INFO});return false}this.store.rejectChanges();this.saveBtn.setDisabled(true);this.cancelBtn.setDisabled(true);this.scanBtn.setDisabled(false);return true},doScan:function(){var options={url:TJ.LANGUAGESS+"admin/utilities/translation:scan",scope:this,callback:TJ.Admin.ProcessJSONResponse};Ext.Ajax.request(options)},writeFile:function(){var options={url:TJ.LANGUAGESS+"admin/utilities/translation:write",scope:this,callback:function(o,s,r){TJ.Admin.ProcessJSONResponse(o,s,r)}};Ext.Ajax.request(options)},saveChanges:function(){var recs=this.store.getModifiedRecords();for(var i=0;i<recs.length;i++){var options={url:TJ.LANGUAGESS+"admin/utilities/translation:save",record:recs[i],scope:this,params:recs[i].data,callback:this.saveCallback};Ext.Ajax.request(options)}},saveCallback:function(options,success,response){TJ.Admin.ProcessJSONResponse(options,success,response);if(true===success)options.record.commit();if(this.store.getModifiedRecords().length===0){this.saveBtn.setDisabled(true);this.cancelBtn.setDisabled(true);this.scanBtn.setDisabled(false)}return},cancelChanges:function(){Ext.Msg.show({title:"Please confirm",width:300,msg:"Are you sure you want to cancel these changes?",buttons:Ext.Msg.YESNO,scope:this,fn:function(btn){if(btn=="yes"){this.store.rejectChanges();this.saveBtn.setDisabled(true);this.cancelBtn.setDisabled(true);this.scanBtn.setDisabled(false)}},icon:Ext.MessageBox.QUESTION})}});Ext.reg("tjadmin_translationgridpanel",TJ.Admin.TranslationGridPanel);Ext.reg("tjtranslationgridpanel",TJ.Admin.TranslationGridPanel);TJ.Admin.NavTreeCardPanel=Ext.extend(Ext.Panel,{layout:"border",border:false,treeWidth:160,initComponent:function(){this.tp=this.getTreePanel();this.cp=this.getCardPanel();if(this.activeNode)this.tp.on("load",function(node){var activenode=this.tp.getNodeById(this.activeNode);if(activenode){activenode.select();this.setActiveCard(activenode);if(this.activeNodeExpand)activenode.expand()}},this,{single:true,delay:10});this.items=[{region:"west",layout:"fit",items:this.tp,split:true,width:this.treeWidth,frame:false,title:"Options",tools:[{id:"refresh",handler:function(e){this.tp.getLoader().load(this.tp.getRootNode());TJ.Admin.ClearPanel(this.cp)},scope:this}],collapsible:true},{region:"center",layout:"fit",frame:false,items:this.cp,frame:false}];this.tp.getSelectionModel().on("selectionchange",function(sm,node){if(node)this.setActiveCard(node)},this);TJ.Admin.NavTreeCardPanel.superclass.initComponent.call(this);this.tp.on("click",function(node){if(!node.leaf)node.toggle()},this)},setActiveCard:function(node){var active=null;this.cp.items.each(function(item,index){if(item.path==node.getPath()){this.cp.getLayout().setActiveItem(item);active=item;return false}},this);if(active)return;this.addCard(node)},addCard:function(node){var config={iconCls:node.attributes.iconCls,path:node.getPath()};if(node.attributes.cardconfig)Ext.apply(config,node.attributes.cardconfig);else if(node.attributes.xtype)Ext.apply(config,{xtype:node.attributes.xtype});else if(node.leaf)Ext.apply(config,{xtype:"panel",title:"Page not Defined: "+node.getPath()});else{if(this.cp.getLayout().activeItem)this.cp.getLayout().activeItem.hide();return}node.ui.addClass("cardenabled");this.cp.getLayout().setActiveItem(this.cp.add(config))},getTreePanel:function(){return new Ext.tree.TreePanel({border:false,autoScroll:true,enableDD:false,containerScroll:true,rootVisible:false,root:new Ext.tree.AsyncTreeNode({id:"root",text:this.rootTitle||"Home"}),loader:new Ext.tree.TreeLoader({dataUrl:this.rooturl+":getnodes"})})},getCardPanel:function(){return new Ext.Panel({layout:"card",activeItem:0,border:false,frame:false,defaults:Ext.apply({tools:[{id:"close",handler:function(e,t,p){this.cp.remove(p,true);this.tp.getSelectionModel().clearSelections()},scope:this}],border:false,frame:false,rooturl:this.rooturl},this.cardDefaults),html:'<div class="x-panel-header"><span class="x-panel-header-text">Please Choose an option</span></div>'})}});Ext.reg("tjnavtreecardpanel",TJ.Admin.NavTreeCardPanel);TJ.Admin.NavCardPanel=Ext.extend(Ext.Panel,{layout:"fit",dirty:false,isDirty:function(){return this.dirty},markDirty:function(dirty){this.dirty=dirty;this.fireEvent("dirty",this,dirty)}});TJ.Admin.SystemPanel=Ext.extend(Ext.Panel,{title:"System",initComponent:function(){this.tbar=[{text:"Reset Class Cache",handler:function(btn,item){TJ.Admin.ValidateRequest({url:TJ.LANGUAGESS+"admin/system:ClearClassCache"})}},{text:"Reset Main Cache",handler:function(btn,item){TJ.Admin.ValidateRequest({url:TJ.LANGUAGESS+"admin:ClearMainCache"})}},{text:"Backup Files Dir",handler:function(btn,item){TJ.Admin.ValidateRequest({url:TJ.LANGUAGESS+"admin/system:BackupFiles"})}},{text:"Load Permissions Table",handler:function(btn,item){TJ.Admin.ValidateRequest({url:"/en/admin/system:LoadPermissions"})}},{text:"Test Email",handler:function(btn,item){TJ.Admin.ValidateRequest({url:TJ.LANGUAGESS+"admin/system:TestEmail"})}}];TJ.Admin.SystemPanel.superclass.initComponent.call(this)}});Ext.reg("tjadmin_systempanel",TJ.Admin.SystemPanel);Ext.Ajax.on("requestcomplete",function(conn,res,opt){var json={};try{json=Ext.decode(res.responseText)}catch(ex){}if(Ext.isObject(json)&&json.AccessDenied){var message;if(json.AccessDenied=="Guest"){TJ.Admin.MainWindow.setUser({});return}else message="You do not have sufficient permissions for this operation";Ext.MessageBox.show({title:"Access Denied",msg:message,buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.INFO})}});TJ.comp.FontSizeButton=Ext.extend(Ext.CycleButton,{showText:true,stateful:true,stateId:"TJ_Admin_FontSize",prependText:"Text size: ",forceIcon:"icon_font",stateEvents:["click","change"],itemIndex:0,getState:function(){return{itemIndex:this.itemIndex}},render:function(pos,ct){TJ.comp.FontSizeButton.superclass.render.call(this,pos,ct);this.setActiveItem(this.itemIndex)},items:[{text:"Small",sheet:"text-small.css",checked:true},{text:"Medium",sheet:"text-medium.css"},{text:"Large",sheet:"text-large.css"}],changeHandler:function(b,item){this.itemIndex=item.itemIndex;Ext.util.CSS.swapStyleSheet("fontsize","/lib/base/css/"+item.sheet)}});TJ.AltiusBtn=Ext.extend(Ext.Button,{text:"Altius",iconCls:"icon_altius",altiusWindow:false,handler:function(){this.altiusWindow=window.open("http://www.altiussoftware.com","AltiusHome").focus()},scope:this});TJ.Admin.MakeFieldListMultilingual=function(fields){var ret=Array();for(var i=0;i<fields.length;i++)if(fields[i]&&fields[i].multi)for(lang in TJ.LANGUAGEDESC)ret.push(Ext.apply(TJ.clone(fields[i]),{fieldLabel:fields[i].fieldLabel+" ("+lang+")",name:fields[i].name+"_"+lang,multi:false}));else ret.push(TJ.clone(fields[i]));return ret};Ext.example=function(){var msgCt;function createBox(t,s){return['<div class="msg">','<div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc"></div></div></div>','<div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc"><h3>',t,"</h3>",s,"</div></div></div>",'<div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div>',"</div>"].join("")}return{msg:function(title,format){if(!msgCt)msgCt=Ext.DomHelper.insertFirst(document.body,{id:"msg-div"},true);msgCt.alignTo(document,"t-t");var s=String.format.apply(String,Array.prototype.slice.call(arguments,1));var m=Ext.DomHelper.append(msgCt,{html:createBox(title,s)},true);m.slideIn("t").pause(2).ghost("t",{remove:true})}}}();Ext.onReady(Ext.example);TJ.TableInsertPanel=Ext.extend(Ext.TabPanel,{activeItem:0,ts:false,submitValue:"browse",initComponent:function(){this.ts=this.container.ownerCt;this.tableinfo=this.container.ownerCt.tableinfo;this.form=new TJ.Admin.StatusPanelForm({title:"Insert "+this.tableinfo.lang.label,iconCls:"icon_table_add",formconfig:this.formconfig});this.bulk=new TJ.Admin.BulkInsert({tableInfo:this.tableinfo});this.items=[this.form,this.bulk];TJ.TableInsertPanel.superclass.initComponent.call(this);this.form.form.on("actioncomplete",function(form,action){console.log("action",form,action);TJ.Admin.TableManager.tableDataChange(this.table,"insert",0);var vals=form.getValues();this.form.form.focusFirst();form.reset();if(form.submitValue!="default")this.submitValue=form.submitValue;if(this.submitValue=="view")this.ts.RecordView({record:{id:action.result.ID,summary:action.result.SUMMARY}});else if(this.submitValue=="browse")this.ts.showBrowse({record:{id:action.result.ID,summary:action.result.SUMMARY}});else if(this.submitValue=="again"){if(vals._status)form.setValues({_status:vals._status});if(vals._parentid)form.setValues({_parentid:vals._parentid})}},this)}});TJ.Admin.BulkInsert=Ext.extend(Ext.grid.GridPanel,{title:"Bulk Insert - BETA",iconCls:"icon_table_lightning",width:800,height:400,colModel:new Ext.grid.ColumnModel({defaults:{width:100}}),renderer:function(v,p,rec,row,col,store){if(rec.data.errors[store.fields.keys[col]]&&rec.data.errors[store.fields.keys[col]].length){console.log("err",store.fields.keys[col],rec.data.errors);p.attr=String.format('title="{0}"',rec.data.errors[store.fields.keys[col]]);p.style=p.style+" background: red; color: white;"}return v},sm:new Ext.grid.RowSelectionModel({singleSelect:true}),initComponent:function(){this.loadBtn=new Ext.Toolbar.Button({text:"Load",handler:this.load,scope:this});this.validateBtn=new Ext.Toolbar.Button({text:"Validate",handler:this.validate,scope:this});this.saveBtn=new Ext.Toolbar.Button({text:"Insert All",handler:this.save,scope:this});this.tbar=[this.loadBtn,this.validateBtn,"->",this.saveBtn];console.log("ti",this.tableInfo);var fields=["info"];if(this.tableInfo)Ext.each(this.tableInfo.columns,function(f){if(this.skip.indexOf(f.dataIndex)>-1)return;fields.push(f.dataIndex)},this);fields.push("errors");this.store=new Ext.data.ArrayStore({reader:new Ext.data.ArrayReader,autoDestroy:true,fields:fields});TJ.Admin.BulkInsert.superclass.initComponent.call(this)},skip:["_id","_createdby","_published","_stream","_secure"],render:function(pos,ct){TJ.Admin.BulkInsert.superclass.render.call(this,pos,ct);this.setup()},tableInfo:null,setup:function(){if(this.tableInfo===null){if(this.tableClass)TJ.CallbackManager.GetTableInfo(this.tableClass,function(info){this.tableInfo=info},this);this.tableInfo=0}if(this.tableInfo===0){this.setup.defer(100,this);return}console.log(this.store);var cols=[{header:"Row Info",width:80,dataIndex:"info"}];var i=0;Ext.each(this.tableInfo.columns,function(f){if(this.skip.indexOf(f.dataIndex)>-1)return;i++;cols.push({header:f.header,dataIndex:f.dataIndex,renderer:this.renderer})},this);this.colModel.setConfig(cols);this.store.removeAll()},getData:function(){var data=[];for(var i=0;i<this.store.getCount();i++){var row={};for(var key in this.colModel.config)if(this.colModel.config[key].dataIndex)row[this.colModel.config[key].dataIndex]=this.store.getAt(i).json[key];data.push(row)}return data},save:function(){var data=this.getData();TJ.CallbackManager.Execute({url:TJ.LANGUAGESS+this.tableInfo.baseurl+":bulkinsert",params:{data:Ext.encode(data)},callback:this.saveCB,scope:this})},saveCB:function(data,res){var rec;for(var i=0;i<data.length;i++){rec=this.store.getAt(i);if(rec)if(data[i].success)rec.set("info","[Saved]");else{rec.set("info","[Invalid]");rec.set("errors",data[i].errors)}this.store.commitChanges()}},validate:function(){var data=this.getData();TJ.CallbackManager.Execute({url:TJ.LANGUAGESS+this.tableInfo.baseurl+":bulkinsertvalidate",params:{data:Ext.encode(data)},callback:this.validateCB,scope:this})},validateCB:function(data,res){var rec;for(var i=0;i<data.length;i++){rec=this.store.getAt(i);if(rec)if(data[i].success)rec.set("info","[Valid]");else{rec.set("info","[Invalid]");rec.set("errors",data[i].errors)}this.store.commitChanges()}},load:function(){Ext.Msg.prompt("Load Data","Enter your bulk records.  This should be a cut and paste from Excel",function(btn,text){if(btn=="ok")this.loadGrid(text)},this,true)},loadGrid:function(text){var rows=text.split("\n");this.store.removeAll();Ext.each(rows,function(row){if(row.trim().length>0)this.store.loadData([Array.concat(["[Load]"],row.split("\t"))],true)},this)}});Ext.namespace("TJ.Admin");TJ.Admin.Viewport=Ext.extend(Ext.Viewport,{layout:"border",username:"Guest",userTextTemplate:"Logged in as <b>{0}</b>",guestTextTemplate:"Not logged in",userInfo:null,disabled:true,loginWindow:null,setUser:function(user){this.setDisabled(false);if(!user.userid)user.userid=0;this.userInfo=user;if(user.userid>0)if(user.username=="system")Ext.fly(this.userText.getEl()).update(String.format(this.userTextTemplate,user.username)+" ExtJS "+Ext.version);else Ext.fly(this.userText.getEl()).update(String.format(this.userTextTemplate,user.username));else Ext.fly(this.userText.getEl()).update(String.format(this.guestTextTemplate));if(user.userid===0){TJ.Admin.MainTreePanel.getRootNode().collapse();if(!this.loginWindow)this.loginWindow=new TJ.Admin.LoginForm({callback:function(action){TJ.Admin.MainWindow.setUser(action.result.userinfo)}});this.loginWindow.show()}else TJ.Admin.MainTreePanel.getRootNode().expand()},render:function(ct,pos){TJ.Admin.Viewport.superclass.render.call(this,ct,pos);TJ.CallbackManager.GetInfo({url:TJ.LANGUAGESS+"user:getinfo",callback:this.setUser,scope:this})},initComponent:function(){this.logoutButton=new Ext.Button({text:"Logout",iconCls:"icon_user_delete",scope:this,handler:function(){TJ.CallbackManager.Execute({url:TJ.LANGUAGESS+"admin:logout",callback:this.setUser,scope:this})}});this.userText=new Ext.Toolbar.TextItem({text:String.format("Loading...")});TJ.Admin.MainTreePanel=new Ext.tree.TreePanel({region:"west",title:"Navigation",split:true,autoScroll:true,width:150,minSize:120,maxSize:400,collapsible:true,tools:[{id:"refresh",handler:function(){TJ.Admin.MainTreePanel.getLoader().load(TJ.Admin.MainTreePanel.getRootNode(),function(node){node.expand()})},scope:this}],loader:new Ext.tree.TreeLoader({dataUrl:"/en/admin:getuiactionchildren",listeners:{beforeload:function(treeLoader,node){treeLoader.dataUrl="/en/"+node.id+":getuiactionchildren"}}}),listeners:{beforeclick:function(node){return!node.disabled},click:function(node){if(!node.disabled)TJ.Admin.LoadMainTabFromNode(node)}},root:new Ext.tree.AsyncTreeNode({text:"Admin Home",id:"admin",cls:"cardenabled",iconCls:"icon_application_home"})});this.items=[new Ext.Toolbar({region:"north",height:24,items:[new TJ.AltiusBtn,"-",new TJ.comp.FontSizeButton,"->",this.userText,"-",this.logoutButton]}),TJ.Admin.statusGrid.init({region:"south",split:true,height:200,minSize:100,maxSize:500,collapsible:true,margins:"0 0 0 0",layout:"fit"}),TJ.Admin.MainTreePanel,{region:"center",layout:"fit",items:TJ.Admin.MainTabPanel=new Ext.TabPanel({enableTabScroll:true,activeTab:0,border:false,items:[{items:new TJ.Admin.HomePanel,id:"admin",layout:"fit",title:"Admin Home",iconCls:"icon_cog",closable:false,autoScroll:true}],listeners:{tabchange:TJ.Admin.MainTabChange,contextmenu:function(tp,tab){TJ.Admin.ClearPanel(tab);tab.getUpdater().refresh()}}})}];TJ.Admin.Viewport.superclass.initComponent.call(this)}});TJ.Admin.Startup=function(username){TJ.Admin.MainWindow=new TJ.Admin.Viewport({})};TJ.Admin.LoginForm=Ext.extend(Ext.Window,{title:"Altius:  Login",modal:true,iconCls:"icon_altius",layout:"fit",height:240,width:600,closeAction:"hide",closable:false,callback:null,form:null,initComponent:function(){this.form=new TJ.Admin.StatusPanelForm({formconfig:{url:"/en/admin:login",items:[{fieldLabel:"Username",name:"username",xtype:"tjtext",desc:"Enter your username.",allowBlank:false,minLength:3,maxLength:48},{fieldLabel:"Password",name:"password",xtype:"tjpassword",desc:"Enter your password.",allowBlank:false},{fieldLabel:"Remember me",name:"persist",xtype:"tjcheckbox",desc:"Allow automatic login from this computer",value:true}],buttons:[{text:"Login",value:"login"}],listeners:{actioncomplete:{scope:this,fn:function(form,action){if(this.callback)this.callback(action);this.hide()}}}}});this.items=this.form;TJ.Admin.LoginForm.superclass.initComponent.call(this);this.on("hide",function(){this.form.form.getForm().reset()},this)}});TJ.Admin.ClientSide=function(){var first=true;var menu=false;var tip=false;var win=false;var loginWindow=false;var AdminWindow=false;return{initPoweredBy:function(id){el=Ext.get(id);el.on("contextmenu",TJ.Admin.ClientSide.poweredContext,this)},poweredContext:function(e,target){e.preventDefault();if(!menu)menu=new Ext.menu.Menu({items:[{text:"Login",iconCls:"icon_user_go",handler:TJ.Admin.ClientSide.loginForm,scope:this}]});menu.show(target)},loginForm:function(){if(!loginWindow)loginWindow=new TJ.Admin.LoginForm({closable:true,callback:function(action){window.location.reload()}});loginWindow.show()},system:function(opts){var menu=new Ext.menu.Menu({items:[{text:"Altius Software",toolTip:"Logout",iconCls:"icon_altius",handler:function(){window.open("http://www.altiussoftware.com","AltiusHome").focus()}},"-",{text:"Site administration",iconCls:"icon_application_lightning",tooltip:"Open main administrative screen in a new window",handler:function(){AdminWindow=window.open(TJ.LANGUAGESS+"admin","AltiusAdmin").focus()},scope:this},{text:"Show content editing icons",iconCls:"icon_cog",enableToggle:true,toolTip:"Toggle display of content editing icons",handler:TJ.Admin.ClientSide.toggle},{text:"Preview Mode",enableToggle:true,toolTip:"Toggle display of non-published content",checked:opts.preview,handler:TJ.Admin.ClientSide.togglePreview},{text:"Layout Mode",enableToggle:true,toolTip:"Display widget layout information",checked:opts.layout,handler:TJ.Admin.ClientSide.toggleLayout},{text:"Clear site cache",iconCls:"icon_page_refresh",toolTip:"Clear site cache",handler:function(){TJ.Admin.ValidateRequest({url:TJ.LANGUAGESS+"admin:ClearMainCache"})}},"-",{text:"Hide",toolTip:"Hide this icon",iconCls:"icon_cross",scope:this,handler:function(){Ext.get("AltiusSystemToolbar").hide()}},{text:"Logout",toolTip:"Logout",iconCls:"icon_user_delete",handler:function(){window.location=TJ.LANGUAGESS+"user/logout"}}]});new Ext.Button({id:"AltiusSystemToolbar",renderTo:Ext.getBody(),menu:menu,text:" ",iconCls:"icon_altius"})},init:function(){el=Ext.get("AltiusComponent");if(el){preview=el.getAttributeNS("","preview");var AltiusButton=new Ext.Toolbar({text:"Tools",iconCls:"icon_cog",renderTo:"AltiusComponent",items:[new TJ.AltiusBtn,"-",new Ext.Button({text:"Admin",iconCls:"icon_application_lightning",toolTip:"Open main administrative screen in a new window",handler:function(){AdminWindow=window.open(TJ.LANGUAGESS+"admin","AltiusAdmin").focus()},scope:this}),"|",new Ext.Button({text:"Show Icons",iconCls:"icon_cog",enableToggle:true,toolTip:"Toggle display of content editing icons",handler:function(){TJ.Admin.ClientSide.toggle()}}),"|",new Ext.Button({text:"Preview",iconCls:"icon_page_white_magnify",enableToggle:true,toolTip:"Toggle display of non-published content",pressed:preview,handler:TJ.Admin.ClientSide.togglePreview}),"|",new Ext.Button({text:"Clear Cache",iconCls:"icon_page_refresh",toolTip:"Reset system cache",handler:function(){TJ.Admin.ValidateRequest({url:TJ.LANGUAGESS+"admin:ClearMainCache"})}}),"|",new Ext.Button({text:"Logout",toolTip:"Logout",iconCls:"icon_user_delete",handler:function(){window.location=TJ.LANGUAGESS+"user/logout"}})]})}},toggleLayout:function(){TJ.CallbackManager.GetInfo({url:TJ.LANGUAGESS+"admin:layoutmode"})},togglePreview:function(){TJ.CallbackManager.GetInfo({url:TJ.LANGUAGESS+"admin:previewmode"})},toggle:function(){spans=Ext.select(".InlineAdmin");for(var span=0;span<spans.elements.length;span++)if(first){el=Ext.get(spans.elements[span]);info=Ext.util.JSON.decode(el.getAttributeNS("","info"));el.info=info;el.toggle();el.on("contextmenu",TJ.Admin.ClientSide.display);el.on("click",TJ.Admin.ClientSide.display)}else{Ext.fly(spans.elements[span]).toggle();if(tip)tip.hide()}first=false},display:function(e,el,c){e.preventDefault();info=Ext.util.JSON.decode(Ext.fly(el).getAttributeNS("","info"));if(!tip)tip=new Ext.Tip({baseCls:"x-panel",draggable:true,closable:true,layout:"fit",title:"Tip here",iconCls:"icon_cog",border:true,items:grid=new Ext.grid.PropertyGrid({height:200,startEditing:Ext.emptyFn}),tools:[{id:"gear",handler:TJ.Admin.ClientSide.handle}],minWidth:200});tip.setTitle(info.title);tip.showBy(el);grid.store.sortInfo=null;grid.getColumnModel().config[0].sortable=false;grid.setSource(null);grid.body.mask();Ext.Ajax.request({url:TJ.LANGUAGESS+"admin/client:getpopupinfo",params:info,callback:function(a,b,c){grid.body.unmask();val=TJ.Admin.ProcessJSONResponse(a,b,c);grid.setSource(val.data);grid.comp=val.comp}})},handle:function(e){if(tip)tip.hide();if(!win){console.log("creating win");win=new Ext.Window({constrainHeader:true,stateful:true,stateId:"TJ_Admin_Client_Popup",maximizable:true,title:tip.title,width:800,height:600,layout:"fit",closeAction:"hide"})}if(grid&&grid.comp){TJ.Admin.ClearPanel(win);win.add(Ext.ComponentMgr.create(grid.comp));win.show()}else Ext.MessageBox.alert("Error","Editor not yet defined")}}}();TJ.FormatContent=function(el){var list=Ext.get(el).select("ul.columns_2 > li.column_0");var next;list.each(function(li){next=li.next();if(next)if(li.getHeight()>next.getHeight())next.setHeight(li.getHeight());else if(next.getHeight()>li.getHeight())li.setHeight(next.getHeight())},this)};TJ.Init=function(){TJ.FormatContent("body");var cmsinfo=Ext.select("div.cmsinfo");cmsinfo.on("click",function(e,d){Ext.fly(d).slideOut("t",{useDisplay:true})});var previews=Ext.select("a[AltiusRecordPreview]");previews.on("click",function(e,a){var att=Ext.fly(a).getAttribute("AltiusRecordPreview");e.preventDefault();var preview=Ext.get("ContentPreview");if(preview&&att)preview.getUpdater().update({url:TJ.LANGUAGESS+"_content:getpreview?rec="+att})})};TJ.SubmitForm=function(e){if(Ext.get(e).parent("form"))Ext.get(e).parent("form").dom.submit();return false};TJ.DumpBoxModel=function(el){el=Ext.get(el);var output;output=String.format("Div: {0}",el.id);console.log(" ");console.log("Box Model for:",output,el.dom);var functions=["getWidth","getMargins","getBorderWidth","getPadding"];Ext.each(functions,function(f){console.log(String.format("{0}: ",f),el[f].call(el,"lr"))});el.highlight();if(el.hasClass("pm_row")){TJ.FixColumnWidths(el);TJ.FixColumnHeights(el)}};TJ.FixColumnWidths=function(row,even){row.setWidth(String.format("{0}px",row.getWidth(1)));var rowInnerWidth;rowInnerWidth=row.getWidth(1);cols=row.select("> .pm_column");lastCol=null;colWidth=0;cols.each(function(c){c.setWidth(String.format("{0}px",c.getWidth(1)));colWidth+=c.getWidth()+c.getMargins("lr");lastCol=c});var delta=rowInnerWidth-colWidth;var cms;if(even)if(delta!==0)if(cols.getCount()>0){var each=Math.floor(delta/cols.getCount());cols.each(function(c){var from=c.getWidth(1);c.setWidth(String.format("{0}px",c.getWidth(1)+each));cms=c.select("div.cmsinfo span.AltiusAdjustWidth");if(cms)cms.update(from+"->"+c.getWidth()+"px");delta-=each})}if(Ext.isIE)delta=delta-1;if(delta!==0)if(lastCol){var from=lastCol.getWidth(1);lastCol.setWidth(String.format("{0}px",lastCol.getWidth(1)+delta));cms=lastCol.select("div.cmsinfo span.AltiusAdjustWidth");if(cms)cms.update(from+"->"+lastCol.getWidth()+"px")}};TJ.FixColumnHeights=function(row){var clean=row.select(".AltiusHeightAdjust");clean.removeClass("AltiusHeightAdjust");clean.setStyle("min-height","");var cols=row.select("> div.pm_column");cols.each(function(e){var diff=e.parent().getHeight(1)-(e.getHeight()+e.getMargins("tb"));var cmsinfo=e.parent().select(" > div.cmsinfo").first();if(cmsinfo)diff-=cmsinfo.getHeight();if(diff>0){e.setStyle("min-height",String.format("{0}px",e.getHeight(1)+diff));e.addClass("AltiusHeightAdjust");var go=true;try{while(go&&(e=e.child("> :last-child")))if(e&&e.getStyle("display")=="block"&&!e.hasClass("noexpand")&&(e.is("div")||e.is("ul"))){e.setStyle("min-height",String.format("{0}px",e.getHeight(1)+diff));e.addClass("AltiusHeightAdjust")}else go=false}catch(ex){}}})};TJ.ExpandColumns=function(opts){opts=opts||{widths:true,heights:true};var rows=Ext.select("div.pm_row");var cols;cols=Ext.select(" .pm_column.expandheight-child");cols.each(function(e){e.parent().addClass("expandheight")});rows.each(function(r){if(opts.widths){if(r.hasClass("expandwidth_last"))TJ.FixColumnWidths(r,false);if(r.hasClass("expandwidth_even"))TJ.FixColumnWidths(r,true)}if(opts.heights)if(r.hasClass("expandheight"))TJ.FixColumnHeights(r)})};TJ.InitTabs=function(){var tabSets=Ext.select("div.tabSetLive");tabSets.each(function(ts,e,index){new Altius.Tabset({renderTo:Ext.id(ts)})});TJ.InitTabs=Ext.emptyFn};TJ.SearchForm=function(){var items=Ext.select(".checkboxList label");var cb;items.each(function(l){if(l&&l.dom&&l.dom.htmlFor){cb=Ext.get(l.dom.htmlFor);if(cb){if(cb.dom.checked)l.addClass("selected");else l.removeClass("selected");cb.labelId=Ext.id(l);cb.on("click",function(e,cb){Ext.fly(this.labelId).toggleClass("selected")},cb)}}});items=Ext.select("a.showhide");items.each(function(l){div=Ext.get(l.getAttributeNS("","ref"));if(div)if(l.hasClass("closed"))Ext.emptyFn();l.on("click",function(e){e.preventDefault();div=Ext.get(this.getAttributeNS("","ref"));if(div){if(l.hasClass("closed")){l.dom.innerHTML="&#x25b4;";div.slideIn("t",{useDisplay:true})}else{l.dom.innerHTML="&#x25be;";div.slideOut("t",{useDisplay:true})}l.toggleClass("closed")}},l)})};TJ.TextSize=function(){var sizes=[77,85,93,100,108,116,123.1];var index=3;var larger;var smaller;var getRule;var cookie="textSize2";var setSize=function(){index=index%sizes.length;Ext.util.CSS.updateRule(".textSizeBase","font-size",String.format("{0}%",sizes[index]));Ext.util.Cookies.set(cookie,index)};return{Init:function(){Ext.util.CSS.createStyleSheet(" .textSizeBase { font-size: 100%; } ","textSizeBase");index=Ext.util.Cookies.get(cookie)||index;setSize();larger=Ext.get("textLarger");if(larger)larger.on("click",function(e,i){index=Math.min(index+1,sizes.length-1);setSize()});smaller=Ext.get("textSmaller");if(smaller)smaller.on("click",function(e,i){index=Math.max(index-1,0);setSize()})}}}();TJ.ShowHide=function(){var items;items=Ext.select(".ShowSiblingsAndHide");items.on("click",function(e,i){e.preventDefault();var target=Ext.get(i);target.hide();while(target=target.prev())target.show(1)})};TJ.CSS3=function(){TJ.TextSize.Init();TJ.ShowHide();TJ.SearchForm();var items=Ext.select("ol,ul,tbody,div.pm_row,table");items.each(function(el){if(true||Ext.isIE6){child=el.first();if(child)child.addClass("first-child")}if(true||Ext.isIE6||Ext.isIE7||Ext.isIE8||Ext.isIE){child=el.last();if(child)child.addClass("last-child");evens=el.select(":nth-child(even)");evens.each(function(e){e.addClass("even")})}})};TJ.Menus=function(){items=Ext.select("ul.menu.horizontal li.parent, ul.menu.vertical li.parent");var width=0;items.each(function(li){li.select("> ul").each(function(ul){if(li.parent().hasClass("horizontal"))width=li.getWidth()-li.getMargins("lr");else{width=0;ul.setStyle("left",li.getWidth()+"px")}lis=ul.select("> li");lis.each(function(li){if(li.getWidth()+li.getBorderWidth("lr")>width)width=li.getWidth()+li.getBorderWidth("lr")});ul.setWidth(width+ul.getBorderWidth("lr"));ul.setStyle("visibility","hidden");lis.each(function(li){li.setWidth(width)});var menu=1;var effect=1;var delay=200;if(menu==1){li.on("mouseenter",function(e,t){ul.disp=1},this);li.on("mouseleave",function(e,t){ul.disp=0},this);li.on("mouseenter",function(e,t){if(ul.disp<1)return;ul.stopFx();if(ul.getStyle("visibility")=="visible")return;if(ul.getX()+ul.getWidth()>Ext.lib.Dom.getViewWidth())ul.setX(ul.getX()-(ul.getX()+ul.getWidth()-Ext.lib.Dom.getViewWidth()));if(effect==1)ul.fadeIn({duration:.4});else ul.slideIn("t",{duration:.4})},this,{delay:delay});li.on("mouseleave",function(e,t){if(ul.disp>0)return;ul.stopFx();if(ul.getStyle("visibility")=="hidden")return;if(effect==1)ul.fadeOut({duration:.4});else ul.slideOut("t",{duration:.4})},this,{delay:delay})}else if(menu==2){li.on("mouseover",function(){alert("here");if(!ul.disp){ul.stopFx();if(ul.getX()+ul.getWidth()>Ext.lib.Dom.getViewWidth())ul.setX(ul.getX()-(ul.getX()+ul.getWidth()-Ext.lib.Dom.getViewWidth()));ul.fadeIn({duration:.4})}ul.disp=2},this,{delay:0});li.on("mouseout",function(){ul.disp=1});li.on("mouseout",function(){if(ul.disp==1){ul.stopFx();ul.fadeOut({duration:.4});ul.disp=0}},this,{buffer:50})}})});items=Ext.select("img.YouTubePreview");items.each(function(el){var src=el.getAttributeNS("","src");el.src1=src;el.set({src1:src,src2:src.replace("1.jpg","2.jpg"),src3:src.replace("1.jpg","3.jpg")});el.on("mouseover",function(e,t,o){var task={run:function(){var src=t.getAttributeNS("","src");switch(src){case t.getAttributeNS("","src1"):t.src=t.getAttributeNS("","src2");break;case t.getAttributeNS("","src2"):t.src=t.getAttributeNS("","src3");break;default:t.src=t.getAttributeNS("","src1");break}},interval:1e3};Ext.TaskMgr.start(task)},this,{single:true})})};TJ.AutoCaption=function(){items=Ext.select("img.autocaption");var setPosition=function(caption){console.log("setpos",caption,caption.parent(),caption.parent().next());var wrap=caption.parent();var el=wrap.next();wrap.setWidth(el.getWidth()-el.getPadding("lr")-el.getBorderWidth("lr"));wrap.setX(el.getX()+el.getBorderWidth("l")+el.getPadding("l"));wrap.setY(el.getY()+el.getBorderWidth("t")+el.getPadding("t"));wrap.setHeight(el.getHeight()-el.getPadding("tb")-el.getBorderWidth("tb"));console.log("widths",el.getWidth(),wrap.getWidth())};items.each(function(el){caption=el.getAttributeNS("","caption");credit=el.getAttributeNS("","credit");text="";if(caption)text+='<span class="caption">'+caption+"</span>";if(credit)text+='<span class="credit">'+credit+"</span>";if(text){var div=Ext.get(Ext.DomHelper.insertBefore(el,{cls:"ImageCaptionWrap",tag:"div"}));var captionEl=Ext.get(Ext.DomHelper.append(div,{cls:"ImageCaption",tag:"div",html:text}));setPosition(captionEl);captionEl.display=0;div.on("mouseover",function(e,t,o){console.log("options",o,t);setPosition(o.caption);if(!o.caption.display)o.caption.stopFx().slideIn("b");o.caption.display=2},div,{caption:captionEl});captionEl.on("mouseover",function(e,t,o){if(!o.caption.display)o.caption.stopFx().slideIn("b");o.caption.display=2},div,{caption:captionEl});captionEl.on("mouseout",function(e,t,o){o.caption.display=1},div,{caption:captionEl});div.on("mouseout",function(e,t,o){o.caption.display=1},div,{caption:captionEl});div.on("mouseout",function(e,t,o){if(o.caption.display<2){o.caption.stopFx().slideOut("b");o.caption.display=0}},div,{caption:captionEl,buffer:500});captionEl.on("mouseout",function(e,t,o){if(o.caption.display<2){o.caption.stopFx().slideOut("b");o.caption.display=0}},div,{caption:captionEl,buffer:500})}})};Ext.namespace("TJ.Twitter");TJ.Twitter.FeedPreview=Ext.extend(Ext.Component,{refreshInterval:5e3,initComponent:function(){TJ.Twitter.FeedPreview.superclass.initComponent.call(this);return},onRender:function(){TJ.Twitter.FeedPreview.superclass.onRender.apply(this,arguments);console.log("TJ.Twitter.Feedpreview",this,this.container,this.getEl());this.list=this.container.createChild({cls:"content",tag:"ol"});if(this.data)this.doPaint(this.data);this.task={run:function(){},scope:this,interval:2e4}},doPaint:function(data){for(var i=0;i<data.length;i++){var li=this.list.createChild({tag:"li"});li.createChild({tag:"p",style:"word-wrap:break-word;"}).update(data[i].text.parseURL().parseUsername().parseHashtag());li.createChild({tag:"p",style:"word-wrap:break-word;",cls:"byline",title:data[i].created_at}).update(TJ.RelativeDate(data[i].created_at))}},TwitterCallback:function(obj){console.log("Update Twitter",obj,this)}});TJ.LoadScript=function(url){var script=document.createElement("script");script.type="text/javascript";if(script.readyState)script.onreadystatechange=function(){if(script.readyState=="loaded"||script.readyState=="complete")script.onreadystatechange=null};else script.onload=function(){};script.src=url;document.getElementsByTagName("head")[0].appendChild(script)};String.prototype.parseURL=function(){return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/g,function(url){return String.format('<a target="_blank" href="{0}">{0}</a>',url)})};String.prototype.parseUsername=function(){return this.replace(/[@]+[A-Za-z0-9-_]+/g,function(u){var username=u.replace("@","");return String.format('<a target="_blank" href="{0}">{1}</a>',"http://twitter.com/"+username,u)})};String.prototype.parseHashtag=function(){return this.replace(/[#]+[A-Za-z0-9-_]+/g,function(t){var tag=t.replace("#","%23");return String.format('<a target="_blank" href="{0}">{1}</a>',"http://search.twitter.com/search?q="+tag,t)})};Ext.History.init();Ext.History.RegisterComponent=function(id){Ext.History.map=Ext.History.map||{};var x="";while(Ext.History.map[id+x])x++;Ext.History.map[id+x]=1;return id+x};Ext.History.AltiusAdd=function(comp,hash){if(comp.length===0)Ext.History.add(hash);else Ext.History.add(comp+":"+hash)};var today=(new Date).clearTime();TJ.Calendar=Ext.extend(Ext.ensible.cal.CalendarPanel,{height:540,showDayView:false,showMultiWeekView:false,showWeekView:false,monthViewCfg:{enableDD:false,enableContextMenus:false,listeners:{dayClick:{fn:function(){return false}}}},initComponent:function(){this.calendarStore=new Ext.data.JsonStore({id:"CalendarId",root:"rows",autoLoad:true,fields:[{name:"CalendarId",type:"int"},{name:"Title",type:"text"},{name:"ColorId",type:"int"}],url:TJ.LANGUAGESS+"calendar:getcalendars"});this.eventStore=new Ext.data.JsonStore({id:"EventId",root:"rows",autoLoad:true,fields:[{name:"CalendarId",type:"int"},{name:"EventId",type:"text"},{name:"StartDate",type:"date",dateFormat:"U"},{name:"EndDate",type:"date",dateFormat:"U"},{name:"Title",type:"text"},{name:"Notes",type:"text"},{name:"IsAllDay",type:"boolean"},{name:"url",type:"text"}],url:TJ.LANGUAGESS+"calendar:getevents"});this.on("eventclick",this.click,this);TJ.Calendar.superclass.initComponent.call(this)},openOnClick:false,click:function(cal,rec,el){if(this.openOnClick){window.location=rec.data.url;return false}var preview=Ext.get("ContentPreview");var tpl='<h2 class="articleTitle"><a href="{0}" title="{1}">{1}</a></h2>{2} - {3}';if(preview)preview.getUpdater().update({url:TJ.LANGUAGESS+"_content:getpreview?rec="+rec.data.EventId});return false}});TJ.FacebookUpdate=function(href,widget){console.log(href,widget);Ext.Ajax.request({url:href.href||href,params:{facebookupdate:1,href:href.href||href}})};FB.Event.subscribe("edge.create",TJ.FacebookUpdate);FB.Event.subscribe("edge.remove",TJ.FacebookUpdate);FB.Event.subscribe("comment.create",TJ.FacebookUpdate);FB.Event.subscribe("comment.remove",TJ.FacebookUpdate);Ext.namespace("Altius");Altius.Tabset=Ext.extend(Ext.Component,{activeTab:0,initialTab:null,tabs:[],bodies:[],names:[],historyToken:null,history:false,initComponent:function(){var name=Ext.fly(this.renderTo).getAttribute("name")||"";this.history=Ext.fly(this.renderTo).getAttribute("history");console.log("hist",this.history);if(this.history)this.historyToken=Ext.History.RegisterComponent(name);Altius.Tabset.superclass.initComponent.call(this)},render:function(ts){this.el=ts=Ext.get(ts);var active=null;this.tabs=ts.select("> ul > li",true);this.bodies=ts.select("> div.tabContent",true);if(this.tabs.getCount()==this.bodies.getCount())this.tabs.each(function(tab,c,index){console.log("tab",tab,c,index);var name=tab.getAttributeNS("","name")||index;console.log(name);if(active===null||tab.hasClass("tabActive"))active=tab;tab.body=this.bodies.item(index);tab.name=name;tab.on("click",this.tabClick,this,tab);if("#"+name==window.location.hash)active=tab},this);if(active!==null)this.setActive.defer(1,this,[active]);if(this.history){Ext.History.on("change",this.historyChange,this);this.historyChange(Ext.History.getToken())}},tabClick:function(e,el,tab){this.setActive(tab,true)},setActiveByName:function(name,hist){this.tabs.each(function(tab,c,index){if(tab.name==name){this.setActive(tab,hist);return false}},this)},setActive:function(tab,hist){console.log("setactive",tab);if(tab){if(this.initialTab===null)this.initialTab=tab;tab.radioClass("tabActive");tab.body.radioClass("tabActive");if(this.activeTab!=tab){TJ.ExpandColumns({heights:true});TJ.FormatContent(tab.body);this.activeTab=tab;if(hist&&this.history){console.log(hist,this.history,"history.add");Ext.History.AltiusAdd(this.historyToken,tab.name)}}}},historyChange:function(token){console.log("history",token,this);if(token===null){console.log("init",this.initialTab);this.setActive(this.initialTab);return}var parts=token.split(":");if(parts.length==1)parts.unshift("");if(this.historyToken==parts[0])this.setActiveByName(parts[1])}});TJ.Twitter.FeedPreviewer=Ext.extend(Ext.Component,{refreshInterval:5e3,initComponent:function(){TJ.Twitter.FeedPreview.superclass.initComponent.call(this);return},onRender:function(){TJ.Twitter.FeedPreview.superclass.onRender.apply(this,arguments);console.log("TJ.Twitter.Feedpreview",this,this.container,this.getEl());this.list=this.container.createChild({cls:"content",tag:"ol"});if(this.data)this.doPaint(this.data);this.task={run:function(){},scope:this,interval:2e4}},doPaint:function(data){for(var i=0;i<data.length;i++){var li=this.list.createChild({tag:"li"});li.createChild({tag:"p",style:"word-wrap:break-word;"}).update(data[i].text.parseURL().parseUsername().parseHashtag());li.createChild({tag:"p",style:"word-wrap:break-word;",cls:"byline",title:data[i].created_at}).update(TJ.RelativeDate(data[i].created_at))}},TwitterCallback:function(obj){console.log("Update Twitter",obj,this)}});Ext.namespace("Altius.Comments");Altius.Comments.Init=function(){items=Ext.select("#articleComments");items.each(function(div){new Altius.Comments.Component({renderTo:Ext.id(div)})})};Altius.Comments.Component=Ext.extend(Ext.Component,{onRender:function(){this.table=this.container.getAttributeNS("","altiustable");this.record=this.container.getAttributeNS("","altiusrecord");console.log("new init",this.table,this.record);var dh=Ext.DomHelper;this.header=this.container.first(".commentsHeader");if(this.header===null)this.header=dh.append(this.container,{cls:"commentsHeader"});this.descLink=Ext.get("commentsSortDesc");this.ascLink=Ext.get("commentsSortAsc");this.descLink.on("click",this.doSort,this);this.ascLink.on("click",this.doSort,this);this.listing=this.container.first(".commentListing");if(this.listing===null){this.listing=dh.append(this.container,{cls:"commentListing"});this.getComments()}this.formPanel=this.container.first(".commentForm");if(this.formPanel===null){this.formPanel=dh.append(this.container,{cls:"commentForm"});this.getForm()}},getForm:function(){TJ.CallbackManager.Direct({cls:"Comments",method:"GetCommentForm",params:{recordid:this.record,table:this.table},callback:this.getFormCallback,scope:this})},getFormCallback:function(val,res,opt){if(!val)return;this.form=new TJ.Admin.Form({title:val.title,autoScroll:true,labelWidth:150,focus:false,baseParams:{table:this.table,record:this.record},defaults:{anchor:"-20",selectOnFocus:true,msgTarget:"side"},url:TJ.LANGUAGESS+"_comments:submit",buttons:val.buttons,items:val.items,renderTo:this.formPanel,callback:this.submitSuccess,scope:this});TJ.ExpandColumns({heights:true})},doSort:function(e,el){e.preventDefault();Ext.fly(el).radioClass("active");this.getComments()},getComments:function(params){TJ.CallbackManager.Direct({cls:"Comments",method:"GetComments",params:{recordid:this.record,table:this.table,highlight:params&&params.highlight,sort:this.ascLink.hasClass("active")?"asc":"desc"},updateEl:this.listing,callback:this.getCommentsCallback,scope:this})},getCommentsCallback:function(val,res,opt){TJ.ExpandColumns({heights:true});if(opt.params.highlight){var el=Ext.get("comment-"+opt.params.highlight);if(el)el.highlight()}var mods=Ext.fly(this.listing).select(".commentModerate");mods.on("click",this.moderate,this)},moderate:function(e,el){e.preventDefault();rec=Ext.get(el).findParent(".commentRecord",10,true);TJ.CallbackManager.Direct({cls:"Comments",method:"Moderate",params:{commentid:Ext.fly(rec).getAttributeNS("","altiuscommentid"),status:el.getAttribute("class")},callback:this.moderateCallback,scope:this,record:rec})},moderateCallback:function(val,res,opt){if(val.status){opt.record.removeClass("status_hidden");opt.record.removeClass("status_live");opt.record.removeClass("status_censored");opt.record.removeClass("status_pending");opt.record.addClass("status_"+val.status);if(val.count)Ext.get("commentCount").update(String.format("Live {0}, Pending {1}, Other {2}",val.count.comments_live+"",val.count.comments_pending+"",val.count.comments_other+"")).stopFx().highlight()}},submitSuccess:function(val,action){this.form.form.reset();this.getComments({highlight:val.data})}});
/*!	SWFObject v2.2 <http://code.google.com/p/swfobject/> 
	is released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 
*/
var swfobject=function(){var UNDEF="undefined",OBJECT="object",SHOCKWAVE_FLASH="Shockwave Flash",SHOCKWAVE_FLASH_AX="ShockwaveFlash.ShockwaveFlash",FLASH_MIME_TYPE="application/x-shockwave-flash",EXPRESS_INSTALL_ID="SWFObjectExprInst",ON_READY_STATE_CHANGE="onreadystatechange",win=window,doc=document,nav=navigator,plugin=false,domLoadFnArr=[main],regObjArr=[],objIdArr=[],listenersArr=[],storedAltContent,storedAltContentId,storedCallbackFn,storedCallbackObj,isDomLoaded=false,isExpressInstallActive=false,dynamicStylesheet,dynamicStylesheetMedia,autoHideShow=true,ua=function(){var w3cdom=typeof doc.getElementById!=UNDEF&&typeof doc.getElementsByTagName!=UNDEF&&typeof doc.createElement!=UNDEF,u=nav.userAgent.toLowerCase(),p=nav.platform.toLowerCase(),windows=p?/win/.test(p):/win/.test(u),mac=p?/mac/.test(p):/mac/.test(u),webkit=/webkit/.test(u)?parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,ie=!+"\v1",playerVersion=[0,0,0],d=null;if(typeof nav.plugins!=UNDEF&&typeof nav.plugins[SHOCKWAVE_FLASH]==OBJECT){d=nav.plugins[SHOCKWAVE_FLASH].description;if(d&&!(typeof nav.mimeTypes!=UNDEF&&nav.mimeTypes[FLASH_MIME_TYPE]&&!nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)){plugin=true;ie=false;d=d.replace(/^.*\s+(\S+\s+\S+$)/,"$1");playerVersion[0]=parseInt(d.replace(/^(.*)\..*$/,"$1"),10);playerVersion[1]=parseInt(d.replace(/^.*\.(.*)\s.*$/,"$1"),10);playerVersion[2]=/[a-zA-Z]/.test(d)?parseInt(d.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else if(typeof win.ActiveXObject!=UNDEF)try{var a=new ActiveXObject(SHOCKWAVE_FLASH_AX);if(a){d=a.GetVariable("$version");if(d){ie=true;d=d.split(" ")[1].split(",");playerVersion=[parseInt(d[0],10),parseInt(d[1],10),parseInt(d[2],10)]}}}catch(e){}return{w3:w3cdom,pv:playerVersion,wk:webkit,ie:ie,win:windows,mac:mac}}(),onDomLoad=function(){if(!ua.w3)return;if(typeof doc.readyState!=UNDEF&&doc.readyState=="complete"||typeof doc.readyState==UNDEF&&(doc.getElementsByTagName("body")[0]||doc.body))callDomLoadFunctions();if(!isDomLoaded){if(typeof doc.addEventListener!=UNDEF)doc.addEventListener("DOMContentLoaded",callDomLoadFunctions,false);if(ua.ie&&ua.win){doc.attachEvent(ON_READY_STATE_CHANGE,function(){if(doc.readyState=="complete"){doc.detachEvent(ON_READY_STATE_CHANGE,arguments.callee);callDomLoadFunctions()}});if(win==top)(function(){if(isDomLoaded)return;try{doc.documentElement.doScroll("left")}catch(e){setTimeout(arguments.callee,0);return}callDomLoadFunctions()})()}if(ua.wk)(function(){if(isDomLoaded)return;if(!/loaded|complete/.test(doc.readyState)){setTimeout(arguments.callee,0);return}callDomLoadFunctions()})();addLoadEvent(callDomLoadFunctions)}}();function callDomLoadFunctions(){if(isDomLoaded)return;try{var t=doc.getElementsByTagName("body")[0].appendChild(createElement("span"));t.parentNode.removeChild(t)}catch(e){return}isDomLoaded=true;var dl=domLoadFnArr.length;for(var i=0;i<dl;i++)domLoadFnArr[i]()}function addDomLoadEvent(fn){if(isDomLoaded)fn();else domLoadFnArr[domLoadFnArr.length]=fn}function addLoadEvent(fn){if(typeof win.addEventListener!=UNDEF)win.addEventListener("load",fn,false);else if(typeof doc.addEventListener!=UNDEF)doc.addEventListener("load",fn,false);else if(typeof win.attachEvent!=UNDEF)addListener(win,"onload",fn);else if(typeof win.onload=="function"){var fnOld=win.onload;win.onload=function(){fnOld();fn()}}else win.onload=fn}function main(){if(plugin)testPlayerVersion();else matchVersions()}function testPlayerVersion(){var b=doc.getElementsByTagName("body")[0];var o=createElement(OBJECT);o.setAttribute("type",FLASH_MIME_TYPE);var t=b.appendChild(o);if(t){var counter=0;(function(){if(typeof t.GetVariable!=UNDEF){var d=t.GetVariable("$version");if(d){d=d.split(" ")[1].split(",");ua.pv=[parseInt(d[0],10),parseInt(d[1],10),parseInt(d[2],10)]}}else if(counter<10){counter++;setTimeout(arguments.callee,10);return}b.removeChild(o);t=null;matchVersions()})()}else matchVersions()}function matchVersions(){var rl=regObjArr.length;if(rl>0)for(var i=0;i<rl;i++){var id=regObjArr[i].id;var cb=regObjArr[i].callbackFn;var cbObj={success:false,id:id};if(ua.pv[0]>0){var obj=getElementById(id);if(obj)if(hasPlayerVersion(regObjArr[i].swfVersion)&&!(ua.wk&&ua.wk<312)){setVisibility(id,true);if(cb){cbObj.success=true;cbObj.ref=getObjectById(id);cb(cbObj)}}else if(regObjArr[i].expressInstall&&canExpressInstall()){var att={};att.data=regObjArr[i].expressInstall;att.width=obj.getAttribute("width")||"0";att.height=obj.getAttribute("height")||"0";if(obj.getAttribute("class"))att.styleclass=obj.getAttribute("class");if(obj.getAttribute("align"))att.align=obj.getAttribute("align");var par={};var p=obj.getElementsByTagName("param");var pl=p.length;for(var j=0;j<pl;j++)if(p[j].getAttribute("name").toLowerCase()!="movie")par[p[j].getAttribute("name")]=p[j].getAttribute("value");showExpressInstall(att,par,id,cb)}else{displayAltContent(obj);if(cb)cb(cbObj)}}else{setVisibility(id,true);if(cb){var o=getObjectById(id);if(o&&typeof o.SetVariable!=UNDEF){cbObj.success=true;cbObj.ref=o}cb(cbObj)}}}}function getObjectById(objectIdStr){var r=null;var o=getElementById(objectIdStr);if(o&&o.nodeName=="OBJECT")if(typeof o.SetVariable!=UNDEF)r=o;else{var n=o.getElementsByTagName(OBJECT)[0];if(n)r=n}return r}function canExpressInstall(){return!isExpressInstallActive&&hasPlayerVersion("6.0.65")&&(ua.win||ua.mac)&&!(ua.wk&&ua.wk<312)}function showExpressInstall(att,par,replaceElemIdStr,callbackFn){isExpressInstallActive=true;storedCallbackFn=callbackFn||null;storedCallbackObj={success:false,id:replaceElemIdStr};var obj=getElementById(replaceElemIdStr);if(obj){if(obj.nodeName=="OBJECT"){storedAltContent=abstractAltContent(obj);storedAltContentId=null}else{storedAltContent=obj;storedAltContentId=replaceElemIdStr}att.id=EXPRESS_INSTALL_ID;if(typeof att.width==UNDEF||!/%$/.test(att.width)&&parseInt(att.width,10)<310)att.width="310";if(typeof att.height==UNDEF||!/%$/.test(att.height)&&parseInt(att.height,10)<137)att.height="137";doc.title=doc.title.slice(0,47)+" - Flash Player Installation";var pt=ua.ie&&ua.win?"ActiveX":"PlugIn",fv="MMredirectURL="+win.location.toString().replace(/&/g,"%26")+"&MMplayerType="+pt+"&MMdoctitle="+doc.title;if(typeof par.flashvars!=UNDEF)par.flashvars+="&"+fv;else par.flashvars=fv;if(ua.ie&&ua.win&&obj.readyState!=4){var newObj=createElement("div");replaceElemIdStr+="SWFObjectNew";newObj.setAttribute("id",replaceElemIdStr);obj.parentNode.insertBefore(newObj,obj);obj.style.display="none";(function(){if(obj.readyState==4)obj.parentNode.removeChild(obj);else setTimeout(arguments.callee,10)})()}createSWF(att,par,replaceElemIdStr)}}function displayAltContent(obj){if(ua.ie&&ua.win&&obj.readyState!=4){var el=createElement("div");obj.parentNode.insertBefore(el,obj);el.parentNode.replaceChild(abstractAltContent(obj),el);obj.style.display="none";(function(){if(obj.readyState==4)obj.parentNode.removeChild(obj);else setTimeout(arguments.callee,10)})()}else obj.parentNode.replaceChild(abstractAltContent(obj),obj)}function abstractAltContent(obj){var ac=createElement("div");if(ua.win&&ua.ie)ac.innerHTML=obj.innerHTML;else{var nestedObj=obj.getElementsByTagName(OBJECT)[0];if(nestedObj){var c=nestedObj.childNodes;if(c){var cl=c.length;for(var i=0;i<cl;i++)if(!(c[i].nodeType==1&&c[i].nodeName=="PARAM")&&!(c[i].nodeType==8))ac.appendChild(c[i].cloneNode(true))}}}return ac}function createSWF(attObj,parObj,id){var r,el=getElementById(id);if(ua.wk&&ua.wk<312)return r;if(el){if(typeof attObj.id==UNDEF)attObj.id=id;if(ua.ie&&ua.win){var att="";for(var i in attObj)if(attObj[i]!=Object.prototype[i])if(i.toLowerCase()=="data")parObj.movie=attObj[i];else if(i.toLowerCase()=="styleclass")att+=' class="'+attObj[i]+'"';else if(i.toLowerCase()!="classid")att+=" "+i+'="'+attObj[i]+'"';var par="";for(var j in parObj)if(parObj[j]!=Object.prototype[j])par+='<param name="'+j+'" value="'+parObj[j]+'" />';el.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+att+">"+par+"</object>";objIdArr[objIdArr.length]=attObj.id;r=getElementById(attObj.id)}else{var o=createElement(OBJECT);o.setAttribute("type",FLASH_MIME_TYPE);for(var m in attObj)if(attObj[m]!=Object.prototype[m])if(m.toLowerCase()=="styleclass")o.setAttribute("class",attObj[m]);else if(m.toLowerCase()!="classid")o.setAttribute(m,attObj[m]);for(var n in parObj)if(parObj[n]!=Object.prototype[n]&&n.toLowerCase()!="movie")createObjParam(o,n,parObj[n]);el.parentNode.replaceChild(o,el);r=o}}return r}function createObjParam(el,pName,pValue){var p=createElement("param");p.setAttribute("name",pName);p.setAttribute("value",pValue);el.appendChild(p)}function removeSWF(id){var obj=getElementById(id);if(obj&&obj.nodeName=="OBJECT")if(ua.ie&&ua.win){obj.style.display="none";(function(){if(obj.readyState==4)removeObjectInIE(id);else setTimeout(arguments.callee,10)})()}else obj.parentNode.removeChild(obj)}function removeObjectInIE(id){var obj=getElementById(id);if(obj){for(var i in obj)if(typeof obj[i]=="function")obj[i]=null;obj.parentNode.removeChild(obj)}}function getElementById(id){var el=null;try{el=doc.getElementById(id)}catch(e){}return el}function createElement(el){return doc.createElement(el)}function addListener(target,eventType,fn){target.attachEvent(eventType,fn);listenersArr[listenersArr.length]=[target,eventType,fn]}function hasPlayerVersion(rv){var pv=ua.pv,v=rv.split(".");v[0]=parseInt(v[0],10);v[1]=parseInt(v[1],10)||0;v[2]=parseInt(v[2],10)||0;return pv[0]>v[0]||pv[0]==v[0]&&pv[1]>v[1]||pv[0]==v[0]&&pv[1]==v[1]&&pv[2]>=v[2]?true:false}function createCSS(sel,decl,media,newStyle){if(ua.ie&&ua.mac)return;var h=doc.getElementsByTagName("head")[0];if(!h)return;var m=media&&typeof media=="string"?media:"screen";if(newStyle){dynamicStylesheet=null;dynamicStylesheetMedia=null}if(!dynamicStylesheet||dynamicStylesheetMedia!=m){var s=createElement("style");s.setAttribute("type","text/css");s.setAttribute("media",m);dynamicStylesheet=h.appendChild(s);if(ua.ie&&ua.win&&typeof doc.styleSheets!=UNDEF&&doc.styleSheets.length>0)dynamicStylesheet=doc.styleSheets[doc.styleSheets.length-1];dynamicStylesheetMedia=m}if(ua.ie&&ua.win){if(dynamicStylesheet&&typeof dynamicStylesheet.addRule==OBJECT)dynamicStylesheet.addRule(sel,decl)}else if(dynamicStylesheet&&typeof doc.createTextNode!=UNDEF)dynamicStylesheet.appendChild(doc.createTextNode(sel+" {"+decl+"}"))}function setVisibility(id,isVisible){if(!autoHideShow)return;var v=isVisible?"visible":"hidden";if(isDomLoaded&&getElementById(id))getElementById(id).style.visibility=v;else createCSS("#"+id,"visibility:"+v)}function urlEncodeIfNecessary(s){var regex=/[\\\"<>\.;]/;var hasBadChars=regex.exec(s)!=null;return hasBadChars&&typeof encodeURIComponent!=UNDEF?encodeURIComponent(s):s}var cleanup=function(){if(ua.ie&&ua.win)window.attachEvent("onunload",function(){var ll=listenersArr.length;for(var i=0;i<ll;i++)listenersArr[i][0].detachEvent(listenersArr[i][1],listenersArr[i][2]);var il=objIdArr.length;for(var j=0;j<il;j++)removeSWF(objIdArr[j]);for(var k in ua)ua[k]=null;ua=null;for(var l in swfobject)swfobject[l]=null;swfobject=null})}();return{registerObject:function(objectIdStr,swfVersionStr,xiSwfUrlStr,callbackFn){if(ua.w3&&objectIdStr&&swfVersionStr){var regObj={};regObj.id=objectIdStr;regObj.swfVersion=swfVersionStr;regObj.expressInstall=xiSwfUrlStr;regObj.callbackFn=callbackFn;regObjArr[regObjArr.length]=regObj;setVisibility(objectIdStr,false)}else if(callbackFn)callbackFn({success:false,id:objectIdStr})},getObjectById:function(objectIdStr){if(ua.w3)return getObjectById(objectIdStr)},embedSWF:function(swfUrlStr,replaceElemIdStr,widthStr,heightStr,swfVersionStr,xiSwfUrlStr,flashvarsObj,parObj,attObj,callbackFn){var callbackObj={success:false,id:replaceElemIdStr};if(ua.w3&&!(ua.wk&&ua.wk<312)&&swfUrlStr&&replaceElemIdStr&&widthStr&&heightStr&&swfVersionStr){setVisibility(replaceElemIdStr,false);addDomLoadEvent(function(){widthStr+="";heightStr+="";var att={};if(attObj&&typeof attObj===OBJECT)for(var i in attObj)att[i]=attObj[i];att.data=swfUrlStr;att.width=widthStr;att.height=heightStr;var par={};if(parObj&&typeof parObj===OBJECT)for(var j in parObj)par[j]=parObj[j];if(flashvarsObj&&typeof flashvarsObj===OBJECT)for(var k in flashvarsObj)if(typeof par.flashvars!=UNDEF)par.flashvars+="&"+k+"="+flashvarsObj[k];else par.flashvars=k+"="+flashvarsObj[k];if(hasPlayerVersion(swfVersionStr)){var obj=createSWF(att,par,replaceElemIdStr);if(att.id==replaceElemIdStr)setVisibility(replaceElemIdStr,true);callbackObj.success=true;callbackObj.ref=obj}else if(xiSwfUrlStr&&canExpressInstall()){att.data=xiSwfUrlStr;showExpressInstall(att,par,replaceElemIdStr,callbackFn);return}else setVisibility(replaceElemIdStr,true);if(callbackFn)callbackFn(callbackObj)})}else if(callbackFn)callbackFn(callbackObj)},switchOffAutoHideShow:function(){autoHideShow=false},ua:ua,getFlashPlayerVersion:function(){return{major:ua.pv[0],minor:ua.pv[1],release:ua.pv[2]}},hasFlashPlayerVersion:hasPlayerVersion,createSWF:function(attObj,parObj,replaceElemIdStr){if(ua.w3)return createSWF(attObj,parObj,replaceElemIdStr);else return undefined},showExpressInstall:function(att,par,replaceElemIdStr,callbackFn){if(ua.w3&&canExpressInstall())showExpressInstall(att,par,replaceElemIdStr,callbackFn)},removeSWF:function(objElemIdStr){if(ua.w3)removeSWF(objElemIdStr)},createCSS:function(selStr,declStr,mediaStr,newStyleBoolean){if(ua.w3)createCSS(selStr,declStr,mediaStr,newStyleBoolean)},addDomLoadEvent:addDomLoadEvent,addLoadEvent:addLoadEvent,getQueryParamValue:function(param){var q=doc.location.search||doc.location.hash;if(q){if(/\?/.test(q))q=q.split("?")[1];if(param==null)return urlEncodeIfNecessary(q);var pairs=q.split("&");for(var i=0;i<pairs.length;i++)if(pairs[i].substring(0,pairs[i].indexOf("="))==param)return urlEncodeIfNecessary(pairs[i].substring(pairs[i].indexOf("=")+1))}return""},expressInstallCallback:function(){if(isExpressInstallActive){var obj=getElementById(EXPRESS_INSTALL_ID);if(obj&&storedAltContent){obj.parentNode.replaceChild(storedAltContent,obj);if(storedAltContentId){setVisibility(storedAltContentId,true);if(ua.ie&&ua.win)storedAltContent.style.display="block"}if(storedCallbackFn)storedCallbackFn(storedCallbackObj)}isExpressInstallActive=false}}}}();Ext.namespace("TJ.Admin.LM");TJ.Admin.LM.BaseComponent=Ext.extend(Ext.Panel,{stateful:false,serverType:"null",configFields:{},values:{},items:null,status:"live",titleField:"title_en",cls:"pm-dragsource pm-dropsource",proxySelector:"div.x-panel-header",stackMode:"vertical",childrenList:["tjadmin_pm_cell","tjadmin_pm_box","tjadmin_pm_row","tjadmin_pm_tabset"],siblingList:["tjadmin_pm_cell","tjadmin_pm_box","tjadmin_pm_row","tjadmin_pm_tabset"],maxChildren:40,index:0,tools:[{id:"gear",qtip:"Change publishing status",handler:function(e,target,panel){if(panel.isReadOnly())return;if(panel.status=="preview")panel.status="disabled";else if(panel.status=="disabled")panel.status="live";else panel.status="preview";panel.setStatusText();panel.getEl().highlight()},scope:this},{id:"close",qtip:"Hold down CTRL and SHIFT to delete without confirmation.",handler:function(e,target,panel){if(panel.isReadOnly())return;var owner=panel.ownerCt;if(e.ctrlKey&&e.shiftKey)panel.getEl().fadeOut({duration:.2,callback:function(){owner.remove(panel,true)}});else Ext.Msg.confirm("Confirm","Delete this cell?",function(btn){if(btn=="yes")panel.getEl().fadeOut({duration:.2,callback:function(){owner.remove(panel,true)}})})}}],getIndex:function(){this.index++;return this.index},setupItems:function(){if(this.items&&this.items.length)for(var x=0;x<this.items.length;x++)this.items[x].xtype=TJ.Admin.LM.setXtype(this.items[x])},initComponent:function(){this.values=TJ.clone(this.values);this.setupItems();if(this.childrenList.length)this.bodyStyle={minHeight:"5px"};TJ.Admin.LM.BaseComponent.superclass.initComponent.call(this)},render:function(ct,pos){TJ.Admin.LM.BaseComponent.superclass.render.call(this,ct,pos);this.getEl().on("click",this.onClick,this);title=this.getEl().child(".x-panel-header-text");this.statusText=Ext.DomHelper.insertAfter(title,{tag:"span",html:""},true);if(this.collapsible){this.countText=Ext.DomHelper.insertBefore(this.statusText,{tag:"div",html:""},true);this.countText.applyStyles({float:"right","margin-right":2})}if(this.isReadOnly()){this.removeClass("pm-dragsource");this.removeClass("pm-dropsource")}this.setStatusText();if(this.active){var container=this.findParentByType(TJ.Admin.LM.Designer)||this.findParentByType(TJ.Admin.LM.DesignerMulti)||this.findParentByType(TJ.Admin.LM.DesignerSingle);console.log("con",container);if(container)container.activateItem(this)}},onClick:function(e){e.stopEvent();var container=this.findParentByType(TJ.Admin.LM.Designer)||this.findParentByType(TJ.Admin.LM.DesignerMulti)||this.findParentByType(TJ.Admin.LM.DesignerSingle);if(container)container.activateItem(this)},getMode:function(){if(this.mode)return this.mode;var container=this.findParentByType(TJ.Admin.LM.Container);if(container)return container.mode;return false},isReadOnly:function(){var container=this.findParentByType(TJ.Admin.LM.Container);if(container)return container.readOnly;return false},doLayout:function(shallow,force){this.setStatusText();TJ.Admin.LM.BaseComponent.superclass.doLayout.call(this,shallow,force)},setStatusText:function(){var status="";if(this.serverType=="cl_pm_content")if(this.isReadOnly()){if(this.values.zone==="")this.values.zone="Main";status="&nbsp;Zone: ["+this.values.zone+"]"}if(this.values[this.titleField])status="&nbsp;["+this.values[this.titleField]+"]";if(this.statusText){if(this.status=="preview")status=status+"&nbsp;[Preview]";else if(this.status=="disabled")status=status+"&nbsp;[Disabled]";if(this.countText)this.countText.update(this.items.getCount());this.statusText.update(status)}},setConfigValue:function(record,value){if(record=="_name"){this.setTitle(value||"[Blank]");return}if(Ext.isArray(this.values))this.values={};this.values[record]=value;this.setStatusText()},active:false,getServerConfig:function(){var ret=this.getBaseServerConfig();if(this.items&&this.items.length){ret.items=[];this.items.each(function(sub){ret.items.push(sub.getServerConfig())})}return ret},getBaseServerConfig:function(){var ret={serverType:this.serverType,xtype:this.getXType(),title:this.title,active:this.active,status:this.status,values:this.values};if(this.collapsed)ret.collapsed=true;if(this.active)ret.active=true;if(this.status!="live")ret.status=this.status;return ret},ddPaint:function(){this.ddPaintClear();if(this.dropIndex==-1)this.ddPaintInsert();else if(this.dropIndex==this.targetIndex)this.ddPaintBefore();else this.ddPaintAfter()},ddPaintInsert:function(){this.el.addClass("body-append-below")},ddPaintBefore:function(){this.el.addClass("panel-insert-above")},ddPaintAfter:function(){this.el.addClass("panel-insert-below")},ddPaintClear:function(){this.el.removeClass(["panel-insert-above","panel-insert-below","body-append-below"])},ddCanDrop:function(e,data,paint){var ret=false;this.targetIndex=this.ownerCt.items.indexOf(this);var allowInsert=this.childrenList.indexOf(data.sourceCmp.xtype)>-1;var allowSibling=this.siblingList.indexOf(data.sourceCmp.xtype)>-1;if(allowSibling){ret=this.setDropIndex(e,allowInsert);if(this.ownerCt.items.items.length>=this.ownerCt.maxChildren){if(data.sourceCmp.ownerCt!=this.ownerCt)ret=false;if(e.ctrlKey)ret=false}}else if(allowInsert)if(this.items.length<this.maxChildren){this.dropIndex=-1;ret=true}if(paint)if(ret)this.ddPaint();else this.ddPaintClear();return ret},setDropIndex:function(e,insert){if(this.stackMode=="vertical"){if(e.getPageY()<this.el.getY()+15){this.dropIndex=this.targetIndex;return true}if(e.getPageY()>this.el.getY()+this.el.getHeight()-15){this.dropIndex=this.targetIndex+1;return true}if(insert){this.dropIndex=-1;return true}return false}else{if(e.getPageX()<this.el.getX()+20){this.dropIndex=this.targetIndex;return true}if(e.getPageX()>this.el.getX()+this.el.getWidth()-20){this.dropIndex=this.targetIndex+1;return true}return false}}});TJ.Admin.LM.Container=Ext.extend(TJ.Admin.LM.BaseComponent,{mode:"content",iconCls:"icon_layout_content",tools:null,cls:"pm-dropsource",border:false,autoScroll:true,readOnly:false,render:function(ct,p){TJ.Admin.LM.Container.superclass.render.call(this,ct,p);if(!this.readOnly)TJ.Admin.LM.initDropZone(this)},isReadOnly:function(){return this.readOnly},initComponent:function(){switch(this.mode){case"page":this.title="Page Layout34";this.serverType="cl_pm_pagelayout";this.values={position:"center",width:800};break;case"view":this.title="View Layout";this.serverType="cl_pm_viewlayout";this.values={pagelayout:0};this.childrenList=["tjadmin_pm_view","tjadmin_pm_zonesource"];break;case"set":this.title="Layout Set";this.serverType="cl_pm_setlayout";this.values={};break;case"zone":this.title="Content Zone";this.serverType="cl_pm_zone";this.values={};break;case"save":this.title="Sandbox";this.serverType="cl_pm_save";this.values={};this.childrenList.push("tjadmin_pm_view");this.childrenList.push("tjadmin_pm_zonesource");break;default:this.title="Content Layout Deprecated";this.serverType="cl_pm_contentlayout";this.values={pagelayout:0};break}if(this.isReadOnly())this.title=this.title+" [readonly]";TJ.Admin.LM.Container.superclass.initComponent.call(this);this.on("add",this.doLayout);this.on("remove",this.doLayout);this.on("bodyresize",this.doLayout)},getZones:function(){return this.recursiveZones(this.getServerConfig())},recursiveZones:function(obj,ret){if(!Ext.isArray(ret))ret=Array();if(obj.serverType=="cl_pm_content")ret.push(obj.values.zone||"Main");if(obj.items)Ext.each(obj.items,function(i){this.recursiveZones(i,ret)},this);return ret},setValue:function(value){TJ.Admin.ClearPanel(this);this.values=value.values||this.values;this.setTitle((value.title||"")+(this.isReadOnly()?" [readonly]":""));if(value&&value.items){for(var i=0;i<value.items.length;i++){value.items[i].xtype=TJ.Admin.LM.setXtype(value.items[i]);this.add(value.items[i])}this.doLayout()}},ddPaintClear:function(){if(this.items&&this.items.length)this.items.last().getEl().removeClass("panel-insert-below");this.body.removeClass("panel-insert-above")},ddPaintInsert:function(){this.ddPaintClear();if(this.items&&this.items.length)this.items.last().getEl().addClass("panel-insert-below");else this.body.addClass("panel-insert-above")},siblingList:[]});TJ.Admin.LM.Cell=Ext.extend(TJ.Admin.LM.BaseComponent,{iconCls:"icon_page_white",style:"padding: 5px;",title:"New Cell",initComponent:function(){if(this.serverType=="cl_pm_content"){this.iconCls="icon_page_white_star";this.titleField="zone"}else this.childrenList=[];if(this.serverType=="cl_pm_set")this.iconCls="icon_application_lightning";TJ.Admin.LM.Cell.superclass.initComponent.call(this)}});TJ.Admin.LM.Column=Ext.extend(TJ.Admin.LM.BaseComponent,{style:"padding: 5px;",iconCls:"icon_application_tile_horizontal",title:"New Column",collapsible:true,ddPaintClear:function(){this.el.removeClass(["panel-insert-left","panel-insert-right"]);TJ.Admin.LM.Column.superclass.ddPaintClear.call(this)},ddPaintBefore:function(){this.el.addClass("panel-insert-left")},ddPaintAfter:function(){this.el.addClass("panel-insert-right")},stackMode:"horizontal",siblingList:["tjadmin_pm_column"]});TJ.Admin.LM.Box=Ext.extend(TJ.Admin.LM.BaseComponent,{style:"padding: 5px;",iconCls:"icon_application_view_tile",title:"New Box",collapsible:true});TJ.Admin.LM.Row=Ext.extend(TJ.Admin.LM.BaseComponent,{layout:"column",style:"padding: 5px;",iconCls:"icon_application_tile_vertical",title:"New Row",collapsible:true,maxCols:4,initComponent:function(){TJ.Admin.LM.Row.superclass.initComponent.call(this);this.on("remove",this.doLayout,this);this.on("resize",this.doLayout,this);this.on("bodyresize",this.doLayout,this)},doLayout:function(){if(this.items)this.items.each(function(col){col.columnWidth=.995/this.items.length},this);TJ.Admin.LM.Row.superclass.doLayout.call(this)},ddPaintClear:function(){this.body.removeClass(["panel-insert-right","panel-insert-below"]);TJ.Admin.LM.Row.superclass.ddPaintClear.call(this)},ddPaintInsert:function(){if(this.items.length)this.body.addClass("panel-insert-right");else this.body.addClass("panel-insert-below")},childrenList:["tjadmin_pm_column"],maxChildren:4});TJ.Admin.LM.Tabset=Ext.extend(TJ.Admin.LM.BaseComponent,{layout:"column",style:"padding: 5px;",iconCls:"icon_tab_go",title:"New Tab Set",maxTabs:10,collapsible:true,initComponent:function(){TJ.Admin.LM.Tabset.superclass.initComponent.call(this);this.on("remove",this.doLayout,this);this.on("resize",this.doLayout,this);this.on("bodyresize",this.doLayout,this)},canAddTab:function(){return this.items.length<this.maxTabs},doLayout:function(){if(this.items)this.items.each(function(col){col.columnWidth=.995/this.items.length},this);TJ.Admin.LM.Tabset.superclass.doLayout.call(this)},ddPaintClear:function(){this.body.removeClass(["panel-insert-right","panel-insert-below"]);TJ.Admin.LM.Row.superclass.ddPaintClear.call(this)},ddPaintInsert:function(){if(this.items.length)this.body.addClass("panel-insert-right");else this.body.addClass("panel-insert-below")},childrenList:["tjadmin_pm_tab"],maxChildren:8});TJ.Admin.LM.Tab=Ext.extend(TJ.Admin.LM.BaseComponent,{style:"padding: 5px;",iconCls:"icon_tab",title:"New Tab",collapsible:true,ddPaintClear:function(){this.el.removeClass(["panel-insert-left","panel-insert-right"]);TJ.Admin.LM.Column.superclass.ddPaintClear.call(this)},ddPaintBefore:function(){this.el.addClass("panel-insert-left")},ddPaintAfter:function(){this.el.addClass("panel-insert-right")},stackMode:"horizontal",siblingList:["tjadmin_pm_tab"]});TJ.Admin.LM.View=Ext.extend(TJ.Admin.LM.BaseComponent,{style:"padding: 5px;",iconCls:"icon_page_white_magnify",title:"View",collapsible:true,titleField:"code",siblingList:["tjadmin_pm_zonesource","tjadmin_pm_view"],childrenList:["tjadmin_pm_zonesource"]});TJ.Admin.LM.ZoneSource=Ext.extend(TJ.Admin.LM.BaseComponent,{style:"padding: 5px;",iconCls:"icon_star",title:"Zone Source",collapsible:true,siblingList:["tjadmin_pm_zonesource","tjadmin_pm_view"],titleField:"zone"});Ext.reg("tjadmin_pm_main",TJ.Admin.LM.Container);Ext.reg("tjadmin_pm_row",TJ.Admin.LM.Row);Ext.reg("tjadmin_pm_column",TJ.Admin.LM.Column);Ext.reg("tjadmin_pm_tabset",TJ.Admin.LM.Tabset);Ext.reg("tjadmin_pm_tab",TJ.Admin.LM.Tab);Ext.reg("tjadmin_pm_box",TJ.Admin.LM.Box);Ext.reg("tjadmin_pm_cell",TJ.Admin.LM.Cell);Ext.reg("tjadmin_pm_view",TJ.Admin.LM.View);Ext.reg("tjadmin_pm_zonesource",TJ.Admin.LM.ZoneSource);Ext.namespace("TJ.Admin.LM");TJ.Admin.LM.setXtype=function(info){if(info.xtype)return info.xtype;if(info.serverType=="cl_pm_row")return"tjadmin_pm_row";if(info.serverType=="cl_pm_column")return"tjadmin_pm_column";return"tjadmin_pm_cell"};TJ.Admin.LM.initDragZone=function(panel){panel.dragZone=new Ext.dd.DragZone(panel.body,{ddGroup:"PMDDGroup",getDragData:function(e){var sourceEl=e.getTarget(".pm-dragsource",10,true);console.log("getdragdata");if(sourceEl){sourceCmp=Ext.getCmp(sourceEl.id);proxyEl=sourceEl.child(sourceCmp.proxySelector,false);d=proxyEl.dom.cloneNode(true);d.id=Ext.id();Ext.fly(d).setWidth(proxyEl.getWidth());return{copy:e.ctrlKey,sourceCmp:sourceCmp,repairXY:proxyEl.getXY(),ddel:d}}},getRepairXY:function(){return this.dragData.repairXY}})};TJ.Admin.LM.initDropZone=function(panel){Ext.dd.ScrollManager.register(panel.body);panel.dropZone=new Ext.dd.DropZone(panel.body,{ddGroup:"PMDDGroup",getTargetFromEvent:function(e){return e.getTarget(".pm-dropsource")},onNodeEnter:function(target,dd,e,data){this.targetCmp=Ext.getCmp(target.id)},onNodeOut:function(target,dd,e,data){this.targetCmp.ddPaintClear()},getSourceCmpFromNode:function(node){node.attributes.info.title=node.attributes.text;return{xtype:TJ.Admin.LM.setXtype(node.attributes.info),getServerConfig:function(){return node.attributes.info}}},onNodeOver:function(target,dd,e,data){if(!data.sourceCmp)data.sourceCmp=this.getSourceCmpFromNode(data.node);ret=this.targetCmp.ddCanDrop(e,data,1);if(ret)if(e.ctrlKey||data.sourceCmp.getMode&&data.sourceCmp.getMode()=="save"||this.targetCmp.getMode()=="save")return"x-dd-drop-ok-add";else if(this.targetCmp.dropIndex==-1)return"x-dd-drop-ok-left";else return Ext.dd.DropZone.prototype.dropAllowed;return Ext.dd.DropZone.prototype.dropNotAllowed},onNodeDrop:function(target,dd,e,data){this.dropIndex=this.targetCmp.dropIndex;ret=this.targetCmp.ddCanDrop(e,data,false);if(ret){config=data.sourceCmp.getServerConfig();config.xtype=data.sourceCmp.xtype;var save=data.sourceCmp.getMode&&data.sourceCmp.getMode()=="save"||this.targetCmp.getMode()=="save";if(e.ctrlKey&&!save){var match=config.title.match(/\[Copy\]/);if(match===null)config.title=config.title+" [Copy]"}var newCmp;if(this.targetCmp.getMode()=="save")config.collapsed=true;if(this.dropIndex==-1){newCmp=this.targetCmp.add(config);if(newCmp.getEl())newCmp.getEl().highlight();if(data.sourceCmp.ownerCt&&!e.ctrlKey&&!save)data.sourceCmp.ownerCt.remove(data.sourceCmp);this.targetCmp.doLayout()}else{newCmp=this.targetCmp.ownerCt.insert(this.dropIndex,config);if(newCmp.getEl())newCmp.getEl().highlight();if(data.sourceCmp.ownerCt&&!e.ctrlKey&&!save)data.sourceCmp.ownerCt.remove(data.sourceCmp);this.targetCmp.ownerCt.doLayout()}return true}return false}})};TJ.Admin.NewsletterHTMLEditor=Ext.extend(Ext.Panel,{iconCls:"icon_email",activeTab:0,designer:null,layout:"border",initComponent:function(){this.zoneText=new Ext.Toolbar.TextItem("");this.previewBtn=this.tbar=["Zones:"," ",this.zoneText];this.htmlEditor=new TJ.comp.TextArea({enableKeyEvents:true});this.textEditor=new TJ.comp.TextArea({enableKeyEvents:true});this.htmlEditor.on("keyup",this.edit,this,{buffer:200});this.textEditor.on("keyup",this.edit,this,{buffer:200});this.liveBtn=new Ext.Toolbar.Button({tooltip:"Preview with Live content",text:"Live Preview",iconCls:"icon_page_lightning",handler:function(){this.livePreview()},scope:this});this.spinner=new Ext.form.NumberField({allowDecimals:false,minValue:1,maxValue:365,value:7,width:20});this.preview=new Ext.Panel({layout:"fit",region:"east",title:"Preview",split:true,minSize:200,width:400,items:new TJ.comp.IFramePanel({ref:"iframe",border:false}),tbar:[this.liveBtn,"Days to retrieve:",this.spinner]});this.editor=new Ext.TabPanel({region:"center",activeItem:0,defaults:{layout:"fit",border:false},items:[{title:"HTML",iconCls:"icon_page_code",layout:"fit",items:this.htmlEditor},{title:"Text",iconCls:"icon_page",layout:"fit",items:this.textEditor}]});this.editor.on("tabchange",this.edit,this);this.items=[this.editor,this.preview];TJ.Admin.NewsletterHTMLEditor.superclass.initComponent.call(this)},livePreview:function(){var url="/"+this.ref+"/"+"admin/newsletter:designPreview";var params={mode:this.editor.getActiveTab().title,source:this.editor.getActiveTab().title=="HTML"?this.htmlEditor.getValue():this.textEditor.getValue(),days:this.spinner.getValue(),zones:Ext.encode(this.designer.getValue())};Ext.Ajax.request({url:url,params:params,callback:function(a,b,res){if(res&&res.responseText)this.preview.iframe.setContent(res.responseText);else this.preview.iframe.setContent("Error")},scope:this});this.preview.iframe.setContent("Loading...")},edit:function(){this.zoneText.setText(this.getZones().join(", "));if(!this.preview.rendered)return;if(this.editor.getActiveTab().title=="HTML")this.preview.iframe.setContent(this.htmlEditor.getValue());else this.preview.iframe.setContent(this.textEditor.getValue().replace(/(\r\n|\r|\n)/g,"<br />"))},setValue:function(value){this.htmlEditor.setValue(value.html);this.textEditor.setValue(value.text);this.edit()},getValue:function(){return{html:this.htmlEditor.getValue(),text:this.textEditor.getValue()}},getZones:function(){var regex=/\[Zone:(\w*?)\]/gm;var val=this.htmlEditor.getValue()+this.textEditor.getValue();var zones=Array();while(match=regex.exec(val))zones.push(match[1]);return TJ.unique(zones)}});Ext.namespace("TJ.Admin.LM");TJ.comp.PageLayoutPopupWindow=Ext.extend(TJ.comp.GenericPopupWindow,{stateId:"TJ_Admin_LayoutPopupWindow",width:800,height:500,title:"Page Layout Editor",mode:"page",initComponent:function(){this.items=this.designer=new TJ.Admin.LM.DesignerSingle({mode:this.mode});TJ.comp.PageLayoutPopupWindow.superclass.initComponent.call(this)},setValue:function(value){this.designer.setValue(value)},tableCallback:function(val){this.setTitle(this.title+String.format(":  Table {0}",val.lang.label))},getValue:function(){return this.designer.getValue()}});TJ.comp.PageLayout=Ext.extend(TJ.comp.GenericTriggerField,{getDisplayValue:function(){if(this.objectValue)if(this.objectValue.title)return"Title: "+this.objectValue.title;return"Blank"},popupClass:TJ.comp.PageLayoutPopupWindow});Ext.reg("tjpagelayout",TJ.comp.PageLayout);TJ.comp.ViewLayoutPopupWindow=Ext.extend(TJ.comp.GenericPopupWindow,{stateId:"TJ_Admin_LayoutPopupWindow",width:800,height:500,title:"View Layout Editor",initComponent:function(){this.items=this.designer=new TJ.Admin.LM.DesignerSingle({mode:"view"});TJ.comp.ViewLayoutPopupWindow.superclass.initComponent.call(this)},setValue:function(value){this.designer.setValue(value)},getValue:function(){return this.designer.getValue()},convertValue:function(val){value=TJ.clone(val);console.log("value",value);if(value&&value.values&&value.values.pagelayout!==null){value.serverType="cl_pm_zone";if(value.title=="Content Layout")value.title="Zone Layout";var pl=value.values.pagelayout;delete value.values;var ret={pageLayout:pl,activeZone:"Main",zones:[{name:"Main",value:value}]};value=ret}console.log("convert 1",value);if(value.zones)alert("hello");return value}});TJ.comp.ViewLayout=Ext.extend(TJ.comp.GenericTriggerField,{getDisplayValue:function(){if(this.objectValue){var zones=[],views=[];Ext.each(this.objectValue.items,function(f){if(f.serverType=="cl_pm_zonesource")zones.push(f.values.zone);if(f.serverType=="cl_pm_view")views.push(f.values.code)},this);var ret="";if(this.objectValue.title)ret=this.objectValue.title+": ";if(views.length)ret+=String.format("(Views: {0}) ",views.join(", "));if(zones.length)ret+=String.format("(Zones: {0}) ",zones.join(", "));return ret}return"Blank"},convertValue:function(value){var ret;console.log("value:",value);if(value&&value.values&&value.values.pagelayout!==undefined){ret={serverType:"cl_pm_viewlayout",xtype:"tjadmin_pm_main",title:"Content Layout",values:{parentlayout:value.values.pagelayout},items:[{serverType:"cl_pm_zonesource",xtype:"tjadmin_pm_zonesource",title:"Zone Source",values:{zone:"Main",dispPosition:"Replace"},items:value.items}]};return ret}if(value.pageLayout!==undefined){ret={serverType:"cl_pm_viewlayout",xtype:"tjadmin_pm_main",title:"Content Layout",values:{parentlayout:value.pageLayout},items:[]};if(value.zones)for(var i=0;i<value.zones.length;i++){console.log(value.zones[i]);ret.items.push({serverType:"cl_pm_zonesource",xtype:"tjadmin_pm_zonesource",status:value.zones[i].value.status||"live",title:value.zones[i].value.title,values:{zone:value.zones[i].name,dispPosition:value.zones[i].value.values.dispPosition},items:value.zones[i].value.items})}return ret}console.log("no change:",value);return value},popupClass:TJ.comp.ViewLayoutPopupWindow});Ext.reg("tjviewlayout",TJ.comp.ViewLayout);Ext.reg("tjcontentlayout",TJ.comp.ViewLayout);TJ.comp.SetLayoutPopupWindow=Ext.extend(TJ.comp.PageLayoutPopupWindow,{title:"Layout Set Editor",mode:"set",getDisplayValue:function(){if(this.objectValue)if(this.objectValue.title)return"Title: "+this.objectValue.title;return"Blank"}});TJ.comp.SetLayout=Ext.extend(TJ.comp.PageLayout,{popupClass:TJ.comp.SetLayoutPopupWindow});Ext.reg("tjsetlayout",TJ.comp.SetLayout);TJ.comp.ContentLayoutPopupWindow=Ext.extend(TJ.comp.GenericPopupWindow,{stateId:"TJ_Admin_ContentLayoutPopupWindow",width:800,height:500,title:"Content Layout",initComponent:function(){this.designer=new TJ.Admin.LM.ContentDesigner;this.items=this.designer;TJ.comp.ContentLayoutPopupWindow.superclass.initComponent.call(this)},setValue:function(value){if(value&&value.values&&value.values.pagelayout!==null)value=this.convertValue(value);this.designer.setValue(value)},getValue:function(){return this.designer.getValue()},convertValue:function(val){value=TJ.clone(val);value.serverType="cl_pm_zone";if(value.title=="Content Layout")value.title="Zone Layout";var pl=value.values.pagelayout;delete value.values;var ret={pageLayout:pl,active:"Main",zones:[{name:"Main",value:value}]};return ret}});TJ.comp.ContentLayout=Ext.extend(TJ.comp.GenericTriggerField,{popupClass:TJ.comp.ContentLayoutPopupWindow,getDisplayValue:function(){if(this.objectValue.title)return"Title: "+this.objectValue.title+"*";if(this.objectValue)if(this.objectValue.zones){var def=[];Ext.each(this.objectValue.zones,function(f){def.push(f.name)},this);if(def.length===0)return"No Zones defined";return String.format("Content Zones: [{0}]",def.join(", "))}return"Blank"}});TJ.comp.NewsletterLayoutPopupWindow=Ext.extend(TJ.comp.GenericPopupWindow,{stateId:"TJ_Admin_LayoutPopupWindow",width:800,height:500,title:"Newsletter Layout",initComponent:function(){this.designer=new TJ.Admin.LM.NewsLetterDesigner;this.items=this.designer;TJ.comp.NewsletterLayoutPopupWindow.superclass.initComponent.call(this)},setValue:function(value){this.designer.setValue(value)},getValue:function(){return this.designer.getValue()}});TJ.comp.NewsletterLayout=Ext.extend(TJ.comp.ContentLayout,{popupClass:TJ.comp.NewsletterLayoutPopupWindow});Ext.reg("tjnewsletterlayout",TJ.comp.NewsletterLayout);Ext.namespace("Altius");Altius.MonthFilter=function(){return{Init:function(){var items=Ext.select("ol.MonthFilter");Altius.InitHideShow(items,"> ol")}}}();Altius.InitHideShow=function(items,selector,opt){items.on("click",function(e,t){var el=Ext.get(t);var mode="normal";if(el)if(mode=="radio"){el.radioClass("open");console.log(el.parent());var li=el.parent().first();while(li){var child=li.select(selector);if(li.hasClass("open"))child.slideIn("t",{useDisplay:true});else child.slideOut("t",{useDisplay:true});li=li.next()}}else{var child=el.select(selector);if(el.hasClass("open")){el.removeClass("open");child.slideOut("t",{useDisplay:true})}else{el.addClass("open");child.slideIn("t",{useDisplay:true})}}})};Altius.InitTagFilter=function(){var selector="div.tagSelector input[type=checkbox]";var cbs=Ext.select(selector);cbs.on("click",function(e,cb){var cb=Ext.get(cb);var container=cb.parent("div.tagSelector");var value=new Array;var cbs=container.select("input[type=checkbox]");cbs.each(function(cb){if(cb.dom.checked){value.push(cb.dom.value);cb.prev().addClass("selected")}else cb.prev().removeClass("selected")});var hidden=container.child("input[name=tags]");hidden.dom.value=value.join(" ")})};Ext.onReady(function(){Altius.InitTagFilter()});TJ.Admin.HTMLPopupWindowComponent=Ext.extend(Ext.Window,{stateful:true,constrainHeader:true,stateId:"TJ_Admin_HTMLPopupWindowComponent",width:800,height:500,modal:true,layout:"fit",title:"Edit Html",closeAction:"hide",previewFrame:null,selectedHTML:"",initComponent:function(){this.tiny=new TJ.comp.HtmlTinyMCE(this.initialConfig);this.saveTemplateName=new Ext.form.TextField({width:100,enableKeyEvents:true,maxLength:16,maskRe:/[_a-z0-9]/i});this.saveTemplateBtn=new Ext.Toolbar.Button({iconCls:"icon_disk",text:"Save",handler:this.saveTemplate,scope:this,disabled:true});this.saveTemplateName.on("keyup",function(f){this.saveTemplateBtn.setDisabled(!f.isValid()||f.getValue().length===0)},this);this.saveSiteTemplateName=new Ext.form.TextField({width:100,enableKeyEvents:true,maxLength:16,maskRe:/[_a-z0-9]/i});this.saveSiteTemplateBtn=new Ext.Toolbar.Button({iconCls:"icon_disk",text:"Save",handler:this.saveSiteTemplate,scope:this,disabled:true});this.saveSiteTemplateName.on("keyup",function(f){this.saveSiteTemplateBtn.setDisabled(!f.isValid()||f.getValue().length===0)},this);this.autoSaveBtn=new Ext.Toolbar.Button({iconCls:"icon_disk",text:"Autosave",handler:this.autoSave,scope:this});this.editPanel=new Ext.Panel({title:"Editor",layout:"fit",border:false,tbar:["Save as user template"," ",this.saveTemplateName,this.saveTemplateBtn,"-","Save as site template"," ",this.saveSiteTemplateName,this.saveSiteTemplateBtn],items:this.tiny});this.deleteBtn=new Ext.Toolbar.Button({text:"Delete",iconCls:"icon_cancel",handler:this.deleteSaved,scope:this,disabled:true});this.tree=new Ext.tree.TreePanel({region:"west",width:200,split:true,border:false,autoScroll:true,animate:true,enableDD:false,rootVisible:false,containerScroll:true,loader:new Ext.tree.TreeLoader({dataUrl:TJ.LANGUAGESS+"/form:htmlgetnodes"}),root:new Ext.tree.AsyncTreeNode({text:"Saved",draggable:false,id:"root"}),tbar:[{text:"Refresh",iconCls:"icon-refresh",handler:function(){this.tree.getLoader().load(this.tree.getRootNode());this.tree.getRootNode().expand()},scope:this},this.deleteBtn]});this.replaceBtn=new Ext.Toolbar.Button({iconCls:"icon_html",text:"Use this HTML",disabled:true,handler:this.replaceHTML,scope:this});this.insertBtn=new Ext.Toolbar.Button({iconCls:"icon_html_add",text:"Append this HTML",disabled:true,handler:this.insertHTML,scope:this});this.preview=new TJ.comp.IFramePanel({tbar:["<b>Preview</b>"," ",this.insertBtn,this.replaceBtn],region:"center",border:false,bodyClasses:["mceContentBody","clientHTML"],stylesheets:[TJ.CLIENTCSS]});this.tree.getSelectionModel().on("selectionchange",function(sm,node){this.selectedHTML="";if(node)this.selectedHTML=node.attributes.html||"";this.preview.setContent(this.selectedHTML);this.replaceBtn.setDisabled(node===null||node.attributes.html==undefined);this.insertBtn.setDisabled(node===null||node.attributes.html==undefined);this.deleteBtn.setDisabled(node===null||node.attributes.html==undefined)},this);this.items=[{activeTab:0,xtype:"tabpanel",border:false,items:[this.editPanel,{title:"Saved HTML",layout:"border",border:false,items:[this.tree,this.preview]}]}];this.status=new Ext.StatusBar({defaultText:"Ready"});this.addEvents("save");this.selBtn=new Ext.Button({text:"Save",handler:this.save,scope:this});this.cancelBtn=new Ext.Button({text:"Cancel",handler:function(){this.hide()},scope:this});this.bbar=[this.status,"->",this.autoSaveBtn];this.buttons=[this.selBtn,this.cancelBtn];TJ.Admin.HTMLPopupWindowComponent.superclass.initComponent.call(this)},replaceHTML:function(){this.tiny.setValue(this.selectedHTML);this.items.get(0).activate(this.editPanel)},insertHTML:function(){this.tiny.setValue(this.tiny.getValue()+this.selectedHTML);this.items.get(0).activate(this.editPanel)},deleteSaved:function(){node=this.tree.getSelectionModel().getSelectedNode();if(node)Ext.Msg.show({title:"Please confirm",width:300,msg:"Are you sure you want to delete this saved HTML template?<BR> "+node.text,buttons:Ext.Msg.YESNO,scope:this,fn:function(btn){if(btn=="yes")Ext.Ajax.request({url:TJ.LANGUAGESS+"form:htmlUserTemplateRemove",params:{node:node.getPath()},callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response);if(res.success){node.remove();this.status.setStatus({text:"User template removed",iconCls:"x-status-success",clear:true})}else this.status.setStatus({text:"User template removal failed",iconCls:"x-status-fail"})},scope:this})},icon:Ext.MessageBox.QUESTION});console.log(node,node.getPath())},saveSiteTemplate:function(){Ext.Ajax.request({url:TJ.LANGUAGESS+"form:htmlSiteTemplateSave",params:{html:this.tiny.getValue(),name:this.saveSiteTemplateName.getValue()},callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response);if(res.success){this.saveSiteTemplateName.setValue("");this.status.setStatus({text:"Site template saved",iconCls:"x-status-success",clear:true})}else this.status.setStatus({text:"Site template save failed",iconCls:"x-status-fail"})},scope:this})},saveTemplate:function(){Ext.Ajax.request({url:TJ.LANGUAGESS+"form:htmlUserTemplateSave",params:{html:this.tiny.getValue(),name:this.saveTemplateName.getValue()},callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response);if(res.success){this.saveTemplateName.setValue("");this.status.setStatus({text:"User template saved",iconCls:"x-status-success",clear:true})}else this.status.setStatus({text:"User template save failed",iconCls:"x-status-fail"})},scope:this})},autoSavedValue:null,autoSaveInterval:60,autoSaveTimer:0,checkAutoSave:function(){if(this.tiny.getValue()==this.autoSavedValue||this.autoSaveBtn.disabled||this.hidden){this.autoSaveBtn.setText("Autosave");this.autoSaveTimer=this.autoSaveInterval}else if(this.autoSaveTimer>0){this.autoSaveBtn.setText("Autosave ("+this.autoSaveTimer+")");this.autoSaveTimer--}else this.autoSave();this.checkAutoSave.defer(1e3,this)},autoSave:function(){this.autoSaveBtn.setDisabled(true);this.autoSaveBtn.setText("Autosave");this.autoSaveTime=this.autoSaveInterval;this.status.showBusy("Auto saving...");Ext.Ajax.request({url:TJ.LANGUAGESS+"form:htmlautosave",params:{html:this.tiny.getValue(),name:this.name},callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response);this.autoSaveBtn.setDisabled(false);if(res.success){this.autoSavedValue=options.params.html;this.status.setStatus({text:"Auto save complete",iconCls:"x-status-success",clear:true})}else this.status.setStatus({text:"Auto save failed",iconCls:"x-status-fail"})},scope:this})},render:function(pos,ct){TJ.Admin.HTMLPopupWindowComponent.superclass.render.call(this,pos,ct);this.checkAutoSave()},name:"",setValue:function(value){this.tiny.setValue(value);this.autoSavedValue=this.tiny.getValue()},getValue:function(){return this.tiny.getValue()},save:function(){this.callback.call(this.scope,this)},show:function(obj){obj.value=obj.value||"";this.setValue(obj.value);obj.name=obj.name||"default";this.name=obj.name;this.callback=obj.callback;this.scope=obj.scope;this.setTitle('Editing HTML field "'+this.name+'"');this.items.get(0).activate(this.editPanel);TJ.Admin.HTMLPopupWindowComponent.superclass.show.call(this)}});TJ.Admin.HTMLPopupWindow=function(){win=null;return{get:function(settings){if(win===null)win=new TJ.Admin.HTMLPopupWindowComponent(settings);return win}}}();TJ.comp.HTMLPopup=Ext.extend(Ext.form.TriggerField,{width:300,height:60,selectOnFocus:false,value:"",triggerClass:"x-form-elipsis-trigger",defaultAutoCreate:{tag:"iframe",height:40},initComponent:function(){this.hiddenName=this.name;this.defaultAutoCreate={tag:"iframe",height:this.height};TJ.comp.HTMLPopup.superclass.initComponent.call(this)},onRender:function(ct,position){TJ.comp.HTMLPopup.superclass.onRender.call(this,ct,position);this.hiddenField=this.el.insertSibling({tag:"input",type:"hidden",name:this.hiddenName,id:this.hiddenId||this.hiddenName},"before",true);this.el.dom.removeAttribute("name")},setValue:function(val){var doc=this.el.dom.contentWindow.document;doc.open();if(val)doc.write(Ext.util.Format.htmlEncode(val));doc.close();Ext.fly(doc.body).addClass(["mceContentBody","clientHTML"]);Ext.fly(doc.body).setStyle("overflow","hidden");var sheet=doc.createElement("link");sheet.setAttribute("rel","stylesheet");sheet.setAttribute("type","text/css");sheet.setAttribute("href",TJ.CLIENTCSS);doc.getElementsByTagName("head")[0].appendChild(sheet);TJ.comp.HTMLPopup.superclass.setValue.call(this,val);this.hiddenField.value=val},onTriggerClick:function(){if(this.propertyGrid)this.propertyGrid.stopEditing();var browse=TJ.Admin.HTMLPopupWindow.get({tinymceSettings:this.tinymceSettings});browse.show({value:this.getValue(),name:this.getName(),callback:this.callback,scope:this})},callback:function(browse){if(this.propertyGrid&&this.propertyGrid.selModel.selection)this.propertyGrid.selModel.selection.record.set("value",browse.getValue());this.setValue(browse.getValue());this.el.dom.setAttribute("title",browse.getValue());this.fireEvent("change",this);browse.hide()}});TJ.comp.IFramePanel=Ext.extend(Ext.Panel,{stylesheets:[],bodyClasses:[],iframeHtml:null,initComponent:function(){this.html='<iframe style="border: none;">';TJ.comp.IFramePanel.superclass.initComponent.call(this)},render:function(pos,ct){TJ.comp.IFramePanel.superclass.render.call(this,pos,ct);this.iframe=Ext.get(this.body.dom.firstChild);this.on("resize",this.doResize,this);this.doResize();this.iframeDoc=this.iframe.dom.contentWindow.document;this.iframeDoc.open();this.iframeDoc.write("&nbsp;");this.iframeDoc.close();this.setStyles();if(this.iframeHtml)this.setContent(this.iframeHtml);if(this.src)this.setSrc(this.src)},doResize:function(){if(this.rendered&&this.iframe){this.iframe.setWidth(this.body.getWidth());this.iframe.setHeight(this.body.getHeight())}},setSrc:function(src){if(this.iframe)this.iframe.dom.src=src;this.src=src},setContent:function(val){if(!this.iframeDoc)return;this.iframeDoc.body.innerHTML=val},setStyles:function(){Ext.fly(this.iframeDoc.body).addClass(this.bodyClasses);Ext.fly(this.iframeDoc.body).setStyle("font-family","arial");Ext.fly(this.iframeDoc.body).setStyle("font-size","12px");var sheet;for(var i=0;i<this.stylesheets.length;i++){sheet=this.iframeDoc.createElement("link");sheet.setAttribute("rel","stylesheet");sheet.setAttribute("type","text/css");sheet.setAttribute("href",this.stylesheets[i]);this.iframeDoc.getElementsByTagName("head")[0].appendChild(sheet)}}});Ext.reg("tjhtmlpopup",TJ.comp.HTMLPopup);Ext.reg("tjtinymce",TJ.comp.HTMLPopup);TJ.comp.SimpleHtmlWindow=Ext.extend(Ext.Window,{width:600,height:240,constrainHeader:true,modal:true,layout:"fit",title:"Edit HTML",closeAction:"hide",initComponent:function(){this.editor=new Ext.ux.TinyMCE({tinymceSettings:{theme:"advanced",plugins:"style,advimage,advlink,iespell,preview,searchreplace,paste,nonbreaking",theme_advanced_styles:"Heading=heading;Sub Heading=subheading;Title=title;Text=text;Description=description;Small=small;Error=error",theme_advanced_buttons1:"bold,italic,underline,strikethrough,|,styleselect,formatselect,fontselect,fontsizeselect,sub,sup,|,charmap,|,nonbreaking",theme_advanced_buttons2:"cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,forecolor,backcolor",theme_advanced_buttons3:"",theme_advanced_buttons4:"",theme_advanced_toolbar_location:"top",theme_advanced_toolbar_align:"left",theme_advanced_resizing:false,relative_urls:false,convert_urls:false,extended_valid_elements:"a[name|href|target|title|onclick],img[style|class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]",file_browser_callback:"TJ.comp.SelectFile.TinyMCE"}});this.items=this.editor;this.saveBtn=new Ext.Button({text:"Save",handler:function(){var value=this.editor.getValue();value=TJ.comp.CleanPTags(value);this.fireEvent("save",value)},scope:this});this.buttons=[this.saveBtn];TJ.comp.SimpleHtmlWindow.superclass.initComponent.call(this)},setValue:function(v){this.editor.setValue(v)}});TJ.comp.CleanPTags=function(value){return value;if(typeof value=="string"&&value.substring(0,3)=="<p>"&&value.substr(value.length-4,4)=="</p>")return value.substr(3,value.length-7);return value};TJ.comp.SimpleHtml=Ext.extend(Ext.form.TriggerField,{width:400,triggerClass:"x-form-elipsis-trigger",browse:null,onTriggerClick:function(){if(!this.browse){this.browse=new TJ.comp.SimpleHtmlWindow;this.browse.on("save",function(html){this.browse.hide();this.setValue(html);this.focus(true);this.fireEvent("change",this)},this)}this.browse.show();this.browse.setValue(this.getValue())},setValue:function(v){TJ.comp.SimpleHtml.superclass.setValue.call(this,TJ.comp.CleanPTags(v))},onDestroy:function(){if(this.browse){this.browse.destroy();this.browse=null}}});Ext.reg("tjsimplehtml",TJ.comp.SimpleHtml);TJ.comp.VideoPickerPopup=Ext.extend(TJ.comp.GenericPopupWindow,{title:"Choose Video",width:600,height:600,layout:"border",initComponent:function(){this.form=new TJ.Admin.Form({labelWidth:80,height:70,region:"north",defaults:{anchor:"-20",listeners:{change:{fn:this.change,scope:this}}},items:[{xtype:"tjselect",store:["YouTube","Vimeo"],name:"source",fieldLabel:"Video Source"},{xtype:"tjtext",name:"id",fieldLabel:"Video ID"}],buttons:[]});this.preview=new Ext.Panel({title:"Preview",region:"center"});this.items=[this.form,this.preview];TJ.comp.VideoPickerPopup.superclass.initComponent.call(this);this.on("hide",function(){this.preview.update("")},this);this.on("bodyresize",function(){this.previewVideo()},this,{delay:100})},change:function(field,value){this.previewVideo()},previewVideo:function(){console.log(this);if(!this.rendered||!this.preview.rendered)return;var vals=this.form.getForm().getValues();var content;if(vals.source=="YouTube"){content=String.format('<object width="{0}" height="{1}"><param name="movie" value="http://www.youtube.com/v/{2}&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/{2}&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="{0}" height="{1}"></embed></object>',this.preview.getWidth(),this.preview.getHeight()-28,vals.id);this.preview.setTitle(String.format('Preview: <a href="http://www.youtube.com/watch?v={0}" target=_blank>Open</a>',vals.id))}else if(vals.source=="Vimeo"){content=String.format('<iframe src="http://player.vimeo.com/video/{2}" width="{0}" height="{1}" frameborder="0"></iframe><p>',this.preview.getWidth(),this.preview.getHeight()-20,vals.id);this.preview.setTitle(String.format('Preview: <a href="http://www.vimeo.com/{0}" target=_blank>Open</a>',vals.id))}else{content="";panel.setTitle("Preview")}this.preview.update(content)},setValue:function(value){this.form.getForm().setValues(value);this.previewVideo()},getValue:function(){this.form.getForm().isValid();return this.form.getForm().getValues()}});TJ.comp.VideoPicker=Ext.extend(TJ.comp.GenericTriggerField,{popupClass:TJ.comp.VideoPickerPopup,getNullValue:function(){return{source:null,id:null}},width:800,youTube:null,vimeo:null,displayValueGetInfo:function(){console.log("val",this.objectValue,this.objectValue.source);this.youTube=null;this.vimeo=null;var src;if(this.objectValue.source=="YouTube"){src=String.format("/en/_youtube:getvideoinfo-{0}",this.objectValue.id);Ext.Ajax.request({url:src,callback:this.displayValueCallback,scope:this})}else if(this.objectValue.source=="Vimeo"){src=String.format("/en/_vimeo:getvideoinfo-{0}",this.objectValue.id);Ext.Ajax.request({url:src,callback:this.displayValueCallback,scope:this})}else this.displayValueCallback()},displayValueCallback:function(info,success,res){if(success)if(this.objectValue.source=="YouTube")this.YouTube=Ext.util.JSON.decode(res.responseText);else this.vimeo=Ext.util.JSON.decode(res.responseText);TJ.comp.VideoPicker.superclass.displayValueCallback.call(this)},getDisplayValue:function(){if(this.YouTube){console.log("a",this.YouTube);if(this.YouTube.error)return String.format("{0}: {1} [{2}]","YouTube video not found",this.YouTube.error.message,this.objectValue.id);return String.format("{0}: {1} [{2}]","YouTube",this.YouTube.data.title,this.objectValue.id)}if(this.vimeo){console.log("vim",this.vimeo,this.vimeo[0].title);return String.format("{0}: {1} [{2}]","Vimeo",this.vimeo[0].title,this.objectValue.id)}if(this.objectValue.source)return String.format("{0} [{1}]",this.objectValue.source,this.objectValue.id);return"Please select video"}});Ext.reg("tjvideopicker",TJ.comp.VideoPicker);TJ.comp.ObjectTreeEditor=Ext.extend(Ext.Panel,{layout:"border",frame:false,border:false,nodeTypes:{},nodes:["file","image_link","image_directory","video"],initComponent:function(){if(!TJ.comp.ObjectTreeEditor.prototype.multiDone){for(var i in this.nodeTypes)this.nodeTypes[i].fields=TJ.Admin.MakeFieldListMultilingual(this.nodeTypes[i].fields);TJ.comp.ObjectTreeEditor.prototype.multiDone=true}this.menu=new Ext.menu.Menu({items:Array(),defaults:{handler:function(item){this.addNode(item.key)},scope:this}});this.addBtn=new Ext.Toolbar.Button({text:"Add Item",iconCls:"icon_add",menu:this.menu});this.copyBtn=new Ext.Toolbar.Button({text:"Copy",iconCls:"icon_add",disabled:true,handler:function(){var node=this.tp.getSelectionModel().getSelectedNode();if(node)this.addNode(node.attributes.key,node.attributes.values)},scope:this});this.delBtn=new Ext.Toolbar.Button({text:"Delete",iconCls:"icon_delete",disabled:true,handler:function(){this.tp.getSelectionModel().getSelectedNode().remove(true);this.fireEvent("change",this)},scope:this});this.tp=new Ext.tree.TreePanel({region:"west",width:240,split:true,frame:false,border:false,tbar:[this.addBtn,this.copyBtn,this.delBtn],autoScroll:true,enableDD:true,containerScroll:true,root:new Ext.tree.TreeNode({expanded:true}),listeners:{dragdrop:{fn:function(tp,tn,dd,e){tp.getSelectionModel().select(tn)},scope:this}},rootVisible:false});this.tp.getSelectionModel().on("selectionchange",function(sm,node){this.delBtn.setDisabled(node===null);this.copyBtn.setDisabled(node===null);this.setForm(node)},this);this.fp=new Ext.Panel({region:"center",layout:"fit",title:"Select item",iconCls:"icon_page_white",frame:false,border:false});this.items=[this.tp,this.fp];TJ.comp.ObjectTreeEditor.superclass.initComponent.call(this);this.setupMenu()},setupMenu:function(nodes){nodes=nodes||this.nodes;this.menu.removeAll(true);for(var i=0;i<nodes.length;i++)if(this.nodeTypes[nodes[i]]){this.nodeTypes[nodes[i]].index=0;this.menu.add({iconCls:this.nodeTypes[nodes[i]].iconCls,text:this.nodeTypes[nodes[i]].text,key:nodes[i]})}else alert("Node not defined exist: "+nodes[i])},addNode:function(key,values){var node=this.getNodeTypeFromKey(key);this.tp.getRootNode().appendChild({key:key,text:node.text,updated:TJ.GetServerTime(),keyText:node.text,fields:node.fields,titleFields:node.titleFields,iconCls:node.iconCls,values:TJ.clone(values)||{},leaf:true}).select();this.fireEvent("change",this)},getNodeTypeFromKey:function(key){return TJ.clone(this.nodeTypes[key])},setNodeText:function(node,formUpdate){var text="";var fields=node.attributes.titleFields||["title","filename"];Ext.each(fields,function(f){console.log(f);if(node.attributes.values[f]&&node.attributes.values[f].length){text=node.attributes.values[f];return false}if(node.attributes.values[f+"_en"]&&node.attributes.values[f+"_en"].length){text=node.attributes.values[f+"_en"];return false}});node.setText(node.attributes.keyText+": "+text);if(formUpdate)this.fp.setTitle(node.attributes.text)},setForm:function(node){TJ.Admin.ClearPanel(this.fp);if(node){this.fp.setTitle(node.attributes.text,node.attributes.iconCls);if(this.form)this.form.destroy();var form=new Ext.FormPanel({frame:true,border:false,autoScroll:true,plugins:[new TJ.Admin.FormPlugin],defaults:{anchor:"-35",msgTarget:"side",node:node,table:this.table,listeners:{change:{fn:function(f){if(tinyMCE)tinyMCE.triggerSave();f.node.attributes.values[f.getName()]=f.getValue();f.node.attributes.updated=TJ.GetServerTime();this.setNodeText(f.node,1);this.fireEvent("change",this)},scope:this}}},items:node.attributes.fields,targetNode:node});this.fp.items.add(form);this.fp.doLayout();form.getForm().setValues(node.attributes.values)}else this.fp.setTitle("Select item","icon_page_white")},setValue:function(value){console.log(value);while(this.tp.getRootNode().lastChild)this.tp.getRootNode().removeChild(this.tp.getRootNode().lastChild);this.setForm();var val;for(var i=0;i<value.length;i++){val=value[i];node=this.getNodeTypeFromKey(val.key);if(node)this.tp.getRootNode().appendChild({key:val.key,text:val.text,updated:val.updated||0,keyText:node.text,fields:node.fields,titleFields:node.titleFields,iconCls:node.iconCls,values:val.values,leaf:true})}},getValue:function(){ret=Array();this.tp.getRootNode().eachChild(function(node){ret.push(this.getValueFromNode(node))},this);return ret},getValueFromNode:function(node){return{key:node.attributes.key,text:node.attributes.text,updated:node.attributes.updated,values:node.attributes.values}}});TJ.comp.ObjectTreePopup=Ext.extend(TJ.comp.GenericPopupWindow,{title:"List Selector",initComponent:function(){this.editor=new TJ.comp.ObjectTreeEditor;this.items=this.editor;TJ.comp.ObjectTreePopup.superclass.initComponent.call(this)},show:function(obj){this.editor.setupMenu(obj.field.nodes);this.editor.table=obj.field.table;TJ.comp.ObjectTreePopup.superclass.show.call(this,obj)},setValue:function(v){this.editor.setValue(v)},getValue:function(){return this.editor.getValue()}});TJ.comp.ObjectTree=Ext.extend(TJ.comp.GenericTriggerField,{width:400,popupClass:TJ.comp.ObjectTreePopup,getNullValue:function(){return[]},nodes:["video","image_link"],getDisplayValue:function(){var ret=[String.format("{0} item(s)",this.objectValue.length)];Ext.each(this.objectValue,function(f){ret.push(f.text)});console.log(this.objectValue,ret);return ret.join(", ")}});Ext.reg("tjobjecttree",TJ.comp.ObjectTree);TJ.comp.RSSRecords=Ext.extend(TJ.comp.ObjectTree,{nodes:["recordSource"]});Ext.reg("tjrssrecords",TJ.comp.RSSRecords);TJ.ListFields={directory:{fieldLabel:"Directory",name:"directory",xtype:"tjdirectory",multi:false,allowBlank:false,desc:"Please select the directory"},image:{fieldLabel:"Image",name:"image",xtype:"tjfile",multi:true,allowBlank:false},caption:{fieldLabel:"Caption",name:"caption",xtype:"tjtextarea",multi:true},credit:{fieldLabel:"Credit",name:"credit",xtype:"tjtext",multi:true},thumbnail:{fieldLabel:"Thumbnail",name:"thumbnail",xtype:"tjfile",multi:true},link:{fieldLabel:"Link",name:"link",xtype:"tjtext",multi:true},target:{fieldLabel:"Target",name:"target",xtype:"tjselect",store:[["_self","Same (_self)"],["_blank","New (_blank)"]],value:"_self"},html:{fieldLabel:"HTML",name:"html",multi:true,xtype:"tjhtmlpopup"},file:{fieldLabel:"File",name:"filename",xtype:"tjfile",multi:true},title:{fieldLabel:"Title",name:"title",xtype:"tjtext",multi:true},summary:{fieldLabel:"Summary",name:"summary",xtype:"tjtext",multi:true},table:{fieldLabel:"Table",name:"table",xtype:"tjtype"},tablefield:{fieldLabel:"Field",name:"field",xtype:"tjtablefield"},tableCompositeField:{fieldLabel:"Composite Field",name:"compfield",xtype:"tjtext"},recordfilter:{fieldLabel:"Filters",name:"filters",xtype:"tjrecordfilter"},video:{fieldLabel:"Video",name:"video",xtype:"tjvideopicker"}};TJ.comp.ObjectTreeEditor.prototype.multiDone=false;TJ.comp.ObjectTreeEditor.prototype.nodeTypes.image_thumbnail_link={iconCls:"icon_image_link",text:"Image (thumbnail, link)",titleFields:["title","image"],fields:[TJ.ListFields.image,TJ.ListFields.thumbnail,TJ.ListFields.link,TJ.ListFields.target,TJ.ListFields.title,TJ.ListFields.caption]};TJ.comp.ObjectTreeEditor.prototype.nodeTypes.image_autothumbnail_link={iconCls:"icon_image_link",text:"Image (auto thumbnail, link)",titleFields:["title","image"],fields:[TJ.ListFields.image,TJ.ListFields.link,TJ.ListFields.target,TJ.ListFields.title,TJ.ListFields.caption]};TJ.comp.ObjectTreeEditor.prototype.nodeTypes.video_autothumbnail={iconCls:"icon_monitor",text:"Video (auto thumbnail)",fields:[TJ.ListFields.video]};TJ.comp.ObjectTreeEditor.prototype.nodeTypes.html_thumbnail={iconCls:"icon_html",text:"HTML (thumbnail)",fields:[TJ.ListFields.html,TJ.ListFields.thumbnail]};TJ.comp.ObjectTreeEditor.prototype.nodeTypes.image_link={iconCls:"icon_image_link",text:"Image with link",titleFields:["image"],fields:[TJ.ListFields.image,TJ.ListFields.link,TJ.ListFields.target]};TJ.comp.ObjectTreeEditor.prototype.nodeTypes.image_directory={iconCls:"icon_image",text:"Image Gallery from directory",titleFields:["directory"],fields:[TJ.ListFields.directory,{fieldLabel:"Recursive",name:"recurse",xtype:"tjcheckbox",desc:"Check to recurse into this directory"}]};TJ.comp.ObjectTreeEditor.prototype.nodeTypes.video={iconCls:"icon_monitor",text:"Video Clip",titleFields:["title","videoid"],fields:[{fieldLabel:"Source",name:"source",xtype:"tjselect",store:["YouTube"],desc:"Select the source of the video"},{fieldLabel:"Video ID",name:"videoid",xtype:"tjtext",desc:"Enter the code for the video.<BR>For YouTube it's the code after the /v/ in the You Tube url for the video."},TJ.ListFields.title,TJ.ListFields.summary]};TJ.comp.ObjectTreeEditor.prototype.nodeTypes.file={iconCls:"icon_report",text:"File",fields:[TJ.ListFields.file,TJ.ListFields.target,TJ.ListFields.title,TJ.ListFields.summary]};TJ.comp.ObjectTreeEditor.prototype.nodeTypes.recordSource={iconCls:"icon_table_lightning",text:"Record Source",fields:[TJ.ListFields.table,TJ.ListFields.recordfilter]};TJ.comp.ObjectTreeEditor.prototype.nodeTypes.fieldTableFormat={iconCls:"icon_table",text:"Field",titleFields:["title","field"],fields:[TJ.ListFields.tablefield,TJ.ListFields.title,{xtype:"tjselect",name:"align",fieldLabel:"Text Align",store:["Left","Center","Right"]},{xtype:"tjselect",name:"format",fieldLabel:"Format",store:["None","DateShort","DateLong","TimeLong","DateTimeShort","DateTimeLong"],desc:"Format codes for this field."},{xtype:"tjcheckbox",name:"nowrap",fieldLabel:"Do not wrap"},{xtype:"tjselect",name:"link",store:[["none","None"],["link","Link to page"],["preview","Preview Widget"]],value:"none",fieldLabel:"Make Link",desc:"Link to display this record"}]};TJ.comp.ObjectTreeEditor.prototype.nodeTypes.fieldCompositeTableFormat={iconCls:"icon_table_gear",text:"Composite Field",titleFields:["title","compfield"],fields:[{fieldLabel:"Composite Field",name:"compfield",xtype:"tjtext"},TJ.ListFields.title,{xtype:"tjselect",name:"align",fieldLabel:"Text Align",store:["Left","Center","Right"]},{xtype:"tjcheckbox",name:"nowrap",fieldLabel:"Do not wrap"},{xtype:"tjselect",name:"link",store:[["none","None"],["link","Link to page"],["preview","Preview Widget"]],value:"none",fieldLabel:"Make Link",desc:"Link to display this record"}]};TJ.comp.ObjectTreeEditor.prototype.nodeTypes.fieldSpecialTableFormat={iconCls:"icon_table_gear",text:"Special Field",titleFields:["title","special"],fields:[{fieldLabel:"Special Field",name:"specialfield",xtype:"tjselect",store:["Updated Indicator","Media Icons","Media Summary"]},TJ.ListFields.title,{xtype:"tjselect",name:"align",fieldLabel:"Text Align",store:["Left","Center","Right"]},{xtype:"tjcheckbox",name:"nowrap",fieldLabel:"Do not wrap"},]};TJ.Admin.RecordPublishPanel=Ext.extend(Ext.form.FormPanel,{defaults:{anchor:"-20"},labelAlign:"right",labelWidth:80,border:false,bodyStyle:{padding:"6px",backgroundColor:"#DFE8F6"},initComponent:function(){this.items=[this.status=new TJ.comp.Select({listWidth:100,fieldLabel:"Status",name:"status",store:["Draft","For Translation","For Review","For Publishing","Published","Archived"]}),this.pubDate=new TJ.comp.DateTimeField({fieldLabel:"Published On",name:"pubDate"})];this.saveBtn=new Ext.Toolbar.Button({text:"Save",disabled:true,iconCls:"icon_accept",handler:function(){this.saveChanges()},scope:this});this.publishBtn=new Ext.Toolbar.Button({text:"Publish",iconCls:"icon_lightning",handler:this.publish,scope:this});this.publishNowBtn=new Ext.Toolbar.Button({text:"Publish Now",iconCls:"icon_lightning",handler:this.publish,scope:this,now:true});this.tbar=["->",this.saveBtn];this.setAllBtn=new Ext.Toolbar.Button({text:"Set All",disabled:false,iconCls:"icon_lightning",handler:this.setAll,qtip:"Set all published dates to their creation date",scope:this});this.bbar=[this.setAllBtn];this.status.on("select",function(){this.saveBtn.setDisabled(false)},this);this.pubDate.on("change",function(){this.saveBtn.setDisabled(false)},this);TJ.Admin.RecordPublishPanel.superclass.initComponent.call(this)},setAll:function(){TJ.CallbackManager.Direct({cls:"AdminTable",method:"SetPublishingForAll",callback:Ext.emptyFn,params:{table:this.tableinfo["class"]},scope:this})},publish:function(b){console.log("pub",b);this.record.set("_status","Published");this.publishBtn.setDisabled(true);TJ.CallbackManager.Direct({cls:"AdminTable",method:"SetPublishing",params:{table:this.tableinfo["class"],recordid:this.record.data._id,status:"Published",now:b.now},callback:this.pubCallback,scope:this})},pubCallback:function(val,res,opt){if(res.success)this.record.commit();else this.publishBtn.setDisabled(false)},saveChanges:function(){this.record.set("_status",this.status.getValue());this.record.set("_published",this.pubDate.getValue());this.saveBtn.setDisabled(true);TJ.CallbackManager.Direct({cls:"AdminTable",method:"SetPublishing",params:{table:this.tableinfo["class"],recordid:this.record.data._id,status:this.status.getValue(),pubDate:this.pubDate.getValue()},callback:this.saveCallback,scope:this})},saveCallback:function(val,res,opt){if(res.success){this.record.set("_status",res.data._status);this.record.set("_published",this.pubDate.getValue());this.record.commit()}else this.saveBtn.setDisabled(false)},setRecord:function(record){this.record=record;this.status.setValue(record.data._status);this.pubDate.setValue(record.data._published);this.saveBtn.setDisabled(true);this.publishBtn.setDisabled(record.data._status=="Published")}});TJ.Admin.RecordPreviewPanel=Ext.extend(Ext.grid.PropertyGrid,{title:"Preview",propertyNames:{},source:{},startEditing:Ext.emptyFn,initComponent:function(){this.propertyNames={};this.customRenderers={};this.source={};for(var i=0;i<this.tableinfo.columns.length;i++)this.propertyNames[this.tableinfo.columns[i].dataIndex]=this.tableinfo.columns[i].header;TJ.Admin.RecordPreviewPanel.superclass.initComponent.call(this);this.store.sortInfo=null;this.getColumnModel().renderCellDelegate=this.valueRenderer;if(this.recordid)this.setRecordByID(this.recordid)},valueRenderer:function(value,metadata,record,row,col,store){if(store.fullRecord.data["__"+record.id])return String.format("{0} ({1})",store.fullRecord.data["__"+record.id],value);return value},setRecord:function(record){this.store.fullRecord=record;var source={};for(name in record.data)if(this.propertyNames[name])source[name]=record.data[name];this.setSource(source)},setRecordByID:function(recordid){Ext.Ajax.request({url:TJ.LANGUAGESS+this.tableinfo.baseurl+"-"+recordid+":getrecord",params:{id:recordid},callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response);this.setRecord({data:res.record})},scope:this})}});TJ.Admin.RecordEditForm=Ext.extend(TJ.Admin.StatusPanelForm,{initComponent:function(){this.title="Edit "+this.tableinfo.lang.label;this.formconfig.url=this.rooturl+":doedit";TJ.Admin.RecordEditForm.superclass.initComponent.call(this)}});Ext.reg("tjadminrecordedit",TJ.Admin.RecordEditForm);TJ.Admin.RecordCopyForm=Ext.extend(TJ.Admin.StatusPanelForm,{initComponent:function(){this.title="Copy "+this.tableinfo.lang.label;this.formconfig.url=this.rooturl+":docopy";TJ.Admin.RecordEditForm.superclass.initComponent.call(this)}});Ext.reg("tjadminrecordcopy",TJ.Admin.RecordCopyForm);TJ.Admin.RecordHistoryPanel=Ext.extend(Ext.grid.GridPanel,{stripeRows:true,initComponent:function(){this.initialTitle=this.title="Viewing history of this "+this.tableinfo.lang.label;this.columns=[{header:"Timestamp",width:125,sortable:true,renderer:Ext.util.Format.dateRenderer("Y/m/d H:i:s"),dataIndex:"timestamp"},{header:"Action",width:100,sortable:true,dataIndex:"action",renderer:this.renderAction},{header:"Username (ID)",width:150,sortable:true,dataIndex:"username",renderer:this.renderUsername},{header:"Description",dataIndex:"desc"}];this.store=new Ext.data.Store({remoteSort:true,proxy:new Ext.data.HttpProxy({url:TJ.LANGUAGESS+this.tableinfo.baseurl+"-"+this.recordid+":gethistory"}),reader:new Ext.data.JsonReader({root:"rows",idProperty:null,totalProperty:"numrows"},[{name:"timestamp",type:"date",dateFormat:"Y-m-d H:i:s"},{name:"action"},{name:"username"},{name:"desc"},{name:"userid"}])});this.store.on("load",function(){this.setTitle(this.initialTitle)},this);this.bbar=new Ext.PagingToolbar({pageSize:20,store:this.store,displayInfo:true,displayMsg:"Displaying history  {0} - {1} of {2}",emptyMsg:"No history to display"});this.store.load({params:{start:0,limit:20}});TJ.Admin.RecordHistoryPanel.superclass.initComponent.call(this);TJ.Admin.TableManager.on("tabledatachange",this.tableDataChange,this)},tableDataChange:function(table,operation,recordid){if(table==this.tableinfo.table&&recordid==this.recordid)this.setTitle(this.initialTitle+"*")},renderUsername:function(value,p,record){return String.format("{0} ({1})",record.data.username,record.data.userid)},renderAction:function(value,p,record){return value}});Ext.reg("tjadminrecordhistory",TJ.Admin.RecordHistoryPanel);TJ.Admin.RecordSecurePanel=Ext.extend(Ext.TabPanel,{activeTab:0,defaults:{autoScroll:true,layout:"fit",loaded:false},initComponent:function(){this.title="Secure access for this "+this.tableinfo.lang.plural;this.items=[{title:"Users",func:"users"},{title:"Usergroups",func:"groups"}];this.on("tabchange",this.tabChange);TJ.Admin.RecordSecurePanel.superclass.initComponent.call(this)},tabChange:function(mainpanel,tab){if(tab.func)if(!tab.loaded){var panel;if(tab.func=="users")TJ.CallbackManager.GetInfo({url:TJ.LANGUAGESS+"admin/apps/content-cl_user_account_table:gettableinfo2",callback:function(val){panel=new TJ.Admin.TableRelatedGridPanel({title:"Users with access to this content",tableinfo:val,relation:{table:this.tableinfo["class"],id:this.recordid}});tab.add(panel);tab.doLayout();tab.loaded=true},scope:this});else if(tab.func=="groups")TJ.CallbackManager.GetInfo({url:TJ.LANGUAGESS+"admin/apps/content-cl_user_group_table:gettableinfo2",callback:function(val){panel=new TJ.Admin.TableRelatedGridPanel({title:"Usergroups with access to this content",tableinfo:val,relation:{table:this.tableinfo["class"],id:this.recordid}});tab.add(panel);tab.doLayout();tab.loaded=true},scope:this});else console.log(tab.func)}}});Ext.reg("tjadminrecordsecure",TJ.Admin.RecordSecurePanel);TJ.Admin.RecordRelatedGridPanel=Ext.extend(TJ.Admin.TableAddRemoveGridPanel,{initComponent:function(){this.baseParams=this.relation;TJ.Admin.TableRelatedGridPanel.superclass.initComponent.call(this)},addRecord:function(record){Ext.Ajax.request({url:TJ.LANGUAGESS+this.tableinfo.baseurl+":relatedadd",params:{reltab:this.relation.table,relid:this.relation.id,relname:this.relation.relname,id:record._id},callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response);if(res.success)this.store.reload()},scope:this})},removeRecords:function(records,ids){Ext.Ajax.request({url:TJ.LANGUAGESS+this.tableinfo.baseurl+":relatedrem",params:{reltab:this.relation.table,relid:this.relation.id,relname:this.relation.relname,ids:ids.join(",")},callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response);if(res.success)for(var i=0;i<records.length;i++){this.store.remove(records[i]);ids[i]=records[i].data["_id"]}},scope:this})}});Ext.reg("tjadminrecordrelated",TJ.Admin.RecordRelatedGridPanel);TJ.Admin.RecordTaggingPanel=Ext.extend(Ext.grid.GridPanel,{stripeRows:true,border:false,maskDisabled:false,initComponent:function(){this.saveBtn=new Ext.Toolbar.Button({text:"Save",disabled:true,iconCls:"icon_accept",handler:function(){this.saveChanges()},scope:this});this.refreshBtn=new Ext.Toolbar.Button({text:"Refresh",disabled:false,iconCls:"icon-refresh",handler:function(){this.getAllTags()},scope:this});this.autoTagBtn=new Ext.Toolbar.Button({text:"AutoTag",disabled:false,iconCls:"icon_tag_yellow",handler:this.autoTag,scope:this});this.tbar=[this.autoTagBtn,this.refreshBtn];this.bbar=["->",this.saveBtn];this.sm=new Ext.grid.CheckboxSelectionModel;this.store=new Ext.data.SimpleStore({fields:["_id","text","__group"]});this.columns=[this.sm,{header:"ID",align:"right",sortable:true,width:40,dataIndex:"_id"},{header:"Tag",sortable:true,width:80,dataIndex:"text"},{header:"Group",sortable:true,width:80,dataIndex:"__group"}];this.getAllTags();TJ.Admin.RecordTaggingPanel.superclass.initComponent.call(this);this.getSelectionModel().on("selectionchange",this.selChange,this)},autoTag:function(){if(this.record.data)Ext.Ajax.request({url:TJ.LANGUAGESS+this.tableinfo.baseurl+":autotag",params:{id:this.record.data._id},callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response);console.log("autotag result",res);return;if(res.data){this.store.each(function(r){for(var i=0;i<res.data.length;i++)if(r.data._id==res.data[i])this.getSelectionModel().selectRecords([r],true)},this);this.setDisabled(false);this.loading=false}},scope:this})},getAllTags:function(){TJ.CallbackManager.GetInfo({url:TJ.LANGUAGESS+"admin/apps/content:getalltags",callback:this.tagsCallback,refresh:true,scope:this})},selChange:function(){if(this.loading)return;console.log("change");this.saveBtn.setDisabled(false)},saveChanges:function(){if(this.loading)return;var arr=Array();this.getSelectionModel().each(function(i){arr.push(i.data._id*1)});Ext.Ajax.request({url:TJ.LANGUAGESS+this.tableinfo.baseurl+":updatetags",params:{id:this.record.data._id,tags:arr.join(",")},callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response);if(res.success)console.log(res)},scope:this});this.saveBtn.setDisabled(true)},tagsCallback:function(val){this.store.removeAll();for(var i=0;i<val.length;i++)this.store.loadData([[val[i]._id,val[i].text,val[i].__group]||"[No Group]"],true);this.getTags()},render:function(ct,pos){TJ.Admin.RecordTaggingPanel.superclass.render.call(this,ct,pos);this.getTags()},record:{},setRecord:function(record){this.record=record;this.getTags()},loading:false,getTags:function(){if(this.rendered){this.setDisabled(true);this.loading=true;this.getSelectionModel().clearSelections();if(this.record.data)Ext.Ajax.request({url:TJ.LANGUAGESS+this.tableinfo.baseurl+":gettags",params:{id:this.record.data._id},callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response);console.log(res);if(res.data){this.store.each(function(r){for(var i=0;i<res.data.length;i++)if(r.data._id==res.data[i])this.getSelectionModel().selectRecords([r],true)},this);this.setDisabled(false);this.loading=false}},scope:this});else this.loading=false}}});TJ.Admin.RecordMediaPanel=Ext.extend(TJ.comp.ObjectTreeEditor,{title:"Media Panel",initComponent:function(){this.title="Media for this "+this.tableinfo.lang.label;this.saveBtn=new Ext.Toolbar.Button({text:"Save",tooltip:"Save Changes",iconCls:"icon_accept",handler:this.saveChanges,scope:this});this.bbar=["->",this.saveBtn];TJ.Admin.RecordMediaPanel.superclass.initComponent.call(this);this.on("change",function(){},this);if(this.recordid)this.getData(this.recordid)},getData:function(recordid){Ext.Ajax.request({url:TJ.LANGUAGESS+this.tableinfo.baseurl+"-"+recordid+":getextramedia",callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response);if(res.data&&res.data.media)this.setValue(Ext.util.JSON.decode(res.data.media))},scope:this})},saveChanges:function(){Ext.Ajax.request({url:TJ.LANGUAGESS+this.tableinfo.baseurl+"-"+this.recordid+":saveextramedia",params:{media:Ext.util.JSON.encode(this.getValue())},callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response)},scope:this})}});Ext.reg("tjadminrecordmedia",TJ.Admin.RecordMediaPanel);TJ.Admin.RecordCommentsPanel=Ext.extend(Ext.Panel,{title:"Record Comments Panel",layout:"border",initComponent:function(){this.title=String.format("User comments for this {0}",this.tableinfo.lang.label);this.statusBtn=new Ext.CycleButton({showText:true,disabled:true,prependText:"Status: ",itemIndex:0,defaults:{iconCls:"icon_table"},items:[{value:"open",text:"Open",iconCls:"icon_page_green"},{value:"closed",text:"Closed",iconCls:"icon_page_key"}]});this.daysOpen=new TJ.comp.IntegerField({minValue:0,maxValue:360,width:40});this.expiryTime=new Ext.Toolbar.TextItem({text:""});this.saveBtn=new Ext.Toolbar.Button({text:"Save",iconCls:"icon_accept",handler:this.saveChanges,disabled:true,scope:this});this.grid=new TJ.Admin.TableGridPanel({tableinfo:this.commenttableinfo,region:"center"});this.grid.store.baseParams["comments_recordid"]=this.recordid;this.grid.store.baseParams["comments_table"]=this.tableinfo.table;this.items=[this.grid];this.tbar=["Thread Settings:",this.statusBtn,"Days Open",this.daysOpen,this.saveBtn,this.expiryTime];TJ.Admin.RecordCommentsPanel.superclass.initComponent.call(this);this.grid.store.baseParams["comments_recordid"]=this.recordid;this.grid.store.baseParams["comments_table"]=this.tableinfo.table;this.getSettings()},getSettings:function(){TJ.CallbackManager.Direct({cls:"Comments",method:"GetCommentSettings",params:{recordid:this.recordid,table:this.tableinfo["class"]},callback:this.getSettingsCallback,scope:this})},getSettingsCallback:function(val,res,opt){this.daysOpen.setValue(val.daysOpen);this.settings=val;this.setExpiryText();Ext.each(this.statusBtn.menu.items.items,function(i){if(val.status==i.value){this.statusBtn.setActiveItem(i,true);return false}},this);this.statusBtn.setDisabled(false);this.statusBtn.on("change",this.change,this);this.daysOpen.on("change",this.change,this)},setExpiryText:function(){var days=this.daysOpen.getValue();var pubDate=new Date(this.settings.pubDate*1e3);var expiry=pubDate.add(Date.DAY,days*1+1).add(Date.MINUTE,-1);if(days>0)this.expiryTime.setText(String.format("Published on <b>{0}</b>.  Comments close on <b>{1}</b>",pubDate.format("j-M-Y"),expiry.format("j-M-Y g:i a")));else this.expiryTime.setText(String.format("Published on <b>{0}</b>.  Comments do not close automatically",pubDate.format("j-M-Y")))},change:function(){this.setExpiryText(this.daysOpen.getValue());this.saveBtn.setDisabled(false)},saveChanges:function(){TJ.CallbackManager.Direct({cls:"Comments",method:"SetCommentSettings",params:{status:this.statusBtn.getActiveItem().value,daysOpen:this.daysOpen.getValue(),recordid:this.recordid,table:this.tableinfo["class"]},callback:this.saveCallback,scope:this})},saveCallback:function(val,res,opt){this.saveBtn.setDisabled(true)}});Ext.reg("tjadminrecordcomments",TJ.Admin.RecordCommentsPanel);TJ.Admin.RecordQuickRelatedPanel=Ext.extend(Ext.grid.GridPanel,{stateId:"TJ_Admin_RecordQuickRelatedPanel",title:"Related",stripeRows:true,border:false,maskDisabled:false,initComponent:function(){this.saveBtn=new Ext.Toolbar.Button({text:"Save",disabled:true,iconCls:"icon_accept",handler:function(){this.saveChanges()},scope:this});this.refreshBtn=new Ext.Toolbar.Button({disabled:true,iconCls:"icon-refresh",handler:function(){this.setRecord(this.record)},scope:this});this.countBtn=new Ext.CycleButton({showText:true,prependText:"Records: ",itemIndex:0,defaults:{iconCls:"icon_table"},items:[{text:"10",iconCls:"icon_table",checked:true},{text:"20",iconCls:"icon_table"},{text:"50",iconCls:"icon_table"}]});this.countBtn.on("change",function(b,i){this.setRecord(this.record)},this);this.textFilter=new Ext.form.TextField({width:100,enableKeyEvents:true});this.textFilter.on("keypress",function(field,e){console.log(e.keyCode);if(e.keyCode==13)this.setRecord(this.record)},this);this.textFilter.on("change",function(){this.setRecord(this.record)},this);this.tbar=[this.refreshBtn,this.countBtn,"Search: ",this.textFilter,"->",this.saveBtn];this.sm=new Ext.grid.CheckboxSelectionModel({checkOnly:true,header:""});this.store=new Ext.data.GroupingStore({remoteSort:false,groupField:"relation",sortInfo:{field:"_id",direction:"DESC"},url:TJ.LANGUAGESS+this.tableinfo.baseurl+"-"+":getquickrelations",reader:new Ext.data.JsonReader({root:"rows",totalProperty:"numrows"},[{name:"relation"},{name:"_classname"},{name:"_id",type:"int"},{name:"text"},{name:"_related"},{name:"name"}])});this.view=new Ext.grid.GroupingView({startCollapsed:true,hideGroupedColumn:true,emptyText:"No relations defined",enableGroupingMenu:false,autoFill:true,forceFit:true});this.columns=[this.sm,{header:"Relation",sortable:true,width:120,dataIndex:"relation"},{header:"ID",sortable:true,width:40,dataIndex:"_id"},{header:"Summary",sortable:true,dataIndex:"text"}];TJ.Admin.RecordQuickRelatedPanel.superclass.initComponent.call(this);this.getSelectionModel().on("selectionchange",this.selChange,this)},saveChanges:function(){val=Array();this.store.each(function(rec){if(this.getSelectionModel().isSelected(rec))val.push({reltab:rec.data._classname,relid:rec.data._id,name:rec.data.name,action:true});else val.push({reltab:rec.data._classname,relid:rec.data._id,name:rec.data.name,action:false})},this);if(this.body)this.body.mask("Saving...");Ext.Ajax.request({url:TJ.LANGUAGESS+this.tableinfo.baseurl+"-"+this.record.data._id+":savequickrelations",params:{actions:Ext.util.JSON.encode(val)},callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response);if(res.success){if(this.body)this.body.unmask();this.saveBtn.setDisabled(true);this.refreshBtn.setDisabled(true)}},scope:this})},loadCallback:function(recs,opt,success){this.store.each(function(r){if(r.data._related)this.getSelectionModel().selectRecords([r],true)},this);this.saveBtn.setDisabled(true);this.refreshBtn.setDisabled(true);if(this.body)this.body.unmask()},loadRecord:null,record:null,setRecord:function(record){if(this.rendered){if(this.body)this.body.mask("Loading...");this.record=record;console.log("va",this.textFilter.getValue());this.store.baseParams["search"]=this.textFilter.getValue();var counter=this.countBtn.getActiveItem();if(counter)this.store.baseParams["limit"]=counter.text;else this.store.baseParams["limit"]=10;this.store.proxy.conn.url=TJ.LANGUAGESS+this.tableinfo.baseurl+"-"+record.data._id+":getquickrelations";this.store.reload({callback:this.loadCallback,scope:this})}else this.loadRecord=record},render:function(ct,pos){TJ.Admin.RecordQuickRelatedPanel.superclass.render.call(this,ct,pos);if(this.loadRecord){this.setRecord(this.loadRecord);this.loadRecord=null}},selChange:function(record){this.saveBtn.setDisabled(false);this.refreshBtn.setDisabled(false)}});TJ.Admin.RecordView=Ext.extend(Ext.Panel,{layout:"border",border:false,initComponent:function(){this.title="View "+this.tableinfo.lang.label;this.tagger=new TJ.Admin.NewTagPicker({tableinfo:this.tableinfo,title:"Content Tagging",region:"east",layout:"fit",split:true,width:400,frame:false});this.items=[new TJ.Admin.RecordPreviewPanel({title:"",recordid:this.recordid,tableinfo:this.tableinfo,region:"center",layout:"fit",frame:false}),this.tagger];this.tagger.setRecordId(this.recordid);TJ.Admin.RecordView.superclass.initComponent.call(this)}});Ext.reg("tjadminrecordview",TJ.Admin.RecordView);TJ.comp.ImageGallery=Ext.extend(Ext.util.Observable,{width:0,height:0,minWidth:160,minHeight:120,ratio:3/4,constructor:function(el,config){config=config||{};Ext.apply(this,config);TJ.comp.ImageGallery.superclass.constructor.call(this,config);this.el=Ext.get(el);if(!this.width)this.width=this.el.getWidth(1);this.width=Math.max(this.width,this.minWidth);this.el.setWidth(this.width);if(!this.height)this.height=this.width*this.ratio;this.height=Math.max(this.height,this.minHeight);console.log("wh",this.width,this.height);if(this.el){this.els=[];this.initMarkup();this.initEvents()}},navCountText:"{0} of {1}",thumbnailText:"Thumbnails",initMarkup:function(){var dh=Ext.DomHelper;this.els.imageCont=this.el.select(".imageCont").first();this.els.imageCont.setHeight(this.height);this.els.imageCont.setWidth(this.width);this.els.navCont=this.el.select(".navCont > span").first();this.els.image=dh.append(this.els.imageCont,{tag:"img",style:"display: none;"},true);this.els.preload=dh.append(this.els.imageCont,{tag:"img",style:"display: none;"},true);this.els.image.on("load",this.imageLoaded,this);this.els.caption=this.el.select(".descriptionCont").first();this.expand=this.el.select(".expand").first();if(Ext.getBody().getViewSize().width<920||Ext.getBody().getViewSize().height<600)this.expand.setStyle({display:"none"});this.next=this.el.select("a.navNext").first();this.prev=this.el.select("a.navPrev").first();this.display(0)},initEvents:function(){this.next.on("click",function(ev){ev.preventDefault();this.display(this.index+1)},this);this.prev.on("click",function(ev){ev.preventDefault();this.display(this.index-1)},this);this.expand.on("click",function(ev){ev.preventDefault();this.doExpand()},this)},index:-1,display:function(index){if(this.imgs[index]){this.els.image.setStyle({display:"none"});this.index=index;this.els.image.set({src:this.scaleImage(this.imgs[index].src,this.width,this.height)});this.els.caption.update(this.getCaption(index));this.els.navCont.update(String.format(this.navCountText,this.index+1,this.imgs.length))}if(index<this.imgs.length-1)this.els.preload.set({src:this.scaleImage(this.imgs[index+1].src,this.width,this.height)});if(this.index===0)this.prev.addClass("disabled");else this.prev.removeClass("disabled");if(this.index==this.imgs.length-1)this.next.addClass("disabled");else this.next.removeClass("disabled")},imageLoaded:function(){this.els.image.setStyle({display:"block"})},scaleImage:function(src,width,height,crop){var cropme=crop?"":"m.";if(src.substring(0,7)=="/files/"){var d=String.format("/_cache{0}..{4}w{1}.h{2}{3}",src.substring(0,src.length-4),width,height,src.substring(src.length-4),cropme);return d}return src},getCaption:function(index){var cap="";if(this.imgs[index].caption.length)cap=String.format('<span class="caption">{0}</span>',this.imgs[index].caption);if(this.imgs[index].credit.length)cap+=String.format('<span class="credit">{0}</span>',this.imgs[index].credit);return cap},doExpand:function(){this.initModalMarkup();this.modal.setStyle({visibility:"visible"});this.enableKeyNav();this.modalDisplay.defer(5,this,[this.index])},modal:null,initModalMarkup:function(){var dh=Ext.DomHelper;if(this.modal)return;this.modal=dh.append(document.body,{tag:"div",id:"imageGalleryModal"},true);this.modal.setStyle({height:Ext.getBody().getSize().height+"px"});this.els.modalContainer=dh.append(this.modal,{tag:"div",cls:"modalContainer"},true);this.els.modalNext=dh.append(this.els.modalContainer,{tag:"a",cls:"navNext",href:"#next",html:"next"},true);this.els.modalNext.on("click",function(ev){ev.preventDefault();this.modalDisplay(this.index+1)},this);this.els.modalPrev=dh.append(this.els.modalContainer,{tag:"a",cls:"navPrev",href:"#previous",html:"previous"},true);this.els.modalPrev.on("click",function(ev){ev.preventDefault();this.modalDisplay(this.index-1)},this);this.els.modalImageContainer=dh.append(this.els.modalContainer,{tag:"div",cls:"imageContainer"},true);this.els.modalImage=dh.append(this.els.modalImageContainer,{tag:"img"},true);this.els.modalImage.on("load",this.modalImageLoaded,this);this.els.modalInfoBar=dh.append(this.els.modalImageContainer,{tag:"div",cls:"infoBar"},true);this.els.thumbnailLink=dh.append(this.els.modalInfoBar,{tag:"a",cls:"thumbnails",href:"#thumb",html:this.thumbnailText},true);this.els.modalInfo=dh.append(this.els.modalInfoBar,{tag:"span"},true);this.els.modalCaption=dh.append(this.els.modalImageContainer,{cls:"caption"},true);this.els.modalClose=dh.append(this.els.modalImageContainer,{tag:"a",cls:"modalClose",href:"#close"},true);this.initModalEvents()},thWidth:120,thHeight:90,modalThumbnailDisplay:function(){if(!this.els.thumbnails)this.createThumbs();if(this.els.thumbnails.isVisible()){this.modalDisplay(this.index);this.els.thumbnails.setStyle({display:"none"})}else{this.els.thumbnails.setStyle({display:"block"});this.els.modalImageContainer.setWidth(800);this.els.modalImageContainer.setHeight(600);this.els.modalImageContainer.setStyle({"margin-top":"0"})}},createThumbs:function(){var dh=Ext.DomHelper;this.els.thumbnails=dh.append(this.els.modalImageContainer,{tag:"div",cls:"thumbnails"},true);this.els.thumbnails.setStyle({display:"none"});var ul=dh.append(this.els.thumbnails,{tag:"ol"},true);for(var i=0;i<this.imgs.length;i++)dh.append(ul,{tag:"li",children:{tag:"img",width:this.thWidth+"px",height:this.thHeight+"px",ref:i,src:this.scaleImage(this.imgs[i].src,this.thWidth,this.thHeight,1)}},true);this.els.thumbnails.select("img").on("click",function(ev,el){this.modalDisplay(el.getAttribute("ref")*1)},this)},initModalEvents:function(){this.els.modalCaption.on("click",function(ev){this.els.modalCaption.setStyle({display:"none"})},this);this.els.modalClose.on("click",function(ev){ev.preventDefault();this.modalClose()},this);this.els.thumbnailLink.on("click",function(ev){ev.preventDefault();this.modalThumbnailDisplay()},this)},modalImageLoaded:function(){var myImage=new Image;myImage.src=this.imgs[this.index].src;var w,h;w=myImage.width;h=myImage.height;if(h>560){w=560*w/h;h=560}if(w>800){h=800*h/w;w=800}console.log("wh",w,h);this.els.modalImageContainer.setWidth(w);this.els.modalImageContainer.setHeight(h+40);this.els.modalImage.set({width:w,height:h});this.els.modalCaption.setWidth(w);this.els.modalImageContainer.setStyle({"margin-top":(560-h)/2+"px"});this.els.modalImageContainer.setStyle({display:"block"})},modalDisplay:function(index){if(this.els.thumbnails)this.els.thumbnails.setStyle({display:"none"});if(this.imgs[index]){this.els.modalImageContainer.setStyle({display:"none"});this.index=index;this.els.modalImage.set({src:this.imgs[index].src});var cap=this.getCaption(index);if(cap.length){this.els.modalCaption.update(this.getCaption(index));this.els.modalCaption.setStyle({display:"block"})}else this.els.modalCaption.setStyle({display:"none"});this.els.modalInfo.update(String.format(this.navCountText,this.index+1,this.imgs.length))}if(index<this.imgs.length-1)this.els.preload.set({src:this.imgs[index+1].src});if(this.index===0)this.els.modalPrev.addClass("disabled");else this.els.modalPrev.removeClass("disabled");if(this.index==this.imgs.length-1)this.els.modalNext.addClass("disabled");else this.els.modalNext.removeClass("disabled")},enableKeyNav:function(){Ext.fly(document).on("keydown",this.keyNavAction,this)},disableKeyNav:function(){Ext.fly(document).un("keydown",this.keyNavAction,this)},keyNavAction:function(ev){var keyCode=ev.getKey();if(keyCode==88||keyCode==67||keyCode==27)this.modalClose();else if(keyCode==80||keyCode==37)this.modalDisplay(this.index-1);else if(keyCode==78||keyCode==39)this.modalDisplay(this.index+1)},modalClose:function(){this.disableKeyNav();this.modal.setStyle({visibility:"hidden"});this.els.modalImageContainer.setStyle({display:"none"});this.display.defer(5,this,[this.index])}});TJ.comp.ContentSlider=Ext.extend(Ext.util.Observable,{slideSelector:"ol.slider-slides",thumbSelector:"ol.slider-thumbs",captionSelector:"ol.slider-captions",wrap:true,interval:3,freezeOnHover:true,autoPlay:true,transitionType:"fade",transitionDuration:1,width:800,height:600,thumbWidth:120,thumbHeight:90,disabledThumbnail:80,activeSlide:-1,constructor:function(el,config){config=config||{};Ext.apply(this,config);TJ.comp.ContentSlider.superclass.constructor.call(this,config);this.addEvents("beforeprev","prev","beforenext","next","change","play","pause","freeze","unfreeze");this.el=Ext.get(el);if(this.el){this.el.setStyle("position","relative");this.els=[];this.initMarkup();this.initEvents();if(this.sliderSize>0)if(this.random)this.refresh(Math.floor(Math.random()*this.sliderSize));else this.refresh(0)}},initMarkup:function(){var dh=Ext.DomHelper;this.sliderSize=0;this.slides=new Array;this.thumbs=new Array;this.captions=new Array;if(!this.el)return;this.els.slides=this.el.select(this.slideSelector,true).first();this.els.wrap=this.el.select("div.slider-wrap").first();var slides=this.els.slides.select("li",true);slides.addClass("slider-slide");slides.setStyle({position:"absolute",top:0,left:0});slides.each(function(item){this.slides.push(item)},this);this.els.thumbs=this.el.select(this.thumbSelector,true);if(this.els.thumbs.getCount()===0)this.els.thumbs=this.el.createChild({tag:"ol",cls:"slider-tabs"});else this.els.thumbs=this.els.thumbs.first();var thumbs=this.els.thumbs.select("li",true);var fullThumbs=true;if(thumbs.getCount()<slides.getCount()){fullThumbs=false;for(var i=thumbs.getCount();i<slides.getCount();i++)this.els.thumbs.createChild({tag:"li",html:"&#x25CF;"})}thumbs=this.els.thumbs.select("li",true);if(fullThumbs)thumbs.setStyle({width:this.thumbWidth+"px",height:this.thumbHeight+"px"});var thumbWidth=0;thumbs.each(function(item){thumbWidth+=item.getWidth();Ext.fly(item).set({rel:this.thumbs.length});this.thumbs.push(item)},this);if(fullThumbs)this.els.thumbs.setStyle({width:thumbWidth+"px"});this.els.captions=this.el.select(this.captionSelector,true);this.els.captions.setStyle("visibility","visible");var captions=this.els.captions.select("> li",true);captions=this.el.select(this.captionSelector+" li",true);if(this.els.captions.getCount()){captions.each(function(item){this.captions.push(item);item.setStyle("display","none")},this);captions.first().setStyle("display","block")}this.els.navPrev=dh.append(this.els.wrap,{cls:"slider-navPrev",tag:"a",html:"Prev"},true);this.els.navNext=dh.append(this.els.wrap,{cls:"slider-navNext",tag:"a",html:"Next"},true);this.els.customNav=dh.append(this.el,{cls:"slider-customNav"},true);this.els.customPrev=dh.append(this.els.customNav,{cls:"slider-customPrev",tag:"a",html:"Previous"},true);this.els.customNext=dh.append(this.els.customNav,{cls:"slider-customNext",tag:"a",html:"Next"},true);this.els.prevButtons=new Ext.CompositeElement;this.els.prevButtons.add(this.els.customPrev);this.els.prevButtons.add(this.els.navPrev);this.els.nextButtons=new Ext.CompositeElement;this.els.nextButtons.add(this.els.customNext);this.els.nextButtons.add(this.els.navNext);this.sliderSize=this.slides.length},refresh:function(start){this.sliderSize=this.slides.length;this.setSlide(start,true);return this},initEvents:function(){if(!this.els)return;this.els.prevButtons.on("click",function(ev){ev.preventDefault();var target=ev.getTarget();target.blur();if(Ext.fly(target).hasClass("disabled"))return;this.prev()},this);this.els.nextButtons.on("click",function(ev){ev.preventDefault();var target=ev.getTarget();target.blur();if(Ext.fly(target).hasClass("disabled"))return;this.next()},this);this.els.thumbs.on("click",function(ev,li){ev.preventDefault();var target=ev.getTarget();target.blur();if(!target.getAttribute("rel"))target=Ext.fly(target).findParent("li");if(target&&target.getAttribute("rel"))this.setSlide(target.getAttribute("rel"))},this);if(this.freezeOnHover)this.el.hover(function(e){if(this.playing){this.fireEvent("freeze",this.slides[this.activeSlide]);Ext.TaskMgr.stop(this.playTask)}},function(e){if(this.playing){this.fireEvent("unfreeze",this.slides[this.activeSlide]);this.playTaskBuffer.delay(this.interval*1e3/2)}},this);if(this.interval&&this.autoPlay)this.play()},prev:function(){if(this.fireEvent("beforeprev")===false)return this;this.setSlide(this.activeSlide-1);this.fireEvent("prev",this.activeSlide);return this},next:function(){if(this.fireEvent("beforenext")===false)return this;this.setSlide(this.activeSlide+1);this.fireEvent("next",this.activeSlide);return this},play:function(){if(!this.playing){this.playTask=this.playTask||{run:function(){this.playing=true;this.setSlide(this.activeSlide+1)},interval:this.interval*1e3,scope:this};this.playTaskBuffer=this.playTaskBuffer||new Ext.util.DelayedTask(function(){Ext.TaskMgr.start(this.playTask)},this);this.playTaskBuffer.delay(this.interval*1e3);this.playing=true;this.fireEvent("play")}return this},setSlide:function(index,initial){index=index*1;if(!this.wrap&&!this.slides[index])return;if(this.wrap)index=(index+this.sliderSize)%this.sliderSize;if(!this.slides[index])return;if(index==this.activeSlide)return;if(!initial)switch(this.transitionType){case"fade":if(this.slides[index])this.slides[index].fadeIn({duration:this.transitionDuration,useDisplay:true});if(this.slides[this.activeSlide])this.slides[this.activeSlide].fadeOut({duration:this.transitionDuration,useDisplay:true});break;case"slide vertical":if(index>this.activeSlide){this.slides[this.activeSlide].shift({duration:this.transitionDuration,top:-this.height,easing:"easeOut"});this.slides[index].setStyle("top",this.height+"px");this.slides[index].setStyle("display","block");this.slides[index].shift({duration:this.transitionDuration,top:0,easing:"easeOut"})}else{this.slides[this.activeSlide].shift({duration:this.transitionDuration,top:this.height,easing:"easeOut"});this.slides[index].setStyle("top",-this.height+"px");this.slides[index].setStyle("display","block");this.slides[index].shift({duration:this.transitionDuration,top:0,easing:"easeOut"})}break;case"slide horizontal":if(index>this.activeSlide){this.slides[this.activeSlide].shift({duration:this.transitionDuration,left:-this.width,easing:"easeOut"});this.slides[index].setStyle("left",this.width+"px");this.slides[index].setStyle("display","block");this.slides[index].shift({duration:this.transitionDuration,left:0,easing:"easeOut"})}else{this.slides[this.activeSlide].shift({duration:this.transitionDuration,left:this.width,easing:"easeOut"});this.slides[index].setStyle("left",-this.width+"px");this.slides[index].setStyle("display","block");this.slides[index].shift({duration:this.transitionDuration,left:0,easing:"easeOut"})}break;default:this.slides[this.activeSlide].setStyle("display","none");this.slides[index].setStyle("display","block");break}else this.slides[index].setStyle("display","block");if(this.captions.length)if(initial){if(this.captions[index])this.captions[index].setStyle("display","block")}else{this.captions[this.activeSlide].setStyle("display","none");this.captions[index].setStyle("display","block")}this.activeSlide=index;this.updateNav()},updateNav:function(){this.els.prevButtons.removeClass("disabled");this.els.nextButtons.removeClass("disabled");if(!this.wrap){if(this.activeSlide===0)this.els.prevButtons.addClass("disabled");if(this.activeSlide===this.sliderSize-1)this.els.nextButtons.addClass("disabled")}for(var x=0;x<this.thumbs.length;x++){var img=Ext.get(this.thumbs[x]).first();if(x==this.activeSlide){this.thumbs[x].addClass("active");if(img)img.setStyle({width:this.thumbWidth+"px",height:this.thumbHeight+"px",padding:0})}else{this.thumbs[x].removeClass("active");if(img)img.setStyle({width:this.thumbWidth*this.disabledThumbnail/100+"px",height:this.thumbHeight*this.disabledThumbnail/100+"px",padding:String.format("{0}px {1}px",this.thumbHeight*(100-this.disabledThumbnail)/200,this.thumbWidth*(100-this.disabledThumbnail)/200)})}}}});TJ.Admin.WorkflowGridPanel=Ext.extend(Ext.grid.GridPanel,{stripeRows:true,border:false,objectClass:"",objectTable:"All objects",initComponent:function(){this.columns=[{header:"User/Usergroup",sortable:true,width:160,dataIndex:"user",renderer:this.userRenderer},{header:"Table",sortable:true,width:160,dataIndex:"desc"},{header:"Users Content",sortable:true,width:60,dataIndex:"own"},{header:"All Content",sortable:true,width:60,dataIndex:"all"}];this.deleteBtn=new Ext.Toolbar.Button({text:"Remove Role",disabled:true,tooltip:"Remove the selected entries",iconCls:"icon_delete",scope:this,handler:function(){var records=this.getSelectionModel().getSelections();var rec=records[0];console.log(rec);var msg=String.format("<TABLE><TR><TD>{0}</td><td>{1}</td></tr><TR><TD>{2}</td><td>{3}</td></tr></table>",rec.data["userid"]<0?"Usergroup":"User",rec.data["user"],"Table",rec.data["desc"]);Ext.Msg.show({title:"Please confirm",width:300,msg:"Are you sure you want to remove the selected content role?<BR> "+msg,buttons:Ext.Msg.YESNO,records:records,scope:this,fn:function(btn){if(btn=="yes")Ext.Ajax.request({url:TJ.LANGUAGESS+"admin/security/roles:removerole",params:{user:rec.data.userid,object:rec.data.object},scope:this,callback:function(options,success,response){var res=TJ.Admin.ProcessJSONResponse(options,success,response);this.store.reload()}})},animEl:this.deleteBtn,icon:Ext.MessageBox.QUESTION})}});this.tbar=[{iconCls:"icon-refresh",handler:function(){this.store.reload()},scope:this},"-",{text:"Add Role",iconCls:"icon_user_add",handler:this.addUser,scope:this},this.deleteBtn];this.store=new Ext.data.Store({remoteSort:false,proxy:new Ext.data.HttpProxy({url:TJ.LANGUAGESS+"admin/security/roles:getdata"}),reader:new Ext.data.JsonReader({root:"rows",totalProperty:"numrows"},[{name:"userid",type:"int"},{name:"user"},{name:"object"},{name:"desc"},{name:"own"},{name:"all"},{name:"scope"}])});this.sm=new Ext.grid.RowSelectionModel({singleSelect:true});this.status=new Ext.StatusBar({iconCls:"ready-icon",defaultText:"Ready"});this.bbar=this.status;TJ.Admin.TableGridPanel.superclass.initComponent.call(this);this.getSelectionModel().on("selectionchange",function(sm){this.deleteBtn.setDisabled(sm.getCount()===0)},this)},setTableClass:function(table,objclass){this.objectClass=objclass;this.objectTable=table;this.setTitle("Content roles for "+table);this.store.baseParams={table:objclass};if(this.rendered)this.store.reload()},addUserForm:null,addUser:function(){if(!this.addUserForm)this.addUserForm=new Ext.Window({layout:"fit",title:"Add new content role",width:400,height:300,closeAction:"hide",items:new TJ.Admin.StatusPanelForm({ref:"fp",formconfig:{plugins:[new TJ.Admin.FormPlugin],labelWidth:80,defaults:{anchor:"-20",selectOnFocus:true,msgTarget:"side"},buttons:[],items:[{xtype:"tjuserorgroup",name:"userid",fieldLabel:"User/Group"},{xtype:"tjcheckbox",name:"alltables",fieldLabel:"All Tables",value:0},{xtype:"tjtype",name:"table",enableField:"alltables",allowBlank:false,fieldLabel:"Table"},{xtype:"tjselect",name:"own",value:"None",store:["None","Select","Edit","Publish"],desc:"Set the role for the users authored content",fieldLabel:"Own Content"},{xtype:"tjselect",name:"all",value:"None",desc:"Set the role for all content",store:["None","Select","Edit","Publish"],fieldLabel:"All Content"}]}}),buttons:[{text:"Save",value:"close",handler:this.save,scope:this},{text:"Cancel",value:"cancel",handler:function(){this.addUserForm.hide()},scope:this}]});this.addUserForm.show()},save:function(){var rec=this.addUserForm.fp.form.getForm().getValues();if(this.addUserForm.fp.form.getForm().isValid()){if(rec.userid==0){this.addUserForm.fp.form.getForm().findField("userid").markInvalid("You must enter a User or Usergroup");return}if(rec.own=="None"&&rec.all=="None"){this.addUserForm.fp.form.getForm().findField("own").markInvalid("You must enter either an Own or All role for the user");return}this.addUserForm.fp.form.getForm().reset();this.addUserForm.hide()}TJ.CallbackManager.Execute({url:TJ.LANGUAGESS+"admin/security/roles:saveRole",params:rec,callback:this.saveCB,scope:this})},saveCB:function(res){this.store.reload()},userRenderer:function(user,p,record){if(record.data.userid<0)return String.format('<span class="icon_group" style="background: no-repeat; padding-left: 18px;" title="Usergroup">{0}</span>',user);else return String.format('<span class="icon_user" style="background: no-repeat;  padding-left: 18px;" title="User">{0}</span>',user);return user},onRender:function(ct,position){TJ.Admin.TableGridPanel.superclass.onRender.call(this,ct,position);this.store.load()}});TJ.Admin.WorkflowPanel=Ext.extend(Ext.Panel,{title:"Content Roles Management",border:false,frame:false,layout:"border",initComponent:function(){this.items=[new TJ.Admin.WorkflowGridPanel({region:"center",frame:false})];TJ.Admin.WorkflowPanel.superclass.initComponent.call(this)}});Ext.reg("tjadmin_workflowpanel",TJ.Admin.WorkflowGridPanel);TJ.Admin.FormTreePanel=Ext.extend(Ext.tree.TreePanel,{title:"Choose Translation Group",autoScroll:true,animate:true,enableDD:false,formlist:[],rootVisible:false,root:new Ext.tree.TreeNode({text:"Hide",draggable:false,id:"0",typeclass:"",expanded:true}),initComponent:function(){for(var i=0;i<this.formlist.length;i++)this.root.appendChild(new Ext.tree.TreeNode({text:this.formlist[i].text,id:this.formlist[i].id,iconCls:"icon_style_edit"}));TJ.Admin.FormTreePanel.superclass.initComponent.call(this)},render:function(ct,position){TJ.Admin.FormTreePanel.superclass.render.call(this,ct,position)}});TJ.Admin.TableTranslatePanel=Ext.extend(Ext.Panel,{border:false,frame:false,layout:"border",initComponent:function(){this.formPanel=new Ext.Panel({title:"Edit Translations ",layout:"fit"});this.ttp=new TJ.Admin.FormTreePanel({formlist:this.formlist});this.items=[{region:"west",layout:"fit",items:this.ttp,width:300,split:true,frame:false},{region:"center",layout:"fit",items:this.formPanel,frame:false}];TJ.Admin.TableTranslatePanel.superclass.initComponent.call(this);this.ttp.getSelectionModel().on("selectionchange",function(sm,node){if(node){this.formPanel.setTitle("Edit translations: "+node.attributes.text);TJ.Admin.ClearPanel(this.formPanel);TJ.Admin.GetRemoteComponent({url:TJ.LANGUAGESS+this.tableinfo.baseurl+":configtranslateform?id="+escape(node.id),container:this.formPanel})}},this)},render:function(ct,position){TJ.Admin.TableTranslatePanel.superclass.render.call(this,ct,position)}});TJ.Admin.DirectoryTreePanel=Ext.extend(Ext.ux.FileTreePanel,{rootText:"files",rootPath:"#+#+#+#",expandOnRender:false,frame:false,border:false,fileText:"Directory",autoScroll:true,url:"/en/filemanager:dirs",enableUpload:false,enableOpen:false,enableDD:false,showStatus:true,node:null,initComponent:function(){this.reloadBtn=new Ext.Toolbar.Button({tooltip:"Reload",iconCls:"icon-refresh",cmd:"reload",disabled:true,handler:this.doCommand,scope:this});this.userBtn=new Ext.Toolbar.Button({tooltip:"Your Folders",iconCls:"icon_folder_user",scope:this});this.expandBtn=new Ext.Toolbar.Button({toolTip:"Expand All",iconCls:"icon-expand-all",cmd:"expand",disabled:true,handler:this.doCommand,scope:this});this.collapseBtn=new Ext.Toolbar.Button({toolTip:"Collapse All",iconCls:"icon-collapse-all",cmd:"collapse",disabled:true,handler:this.doCommand,scope:this});this.renameBtn=new Ext.Toolbar.Button({text:"Rename",iconCls:"icon-pencil",disabled:true,cmd:"rename",handler:this.doCommand,scope:this});this.deleteBtn=new Ext.Toolbar.Button({text:"Delete",iconCls:"icon-cross",disabled:true,cmd:"delete",handler:this.doCommand,scope:this});this.newBtn=new Ext.Toolbar.Button({text:"New",iconCls:"icon-folder-add",disabled:true,cmd:"newdir",handler:this.doCommand,scope:this});this.tbar=[this.reloadBtn,"-",this.renameBtn,this.deleteBtn,"-",this.newBtn];if(this.showStatus)this.bbar=new Ext.StatusBar({defaultText:""});TJ.Admin.DirectoryTreePanel.superclass.initComponent.call(this);this.getRootDirInfo();this.on("newdir",function(tree,node){console.log("New Dir",node)});this.getSelectionModel().on("selectionchange",function(sm,node){var valid=true;this.node=node;if(node){var path=node.getPath("text").substring(1);if(this.showStatus)this.getBottomToolbar().setStatus(this.getStatusMessage());if(path=="files"||path=="files/user"||path=="files/secure")valid=false;if(node==this.getRootNode())valid=false}else valid=false;console.log("sele",node);this.reloadBtn.setDisabled(!node||node.isLeaf());this.expandBtn.setDisabled(!node||node.isLeaf());this.collapseBtn.setDisabled(!node||node.isLeaf());this.newBtn.setDisabled(!node);this.renameBtn.setDisabled(!valid);this.deleteBtn.setDisabled(!valid)},this)},getStatusMessage:function(){var extra="";if(this.node){if(this.node.attributes.write)extra=" Read/Write";else if(this.node.attributes.read)extra=" Read Only";extra="";return"Directory:  <b>/"+this.getDirectory()+"</b>"+extra}return""},getRootDirInfo:function(){var params={cmd:"info"};var options={url:this.url,scope:this,params:{cmd:"info"},callback:this.rootCallback};Ext.Ajax.request(options)},rootCallback:function(options,success,response){o=Ext.decode(response.responseText);this.getRootNode().setText(o.path);this.getRootNode().attributes.path=o.path;this.callbackComplete=true;this.postRender()},doCommand:function(btn){var node=this.getSelectionModel().getSelectedNode();this.onContextClick({node:node},btn)},render:function(){TJ.Admin.DirectoryTreePanel.superclass.render.apply(this,arguments);this.renderComplete=true;this.postRender()},initialDir:false,postRender:function(){if(this.renderComplete&&this.callbackComplete)if(this.initialDir)this.setDirectory(this.initialDir);else{this.getRootNode().expand();this.getRootNode().select()}return},getDirectory:function(){var node=this.getSelectionModel().getSelectedNode();if(node)return node.getPath("text").substring(1);return null},setRelDirectory:function(dir){var node=this.getSelectionModel().getSelectedNode();if(dir=="..")node.parentNode.select();else this.setDirectory(node.getPath("text")+"/"+dir)},setDirectory:function(dir){if(!this.renderComplete||!this.callbackComplete)this.initialDir=dir;else{this.expandPath(dir,"text",function(bSuccess,oLastNode){if(oLastNode)oLastNode.select()});this.initialDir=false}}});TJ.Admin.DirectorySelectWindow=Ext.extend(Ext.Window,{width:800,constrainHeader:true,height:500,modal:true,layout:"fit",title:"Select Directory",closeAction:"hide",initComponent:function(){this.fm=new TJ.Admin.FileManagerPanel({selectdir:true});this.items=this.fm;this.fm.DirTreePanel.getSelectionModel().on("selectionchange",function(){var selection=this.fm.DirTreePanel.getDirectory();this.selBtn.setDisabled(selection.length===0);if(selection.length)this.selBtn.el.dom.setAttribute("title","Select directory:  /"+selection);else this.selBtn.el.dom.setAttribute("title","Please select a directory")},this);this.addEvents("select");this.selBtn=new Ext.Button({text:"Select Directory",disabled:true,handler:this.select,scope:this});this.closeBtn=new Ext.Button({text:"Cancel",handler:function(){this.hide()},scope:this});this.buttons=[this.selBtn,this.closeBtn];TJ.Admin.DirectorySelectWindow.superclass.initComponent.call(this)},setValue:function(value){console.log("setvalue",value);this.fm.setValue(value)},select:function(){console.log("Do Select");this.fireEvent("select",this.fm.DirTreePanel.getDirectory())}});TJ.Admin.FileGridPanel=Ext.extend(Ext.grid.EditorGridPanel,{mode:"manager",loadMask:true,url:"/en/filemanager:dirs",viewConfig:{autoFill:false,forceFit:false},errorText:"Error",initValue:false,setValue:function(value){this.initValue=value},initComponent:function(){this.cm=new Ext.grid.ColumnModel([{header:"Directory",sortable:true,dataIndex:"dir",width:180,hidden:this.mode=="manager"},{header:"Filename",sortable:true,dataIndex:"name",editor:new Ext.form.TextField({allowBlank:false}),renderer:this.iconRenderer,width:200},{header:"Last Modified",sortable:true,renderer:Ext.util.Format.dateRenderer("Y/m/d H:i:s"),dataIndex:"datelastmodified",width:120},{header:"Size",sortable:true,dataIndex:"size",renderer:TJ.HumanFileSize,align:"right",width:60},{header:"Info",sortable:true,align:"right",dataIndex:"info",width:100}]);this.sm=new Ext.grid.RowSelectionModel({singleSelect:true});this.sm.on("rowselect",function(sm,row){this.rowIndex=row},this);this.store=new Ext.data.JsonStore({url:this.mode=="manager"?"/en/filemanager:files":"/en/filemanager:review",root:"data",sortInfo:{field:"name",direction:"ASC"},fields:["name","datelastmodified","size","ext","dir","info","isdir","write"]});this.directory=null;this.reloadBtn=new Ext.Toolbar.Button({tooltip:"Reload",iconCls:"icon-refresh",cmd:"reload",handler:function(){this.doReload(1)},scope:this});this.openBtn=new Ext.Toolbar.Button({text:"Open",tooltip:"Open in new window",iconCls:"icon-open",disabled:true,handler:this.doOpen,scope:this});this.downloadBtn=new Ext.Toolbar.Button({text:"Download",tooltip:"Download this file",iconCls:"icon-open-download",disabled:true,handler:this.doDownload,scope:this});this.editBtn=new Ext.Toolbar.Button({text:"Edit",iconCls:"icon_image_edit",disabled:true,scope:this,menu:{items:[{text:"Edit with Picnik",iconCls:"icon_picnik",handler:this.picnikEdit,scope:this}]}});this.renameBtn=new Ext.Toolbar.Button({text:"Rename",iconCls:"icon-pencil",disabled:true,handler:this.startRename,scope:this});this.deleteBtn=new Ext.Toolbar.Button({text:"Delete",iconCls:"icon-cross",disabled:true,handler:this.doDelete,scope:this});this.publishBtn=new Ext.Toolbar.Button({text:"Publish",iconCls:"icon_application_lightning",disabled:true,handler:this.doPublish,scope:this});this.unzipBtn=new Ext.Toolbar.Button({text:"Unzip",iconCls:"icon_arrow_out",disabled:true,handler:this.doUnzip,scope:this});this.sm.on("selectionchange",function(sm){var file=sm.getSelected();console.log(file);this.renameBtn.setDisabled(sm.getCount()!=1||file.data.isdir);this.deleteBtn.setDisabled(sm.getCount()!=1||file.data.isdir);this.openBtn.setDisabled(sm.getCount()!=1||file.data.isdir);this.downloadBtn.setDisabled(sm.getCount()!=1||file.data.isdir);this.publishBtn.setDisabled(sm.getCount()!=1||file.data.isdir);this.unzipBtn.setDisabled(true);if(sm.getCount()==1){var str=this.getFilename();this.publishBtn.setText(str.substr(str.length-7,str.length)==".review"?"Publish":"Unpublish");this.unzipBtn.setDisabled(str.substr(str.length-4,str.length)!=".zip");this.editBtn.setDisabled(!(str.substr(str.length-4,str.length).toLowerCase()==".jpg"||str.substr(str.length-4,str.length).toLowerCase()==".png"||str.substr(str.length-4,str.length).toLowerCase()==".gif"))}},this);this.tbar=[this.reloadBtn,this.openBtn,this.downloadBtn,"-",this.renameBtn,this.editBtn,this.deleteBtn,"-",this.unzipBtn,this.publishBtn];TJ.Admin.FileGridPanel.superclass.initComponent.call(this);this.store.on({update:{scope:this,fn:this.recordUpdate},load:{scope:this,fn:function(){console.log("loading",this.initValue,this.rowIndex);if(this.initValue){var row=0;this.store.each(function(f){if(this.initValue==String.format("/{0}/{1}",f.data.dir,f.data.name)){this.getSelectionModel().selectRecords([f]);console.log(this.getView(),row);this.getView().ensureVisible(row,0,true);return false}row++},this);this.initValue=false}else if(this.rowIndex>-1)this.getSelectionModel().selectRow(this.rowIndex)}}},this);this.on("beforeedit",function(e){if(e.record.data.isdir){e.cancel=true;this.fireEvent("opendir",e.record.data.name.substring(1))}},this)},iconRenderer:function(name,p,record){if(record.data.isdir)if(record.data.write)return'<div class="icon_folder" style="background: no-repeat; margin: -2 0; padding-left: 20px; min-height: 16px;">'+name+"</div>";else return'<div class="icon_folder_magnify" style="background: no-repeat; margin: -2 0; padding-left: 20px; min-height: 16px;" title="readonly">'+name+"</div>";return'<div class="file-'+record.data.ext+'" style="background: no-repeat; margin: -2 0; padding-left: 20px; min-height: 16px;">'+name+"</div>"},getFilename:function(){var record=this.selModel.getSelected();if(record)return record.data.dir+"/"+record.data.name;return null},getStatus:function(){var count=this.store.getTotalCount();var msg=count===0?"No files to display":String.format("Displaying {0} files",count);return msg},doOpen:function(){var url="/en/filemanager:preview?file="+escape(this.getFilename());window.open(url)},doDownload:function(){var url="/en/filemanager:download?file="+escape(this.getFilename());window.open(url)},rowIndex:-1,doReload:function(save){if(save)this.rowIndex=this.rowIndex;else{this.rowIndex=-1;console.log("clear")}this.store.reload()},doPublish:function(){var record=this.selModel.getSelected();if(record){var str=record.data.name;if(str.substr(str.length-7,str.length)==".review")record.set("name",str.substr(0,str.length-7));else record.set("name",str+".review")}},doUnzip:function(){var rec=this.getSelectionModel().getSelected();console.log("dounsip",rec);Ext.Msg.show({title:"Please confirm",width:300,msg:"Are you sure you want unzip this file into this directory.<br/>  This will overwrite any matching files already in this directory and sub-directories.<BR><br> "+rec.data.dir+"/"+rec.data.name,buttons:Ext.Msg.YESNO,scope:this,fn:function(btn){if(btn=="yes"){var params={cmd:"unzip",file:rec.data.dir+"/"+rec.data.name};var options={url:this.url,record:rec,scope:this,params:params,callback:this.cmdCallback};Ext.Ajax.request(options)}},icon:Ext.MessageBox.QUESTION})},doDelete:function(){var rec=this.getSelectionModel().getSelected();Ext.Msg.show({title:"Please confirm",width:300,msg:"Are you sure you want to delete this file?<BR> "+rec.data.dir+"/"+rec.data.name,buttons:Ext.Msg.YESNO,scope:this,fn:function(btn){if(btn=="yes"){var params={cmd:"delete",file:rec.data.dir+"/"+rec.data.name};var options={url:this.url,record:rec,scope:this,params:params,callback:this.cmdCallback};Ext.Ajax.request(options)}},icon:Ext.MessageBox.QUESTION})},picnikEdit:function(){var rec=this.getSelectionModel().getSelected();var saver=String.format("http://{0}/en/filemanager:picnikimport",window.location.host);var thumb=rec.data.name;thumb=thumb.replace(".","..t.m.w240.h240.");var url={_apikey:"8149bb451a660783201e6aff004548d3",_import:String.format("http://{0}/{1}/{2}",window.location.host,rec.data.dir,rec.data.name),_export_agent:"browser",_export:String.format("http://{0}/en/filemanager:picnikimport",window.location.host),_export_title:"Save to "+window.location.host,_host_name:window.location.host,_imageid:String.format("{0}/{1}",rec.data.dir,rec.data.name),_replace:"confirm",_close_target:String.format("http://{0}/en/filemanager:picnikimport?cancel=1",window.location.host),_original_thumb:String.format("http://{0}/_cache/{1}/{2}",window.location.host,rec.data.dir,thumb)};url=String.format("https://www.picnik.com/service/?{0}",Ext.urlEncode(url));this.picnikLink.dom.setAttribute("href",url);this.pboxLink.activate()},picnikCallback:function(obj){if(obj.cancel){TJ.Admin.statusGrid.addMessage({message:"Image not saved from Picnik.com"});return}else if(obj.success){this.doReload(1);TJ.Admin.statusGrid.addMessage({message:String.format("Image <b>/{0}</b> edited and saved from Picnik.com.  {1}",obj.filename,TJ.HumanFileSize(obj.bytes))})}else TJ.Admin.statusGrid.addMessage({message:String.format("Unable to save file {0} from Picnik.com",obj.filename),code:2})},startRename:function(){this.startEditing(this.rowIndex,1)},recordUpdate:function(store,record,operation){if(operation!=Ext.data.Record.EDIT)return;var params={cmd:"rename",oldname:record.data.dir+"/"+record.modified.name,newname:record.data.dir+"/"+record.data.name};var options={url:this.url,record:record,scope:this,params:params,callback:this.cmdCallback};Ext.Ajax.request(options)},cmdCallback:function(options,success,response){if(true===success){try{o=Ext.decode(response.responseText)}catch(ex){this.showError(response.responseText)}if(true===o.success){switch(options.params.cmd){case"rename":options.record.commit();break;case"delete":this.store.remove(options.record);break;case"unzip":this.doReload(1);break;default:break}if(o.message)TJ.Admin.statusGrid.addMessage({message:o.message})}else{switch(options.params.cmd){case"rename":options.record.reject();break;case"delete":break;case"unzip":break;default:break}this.showError(o.error||response.responseText);if(o.error)TJ.Admin.statusGrid.addMessage({message:o.error,code:2})}}else this.showError(response.responseText)},render:function(ct,position){TJ.Admin.FileGridPanel.superclass.render.call(this,ct,position);if(this.mode=="review")this.store.load();if(this.initialDir)this.setDirectory(this.initialDir);this.picnikLink=this.el.createChild({tag:"a"});this.pboxLink=new PBoxLink(this.picnikLink.dom);Altius.PicnikCallbackObj=this},setDirectory:function(directory){if(this.mode=="manager"){this.store.baseParams={path:directory};this.rowIndex=-1;this.store.load();this.directory=directory}},getDirectory:function(){return this.directory},showError:function(msg,title){Ext.Msg.show({title:title||this.errorText,msg:Ext.util.Format.ellipsis(msg,this.maxMsgLen),fixCursor:true,icon:Ext.Msg.ERROR,buttons:Ext.Msg.OK,minWidth:1200>String(msg).length?360:600})}});TJ.Admin.FileInfoPanel=Ext.extend(Ext.Panel,{title:"File Info",layout:"fit",disabled:true,mode:"file",extensions:["jpg","jpeg","png","gif"],initComponent:function(){if(this.mode=="dir")this.title="Directory Info";this.items=this.getForm();TJ.Admin.FileInfoPanel.superclass.initComponent.call(this)},getForm:function(){items=[];for(lang in TJ.LANGUAGEDESC)items.push({xtype:"textfield",anchor:"-20",msgTarget:"side",fieldLabel:"Caption ("+lang+")",name:"caption_"+lang});for(lang in TJ.LANGUAGEDESC)items.push({xtype:"textfield",anchor:"-20",msgTarget:"side",fieldLabel:"Credit ("+lang+")",name:"credit_"+lang});this.saveBtn=new Ext.Toolbar.Button({text:"Save",tooltip:"Save Changes",iconCls:"icon_accept",handler:function(button){this.form.getForm().submit({params:{file:this.filename},failure:function(form,action){TJ.Admin.ProcessJSONResponse(null,null,action.response)},success:function(form,action){TJ.Admin.ProcessJSONResponse(null,null,action.response)}})},scope:this});this.cancelBtn=new Ext.Toolbar.Button({text:"Cancel",tooltip:"Cancel Changes",iconCls:"icon_cancel",handler:function(button){this.form.getForm().reset()},scope:this});this.bbar=["->",this.saveBtn,this.cancelBtn];this.form=new Ext.form.FormPanel({title:this.mode=="file"?"Select File":"Select Directory",url:"/en/filemanager:savefileinfo",items:items,trackResetOnLoad:true,frame:true,border:false});return this.form},filename:"",setFile:function(file,iconCls){this.setDisabled(true);this.form.items.each(function(f){f.setValue("")});if(file===""){this.form.setTitle("Select File","icon_page_white_text");this.filename=file}else if(this.extensions.indexOf(file.split(".").pop().toLowerCase())>=0){this.form.setTitle(file,iconCls||"icon_page_white_text");this.filename=file;var options={url:"/en/filemanager:getfileinfo",params:{file:this.filename},scope:this,callback:this.fileInfoCallback};Ext.Ajax.request(options)}else this.form.setTitle("File info not supported for this type","icon_page_white_delete")},setDir:function(dir){this.setDisabled(true);this.form.setTitle(dir,"icon_folder");this.form.items.each(function(f){f.setValue("")});this.filename=dir;var options={url:"/en/filemanager:getfileinfo",params:{file:this.filename},scope:this,callback:this.fileInfoCallback};Ext.Ajax.request(options)},fileInfoCallback:function(options,success,response){if(success){res=TJ.Admin.ProcessJSONResponse(options,success,response);if(res.data)this.form.getForm().setValues(Ext.decode(res.data));this.setDisabled(false)}}});TJ.Admin.FileUploadPanel2=Ext.extend(Ext.ux.PluploadPanel,{url:TJ.LANGUAGESS+"filemanager/upload",path:"/files",runtimes:"html5,flash,html4",flash_swf_url:"/lib/external/script/extcomp3.2.1/plupload.v0.1/plupload1.5.1.1/js/plupload.flash.swf",silverlight_xap_url:"/lib/external/script/extcomp3.2.1/plupload.v0.1/plupload1.5.1.1/js/plupload.silverlight.xap",runtime_visible:true,chunk_size:"200kb",max_file_size:"32mb",urlstream_upload:true,multipart:true,addButtonCls:"icon_add",uploadButtonCls:"icon_arrow_up",cancelButtonCls:"icon_stop",deleteButtonCls:"icon_cross",setPath:function(path){this.path=path},listeners:{beforestart:function(uploadpanel){var params={path:this.path,replace:this.top.replace.getValue()};this.uploader.settings.url=TJ.LANGUAGESS+"filemanager/upload?"+Ext.urlEncode(params);if(this.top.resize&&this.top.resize.getValue())this.uploader.settings.resize={width:this.top.width.getValue()||600,height:this.top.height.getValue()||400,quality:this.top.quality.getValue()||90};else this.uploader.settings.resize={}}},constructor:function(config){TJ.Admin.FileUploadPanel2.superclass.constructor.call(this,config);this.top=this.getTopToolbar();this.top.add("-");this.top.add({boxLabel:"Replace",xtype:"checkbox",ref:"replace"});if(this.runtimes!="html4"){this.top.add("-");this.top.add({boxLabel:"Resize (jpg,png)",xtype:"checkbox",ref:"resize",checked:false});this.top.add(" ");this.top.add({xtype:"numberfield",minValue:60,maxValue:1200,allowDecimals:false,ref:"width",width:30,value:600});this.top.add(" x ");this.top.add({xtype:"numberfield",minValue:45,maxValue:900,allowDecimals:false,ref:"height",width:30,value:450});this.top.add(" Quality");this.top.add({xtype:"numberfield",minValue:50,maxValue:100,allowDecimals:false,ref:"quality",width:25,value:90});this.top.resize.on("check",function(cb,val){this.top.width.setDisabled(!val);this.top.height.setDisabled(!val);this.top.quality.setDisabled(!val)},this)}},initComponent:function(){TJ.Admin.FileUploadPanel2.superclass.initComponent.call(this)}});Ext.reg("tjfileuploadpanel",TJ.Admin.FileUploadPanel2);TJ.Admin.FilePreviewPanel=Ext.extend(Ext.Panel,{title:"Preview",layout:"fit",extensions:["jpg","jpeg","gif","png","pdf"],initComponent:function(){this.previewId=Ext.id();this.preview=new TJ.comp.IFramePanel({border:false,cls:"file_preview"});this.items=this.preview;this.sizeBtn=new Ext.CycleButton({showText:true,prependText:"Max File Size: ",itemIndex:0,defaults:{iconCls:"icon_table"},items:[{value:100*1024,text:"100KB"},{value:250*1024,text:"250KB",checked:true},{value:1024*1024,text:"1MB"},{value:2048*1024,text:"2MB"},{value:5192*1024,text:"5MB"}]});this.tbar=[this.sizeBtn];TJ.Admin.FilePreviewPanel.superclass.initComponent.call(this);this.sizeBtn.on("change",function(b,i){this.setFile(this.file)},this)},file:"",setFile:function(file){this.file=file;if(file)this.preview.setSrc("/en/filemanager:preview?file="+escape(file)+"&max="+escape(this.sizeBtn.activeItem.value));else this.preview.setSrc(null)}});TJ.Admin.FileManagerLastDir="";TJ.Admin.FileManagerPanel=Ext.extend(Ext.Panel,{layout:"border",mode:"manager",setValue:function(val){if(val==="")val="/"+TJ.Admin.FileManagerLastDir;this.DirTreePanel.setDirectory(val);this.FileGridPanel.setValue(val)},initComponent:function(){this.FilePreviewPanel=new TJ.Admin.FilePreviewPanel;this.FileGridPanel=new TJ.Admin.FileGridPanel({showStatus:false,mode:this.mode});if(this.mode=="manager"){this.DirTreePanel=new TJ.Admin.DirectoryTreePanel({showStatus:false});this.FileUploadPanel=new TJ.Admin.FileUploadPanel2({title:"Upload",addButtonCls:"icon_add",uploadButtonCls:"icon_arrow_up",cancelButtonCls:"icon_stop",deleteButtonCls:"icon_cross"});this.FileUploadPanelSimple=new TJ.Admin.FileUploadPanel2({title:"Upload Single",runtimes:"html4",addButtonCls:"icon_add",uploadButtonCls:"icon_arrow_up",cancelButtonCls:"icon_stop",deleteButtonCls:"icon_cross"});this.FileInfoPanel=new TJ.Admin.FileInfoPanel;this.DirInfoPanel=new TJ.Admin.FileInfoPanel({mode:"dir"});this.DirTreePanel.getSelectionModel().on("selectionchange",function(){this.FileUploadPanel.setPath(this.DirTreePanel.getDirectory());this.FileUploadPanelSimple.setPath(this.DirTreePanel.getDirectory());this.FileGridPanel.setDirectory(this.DirTreePanel.getDirectory());this.getBottomToolbar().setStatus(this.DirTreePanel.getStatusMessage());this.DirInfoPanel.setDir(this.DirTreePanel.getDirectory());TJ.Admin.FileManagerLastDir=this.DirTreePanel.getDirectory();this.FileInfoPanel.setFile("")},this);this.FileUploadPanel.on("uploadcomplete",function(){this.FileGridPanel.store.reload()},this);this.FileUploadPanelSimple.on("uploadcomplete",function(){this.FileGridPanel.store.reload()},this)}this.FileGridPanel.getSelectionModel().on("selectionchange",function(sm){if(sm.getCount()>0){this.getBottomToolbar().setStatus("File:  <b>/"+this.FileGridPanel.getFilename()+"</b>");this.FilePreviewPanel.setFile(this.FileGridPanel.getFilename());this.FileInfoPanel.setFile(this.FileGridPanel.getFilename())}else{this.FileInfoPanel.setFile("");this.FilePreviewPanel.setFile("")}},this);this.FileGridPanel.on("opendir",function(dir){console.log(dir);this.DirTreePanel.setRelDirectory(dir)},this);if(this.mode=="manager")this.items=[{region:"west",layout:"fit",items:this.DirTreePanel,width:272,split:true,frame:false,border:false},{region:"center",layout:"fit",items:this.FileGridPanel,frame:false,border:false},{region:"south",height:200,split:true,frame:false,border:false,title:"Preview File",collapsible:true,collapsed:false,items:[this.FilePreviewPanel,this.FileInfoPanel,this.DirInfoPanel,this.FileUploadPanel,this.FileUploadPanelSimple],xtype:"tabpanel",activeTab:0}];else this.items=[{region:"center",layout:"fit",items:this.FileGridPanel,frame:false,border:false},{region:"south",height:200,split:true,frame:false,border:false,layout:"fit",title:"Preview File",collapsible:true,collapsed:this.selectfile,items:this.FilePreviewPanel}];this.bbar=new Ext.StatusBar({defaultText:""});TJ.Admin.FileManagerPanel.superclass.initComponent.call(this)},getSelectedFilename:function(){return this.FileGridPanel.getFilename()}});Ext.reg("tjadmin_filemanagerpanel",TJ.Admin.FileManagerPanel);TJ.Admin.FileSelectWindow=Ext.extend(Ext.Window,{width:800,height:500,constrainHeader:true,modal:true,layout:"fit",title:"Select File",closeAction:"hide",callback:null,initComponent:function(){this.fm=new TJ.Admin.FileManagerPanel({selectfile:true});this.items=this.fm;this.addEvents("select");this.selBtn=new Ext.Button({text:"Select File",disabled:true,handler:this.select,scope:this});this.closeBtn=new Ext.Button({text:"Cancel",handler:function(){this.hide()},scope:this});this.buttons=[this.selBtn,this.closeBtn];TJ.Admin.FileSelectWindow.superclass.initComponent.call(this);this.fm.FileGridPanel.selModel.on("selectionchange",function(sm){this.selBtn.setDisabled(sm.getCount()===0);if(sm.getCount())this.selBtn.el.dom.setAttribute("title","Select file:  /"+this.fm.getSelectedFilename());else this.selBtn.el.dom.setAttribute("title","Please select a file")},this)},show:function(callback){if(callback)this.callback=callback;TJ.Admin.FileSelectWindow.superclass.show.call(this)},setValue:function(value){this.fm.setValue(value)},select:function(){this.fireEvent("select",this.fm.getSelectedFilename());if(this.callback){this.hide();this.callback(this.fm.getSelectedFilename());this.callback=null}}});if(document.getElementsByTagName){var hrefs=document.getElementsByTagName("a");for(var l=0;l<hrefs.length;l++)try{if(hrefs[l].protocol=="mailto:")startListening(hrefs[l],"click",trackMailto);else if(hrefs[l].hostname==location.host){var path=hrefs[l].pathname+hrefs[l].search;var isDoc=path.match(/\.(?:doc|eps|jpg|png|svg|xls|ppt|pdf|xls|zip|txt|vsd|vxd|js|css|rar|exe|wma|mov|avi|wmv|mp3)($|\&|\?)/);if(isDoc)startListening(hrefs[l],"click",trackExternalLinks)}else startListening(hrefs[l],"click",trackExternalLinks)}catch(e){continue}}function startListening(obj,evnt,func){if(obj.addEventListener)obj.addEventListener(evnt,func,false);else if(obj.attachEvent)obj.attachEvent("on"+evnt,func)}function trackMailto(evnt){var href=evnt.srcElement?evnt.srcElement.href:this.href;var mailto="/mailto/"+href.substring(7);if(typeof pageTracker=="object")pageTracker._trackPageview(mailto)}function trackExternalLinks(evnt){var e=evnt.srcElement?evnt.srcElement:this;while(e.tagName!="A")e=e.parentNode;var lnk=e.pathname.charAt(0)=="/"?e.pathname:"/"+e.pathname;if(e.search&&e.pathname.indexOf(e.search)==-1)lnk+=e.search;if(e.hostname!=location.host)lnk="/external/"+e.hostname+lnk;if(typeof pageTracker=="object")pageTracker._trackPageview(lnk)}function createWindow(myTarget,myTitle,myPicture,myWidth,myHeight,myCaption){var windowchar="height="+myHeight+",width="+myWidth+",resizable=yes";myOtherWindow=window.open("",myTarget,windowchar);if(myOtherWindow!=null){var otherWindowDefinition="<HTML><HEAD><TITLE>";otherWindowDefinition+=myTitle;otherWindowDefinition+="</TITLE></HEAD><BODY><CENTER><IMG SRC=";otherWindowDefinition+=myPicture;otherWindowDefinition+="><BR><TABLE CELLPADDING=0 WIDTH=";otherWindowDefinition+=myWidth;otherWindowDefinition+="><TR><TD BGCOLOR=#FFFF00 WIDTH=15%>";otherWindowDefinition+="<CENTER><FONT SIZE=-1>";otherWindowDefinition+="<A HREF='javascript:window.close()'>Close Window</A>";otherWindowDefinition+="</TD><TD><CENTER><FONT SIZE=-1><I>";otherWindowDefinition+=myCaption;otherWindowDefinition+="</TD></TR></TABLE></BODY></HTML>";myOtherWindow.document.write(otherWindowDefinition);myOtherWindow.document.close()}}
