/* * Ext JS Library 2.0 Copyright(c) 2006-2007, Ext JS, LLC. licensing@extjs.com * * http://extjs.com/license */ (function() { var B; Ext.lib.Dom = { getViewWidth : function(E) { return E ? this.getDocumentWidth() : this.getViewportWidth() }, getViewHeight : function(E) { return E ? this.getDocumentHeight() : this.getViewportHeight() }, getDocumentHeight : function() { var E = (document.compatMode != "CSS1Compat") ? document.body.scrollHeight : document.documentElement.scrollHeight; return Math.max(E, this.getViewportHeight()) }, getDocumentWidth : function() { var E = (document.compatMode != "CSS1Compat") ? document.body.scrollWidth : document.documentElement.scrollWidth; return Math.max(E, this.getViewportWidth()) }, getViewportHeight : function() { if (Ext.isIE) { return Ext.isStrict ? document.documentElement.clientHeight : document.body.clientHeight } else { return self.innerHeight } }, getViewportWidth : function() { if (Ext.isIE) { return Ext.isStrict ? document.documentElement.clientWidth : document.body.clientWidth } else { return self.innerWidth } }, isAncestor : function(F, G) { F = Ext.getDom(F); G = Ext.getDom(G); if (!F || !G) { return false } if (F.contains && !Ext.isSafari) { return F.contains(G) } else { if (F.compareDocumentPosition) { return !!(F.compareDocumentPosition(G) & 16) } else { var E = G.parentNode; while (E) { if (E == F) { return true } else { if (!E.tagName || E.tagName.toUpperCase() == "HTML") { return false } } E = E.parentNode } return false } } }, getRegion : function(E) { return Ext.lib.Region.getRegion(E) }, getY : function(E) { return this.getXY(E)[1] }, getX : function(E) { return this.getXY(E)[0] }, getXY : function(G) { var F, K, M, N, J = (document.body || document.documentElement); G = Ext.getDom(G); if (G == J) { return [0, 0] } if (G.getBoundingClientRect) { M = G.getBoundingClientRect(); N = C(document).getScroll(); return [M.left + N.left, M.top + N.top] } var O = 0, L = 0; F = G; var E = C(G).getStyle("position") == "absolute"; while (F) { O += F.offsetLeft; L += F.offsetTop; if (!E && C(F).getStyle("position") == "absolute") { E = true } if (Ext.isGecko) { K = C(F); var P = parseInt(K.getStyle("borderTopWidth"), 10) || 0; var H = parseInt(K.getStyle("borderLeftWidth"), 10) || 0; O += H; L += P; if (F != G && K.getStyle("overflow") != "visible") { O += H; L += P } } F = F.offsetParent } if (Ext.isSafari && E) { O -= J.offsetLeft; L -= J.offsetTop } if (Ext.isGecko && !E) { var I = C(J); O += parseInt(I.getStyle("borderLeftWidth"), 10) || 0; L += parseInt(I.getStyle("borderTopWidth"), 10) || 0 } F = G.parentNode; while (F && F != J) { if (!Ext.isOpera || (F.tagName != "TR" && C(F).getStyle("display") != "inline")) { O -= F.scrollLeft; L -= F.scrollTop } F = F.parentNode } return [O, L] }, setXY : function(E, F) { E = Ext.fly(E, "_setXY"); E.position(); var G = E.translatePoints(F); if (F[0] !== false) { E.dom.style.left = G.left + "px" } if (F[1] !== false) { E.dom.style.top = G.top + "px" } }, setX : function(F, E) { this.setXY(F, [E, false]) }, setY : function(E, F) { this.setXY(E, [false, F]) } }; Ext.lib.Event = function() { var F = false; var G = []; var K = []; var I = 0; var H = []; var E = 0; var J = null; return { POLL_RETRYS : 200, POLL_INTERVAL : 20, EL : 0, TYPE : 1, FN : 2, WFN : 3, OBJ : 3, ADJ_SCOPE : 4, _interval : null, startInterval : function() { if (!this._interval) { var L = this; var M = function() { L._tryPreloadAttach() }; this._interval = setInterval(M, this.POLL_INTERVAL) } }, onAvailable : function(N, L, O, M) { H.push({ id : N, fn : L, obj : O, override : M, checkReady : false }); I = this.POLL_RETRYS; this.startInterval() }, addListener : function(Q, M, P) { Q = Ext.getDom(Q); if (!Q || !P) { return false } if ("unload" == M) { K[K.length] = [Q, M, P]; return true } var O = function(R) { return typeof Ext != "undefined" ? P(Ext.lib.Event .getEvent(R)) : false }; var L = [Q, M, P, O]; var N = G.length; G[N] = L; this.doAdd(Q, M, O, false); return true }, removeListener : function(S, O, R) { var Q, N; S = Ext.getDom(S); if (!R) { return this.purgeElement(S, false, O) } if ("unload" == O) { for (Q = 0, N = K.length; Q < N; Q++) { var M = K[Q]; if (M && M[0] == S && M[1] == O && M[2] == R) { K.splice(Q, 1); return true } } return false } var L = null; var P = arguments[3]; if ("undefined" == typeof P) { P = this._getCacheIndex(S, O, R) } if (P >= 0) { L = G[P] } if (!S || !L) { return false } this.doRemove(S, O, L[this.WFN], false); delete G[P][this.WFN]; delete G[P][this.FN]; G.splice(P, 1); return true }, getTarget : function(N, M) { N = N.browserEvent || N; var L = N.target || N.srcElement; return this.resolveTextNode(L) }, resolveTextNode : function(L) { if (Ext.isSafari && L && 3 == L.nodeType) { return L.parentNode } else { return L } }, getPageX : function(M) { M = M.browserEvent || M; var L = M.pageX; if (!L && 0 !== L) { L = M.clientX || 0; if (Ext.isIE) { L += this.getScroll()[1] } } return L }, getPageY : function(L) { L = L.browserEvent || L; var M = L.pageY; if (!M && 0 !== M) { M = L.clientY || 0; if (Ext.isIE) { M += this.getScroll()[0] } } return M }, getXY : function(L) { L = L.browserEvent || L; return [this.getPageX(L), this.getPageY(L)] }, getRelatedTarget : function(M) { M = M.browserEvent || M; var L = M.relatedTarget; if (!L) { if (M.type == "mouseout") { L = M.toElement } else { if (M.type == "mouseover") { L = M.fromElement } } } return this.resolveTextNode(L) }, getTime : function(N) { N = N.browserEvent || N; if (!N.time) { var M = allGetServerTime().getTime(); try { N.time = M } catch (L) { this.lastError = L; return M } } return N.time }, stopEvent : function(L) { this.stopPropagation(L); this.preventDefault(L) }, stopPropagation : function(L) { L = L.browserEvent || L; if (L.stopPropagation) { L.stopPropagation() } else { L.cancelBubble = true } }, preventDefault : function(L) { L = L.browserEvent || L; if (L.preventDefault) { L.preventDefault() } else { L.returnValue = false } }, getEvent : function(M) { var L = M || window.event; if (!L) { var N = this.getEvent.caller; while (N) { L = N.arguments[0]; if (L && Event == L.constructor) { break } N = N.caller } } return L }, getCharCode : function(L) { L = L.browserEvent || L; return L.charCode || L.keyCode || 0 }, _getCacheIndex : function(Q, N, P) { for (var O = 0, M = G.length; O < M; ++O) { var L = G[O]; if (L && L[this.FN] == P && L[this.EL] == Q && L[this.TYPE] == N) { return O } } return -1 }, elCache : {}, getEl : function(L) { return document.getElementById(L) }, clearCache : function() { }, _load : function(M) { F = true; var L = Ext.lib.Event; if (Ext.isIE) { L.doRemove(window, "load", L._load) } }, _tryPreloadAttach : function() { if (this.locked) { return false } this.locked = true; var R = !F; if (!R) { R = (I > 0) } var Q = []; for (var M = 0, L = H.length; M < L; ++M) { var P = H[M]; if (P) { var O = this.getEl(P.id); if (O) { if (!P.checkReady || F || O.nextSibling || (document && document.body)) { var N = O; if (P.override) { if (P.override === true) { N = P.obj } else { N = P.override } } P.fn.call(N, P.obj); H[M] = null } } else { Q.push(P) } } } I = (Q.length === 0) ? 0 : I - 1; if (R) { this.startInterval() } else { clearInterval(this._interval); this._interval = null } this.locked = false; return true }, purgeElement : function(P, Q, N) { var R = this.getListeners(P, N); if (R) { for (var O = 0, L = R.length; O < L; ++O) { var M = R[O]; this.removeListener(P, M.type, M.fn) } } if (Q && P && P.childNodes) { for (O = 0, L = P.childNodes.length; O < L; ++O) { this.purgeElement(P.childNodes[O], Q, N) } } }, getListeners : function(M, R) { var P = [], L; if (!R) { L = [G, K] } else { if (R == "unload") { L = [K] } else { L = [G] } } for (var O = 0; O < L.length; ++O) { var T = L[O]; if (T && T.length > 0) { for (var Q = 0, S = T.length; Q < S; ++Q) { var N = T[Q]; if (N && N[this.EL] === M && (!R || R === N[this.TYPE])) { P.push({ type : N[this.TYPE], fn : N[this.FN], obj : N[this.OBJ], adjust : N[this.ADJ_SCOPE], index : Q }) } } } } return (P.length) ? P : null }, _unload : function(S) { var R = Ext.lib.Event, P, O, M, L, N; for (P = 0, L = K.length; P < L; ++P) { M = K[P]; if (M) { var Q = window; if (M[R.ADJ_SCOPE]) { if (M[R.ADJ_SCOPE] === true) { Q = M[R.OBJ] } else { Q = M[R.ADJ_SCOPE] } } M[R.FN].call(Q, R.getEvent(S), M[R.OBJ]); K[P] = null; M = null; Q = null } } K = null; if (G && G.length > 0) { O = G.length; while (O) { N = O - 1; M = G[N]; if (M) { R.removeListener(M[R.EL], M[R.TYPE], M[R.FN], N) } O = O - 1 } M = null; R.clearCache() } R.doRemove(window, "unload", R._unload) }, getScroll : function() { var L = document.documentElement, M = document.body; if (L && (L.scrollTop || L.scrollLeft)) { return [L.scrollTop, L.scrollLeft] } else { if (M) { return [M.scrollTop, M.scrollLeft] } else { return [0, 0] } } }, doAdd : function() { if (window.addEventListener) { return function(O, M, N, L) { O.addEventListener(M, N, (L)) } } else { if (window.attachEvent) { return function(O, M, N, L) { O.attachEvent("on" + M, N) } } else { return function() { } } } }(), doRemove : function() { if (window.removeEventListener) { return function(O, M, N, L) { O.removeEventListener(M, N, (L)) } } else { if (window.detachEvent) { return function(N, L, M) { N.detachEvent("on" + L, M) } } else { return function() { } } } }() } }(); var D = Ext.lib.Event; D.on = D.addListener; D.un = D.removeListener; if (document && document.body) { D._load() } else { D.doAdd(window, "load", D._load) } D.doAdd(window, "unload", D._unload); D._tryPreloadAttach(); Ext.lib.Ajax = { request : function(K, I, E, J, F) { if (F) { var G = F.headers; if (G) { for (var H in G) { if (G.hasOwnProperty(H)) { this.initHeader(H, G[H], false) } } } if (F.xmlData) { this.initHeader("Content-Type", "text/xml", false); K = "POST"; J = F.xmlData } else { if (F.jsonData) { this.initHeader("Content-Type", "text/javascript", false); K = "POST"; J = typeof F.jsonData == "object" ? Ext .encode(F.jsonData) : F.jsonData } } } return this.asyncRequest(K, I, E, J) }, serializeForm : function(F) { if (typeof F == "string") { F = (document.getElementById(F) || document.forms[F]) } var G, E, H, J, K = "", M = false; for (var L = 0; L < F.elements.length; L++) { G = F.elements[L]; J = F.elements[L].disabled; E = F.elements[L].name; H = F.elements[L].value; if (!J && E) { switch (G.type) { case "select-one" : case "select-multiple" : for (var I = 0; I < G.options.length; I++) { if (G.options[I].selected) { if (Ext.isIE) { K += encodeURIComponent(E) + "=" + encodeURIComponent(G.options[I].attributes["value"].specified ? G.options[I].value : G.options[I].text) + "&" } else { K += encodeURIComponent(E) + "=" + encodeURIComponent(G.options[I] .hasAttribute("value") ? G.options[I].value : G.options[I].text) + "&" } } } break; case "radio" : case "checkbox" : if (G.checked) { K += encodeURIComponent(E) + "=" + encodeURIComponent(H) + "&" } break; case "file" : case undefined : case "reset" : case "button" : break; case "submit" : if (M == false) { K += encodeURIComponent(E) + "=" + encodeURIComponent(H) + "&"; M = true } break; default : K += encodeURIComponent(E) + "=" + encodeURIComponent(H) + "&"; break } } } K = K.substr(0, K.length - 1); return K }, headers : {}, hasHeaders : false, useDefaultHeader : true, defaultPostHeader : "application/x-www-form-urlencoded", useDefaultXhrHeader : true, defaultXhrHeader : "XMLHttpRequest", hasDefaultHeaders : true, defaultHeaders : {}, poll : {}, timeout : {}, pollInterval : 50, transactionId : 0, setProgId : function(E) { this.activeX.unshift(E) }, setDefaultPostHeader : function(E) { this.useDefaultHeader = E }, setDefaultXhrHeader : function(E) { this.useDefaultXhrHeader = E }, setPollingInterval : function(E) { if (typeof E == "number" && isFinite(E)) { this.pollInterval = E } }, createXhrObject : function(I) { var H, E; try { E = new XMLHttpRequest(); H = { conn : E, tId : I } } catch (G) { for (var F = 0; F < this.activeX.length; ++F) { try { E = new ActiveXObject(this.activeX[F]); H = { conn : E, tId : I }; break } catch (G) { } } } finally { return H } }, getConnectionObject : function() { var F; var G = this.transactionId; try { F = this.createXhrObject(G); if (F) { this.transactionId++ } } catch (E) { } finally { return F } }, asyncRequest : function(I, F, H, E) { var G = this.getConnectionObject(); if (!G) { return null } else { G.conn.open(I, F, true); if (this.useDefaultXhrHeader) { if (!this.defaultHeaders["X-Requested-With"]) { this.initHeader("X-Requested-With", this.defaultXhrHeader, true) } } if (E && this.useDefaultHeader) { this.initHeader("Content-Type", this.defaultPostHeader) } if (this.hasDefaultHeaders || this.hasHeaders) { this.setHeader(G) } this.handleReadyState(G, H); G.conn.send(E || null); return G } }, handleReadyState : function(F, G) { var E = this; if (G && G.timeout) { this.timeout[F.tId] = window.setTimeout(function() { E.abort(F, G, true) }, G.timeout) } this.poll[F.tId] = window.setInterval(function() { if (F.conn && F.conn.readyState == 4) { window.clearInterval(E.poll[F.tId]); delete E.poll[F.tId]; if (G && G.timeout) { window.clearTimeout(E.timeout[F.tId]); delete E.timeout[F.tId] } E.handleTransactionResponse(F, G) } }, this.pollInterval) }, handleTransactionResponse : function(I, J, E) { if (!J) { this.releaseObject(I); return } var G, F; try { if (I.conn.status !== undefined && I.conn.status != 0) { G = I.conn.status } else { G = 13030 } } catch (H) { G = 13030 } if (G >= 200 && G < 300) { F = this.createResponseObject(I, J.argument); if (J.success) { if (!J.scope) { J.success(F) } else { J.success.apply(J.scope, [F]) } } } else { switch (G) { case 12002 : case 12029 : case 12030 : case 12031 : case 12152 : case 13030 : F = this.createExceptionObject(I.tId, J.argument, (E ? E : false)); if (J.failure) { if (!J.scope) { J.failure(F) } else { J.failure.apply(J.scope, [F]) } } break; default : F = this.createResponseObject(I, J.argument); if (J.failure) { if (!J.scope) { J.failure(F) } else { J.failure.apply(J.scope, [F]) } } } } this.releaseObject(I); F = null }, createResponseObject : function(E, K) { var H = {}; var M = {}; try { var G = E.conn.getAllResponseHeaders(); var J = G.split("\n"); for (var I = 0; I < J.length; I++) { var F = J[I].indexOf(":"); if (F != -1) { M[J[I].substring(0, F)] = J[I].substring(F + 2) } } } catch (L) { } H.tId = E.tId; H.status = E.conn.status; H.statusText = E.conn.statusText; H.getResponseHeader = M; H.getAllResponseHeaders = G; H.responseText = E.conn.responseText; H.responseXML = E.conn.responseXML; if (typeof K !== undefined) { H.argument = K } return H }, createExceptionObject : function(L, H, E) { var J = 0; var K = "communication failure"; var G = -1; var F = "transaction aborted"; var I = {}; I.tId = L; if (E) { I.status = G; I.statusText = F } else { I.status = J; I.statusText = K } if (H) { I.argument = H } return I }, initHeader : function(E, H, G) { var F = (G) ? this.defaultHeaders : this.headers; if (F[E] === undefined) { F[E] = H } else { F[E] = H + "," + F[E] } if (G) { this.hasDefaultHeaders = true } else { this.hasHeaders = true } }, setHeader : function(E) { if (this.hasDefaultHeaders) { for (var F in this.defaultHeaders) { if (this.defaultHeaders.hasOwnProperty(F)) { E.conn.setRequestHeader(F, this.defaultHeaders[F]) } } } if (this.hasHeaders) { for (var F in this.headers) { if (this.headers.hasOwnProperty(F)) { E.conn.setRequestHeader(F, this.headers[F]) } } this.headers = {}; this.hasHeaders = false } }, resetDefaultHeaders : function() { delete this.defaultHeaders; this.defaultHeaders = {}; this.hasDefaultHeaders = false }, abort : function(F, G, E) { if (this.isCallInProgress(F)) { F.conn.abort(); window.clearInterval(this.poll[F.tId]); delete this.poll[F.tId]; if (E) { delete this.timeout[F.tId] } this.handleTransactionResponse(F, G, true); return true } else { return false } }, isCallInProgress : function(E) { if (E.conn) { return E.conn.readyState != 4 && E.conn.readyState != 0 } else { return false } }, releaseObject : function(E) { E.conn = null; E = null }, activeX : ["MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"] }; Ext.lib.Region = function(G, H, E, F) { this.top = G; this[1] = G; this.right = H; this.bottom = E; this.left = F; this[0] = F }; Ext.lib.Region.prototype = { contains : function(E) { return (E.left >= this.left && E.right <= this.right && E.top >= this.top && E.bottom <= this.bottom) }, getArea : function() { return ((this.bottom - this.top) * (this.right - this.left)) }, intersect : function(I) { var G = Math.max(this.top, I.top); var H = Math.min(this.right, I.right); var E = Math.min(this.bottom, I.bottom); var F = Math.max(this.left, I.left); if (E >= G && H >= F) { return new Ext.lib.Region(G, H, E, F) } else { return null } }, union : function(I) { var G = Math.min(this.top, I.top); var H = Math.max(this.right, I.right); var E = Math.max(this.bottom, I.bottom); var F = Math.min(this.left, I.left); return new Ext.lib.Region(G, H, E, F) }, constrainTo : function(E) { this.top = this.top.constrain(E.top, E.bottom); this.bottom = this.bottom.constrain(E.top, E.bottom); this.left = this.left.constrain(E.left, E.right); this.right = this.right.constrain(E.left, E.right); return this }, adjust : function(G, F, E, H) { this.top += G; this.left += F; this.right += H; this.bottom += E; return this } }; Ext.lib.Region.getRegion = function(H) { var J = Ext.lib.Dom.getXY(H); var G = J[1]; var I = J[0] + H.offsetWidth; var E = J[1] + H.offsetHeight; var F = J[0]; return new Ext.lib.Region(G, I, E, F) }; Ext.lib.Point = function(E, F) { if (E instanceof Array) { F = E[1]; E = E[0] } this.x = this.right = this.left = this[0] = E; this.y = this.top = this.bottom = this[1] = F }; Ext.lib.Point.prototype = new Ext.lib.Region(); Ext.lib.Anim = { scroll : function(H, F, I, J, E, G) { this.run(H, F, I, J, E, G, Ext.lib.Scroll) }, motion : function(H, F, I, J, E, G) { this.run(H, F, I, J, E, G, Ext.lib.Motion) }, color : function(H, F, I, J, E, G) { this.run(H, F, I, J, E, G, Ext.lib.ColorAnim) }, run : function(I, F, K, L, E, H, G) { G = G || Ext.lib.AnimBase; if (typeof L == "string") { L = Ext.lib.Easing[L] } var J = new G(I, F, K, L); J.animateX(function() { Ext.callback(E, H) }); return J } }; function C(E) { if (!B) { B = new Ext.Element.Flyweight() } B.dom = E; return B } if (Ext.isIE) { function A() { var E = Function.prototype; delete E.createSequence; delete E.defer; delete E.createDelegate; delete E.createCallback; delete E.createInterceptor; window.detachEvent("onunload", A) } window.attachEvent("onunload", A) } Ext.lib.AnimBase = function(F, E, G, H) { if (F) { this.init(F, E, G, H) } }; Ext.lib.AnimBase.prototype = { toString : function() { var E = this.getEl(); var F = E.id || E.tagName; return ("Anim " + F) }, patterns : { noNegatives : /width|height|opacity|padding/i, offsetAttribute : /^((width|height)|(top|left))$/, defaultUnit : /width|height|top$|bottom$|left$|right$/i, offsetUnit : /\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i }, doMethod : function(E, G, F) { return this.method(this.currentFrame, G, F - G, this.totalFrames) }, setAttribute : function(E, G, F) { if (this.patterns.noNegatives.test(E)) { G = (G > 0) ? G : 0 } Ext.fly(this.getEl(), "_anim").setStyle(E, G + F) }, getAttribute : function(E) { var G = this.getEl(); var I = C(G).getStyle(E); if (I !== "auto" && !this.patterns.offsetUnit.test(I)) { return parseFloat(I) } var F = this.patterns.offsetAttribute.exec(E) || []; var J = !!(F[3]); var H = !!(F[2]); if (H || (C(G).getStyle("position") == "absolute" && J)) { I = G["offset" + F[0].charAt(0).toUpperCase() + F[0].substr(1)] } else { I = 0 } return I }, getDefaultUnit : function(E) { if (this.patterns.defaultUnit.test(E)) { return "px" } return "" }, animateX : function(G, E) { var F = function() { this.onComplete.removeListener(F); if (typeof G == "function") { G.call(E || this, this) } }; this.onComplete.addListener(F, this); this.animate() }, setRuntimeAttribute : function(F) { var K; var G; var H = this.attributes; this.runtimeAttributes[F] = {}; var J = function(L) { return (typeof L !== "undefined") }; if (!J(H[F]["to"]) && !J(H[F]["by"])) { return false } K = (J(H[F]["from"])) ? H[F]["from"] : this.getAttribute(F); if (J(H[F]["to"])) { G = H[F]["to"] } else { if (J(H[F]["by"])) { if (K.constructor == Array) { G = []; for (var I = 0, E = K.length; I < E; ++I) { G[I] = K[I] + H[F]["by"][I] } } else { G = K + H[F]["by"] } } } this.runtimeAttributes[F].start = K; this.runtimeAttributes[F].end = G; this.runtimeAttributes[F].unit = (J(H[F].unit)) ? H[F]["unit"] : this.getDefaultUnit(F) }, init : function(G, L, K, E) { var F = false; var H = null; var J = 0; G = Ext.getDom(G); this.attributes = L || {}; this.duration = K || 1; this.method = E || Ext.lib.Easing.easeNone; this.useSeconds = true; this.currentFrame = 0; this.totalFrames = Ext.lib.AnimMgr.fps; this.getEl = function() { return G }; this.isAnimated = function() { return F }; this.getStartTime = function() { return H }; this.runtimeAttributes = {}; this.animate = function() { if (this.isAnimated()) { return false } this.currentFrame = 0; this.totalFrames = (this.useSeconds) ? Math.ceil(Ext.lib.AnimMgr.fps * this.duration) : this.duration; Ext.lib.AnimMgr.registerElement(this) }; this.stop = function(O) { if (O) { this.currentFrame = this.totalFrames; this._onTween.fire() } Ext.lib.AnimMgr.stop(this) }; var N = function() { this.onStart.fire(); this.runtimeAttributes = {}; for (var O in this.attributes) { this.setRuntimeAttribute(O) } F = true; J = 0; H = allGetServerTime() }; var M = function() { var Q = { duration : allGetServerTime() - this.getStartTime(), currentFrame : this.currentFrame }; Q.toString = function() { return ("duration: " + Q.duration + ", currentFrame: " + Q.currentFrame) }; this.onTween.fire(Q); var P = this.runtimeAttributes; for (var O in P) { this.setAttribute(O, this.doMethod(O, P[O].start, P[O].end), P[O].unit) } J += 1 }; var I = function() { var O = (allGetServerTime() - H) / 1000; var P = { duration : O, frames : J, fps : J / O }; P.toString = function() { return ("duration: " + P.duration + ", frames: " + P.frames + ", fps: " + P.fps) }; F = false; J = 0; this.onComplete.fire(P) }; this._onStart = new Ext.util.Event(this); this.onStart = new Ext.util.Event(this); this.onTween = new Ext.util.Event(this); this._onTween = new Ext.util.Event(this); this.onComplete = new Ext.util.Event(this); this._onComplete = new Ext.util.Event(this); this._onStart.addListener(N); this._onTween.addListener(M); this._onComplete.addListener(I) } }; Ext.lib.AnimMgr = new function() { var G = null; var F = []; var E = 0; this.fps = 1000; this.delay = 1; this.registerElement = function(J) { F[F.length] = J; E += 1; J._onStart.fire(); this.start() }; this.unRegister = function(K, J) { K._onComplete.fire(); J = J || I(K); if (J != -1) { F.splice(J, 1) } E -= 1; if (E <= 0) { this.stop() } }; this.start = function() { if (G === null) { G = setInterval(this.run, this.delay) } }; this.stop = function(L) { if (!L) { clearInterval(G); for (var K = 0, J = F.length; K < J; ++K) { if (F[0].isAnimated()) { this.unRegister(F[0], 0) } } F = []; G = null; E = 0 } else { this.unRegister(L) } }; this.run = function() { for (var L = 0, J = F.length; L < J; ++L) { var K = F[L]; if (!K || !K.isAnimated()) { continue } if (K.currentFrame < K.totalFrames || K.totalFrames === null) { K.currentFrame += 1; if (K.useSeconds) { H(K) } K._onTween.fire() } else { Ext.lib.AnimMgr.stop(K, L) } } }; var I = function(L) { for (var K = 0, J = F.length; K < J; ++K) { if (F[K] == L) { return K } } return -1 }; var H = function(K) { var N = K.totalFrames; var M = K.currentFrame; var L = (K.currentFrame * K.duration * 1000 / K.totalFrames); var J = (allGetServerTime() - K.getStartTime()); var O = 0; if (J < K.duration * 1000) { O = Math.round((J / L - 1) * K.currentFrame) } else { O = N - (M + 1) } if (O > 0 && isFinite(O)) { if (K.currentFrame + O >= N) { O = N - (M + 1) } K.currentFrame += O } } }; Ext.lib.Bezier = new function() { this.getPosition = function(I, H) { var J = I.length; var G = []; for (var F = 0; F < J; ++F) { G[F] = [I[F][0], I[F][1]] } for (var E = 1; E < J; ++E) { for (F = 0; F < J - E; ++F) { G[F][0] = (1 - H) * G[F][0] + H * G[parseInt(F + 1, 10)][0]; G[F][1] = (1 - H) * G[F][1] + H * G[parseInt(F + 1, 10)][1] } } return [G[0][0], G[0][1]] } }; (function() { Ext.lib.ColorAnim = function(I, H, J, K) { Ext.lib.ColorAnim.superclass.constructor.call(this, I, H, J, K) }; Ext.extend(Ext.lib.ColorAnim, Ext.lib.AnimBase); var F = Ext.lib; var G = F.ColorAnim.superclass; var E = F.ColorAnim.prototype; E.toString = function() { var H = this.getEl(); var I = H.id || H.tagName; return ("ColorAnim " + I) }; E.patterns.color = /color$/i; E.patterns.rgb = /^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i; E.patterns.hex = /^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i; E.patterns.hex3 = /^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i; E.patterns.transparent = /^transparent|rgba\(0, 0, 0, 0\)$/; E.parseColor = function(H) { if (H.length == 3) { return H } var I = this.patterns.hex.exec(H); if (I && I.length == 4) { return [parseInt(I[1], 16), parseInt(I[2], 16), parseInt(I[3], 16)] } I = this.patterns.rgb.exec(H); if (I && I.length == 4) { return [parseInt(I[1], 10), parseInt(I[2], 10), parseInt(I[3], 10)] } I = this.patterns.hex3.exec(H); if (I && I.length == 4) { return [parseInt(I[1] + I[1], 16), parseInt(I[2] + I[2], 16), parseInt(I[3] + I[3], 16)] } return null }; E.getAttribute = function(H) { var J = this.getEl(); if (this.patterns.color.test(H)) { var K = C(J).getStyle(H); if (this.patterns.transparent.test(K)) { var I = J.parentNode; K = C(I).getStyle(H); while (I && this.patterns.transparent.test(K)) { I = I.parentNode; K = C(I).getStyle(H); if (I.tagName.toUpperCase() == "HTML") { K = "#fff" } } } } else { K = G.getAttribute.call(this, H) } return K }; E.doMethod = function(I, M, J) { var L; if (this.patterns.color.test(I)) { L = []; for (var K = 0, H = M.length; K < H; ++K) { L[K] = G.doMethod.call(this, I, M[K], J[K]) } L = "rgb(" + Math.floor(L[0]) + "," + Math.floor(L[1]) + "," + Math.floor(L[2]) + ")" } else { L = G.doMethod.call(this, I, M, J) } return L }; E.setRuntimeAttribute = function(I) { G.setRuntimeAttribute.call(this, I); if (this.patterns.color.test(I)) { var K = this.attributes; var M = this.parseColor(this.runtimeAttributes[I].start); var J = this.parseColor(this.runtimeAttributes[I].end); if (typeof K[I]["to"] === "undefined" && typeof K[I]["by"] !== "undefined") { J = this.parseColor(K[I].by); for (var L = 0, H = M.length; L < H; ++L) { J[L] = M[L] + J[L] } } this.runtimeAttributes[I].start = M; this.runtimeAttributes[I].end = J } } })(); Ext.lib.Easing = { easeNone : function(F, E, H, G) { return H * F / G + E }, easeIn : function(F, E, H, G) { return H * (F /= G) * F + E }, easeOut : function(F, E, H, G) { return -H * (F /= G) * (F - 2) + E }, easeBoth : function(F, E, H, G) { if ((F /= G / 2) < 1) { return H / 2 * F * F + E } return -H / 2 * ((--F) * (F - 2) - 1) + E }, easeInStrong : function(F, E, H, G) { return H * (F /= G) * F * F * F + E }, easeOutStrong : function(F, E, H, G) { return -H * ((F = F / G - 1) * F * F * F - 1) + E }, easeBothStrong : function(F, E, H, G) { if ((F /= G / 2) < 1) { return H / 2 * F * F * F * F + E } return -H / 2 * ((F -= 2) * F * F * F - 2) + E }, elasticIn : function(G, E, K, J, F, I) { if (G == 0) { return E } if ((G /= J) == 1) { return E + K } if (!I) { I = J * 0.3 } if (!F || F < Math.abs(K)) { F = K; var H = I / 4 } else { var H = I / (2 * Math.PI) * Math.asin(K / F) } return -(F * Math.pow(2, 10 * (G -= 1)) * Math.sin((G * J - H) * (2 * Math.PI) / I)) + E }, elasticOut : function(G, E, K, J, F, I) { if (G == 0) { return E } if ((G /= J) == 1) { return E + K } if (!I) { I = J * 0.3 } if (!F || F < Math.abs(K)) { F = K; var H = I / 4 } else { var H = I / (2 * Math.PI) * Math.asin(K / F) } return F * Math.pow(2, -10 * G) * Math.sin((G * J - H) * (2 * Math.PI) / I) + K + E }, elasticBoth : function(G, E, K, J, F, I) { if (G == 0) { return E } if ((G /= J / 2) == 2) { return E + K } if (!I) { I = J * (0.3 * 1.5) } if (!F || F < Math.abs(K)) { F = K; var H = I / 4 } else { var H = I / (2 * Math.PI) * Math.asin(K / F) } if (G < 1) { return -0.5 * (F * Math.pow(2, 10 * (G -= 1)) * Math .sin((G * J - H) * (2 * Math.PI) / I)) + E } return F * Math.pow(2, -10 * (G -= 1)) * Math.sin((G * J - H) * (2 * Math.PI) / I) * 0.5 + K + E }, backIn : function(F, E, I, H, G) { if (typeof G == "undefined") { G = 1.70158 } return I * (F /= H) * F * ((G + 1) * F - G) + E }, backOut : function(F, E, I, H, G) { if (typeof G == "undefined") { G = 1.70158 } return I * ((F = F / H - 1) * F * ((G + 1) * F + G) + 1) + E }, backBoth : function(F, E, I, H, G) { if (typeof G == "undefined") { G = 1.70158 } if ((F /= H / 2) < 1) { return I / 2 * (F * F * (((G *= (1.525)) + 1) * F - G)) + E } return I / 2 * ((F -= 2) * F * (((G *= (1.525)) + 1) * F + G) + 2) + E }, bounceIn : function(F, E, H, G) { return H - Ext.lib.Easing.bounceOut(G - F, 0, H, G) + E }, bounceOut : function(F, E, H, G) { if ((F /= G) < (1 / 2.75)) { return H * (7.5625 * F * F) + E } else { if (F < (2 / 2.75)) { return H * (7.5625 * (F -= (1.5 / 2.75)) * F + 0.75) + E } else { if (F < (2.5 / 2.75)) { return H * (7.5625 * (F -= (2.25 / 2.75)) * F + 0.9375) + E } } } return H * (7.5625 * (F -= (2.625 / 2.75)) * F + 0.984375) + E }, bounceBoth : function(F, E, H, G) { if (F < G / 2) { return Ext.lib.Easing.bounceIn(F * 2, 0, H, G) * 0.5 + E } return Ext.lib.Easing.bounceOut(F * 2 - G, 0, H, G) * 0.5 + H * 0.5 + E } }; (function() { Ext.lib.Motion = function(K, J, L, M) { if (K) { Ext.lib.Motion.superclass.constructor.call(this, K, J, L, M) } }; Ext.extend(Ext.lib.Motion, Ext.lib.ColorAnim); var H = Ext.lib; var I = H.Motion.superclass; var F = H.Motion.prototype; F.toString = function() { var J = this.getEl(); var K = J.id || J.tagName; return ("Motion " + K) }; F.patterns.points = /^points$/i; F.setAttribute = function(J, L, K) { if (this.patterns.points.test(J)) { K = K || "px"; I.setAttribute.call(this, "left", L[0], K); I.setAttribute.call(this, "top", L[1], K) } else { I.setAttribute.call(this, J, L, K) } }; F.getAttribute = function(J) { if (this.patterns.points.test(J)) { var K = [I.getAttribute.call(this, "left"), I.getAttribute.call(this, "top")] } else { K = I.getAttribute.call(this, J) } return K }; F.doMethod = function(J, N, K) { var M = null; if (this.patterns.points.test(J)) { var L = this .method(this.currentFrame, 0, 100, this.totalFrames) / 100; M = H.Bezier.getPosition(this.runtimeAttributes[J], L) } else { M = I.doMethod.call(this, J, N, K) } return M }; F.setRuntimeAttribute = function(S) { if (this.patterns.points.test(S)) { var K = this.getEl(); var M = this.attributes; var J; var O = M["points"]["control"] || []; var L; var P, R; if (O.length > 0 && !(O[0] instanceof Array)) { O = [O] } else { var N = []; for (P = 0, R = O.length; P < R; ++P) { N[P] = O[P] } O = N } Ext.fly(K).position(); if (G(M["points"]["from"])) { Ext.lib.Dom.setXY(K, M["points"]["from"]) } else { Ext.lib.Dom.setXY(K, Ext.lib.Dom.getXY(K)) } J = this.getAttribute("points"); if (G(M["points"]["to"])) { L = E.call(this, M["points"]["to"], J); var Q = Ext.lib.Dom.getXY(this.getEl()); for (P = 0, R = O.length; P < R; ++P) { O[P] = E.call(this, O[P], J) } } else { if (G(M["points"]["by"])) { L = [J[0] + M["points"]["by"][0], J[1] + M["points"]["by"][1]]; for (P = 0, R = O.length; P < R; ++P) { O[P] = [J[0] + O[P][0], J[1] + O[P][1]] } } } this.runtimeAttributes[S] = [J]; if (O.length > 0) { this.runtimeAttributes[S] = this.runtimeAttributes[S] .concat(O) } this.runtimeAttributes[S][this.runtimeAttributes[S].length] = L } else { I.setRuntimeAttribute.call(this, S) } }; var E = function(J, L) { var K = Ext.lib.Dom.getXY(this.getEl()); J = [J[0] - K[0] + L[0], J[1] - K[1] + L[1]]; return J }; var G = function(J) { return (typeof J !== "undefined") } })(); (function() { Ext.lib.Scroll = function(I, H, J, K) { if (I) { Ext.lib.Scroll.superclass.constructor.call(this, I, H, J, K) } }; Ext.extend(Ext.lib.Scroll, Ext.lib.ColorAnim); var F = Ext.lib; var G = F.Scroll.superclass; var E = F.Scroll.prototype; E.toString = function() { var H = this.getEl(); var I = H.id || H.tagName; return ("Scroll " + I) }; E.doMethod = function(H, K, I) { var J = null; if (H == "scroll") { J = [ this.method(this.currentFrame, K[0], I[0] - K[0], this.totalFrames), this.method(this.currentFrame, K[1], I[1] - K[1], this.totalFrames)] } else { J = G.doMethod.call(this, H, K, I) } return J }; E.getAttribute = function(H) { var J = null; var I = this.getEl(); if (H == "scroll") { J = [I.scrollLeft, I.scrollTop] } else { J = G.getAttribute.call(this, H) } return J }; E.setAttribute = function(H, K, J) { var I = this.getEl(); if (H == "scroll") { I.scrollLeft = K[0]; I.scrollTop = K[1] } else { G.setAttribute.call(this, H, K, J) } } })() })();