/*
 * Ext JS Library 3.3.0
 * Copyright(c) 2006-2010 Ext JS, Inc.
 * licensing@extjs.com
 * http://www.extjs.com/license
 */
window.undefined = window.undefined; Ext = { version: "3.3.0", versionDetail: { major: 3, minor: 3, patch: 0} }; 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, t = Object.prototype.toString, u = navigator.userAgent.toLowerCase(), z = function (e) { return e.test(u) }, i = document, n = i.documentMode, l = i.compatMode == "CSS1Compat", B = z(/opera/), h = z(/\bchrome\b/), v = z(/webkit/), y = !h && z(/safari/), f = y && z(/applewebkit\/4/), b = y && z(/version\/3/), C = y && z(/version\/4/), s = !B && z(/msie/), q = s && (z(/msie 7/) || n == 7), p = s && (z(/msie 8/) && n != 7), r = s && !q && !p, o = !v && z(/gecko/), d = o && z(/rv:1\.8/), a = o && z(/rv:1\.9/), w = s && !l, A = z(/windows|win32/), k = z(/macintosh|mac os x/), j = z(/adobeair/), m = z(/linux/), c = /^https/i.test(window.location.protocol); if (r) { try { i.execCommand("BackgroundImageCache", false, true) } catch (x) { } } Ext.apply(Ext, { SSL_SECURE_URL: c && s ? 'javascript:""' : "about:blank", isStrict: l, isSecure: c, isReady: false, enableForcedBoxModel: false, enableGarbageCollector: true, enableListenerCollection: false, enableNestedListenerRemoval: false, USE_NATIVE_JSON: false, applyIf: function (D, E) { if (D) { for (var e in E) { if (!Ext.isDefined(D[e])) { D[e] = E[e] } } } return D }, id: function (e, D) { e = Ext.getDom(e, true) || {}; if (!e.id) { e.id = (D || "ext-gen") + (++g) } return e.id }, extend: function () { var D = function (F) { for (var E in F) { this[E] = F[E] } }; var e = Object.prototype.constructor; return function (K, H, J) { if (typeof H == "object") { J = H; H = K; K = J.constructor != e ? J.constructor : function () { H.apply(this, arguments) } } var G = function () { }, I, E = H.prototype; G.prototype = E; I = K.prototype = new G(); I.constructor = K; K.superclass = E; if (E.constructor == e) { E.constructor = H } K.override = function (F) { Ext.override(K, F) }; I.superclass = I.supr = (function () { return E }); I.override = D; Ext.override(K, J); K.extend = function (F) { return Ext.extend(K, F) }; return K } } (), override: function (e, E) { if (E) { var D = e.prototype; Ext.apply(D, E); if (Ext.isIE && E.hasOwnProperty("toString")) { D.toString = E.toString } } }, namespace: function () { var D, e; Ext.each(arguments, function (E) { e = E.split("."); D = window[e[0]] = window[e[0]] || {}; Ext.each(e.slice(1), function (F) { D = D[F] = D[F] || {} }) }); return D }, urlEncode: function (H, G) { var E, D = [], F = encodeURIComponent; Ext.iterate(H, function (e, I) { E = Ext.isEmpty(I); Ext.each(E ? e : I, function (J) { D.push("&", F(e), "=", (!Ext.isEmpty(J) && (J != e || !E)) ? (Ext.isDate(J) ? Ext.encode(J).replace(/"/g, "") : F(J)) : "") }) }); if (!G) { D.shift(); G = "" } return G + D.join("") }, urlDecode: function (E, D) { if (Ext.isEmpty(E)) { return {} } var H = {}, G = E.split("&"), I = decodeURIComponent, e, F; Ext.each(G, function (J) { J = J.split("="); e = I(J[0]); F = I(J[1]); H[e] = D || !H[e] ? F : [].concat(H[e]).concat(F) }); return H }, urlAppend: function (e, D) { if (!Ext.isEmpty(D)) { return e + (e.indexOf("?") === -1 ? "?" : "&") + D } return e }, toArray: function () { return s ? function (E, H, F, G) { G = []; for (var D = 0, e = E.length; D < e; D++) { G.push(E[D]) } return G.slice(H || 0, F || G.length) } : function (e, E, D) { return Array.prototype.slice.call(e, E || 0, D || e.length) } } (), isIterable: function (e) { if (Ext.isArray(e) || e.callee) { return true } if (/NodeList|HTMLCollection/.test(t.call(e))) { return true } return ((typeof e.nextNode != "undefined" || e.item) && Ext.isNumber(e.length)) }, each: function (G, F, E) { if (Ext.isEmpty(G, true)) { return } if (!Ext.isIterable(G) || Ext.isPrimitive(G)) { G = [G] } for (var D = 0, e = G.length; D < e; D++) { if (F.call(E || G[D], G[D], D, G) === false) { return D } } }, iterate: function (E, D, e) { if (Ext.isEmpty(E)) { return } if (Ext.isIterable(E)) { Ext.each(E, D, e); return } else { if (typeof E == "object") { for (var F in E) { if (E.hasOwnProperty(F)) { if (D.call(e || E, F, E[F], E) === false) { return } } } } } }, getDom: function (E, D) { if (!E || !i) { return null } if (E.dom) { return E.dom } else { if (typeof E == "string") { var F = i.getElementById(E); if (F && s && D) { if (E == F.getAttribute("id")) { return F } else { return null } } return F } else { return E } } }, getBody: function () { return Ext.get(i.body || i.documentElement) }, getHead: function () { var e; return function () { if (e == undefined) { e = Ext.get(i.getElementsByTagName("head")[0]) } return e } } (), removeNode: s && !p ? function () { var e; return function (D) { if (D && D.tagName != "BODY") { (Ext.enableNestedListenerRemoval) ? Ext.EventManager.purgeElement(D, true) : Ext.EventManager.removeAll(D); e = e || i.createElement("div"); e.appendChild(D); e.innerHTML = ""; delete Ext.elCache[D.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 (D, e) { return D === null || D === undefined || ((Ext.isArray(D) && !D.length)) || (!e ? D === "" : false) }, isArray: function (e) { return t.apply(e) === "[object Array]" }, isDate: function (e) { return t.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 t.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: B, isWebKit: v, isChrome: h, isSafari: y, isSafari3: b, isSafari4: C, isSafari2: f, isIE: s, isIE6: r, isIE7: q, isIE8: p, isGecko: o, isGecko2: d, isGecko3: a, isBorderBox: w, isLinux: m, isWindows: A, isMac: k, isAir: j }); 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(); (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.Event = function () { var v = false, f = {}, z = 0, o = [], d, A = false, k = window, E = document, l = 200, r = 20, p = 0, i = 1, s = 2, w = 3, t = "scrollLeft", q = "scrollTop", g = "unload", y = "mouseover", D = "mouseout", e = function () { var F; if (k.addEventListener) { F = function (J, H, I, G) { if (H == "mouseenter") { I = I.createInterceptor(n); J.addEventListener(y, I, (G)) } else { if (H == "mouseleave") { I = I.createInterceptor(n); J.addEventListener(D, I, (G)) } else { J.addEventListener(H, I, (G)) } } return I } } else { if (k.attachEvent) { F = function (J, H, I, G) { J.attachEvent("on" + H, I); return I } } else { F = function () { } } } return F } (), h = function () { var F; if (k.removeEventListener) { F = function (J, H, I, G) { if (H == "mouseenter") { H = y } else { if (H == "mouseleave") { H = D } } J.removeEventListener(H, I, (G)) } } else { if (k.detachEvent) { F = function (I, G, H) { I.detachEvent("on" + G, H) } } else { F = function () { } } } return F } (); function n(F) { return !u(F.currentTarget, x.getRelatedTarget(F)) } function u(F, G) { if (F && F.firstChild) { while (G) { if (G === F) { return true } G = G.parentNode; if (G && (G.nodeType != 1)) { G = null } } } return false } function B() { var G = false, L = [], J, I, F, H, K = !v || (z > 0); if (!A) { A = true; for (I = 0; I < o.length; ++I) { F = o[I]; if (F && (J = E.getElementById(F.id))) { if (!F.checkReady || v || J.nextSibling || (E && E.body)) { H = F.override; J = H ? (H === true ? F.obj : H) : J; F.fn.call(J, F.obj); o.remove(F); --I } else { L.push(F) } } } z = (L.length === 0) ? 0 : z - 1; if (K) { m() } else { clearInterval(d); d = null } G = !(A = false) } return G } function m() { if (!d) { var F = function () { B() }; d = setInterval(F, r) } } function C() { var F = E.documentElement, G = E.body; if (F && (F[q] || F[t])) { return [F[t], F[q]] } else { if (G) { return [G[t], G[q]] } else { return [0, 0] } } } function j(F, G) { F = F.browserEvent || F; var H = F["page" + G]; if (!H && H !== 0) { H = F["client" + G] || 0; if (Ext.isIE) { H += C()[G == "X" ? 0 : 1] } } return H } var x = { extAdapter: true, onAvailable: function (H, F, I, G) { o.push({ id: H, fn: F, obj: I, override: G, checkReady: false }); z = l; m() }, addListener: function (H, F, G) { H = Ext.getDom(H); if (H && G) { if (F == g) { if (f[H.id] === undefined) { f[H.id] = [] } f[H.id].push([F, G]); return G } return e(H, F, G, false) } return false }, removeListener: function (L, H, K) { L = Ext.getDom(L); var J, G, F, I; if (L && K) { if (H == g) { if ((I = f[L.id]) !== undefined) { for (J = 0, G = I.length; J < G; J++) { if ((F = I[J]) && F[p] == H && F[i] == K) { f[L.id].splice(J, 1) } } } return } h(L, H, K, false) } }, getTarget: function (F) { F = F.browserEvent || F; return this.resolveTextNode(F.target || F.srcElement) }, resolveTextNode: Ext.isGecko ? function (G) { if (!G) { return } var F = HTMLElement.prototype.toString.call(G); if (F == "[xpconnect wrapped native prototype]" || F == "[object XULElement]") { return } return G.nodeType == 3 ? G.parentNode : G } : function (F) { return F && F.nodeType == 3 ? F.parentNode : F }, getRelatedTarget: function (F) { F = F.browserEvent || F; return this.resolveTextNode(F.relatedTarget || (/(mouseout|mouseleave)/.test(F.type) ? F.toElement : /(mouseover|mouseenter)/.test(F.type) ? F.fromElement : null)) }, getPageX: function (F) { return j(F, "X") }, getPageY: function (F) { return j(F, "Y") }, getXY: function (F) { return [this.getPageX(F), this.getPageY(F)] }, stopEvent: function (F) { this.stopPropagation(F); this.preventDefault(F) }, stopPropagation: function (F) { F = F.browserEvent || F; if (F.stopPropagation) { F.stopPropagation() } else { F.cancelBubble = true } }, preventDefault: function (F) { F = F.browserEvent || F; if (F.preventDefault) { F.preventDefault() } else { F.returnValue = false } }, getEvent: function (F) { F = F || k.event; if (!F) { var G = this.getEvent.caller; while (G) { F = G.arguments[0]; if (F && Event == F.constructor) { break } G = G.caller } } return F }, getCharCode: function (F) { F = F.browserEvent || F; return F.charCode || F.keyCode || 0 }, getListeners: function (G, F) { Ext.EventManager.getListeners(G, F) }, purgeElement: function (G, H, F) { Ext.EventManager.purgeElement(G, H, F) }, _load: function (F) { v = true; if (Ext.isIE && F !== true) { h(k, "load", arguments.callee) } }, _unload: function (J) { var G = Ext.lib.Event, H, M, K, F, I, N; for (F in f) { K = f[F]; for (H = 0, I = K.length; H < I; H++) { M = K[H]; if (M) { try { N = M[w] ? (M[w] === true ? M[s] : M[w]) : k; M[i].call(N, G.getEvent(J), M[s]) } catch (L) { } } } } Ext.EventManager._unload(); h(k, g, G._unload) } }; x.on = x.addListener; x.un = x.removeListener; if (E && E.body) { x._load(true) } else { e(k, "load", x._load) } e(k, g, x._unload); B(); return x } (); Ext.lib.Ajax = function () { var g = ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP"], d = "Content-Type"; function h(v) { var t = v.conn, w, u = {}; function s(x, y) { for (w in y) { if (y.hasOwnProperty(w)) { x.setRequestHeader(w, y[w]) } } } Ext.apply(u, k.headers, k.defaultHeaders); s(t, u); delete k.headers } function e(v, u, t, s) { return { tId: v, status: t ? -1 : 0, statusText: t ? "transaction aborted" : "communication failure", isAbort: t, isTimeout: s, argument: u} } function j(s, t) { (k.headers = k.headers || {})[s] = t } function p(u, y) { var C = {}, x, w = u.conn, A, B, v = w.status == 1223; try { x = u.conn.getAllResponseHeaders(); Ext.each(x.replace(/\r\n/g, "\n").split("\n"), function (s) { A = s.indexOf(":"); if (A >= 0) { B = s.substr(0, A).toLowerCase(); if (s.charAt(A + 1) == " ") { ++A } C[B] = s.substr(A + 1) } }) } catch (z) { } return { tId: u.tId, status: v ? 204 : w.status, statusText: v ? "No Content" : w.statusText, getResponseHeader: function (s) { return C[s.toLowerCase()] }, getAllResponseHeaders: function () { return x }, responseText: w.responseText, responseXML: w.responseXML, argument: y} } function o(s) { if (s.tId) { k.conn[s.tId] = null } s.conn = null; s = null } function f(x, y, t, s) { if (!y) { o(x); return } var v, u; try { if (x.conn.status !== undefined && x.conn.status != 0) { v = x.conn.status } else { v = 13030 } } catch (w) { v = 13030 } if ((v >= 200 && v < 300) || (Ext.isIE && v == 1223)) { u = p(x, y.argument); if (y.success) { if (!y.scope) { y.success(u) } else { y.success.apply(y.scope, [u]) } } } else { switch (v) { case 12002: case 12029: case 12030: case 12031: case 12152: case 13030: u = e(x.tId, y.argument, (t ? t : false), s); if (y.failure) { if (!y.scope) { y.failure(u) } else { y.failure.apply(y.scope, [u]) } } break; default: u = p(x, y.argument); if (y.failure) { if (!y.scope) { y.failure(u) } else { y.failure.apply(y.scope, [u]) } } } } o(x); u = null } function m(u, x, s, w, t, v) { if (s && s.readyState == 4) { clearInterval(t[w]); t[w] = null; if (v) { clearTimeout(k.timeout[w]); k.timeout[w] = null } f(u, x) } } function r(s, t) { k.abort(s, t, true) } function n(u, x) { x = x || {}; var s = u.conn, w = u.tId, t = k.poll, v = x.timeout || null; if (v) { k.conn[w] = s; k.timeout[w] = setTimeout(r.createCallback(u, x), v) } t[w] = setInterval(m.createCallback(u, x, s, w, t, v), k.pollInterval) } function i(w, t, v, s) { var u = l() || null; if (u) { u.conn.open(w, t, true); if (k.useDefaultXhrHeader) { j("X-Requested-With", k.defaultXhrHeader) } if (s && k.useDefaultHeader && (!k.headers || !k.headers[d])) { j(d, k.defaultPostHeader) } if (k.defaultHeaders || k.headers) { h(u) } n(u, v); u.conn.send(s || null) } return u } function l() { var t; try { if (t = q(k.transactionId)) { k.transactionId++ } } catch (s) { } finally { return t } } function q(v) { var s; try { s = new XMLHttpRequest() } catch (u) { for (var t = 0; t < g.length; ++t) { try { s = new ActiveXObject(g[t]); break } catch (u) { } } } finally { return { conn: s, tId: v} } } var k = { request: function (s, u, v, w, A) { if (A) { var x = this, t = A.xmlData, y = A.jsonData, z; Ext.applyIf(x, A); if (t || y) { z = x.headers; if (!z || !z[d]) { j(d, t ? "text/xml" : "application/json") } w = t || (!Ext.isPrimitive(y) ? Ext.encode(y) : y) } } return i(s || A.method || "POST", u, v, w) }, serializeForm: function (y) { var x = y.elements || (document.forms[y] || Ext.getDom(y)).elements, s = false, w = encodeURIComponent, t, z = "", v, u; Ext.each(x, function (A) { t = A.name; v = A.type; if (!A.disabled && t) { if (/select-(one|multiple)/i.test(v)) { Ext.each(A.options, function (B) { if (B.selected) { u = B.hasAttribute ? B.hasAttribute("value") : B.getAttributeNode("value").specified; z += String.format("{0}={1}&", w(t), w(u ? B.value : B.text)) } }) } else { if (!(/file|undefined|reset|button/i.test(v))) { if (!(/radio|checkbox/i.test(v) && !A.checked) && !(v == "submit" && s)) { z += w(t) + "=" + w(A.value) + "&"; s = /submit/i.test(v) } } } } }); return z.substr(0, z.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 (v, x, s) { var u = this, w = v.tId, t = false; if (u.isCallInProgress(v)) { v.conn.abort(); clearInterval(u.poll[w]); u.poll[w] = null; clearTimeout(k.timeout[w]); u.timeout[w] = null; f(v, x, (t = true), s) } return t }, isCallInProgress: function (s) { return s.conn && !{ 0: true, 4: true}[s.conn.readyState] } }; return k } (); (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) / 1000, 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: 1000, 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 * 1000 / v), q = (e() - r.startTime), w = 0; if (q < t * 1000) { 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 (o, n, p, q) { if (o) { g.Motion.superclass.constructor.call(this, o, n, p, q) } }; Ext.extend(g.Motion, Ext.lib.AnimBase); var m = g.Motion.superclass, l = /^points$/i; Ext.apply(g.Motion.prototype, { setAttr: function (n, r, q) { var p = this, o = m.setAttr; if (l.test(n)) { q = q || "px"; o.call(p, "left", r[0], q); o.call(p, "top", r[1], q) } else { o.call(p, n, r, q) } }, getAttr: function (n) { var p = this, o = m.getAttr; return l.test(n) ? [o.call(p, "left"), o.call(p, "top")] : o.call(p, n) }, doMethod: function (n, q, o) { var p = this; return l.test(n) ? g.Bezier.getPosition(p.runAttrs[n], p.method(p.curFrame, 0, 100, p.totalFrames) / 100) : m.doMethod.call(p, n, q, o) }, setRunAttr: function (u) { if (l.test(u)) { var w = this, p = this.el, z = this.attributes.points, s = z.control || [], x = z.from, y = z.to, v = z.by, A = g.Dom, o, r, q, t, n; if (s.length > 0 && !Ext.isArray(s[0])) { s = [s] } else { } Ext.fly(p, "_anim").position(); A.setXY(p, j(x) ? x : A.getXY(p)); o = w.getAttr("points"); if (j(y)) { q = k.call(w, y, o); for (r = 0, t = s.length; r < t; ++r) { s[r] = k.call(w, s[r], o) } } else { if (j(v)) { q = [o[0] + v[0], o[1] + v[1]]; for (r = 0, t = s.length; r < t; ++r) { s[r] = [o[0] + s[r][0], o[1] + s[r][1]] } } } n = this.runAttrs[u] = [o]; if (s.length > 0) { n = n.concat(s) } n[n.length] = q } else { m.setRunAttr.call(this, u) } } }); var k = function (n, p) { var o = g.Dom.getXY(this.el); return [n[0] - o[0] + p[0], n[1] - o[1] + p[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 * 0.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 * 0.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 * (0.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 ? -0.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) * 0.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 + 0.75) + j } else { if (k < (2.5 / 2.75)) { return m * (7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375) + j } } } return m * (7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375) + j }, bounceBoth: function (k, j, m, l) { return (k < l / 2) ? f.Easing.bounceIn(k * 2, 0, m, l) * 0.5 + j : f.Easing.bounceOut(k * 2 - l, 0, m, l) * 0.5 + m * 0.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) } })();
