/*
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
(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 (k, m, l, r) {
var n = this, q, s, p;
if (typeof k == "object") {
r = k;
for (q in r) {
s = r[q];
if (!n.filterOptRe.test(q)) {
n.addListener(q, s.fn || s, s.scope || r.scope, s.fn ? s : r)
}
}
} else {
k = k.toLowerCase();
p = n.events[k] || g;
if (typeof p == "boolean") {
n.events[k] = p = new h.Event(n, k)
}
p.addListener(m, l, typeof r == "object" ? r : {})
}
}, 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(), o = Array.prototype.slice.call(arguments, 0);
if (!k.tasks) {
k.tasks = []
}
k.tasks.push(l);
l.delay(p.delay || 10, function () {
k.tasks.remove(l);
n.apply(m, o)
}, m)
}
}
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.DomHelper = function () {
var x = 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, t = /td|tr|tbody/i, o = /([a-z0-9-]+)\s*:\s*([^;\s]+(?:\s*[^;\s]+)*);?/gi, v = /end/i, r, n = "afterbegin", p = "afterend", c = "beforebegin", q = "beforeend", a = "
';
e.body.appendChild(g);
d = g.lastChild;
if ((c = e.defaultView)) {
if (c.getComputedStyle(g.firstChild.firstChild, null).marginRight != "0px") {
b.correctRightMargin = false
}
if (c.getComputedStyle(d, null).backgroundColor != "transparent") {
b.correctTransparentColor = false
}
}
b.cssFloat = !!d.style.cssFloat;
e.body.removeChild(g)
};
if (Ext.isReady) {
a()
} else {
Ext.onReady(a)
}
})();
Ext.EventObject = function () {
var b = Ext.lib.Event, c = /(dbl)?click/, a = {3:13, 63234:37, 63235:39, 63232:38, 63233:40, 63276:33, 63277:34, 63272:46, 63273:36, 63275:35}, d = Ext.isIE ? {1:0, 4:1, 2:2} : {0:0, 1:1, 2:2};
Ext.EventObjectImpl = function (g) {
if (g) {
this.setEvent(g.browserEvent || g)
}
};
Ext.EventObjectImpl.prototype = {setEvent:function (h) {
var g = this;
if (h == g || (h && h.browserEvent)) {
return h
}
g.browserEvent = h;
if (h) {
g.button = h.button ? d[h.button] : (h.which ? h.which - 1 : -1);
if (c.test(h.type) && g.button == -1) {
g.button = 0
}
g.type = h.type;
g.shiftKey = h.shiftKey;
g.ctrlKey = h.ctrlKey || h.metaKey || false;
g.altKey = h.altKey;
g.keyCode = h.keyCode;
g.charCode = h.charCode;
g.target = b.getTarget(h);
g.xy = b.getXY(h)
} else {
g.button = -1;
g.shiftKey = false;
g.ctrlKey = false;
g.altKey = false;
g.keyCode = 0;
g.charCode = 0;
g.target = null;
g.xy = [0, 0]
}
return g
}, stopEvent:function () {
var e = this;
if (e.browserEvent) {
if (e.browserEvent.type == "mousedown") {
Ext.EventManager.stoppedMouseDownEvent.fire(e)
}
b.stopEvent(e.browserEvent)
}
}, preventDefault:function () {
if (this.browserEvent) {
b.preventDefault(this.browserEvent)
}
}, stopPropagation:function () {
var e = this;
if (e.browserEvent) {
if (e.browserEvent.type == "mousedown") {
Ext.EventManager.stoppedMouseDownEvent.fire(e)
}
b.stopPropagation(e.browserEvent)
}
}, getCharCode:function () {
return this.charCode || this.keyCode
}, getKey:function () {
return this.normalizeKey(this.keyCode || this.charCode)
}, normalizeKey:function (e) {
return Ext.isSafari ? (a[e] || e) : e
}, getPageX:function () {
return this.xy[0]
}, getPageY:function () {
return this.xy[1]
}, getXY:function () {
return this.xy
}, getTarget:function (g, h, e) {
return g ? Ext.fly(this.target).findParent(g, h, e) : (e ? Ext.get(this.target) : this.target)
}, getRelatedTarget:function () {
return this.browserEvent ? b.getRelatedTarget(this.browserEvent) : null
}, getWheelDelta:function () {
var g = this.browserEvent;
var h = 0;
if (g.wheelDelta) {
h = g.wheelDelta / 120
} else {
if (g.detail) {
h = -g.detail / 3
}
}
return h
}, within:function (h, i, e) {
if (h) {
var g = this[i ? "getRelatedTarget" : "getTarget"]();
return g && ((e ? (g == Ext.getDom(h)) : false) || Ext.fly(h).contains(g))
}
return false
}};
return new Ext.EventObjectImpl()
}();
Ext.Loader = Ext.apply({}, {load:function (j, i, k, c) {
var k = k || this, g = document.getElementsByTagName("head")[0], b = document.createDocumentFragment(), a = j.length, h = 0, e = this;
var l = function (m) {
g.appendChild(e.buildScriptTag(j[m], d))
};
var d = function () {
h++;
if (a == h && typeof i == "function") {
i.call(k)
} else {
if (c === true) {
l(h)
}
}
};
if (c === true) {
l.call(this, 0)
} else {
Ext.each(j, function (n, m) {
b.appendChild(this.buildScriptTag(n, d))
}, this);
g.appendChild(b)
}
}, buildScriptTag:function (b, c) {
var a = document.createElement("script");
a.type = "text/javascript";
a.src = b;
if (a.readyState) {
a.onreadystatechange = function () {
if (a.readyState == "loaded" || a.readyState == "complete") {
a.onreadystatechange = null;
c()
}
}
} else {
a.onload = c
}
return a
}});
Ext.ns("Ext.grid", "Ext.list", "Ext.dd", "Ext.tree", "Ext.form", "Ext.menu", "Ext.state", "Ext.layout.boxOverflow", "Ext.app", "Ext.ux", "Ext.chart", "Ext.direct", "Ext.slider");
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 (g, d, e) {
return Ext.isEmpty(g, e) ? d : g
}, escapeRe:function (d) {
return d.replace(/([-.*+?^${}()|[\]\/\\])/g, "\\$1")
}, sequence:function (h, d, g, e) {
h[d] = h[d].createSequence(g, e)
}, addBehaviors:function (i) {
if (!Ext.isReady) {
Ext.onReady(function () {
Ext.addBehaviors(i)
})
} else {
var e = {}, h, d, g;
for (d in i) {
if ((h = d.split("@"))[1]) {
g = h[0];
if (!e[g]) {
e[g] = Ext.select(g)
}
e[g].on(h[1], i[d])
}
}
e = null
}
}, getScrollBarWidth:function (g) {
if (!Ext.isReady) {
return 0
}
if (g === true || b === null) {
var i = Ext.getBody().createChild('
'), h = i.child("div", true);
var e = h.offsetWidth;
i.setStyle("overflow", (Ext.isWebKit || Ext.isGecko) ? "auto" : "scroll");
var d = h.offsetWidth;
i.remove();
b = e - d + 2
}
return b
}, combine:function () {
var g = arguments, e = g.length, j = [];
for (var h = 0; h < e; h++) {
var d = g[h];
if (Ext.isArray(d)) {
j = j.concat(d)
} else {
if (d.length !== undefined && !d.substr) {
j = j.concat(Array.prototype.slice.call(d, 0))
} else {
j.push(d)
}
}
}
return j
}, copyTo:function (d, e, g) {
if (typeof g == "string") {
g = g.split(/[,;\s]/)
}
Ext.each(g, function (h) {
if (e.hasOwnProperty(h)) {
d[h] = e[h]
}
}, 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 (l, j, g, h) {
for (var k = 1, e = arguments, d = e.length; k < d; k++) {
Ext.destroy(l[e[k]]);
delete l[e[k]]
}
}, clean:function (d) {
var e = [];
Ext.each(d, function (g) {
if (!!g) {
e.push(g)
}
});
return e
}, unique:function (d) {
var e = [], g = {};
Ext.each(d, function (h) {
if (!g[h]) {
e.push(h)
}
g[h] = true
});
return e
}, flatten:function (d) {
var g = [];
function e(h) {
Ext.each(h, function (i) {
if (Ext.isArray(i)) {
e(i)
} else {
g.push(i)
}
});
return g
}
return e(d)
}, min:function (d, e) {
var g = d[0];
e = e || function (i, h) {
return i < h ? -1 : 1
};
Ext.each(d, function (h) {
g = e(g, h) == -1 ? g : h
});
return g
}, max:function (d, e) {
var g = d[0];
e = e || function (i, h) {
return i > h ? 1 : -1
};
Ext.each(d, function (h) {
g = e(g, h) == 1 ? g : h
});
return g
}, mean:function (d) {
return d.length > 0 ? Ext.sum(d) / d.length : undefined
}, sum:function (d) {
var e = 0;
Ext.each(d, function (g) {
e += g
});
return e
}, partition:function (d, e) {
var g = [
[],
[]
];
Ext.each(d, function (j, k, h) {
g[(e && e(j, k, h)) || (!e && j) ? 0 : 1].push(j)
});
return g
}, invoke:function (d, e) {
var h = [], g = Array.prototype.slice.call(arguments, 2);
Ext.each(d, function (j, k) {
if (j && typeof j[e] == "function") {
h.push(j[e].apply(j, g))
} else {
h.push(undefined)
}
});
return h
}, pluck:function (d, g) {
var e = [];
Ext.each(d, function (h) {
e.push(h[g])
});
return e
}, zip:function () {
var n = Ext.partition(arguments, function (i) {
return typeof i != "function"
}), k = n[0], m = n[1][0], d = Ext.max(Ext.pluck(k, "length")), h = [];
for (var l = 0; l < d; l++) {
h[l] = [];
if (m) {
h[l] = m.apply(m, Ext.pluck(k, l))
} else {
for (var g = 0, e = k.length; g < e; g++) {
h[l].push(k[g][l])
}
}
}
return h
}, 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 (h, d, g, e) {
h[d] = h[d].createInterceptor(g, e)
}, callback:function (d, h, g, e) {
if (typeof d == "function") {
if (e) {
d.defer(e, h, g || [])
} else {
d.apply(h, g || [])
}
}
}}
}());
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.lib.Dom.getRegion = function (a) {
return Ext.lib.Region.getRegion(a)
};
Ext.lib.Region = function (d, g, a, c) {
var e = this;
e.top = d;
e[1] = d;
e.right = g;
e.bottom = a;
e.left = c;
e[0] = c
};
Ext.lib.Region.prototype = {contains:function (b) {
var a = this;
return(b.left >= a.left && b.right <= a.right && b.top >= a.top && b.bottom <= a.bottom)
}, getArea:function () {
var a = this;
return((a.bottom - a.top) * (a.right - a.left))
}, intersect:function (h) {
var g = this, d = Math.max(g.top, h.top), e = Math.min(g.right, h.right), a = Math.min(g.bottom, h.bottom), c = Math.max(g.left, h.left);
if (a >= d && e >= c) {
return new Ext.lib.Region(d, e, a, c)
}
}, union:function (h) {
var g = this, d = Math.min(g.top, h.top), e = Math.max(g.right, h.right), a = Math.max(g.bottom, h.bottom), c = Math.min(g.left, h.left);
return new Ext.lib.Region(d, e, a, c)
}, constrainTo:function (b) {
var a = this;
a.top = a.top.constrain(b.top, b.bottom);
a.bottom = a.bottom.constrain(b.top, b.bottom);
a.left = a.left.constrain(b.left, b.right);
a.right = a.right.constrain(b.left, b.right);
return a
}, adjust:function (d, c, a, g) {
var e = this;
e.top += d;
e.left += c;
e.right += g;
e.bottom += a;
return e
}};
Ext.lib.Region.getRegion = function (e) {
var h = Ext.lib.Dom.getXY(e), d = h[1], g = h[0] + e.offsetWidth, a = h[1] + e.offsetHeight, c = h[0];
return new Ext.lib.Region(d, g, a, c)
};
Ext.lib.Point = function (a, c) {
if (Ext.isArray(a)) {
c = a[1];
a = a[0]
}
var b = this;
b.x = b.right = b.left = b[0] = a;
b.y = b.top = b.bottom = b[1] = c
};
Ext.lib.Point.prototype = new Ext.lib.Region();
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.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.util.Functions = {createInterceptor:function (c, b, a) {
var d = c;
if (!Ext.isFunction(b)) {
return c
} else {
return function () {
var g = this, e = arguments;
b.target = g;
b.method = c;
return(b.apply(a || g || window, e) !== false) ? c.apply(g || window, e) : null
}
}
}, createDelegate:function (c, d, b, a) {
if (!Ext.isFunction(c)) {
return c
}
return function () {
var g = b || arguments;
if (a === true) {
g = Array.prototype.slice.call(arguments, 0);
g = g.concat(b)
} else {
if (Ext.isNumber(a)) {
g = Array.prototype.slice.call(arguments, 0);
var e = [a, 0].concat(b);
Array.prototype.splice.apply(g, e)
}
}
return c.apply(d || window, g)
}
}, defer:function (d, c, e, b, a) {
d = Ext.util.Functions.createDelegate(d, e, b, a);
if (c > 0) {
return setTimeout(d, c)
}
d();
return 0
}, createSequence:function (c, b, a) {
if (!Ext.isFunction(b)) {
return c
} else {
return function () {
var d = c.apply(this || window, arguments);
b.apply(a || this || window, arguments);
return d
}
}
}};
Ext.defer = Ext.util.Functions.defer;
Ext.createInterceptor = Ext.util.Functions.createInterceptor;
Ext.createSequence = Ext.util.Functions.createSequence;
Ext.createDelegate = Ext.util.Functions.createDelegate;
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.apply(Ext.EventManager, function () {
var d, k, g, b, a = Ext.lib.Dom, j = /^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/, c = Ext.EventManager._unload, i = 0, h = 0, e = Ext.isWebKit ? Ext.num(navigator.userAgent.match(/AppleWebKit\/(\d+)/)[1]) >= 525 : !((Ext.isGecko && !Ext.isWindows) || Ext.isOpera);
return{_unload:function () {
Ext.EventManager.un(window, "resize", this.fireWindowResize, this);
c.call(Ext.EventManager)
}, doResizeEvent:function () {
var m = a.getViewHeight(), l = a.getViewWidth();
if (h != m || i != l) {
d.fire(i = l, h = m)
}
}, onWindowResize:function (n, m, l) {
if (!d) {
d = new Ext.util.Event();
k = new Ext.util.DelayedTask(this.doResizeEvent);
Ext.EventManager.on(window, "resize", this.fireWindowResize, this)
}
d.addListener(n, m, l)
}, fireWindowResize:function () {
if (d) {
k.delay(100)
}
}, onTextResize:function (o, n, l) {
if (!g) {
g = new Ext.util.Event();
var m = new Ext.Element(document.createElement("div"));
m.dom.className = "x-text-resize";
m.dom.innerHTML = "X";
m.appendTo(document.body);
b = m.dom.offsetHeight;
setInterval(function () {
if (m.dom.offsetHeight != b) {
g.fire(b, b = m.dom.offsetHeight)
}
}, this.textResizeInterval)
}
g.addListener(o, n, l)
}, removeResizeListener:function (m, l) {
if (d) {
d.removeListener(m, l)
}
}, fireResize:function () {
if (d) {
d.fire(a.getViewWidth(), a.getViewHeight())
}
}, textResizeInterval:50, ieDeferSrc:false, getKeyEvent:function () {
return e ? "keydown" : "keypress"
}, useKeydown:e}
}());
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)
}});
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 += '
';
Ext.lib.Event.onAvailable(id, function () {
var DOC = document, hd = DOC.getElementsByTagName("head")[0], re = /(?: