Commit 8e831a0d authored by Benni Mack's avatar Benni Mack Committed by Anja Leichsenring
Browse files

[!!!][TASK] Remove ExtCore and ExtJS Adapters

Remove the standalone slim "ExtCore" functionality and
the custom adapters for prototype 1.5, jquery 1.1 and YUI
completely from the core (only use ext-base adapter natively).

Drop all configuration to activate ExtCore in FE.
Drop all configuration to configure custom adapters
when loading ExtJS.

Resolves: #68001
Releases: master
Change-Id: I254b37f3637e829d7528422c13b41a8e96d90cd1
Reviewed-on: http://review.typo3.org/41028


Reviewed-by: Markus Klein's avatarMarkus Klein <markus.klein@typo3.org>
Tested-by: Markus Klein's avatarMarkus Klein <markus.klein@typo3.org>
Reviewed-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Anja Leichsenring's avatarAnja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Anja Leichsenring's avatarAnja Leichsenring <aleichsenring@ab-softlab.de>
parent f222f918
All adapter related files below are located in
/adapters/<lib name>/ of this zip file.
All adapter related files below are located in /adapters/ of this folder.
Your include order should be:
Ext Stand-alone
-------------------------------------------------------------------
---------------
ext-base.js
ext-all.js (or your choice of files)
Yahoo! UI (.12+)
-------------------------------------------------------------------
yui-utilities.js
ext-yui-adapter.js
ext-all.js (or your choice of files)
jQuery (1.1+)
-------------------------------------------------------------------
jquery.js
ext-jquery-adapter.js
ext-all.js (or your choice of files)
Prototype (1.5+) / Scriptaculous (1.7+)
-------------------------------------------------------------------
prototype.js
scriptaculous.js?load=effects (or whatever you want to load)
ext-prototype-adapter.js
ext-all.js (or your choice of files)
See the examples folders for more examples.
......@@ -445,7 +445,7 @@ MyGridPanel = Ext.extend(Ext.grid.GridPanel, {
* obj.someMethod('Say '); // alerts 'Say something'
*
* To create an anonymous class, pass `null` for the `className`:
*
*
* Ext.define(null, {
* constructor: function () {
* // ...
......@@ -456,21 +456,21 @@ MyGridPanel = Ext.extend(Ext.grid.GridPanel, {
* properties. The best way to do this is to pass a function instead of an object
* as the second parameter. This function will be called to produce the class
* body:
*
*
* Ext.define('MyApp.foo.Bar', function () {
* var id = 0;
*
*
* return {
* nextId: function () {
* return ++id;
* }
* };
* });
*
*
* When using this form of `Ext.define`, the function is passed a reference to its
* class. This can be used as an efficient way to access any static properties you
* may have:
*
*
* Ext.define('MyApp.foo.Bar', function (Bar) {
* return {
* statics: {
......@@ -478,7 +478,7 @@ MyGridPanel = Ext.extend(Ext.grid.GridPanel, {
* // ...
* }
* },
*
*
* method: function () {
* return Bar.staticMethod();
* }
......@@ -616,7 +616,7 @@ MyGridPanel = Ext.extend(Ext.grid.GridPanel, {
Ext.applyIf(cls.prototype, Base.prototype);
}
cls.prototype.self = cls;
if (body.xtype) {
Ext.reg(body.xtype, cls);
}
......@@ -638,17 +638,17 @@ MyGridPanel = Ext.extend(Ext.grid.GridPanel, {
*
* If the `target` is a function, it is assumed to be a constructor and the contents
* of `overrides` are applied to its `prototype` using {@link Ext#apply Ext.apply}.
*
*
* If the `target` is an instance of a class created using {@link #define},
* the `overrides` are applied to only that instance. In this case, methods are
* specially processed to allow them to use {@link Ext.Base#callParent}.
*
*
* var panel = new Ext.Panel({ ... });
*
*
* Ext.override(panel, {
* initComponent: function () {
* // extra processing...
*
*
* this.callParent();
* }
* });
......@@ -659,7 +659,7 @@ MyGridPanel = Ext.extend(Ext.grid.GridPanel, {
* Please refer to {@link Ext#define Ext.define} for further details.
*
* @param {Object} target The target to override.
* @param {Object} overrides The properties to add or replace on `target`.
* @param {Object} overrides The properties to add or replace on `target`.
* @method override
*/
override: function (target, overrides) {
......@@ -1203,13 +1203,13 @@ function(el){
* @type Boolean
*/
isIE9 : isIE9,
/**
* True if the detected browser is Internet Explorer 10.x
* @type Boolean
*/
isIE10 : isIE10,
/**
* True if the detected browser is Internet Explorer 11.x
* @type Boolean
......@@ -1221,17 +1221,17 @@ function(el){
* @type Boolean
*/
isIE9m : isIE9m,
/**
* True if the detected browser is Internet Explorer 10.x or higher
* @type Boolean
*/
*/
isIE10p : isIE && !(isIE6 || isIE7 || isIE8 || isIE9),
// IE10 quirks behaves like Gecko/WebKit quirks, so don't include it here
// Used internally
isIEQuirks: isIE && (!isStrict && (isIE6 || isIE7 || isIE8 || isIE9)),
/**
* True if the detected browser uses the Gecko layout engine (e.g. Mozilla, Firefox).
* @type Boolean
......@@ -1531,7 +1531,7 @@ Ext.applyIf(Array.prototype, {
// Start a simple clock task that updates a div once per second
var updateClock = function(){
Ext.fly('clock').update(new Date().format('g:i:s A'));
}
}
var task = {
run: updateClock,
interval: 1000 //1 second
......@@ -1547,47 +1547,47 @@ Ext.TaskMgr.start({
* </code></pre>
* <p>See the {@link #start} method for details about how to configure a task object.</p>
* Also see {@link Ext.util.DelayedTask}.
*
* Also see {@link Ext.util.DelayedTask}.
*
* @constructor
* @param {Number} interval (optional) The minimum precision in milliseconds supported by this TaskRunner instance
* (defaults to 10)
*/
Ext.util.TaskRunner = function(interval){
interval = interval || 10;
var tasks = [],
removeQueue = [],
id = 0,
running = false,
var tasks = [],
removeQueue = [],
id = 0,
running = false,
// private
stopThread = function(){
// private
stopThread = function(){
running = false;
clearInterval(id);
id = 0;
},
// private
startThread = function(){
// private
startThread = function(){
if(!running){
running = true;
id = setInterval(runTasks, interval);
}
},
// private
removeTask = function(t){
// private
removeTask = function(t){
removeQueue.push(t);
if(t.onStop){
t.onStop.apply(t.scope || t);
}
},
// private
runTasks = function(){
var rqLen = removeQueue.length,
now = new Date().getTime();
// private
runTasks = function(){
var rqLen = removeQueue.length,
now = new Date().getTime();
if(rqLen > 0){
for(var i = 0; i < rqLen; i++){
tasks.remove(removeQueue[i]);
......@@ -1597,7 +1597,7 @@ Ext.util.TaskRunner = function(interval){
stopThread();
return;
}
}
}
for(var i = 0, t, itime, rt, len = tasks.length; i < len; ++i){
t = tasks[i];
itime = now - t.taskRunTime;
......@@ -1695,7 +1695,7 @@ Ext.TaskMgr.start(task);
*/
Ext.TaskMgr = new Ext.util.TaskRunner();(function(){
var libFlyweight;
function fly(el) {
if (!libFlyweight) {
libFlyweight = new Ext.Element.Flyweight();
......@@ -1703,18 +1703,18 @@ Ext.TaskMgr = new Ext.util.TaskRunner();(function(){
libFlyweight.dom = el;
return libFlyweight;
}
(function(){
var doc = document,
isCSS1 = doc.compatMode == "CSS1Compat",
MAX = Math.max,
MAX = Math.max,
ROUND = Math.round,
PARSEINT = parseInt;
Ext.lib.Dom = {
isAncestor : function(p, c) {
var ret = false;
p = Ext.getDom(p);
c = Ext.getDom(c);
if (p && c) {
......@@ -1724,13 +1724,13 @@ Ext.TaskMgr = new Ext.util.TaskRunner();(function(){
return !!(p.compareDocumentPosition(c) & 16);
} else {
while (c = c.parentNode) {
ret = c == p || ret;
ret = c == p || ret;
}
}
}
}
}
return ret;
},
getViewWidth : function(full) {
return full ? this.getDocumentWidth() : this.getViewportWidth();
},
......@@ -1739,25 +1739,25 @@ Ext.TaskMgr = new Ext.util.TaskRunner();(function(){
return full ? this.getDocumentHeight() : this.getViewportHeight();
},
getDocumentHeight: function() {
getDocumentHeight: function() {
return MAX(!isCSS1 ? doc.body.scrollHeight : doc.documentElement.scrollHeight, this.getViewportHeight());
},
getDocumentWidth: function() {
getDocumentWidth: function() {
return MAX(!isCSS1 ? doc.body.scrollWidth : doc.documentElement.scrollWidth, this.getViewportWidth());
},
getViewportHeight: function(){
return Ext.isIE9m ?
(Ext.isStrict ? doc.documentElement.clientHeight : doc.body.clientHeight) :
self.innerHeight;
return Ext.isIE9m ?
(Ext.isStrict ? doc.documentElement.clientHeight : doc.body.clientHeight) :
self.innerHeight;
},
getViewportWidth : function() {
return !Ext.isStrict && !Ext.isOpera ? doc.body.clientWidth :
Ext.isIE9m ? doc.documentElement.clientWidth : self.innerWidth;
Ext.isIE9m ? doc.documentElement.clientWidth : self.innerWidth;
},
getY : function(el) {
return this.getXY(el)[1];
},
......@@ -1767,19 +1767,19 @@ Ext.TaskMgr = new Ext.util.TaskRunner();(function(){
},
getXY : function(el) {
var p,
pe,
b,
bt,
bl,
dbd,
x = 0,
y = 0,
scroll,
hasAbsolute,
bd = (doc.body || doc.documentElement),
ret = [0,0];
var p,
pe,
b,
bt,
bl,
dbd,
x = 0,
y = 0,
scroll,
hasAbsolute,
bd = (doc.body || doc.documentElement),
ret = [0,0];
el = Ext.getDom(el);
if(el != bd){
......@@ -1787,21 +1787,21 @@ Ext.TaskMgr = new Ext.util.TaskRunner();(function(){
b = el.getBoundingClientRect();
scroll = fly(document).getScroll();
ret = [ROUND(b.left + scroll.left), ROUND(b.top + scroll.top)];
} else {
p = el;
} else {
p = el;
hasAbsolute = fly(el).isStyle("position", "absolute");
while (p) {
pe = fly(p);
pe = fly(p);
x += p.offsetLeft;
y += p.offsetTop;
hasAbsolute = hasAbsolute || pe.isStyle("position", "absolute");
if (Ext.isGecko) {
if (Ext.isGecko) {
y += bt = PARSEINT(pe.getStyle("borderTopWidth"), 10) || 0;
x += bl = PARSEINT(pe.getStyle("borderLeftWidth"), 10) || 0;
x += bl = PARSEINT(pe.getStyle("borderLeftWidth"), 10) || 0;
if (p != el && !pe.isStyle('overflow','visible')) {
x += bl;
y += bt;
......@@ -1809,18 +1809,18 @@ Ext.TaskMgr = new Ext.util.TaskRunner();(function(){
}
p = p.offsetParent;
}
if (Ext.isSafari && hasAbsolute) {
x -= bd.offsetLeft;
y -= bd.offsetTop;
}
if (Ext.isGecko && !hasAbsolute) {
dbd = fly(bd);
x += PARSEINT(dbd.getStyle("borderLeftWidth"), 10) || 0;
y += PARSEINT(dbd.getStyle("borderTopWidth"), 10) || 0;
}
p = el.parentNode;
while (p && p != bd) {
if (!Ext.isOpera || (p.tagName != 'TR' && !fly(p).isStyle("display", "inline"))) {
......@@ -1831,18 +1831,18 @@ Ext.TaskMgr = new Ext.util.TaskRunner();(function(){
}
ret = [x,y];
}
}
}
return ret;
},
setXY : function(el, xy) {
(el = Ext.fly(el, '_setXY')).position();
var pts = el.translatePoints(xy),
style = el.dom.style,
pos;
for (pos in pts) {
style = el.dom.style,
pos;
for (pos in pts) {
if (!isNaN(pts[pos])) {
style[pos] = pts[pos] + "px";
}
......@@ -1955,7 +1955,7 @@ Ext.TaskMgr = new Ext.util.TaskRunner();(function(){
if(!locked){
locked = true;
for(i = 0; i < onAvailStack.length; ++i){
v = onAvailStack[i];
if(v && (element = doc.getElementById(v.id))){
......@@ -2169,7 +2169,7 @@ Ext.TaskMgr = new Ext.util.TaskRunner();(function(){
_load : function(e) {
loadComplete = true;
if (Ext.isIE9m && e !== true) {
// IE8 complains that _load is null or not an object
// so lets remove self via arguments.callee
......@@ -2372,7 +2372,7 @@ Ext.lib.Ajax = function() {
releaseObject(o);
responseObject = null;
}
function checkResponse(o, callback, conn, tId, poll, cbTimeout){
if (conn && conn.readyState == 4) {
clearInterval(poll[tId]);
......@@ -2385,11 +2385,11 @@ Ext.lib.Ajax = function() {
handleTransactionResponse(o, callback);
}
}
function checkTimeout(o, callback){
pub.abort(o, callback, true);
}
// private
function handleReadyState(o, callback){
......@@ -2485,18 +2485,18 @@ Ext.lib.Ajax = function() {
},
serializeForm : function(form) {
var fElements = form.elements || (document.forms[form] || Ext.getDom(form)).elements,
hasSubmit = false,
encoder = encodeURIComponent,
name,
data = '',
type,
var fElements = form.elements || (document.forms[form] || Ext.getDom(form)).elements,
hasSubmit = false,
encoder = encodeURIComponent,
name,
data = '',
type,
hasValue;
Ext.each(fElements, function(element){
name = element.name;
type = element.type;
if (!element.disabled && name) {
if (/select-(one|multiple)/i.test(type)) {
Ext.each(element.options, function(opt){
......@@ -3342,7 +3342,7 @@ Ext.lib.Ajax = function() {
}
}
});
})();
})();
if (Ext.isIE9m) {
function fnCleanUp() {
var p = Function.prototype;
......
/*
This file is part of Ext JS 3.4
Copyright (c) 2011-2013 Sencha Inc
Contact: http://www.sencha.com/contact
GNU General Public License Usage
This file may be used under the terms of the GNU General Public License version 3.0 as
published by the Free Software Foundation and appearing in the file LICENSE included in the
packaging of this file.
Please review the following information to ensure the GNU General Public License version 3.0
requirements will be met: http://www.gnu.org/copyleft/gpl.html.
If you are unsure which license is appropriate for your use, please contact the sales department
at http://www.sencha.com/contact.
Build date: 2013-04-03 15:07:25
*/
window.undefined=window.undefined;Ext={version:"3.4.1.1",versionDetail:{major:3,minor:4,patch:1.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 h=0,f=Object.prototype.toString,z=navigator.userAgent.toLowerCase(),o=function(e){return e.test(z)},u=document,r=u.documentMode,v=u.compatMode=="CSS1Compat",a=o(/opera/),I=o(/\bchrome\b/),A=o(/webkit/),d=!I&&o(/safari/),G=d&&o(/applewebkit\/4/),E=d&&o(/version\/3/),C=d&&o(/version\/4/),k=!a&&(o(/msie/)||o(/trident/)),H=k&&((o(/msie 7/)&&r!=8&&r!=9&&r!=10)||r==7),F=k&&((o(/msie 8/)&&r!=7&&r!=9&&r!=10)||r==8),D=k&&((o(/msie 9/)&&r!=7&&r!=8&&r!=10)||r==9),j=k&&((o(/msie 10/)&&r!=7&&r!=8&&r!=9)||r==10),g=k&&((o(/trident\/7\.0/)&&r!=7&&r!=8&&r!=9&&r!=10)||r==11),K=k&&o(/msie 6/),L=k&&(K||H||F||D),c=!A&&o(/gecko/)&&!o(/trident/),N=c&&o(/rv:1\.8/),M=c&&o(/rv:1\.9/),n=L&&!v,i=o(/windows|win32/),B=o(/macintosh|mac os x/),q=o(/adobeair/),w=o(/linux/),s=/^https/i.test(window.location.protocol),b=[],x=[],p=Ext.emptyFn,y=Ext.apply({},{constructor:p,toString:p,valueOf:p}),m=function(){var e=m.caller.caller;return e.$owner.prototype[e.$name].apply(this,arguments)};if(y.constructor!==p){x.push("constructor")}if(y.toString!==p){x.push("toString")}if(y.valueOf!==p){x.push("valueOf")}if(!x.length){x=null}function l(){}Ext.apply(l,{$isClass:true,callParent:function(e){var t;return(t=this.callParent.caller)&&(t.$previous||((t=t.$owner?t:t.caller)&&t.$owner.superclass.self[t.$name])).apply(this,e||b)}});l.prototype={constructor:function(){},callParent:function(t){var O,e=(O=this.callParent.caller)&&(O.$previous||((O=O.$owner?O:O.caller)&&O.$owner.superclass[O.$name]));return e.apply(this,t||b)}};if(K){try{u.execCommand("BackgroundImageCache",false,true)}catch(J){}}Ext.apply(Ext,{SSL_SECURE_URL:s&&k?'javascript:""':"about:blank",isStrict:v,isSecure:s,isReady:false,enableForcedBoxModel:false,enableGarbageCollector:true,enableListenerCollection:false,enableNestedListenerRemoval:false,USE_NATIVE_JSON:false,applyIf:function(t,O){if(t){for(var e in O){if(!Ext.isDefined(t[e])){t[e]=O[e]}}}return t},id:function(e,t){e=Ext.getDom(e,true)||{};if(!e.id){e.id=(t||"ext-gen")+(++h)}return e.id},extend:function(){var t=function(P){for(var O in P){this[O]=P[O]}};var e=Object.prototype.constructor;return function(T,Q,S){if(typeof Q=="object"){S=Q;Q=T;T=S.constructor!=e?S.constructor:function(){Q.apply(this,arguments)}}var P=function(){},R,O=Q.prototype;P.prototype=O;R=T.prototype=new P();R.constructor=T;T.superclass=O;if(O.constructor==e){O.constructor=Q}T.override=function(U){Ext.override(T,U)};R.superclass=R.supr=(function(){return O});R.override=t;Ext.override(T,S);T.extend=function(U){return Ext.extend(T,U)};return T}}(),global:(function(){return this})(),Base:l,namespaceCache:{},createNamespace:function(S,P){var e=Ext.namespaceCache,Q=P?S.substring(0,S.lastIndexOf(".")):S,V=e[Q],T,O,t,R,U;if(!V){V=Ext.global;if(Q){U=[];R=Q.split(".");for(T=0,O=R.length;T<O;++T){t=R[T];V=V[t]||(V[t]={});U.push(t);e[U.join(".")]=V}}}return V},getClassByName:function(O){var P=O.split("."),e=Ext.global,Q=P.length,t;for(t=0;e&&t<Q;++t){e=e[P[t]]}return e||null},addMembers:function(t,R,O,e){var Q,P,S;for(P in O){if(O.hasOwnProperty(P)){S=O[P];if(typeof S=="function"){S.$owner=t;S.$name=P}R[P]=S}}if(e&&x){for(Q=x.length;Q-->0;){P=x[Q];if(O.hasOwnProperty(P)){S=O[P];if(typeof S=="function"){S.$owner=t;S.$name=P}R[P]=S}}}},define:function(S,Q,O){var t=Q.override,U,R,e,P;if(t){delete Q.override;U=Ext.getClassByName(t);Ext.override(U,Q)}else{if(S){P=Ext.createNamespace(S,true);e=S.substring(S.lastIndexOf(".")+1)}U=function T(){this.constructor.apply(this,arguments)};if(S){U.displayName=S}U.$isClass=true;U.callParent=Ext.Base.callParent;if(typeof Q=="function"){Q=Q(U)}R=Q.extend;if(R){delete Q.extend;if(typeof R=="string"){R=Ext.getClassByName(R)}}else{R=l}Ext.extend(U,R,Q);if(U.prototype.constructor===U){delete U.prototype.constructor}if(!U.prototype.$isClass){Ext.applyIf(U.prototype,l.prototype)}U.prototype.self=U;if(Q.xtype){Ext.reg(Q.xtype,U)}U=Q.singleton?new U():U;if(S){P[e]=U}}if(O){O.call(U)}return U},override:function(Q,S){var O,R;if(S){if(Q.$isClass){R=S.statics;if(R){delete S.statics}Ext.addMembers(Q,Q.prototype,S,true);if(R){Ext.addMembers(Q,Q,R)}}else{if(typeof Q=="function"){O=Q.prototype;Ext.apply(O,S);if(Ext.isIE&&S.hasOwnProperty("toString")){O.toString=S.toString}}else{var e=Q.self,t,P;if(e&&e.$isClass){for(t in S){if(S.hasOwnProperty(t)){P=S[t];if(typeof P=="function"){if(e.$className){P.displayName=e.$className+"#"+t}P.$name=t;P.$owner=e;P.$previous=Q.hasOwnProperty(t)?Q[t]:m}Q[t]=P}}}else{Ext.apply(Q,S);if(!Q.constructor.$isClass){Q.constructor.prototype.callParent=l.prototype.callParent;Q.constructor.callParent=l.callParent}}}}}},namespace:function(){var P=arguments.length,Q=0,t,O,e,S,R,T;for(;Q<P;++Q){e=arguments[Q];S=arguments[Q].split(".");T=window[S[0]];if(T===undefined){T=window[S[0]]={}}R=S.slice(1);t=R.length;for(O=0;O<t;++O){T=T[R[O]]=T[R[O]]||{}}}return T},urlEncode:function(R,Q){var O,t=[],P=encodeURIComponent;Ext.iterate(R,function(e,S){O=Ext.isEmpty(S);Ext.each(O?e:S,function(T){t.push("&",P(e),"=",(!Ext.isEmpty(T)&&(T!=e||!O))?(Ext.isDate(T)?Ext.encode(T).replace(/"/g,""):P(T)):"")})});if(!Q){t.shift();Q=""}return Q+t.join("")},urlDecode:function(O,t){if(Ext.isEmpty(O)){return{}}var R={},Q=O.split("&"),S=decodeURIComponent,e,P;Ext.each(Q,function(T){T=T.split("=");e=S(T[0]);P=S(T[1]);R[e]=t||!R[e]?P:[].concat(R[e]).concat(P)});return R},urlAppend:function(e,t){if(!Ext.isEmpty(t)){return e+(e.indexOf("?")===-1?"?":"&")+t}return e},toArray:function(){return k?function(O,R,P,Q){Q=[];for(var t=0,e=O.length;t<e;t++){Q.push(O[t])}return Q.slice(R||0,P||Q.length)}:function(e,O,t){return Array.prototype.slice.call(e,O||0,t||e.length)}}(),isIterable:function(e){if(Ext.isArray(e)||e.callee){return true}if(/NodeList|HTMLCollection/.test(f.call(e))){return true}return((typeof e.nextNode!="undefined"||e.item)&&Ext.isNumber(e.length))},each:function(Q,P,O){if(Ext.isEmpty(Q,true)){return}if(!Ext.isIterable(Q)||Ext.isPrimitive(Q)){Q=[Q]}for(var t=0,e=Q.length;t<e;t++){if(P.call(O||Q[t],Q[t],t,Q)===false){return t}}},iterate:function(O,t,e){if(Ext.isEmpty(O)){return}if(Ext.isIterable(O)){Ext.each(O,t,e);return}else{if(typeof O=="object"){for(var P in O){if(O.hasOwnProperty(P)){if(t.call(e||O,P,O[P],O)===false){return}}}}}},getDom:function(O,t){if(!O||!u){return null}if(O.dom){return O.dom}else{if(typeof O=="string"){var P=u.getElementById(O);if(P&&k&&t){if(O==P.getAttribute("id")){return P}else{return null}}return P}else{return O}}},getBody:function(){return Ext.get(u.body||u.documentElement)},getHead:function(){var e;return function(){if(e==undefined){e=Ext.get(u.getElementsByTagName("head")[0])}return e}}(),removeNode:k&&!F?function(){var e;return function(t){if(t&&t.tagName!="BODY"){(Ext.enableNestedListenerRemoval)?Ext.EventManager.purgeElement(t,true):Ext.EventManager.removeAll(t);e=e||u.createElement("div");e.appendChild(t);e.innerHTML="";delete Ext.elCache[t.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(t,e){return t===null||t===undefined||((Ext.isArray(t)&&!t.length))||(!e?t==="":false)},isArray:function(e){return f.apply(e)==="[object Array]"},isDate:function(e){return f.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 f.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:A,isChrome:I,isSafari:d,isSafari3:E,isSafari4:C,isSafari2:G,isIE:k,isIE6:K,isIE7:H,isIE8:F,isIE9:D,isIE10:j,isIE11:g,isIE9m:L,isIE10p:k&&!(K||H||F||D),isIEQuirks:k&&(!v&&(K||H||F||D)),isGecko:c,isGecko2:N,isGecko3:M,isBorderBox:n,isLinux:w,isWindows:i,isMac:B,isAir:q});Ext.ns=Ext.namespace})();Ext.ns("Ext.util","Ext.lib","Ext.data","Ext.supports");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.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();if(typeof jQuery=="undefined"){throw"Unable to load Ext, jQuery not found."}(function(){var b;Ext.lib.Dom={getViewWidth:function(d){return d?Math.max(jQuery(document).width(),jQuery(window).width()):jQuery(window).width()},getViewHeight:function(d){return d?Math.max(jQuery(document).height(),jQuery(window).height()):jQuery(window).height()},isAncestor:function(e,f){var d=false;</