/* * 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 = "", i = "
", b = a + "", j = "" + i, l = b + "", w = "" + j; function h(B, D, C, E, A, y) { var z = r.insertHtml(E, Ext.getDom(B), u(D)); return C ? Ext.get(z, true) : z } function u(D) { var z = "", y, C, B, E; if (typeof D == "string") { z = D } else { if (Ext.isArray(D)) { for (var A = 0; A < D.length; A++) { if (D[A]) { z += u(D[A]) } } } else { z += "<" + (D.tag = D.tag || "div"); for (y in D) { C = D[y]; if (!d.test(y)) { if (typeof C == "object") { z += " " + y + '="'; for (B in C) { z += B + ":" + C[B] + ";" } z += '"' } else { z += " " + ({cls:"class", htmlFor:"for"}[y] || y) + '="' + C + '"' } } } if (k.test(D.tag)) { z += "/>" } else { z += ">"; if ((E = D.children || D.cn)) { z += u(E) } else { if (D.html) { z += D.html } } z += "" } } } return z } function g(F, C, B, D) { x.innerHTML = [C, B, D].join(""); var y = -1, A = x, z; while (++y < F) { A = A.firstChild } if (z = A.nextSibling) { var E = document.createDocumentFragment(); while (A) { z = A.nextSibling; E.appendChild(A); A = z } A = E } return A } function e(y, z, B, A) { var C, D; x = x || document.createElement("div"); if (y == "td" && (z == n || z == q) || !t.test(y) && (z == c || z == p)) { return } D = z == c ? B : z == p ? B.nextSibling : z == n ? B.firstChild : null; if (z == c || z == p) { B = B.parentNode } if (y == "td" || (y == "tr" && (z == q || z == n))) { C = g(4, l, A, w) } else { if ((y == "tbody" && (z == q || z == n)) || (y == "tr" && (z == c || z == p))) { C = g(3, b, A, j) } else { C = g(2, a, A, i) } } B.insertBefore(C, D); return C } function s(A) { var D = document.createElement("div"), y = document.createDocumentFragment(), z = 0, B, C; D.innerHTML = A; C = D.childNodes; B = C.length; for (; z < B; z++) { y.appendChild(C[z].cloneNode(true)) } return y } r = {markup:function (y) { return u(y) }, applyStyles:function (y, z) { if (z) { var A; y = Ext.fly(y); if (typeof z == "function") { z = z.call() } if (typeof z == "string") { o.lastIndex = 0; while ((A = o.exec(z))) { y.setStyle(A[1], A[2]) } } else { if (typeof z == "object") { y.setStyle(z) } } } }, insertHtml:function (D, y, E) { var B = {}, A, F, C, G, H, z; D = D.toLowerCase(); B[c] = ["BeforeBegin", "previousSibling"]; B[p] = ["AfterEnd", "nextSibling"]; if (y.insertAdjacentHTML) { if (m.test(y.tagName) && (z = e(y.tagName.toLowerCase(), D, y, E))) { return z } B[n] = ["AfterBegin", "firstChild"]; B[q] = ["BeforeEnd", "lastChild"]; if ((A = B[D])) { y.insertAdjacentHTML(A[0], E); return y[A[1]] } } else { F = y.ownerDocument.createRange(); G = "setStart" + (v.test(D) ? "After" : "Before"); if (B[D]) { F[G](y); if (!F.createContextualFragment) { H = s(E) } else { H = F.createContextualFragment(E) } y.parentNode.insertBefore(H, D == c ? y : y.nextSibling); return y[(D == c ? "previous" : "next") + "Sibling"] } else { C = (D == n ? "first" : "last") + "Child"; if (y.firstChild) { F[G](y[C]); if (!F.createContextualFragment) { H = s(E) } else { H = F.createContextualFragment(E) } if (D == n) { y.insertBefore(H, y.firstChild) } else { y.appendChild(H) } } else { y.innerHTML = E } return y[C] } } throw'Illegal insertion point -> "' + D + '"' }, insertBefore:function (y, A, z) { return h(y, A, z, c) }, insertAfter:function (y, A, z) { return h(y, A, z, p, "nextSibling") }, insertFirst:function (y, A, z) { return h(y, A, z, n, "firstChild") }, append:function (y, A, z) { return h(y, A, z, q, "", true) }, overwrite:function (y, A, z) { y = Ext.getDom(y); y.innerHTML = u(A); return z ? Ext.get(y.firstChild) : y.firstChild }, createHtml:u}; return r }(); Ext.Template = function (h) { var j = this, c = arguments, e = [], d; if (Ext.isArray(h)) { h = h.join("") } else { if (c.length > 1) { for (var g = 0, b = c.length; g < b; g++) { d = c[g]; if (typeof d == "object") { Ext.apply(j, d) } else { e.push(d) } } h = e.join("") } } j.html = h; if (j.compiled) { j.compile() } }; Ext.Template.prototype = {re:/\{([\w\-]+)\}/g, applyTemplate:function (a) { var b = this; return b.compiled ? b.compiled(a) : b.html.replace(b.re, function (c, d) { return a[d] !== undefined ? a[d] : "" }) }, set:function (a, c) { var b = this; b.html = a; b.compiled = null; return c ? b.compile() : b }, compile:function () { var me = this, sep = Ext.isGecko ? "+" : ","; function fn(m, name) { name = "values['" + name + "']"; return"'" + sep + "(" + name + " == undefined ? '' : " + name + ")" + sep + "'" } eval("this.compiled = function(values){ return " + (Ext.isGecko ? "'" : "['") + me.html.replace(/\\/g, "\\\\").replace(/(\r\n|\n)/g, "\\n").replace(/'/g, "\\'").replace(this.re, fn) + (Ext.isGecko ? "';};" : "'].join('');};")); return me }, insertFirst:function (b, a, c) { return this.doInsert("afterBegin", b, a, c) }, insertBefore:function (b, a, c) { return this.doInsert("beforeBegin", b, a, c) }, insertAfter:function (b, a, c) { return this.doInsert("afterEnd", b, a, c) }, append:function (b, a, c) { return this.doInsert("beforeEnd", b, a, c) }, doInsert:function (c, e, b, a) { e = Ext.getDom(e); var d = Ext.DomHelper.insertHtml(c, e, this.applyTemplate(b)); return a ? Ext.get(d, true) : d }, overwrite:function (b, a, c) { b = Ext.getDom(b); b.innerHTML = this.applyTemplate(a); return c ? Ext.get(b.firstChild, true) : b.firstChild }}; Ext.Template.prototype.apply = Ext.Template.prototype.applyTemplate; Ext.Template.from = function (b, a) { b = Ext.getDom(b); return new Ext.Template(b.value || b.innerHTML, a || "") }; Ext.DomQuery = function () { var cache = {}, simpleCache = {}, valueCache = {}, nonSpace = /\S/, trimRe = /^\s+|\s+$/g, tplRe = /\{(\d+)\}/g, modeRe = /^(\s?[\/>+~]\s?|\s|$)/, tagTokenRe = /^(#)?([\w\-\*]+)/, nthRe = /(\d*)n\+?(\d*)/, nthRe2 = /\D/, isIE = window.ActiveXObject ? true : false, key = 30803; eval("var batch = 30803;"); function child(parent, index) { var i = 0, n = parent.firstChild; while (n) { if (n.nodeType == 1) { if (++i == index) { return n } } n = n.nextSibling } return null } function next(n) { while ((n = n.nextSibling) && n.nodeType != 1) { } return n } function prev(n) { while ((n = n.previousSibling) && n.nodeType != 1) { } return n } function children(parent) { var n = parent.firstChild, nodeIndex = -1, nextNode; while (n) { nextNode = n.nextSibling; if (n.nodeType == 3 && !nonSpace.test(n.nodeValue)) { parent.removeChild(n) } else { n.nodeIndex = ++nodeIndex } n = nextNode } return this } function byClassName(nodeSet, cls) { if (!cls) { return nodeSet } var result = [], ri = -1; for (var i = 0, ci; ci = nodeSet[i]; i++) { if ((" " + ci.className + " ").indexOf(cls) != -1) { result[++ri] = ci } } return result } function attrValue(n, attr) { if (!n.tagName && typeof n.length != "undefined") { n = n[0] } if (!n) { return null } if (attr == "for") { return n.htmlFor } if (attr == "class" || attr == "className") { return n.className } return n.getAttribute(attr) || n[attr] } function getNodes(ns, mode, tagName) { var result = [], ri = -1, cs; if (!ns) { return result } tagName = tagName || "*"; if (typeof ns.getElementsByTagName != "undefined") { ns = [ns] } if (!mode) { for (var i = 0, ni; ni = ns[i]; i++) { cs = ni.getElementsByTagName(tagName); for (var j = 0, ci; ci = cs[j]; j++) { result[++ri] = ci } } } else { if (mode == "/" || mode == ">") { var utag = tagName.toUpperCase(); for (var i = 0, ni, cn; ni = ns[i]; i++) { cn = ni.childNodes; for (var j = 0, cj; cj = cn[j]; j++) { if (cj.nodeName == utag || cj.nodeName == tagName || tagName == "*") { result[++ri] = cj } } } } else { if (mode == "+") { var utag = tagName.toUpperCase(); for (var i = 0, n; n = ns[i]; i++) { while ((n = n.nextSibling) && n.nodeType != 1) { } if (n && (n.nodeName == utag || n.nodeName == tagName || tagName == "*")) { result[++ri] = n } } } else { if (mode == "~") { var utag = tagName.toUpperCase(); for (var i = 0, n; n = ns[i]; i++) { while ((n = n.nextSibling)) { if (n.nodeName == utag || n.nodeName == tagName || tagName == "*") { result[++ri] = n } } } } } } } return result } function concat(a, b) { if (b.slice) { return a.concat(b) } for (var i = 0, l = b.length; i < l; i++) { a[a.length] = b[i] } return a } function byTag(cs, tagName) { if (cs.tagName || cs == document) { cs = [cs] } if (!tagName) { return cs } var result = [], ri = -1; tagName = tagName.toLowerCase(); for (var i = 0, ci; ci = cs[i]; i++) { if (ci.nodeType == 1 && ci.tagName.toLowerCase() == tagName) { result[++ri] = ci } } return result } function byId(cs, id) { if (cs.tagName || cs == document) { cs = [cs] } if (!id) { return cs } var result = [], ri = -1; for (var i = 0, ci; ci = cs[i]; i++) { if (ci && ci.id == id) { result[++ri] = ci; return result } } return result } function byAttribute(cs, attr, value, op, custom) { var result = [], ri = -1, useGetStyle = custom == "{", fn = Ext.DomQuery.operators[op], a, xml, hasXml; for (var i = 0, ci; ci = cs[i]; i++) { if (ci.nodeType != 1) { continue } if (!hasXml) { xml = Ext.DomQuery.isXml(ci); hasXml = true } if (!xml) { if (useGetStyle) { a = Ext.DomQuery.getStyle(ci, attr) } else { if (attr == "class" || attr == "className") { a = ci.className } else { if (attr == "for") { a = ci.htmlFor } else { if (attr == "href") { a = ci.getAttribute("href", 2) } else { a = ci.getAttribute(attr) } } } } } else { a = ci.getAttribute(attr) } if ((fn && fn(a, value)) || (!fn && a)) { result[++ri] = ci } } return result } function byPseudo(cs, name, value) { return Ext.DomQuery.pseudos[name](cs, value) } function nodupIEXml(cs) { var d = ++key, r; cs[0].setAttribute("_nodup", d); r = [cs[0]]; for (var i = 1, len = cs.length; i < len; i++) { var c = cs[i]; if (!c.getAttribute("_nodup") != d) { c.setAttribute("_nodup", d); r[r.length] = c } } for (var i = 0, len = cs.length; i < len; i++) { cs[i].removeAttribute("_nodup") } return r } function nodup(cs) { if (!cs) { return[] } var len = cs.length, c, i, r = cs, cj, ri = -1; if (!len || typeof cs.nodeType != "undefined" || len == 1) { return cs } if (isIE && typeof cs[0].selectSingleNode != "undefined") { return nodupIEXml(cs) } var d = ++key; cs[0]._nodup = d; for (i = 1; c = cs[i]; i++) { if (c._nodup != d) { c._nodup = d } else { r = []; for (var j = 0; j < i; j++) { r[++ri] = cs[j] } for (j = i + 1; cj = cs[j]; j++) { if (cj._nodup != d) { cj._nodup = d; r[++ri] = cj } } return r } } return r } function quickDiffIEXml(c1, c2) { var d = ++key, r = []; for (var i = 0, len = c1.length; i < len; i++) { c1[i].setAttribute("_qdiff", d) } for (var i = 0, len = c2.length; i < len; i++) { if (c2[i].getAttribute("_qdiff") != d) { r[r.length] = c2[i] } } for (var i = 0, len = c1.length; i < len; i++) { c1[i].removeAttribute("_qdiff") } return r } function quickDiff(c1, c2) { var len1 = c1.length, d = ++key, r = []; if (!len1) { return c2 } if (isIE && typeof c1[0].selectSingleNode != "undefined") { return quickDiffIEXml(c1, c2) } for (var i = 0; i < len1; i++) { c1[i]._qdiff = d } for (var i = 0, len = c2.length; i < len; i++) { if (c2[i]._qdiff != d) { r[r.length] = c2[i] } } return r } function quickId(ns, mode, root, id) { if (ns == root) { var d = root.ownerDocument || root; return d.getElementById(id) } ns = getNodes(ns, mode, "*"); return byId(ns, id) } return{getStyle:function (el, name) { return Ext.fly(el).getStyle(name) }, compile:function (path, type) { type = type || "select"; var fn = ["var f = function(root){\n var mode; ++batch; var n = root || document;\n"], mode, lastPath, matchers = Ext.DomQuery.matchers, matchersLn = matchers.length, modeMatch, lmode = path.match(modeRe); if (lmode && lmode[1]) { fn[fn.length] = 'mode="' + lmode[1].replace(trimRe, "") + '";'; path = path.replace(lmode[1], "") } while (path.substr(0, 1) == "/") { path = path.substr(1) } while (path && lastPath != path) { lastPath = path; var tokenMatch = path.match(tagTokenRe); if (type == "select") { if (tokenMatch) { if (tokenMatch[1] == "#") { fn[fn.length] = 'n = quickId(n, mode, root, "' + tokenMatch[2] + '");' } else { fn[fn.length] = 'n = getNodes(n, mode, "' + tokenMatch[2] + '");' } path = path.replace(tokenMatch[0], "") } else { if (path.substr(0, 1) != "@") { fn[fn.length] = 'n = getNodes(n, mode, "*");' } } } else { if (tokenMatch) { if (tokenMatch[1] == "#") { fn[fn.length] = 'n = byId(n, "' + tokenMatch[2] + '");' } else { fn[fn.length] = 'n = byTag(n, "' + tokenMatch[2] + '");' } path = path.replace(tokenMatch[0], "") } } while (!(modeMatch = path.match(modeRe))) { var matched = false; for (var j = 0; j < matchersLn; j++) { var t = matchers[j]; var m = path.match(t.re); if (m) { fn[fn.length] = t.select.replace(tplRe, function (x, i) { return m[i] }); path = path.replace(m[0], ""); matched = true; break } } if (!matched) { throw'Error parsing selector, parsing failed at "' + path + '"' } } if (modeMatch[1]) { fn[fn.length] = 'mode="' + modeMatch[1].replace(trimRe, "") + '";'; path = path.replace(modeMatch[1], "") } } fn[fn.length] = "return nodup(n);\n}"; eval(fn.join("")); return f }, jsSelect:function (path, root, type) { root = root || document; if (typeof root == "string") { root = document.getElementById(root) } var paths = path.split(","), results = []; for (var i = 0, len = paths.length; i < len; i++) { var subPath = paths[i].replace(trimRe, ""); if (!cache[subPath]) { cache[subPath] = Ext.DomQuery.compile(subPath); if (!cache[subPath]) { throw subPath + " is not a valid selector" } } var result = cache[subPath](root); if (result && result != document) { results = results.concat(result) } } if (paths.length > 1) { return nodup(results) } return results }, isXml:function (el) { var docEl = (el ? el.ownerDocument || el : 0).documentElement; return docEl ? docEl.nodeName !== "HTML" : false }, select:document.querySelectorAll ? function (path, root, type) { root = root || document; if (!Ext.DomQuery.isXml(root)) { try { var cs = root.querySelectorAll(path); return Ext.toArray(cs) } catch (ex) { } } return Ext.DomQuery.jsSelect.call(this, path, root, type) } : function (path, root, type) { return Ext.DomQuery.jsSelect.call(this, path, root, type) }, selectNode:function (path, root) { return Ext.DomQuery.select(path, root)[0] }, selectValue:function (path, root, defaultValue) { path = path.replace(trimRe, ""); if (!valueCache[path]) { valueCache[path] = Ext.DomQuery.compile(path, "select") } var n = valueCache[path](root), v; n = n[0] ? n[0] : n; if (typeof n.normalize == "function") { n.normalize() } v = (n && n.firstChild ? n.firstChild.nodeValue : null); return((v === null || v === undefined || v === "") ? defaultValue : v) }, selectNumber:function (path, root, defaultValue) { var v = Ext.DomQuery.selectValue(path, root, defaultValue || 0); return parseFloat(v) }, is:function (el, ss) { if (typeof el == "string") { el = document.getElementById(el) } var isArray = Ext.isArray(el), result = Ext.DomQuery.filter(isArray ? el : [el], ss); return isArray ? (result.length == el.length) : (result.length > 0) }, filter:function (els, ss, nonMatches) { ss = ss.replace(trimRe, ""); if (!simpleCache[ss]) { simpleCache[ss] = Ext.DomQuery.compile(ss, "simple") } var result = simpleCache[ss](els); return nonMatches ? quickDiff(result, els) : result }, matchers:[ {re:/^\.([\w\-]+)/, select:'n = byClassName(n, " {1} ");'}, {re:/^\:([\w\-]+)(?:\(((?:[^\s>\/]*|.*?))\))?/, select:'n = byPseudo(n, "{1}", "{2}");'}, {re:/^(?:([\[\{])(?:@)?([\w\-]+)\s?(?:(=|.=)\s?(["']?)(.*?)\4)?[\]\}])/, select:'n = byAttribute(n, "{2}", "{5}", "{3}", "{1}");'}, {re:/^#([\w\-]+)/, select:'n = byId(n, "{1}");'}, {re:/^@([\w\-]+)/, select:'return {firstChild:{nodeValue:attrValue(n, "{1}")}};'} ], operators:{"=":function (a, v) { return a == v }, "!=":function (a, v) { return a != v }, "^=":function (a, v) { return a && a.substr(0, v.length) == v }, "$=":function (a, v) { return a && a.substr(a.length - v.length) == v }, "*=":function (a, v) { return a && a.indexOf(v) !== -1 }, "%=":function (a, v) { return(a % v) == 0 }, "|=":function (a, v) { return a && (a == v || a.substr(0, v.length + 1) == v + "-") }, "~=":function (a, v) { return a && (" " + a + " ").indexOf(" " + v + " ") != -1 }}, pseudos:{"first-child":function (c) { var r = [], ri = -1, n; for (var i = 0, ci; ci = n = c[i]; i++) { while ((n = n.previousSibling) && n.nodeType != 1) { } if (!n) { r[++ri] = ci } } return r }, "last-child":function (c) { var r = [], ri = -1, n; for (var i = 0, ci; ci = n = c[i]; i++) { while ((n = n.nextSibling) && n.nodeType != 1) { } if (!n) { r[++ri] = ci } } return r }, "nth-child":function (c, a) { var r = [], ri = -1, m = nthRe.exec(a == "even" && "2n" || a == "odd" && "2n+1" || !nthRe2.test(a) && "n+" + a || a), f = (m[1] || 1) - 0, l = m[2] - 0; for (var i = 0, n; n = c[i]; i++) { var pn = n.parentNode; if (batch != pn._batch) { var j = 0; for (var cn = pn.firstChild; cn; cn = cn.nextSibling) { if (cn.nodeType == 1) { cn.nodeIndex = ++j } } pn._batch = batch } if (f == 1) { if (l == 0 || n.nodeIndex == l) { r[++ri] = n } } else { if ((n.nodeIndex + l) % f == 0) { r[++ri] = n } } } return r }, "only-child":function (c) { var r = [], ri = -1; for (var i = 0, ci; ci = c[i]; i++) { if (!prev(ci) && !next(ci)) { r[++ri] = ci } } return r }, empty:function (c) { var r = [], ri = -1; for (var i = 0, ci; ci = c[i]; i++) { var cns = ci.childNodes, j = 0, cn, empty = true; while (cn = cns[j]) { ++j; if (cn.nodeType == 1 || cn.nodeType == 3) { empty = false; break } } if (empty) { r[++ri] = ci } } return r }, contains:function (c, v) { var r = [], ri = -1; for (var i = 0, ci; ci = c[i]; i++) { if ((ci.textContent || ci.innerText || "").indexOf(v) != -1) { r[++ri] = ci } } return r }, nodeValue:function (c, v) { var r = [], ri = -1; for (var i = 0, ci; ci = c[i]; i++) { if (ci.firstChild && ci.firstChild.nodeValue == v) { r[++ri] = ci } } return r }, checked:function (c) { var r = [], ri = -1; for (var i = 0, ci; ci = c[i]; i++) { if (ci.checked == true) { r[++ri] = ci } } return r }, not:function (c, ss) { return Ext.DomQuery.filter(c, ss, true) }, any:function (c, selectors) { var ss = selectors.split("|"), r = [], ri = -1, s; for (var i = 0, ci; ci = c[i]; i++) { for (var j = 0; s = ss[j]; j++) { if (Ext.DomQuery.is(ci, s)) { r[++ri] = ci; break } } } return r }, odd:function (c) { return this["nth-child"](c, "odd") }, even:function (c) { return this["nth-child"](c, "even") }, nth:function (c, a) { return c[a - 1] || [] }, first:function (c) { return c[0] || [] }, last:function (c) { return c[c.length - 1] || [] }, has:function (c, ss) { var s = Ext.DomQuery.select, r = [], ri = -1; for (var i = 0, ci; ci = c[i]; i++) { if (s(ss, ci).length > 0) { r[++ri] = ci } } return r }, next:function (c, ss) { var is = Ext.DomQuery.is, r = [], ri = -1; for (var i = 0, ci; ci = c[i]; i++) { var n = next(ci); if (n && is(n, ss)) { r[++ri] = ci } } return r }, prev:function (c, ss) { var is = Ext.DomQuery.is, r = [], ri = -1; for (var i = 0, ci; ci = c[i]; i++) { var n = prev(ci); if (n && is(n, ss)) { r[++ri] = ci } } return r }}} }(); Ext.query = Ext.DomQuery.select; Ext.util.DelayedTask = function (d, c, a) { var e = this, g, b = function () { clearInterval(g); g = null; d.apply(c, a || []) }; e.delay = function (i, k, j, h) { e.cancel(); d = k || d; c = j || c; a = h || a; g = setInterval(b, i) }; e.cancel = function () { if (g) { clearInterval(g); g = null } } }; (function () { var h = document; Ext.Element = function (l, m) { var n = typeof l == "string" ? h.getElementById(l) : l, o; if (!n) { return null } o = n.id; if (!m && o && Ext.elCache[o]) { return Ext.elCache[o].el } this.dom = n; this.id = o || Ext.id(n) }; var d = Ext.DomHelper, e = Ext.Element, a = Ext.elCache; e.prototype = {set:function (q, m) { var n = this.dom, l, p, m = (m !== false) && !!n.setAttribute; for (l in q) { if (q.hasOwnProperty(l)) { p = q[l]; if (l == "style") { d.applyStyles(n, p) } else { if (l == "cls") { n.className = p } else { if (m) { n.setAttribute(l, p) } else { n[l] = p } } } } } return this }, defaultUnit:"px", is:function (l) { return Ext.DomQuery.is(this.dom, l) }, focus:function (o, n) { var l = this, n = n || l.dom; try { if (Number(o)) { l.focus.defer(o, null, [null, n]) } else { n.focus() } } catch (m) { } return l }, blur:function () { try { this.dom.blur() } catch (l) { } return this }, getValue:function (l) { var m = this.dom.value; return l ? parseInt(m, 10) : m }, addListener:function (l, o, n, m) { Ext.EventManager.on(this.dom, l, o, n || this, m); return this }, removeListener:function (l, n, m) { Ext.EventManager.removeListener(this.dom, l, n, m || this); return this }, removeAllListeners:function () { Ext.EventManager.removeAll(this.dom); return this }, purgeAllListeners:function () { Ext.EventManager.purgeElement(this, true); return this }, addUnits:function (l) { if (l === "" || l == "auto" || l === undefined) { l = l || "" } else { if (!isNaN(l) || !i.test(l)) { l = l + (this.defaultUnit || "px") } } return l }, load:function (m, n, l) { Ext.Ajax.request(Ext.apply({params:n, url:m.url || m, callback:l, el:this.dom, indicatorText:m.indicatorText || ""}, Ext.isObject(m) ? m : {})); return this }, isBorderBox:function () { return Ext.isBorderBox || Ext.isForcedBorderBox || g[(this.dom.tagName || "").toLowerCase()] }, remove:function () { var l = this, m = l.dom; if (m) { delete l.dom; Ext.removeNode(m) } }, hover:function (m, l, o, n) { var p = this; p.on("mouseenter", m, o || p.dom, n); p.on("mouseleave", l, o || p.dom, n); return p }, contains:function (l) { return !l ? false : Ext.lib.Dom.isAncestor(this.dom, l.dom ? l.dom : l) }, getAttributeNS:function (m, l) { return this.getAttribute(l, m) }, getAttribute:(function () { var p = document.createElement("table"), o = false, m = "getAttribute" in p, l = /undefined|unknown/; if (m) { try { p.getAttribute("ext:qtip") } catch (n) { o = true } return function (q, s) { var r = this.dom, t; if (r.getAttributeNS) { t = r.getAttributeNS(s, q) || null } if (t == null) { if (s) { if (o && r.tagName.toUpperCase() == "TABLE") { try { t = r.getAttribute(s + ":" + q) } catch (u) { t = "" } } else { t = r.getAttribute(s + ":" + q) } } else { t = r.getAttribute(q) || r[q] } } return t || "" } } else { return function (q, s) { var r = this.om, u, t; if (s) { t = r[s + ":" + q]; u = l.test(typeof t) ? undefined : t } else { u = r[q] } return u || "" } } p = null })(), update:function (l) { if (this.dom) { this.dom.innerHTML = l } return this }}; var k = e.prototype; e.addMethods = function (l) { Ext.apply(k, l) }; k.on = k.addListener; k.un = k.removeListener; k.autoBoxAdjust = true; var i = /\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i, c; e.get = function (m) { var l, p, o; if (!m) { return null } if (typeof m == "string") { if (!(p = h.getElementById(m))) { return null } if (a[m] && a[m].el) { l = a[m].el; l.dom = p } else { l = e.addToCache(new e(p)) } return l } else { if (m.tagName) { if (!(o = m.id)) { o = Ext.id(m) } if (a[o] && a[o].el) { l = a[o].el; l.dom = m } else { l = e.addToCache(new e(m)) } return l } else { if (m instanceof e) { if (m != c) { if (Ext.isIE && (m.id == undefined || m.id == "")) { m.dom = m.dom } else { m.dom = h.getElementById(m.id) || m.dom } } return m } else { if (m.isComposite) { return m } else { if (Ext.isArray(m)) { return e.select(m) } else { if (m == h) { if (!c) { var n = function () { }; n.prototype = e.prototype; c = new n(); c.dom = h } return c } } } } } } return null }; e.addToCache = function (l, m) { m = m || l.id; a[m] = {el:l, data:{}, events:{}}; return l }; e.data = function (m, l, n) { m = e.get(m); if (!m) { return null } var o = a[m.id].data; if (arguments.length == 2) { return o[l] } else { return(o[l] = n) } }; function j() { if (!Ext.enableGarbageCollector) { clearInterval(e.collectorThreadId) } else { var l, n, q, p; for (l in a) { p = a[l]; if (p.skipGC) { continue } n = p.el; q = n.dom; if (!q || !q.parentNode || (!q.offsetParent && !h.getElementById(l))) { if (Ext.enableListenerCollection) { Ext.EventManager.removeAll(q) } delete a[l] } } if (Ext.isIE) { var m = {}; for (l in a) { m[l] = a[l] } a = Ext.elCache = m } } } e.collectorThreadId = setInterval(j, 30000); var b = function () { }; b.prototype = e.prototype; e.Flyweight = function (l) { this.dom = l }; e.Flyweight.prototype = new b(); e.Flyweight.prototype.isFlyweight = true; e._flyweights = {}; e.fly = function (n, l) { var m = null; l = l || "_global"; if (n = Ext.getDom(n)) { (e._flyweights[l] = e._flyweights[l] || new e.Flyweight()).dom = n; m = e._flyweights[l] } return m }; Ext.get = e.get; Ext.fly = e.fly; var g = Ext.isStrict ? {select:1} : {input:1, select:1, textarea:1}; if (Ext.isIE || Ext.isGecko) { g.button = 1 } })(); Ext.Element.addMethods(function () { var d = "parentNode", b = "nextSibling", c = "previousSibling", e = Ext.DomQuery, a = Ext.get; return{findParent:function (m, l, h) { var j = this.dom, g = document.body, k = 0, i; if (Ext.isGecko && Object.prototype.toString.call(j) == "[object XULElement]") { return null } l = l || 50; if (isNaN(l)) { i = Ext.getDom(l); l = Number.MAX_VALUE } while (j && j.nodeType == 1 && k < l && j != g && j != i) { if (e.is(j, m)) { return h ? a(j) : j } k++; j = j.parentNode } return null }, findParentNode:function (j, i, g) { var h = Ext.fly(this.dom.parentNode, "_internal"); return h ? h.findParent(j, i, g) : null }, up:function (h, g) { return this.findParentNode(h, g, true) }, select:function (g) { return Ext.Element.select(g, this.dom) }, query:function (g) { return e.select(g, this.dom) }, child:function (g, h) { var i = e.selectNode(g, this.dom); return h ? i : a(i) }, down:function (g, h) { var i = e.selectNode(" > " + g, this.dom); return h ? i : a(i) }, parent:function (g, h) { return this.matchNode(d, d, g, h) }, next:function (g, h) { return this.matchNode(b, b, g, h) }, prev:function (g, h) { return this.matchNode(c, c, g, h) }, first:function (g, h) { return this.matchNode(b, "firstChild", g, h) }, last:function (g, h) { return this.matchNode(c, "lastChild", g, h) }, matchNode:function (h, k, g, i) { var j = this.dom[k]; while (j) { if (j.nodeType == 1 && (!g || e.is(j, g))) { return !i ? a(j) : j } j = j[h] } return null }} }()); Ext.Element.addMethods(function () { var c = Ext.getDom, a = Ext.get, b = Ext.DomHelper; return{appendChild:function (d) { return a(d).appendTo(this) }, appendTo:function (d) { c(d).appendChild(this.dom); return this }, insertBefore:function (d) { (d = c(d)).parentNode.insertBefore(this.dom, d); return this }, insertAfter:function (d) { (d = c(d)).parentNode.insertBefore(this.dom, d.nextSibling); return this }, insertFirst:function (e, d) { e = e || {}; if (e.nodeType || e.dom || typeof e == "string") { e = c(e); this.dom.insertBefore(e, this.dom.firstChild); return !d ? a(e) : e } else { return this.createChild(e, this.dom.firstChild, d) } }, replace:function (d) { d = a(d); this.insertBefore(d); d.remove(); return this }, replaceWith:function (d) { var e = this; if (d.nodeType || d.dom || typeof d == "string") { d = c(d); e.dom.parentNode.insertBefore(d, e.dom) } else { d = b.insertBefore(e.dom, d) } delete Ext.elCache[e.id]; Ext.removeNode(e.dom); e.id = Ext.id(e.dom = d); Ext.Element.addToCache(e.isFlyweight ? new Ext.Element(e.dom) : e); return e }, createChild:function (e, d, g) { e = e || {tag:"div"}; return d ? b.insertBefore(d, e, g !== true) : b[!this.dom.firstChild ? "overwrite" : "append"](this.dom, e, g !== true) }, wrap:function (d, e) { var g = b.insertBefore(this.dom, d || {tag:"div"}, !e); g.dom ? g.dom.appendChild(this.dom) : g.appendChild(this.dom); return g }, insertHtml:function (e, g, d) { var h = b.insertHtml(e, this.dom, g); return d ? Ext.get(h) : h }} }()); Ext.Element.addMethods(function () { var A = Ext.supports, h = {}, x = /(-[a-z])/gi, s = document.defaultView, D = /alpha\(opacity=(.*)\)/i, l = /^\s+|\s+$/g, B = Ext.Element, u = /\s+/, b = /\w/g, d = "padding", c = "margin", y = "border", t = "-left", q = "-right", w = "-top", o = "-bottom", j = "-width", r = Math, z = "hidden", e = "isClipped", k = "overflow", n = "overflow-x", m = "overflow-y", C = "originalClip", i = {l:y + t + j, r:y + q + j, t:y + w + j, b:y + o + j}, g = {l:d + t, r:d + q, t:d + w, b:d + o}, a = {l:c + t, r:c + q, t:c + w, b:c + o}, E = Ext.Element.data; function p(F, G) { return G.charAt(1).toUpperCase() } function v(F) { return h[F] || (h[F] = F == "float" ? (A.cssFloat ? "cssFloat" : "styleFloat") : F.replace(x, p)) } return{adjustWidth:function (F) { var G = this; var H = (typeof F == "number"); if (H && G.autoBoxAdjust && !G.isBorderBox()) { F -= (G.getBorderWidth("lr") + G.getPadding("lr")) } return(H && F < 0) ? 0 : F }, adjustHeight:function (F) { var G = this; var H = (typeof F == "number"); if (H && G.autoBoxAdjust && !G.isBorderBox()) { F -= (G.getBorderWidth("tb") + G.getPadding("tb")) } return(H && F < 0) ? 0 : F }, addClass:function (J) { var K = this, I, F, H, G = []; if (!Ext.isArray(J)) { if (typeof J == "string" && !this.hasClass(J)) { K.dom.className += " " + J } } else { for (I = 0, F = J.length; I < F; I++) { H = J[I]; if (typeof H == "string" && (" " + K.dom.className + " ").indexOf(" " + H + " ") == -1) { G.push(H) } } if (G.length) { K.dom.className += " " + G.join(" ") } } return K }, removeClass:function (K) { var L = this, J, G, F, I, H; if (!Ext.isArray(K)) { K = [K] } if (L.dom && L.dom.className) { H = L.dom.className.replace(l, "").split(u); for (J = 0, F = K.length; J < F; J++) { I = K[J]; if (typeof I == "string") { I = I.replace(l, ""); G = H.indexOf(I); if (G != -1) { H.splice(G, 1) } } } L.dom.className = H.join(" ") } return L }, radioClass:function (I) { var J = this.dom.parentNode.childNodes, G, H, F; I = Ext.isArray(I) ? I : [I]; for (H = 0, F = J.length; H < F; H++) { G = J[H]; if (G && G.nodeType == 1) { Ext.fly(G, "_internal").removeClass(I) } } return this.addClass(I) }, toggleClass:function (F) { return this.hasClass(F) ? this.removeClass(F) : this.addClass(F) }, hasClass:function (F) { return F && (" " + this.dom.className + " ").indexOf(" " + F + " ") != -1 }, replaceClass:function (G, F) { return this.removeClass(G).addClass(F) }, isStyle:function (F, G) { return this.getStyle(F) == G }, getStyle:function () { return s && s.getComputedStyle ? function (K) { var I = this.dom, F, H, G, J; if (I == document) { return null } K = v(K); G = (F = I.style[K]) ? F : (H = s.getComputedStyle(I, "")) ? H[K] : null; if (K == "marginRight" && G != "0px" && !A.correctRightMargin) { J = I.style.display; I.style.display = "inline-block"; G = s.getComputedStyle(I, "").marginRight; I.style.display = J } if (K == "backgroundColor" && G == "rgba(0, 0, 0, 0)" && !A.correctTransparentColor) { G = "transparent" } return G } : function (J) { var H = this.dom, F, G; if (H == document) { return null } if (J == "opacity") { if (H.style.filter.match) { if (F = H.style.filter.match(D)) { var I = parseFloat(F[1]); if (!isNaN(I)) { return I ? I / 100 : 0 } } } return 1 } J = v(J); return H.style[J] || ((G = H.currentStyle) ? G[J] : null) } }(), getColor:function (F, G, K) { var I = this.getStyle(F), H = (typeof K != "undefined") ? K : "#", J; if (!I || (/transparent|inherit/.test(I))) { return G } if (/^r/.test(I)) { Ext.each(I.slice(4, I.length - 1).split(","), function (L) { J = parseInt(L, 10); H += (J < 16 ? "0" : "") + J.toString(16) }) } else { I = I.replace("#", ""); H += I.length == 3 ? I.replace(/^(\w)(\w)(\w)$/, "$1$1$2$2$3$3") : I } return(H.length > 5 ? H.toLowerCase() : G) }, setStyle:function (I, H) { var F, G; if (typeof I != "object") { F = {}; F[I] = H; I = F } for (G in I) { H = I[G]; G == "opacity" ? this.setOpacity(H) : this.dom.style[v(G)] = H } return this }, setOpacity:function (G, F) { var J = this, H = J.dom.style; if (!F || !J.anim) { if (Ext.isIE) { var I = G < 1 ? "alpha(opacity=" + G * 100 + ")" : "", K = H.filter.replace(D, "").replace(l, ""); H.zoom = 1; H.filter = K + (K.length > 0 ? " " : "") + I } else { H.opacity = G } } else { J.anim({opacity:{to:G}}, J.preanim(arguments, 1), null, 0.35, "easeIn") } return J }, clearOpacity:function () { var F = this.dom.style; if (Ext.isIE) { if (!Ext.isEmpty(F.filter)) { F.filter = F.filter.replace(D, "").replace(l, "") } } else { F.opacity = F["-moz-opacity"] = F["-khtml-opacity"] = "" } return this }, getHeight:function (H) { var G = this, J = G.dom, I = Ext.isIE && G.isStyle("display", "none"), F = r.max(J.offsetHeight, I ? 0 : J.clientHeight) || 0; F = !H ? F : F - G.getBorderWidth("tb") - G.getPadding("tb"); return F < 0 ? 0 : F }, getWidth:function (G) { var H = this, J = H.dom, I = Ext.isIE && H.isStyle("display", "none"), F = r.max(J.offsetWidth, I ? 0 : J.clientWidth) || 0; F = !G ? F : F - H.getBorderWidth("lr") - H.getPadding("lr"); return F < 0 ? 0 : F }, setWidth:function (G, F) { var H = this; G = H.adjustWidth(G); !F || !H.anim ? H.dom.style.width = H.addUnits(G) : H.anim({width:{to:G}}, H.preanim(arguments, 1)); return H }, setHeight:function (F, G) { var H = this; F = H.adjustHeight(F); !G || !H.anim ? H.dom.style.height = H.addUnits(F) : H.anim({height:{to:F}}, H.preanim(arguments, 1)); return H }, getBorderWidth:function (F) { return this.addStyles(F, i) }, getPadding:function (F) { return this.addStyles(F, g) }, clip:function () { var F = this, G = F.dom; if (!E(G, e)) { E(G, e, true); E(G, C, {o:F.getStyle(k), x:F.getStyle(n), y:F.getStyle(m)}); F.setStyle(k, z); F.setStyle(n, z); F.setStyle(m, z) } return F }, unclip:function () { var F = this, H = F.dom; if (E(H, e)) { E(H, e, false); var G = E(H, C); if (G.o) { F.setStyle(k, G.o) } if (G.x) { F.setStyle(n, G.x) } if (G.y) { F.setStyle(m, G.y) } } return F }, addStyles:function (M, L) { var J = 0, K = M.match(b), I, H, G, F = K.length; for (G = 0; G < F; G++) { I = K[G]; H = I && parseInt(this.getStyle(L[I]), 10); if (H) { J += r.abs(H) } } return J }, margins:a} }()); (function () { var a = Ext.lib.Dom, b = "left", g = "right", d = "top", i = "bottom", h = "position", c = "static", e = "relative", j = "auto", k = "z-index"; Ext.Element.addMethods({getX:function () { return a.getX(this.dom) }, getY:function () { return a.getY(this.dom) }, getXY:function () { return a.getXY(this.dom) }, getOffsetsTo:function (l) { var n = this.getXY(), m = Ext.fly(l, "_internal").getXY(); return[n[0] - m[0], n[1] - m[1]] }, setX:function (l, m) { return this.setXY([l, this.getY()], this.animTest(arguments, m, 1)) }, setY:function (m, l) { return this.setXY([this.getX(), m], this.animTest(arguments, l, 1)) }, setLeft:function (l) { this.setStyle(b, this.addUnits(l)); return this }, setTop:function (l) { this.setStyle(d, this.addUnits(l)); return this }, setRight:function (l) { this.setStyle(g, this.addUnits(l)); return this }, setBottom:function (l) { this.setStyle(i, this.addUnits(l)); return this }, setXY:function (n, l) { var m = this; if (!l || !m.anim) { a.setXY(m.dom, n) } else { m.anim({points:{to:n}}, m.preanim(arguments, 1), "motion") } return m }, setLocation:function (l, n, m) { return this.setXY([l, n], this.animTest(arguments, m, 2)) }, moveTo:function (l, n, m) { return this.setXY([l, n], this.animTest(arguments, m, 2)) }, getLeft:function (l) { return !l ? this.getX() : parseInt(this.getStyle(b), 10) || 0 }, getRight:function (l) { var m = this; return !l ? m.getX() + m.getWidth() : (m.getLeft(true) + m.getWidth()) || 0 }, getTop:function (l) { return !l ? this.getY() : parseInt(this.getStyle(d), 10) || 0 }, getBottom:function (l) { var m = this; return !l ? m.getY() + m.getHeight() : (m.getTop(true) + m.getHeight()) || 0 }, position:function (p, o, l, n) { var m = this; if (!p && m.isStyle(h, c)) { m.setStyle(h, e) } else { if (p) { m.setStyle(h, p) } } if (o) { m.setStyle(k, o) } if (l || n) { m.setXY([l || false, n || false]) } }, clearPositioning:function (l) { l = l || ""; this.setStyle({left:l, right:l, top:l, bottom:l, "z-index":"", position:c}); return this }, getPositioning:function () { var m = this.getStyle(b); var n = this.getStyle(d); return{position:this.getStyle(h), left:m, right:m ? "" : this.getStyle(g), top:n, bottom:n ? "" : this.getStyle(i), "z-index":this.getStyle(k)} }, setPositioning:function (l) { var n = this, m = n.dom.style; n.setStyle(l); if (l.right == j) { m.right = "" } if (l.bottom == j) { m.bottom = "" } return n }, translatePoints:function (m, u) { u = isNaN(m[1]) ? u : m[1]; m = isNaN(m[0]) ? m : m[0]; var q = this, r = q.isStyle(h, e), s = q.getXY(), n = parseInt(q.getStyle(b), 10), p = parseInt(q.getStyle(d), 10); n = !isNaN(n) ? n : (r ? 0 : q.dom.offsetLeft); p = !isNaN(p) ? p : (r ? 0 : q.dom.offsetTop); return{left:(m - s[0] + n), top:(u - s[1] + p)} }, animTest:function (m, l, n) { return !!l && this.preanim ? this.preanim(m, n) : false }}) })(); Ext.Element.addMethods({isScrollable:function () { var a = this.dom; return a.scrollHeight > a.clientHeight || a.scrollWidth > a.clientWidth }, scrollTo:function (a, b) { this.dom["scroll" + (/top/i.test(a) ? "Top" : "Left")] = b; return this }, getScroll:function () { var i = this.dom, h = document, a = h.body, c = h.documentElement, b, g, e; if (i == h || i == a) { if (Ext.isIE && Ext.isStrict) { b = c.scrollLeft; g = c.scrollTop } else { b = window.pageXOffset; g = window.pageYOffset } e = {left:b || (a ? a.scrollLeft : 0), top:g || (a ? a.scrollTop : 0)} } else { e = {left:i.scrollLeft, top:i.scrollTop} } return e }}); Ext.Element.VISIBILITY = 1; Ext.Element.DISPLAY = 2; Ext.Element.OFFSETS = 3; Ext.Element.ASCLASS = 4; Ext.Element.visibilityCls = "x-hide-nosize"; Ext.Element.addMethods(function () { var e = Ext.Element, p = "opacity", j = "visibility", g = "display", d = "hidden", n = "offsets", k = "asclass", m = "none", a = "nosize", b = "originalDisplay", c = "visibilityMode", h = "isVisible", i = e.data, l = function (r) { var q = i(r, b); if (q === undefined) { i(r, b, q = "") } return q }, o = function (r) { var q = i(r, c); if (q === undefined) { i(r, c, q = 1) } return q }; return{originalDisplay:"", visibilityMode:1, setVisibilityMode:function (q) { i(this.dom, c, q); return this }, animate:function (r, t, s, u, q) { this.anim(r, {duration:t, callback:s, easing:u}, q); return this }, anim:function (t, u, r, w, s, q) { r = r || "run"; u = u || {}; var v = this, x = Ext.lib.Anim[r](v.dom, t, (u.duration || w) || 0.35, (u.easing || s) || "easeOut", function () { if (q) { q.call(v) } if (u.callback) { u.callback.call(u.scope || v, v, u) } }, v); u.anim = x; return x }, preanim:function (q, r) { return !q[r] ? false : (typeof q[r] == "object" ? q[r] : {duration:q[r + 1], callback:q[r + 2], easing:q[r + 3]}) }, isVisible:function () { var q = this, s = q.dom, r = i(s, h); if (typeof r == "boolean") { return r } r = !q.isStyle(j, d) && !q.isStyle(g, m) && !((o(s) == e.ASCLASS) && q.hasClass(q.visibilityCls || e.visibilityCls)); i(s, h, r); return r }, setVisible:function (t, q) { var w = this, r, y, x, v, u = w.dom, s = o(u); if (typeof q == "string") { switch (q) { case g: s = e.DISPLAY; break; case j: s = e.VISIBILITY; break; case n: s = e.OFFSETS; break; case a: case k: s = e.ASCLASS; break } w.setVisibilityMode(s); q = false } if (!q || !w.anim) { if (s == e.ASCLASS) { w[t ? "removeClass" : "addClass"](w.visibilityCls || e.visibilityCls) } else { if (s == e.DISPLAY) { return w.setDisplayed(t) } else { if (s == e.OFFSETS) { if (!t) { w.hideModeStyles = {position:w.getStyle("position"), top:w.getStyle("top"), left:w.getStyle("left")}; w.applyStyles({position:"absolute", top:"-10000px", left:"-10000px"}) } else { w.applyStyles(w.hideModeStyles || {position:"", top:"", left:""}); delete w.hideModeStyles } } else { w.fixDisplay(); u.style.visibility = t ? "visible" : d } } } } else { if (t) { w.setOpacity(0.01); w.setVisible(true) } w.anim({opacity:{to:(t ? 1 : 0)}}, w.preanim(arguments, 1), null, 0.35, "easeIn", function () { t || w.setVisible(false).setOpacity(1) }) } i(u, h, t); return w }, hasMetrics:function () { var q = this.dom; return this.isVisible() || (o(q) == e.VISIBILITY) }, toggle:function (q) { var r = this; r.setVisible(!r.isVisible(), r.preanim(arguments, 0)); return r }, setDisplayed:function (q) { if (typeof q == "boolean") { q = q ? l(this.dom) : m } this.setStyle(g, q); return this }, fixDisplay:function () { var q = this; if (q.isStyle(g, m)) { q.setStyle(j, d); q.setStyle(g, l(this.dom)); if (q.isStyle(g, m)) { q.setStyle(g, "block") } } }, hide:function (q) { if (typeof q == "string") { this.setVisible(false, q); return this } this.setVisible(false, this.preanim(arguments, 0)); return this }, show:function (q) { if (typeof q == "string") { this.setVisible(true, q); return this } this.setVisible(true, this.preanim(arguments, 0)); return this }} }()); (function () { var y = null, A = undefined, k = true, t = false, j = "setX", h = "setY", a = "setXY", n = "left", l = "bottom", s = "top", m = "right", q = "height", g = "width", i = "points", w = "hidden", z = "absolute", u = "visible", e = "motion", o = "position", r = "easeOut", d = new Ext.Element.Flyweight(), v = {}, x = function (B) { return B || {} }, p = function (B) { d.dom = B; d.id = Ext.id(B); return d }, c = function (B) { if (!v[B]) { v[B] = [] } return v[B] }, b = function (C, B) { v[C] = B }; Ext.enableFx = k; Ext.Fx = {switchStatements:function (C, D, B) { return D.apply(this, B[C]) }, slideIn:function (H, E) { E = x(E); var J = this, G = J.dom, M = G.style, O, B, L, D, C, M, I, N, K, F; H = H || "t"; J.queueFx(E, function () { O = p(G).getXY(); p(G).fixDisplay(); B = p(G).getFxRestore(); L = {x:O[0], y:O[1], 0:O[0], 1:O[1], width:G.offsetWidth, height:G.offsetHeight}; L.right = L.x + L.width; L.bottom = L.y + L.height; p(G).setWidth(L.width).setHeight(L.height); D = p(G).fxWrap(B.pos, E, w); M.visibility = u; M.position = z; function P() { p(G).fxUnwrap(D, B.pos, E); M.width = B.width; M.height = B.height; p(G).afterFx(E) } N = {to:[L.x, L.y]}; K = {to:L.width}; F = {to:L.height}; function Q(U, R, V, S, X, Z, ac, ab, aa, W, T) { var Y = {}; p(U).setWidth(V).setHeight(S); if (p(U)[X]) { p(U)[X](Z) } R[ac] = R[ab] = "0"; if (aa) { Y.width = aa } if (W) { Y.height = W } if (T) { Y.points = T } return Y } I = p(G).switchStatements(H.toLowerCase(), Q, {t:[D, M, L.width, 0, y, y, n, l, y, F, y], l:[D, M, 0, L.height, y, y, m, s, K, y, y], r:[D, M, L.width, L.height, j, L.right, n, s, y, y, N], b:[D, M, L.width, L.height, h, L.bottom, n, s, y, F, N], tl:[D, M, 0, 0, y, y, m, l, K, F, N], bl:[D, M, 0, 0, h, L.y + L.height, m, s, K, F, N], br:[D, M, 0, 0, a, [L.right, L.bottom], n, s, K, F, N], tr:[D, M, 0, 0, j, L.x + L.width, n, l, K, F, N]}); M.visibility = u; p(D).show(); arguments.callee.anim = p(D).fxanim(I, E, e, 0.5, r, P) }); return J }, slideOut:function (F, D) { D = x(D); var H = this, E = H.dom, K = E.style, L = H.getXY(), C, B, I, J, G = {to:0}; F = F || "t"; H.queueFx(D, function () { B = p(E).getFxRestore(); I = {x:L[0], y:L[1], 0:L[0], 1:L[1], width:E.offsetWidth, height:E.offsetHeight}; I.right = I.x + I.width; I.bottom = I.y + I.height; p(E).setWidth(I.width).setHeight(I.height); C = p(E).fxWrap(B.pos, D, u); K.visibility = u; K.position = z; p(C).setWidth(I.width).setHeight(I.height); function M() { D.useDisplay ? p(E).setDisplayed(t) : p(E).hide(); p(E).fxUnwrap(C, B.pos, D); K.width = B.width; K.height = B.height; p(E).afterFx(D) } function N(O, W, U, X, S, V, R, T, Q) { var P = {}; O[W] = O[U] = "0"; P[X] = S; if (V) { P[V] = R } if (T) { P[T] = Q } return P } J = p(E).switchStatements(F.toLowerCase(), N, {t:[K, n, l, q, G], l:[K, m, s, g, G], r:[K, n, s, g, G, i, {to:[I.right, I.y]}], b:[K, n, s, q, G, i, {to:[I.x, I.bottom]}], tl:[K, m, l, g, G, q, G], bl:[K, m, s, g, G, q, G, i, {to:[I.x, I.bottom]}], br:[K, n, s, g, G, q, G, i, {to:[I.x + I.width, I.bottom]}], tr:[K, n, l, g, G, q, G, i, {to:[I.right, I.y]}]}); arguments.callee.anim = p(C).fxanim(J, D, e, 0.5, r, M) }); return H }, puff:function (H) { H = x(H); var F = this, G = F.dom, C = G.style, D, B, E; F.queueFx(H, function () { D = p(G).getWidth(); B = p(G).getHeight(); p(G).clearOpacity(); p(G).show(); E = p(G).getFxRestore(); function I() { H.useDisplay ? p(G).setDisplayed(t) : p(G).hide(); p(G).clearOpacity(); p(G).setPositioning(E.pos); C.width = E.width; C.height = E.height; C.fontSize = ""; p(G).afterFx(H) } arguments.callee.anim = p(G).fxanim({width:{to:p(G).adjustWidth(D * 2)}, height:{to:p(G).adjustHeight(B * 2)}, points:{by:[-D * 0.5, -B * 0.5]}, opacity:{to:0}, fontSize:{to:200, unit:"%"}}, H, e, 0.5, r, I) }); return F }, switchOff:function (F) { F = x(F); var D = this, E = D.dom, B = E.style, C; D.queueFx(F, function () { p(E).clearOpacity(); p(E).clip(); C = p(E).getFxRestore(); function G() { F.useDisplay ? p(E).setDisplayed(t) : p(E).hide(); p(E).clearOpacity(); p(E).setPositioning(C.pos); B.width = C.width; B.height = C.height; p(E).afterFx(F) } p(E).fxanim({opacity:{to:0.3}}, y, y, 0.1, y, function () { p(E).clearOpacity(); (function () { p(E).fxanim({height:{to:1}, points:{by:[0, p(E).getHeight() * 0.5]}}, F, e, 0.3, "easeIn", G) }).defer(100) }) }); return D }, highlight:function (D, H) { H = x(H); var F = this, G = F.dom, B = H.attr || "backgroundColor", C = {}, E; F.queueFx(H, function () { p(G).clearOpacity(); p(G).show(); function I() { G.style[B] = E; p(G).afterFx(H) } E = G.style[B]; C[B] = {from:D || "ffff9c", to:H.endColor || p(G).getColor(B) || "ffffff"}; arguments.callee.anim = p(G).fxanim(C, H, "color", 1, "easeIn", I) }); return F }, frame:function (B, E, H) { H = x(H); var D = this, G = D.dom, C, F; D.queueFx(H, function () { B = B || "#C3DAF9"; if (B.length == 6) { B = "#" + B } E = E || 1; p(G).show(); var L = p(G).getXY(), J = {x:L[0], y:L[1], 0:L[0], 1:L[1], width:G.offsetWidth, height:G.offsetHeight}, I = function () { C = p(document.body || document.documentElement).createChild({style:{position:z, "z-index":35000, border:"0px solid " + B}}); return C.queueFx({}, K) }; arguments.callee.anim = {isAnimated:true, stop:function () { E = 0; C.stopFx() }}; function K() { var M = Ext.isBorderBox ? 2 : 1; F = C.anim({top:{from:J.y, to:J.y - 20}, left:{from:J.x, to:J.x - 20}, borderWidth:{from:0, to:10}, opacity:{from:1, to:0}, height:{from:J.height, to:J.height + 20 * M}, width:{from:J.width, to:J.width + 20 * M}}, {duration:H.duration || 1, callback:function () { C.remove(); --E > 0 ? I() : p(G).afterFx(H) }}); arguments.callee.anim = {isAnimated:true, stop:function () { F.stop() }} } I() }); return D }, pause:function (D) { var C = this.dom, B; this.queueFx({}, function () { B = setTimeout(function () { p(C).afterFx({}) }, D * 1000); arguments.callee.anim = {isAnimated:true, stop:function () { clearTimeout(B); p(C).afterFx({}) }} }); return this }, fadeIn:function (D) { D = x(D); var B = this, C = B.dom, E = D.endOpacity || 1; B.queueFx(D, function () { p(C).setOpacity(0); p(C).fixDisplay(); C.style.visibility = u; arguments.callee.anim = p(C).fxanim({opacity:{to:E}}, D, y, 0.5, r, function () { if (E == 1) { p(C).clearOpacity() } p(C).afterFx(D) }) }); return B }, fadeOut:function (E) { E = x(E); var C = this, D = C.dom, B = D.style, F = E.endOpacity || 0; C.queueFx(E, function () { arguments.callee.anim = p(D).fxanim({opacity:{to:F}}, E, y, 0.5, r, function () { if (F == 0) { Ext.Element.data(D, "visibilityMode") == Ext.Element.DISPLAY || E.useDisplay ? B.display = "none" : B.visibility = w; p(D).clearOpacity() } p(D).afterFx(E) }) }); return C }, scale:function (B, C, D) { this.shift(Ext.apply({}, D, {width:B, height:C})); return this }, shift:function (D) { D = x(D); var C = this.dom, B = {}; this.queueFx(D, function () { for (var E in D) { if (D[E] != A) { B[E] = {to:D[E]} } } B.width ? B.width.to = p(C).adjustWidth(D.width) : B; B.height ? B.height.to = p(C).adjustWidth(D.height) : B; if (B.x || B.y || B.xy) { B.points = B.xy || {to:[B.x ? B.x.to : p(C).getX(), B.y ? B.y.to : p(C).getY()]} } arguments.callee.anim = p(C).fxanim(B, D, e, 0.35, r, function () { p(C).afterFx(D) }) }); return this }, ghost:function (E, C) { C = x(C); var G = this, D = G.dom, J = D.style, H = {opacity:{to:0}, points:{}}, K = H.points, B, I, F; E = E || "b"; G.queueFx(C, function () { B = p(D).getFxRestore(); I = p(D).getWidth(); F = p(D).getHeight(); function L() { C.useDisplay ? p(D).setDisplayed(t) : p(D).hide(); p(D).clearOpacity(); p(D).setPositioning(B.pos); J.width = B.width; J.height = B.height; p(D).afterFx(C) } K.by = p(D).switchStatements(E.toLowerCase(), function (N, M) { return[N, M] }, {t:[0, -F], l:[-I, 0], r:[I, 0], b:[0, F], tl:[-I, -F], bl:[-I, F], br:[I, F], tr:[I, -F]}); arguments.callee.anim = p(D).fxanim(H, C, e, 0.5, r, L) }); return G }, syncFx:function () { var B = this; B.fxDefaults = Ext.apply(B.fxDefaults || {}, {block:t, concurrent:k, stopFx:t}); return B }, sequenceFx:function () { var B = this; B.fxDefaults = Ext.apply(B.fxDefaults || {}, {block:t, concurrent:t, stopFx:t}); return B }, nextFx:function () { var B = c(this.dom.id)[0]; if (B) { B.call(this) } }, hasActiveFx:function () { return c(this.dom.id)[0] }, stopFx:function (B) { var C = this, E = C.dom.id; if (C.hasActiveFx()) { var D = c(E)[0]; if (D && D.anim) { if (D.anim.isAnimated) { b(E, [D]); D.anim.stop(B !== undefined ? B : k) } else { b(E, []) } } } return C }, beforeFx:function (B) { if (this.hasActiveFx() && !B.concurrent) { if (B.stopFx) { this.stopFx(); return k } return t } return k }, hasFxBlock:function () { var B = c(this.dom.id); return B && B[0] && B[0].block }, queueFx:function (E, B) { var C = p(this.dom); if (!C.hasFxBlock()) { Ext.applyIf(E, C.fxDefaults); if (!E.concurrent) { var D = C.beforeFx(E); B.block = E.block; c(C.dom.id).push(B); if (D) { C.nextFx() } } else { B.call(C) } } return C }, fxWrap:function (H, F, D) { var E = this.dom, C, B; if (!F.wrap || !(C = Ext.getDom(F.wrap))) { if (F.fixPosition) { B = p(E).getXY() } var G = document.createElement("div"); G.style.visibility = D; C = E.parentNode.insertBefore(G, E); p(C).setPositioning(H); if (p(C).isStyle(o, "static")) { p(C).position("relative") } p(E).clearPositioning("auto"); p(C).clip(); C.appendChild(E); if (B) { p(C).setXY(B) } } return C }, fxUnwrap:function (C, F, E) { var D = this.dom; p(D).clearPositioning(); p(D).setPositioning(F); if (!E.wrap) { var B = p(C).dom.parentNode; B.insertBefore(D, C); p(C).remove() } }, getFxRestore:function () { var B = this.dom.style; return{pos:this.getPositioning(), width:B.width, height:B.height} }, afterFx:function (C) { var B = this.dom, D = B.id; if (C.afterStyle) { p(B).setStyle(C.afterStyle) } if (C.afterCls) { p(B).addClass(C.afterCls) } if (C.remove == k) { p(B).remove() } if (C.callback) { C.callback.call(C.scope, p(B)) } if (!C.concurrent) { c(D).shift(); p(B).nextFx() } }, fxanim:function (E, F, C, G, D, B) { C = C || "run"; F = F || {}; var H = Ext.lib.Anim[C](this.dom, E, (F.duration || G) || 0.35, (F.easing || D) || r, B, this); F.anim = H; return H }}; Ext.Fx.resize = Ext.Fx.scale; Ext.Element.addMethods(Ext.Fx) })(); Ext.CompositeElementLite = function (b, a) { this.elements = []; this.add(b, a); this.el = new Ext.Element.Flyweight() }; Ext.CompositeElementLite.prototype = {isComposite:true, getElement:function (a) { var b = this.el; b.dom = a; b.id = a.id; return b }, transformElement:function (a) { return Ext.getDom(a) }, getCount:function () { return this.elements.length }, add:function (d, b) { var e = this, g = e.elements; if (!d) { return this } if (typeof d == "string") { d = Ext.Element.selectorFunction(d, b) } else { if (d.isComposite) { d = d.elements } else { if (!Ext.isIterable(d)) { d = [d] } } } for (var c = 0, a = d.length; c < a; ++c) { g.push(e.transformElement(d[c])) } return e }, invoke:function (g, b) { var h = this, d = h.elements, a = d.length, j, c; for (c = 0; c < a; c++) { j = d[c]; if (j) { Ext.Element.prototype[g].apply(h.getElement(j), b) } } return h }, item:function (b) { var d = this, c = d.elements[b], a = null; if (c) { a = d.getElement(c) } return a }, addListener:function (b, j, h, g) { var d = this.elements, a = d.length, c, k; for (c = 0; c < a; c++) { k = d[c]; if (k) { Ext.EventManager.on(k, b, j, h || k, g) } } return this }, each:function (g, d) { var h = this, c = h.elements, a = c.length, b, j; for (b = 0; b < a; b++) { j = c[b]; if (j) { j = this.getElement(j); if (g.call(d || j, j, h, b) === false) { break } } } return h }, fill:function (a) { var b = this; b.elements = []; b.add(a); return b }, filter:function (a) { var b = [], d = this, c = Ext.isFunction(a) ? a : function (e) { return e.is(a) }; d.each(function (h, e, g) { if (c(h, g) !== false) { b[b.length] = d.transformElement(h) } }); d.elements = b; return d }, indexOf:function (a) { return this.elements.indexOf(this.transformElement(a)) }, replaceElement:function (e, c, a) { var b = !isNaN(e) ? e : this.indexOf(e), g; if (b > -1) { c = Ext.getDom(c); if (a) { g = this.elements[b]; g.parentNode.insertBefore(c, g); Ext.removeNode(g) } this.elements.splice(b, 1, c) } return this }, clear:function () { this.elements = [] }}; Ext.CompositeElementLite.prototype.on = Ext.CompositeElementLite.prototype.addListener; Ext.CompositeElementLite.importElementMethods = function () { var c, b = Ext.Element.prototype, a = Ext.CompositeElementLite.prototype; for (c in b) { if (typeof b[c] == "function") { (function (d) { a[d] = a[d] || function () { return this.invoke(d, arguments) } }).call(a, c) } } }; Ext.CompositeElementLite.importElementMethods(); if (Ext.DomQuery) { Ext.Element.selectorFunction = Ext.DomQuery.select } Ext.Element.select = function (a, b) { var c; if (typeof a == "string") { c = Ext.Element.selectorFunction(a, b) } else { if (a.length !== undefined) { c = a } else { throw"Invalid selector" } } return new Ext.CompositeElementLite(c) }; Ext.select = Ext.Element.select; (function () { var b = "beforerequest", e = "requestcomplete", d = "requestexception", h = undefined, c = "load", i = "POST", a = "GET", g = window; Ext.data.Connection = function (j) { Ext.apply(this, j); this.addEvents(b, e, d); Ext.data.Connection.superclass.constructor.call(this) }; Ext.extend(Ext.data.Connection, Ext.util.Observable, {timeout:30000, autoAbort:false, disableCaching:true, disableCachingParam:"_dc", request:function (n) { var s = this; if (s.fireEvent(b, s, n)) { if (n.el) { if (!Ext.isEmpty(n.indicatorText)) { s.indicatorText = '
' + n.indicatorText + "
" } if (s.indicatorText) { Ext.getDom(n.el).innerHTML = s.indicatorText } n.success = (Ext.isFunction(n.success) ? n.success : function () { }).createInterceptor(function (o) { Ext.getDom(n.el).innerHTML = o.responseText }) } var l = n.params, k = n.url || s.url, j, q = {success:s.handleResponse, failure:s.handleFailure, scope:s, argument:{options:n}, timeout:Ext.num(n.timeout, s.timeout)}, m, t; if (Ext.isFunction(l)) { l = l.call(n.scope || g, n) } l = Ext.urlEncode(s.extraParams, Ext.isObject(l) ? Ext.urlEncode(l) : l); if (Ext.isFunction(k)) { k = k.call(n.scope || g, n) } if ((m = Ext.getDom(n.form))) { k = k || m.action; if (n.isUpload || (/multipart\/form-data/i.test(m.getAttribute("enctype")))) { return s.doFormUpload.call(s, n, l, k) } t = Ext.lib.Ajax.serializeForm(m); l = l ? (l + "&" + t) : t } j = n.method || s.method || ((l || n.xmlData || n.jsonData) ? i : a); if (j === a && (s.disableCaching && n.disableCaching !== false) || n.disableCaching === true) { var r = n.disableCachingParam || s.disableCachingParam; k = Ext.urlAppend(k, r + "=" + (new Date().getTime())) } n.headers = Ext.applyIf(n.headers || {}, s.defaultHeaders || {}); if (n.autoAbort === true || s.autoAbort) { s.abort() } if ((j == a || n.xmlData || n.jsonData) && l) { k = Ext.urlAppend(k, l); l = "" } return(s.transId = Ext.lib.Ajax.request(j, k, q, l, n)) } else { return n.callback ? n.callback.apply(n.scope, [n, h, h]) : null } }, isLoading:function (j) { return j ? Ext.lib.Ajax.isCallInProgress(j) : !!this.transId }, abort:function (j) { if (j || this.isLoading()) { Ext.lib.Ajax.abort(j || this.transId) } }, handleResponse:function (j) { this.transId = false; var k = j.argument.options; j.argument = k ? k.argument : null; this.fireEvent(e, this, j, k); if (k.success) { k.success.call(k.scope, j, k) } if (k.callback) { k.callback.call(k.scope, k, true, j) } }, handleFailure:function (j, l) { this.transId = false; var k = j.argument.options; j.argument = k ? k.argument : null; this.fireEvent(d, this, j, k, l); if (k.failure) { k.failure.call(k.scope, j, k) } if (k.callback) { k.callback.call(k.scope, k, false, j) } }, doFormUpload:function (q, j, k) { var l = Ext.id(), v = document, r = v.createElement("iframe"), m = Ext.getDom(q.form), u = [], t, p = "multipart/form-data", n = {target:m.target, method:m.method, encoding:m.encoding, enctype:m.enctype, action:m.action}; Ext.fly(r).set({id:l, name:l, cls:"x-hidden", src:Ext.SSL_SECURE_URL}); v.body.appendChild(r); if (Ext.isIE) { document.frames[l].name = l } Ext.fly(m).set({target:l, method:i, enctype:p, encoding:p, action:k || n.action}); Ext.iterate(Ext.urlDecode(j, false), function (w, o) { t = v.createElement("input"); Ext.fly(t).set({type:"hidden", value:o, name:w}); m.appendChild(t); u.push(t) }); function s() { var x = this, w = {responseText:"", responseXML:null, argument:q.argument}, A, z; try { A = r.contentWindow.document || r.contentDocument || g.frames[l].document; if (A) { if (A.body) { if (/textarea/i.test((z = A.body.firstChild || {}).tagName)) { w.responseText = z.value } else { w.responseText = A.body.innerHTML } } w.responseXML = A.XMLDocument || A } } catch (y) { } Ext.EventManager.removeListener(r, c, s, x); x.fireEvent(e, x, w, q); function o(D, C, B) { if (Ext.isFunction(D)) { D.apply(C, B) } } o(q.success, q.scope, [w, q]); o(q.callback, q.scope, [q, true, w]); if (!x.debugUploads) { setTimeout(function () { Ext.removeNode(r) }, 100) } } Ext.EventManager.on(r, c, s, this); m.submit(); Ext.fly(m).set(n); Ext.each(u, function (o) { Ext.removeNode(o) }) }}) })(); Ext.Ajax = new Ext.data.Connection({autoAbort:false, serializeForm:function (a) { return Ext.lib.Ajax.serializeForm(a) }}); Ext.util.JSON = new (function () { var useHasOwn = !!{}.hasOwnProperty, isNative = function () { var useNative = null; return function () { if (useNative === null) { useNative = Ext.USE_NATIVE_JSON && window.JSON && JSON.toString() == "[object JSON]" } return useNative } }(), pad = function (n) { return n < 10 ? "0" + n : n }, doDecode = function (json) { return json ? eval("(" + json + ")") : "" }, doEncode = function (o) { if (!Ext.isDefined(o) || o === null) { return"null" } else { if (Ext.isArray(o)) { return encodeArray(o) } else { if (Ext.isDate(o)) { return Ext.util.JSON.encodeDate(o) } else { if (Ext.isString(o)) { return encodeString(o) } else { if (typeof o == "number") { return isFinite(o) ? String(o) : "null" } else { if (Ext.isBoolean(o)) { return String(o) } else { var a = ["{"], b, i, v; for (i in o) { if (!o.getElementsByTagName) { if (!useHasOwn || o.hasOwnProperty(i)) { v = o[i]; switch (typeof v) { case"undefined": case"function": case"unknown": break; default: if (b) { a.push(",") } a.push(doEncode(i), ":", v === null ? "null" : doEncode(v)); b = true } } } } a.push("}"); return a.join("") } } } } } } }, m = {"\b":"\\b", "\t":"\\t", "\n":"\\n", "\f":"\\f", "\r":"\\r", '"':'\\"', "\\":"\\\\"}, encodeString = function (s) { if (/["\\\x00-\x1f]/.test(s)) { return'"' + s.replace(/([\x00-\x1f\\"])/g, function (a, b) { var c = m[b]; if (c) { return c } c = b.charCodeAt(); return"\\u00" + Math.floor(c / 16).toString(16) + (c % 16).toString(16) }) + '"' } return'"' + s + '"' }, encodeArray = function (o) { var a = ["["], b, i, l = o.length, v; for (i = 0; i < l; i += 1) { v = o[i]; switch (typeof v) { case"undefined": case"function": case"unknown": break; default: if (b) { a.push(",") } a.push(v === null ? "null" : Ext.util.JSON.encode(v)); b = true } } a.push("]"); return a.join("") }; this.encodeDate = function (o) { return'"' + o.getFullYear() + "-" + pad(o.getMonth() + 1) + "-" + pad(o.getDate()) + "T" + pad(o.getHours()) + ":" + pad(o.getMinutes()) + ":" + pad(o.getSeconds()) + '"' }; this.encode = function () { var ec; return function (o) { if (!ec) { ec = isNative() ? JSON.stringify : doEncode } return ec(o) } }(); this.decode = function () { var dc; return function (json) { if (!dc) { dc = isNative() ? JSON.parse : doDecode } return dc(json) } }() })(); Ext.encode = Ext.util.JSON.encode; Ext.decode = Ext.util.JSON.decode; Ext.EventManager = function () { var z, p, j = false, l = Ext.isGecko || Ext.isWebKit || Ext.isSafari, o = Ext.lib.Event, q = Ext.lib.Dom, c = document, A = window, r = "DOMContentLoaded", t = "complete", g = /^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/, u = []; function n(E) { var H = false, D = 0, C = u.length, F = false, G; if (E) { if (E.getElementById || E.navigator) { for (; D < C; ++D) { G = u[D]; if (G.el === E) { H = G.id; break } } if (!H) { H = Ext.id(E); u.push({id:H, el:E}); F = true } } else { H = Ext.id(E) } if (!Ext.elCache[H]) { Ext.Element.addToCache(new Ext.Element(E), H); if (F) { Ext.elCache[H].skipGC = true } } } return H } function m(E, G, J, F, D, L) { E = Ext.getDom(E); var C = n(E), K = Ext.elCache[C].events, H; H = o.on(E, G, D); K[G] = K[G] || []; K[G].push([J, D, L, H, F]); if (E.addEventListener && G == "mousewheel") { var I = ["DOMMouseScroll", D, false]; E.addEventListener.apply(E, I); Ext.EventManager.addListener(A, "unload", function () { E.removeEventListener.apply(E, I) }) } if (E == c && G == "mousedown") { Ext.EventManager.stoppedMouseDownEvent.addListener(D) } } function d() { if (window != top) { return false } try { c.documentElement.doScroll("left") } catch (C) { return false } b(); return true } function B(C) { if (Ext.isIE && d()) { return true } if (c.readyState == t) { b(); return true } j || (p = setTimeout(arguments.callee, 2)); return false } var k; function i(C) { k || (k = Ext.query("style, link[rel=stylesheet]")); if (k.length == c.styleSheets.length) { b(); return true } j || (p = setTimeout(arguments.callee, 2)); return false } function y(C) { c.removeEventListener(r, arguments.callee, false); i() } function b(C) { if (!j) { j = true; if (p) { clearTimeout(p) } if (l) { c.removeEventListener(r, b, false) } if (Ext.isIE && B.bindIE) { c.detachEvent("onreadystatechange", B) } o.un(A, "load", arguments.callee) } if (z && !Ext.isReady) { Ext.isReady = true; z.fire(); z.listeners = [] } } function a() { z || (z = new Ext.util.Event()); if (l) { c.addEventListener(r, b, false) } if (Ext.isIE) { if (!B()) { B.bindIE = true; c.attachEvent("onreadystatechange", B) } } else { if (Ext.isOpera) { (c.readyState == t && i()) || c.addEventListener(r, y, false) } else { if (Ext.isWebKit) { B() } } } o.on(A, "load", b) } function x(C, D) { return function () { var E = Ext.toArray(arguments); if (D.target == Ext.EventObject.setEvent(E[0]).target) { C.apply(this, E) } } } function w(D, E, C) { return function (F) { C.delay(E.buffer, D, null, [new Ext.EventObjectImpl(F)]) } } function s(G, F, C, E, D) { return function (H) { Ext.EventManager.removeListener(F, C, E, D); G(H) } } function e(D, E, C) { return function (G) { var F = new Ext.util.DelayedTask(D); if (!C.tasks) { C.tasks = [] } C.tasks.push(F); F.delay(E.delay || 10, D, null, [new Ext.EventObjectImpl(G)]) } } function h(H, G, C, J, K) { var D = (!C || typeof C == "boolean") ? {} : C, E = Ext.getDom(H), F; J = J || D.fn; K = K || D.scope; if (!E) { throw'Error listening for "' + G + '". Element "' + H + "\" doesn't exist." } function I(M) { if (!Ext) { return } M = Ext.EventObject.setEvent(M); var L; if (D.delegate) { if (!(L = M.getTarget(D.delegate, E))) { return } } else { L = M.target } if (D.stopEvent) { M.stopEvent() } if (D.preventDefault) { M.preventDefault() } if (D.stopPropagation) { M.stopPropagation() } if (D.normalized === false) { M = M.browserEvent } J.call(K || E, M, L, D) } if (D.target) { I = x(I, D) } if (D.delay) { I = e(I, D, J) } if (D.single) { I = s(I, E, G, J, K) } if (D.buffer) { F = new Ext.util.DelayedTask(I); I = w(I, D, F) } m(E, G, J, F, I, K); return I } var v = {addListener:function (E, C, G, F, D) { if (typeof C == "object") { var J = C, H, I; for (H in J) { I = J[H]; if (!g.test(H)) { if (Ext.isFunction(I)) { h(E, H, J, I, J.scope) } else { h(E, H, I) } } } } else { h(E, C, D, G, F) } }, removeListener:function (E, I, M, N) { E = Ext.getDom(E); var C = n(E), K = E && (Ext.elCache[C].events)[I] || [], D, H, F, G, J, L; for (H = 0, J = K.length; H < J; H++) { if (Ext.isArray(L = K[H]) && L[0] == M && (!N || L[2] == N)) { if (L[4]) { L[4].cancel() } G = M.tasks && M.tasks.length; if (G) { while (G--) { M.tasks[G].cancel() } delete M.tasks } D = L[1]; o.un(E, I, o.extAdapter ? L[3] : D); if (D && E.addEventListener && I == "mousewheel") { E.removeEventListener("DOMMouseScroll", D, false) } if (D && E == c && I == "mousedown") { Ext.EventManager.stoppedMouseDownEvent.removeListener(D) } K.splice(H, 1); if (K.length === 0) { delete Ext.elCache[C].events[I] } for (G in Ext.elCache[C].events) { return false } Ext.elCache[C].events = {}; return false } } }, removeAll:function (E) { E = Ext.getDom(E); var D = n(E), J = Ext.elCache[D] || {}, M = J.events || {}, I, H, K, F, L, G, C; for (F in M) { if (M.hasOwnProperty(F)) { I = M[F]; for (H = 0, K = I.length; H < K; H++) { L = I[H]; if (L[4]) { L[4].cancel() } if (L[0].tasks && (G = L[0].tasks.length)) { while (G--) { L[0].tasks[G].cancel() } delete L.tasks } C = L[1]; o.un(E, F, o.extAdapter ? L[3] : C); if (E.addEventListener && C && F == "mousewheel") { E.removeEventListener("DOMMouseScroll", C, false) } if (C && E == c && F == "mousedown") { Ext.EventManager.stoppedMouseDownEvent.removeListener(C) } } } } if (Ext.elCache[D]) { Ext.elCache[D].events = {} } }, getListeners:function (F, C) { F = Ext.getDom(F); var H = n(F), D = Ext.elCache[H] || {}, G = D.events || {}, E = []; if (G && G[C]) { return G[C] } else { return null } }, purgeElement:function (E, C, G) { E = Ext.getDom(E); var D = n(E), J = Ext.elCache[D] || {}, K = J.events || {}, F, I, H; if (G) { if (K && K.hasOwnProperty(G)) { I = K[G]; for (F = 0, H = I.length; F < H; F++) { Ext.EventManager.removeListener(E, G, I[F][0]) } } } else { Ext.EventManager.removeAll(E) } if (C && E && E.childNodes) { for (F = 0, H = E.childNodes.length; F < H; F++) { Ext.EventManager.purgeElement(E.childNodes[F], C, G) } } }, _unload:function () { var C; for (C in Ext.elCache) { Ext.EventManager.removeAll(C) } delete Ext.elCache; delete Ext.Element._flyweights; var G, D, F, E = Ext.lib.Ajax; (typeof E.conn == "object") ? D = E.conn : D = {}; for (F in D) { G = D[F]; if (G) { E.abort({conn:G, tId:F}) } } }, onDocumentReady:function (E, D, C) { if (Ext.isReady) { z || (z = new Ext.util.Event()); z.addListener(E, D, C); z.fire(); z.listeners = [] } else { if (!z) { a() } C = C || {}; C.delay = C.delay || 1; z.addListener(E, D, C) } }, fireDocReady:b}; v.on = v.addListener; v.un = v.removeListener; v.stoppedMouseDownEvent = new Ext.util.Event(); return v }(); Ext.onReady = Ext.EventManager.onDocumentReady; (function () { var a = function () { var c = document.body || document.getElementsByTagName("body")[0]; if (!c) { return false } var b = [" ", Ext.isIE ? "ext-ie " + (Ext.isIE6 ? "ext-ie6" : (Ext.isIE7 ? "ext-ie7" : (Ext.isIE8 ? "ext-ie8" : "ext-ie9"))) : Ext.isGecko ? "ext-gecko " + (Ext.isGecko2 ? "ext-gecko2" : "ext-gecko3") : Ext.isOpera ? "ext-opera" : Ext.isWebKit ? "ext-webkit" : ""]; if (Ext.isSafari) { b.push("ext-safari " + (Ext.isSafari2 ? "ext-safari2" : (Ext.isSafari3 ? "ext-safari3" : "ext-safari4"))) } else { if (Ext.isChrome) { b.push("ext-chrome") } } if (Ext.isMac) { b.push("ext-mac") } if (Ext.isLinux) { b.push("ext-linux") } if (Ext.isStrict || Ext.isBorderBox) { var d = c.parentNode; if (d) { if (!Ext.isStrict) { Ext.fly(d, "_internal").addClass("x-quirks"); if (Ext.isIE && !Ext.isStrict) { Ext.isIEQuirks = true } } Ext.fly(d, "_internal").addClass(((Ext.isStrict && Ext.isIE) || (!Ext.enableForcedBoxModel && !Ext.isIE)) ? " ext-strict" : " ext-border-box") } } if (Ext.enableForcedBoxModel && !Ext.isIE) { Ext.isForcedBorderBox = true; b.push("ext-forced-border-box") } Ext.fly(c, "_internal").addClass(b); return true }; if (!a()) { Ext.onReady(a) } })(); (function () { var b = Ext.apply(Ext.supports, {correctRightMargin:true, correctTransparentColor:true, cssFloat:true}); var a = function () { var g = document.createElement("div"), e = document, c, d; g.innerHTML = '
'; 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 = /(?:]*)?>)((\n|\r|.)*?)(?:<\/script>)/ig, srcRe = /\ssrc=([\'\"])(.*?)\1/i, typeRe = /\stype=([\'\"])(.*?)\1/i, match, attrs, srcMatch, typeMatch, el, s; while ((match = re.exec(html))) { attrs = match[1]; srcMatch = attrs ? attrs.match(srcRe) : false; if (srcMatch && srcMatch[2]) { s = DOC.createElement("script"); s.src = srcMatch[2]; typeMatch = attrs.match(typeRe); if (typeMatch && typeMatch[2]) { s.type = typeMatch[2] } hd.appendChild(s) } else { if (match[2] && match[2].length > 0) { if (window.execScript) { window.execScript(match[2]) } else { window.eval(match[2]) } } } } el = DOC.getElementById(id); if (el) { Ext.removeNode(el) } if (typeof callback == "function") { callback() } }); dom.innerHTML = html.replace(/(?:)((\n|\r|.)*?)(?:<\/script>)/ig, ""); return this }, removeAllListeners:function () { this.removeAnchor(); Ext.EventManager.removeAll(this.dom); return this }, createProxy:function (a, e, d) { a = (typeof a == "object") ? a : {tag:"div", cls:a}; var c = this, b = e ? Ext.DomHelper.append(e, a, true) : Ext.DomHelper.insertBefore(c.dom, a, true); if (d && c.setBox && c.getBox) { b.setBox(c.getBox()) } return b }}); Ext.Element.prototype.getUpdateManager = Ext.Element.prototype.getUpdater; Ext.Element.addMethods({getAnchorXY:function (e, l, q) { e = (e || "tl").toLowerCase(); q = q || {}; var k = this, b = k.dom == document.body || k.dom == document, n = q.width || b ? Ext.lib.Dom.getViewWidth() : k.getWidth(), i = q.height || b ? Ext.lib.Dom.getViewHeight() : k.getHeight(), p, a = Math.round, c = k.getXY(), m = k.getScroll(), j = b ? m.left : !l ? c[0] : 0, g = b ? m.top : !l ? c[1] : 0, d = {c:[a(n * 0.5), a(i * 0.5)], t:[a(n * 0.5), 0], l:[0, a(i * 0.5)], r:[n, a(i * 0.5)], b:[a(n * 0.5), i], tl:[0, 0], bl:[0, i], br:[n, i], tr:[n, 0]}; p = d[e]; return[p[0] + j, p[1] + g] }, anchorTo:function (b, h, c, a, k, l) { var i = this, e = i.dom, j = !Ext.isEmpty(k), d = function () { Ext.fly(e).alignTo(b, h, c, a); Ext.callback(l, Ext.fly(e)) }, g = this.getAnchor(); this.removeAnchor(); Ext.apply(g, {fn:d, scroll:j}); Ext.EventManager.onWindowResize(d, null); if (j) { Ext.EventManager.on(window, "scroll", d, null, {buffer:!isNaN(k) ? k : 50}) } d.call(i); return i }, removeAnchor:function () { var b = this, a = this.getAnchor(); if (a && a.fn) { Ext.EventManager.removeResizeListener(a.fn); if (a.scroll) { Ext.EventManager.un(window, "scroll", a.fn) } delete a.fn } return b }, getAnchor:function () { var b = Ext.Element.data, c = this.dom; if (!c) { return } var a = b(c, "_anchor"); if (!a) { a = b(c, "_anchor", {}) } return a }, getAlignToXY:function (g, A, B) { g = Ext.get(g); if (!g || !g.dom) { throw"Element.alignToXY with an element that doesn't exist" } B = B || [0, 0]; A = (!A || A == "?" ? "tl-bl?" : (!(/-/).test(A) && A !== "" ? "tl-" + A : A || "tl-bl")).toLowerCase(); var K = this, H = K.dom, M, L, n, l, s, F, v, t = Ext.lib.Dom.getViewWidth() - 10, G = Ext.lib.Dom.getViewHeight() - 10, b, i, j, k, u, z, N = document, J = N.documentElement, q = N.body, E = (J.scrollLeft || q.scrollLeft || 0) + 5, D = (J.scrollTop || q.scrollTop || 0) + 5, I = false, e = "", a = "", C = A.match(/^([a-z]+)-([a-z]+)(\?)?$/); if (!C) { throw"Element.alignTo with an invalid alignment " + A } e = C[1]; a = C[2]; I = !!C[3]; M = K.getAnchorXY(e, true); L = g.getAnchorXY(a, false); n = L[0] - M[0] + B[0]; l = L[1] - M[1] + B[1]; if (I) { s = K.getWidth(); F = K.getHeight(); v = g.getRegion(); b = e.charAt(0); i = e.charAt(e.length - 1); j = a.charAt(0); k = a.charAt(a.length - 1); u = ((b == "t" && j == "b") || (b == "b" && j == "t")); z = ((i == "r" && k == "l") || (i == "l" && k == "r")); if (n + s > t + E) { n = z ? v.left - s : t + E - s } if (n < E) { n = z ? v.right : E } if (l + F > G + D) { l = u ? v.top - F : G + D - F } if (l < D) { l = u ? v.bottom : D } } return[n, l] }, alignTo:function (c, a, e, b) { var d = this; return d.setXY(d.getAlignToXY(c, a, e), d.preanim && !!b ? d.preanim(arguments, 3) : false) }, adjustForConstraints:function (c, a, b) { return this.getConstrainToXY(a || document, false, b, c) || c }, getConstrainToXY:function (b, a, c, e) { var d = {top:0, left:0, bottom:0, right:0}; return function (i, A, l, n) { i = Ext.get(i); l = l ? Ext.applyIf(l, d) : d; var z, D, v = 0, u = 0; if (i.dom == document.body || i.dom == document) { z = Ext.lib.Dom.getViewWidth(); D = Ext.lib.Dom.getViewHeight() } else { z = i.dom.clientWidth; D = i.dom.clientHeight; if (!A) { var t = i.getXY(); v = t[0]; u = t[1] } } var r = i.getScroll(); v += l.left + r.left; u += l.top + r.top; z -= l.right; D -= l.bottom; var B = v + z, g = u + D, j = n || (!A ? this.getXY() : [this.getLeft(true), this.getTop(true)]), p = j[0], o = j[1], k = this.getConstrainOffset(), q = this.dom.offsetWidth + k, C = this.dom.offsetHeight + k; var m = false; if ((p + q) > B) { p = B - q; m = true } if ((o + C) > g) { o = g - C; m = true } if (p < v) { p = v; m = true } if (o < u) { o = u; m = true } return m ? [p, o] : false } }(), getConstrainOffset:function () { return 0 }, getCenterXY:function () { return this.getAlignToXY(document, "c-c") }, center:function (a) { return this.alignTo(a || document, "c-c") }}); Ext.Element.addMethods({select:function (a, b) { return Ext.Element.select(a, b, this.dom) }}); Ext.apply(Ext.Element.prototype, function () { var c = Ext.getDom, a = Ext.get, b = Ext.DomHelper; return{insertSibling:function (i, g, h) { var j = this, e, d = (g || "before").toLowerCase() == "after", k; if (Ext.isArray(i)) { k = j; Ext.each(i, function (l) { e = Ext.fly(k, "_internal").insertSibling(l, g, h); if (d) { k = e } }); return e } i = i || {}; if (i.nodeType || i.dom) { e = j.dom.parentNode.insertBefore(c(i), d ? j.dom.nextSibling : j.dom); if (!h) { e = a(e) } } else { if (d && !j.dom.nextSibling) { e = b.append(j.dom.parentNode, i, !h) } else { e = b[d ? "insertAfter" : "insertBefore"](j.dom, i, !h) } } return e }} }()); Ext.Element.boxMarkup = '
'; Ext.Element.addMethods(function () { var a = "_internal", b = /(\d+\.?\d+)px/; return{applyStyles:function (c) { Ext.DomHelper.applyStyles(this.dom, c); return this }, getStyles:function () { var c = {}; Ext.each(arguments, function (d) { c[d] = this.getStyle(d) }, this); return c }, setOverflow:function (c) { var d = this.dom; if (c == "auto" && Ext.isMac && Ext.isGecko2) { d.style.overflow = "hidden"; (function () { d.style.overflow = "auto" }).defer(1) } else { d.style.overflow = c } }, boxWrap:function (c) { c = c || "x-box"; var d = Ext.get(this.insertHtml("beforeBegin", "
" + String.format(Ext.Element.boxMarkup, c) + "
")); Ext.DomQuery.selectNode("." + c + "-mc", d.dom).appendChild(this.dom); return d }, setSize:function (e, c, d) { var g = this; if (typeof e == "object") { c = e.height; e = e.width } e = g.adjustWidth(e); c = g.adjustHeight(c); if (!d || !g.anim) { g.dom.style.width = g.addUnits(e); g.dom.style.height = g.addUnits(c) } else { g.anim({width:{to:e}, height:{to:c}}, g.preanim(arguments, 2)) } return g }, getComputedHeight:function () { var d = this, c = Math.max(d.dom.offsetHeight, d.dom.clientHeight); if (!c) { c = parseFloat(d.getStyle("height")) || 0; if (!d.isBorderBox()) { c += d.getFrameWidth("tb") } } return c }, getComputedWidth:function () { var c = Math.max(this.dom.offsetWidth, this.dom.clientWidth); if (!c) { c = parseFloat(this.getStyle("width")) || 0; if (!this.isBorderBox()) { c += this.getFrameWidth("lr") } } return c }, getFrameWidth:function (d, c) { return c && this.isBorderBox() ? 0 : (this.getPadding(d) + this.getBorderWidth(d)) }, addClassOnOver:function (c) { this.hover(function () { Ext.fly(this, a).addClass(c) }, function () { Ext.fly(this, a).removeClass(c) }); return this }, addClassOnFocus:function (c) { this.on("focus", function () { Ext.fly(this, a).addClass(c) }, this.dom); this.on("blur", function () { Ext.fly(this, a).removeClass(c) }, this.dom); return this }, addClassOnClick:function (c) { var d = this.dom; this.on("mousedown", function () { Ext.fly(d, a).addClass(c); var g = Ext.getDoc(), e = function () { Ext.fly(d, a).removeClass(c); g.removeListener("mouseup", e) }; g.on("mouseup", e) }); return this }, getViewSize:function () { var g = document, h = this.dom, c = (h == g || h == g.body); if (c) { var e = Ext.lib.Dom; return{width:e.getViewWidth(), height:e.getViewHeight()} } else { return{width:h.clientWidth, height:h.clientHeight} } }, getStyleSize:function () { var j = this, c, i, l = document, m = this.dom, e = (m == l || m == l.body), g = m.style; if (e) { var k = Ext.lib.Dom; return{width:k.getViewWidth(), height:k.getViewHeight()} } if (g.width && g.width != "auto") { c = parseFloat(g.width); if (j.isBorderBox()) { c -= j.getFrameWidth("lr") } } if (g.height && g.height != "auto") { i = parseFloat(g.height); if (j.isBorderBox()) { i -= j.getFrameWidth("tb") } } return{width:c || j.getWidth(true), height:i || j.getHeight(true)} }, getSize:function (c) { return{width:this.getWidth(c), height:this.getHeight(c)} }, repaint:function () { var c = this.dom; this.addClass("x-repaint"); setTimeout(function () { Ext.fly(c).removeClass("x-repaint") }, 1); return this }, unselectable:function () { this.dom.unselectable = "on"; return this.swallowEvent("selectstart", true).applyStyles("-moz-user-select:none;-khtml-user-select:none;").addClass("x-unselectable") }, getMargins:function (d) { var e = this, c, g = {t:"top", l:"left", r:"right", b:"bottom"}, h = {}; if (!d) { for (c in e.margins) { h[g[c]] = parseFloat(e.getStyle(e.margins[c])) || 0 } return h } else { return e.addStyles.call(e, d, e.margins) } }} }()); Ext.Element.addMethods({setBox:function (e, g, b) { var d = this, a = e.width, c = e.height; if ((g && !d.autoBoxAdjust) && !d.isBorderBox()) { a -= (d.getBorderWidth("lr") + d.getPadding("lr")); c -= (d.getBorderWidth("tb") + d.getPadding("tb")) } d.setBounds(e.x, e.y, a, c, d.animTest.call(d, arguments, b, 2)); return d }, getBox:function (j, p) { var m = this, v, e, o, d = m.getBorderWidth, q = m.getPadding, g, a, u, n; if (!p) { v = m.getXY() } else { e = parseInt(m.getStyle("left"), 10) || 0; o = parseInt(m.getStyle("top"), 10) || 0; v = [e, o] } var c = m.dom, s = c.offsetWidth, i = c.offsetHeight, k; if (!j) { k = {x:v[0], y:v[1], 0:v[0], 1:v[1], width:s, height:i} } else { g = d.call(m, "l") + q.call(m, "l"); a = d.call(m, "r") + q.call(m, "r"); u = d.call(m, "t") + q.call(m, "t"); n = d.call(m, "b") + q.call(m, "b"); k = {x:v[0] + g, y:v[1] + u, 0:v[0] + g, 1:v[1] + u, width:s - (g + a), height:i - (u + n)} } k.right = k.x + k.width; k.bottom = k.y + k.height; return k }, move:function (j, b, c) { var g = this, m = g.getXY(), k = m[0], i = m[1], d = [k - b, i], l = [k + b, i], h = [k, i - b], a = [k, i + b], e = {l:d, left:d, r:l, right:l, t:h, top:h, up:h, b:a, bottom:a, down:a}; j = j.toLowerCase(); g.moveTo(e[j][0], e[j][1], g.animTest.call(g, arguments, c, 2)) }, setLeftTop:function (d, c) { var b = this, a = b.dom.style; a.left = b.addUnits(d); a.top = b.addUnits(c); return b }, getRegion:function () { return Ext.lib.Dom.getRegion(this.dom) }, setBounds:function (b, g, d, a, c) { var e = this; if (!c || !e.anim) { e.setSize(d, a); e.setLocation(b, g) } else { e.anim({points:{to:[b, g]}, width:{to:e.adjustWidth(d)}, height:{to:e.adjustHeight(a)}}, e.preanim(arguments, 4), "motion") } return e }, setRegion:function (b, a) { return this.setBounds(b.left, b.top, b.right - b.left, b.bottom - b.top, this.animTest.call(this, arguments, a, 1)) }}); Ext.Element.addMethods({scrollTo:function (b, d, a) { var e = /top/i.test(b), c = this, g = c.dom, h; if (!a || !c.anim) { h = "scroll" + (e ? "Top" : "Left"); g[h] = d } else { h = "scroll" + (e ? "Left" : "Top"); c.anim({scroll:{to:e ? [g[h], d] : [d, g[h]]}}, c.preanim(arguments, 2), "scroll") } return c }, scrollIntoView:function (e, i) { var p = Ext.getDom(e) || Ext.getBody().dom, h = this.dom, g = this.getOffsetsTo(p), k = g[0] + p.scrollLeft, u = g[1] + p.scrollTop, q = u + h.offsetHeight, d = k + h.offsetWidth, a = p.clientHeight, m = parseInt(p.scrollTop, 10), s = parseInt(p.scrollLeft, 10), j = m + a, n = s + p.clientWidth; if (h.offsetHeight > a || u < m) { p.scrollTop = u } else { if (q > j) { p.scrollTop = q - a } } p.scrollTop = p.scrollTop; if (i !== false) { if (h.offsetWidth > p.clientWidth || k < s) { p.scrollLeft = k } else { if (d > n) { p.scrollLeft = d - p.clientWidth } } p.scrollLeft = p.scrollLeft } return this }, scrollChildIntoView:function (b, a) { Ext.fly(b, "_scrollChildIntoView").scrollIntoView(this, a) }, scroll:function (m, b, d) { if (!this.isScrollable()) { return false } var e = this.dom, g = e.scrollLeft, p = e.scrollTop, n = e.scrollWidth, k = e.scrollHeight, i = e.clientWidth, a = e.clientHeight, c = false, o, j = {l:Math.min(g + b, n - i), r:o = Math.max(g - b, 0), t:Math.max(p - b, 0), b:Math.min(p + b, k - a)}; j.d = j.b; j.u = j.t; m = m.substr(0, 1); if ((o = j[m]) > -1) { c = true; this.scrollTo(m == "l" || m == "r" ? "left" : "top", o, this.preanim(arguments, 2)) } return c }}); Ext.Element.addMethods(function () { var d = "visibility", b = "display", a = "hidden", h = "none", c = "x-masked", g = "x-masked-relative", e = Ext.Element.data; return{isVisible:function (i) { var j = !this.isStyle(d, a) && !this.isStyle(b, h), k = this.dom.parentNode; if (i !== true || !j) { return j } while (k && !(/^body/i.test(k.tagName))) { if (!Ext.fly(k, "_isVisible").isVisible()) { return false } k = k.parentNode } return true }, isDisplayed:function () { return !this.isStyle(b, h) }, enableDisplayMode:function (i) { this.setVisibilityMode(Ext.Element.DISPLAY); if (!Ext.isEmpty(i)) { e(this.dom, "originalDisplay", i) } return this }, mask:function (j, n) { var p = this, l = p.dom, o = Ext.DomHelper, m = "ext-el-mask-msg", i, q; if (!/^body/i.test(l.tagName) && p.getStyle("position") == "static") { p.addClass(g) } if (i = e(l, "maskMsg")) { i.remove() } if (i = e(l, "mask")) { i.remove() } q = o.append(l, {cls:"ext-el-mask"}, true); e(l, "mask", q); p.addClass(c); q.setDisplayed(true); if (typeof j == "string") { var k = o.append(l, {cls:m, cn:{tag:"div"}}, true); e(l, "maskMsg", k); k.dom.className = n ? m + " " + n : m; k.dom.firstChild.innerHTML = j; k.setDisplayed(true); k.center(p) } if (Ext.isIE && !(Ext.isIE7 && Ext.isStrict) && p.getStyle("height") == "auto") { q.setSize(undefined, p.getHeight()) } return q }, unmask:function () { var k = this, l = k.dom, i = e(l, "mask"), j = e(l, "maskMsg"); if (i) { if (j) { j.remove(); e(l, "maskMsg", undefined) } i.remove(); e(l, "mask", undefined); k.removeClass([c, g]) } }, isMasked:function () { var i = e(this.dom, "mask"); return i && i.isVisible() }, createShim:function () { var i = document.createElement("iframe"), j; i.frameBorder = "0"; i.className = "ext-shim"; i.src = Ext.SSL_SECURE_URL; j = Ext.get(this.dom.parentNode.insertBefore(i, this.dom)); j.autoBoxAdjust = false; return j }} }()); Ext.Element.addMethods({addKeyListener:function (b, d, c) { var a; if (typeof b != "object" || Ext.isArray(b)) { a = {key:b, fn:d, scope:c} } else { a = {key:b.key, shift:b.shift, ctrl:b.ctrl, alt:b.alt, fn:d, scope:c} } return new Ext.KeyMap(this, a) }, addKeyMap:function (a) { return new Ext.KeyMap(this, a) }}); Ext.CompositeElementLite.importElementMethods(); Ext.apply(Ext.CompositeElementLite.prototype, {addElements:function (c, a) { if (!c) { return this } if (typeof c == "string") { c = Ext.Element.selectorFunction(c, a) } var b = this.elements; Ext.each(c, function (d) { b.push(Ext.get(d)) }); return this }, first:function () { return this.item(0) }, last:function () { return this.item(this.getCount() - 1) }, contains:function (a) { return this.indexOf(a) != -1 }, removeElement:function (d, e) { var c = this, a = this.elements, b; Ext.each(d, function (g) { if ((b = (a[g] || a[g = c.indexOf(g)]))) { if (e) { if (b.dom) { b.remove() } else { Ext.removeNode(b) } } a.splice(g, 1) } }); return this }}); Ext.CompositeElement = Ext.extend(Ext.CompositeElementLite, {constructor:function (b, a) { this.elements = []; this.add(b, a) }, getElement:function (a) { return a }, transformElement:function (a) { return Ext.get(a) }}); Ext.Element.select = function (a, d, b) { var c; if (typeof a == "string") { c = Ext.Element.selectorFunction(a, b) } else { if (a.length !== undefined) { c = a } else { throw"Invalid selector" } } return(d === true) ? new Ext.CompositeElement(c) : new Ext.CompositeElementLite(c) }; Ext.select = Ext.Element.select; Ext.UpdateManager = Ext.Updater = Ext.extend(Ext.util.Observable, function () { var b = "beforeupdate", d = "update", c = "failure"; function a(h) { var i = this; i.transaction = null; if (h.argument.form && h.argument.reset) { try { h.argument.form.reset() } catch (j) { } } if (i.loadScripts) { i.renderer.render(i.el, h, i, g.createDelegate(i, [h])) } else { i.renderer.render(i.el, h, i); g.call(i, h) } } function g(h, i, j) { this.fireEvent(i || d, this.el, h); if (Ext.isFunction(h.argument.callback)) { h.argument.callback.call(h.argument.scope, this.el, Ext.isEmpty(j) ? true : false, h, h.argument.options) } } function e(h) { g.call(this, h, c, !!(this.transaction = null)) } return{constructor:function (i, h) { var j = this; i = Ext.get(i); if (!h && i.updateManager) { return i.updateManager } j.el = i; j.defaultUrl = null; j.addEvents(b, d, c); Ext.apply(j, Ext.Updater.defaults); j.transaction = null; j.refreshDelegate = j.refresh.createDelegate(j); j.updateDelegate = j.update.createDelegate(j); j.formUpdateDelegate = (j.formUpdate || function () { }).createDelegate(j); j.renderer = j.renderer || j.getDefaultRenderer(); Ext.Updater.superclass.constructor.call(j) }, setRenderer:function (h) { this.renderer = h }, getRenderer:function () { return this.renderer }, getDefaultRenderer:function () { return new Ext.Updater.BasicRenderer() }, setDefaultUrl:function (h) { this.defaultUrl = h }, getEl:function () { return this.el }, update:function (i, n, p, l) { var k = this, h, j; if (k.fireEvent(b, k.el, i, n) !== false) { if (Ext.isObject(i)) { h = i; i = h.url; n = n || h.params; p = p || h.callback; l = l || h.discardUrl; j = h.scope; if (!Ext.isEmpty(h.nocache)) { k.disableCaching = h.nocache } if (!Ext.isEmpty(h.text)) { k.indicatorText = '
' + h.text + "
" } if (!Ext.isEmpty(h.scripts)) { k.loadScripts = h.scripts } if (!Ext.isEmpty(h.timeout)) { k.timeout = h.timeout } } k.showLoading(); if (!l) { k.defaultUrl = i } if (Ext.isFunction(i)) { i = i.call(k) } var m = Ext.apply({}, {url:i, params:(Ext.isFunction(n) && j) ? n.createDelegate(j) : n, success:a, failure:e, scope:k, callback:undefined, timeout:(k.timeout * 1000), disableCaching:k.disableCaching, argument:{options:h, url:i, form:null, callback:p, scope:j || window, params:n}}, h); k.transaction = Ext.Ajax.request(m) } }, formUpdate:function (k, h, j, l) { var i = this; if (i.fireEvent(b, i.el, k, h) !== false) { if (Ext.isFunction(h)) { h = h.call(i) } k = Ext.getDom(k); i.transaction = Ext.Ajax.request({form:k, url:h, success:a, failure:e, scope:i, timeout:(i.timeout * 1000), argument:{url:h, form:k, callback:l, reset:j}}); i.showLoading.defer(1, i) } }, startAutoRefresh:function (i, j, l, m, h) { var k = this; if (h) { k.update(j || k.defaultUrl, l, m, true) } if (k.autoRefreshProcId) { clearInterval(k.autoRefreshProcId) } k.autoRefreshProcId = setInterval(k.update.createDelegate(k, [j || k.defaultUrl, l, m, true]), i * 1000) }, stopAutoRefresh:function () { if (this.autoRefreshProcId) { clearInterval(this.autoRefreshProcId); delete this.autoRefreshProcId } }, isAutoRefreshing:function () { return !!this.autoRefreshProcId }, showLoading:function () { if (this.showLoadIndicator) { this.el.dom.innerHTML = this.indicatorText } }, abort:function () { if (this.transaction) { Ext.Ajax.abort(this.transaction) } }, isUpdating:function () { return this.transaction ? Ext.Ajax.isLoading(this.transaction) : false }, refresh:function (h) { if (this.defaultUrl) { this.update(this.defaultUrl, null, h, true) } }} }()); Ext.Updater.defaults = {timeout:30, disableCaching:false, showLoadIndicator:true, indicatorText:'
Loading...
', loadScripts:false, sslBlankUrl:Ext.SSL_SECURE_URL}; Ext.Updater.updateElement = function (d, c, e, b) { var a = Ext.get(d).getUpdater(); Ext.apply(a, b); a.update(c, e, b ? b.callback : null) }; Ext.Updater.BasicRenderer = function () { }; Ext.Updater.BasicRenderer.prototype = {render:function (c, a, b, d) { c.update(a.responseText, b.loadScripts, d) }}; (function () { Date.useStrict = false; function b(d) { var c = Array.prototype.slice.call(arguments, 1); return d.replace(/\{(\d+)\}/g, function (e, g) { return c[g] }) } Date.formatCodeToRegex = function (d, c) { var e = Date.parseCodes[d]; if (e) { e = typeof e == "function" ? e() : e; Date.parseCodes[d] = e } return e ? Ext.applyIf({c:e.c ? b(e.c, c || "{0}") : e.c}, e) : {g:0, c:null, s:Ext.escapeRe(d)} }; var a = Date.formatCodeToRegex; Ext.apply(Date, {parseFunctions:{"M$":function (d, c) { var e = new RegExp("\\/Date\\(([-+])?(\\d+)(?:[+-]\\d{4})?\\)\\/"); var g = (d || "").match(e); return g ? new Date(((g[1] || "") + g[2]) * 1) : null }}, parseRegexes:[], formatFunctions:{"M$":function () { return"\\/Date(" + this.getTime() + ")\\/" }}, y2kYear:50, MILLI:"ms", SECOND:"s", MINUTE:"mi", HOUR:"h", DAY:"d", MONTH:"mo", YEAR:"y", defaults:{}, dayNames:["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], monthNames:["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], monthNumbers:{Jan:0, Feb:1, Mar:2, Apr:3, May:4, Jun:5, Jul:6, Aug:7, Sep:8, Oct:9, Nov:10, Dec:11}, getShortMonthName:function (c) { return Date.monthNames[c].substring(0, 3) }, getShortDayName:function (c) { return Date.dayNames[c].substring(0, 3) }, getMonthNumber:function (c) { return Date.monthNumbers[c.substring(0, 1).toUpperCase() + c.substring(1, 3).toLowerCase()] }, formatContainsHourInfo:(function () { var d = /(\\.)/g, c = /([gGhHisucUOPZ]|M\$)/; return function (e) { return c.test(e.replace(d, "")) } })(), formatCodes:{d:"String.leftPad(this.getDate(), 2, '0')", D:"Date.getShortDayName(this.getDay())", j:"this.getDate()", l:"Date.dayNames[this.getDay()]", N:"(this.getDay() ? this.getDay() : 7)", S:"this.getSuffix()", w:"this.getDay()", z:"this.getDayOfYear()", W:"String.leftPad(this.getWeekOfYear(), 2, '0')", F:"Date.monthNames[this.getMonth()]", m:"String.leftPad(this.getMonth() + 1, 2, '0')", M:"Date.getShortMonthName(this.getMonth())", n:"(this.getMonth() + 1)", t:"this.getDaysInMonth()", L:"(this.isLeapYear() ? 1 : 0)", o:"(this.getFullYear() + (this.getWeekOfYear() == 1 && this.getMonth() > 0 ? +1 : (this.getWeekOfYear() >= 52 && this.getMonth() < 11 ? -1 : 0)))", Y:"String.leftPad(this.getFullYear(), 4, '0')", y:"('' + this.getFullYear()).substring(2, 4)", a:"(this.getHours() < 12 ? 'am' : 'pm')", A:"(this.getHours() < 12 ? 'AM' : 'PM')", g:"((this.getHours() % 12) ? this.getHours() % 12 : 12)", G:"this.getHours()", h:"String.leftPad((this.getHours() % 12) ? this.getHours() % 12 : 12, 2, '0')", H:"String.leftPad(this.getHours(), 2, '0')", i:"String.leftPad(this.getMinutes(), 2, '0')", s:"String.leftPad(this.getSeconds(), 2, '0')", u:"String.leftPad(this.getMilliseconds(), 3, '0')", O:"this.getGMTOffset()", P:"this.getGMTOffset(true)", T:"this.getTimezone()", Z:"(this.getTimezoneOffset() * -60)", c:function () { for (var k = "Y-m-dTH:i:sP", h = [], g = 0, d = k.length; g < d; ++g) { var j = k.charAt(g); h.push(j == "T" ? "'T'" : Date.getFormatCode(j)) } return h.join(" + ") }, U:"Math.round(this.getTime() / 1000)"}, isValid:function (o, c, n, k, g, j, e) { k = k || 0; g = g || 0; j = j || 0; e = e || 0; var l = new Date(o < 100 ? 100 : o, c - 1, n, k, g, j, e).add(Date.YEAR, o < 100 ? o - 100 : 0); return o == l.getFullYear() && c == l.getMonth() + 1 && n == l.getDate() && k == l.getHours() && g == l.getMinutes() && j == l.getSeconds() && e == l.getMilliseconds() }, parseDate:function (d, g, c) { var e = Date.parseFunctions; if (e[g] == null) { Date.createParser(g) } return e[g](d, Ext.isDefined(c) ? c : Date.useStrict) }, getFormatCode:function (d) { var c = Date.formatCodes[d]; if (c) { c = typeof c == "function" ? c() : c; Date.formatCodes[d] = c } return c || ("'" + String.escape(d) + "'") }, createFormat:function (h) { var g = [], c = false, e = ""; for (var d = 0; d < h.length; ++d) { e = h.charAt(d); if (!c && e == "\\") { c = true } else { if (c) { c = false; g.push("'" + String.escape(e) + "'") } else { g.push(Date.getFormatCode(e)) } } } Date.formatFunctions[h] = new Function("return " + g.join("+")) }, createParser:function () { var c = ["var dt, y, m, d, h, i, s, ms, o, z, zz, u, v,", "def = Date.defaults,", "results = String(input).match(Date.parseRegexes[{0}]);", "if(results){", "{1}", "if(u != null){", "v = new Date(u * 1000);", "}else{", "dt = (new Date()).clearTime();", "y = Ext.num(y, Ext.num(def.y, dt.getFullYear()));", "m = Ext.num(m, Ext.num(def.m - 1, dt.getMonth()));", "d = Ext.num(d, Ext.num(def.d, dt.getDate()));", "h = Ext.num(h, Ext.num(def.h, dt.getHours()));", "i = Ext.num(i, Ext.num(def.i, dt.getMinutes()));", "s = Ext.num(s, Ext.num(def.s, dt.getSeconds()));", "ms = Ext.num(ms, Ext.num(def.ms, dt.getMilliseconds()));", "if(z >= 0 && y >= 0){", "v = new Date(y < 100 ? 100 : y, 0, 1, h, i, s, ms).add(Date.YEAR, y < 100 ? y - 100 : 0);", "v = !strict? v : (strict === true && (z <= 364 || (v.isLeapYear() && z <= 365))? v.add(Date.DAY, z) : null);", "}else if(strict === true && !Date.isValid(y, m + 1, d, h, i, s, ms)){", "v = null;", "}else{", "v = new Date(y < 100 ? 100 : y, m, d, h, i, s, ms).add(Date.YEAR, y < 100 ? y - 100 : 0);", "}", "}", "}", "if(v){", "if(zz != null){", "v = v.add(Date.SECOND, -v.getTimezoneOffset() * 60 - zz);", "}else if(o){", "v = v.add(Date.MINUTE, -v.getTimezoneOffset() + (sn == '+'? -1 : 1) * (hr * 60 + mn));", "}", "}", "return v;"].join("\n"); return function (m) { var e = Date.parseRegexes.length, o = 1, g = [], l = [], k = false, d = "", j = 0, h, n; for (; j < m.length; ++j) { d = m.charAt(j); if (!k && d == "\\") { k = true } else { if (k) { k = false; l.push(String.escape(d)) } else { h = a(d, o); o += h.g; l.push(h.s); if (h.g && h.c) { if (h.calcLast) { n = h.c } else { g.push(h.c) } } } } } if (n) { g.push(n) } Date.parseRegexes[e] = new RegExp("^" + l.join("") + "$", "i"); Date.parseFunctions[m] = new Function("input", "strict", b(c, e, g.join(""))) } }(), parseCodes:{d:{g:1, c:"d = parseInt(results[{0}], 10);\n", s:"(\\d{2})"}, j:{g:1, c:"d = parseInt(results[{0}], 10);\n", s:"(\\d{1,2})"}, D:function () { for (var c = [], d = 0; d < 7; c.push(Date.getShortDayName(d)), ++d) { } return{g:0, c:null, s:"(?:" + c.join("|") + ")"} }, l:function () { return{g:0, c:null, s:"(?:" + Date.dayNames.join("|") + ")"} }, N:{g:0, c:null, s:"[1-7]"}, S:{g:0, c:null, s:"(?:st|nd|rd|th)"}, w:{g:0, c:null, s:"[0-6]"}, z:{g:1, c:"z = parseInt(results[{0}], 10);\n", s:"(\\d{1,3})"}, W:{g:0, c:null, s:"(?:\\d{2})"}, F:function () { return{g:1, c:"m = parseInt(Date.getMonthNumber(results[{0}]), 10);\n", s:"(" + Date.monthNames.join("|") + ")"} }, M:function () { for (var c = [], d = 0; d < 12; c.push(Date.getShortMonthName(d)), ++d) { } return Ext.applyIf({s:"(" + c.join("|") + ")"}, a("F")) }, m:{g:1, c:"m = parseInt(results[{0}], 10) - 1;\n", s:"(\\d{2})"}, n:{g:1, c:"m = parseInt(results[{0}], 10) - 1;\n", s:"(\\d{1,2})"}, t:{g:0, c:null, s:"(?:\\d{2})"}, L:{g:0, c:null, s:"(?:1|0)"}, o:function () { return a("Y") }, Y:{g:1, c:"y = parseInt(results[{0}], 10);\n", s:"(\\d{4})"}, y:{g:1, c:"var ty = parseInt(results[{0}], 10);\ny = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n", s:"(\\d{1,2})"}, a:function () { return a("A") }, A:{calcLast:true, g:1, c:"if (/(am)/i.test(results[{0}])) {\nif (!h || h == 12) { h = 0; }\n} else { if (!h || h < 12) { h = (h || 0) + 12; }}", s:"(AM|PM|am|pm)"}, g:function () { return a("G") }, G:{g:1, c:"h = parseInt(results[{0}], 10);\n", s:"(\\d{1,2})"}, h:function () { return a("H") }, H:{g:1, c:"h = parseInt(results[{0}], 10);\n", s:"(\\d{2})"}, i:{g:1, c:"i = parseInt(results[{0}], 10);\n", s:"(\\d{2})"}, s:{g:1, c:"s = parseInt(results[{0}], 10);\n", s:"(\\d{2})"}, u:{g:1, c:"ms = results[{0}]; ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n", s:"(\\d+)"}, O:{g:1, c:["o = results[{0}];", "var sn = o.substring(0,1),", "hr = o.substring(1,3)*1 + Math.floor(o.substring(3,5) / 60),", "mn = o.substring(3,5) % 60;", "o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n"].join("\n"), s:"([+-]\\d{4})"}, P:{g:1, c:["o = results[{0}];", "var sn = o.substring(0,1),", "hr = o.substring(1,3)*1 + Math.floor(o.substring(4,6) / 60),", "mn = o.substring(4,6) % 60;", "o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n"].join("\n"), s:"([+-]\\d{2}:\\d{2})"}, T:{g:0, c:null, s:"[A-Z]{1,4}"}, Z:{g:1, c:"zz = results[{0}] * 1;\nzz = (-43200 <= zz && zz <= 50400)? zz : null;\n", s:"([+-]?\\d{1,5})"}, c:function () { var e = [], c = [a("Y", 1), a("m", 2), a("d", 3), a("h", 4), a("i", 5), a("s", 6), {c:"ms = results[7] || '0'; ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n"}, {c:["if(results[8]) {", "if(results[8] == 'Z'){", "zz = 0;", "}else if (results[8].indexOf(':') > -1){", a("P", 8).c, "}else{", a("O", 8).c, "}", "}"].join("\n")}]; for (var g = 0, d = c.length; g < d; ++g) { e.push(c[g].c) } return{g:1, c:e.join(""), s:[c[0].s, "(?:", "-", c[1].s, "(?:", "-", c[2].s, "(?:", "(?:T| )?", c[3].s, ":", c[4].s, "(?::", c[5].s, ")?", "(?:(?:\\.|,)(\\d+))?", "(Z|(?:[-+]\\d{2}(?::)?\\d{2}))?", ")?", ")?", ")?"].join("")} }, U:{g:1, c:"u = parseInt(results[{0}], 10);\n", s:"(-?\\d+)"}}}) }()); Ext.apply(Date.prototype, {dateFormat:function (a) { if (Date.formatFunctions[a] == null) { Date.createFormat(a) } return Date.formatFunctions[a].call(this) }, getTimezone:function () { return this.toString().replace(/^.* (?:\((.*)\)|([A-Z]{1,4})(?:[\-+][0-9]{4})?(?: -?\d+)?)$/, "$1$2").replace(/[^A-Z]/g, "") }, getGMTOffset:function (a) { return(this.getTimezoneOffset() > 0 ? "-" : "+") + String.leftPad(Math.floor(Math.abs(this.getTimezoneOffset()) / 60), 2, "0") + (a ? ":" : "") + String.leftPad(Math.abs(this.getTimezoneOffset() % 60), 2, "0") }, getDayOfYear:function () { var b = 0, e = this.clone(), a = this.getMonth(), c; for (c = 0, e.setDate(1), e.setMonth(0); c < a; e.setMonth(++c)) { b += e.getDaysInMonth() } return b + this.getDate() - 1 }, getWeekOfYear:function () { var a = 86400000, b = 7 * a; return function () { var d = Date.UTC(this.getFullYear(), this.getMonth(), this.getDate() + 3) / a, c = Math.floor(d / 7), e = new Date(c * b).getUTCFullYear(); return c - Math.floor(Date.UTC(e, 0, 7) / b) + 1 } }(), isLeapYear:function () { var a = this.getFullYear(); return !!((a & 3) == 0 && (a % 100 || (a % 400 == 0 && a))) }, getFirstDayOfMonth:function () { var a = (this.getDay() - (this.getDate() - 1)) % 7; return(a < 0) ? (a + 7) : a }, getLastDayOfMonth:function () { return this.getLastDateOfMonth().getDay() }, getFirstDateOfMonth:function () { return new Date(this.getFullYear(), this.getMonth(), 1) }, getLastDateOfMonth:function () { return new Date(this.getFullYear(), this.getMonth(), this.getDaysInMonth()) }, getDaysInMonth:function () { var a = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; return function () { var b = this.getMonth(); return b == 1 && this.isLeapYear() ? 29 : a[b] } }(), getSuffix:function () { switch (this.getDate()) { case 1: case 21: case 31: return"st"; case 2: case 22: return"nd"; case 3: case 23: return"rd"; default: return"th" } }, clone:function () { return new Date(this.getTime()) }, isDST:function () { return new Date(this.getFullYear(), 0, 1).getTimezoneOffset() != this.getTimezoneOffset() }, clearTime:function (g) { if (g) { return this.clone().clearTime() } var b = this.getDate(); this.setHours(0); this.setMinutes(0); this.setSeconds(0); this.setMilliseconds(0); if (this.getDate() != b) { for (var a = 1, e = this.add(Date.HOUR, a); e.getDate() != b; a++, e = this.add(Date.HOUR, a)) { } this.setDate(b); this.setHours(e.getHours()) } return this }, add:function (b, c) { var e = this.clone(); if (!b || c === 0) { return e } switch (b.toLowerCase()) { case Date.MILLI: e.setMilliseconds(this.getMilliseconds() + c); break; case Date.SECOND: e.setSeconds(this.getSeconds() + c); break; case Date.MINUTE: e.setMinutes(this.getMinutes() + c); break; case Date.HOUR: e.setHours(this.getHours() + c); break; case Date.DAY: e.setDate(this.getDate() + c); break; case Date.MONTH: var a = this.getDate(); if (a > 28) { a = Math.min(a, this.getFirstDateOfMonth().add("mo", c).getLastDateOfMonth().getDate()) } e.setDate(a); e.setMonth(this.getMonth() + c); break; case Date.YEAR: e.setFullYear(this.getFullYear() + c); break } return e }, between:function (c, a) { var b = this.getTime(); return c.getTime() <= b && b <= a.getTime() }}); Date.prototype.format = Date.prototype.dateFormat; if (Ext.isSafari && (navigator.userAgent.match(/WebKit\/(\d+)/)[1] || NaN) < 420) { Ext.apply(Date.prototype, {_xMonth:Date.prototype.setMonth, _xDate:Date.prototype.setDate, setMonth:function (a) { if (a <= -1) { var d = Math.ceil(-a), c = Math.ceil(d / 12), b = (d % 12) ? 12 - d % 12 : 0; this.setFullYear(this.getFullYear() - c); return this._xMonth(b) } else { return this._xMonth(a) } }, setDate:function (a) { return this.setTime(this.getTime() - (this.getDate() - a) * 86400000) }}) } Ext.util.MixedCollection = function (b, a) { this.items = []; this.map = {}; this.keys = []; this.length = 0; this.addEvents("clear", "add", "replace", "remove", "sort"); this.allowFunctions = b === true; if (a) { this.getKey = a } Ext.util.MixedCollection.superclass.constructor.call(this) }; Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, {allowFunctions:false, add:function (b, c) { if (arguments.length == 1) { c = arguments[0]; b = this.getKey(c) } if (typeof b != "undefined" && b !== null) { var a = this.map[b]; if (typeof a != "undefined") { return this.replace(b, c) } this.map[b] = c } this.length++; this.items.push(c); this.keys.push(b); this.fireEvent("add", this.length - 1, c, b); return c }, getKey:function (a) { return a.id }, replace:function (c, d) { if (arguments.length == 1) { d = arguments[0]; c = this.getKey(d) } var a = this.map[c]; if (typeof c == "undefined" || c === null || typeof a == "undefined") { return this.add(c, d) } var b = this.indexOfKey(c); this.items[b] = d; this.map[c] = d; this.fireEvent("replace", c, a, d); return d }, addAll:function (e) { if (arguments.length > 1 || Ext.isArray(e)) { var b = arguments.length > 1 ? arguments : e; for (var d = 0, a = b.length; d < a; d++) { this.add(b[d]) } } else { for (var c in e) { if (this.allowFunctions || typeof e[c] != "function") { this.add(c, e[c]) } } } }, each:function (e, d) { var b = [].concat(this.items); for (var c = 0, a = b.length; c < a; c++) { if (e.call(d || b[c], b[c], c, a) === false) { break } } }, eachKey:function (d, c) { for (var b = 0, a = this.keys.length; b < a; b++) { d.call(c || window, this.keys[b], this.items[b], b, a) } }, find:function (d, c) { for (var b = 0, a = this.items.length; b < a; b++) { if (d.call(c || window, this.items[b], this.keys[b])) { return this.items[b] } } return null }, insert:function (a, b, c) { if (arguments.length == 2) { c = arguments[1]; b = this.getKey(c) } if (this.containsKey(b)) { this.suspendEvents(); this.removeKey(b); this.resumeEvents() } if (a >= this.length) { return this.add(b, c) } this.length++; this.items.splice(a, 0, c); if (typeof b != "undefined" && b !== null) { this.map[b] = c } this.keys.splice(a, 0, b); this.fireEvent("add", a, c, b); return c }, remove:function (a) { return this.removeAt(this.indexOf(a)) }, removeAt:function (a) { if (a < this.length && a >= 0) { this.length--; var c = this.items[a]; this.items.splice(a, 1); var b = this.keys[a]; if (typeof b != "undefined") { delete this.map[b] } this.keys.splice(a, 1); this.fireEvent("remove", c, b); return c } return false }, removeKey:function (a) { return this.removeAt(this.indexOfKey(a)) }, getCount:function () { return this.length }, indexOf:function (a) { return this.items.indexOf(a) }, indexOfKey:function (a) { return this.keys.indexOf(a) }, item:function (b) { var a = this.map[b], c = a !== undefined ? a : (typeof b == "number") ? this.items[b] : undefined; return typeof c != "function" || this.allowFunctions ? c : null }, itemAt:function (a) { return this.items[a] }, key:function (a) { return this.map[a] }, contains:function (a) { return this.indexOf(a) != -1 }, containsKey:function (a) { return typeof this.map[a] != "undefined" }, clear:function () { this.length = 0; this.items = []; this.keys = []; this.map = {}; this.fireEvent("clear") }, first:function () { return this.items[0] }, last:function () { return this.items[this.length - 1] }, _sort:function (k, a, j) { var d, e, b = String(a).toUpperCase() == "DESC" ? -1 : 1, h = [], l = this.keys, g = this.items; j = j || function (i, c) { return i - c }; for (d = 0, e = g.length; d < e; d++) { h[h.length] = {key:l[d], value:g[d], index:d} } h.sort(function (i, c) { var m = j(i[k], c[k]) * b; if (m === 0) { m = (i.index < c.index ? -1 : 1) } return m }); for (d = 0, e = h.length; d < e; d++) { g[d] = h[d].value; l[d] = h[d].key } this.fireEvent("sort", this) }, sort:function (a, b) { this._sort("value", a, b) }, reorder:function (d) { this.suspendEvents(); var b = this.items, c = 0, g = b.length, a = [], e = [], h; for (h in d) { a[d[h]] = b[h] } for (c = 0; c < g; c++) { if (d[c] == undefined) { e.push(b[c]) } } for (c = 0; c < g; c++) { if (a[c] == undefined) { a[c] = e.shift() } } this.clear(); this.addAll(a); this.resumeEvents(); this.fireEvent("sort", this) }, keySort:function (a, b) { this._sort("key", a, b || function (d, c) { var g = String(d).toUpperCase(), e = String(c).toUpperCase(); return g > e ? 1 : (g < e ? -1 : 0) }) }, getRange:function (e, a) { var b = this.items; if (b.length < 1) { return[] } e = e || 0; a = Math.min(typeof a == "undefined" ? this.length - 1 : a, this.length - 1); var c, d = []; if (e <= a) { for (c = e; c <= a; c++) { d[d.length] = b[c] } } else { for (c = e; c >= a; c--) { d[d.length] = b[c] } } return d }, filter:function (c, b, d, a) { if (Ext.isEmpty(b, false)) { return this.clone() } b = this.createValueMatcher(b, d, a); return this.filterBy(function (e) { return e && b.test(e[c]) }) }, filterBy:function (g, e) { var h = new Ext.util.MixedCollection(); h.getKey = this.getKey; var b = this.keys, d = this.items; for (var c = 0, a = d.length; c < a; c++) { if (g.call(e || this, d[c], b[c])) { h.add(b[c], d[c]) } } return h }, findIndex:function (c, b, e, d, a) { if (Ext.isEmpty(b, false)) { return -1 } b = this.createValueMatcher(b, d, a); return this.findIndexBy(function (g) { return g && b.test(g[c]) }, null, e) }, findIndexBy:function (g, e, h) { var b = this.keys, d = this.items; for (var c = (h || 0), a = d.length; c < a; c++) { if (g.call(e || this, d[c], b[c])) { return c } } return -1 }, createValueMatcher:function (c, e, a, b) { if (!c.exec) { var d = Ext.escapeRe; c = String(c); if (e === true) { c = d(c) } else { c = "^" + d(c); if (b === true) { c += "$" } } c = new RegExp(c, a ? "" : "i") } return c }, clone:function () { var e = new Ext.util.MixedCollection(); var b = this.keys, d = this.items; for (var c = 0, a = d.length; c < a; c++) { e.add(b[c], d[c]) } e.getKey = this.getKey; return e }}); Ext.util.MixedCollection.prototype.get = Ext.util.MixedCollection.prototype.item; Ext.AbstractManager = Ext.extend(Object, {typeName:"type", constructor:function (a) { Ext.apply(this, a || {}); this.all = new Ext.util.MixedCollection(); this.types = {} }, get:function (a) { return this.all.get(a) }, register:function (a) { this.all.add(a) }, unregister:function (a) { this.all.remove(a) }, registerType:function (b, a) { this.types[b] = a; a[this.typeName] = b }, isRegistered:function (a) { return this.types[a] !== undefined }, create:function (a, d) { var b = a[this.typeName] || a.type || d, c = this.types[b]; if (c == undefined) { throw new Error(String.format("The '{0}' type has not been registered with this manager", b)) } return new c(a) }, onAvailable:function (d, c, b) { var a = this.all; a.on("add", function (e, g) { if (g.id == d) { c.call(b || g, g); a.un("add", c, b) } }) }}); Ext.util.Format = function () { var trimRe = /^\s+|\s+$/g, stripTagsRE = /<\/?[^>]+>/gi, stripScriptsRe = /(?:)((\n|\r|.)*?)(?:<\/script>)/ig, nl2brRe = /\r?\n/g; return{ellipsis:function (value, len, word) { if (value && value.length > len) { if (word) { var vs = value.substr(0, len - 2), index = Math.max(vs.lastIndexOf(" "), vs.lastIndexOf("."), vs.lastIndexOf("!"), vs.lastIndexOf("?")); if (index == -1 || index < (len - 15)) { return value.substr(0, len - 3) + "..." } else { return vs.substr(0, index) + "..." } } else { return value.substr(0, len - 3) + "..." } } return value }, undef:function (value) { return value !== undefined ? value : "" }, defaultValue:function (value, defaultValue) { return value !== undefined && value !== "" ? value : defaultValue }, htmlEncode:function (value) { return !value ? value : String(value).replace(/&/g, "&").replace(/>/g, ">").replace(/").replace(/</g, "<").replace(/"/g, '"').replace(/&/g, "&") }, trim:function (value) { return String(value).replace(trimRe, "") }, substr:function (value, start, length) { return String(value).substr(start, length) }, lowercase:function (value) { return String(value).toLowerCase() }, uppercase:function (value) { return String(value).toUpperCase() }, capitalize:function (value) { return !value ? value : value.charAt(0).toUpperCase() + value.substr(1).toLowerCase() }, call:function (value, fn) { if (arguments.length > 2) { var args = Array.prototype.slice.call(arguments, 2); args.unshift(value); return eval(fn).apply(window, args) } else { return eval(fn).call(window, value) } }, usMoney:function (v) { v = (Math.round((v - 0) * 100)) / 100; v = (v == Math.floor(v)) ? v + ".00" : ((v * 10 == Math.floor(v * 10)) ? v + "0" : v); v = String(v); var ps = v.split("."), whole = ps[0], sub = ps[1] ? "." + ps[1] : ".00", r = /(\d+)(\d{3})/; while (r.test(whole)) { whole = whole.replace(r, "$1,$2") } v = whole + sub; if (v.charAt(0) == "-") { return"-$" + v.substr(1) } return"$" + v }, date:function (v, format) { if (!v) { return"" } if (!Ext.isDate(v)) { v = new Date(Date.parse(v)) } return v.dateFormat(format || "m/d/Y") }, dateRenderer:function (format) { return function (v) { return Ext.util.Format.date(v, format) } }, stripTags:function (v) { return !v ? v : String(v).replace(stripTagsRE, "") }, stripScripts:function (v) { return !v ? v : String(v).replace(stripScriptsRe, "") }, fileSize:function (size) { if (size < 1024) { return size + " bytes" } else { if (size < 1048576) { return(Math.round(((size * 10) / 1024)) / 10) + " KB" } else { return(Math.round(((size * 10) / 1048576)) / 10) + " MB" } } }, math:function () { var fns = {}; return function (v, a) { if (!fns[a]) { fns[a] = new Function("v", "return v " + a + ";") } return fns[a](v) } }(), round:function (value, precision) { var result = Number(value); if (typeof precision == "number") { precision = Math.pow(10, precision); result = Math.round(value * precision) / precision } return result }, number:function (v, format) { if (!format) { return v } v = Ext.num(v, NaN); if (isNaN(v)) { return"" } var comma = ",", dec = ".", i18n = false, neg = v < 0; v = Math.abs(v); if (format.substr(format.length - 2) == "/i") { format = format.substr(0, format.length - 2); i18n = true; comma = "."; dec = "," } var hasComma = format.indexOf(comma) != -1, psplit = (i18n ? format.replace(/[^\d\,]/g, "") : format.replace(/[^\d\.]/g, "")).split(dec); if (1 < psplit.length) { v = v.toFixed(psplit[1].length) } else { if (2 < psplit.length) { throw ("NumberFormatException: invalid format, formats should have no more than 1 period: " + format) } else { v = v.toFixed(0) } } var fnum = v.toString(); psplit = fnum.split("."); if (hasComma) { var cnum = psplit[0], parr = [], j = cnum.length, m = Math.floor(j / 3), n = cnum.length % 3 || 3, i; for (i = 0; i < j; i += n) { if (i != 0) { n = 3 } parr[parr.length] = cnum.substr(i, n); m -= 1 } fnum = parr.join(comma); if (psplit[1]) { fnum += dec + psplit[1] } } else { if (psplit[1]) { fnum = psplit[0] + dec + psplit[1] } } return(neg ? "-" : "") + format.replace(/[\d,?\.?]+/, fnum) }, numberRenderer:function (format) { return function (v) { return Ext.util.Format.number(v, format) } }, plural:function (v, s, p) { return v + " " + (v == 1 ? s : (p ? p : s + "s")) }, nl2br:function (v) { return Ext.isEmpty(v) ? "" : v.replace(nl2brRe, "
") }} }(); Ext.XTemplate = function () { Ext.XTemplate.superclass.constructor.apply(this, arguments); var y = this, j = y.html, q = /]*>((?:(?=([^<]+))\2|<(?!tpl\b[^>]*>))*?)<\/tpl>/, d = /^]*?for="(.*?)"/, v = /^]*?if="(.*?)"/, x = /^]*?exec="(.*?)"/, r, p = 0, k = [], o = "values", w = "parent", l = "xindex", n = "xcount", e = "return ", c = "with(values){ "; j = ["", j, ""].join(""); while ((r = j.match(q))) { var b = r[0].match(d), a = r[0].match(v), A = r[0].match(x), g = null, h = null, t = null, z = b && b[1] ? b[1] : ""; if (a) { g = a && a[1] ? a[1] : null; if (g) { h = new Function(o, w, l, n, c + e + (Ext.util.Format.htmlDecode(g)) + "; }") } } if (A) { g = A && A[1] ? A[1] : null; if (g) { t = new Function(o, w, l, n, c + (Ext.util.Format.htmlDecode(g)) + "; }") } } if (z) { switch (z) { case".": z = new Function(o, w, c + e + o + "; }"); break; case"..": z = new Function(o, w, c + e + w + "; }"); break; default: z = new Function(o, w, c + e + z + "; }") } } k.push({id:p, target:z, exec:t, test:h, body:r[1] || ""}); j = j.replace(r[0], "{xtpl" + p + "}"); ++p } for (var u = k.length - 1; u >= 0; --u) { y.compileTpl(k[u]) } y.master = k[k.length - 1]; y.tpls = k }; Ext.extend(Ext.XTemplate, Ext.Template, {re:/\{([\w\-\.\#]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?(\s?[\+\-\*\\]\s?[\d\.\+\-\*\\\(\)]+)?\}/g, codeRe:/\{\[((?:\\\]|.|\n)*?)\]\}/g, applySubTemplate:function (a, k, j, d, c) { var h = this, g, m = h.tpls[a], l, b = []; if ((m.test && !m.test.call(h, k, j, d, c)) || (m.exec && m.exec.call(h, k, j, d, c))) { return"" } l = m.target ? m.target.call(h, k, j) : k; g = l.length; j = m.target ? k : j; if (m.target && Ext.isArray(l)) { for (var e = 0, g = l.length; e < g; e++) { b[b.length] = m.compiled.call(h, l[e], j, e + 1, g) } return b.join("") } return m.compiled.call(h, l, j, d, c) }, compileTpl:function (tpl) { var fm = Ext.util.Format, useF = this.disableFormats !== true, sep = Ext.isGecko ? "+" : ",", body; function fn(m, name, format, args, math) { if (name.substr(0, 4) == "xtpl") { return"'" + sep + "this.applySubTemplate(" + name.substr(4) + ", values, parent, xindex, xcount)" + sep + "'" } var v; if (name === ".") { v = "values" } else { if (name === "#") { v = "xindex" } else { if (name.indexOf(".") != -1) { v = name } else { v = "values['" + name + "']" } } } if (math) { v = "(" + v + math + ")" } if (format && useF) { args = args ? "," + args : ""; if (format.substr(0, 5) != "this.") { format = "fm." + format + "(" } else { format = 'this.call("' + format.substr(5) + '", '; args = ", values" } } else { args = ""; format = "(" + v + " === undefined ? '' : " } return"'" + sep + format + v + args + ")" + sep + "'" } function codeFn(m, code) { return"'" + sep + "(" + code.replace(/\\'/g, "'") + ")" + sep + "'" } if (Ext.isGecko) { body = "tpl.compiled = function(values, parent, xindex, xcount){ return '" + tpl.body.replace(/(\r\n|\n)/g, "\\n").replace(/'/g, "\\'").replace(this.re, fn).replace(this.codeRe, codeFn) + "';};" } else { body = ["tpl.compiled = function(values, parent, xindex, xcount){ return ['"]; body.push(tpl.body.replace(/(\r\n|\n)/g, "\\n").replace(/'/g, "\\'").replace(this.re, fn).replace(this.codeRe, codeFn)); body.push("'].join('');};"); body = body.join("") } eval(body); return this }, applyTemplate:function (a) { return this.master.compiled.call(this, a, {}, 1, 1) }, compile:function () { return this }}); Ext.XTemplate.prototype.apply = Ext.XTemplate.prototype.applyTemplate; Ext.XTemplate.from = function (a) { a = Ext.getDom(a); return new Ext.XTemplate(a.value || a.innerHTML) }; Ext.util.CSS = function () { var d = null; var c = document; var b = /(-[a-z])/gi; var a = function (e, g) { return g.charAt(1).toUpperCase() }; return{createStyleSheet:function (i, l) { var h; var g = c.getElementsByTagName("head")[0]; var k = c.createElement("style"); k.setAttribute("type", "text/css"); if (l) { k.setAttribute("id", l) } if (Ext.isIE) { g.appendChild(k); h = k.styleSheet; h.cssText = i } else { try { k.appendChild(c.createTextNode(i)) } catch (j) { k.cssText = i } g.appendChild(k); h = k.styleSheet ? k.styleSheet : (k.sheet || c.styleSheets[c.styleSheets.length - 1]) } this.cacheStyleSheet(h); return h }, removeStyleSheet:function (g) { var e = c.getElementById(g); if (e) { e.parentNode.removeChild(e) } }, swapStyleSheet:function (h, e) { this.removeStyleSheet(h); var g = c.createElement("link"); g.setAttribute("rel", "stylesheet"); g.setAttribute("type", "text/css"); g.setAttribute("id", h); g.setAttribute("href", e); c.getElementsByTagName("head")[0].appendChild(g) }, refreshCache:function () { return this.getRules(true) }, cacheStyleSheet:function (h) { if (!d) { d = {} } try { var k = h.cssRules || h.rules; for (var g = k.length - 1; g >= 0; --g) { d[k[g].selectorText.toLowerCase()] = k[g] } } catch (i) { } }, getRules:function (h) { if (d === null || h) { d = {}; var k = c.styleSheets; for (var j = 0, g = k.length; j < g; j++) { try { this.cacheStyleSheet(k[j]) } catch (l) { } } } return d }, getRule:function (e, h) { var g = this.getRules(h); if (!Ext.isArray(e)) { return g[e.toLowerCase()] } for (var j = 0; j < e.length; j++) { if (g[e[j]]) { return g[e[j].toLowerCase()] } } return null }, updateRule:function (e, j, h) { if (!Ext.isArray(e)) { var k = this.getRule(e); if (k) { k.style[j.replace(b, a)] = h; return true } } else { for (var g = 0; g < e.length; g++) { if (this.updateRule(e[g], j, h)) { return true } } } return false }} }(); Ext.util.ClickRepeater = Ext.extend(Ext.util.Observable, {constructor:function (b, a) { this.el = Ext.get(b); this.el.unselectable(); Ext.apply(this, a); this.addEvents("mousedown", "click", "mouseup"); if (!this.disabled) { this.disabled = true; this.enable() } if (this.handler) { this.on("click", this.handler, this.scope || this) } Ext.util.ClickRepeater.superclass.constructor.call(this) }, interval:20, delay:250, preventDefault:true, stopDefault:false, timer:0, enable:function () { if (this.disabled) { this.el.on("mousedown", this.handleMouseDown, this); if (Ext.isIE) { this.el.on("dblclick", this.handleDblClick, this) } if (this.preventDefault || this.stopDefault) { this.el.on("click", this.eventOptions, this) } } this.disabled = false }, disable:function (a) { if (a || !this.disabled) { clearTimeout(this.timer); if (this.pressClass) { this.el.removeClass(this.pressClass) } Ext.getDoc().un("mouseup", this.handleMouseUp, this); this.el.removeAllListeners() } this.disabled = true }, setDisabled:function (a) { this[a ? "disable" : "enable"]() }, eventOptions:function (a) { if (this.preventDefault) { a.preventDefault() } if (this.stopDefault) { a.stopEvent() } }, destroy:function () { this.disable(true); Ext.destroy(this.el); this.purgeListeners() }, handleDblClick:function (a) { clearTimeout(this.timer); this.el.blur(); this.fireEvent("mousedown", this, a); this.fireEvent("click", this, a) }, handleMouseDown:function (a) { clearTimeout(this.timer); this.el.blur(); if (this.pressClass) { this.el.addClass(this.pressClass) } this.mousedownTime = new Date(); Ext.getDoc().on("mouseup", this.handleMouseUp, this); this.el.on("mouseout", this.handleMouseOut, this); this.fireEvent("mousedown", this, a); this.fireEvent("click", this, a); if (this.accelerate) { this.delay = 400 } this.timer = this.click.defer(this.delay || this.interval, this, [a]) }, click:function (a) { this.fireEvent("click", this, a); this.timer = this.click.defer(this.accelerate ? this.easeOutExpo(this.mousedownTime.getElapsed(), 400, -390, 12000) : this.interval, this, [a]) }, easeOutExpo:function (e, a, h, g) { return(e == g) ? a + h : h * (-Math.pow(2, -10 * e / g) + 1) + a }, handleMouseOut:function () { clearTimeout(this.timer); if (this.pressClass) { this.el.removeClass(this.pressClass) } this.el.on("mouseover", this.handleMouseReturn, this) }, handleMouseReturn:function () { this.el.un("mouseover", this.handleMouseReturn, this); if (this.pressClass) { this.el.addClass(this.pressClass) } this.click() }, handleMouseUp:function (a) { clearTimeout(this.timer); this.el.un("mouseover", this.handleMouseReturn, this); this.el.un("mouseout", this.handleMouseOut, this); Ext.getDoc().un("mouseup", this.handleMouseUp, this); this.el.removeClass(this.pressClass); this.fireEvent("mouseup", this, a) }}); Ext.KeyNav = function (b, a) { this.el = Ext.get(b); Ext.apply(this, a); if (!this.disabled) { this.disabled = true; this.enable() } }; Ext.KeyNav.prototype = {disabled:false, defaultEventAction:"stopEvent", forceKeyDown:false, relay:function (c) { var a = c.getKey(), b = this.keyToHandler[a]; if (b && this[b]) { if (this.doRelay(c, this[b], b) !== true) { c[this.defaultEventAction]() } } }, doRelay:function (c, b, a) { return b.call(this.scope || this, c, a) }, enter:false, left:false, right:false, up:false, down:false, tab:false, esc:false, pageUp:false, pageDown:false, del:false, home:false, end:false, space:false, keyToHandler:{37:"left", 39:"right", 38:"up", 40:"down", 33:"pageUp", 34:"pageDown", 46:"del", 36:"home", 35:"end", 13:"enter", 27:"esc", 9:"tab", 32:"space"}, stopKeyUp:function (b) { var a = b.getKey(); if (a >= 37 && a <= 40) { b.stopEvent() } }, destroy:function () { this.disable() }, enable:function () { if (this.disabled) { if (Ext.isSafari2) { this.el.on("keyup", this.stopKeyUp, this) } this.el.on(this.isKeydown() ? "keydown" : "keypress", this.relay, this); this.disabled = false } }, disable:function () { if (!this.disabled) { if (Ext.isSafari2) { this.el.un("keyup", this.stopKeyUp, this) } this.el.un(this.isKeydown() ? "keydown" : "keypress", this.relay, this); this.disabled = true } }, setDisabled:function (a) { this[a ? "disable" : "enable"]() }, isKeydown:function () { return this.forceKeyDown || Ext.EventManager.useKeydown }}; Ext.KeyMap = function (c, b, a) { this.el = Ext.get(c); this.eventName = a || "keydown"; this.bindings = []; if (b) { this.addBinding(b) } this.enable() }; Ext.KeyMap.prototype = {stopEvent:false, addBinding:function (b) { if (Ext.isArray(b)) { Ext.each(b, function (j) { this.addBinding(j) }, this); return } var k = b.key, g = b.fn || b.handler, l = b.scope; if (b.stopEvent) { this.stopEvent = b.stopEvent } if (typeof k == "string") { var h = []; var e = k.toUpperCase(); for (var c = 0, d = e.length; c < d; c++) { h.push(e.charCodeAt(c)) } k = h } var a = Ext.isArray(k); var i = function (o) { if (this.checkModifiers(b, o)) { var m = o.getKey(); if (a) { for (var n = 0, j = k.length; n < j; n++) { if (k[n] == m) { if (this.stopEvent) { o.stopEvent() } g.call(l || window, m, o); return } } } else { if (m == k) { if (this.stopEvent) { o.stopEvent() } g.call(l || window, m, o) } } } }; this.bindings.push(i) }, checkModifiers:function (b, h) { var j, d, g = ["shift", "ctrl", "alt"]; for (var c = 0, a = g.length; c < a; ++c) { d = g[c]; j = b[d]; if (!(j === undefined || (j === h[d + "Key"]))) { return false } } return true }, on:function (b, d, c) { var h, a, e, g; if (typeof b == "object" && !Ext.isArray(b)) { h = b.key; a = b.shift; e = b.ctrl; g = b.alt } else { h = b } this.addBinding({key:h, shift:a, ctrl:e, alt:g, fn:d, scope:c}) }, handleKeyDown:function (g) { if (this.enabled) { var c = this.bindings; for (var d = 0, a = c.length; d < a; d++) { c[d].call(this, g) } } }, isEnabled:function () { return this.enabled }, enable:function () { if (!this.enabled) { this.el.on(this.eventName, this.handleKeyDown, this); this.enabled = true } }, disable:function () { if (this.enabled) { this.el.removeListener(this.eventName, this.handleKeyDown, this); this.enabled = false } }, setDisabled:function (a) { this[a ? "disable" : "enable"]() }}; Ext.util.TextMetrics = function () { var a; return{measure:function (b, c, d) { if (!a) { a = Ext.util.TextMetrics.Instance(b, d) } a.bind(b); a.setFixedWidth(d || "auto"); return a.getSize(c) }, createInstance:function (b, c) { return Ext.util.TextMetrics.Instance(b, c) }} }(); Ext.util.TextMetrics.Instance = function (b, d) { var c = new Ext.Element(document.createElement("div")); document.body.appendChild(c.dom); c.position("absolute"); c.setLeftTop(-1000, -1000); c.hide(); if (d) { c.setWidth(d) } var a = {getSize:function (g) { c.update(g); var e = c.getSize(); c.update(""); return e }, bind:function (e) { c.setStyle(Ext.fly(e).getStyles("font-size", "font-style", "font-weight", "font-family", "line-height", "text-transform", "letter-spacing")) }, setFixedWidth:function (e) { c.setWidth(e) }, getWidth:function (e) { c.dom.style.width = "auto"; return this.getSize(e).width }, getHeight:function (e) { return this.getSize(e).height }}; a.bind(b); return a }; Ext.Element.addMethods({getTextWidth:function (c, b, a) { return(Ext.util.TextMetrics.measure(this.dom, Ext.value(c, this.dom.innerHTML, true)).width).constrain(b || 0, a || 1000000) }}); Ext.util.Cookies = {set:function (c, e) { var a = arguments; var i = arguments.length; var b = (i > 2) ? a[2] : null; var h = (i > 3) ? a[3] : "/"; var d = (i > 4) ? a[4] : null; var g = (i > 5) ? a[5] : false; document.cookie = c + "=" + escape(e) + ((b === null) ? "" : ("; expires=" + b.toGMTString())) + ((h === null) ? "" : ("; path=" + h)) + ((d === null) ? "" : ("; domain=" + d)) + ((g === true) ? "; secure" : "") }, get:function (d) { var b = d + "="; var g = b.length; var a = document.cookie.length; var e = 0; var c = 0; while (e < a) { c = e + g; if (document.cookie.substring(e, c) == b) { return Ext.util.Cookies.getCookieVal(c) } e = document.cookie.indexOf(" ", e) + 1; if (e === 0) { break } } return null }, clear:function (a) { if (Ext.util.Cookies.get(a)) { document.cookie = a + "=; expires=Thu, 01-Jan-70 00:00:01 GMT" } }, getCookieVal:function (b) { var a = document.cookie.indexOf(";", b); if (a == -1) { a = document.cookie.length } return unescape(document.cookie.substring(b, a)) }}; Ext.handleError = function (a) { throw a }; Ext.Error = function (a) { this.message = (this.lang[a]) ? this.lang[a] : a }; Ext.Error.prototype = new Error(); Ext.apply(Ext.Error.prototype, {lang:{}, name:"Ext.Error", getName:function () { return this.name }, getMessage:function () { return this.message }, toJson:function () { return Ext.encode(this) }}); Ext.ComponentMgr = function () { var c = new Ext.util.MixedCollection(); var b = {}; var a = {}; return{register:function (d) { c.add(d) }, unregister:function (d) { c.remove(d) }, get:function (d) { return c.get(d) }, onAvailable:function (g, e, d) { c.on("add", function (h, i) { if (i.id == g) { e.call(d || i, i); c.un("add", e, d) } }) }, all:c, types:b, ptypes:a, isRegistered:function (d) { return b[d] !== undefined }, isPluginRegistered:function (d) { return a[d] !== undefined }, registerType:function (e, d) { b[e] = d; d.xtype = e }, create:function (d, e) { return d.render ? d : new b[d.xtype || e](d) }, registerPlugin:function (e, d) { a[e] = d; d.ptype = e }, createPlugin:function (e, g) { var d = a[e.ptype || g]; if (d.init) { return d } else { return new d(e) } }} }(); Ext.reg = Ext.ComponentMgr.registerType; Ext.preg = Ext.ComponentMgr.registerPlugin; Ext.create = Ext.ComponentMgr.create; Ext.Component = function (b) { b = b || {}; if (b.initialConfig) { if (b.isAction) { this.baseAction = b } b = b.initialConfig } else { if (b.tagName || b.dom || Ext.isString(b)) { b = {applyTo:b, id:b.id || b} } } this.initialConfig = b; Ext.apply(this, b); this.addEvents("added", "disable", "enable", "beforeshow", "show", "beforehide", "hide", "removed", "beforerender", "render", "afterrender", "beforedestroy", "destroy", "beforestaterestore", "staterestore", "beforestatesave", "statesave"); this.getId(); Ext.ComponentMgr.register(this); Ext.Component.superclass.constructor.call(this); if (this.baseAction) { this.baseAction.addComponent(this) } this.initComponent(); if (this.plugins) { if (Ext.isArray(this.plugins)) { for (var c = 0, a = this.plugins.length; c < a; c++) { this.plugins[c] = this.initPlugin(this.plugins[c]) } } else { this.plugins = this.initPlugin(this.plugins) } } if (this.stateful !== false) { this.initState() } if (this.applyTo) { this.applyToMarkup(this.applyTo); delete this.applyTo } else { if (this.renderTo) { this.render(this.renderTo); delete this.renderTo } } }; Ext.Component.AUTO_ID = 1000; Ext.extend(Ext.Component, Ext.util.Observable, {disabled:false, hidden:false, autoEl:"div", disabledClass:"x-item-disabled", allowDomMove:true, autoShow:false, hideMode:"display", hideParent:false, rendered:false, tplWriteMode:"overwrite", bubbleEvents:[], ctype:"Ext.Component", actionMode:"el", getActionEl:function () { return this[this.actionMode] }, initPlugin:function (a) { if (a.ptype && !Ext.isFunction(a.init)) { a = Ext.ComponentMgr.createPlugin(a) } else { if (Ext.isString(a)) { a = Ext.ComponentMgr.createPlugin({ptype:a}) } } a.init(this); return a }, initComponent:function () { if (this.listeners) { this.on(this.listeners); delete this.listeners } this.enableBubble(this.bubbleEvents) }, render:function (b, a) { if (!this.rendered && this.fireEvent("beforerender", this) !== false) { if (!b && this.el) { this.el = Ext.get(this.el); b = this.el.dom.parentNode; this.allowDomMove = false } this.container = Ext.get(b); if (this.ctCls) { this.container.addClass(this.ctCls) } this.rendered = true; if (a !== undefined) { if (Ext.isNumber(a)) { a = this.container.dom.childNodes[a] } else { a = Ext.getDom(a) } } this.onRender(this.container, a || null); if (this.autoShow) { this.el.removeClass(["x-hidden", "x-hide-" + this.hideMode]) } if (this.cls) { this.el.addClass(this.cls); delete this.cls } if (this.style) { this.el.applyStyles(this.style); delete this.style } if (this.overCls) { this.el.addClassOnOver(this.overCls) } this.fireEvent("render", this); var c = this.getContentTarget(); if (this.html) { c.update(Ext.DomHelper.markup(this.html)); delete this.html } if (this.contentEl) { var d = Ext.getDom(this.contentEl); Ext.fly(d).removeClass(["x-hidden", "x-hide-display"]); c.appendChild(d) } if (this.tpl) { if (!this.tpl.compile) { this.tpl = new Ext.XTemplate(this.tpl) } if (this.data) { this.tpl[this.tplWriteMode](c, this.data); delete this.data } } this.afterRender(this.container); if (this.hidden) { this.doHide() } if (this.disabled) { this.disable(true) } if (this.stateful !== false) { this.initStateEvents() } this.fireEvent("afterrender", this) } return this }, update:function (b, d, a) { var c = this.getContentTarget(); if (this.tpl && typeof b !== "string") { this.tpl[this.tplWriteMode](c, b || {}) } else { var e = Ext.isObject(b) ? Ext.DomHelper.markup(b) : b; c.update(e, d, a) } }, onAdded:function (a, b) { this.ownerCt = a; this.initRef(); this.fireEvent("added", this, a, b) }, onRemoved:function () { this.removeRef(); this.fireEvent("removed", this, this.ownerCt); delete this.ownerCt }, initRef:function () { if (this.ref && !this.refOwner) { var d = this.ref.split("/"), c = d.length, b = 0, a = this; while (a && b < c) { a = a.ownerCt; ++b } if (a) { a[this.refName = d[--b]] = this; this.refOwner = a } } }, removeRef:function () { if (this.refOwner && this.refName) { delete this.refOwner[this.refName]; delete this.refOwner } }, initState:function () { if (Ext.state.Manager) { var b = this.getStateId(); if (b) { var a = Ext.state.Manager.get(b); if (a) { if (this.fireEvent("beforestaterestore", this, a) !== false) { this.applyState(Ext.apply({}, a)); this.fireEvent("staterestore", this, a) } } } } }, getStateId:function () { return this.stateId || ((/^(ext-comp-|ext-gen)/).test(String(this.id)) ? null : this.id) }, initStateEvents:function () { if (this.stateEvents) { for (var a = 0, b; b = this.stateEvents[a]; a++) { this.on(b, this.saveState, this, {delay:100}) } } }, applyState:function (a) { if (a) { Ext.apply(this, a) } }, getState:function () { return null }, saveState:function () { if (Ext.state.Manager && this.stateful !== false) { var b = this.getStateId(); if (b) { var a = this.getState(); if (this.fireEvent("beforestatesave", this, a) !== false) { Ext.state.Manager.set(b, a); this.fireEvent("statesave", this, a) } } } }, applyToMarkup:function (a) { this.allowDomMove = false; this.el = Ext.get(a); this.render(this.el.dom.parentNode) }, addClass:function (a) { if (this.el) { this.el.addClass(a) } else { this.cls = this.cls ? this.cls + " " + a : a } return this }, removeClass:function (a) { if (this.el) { this.el.removeClass(a) } else { if (this.cls) { this.cls = this.cls.split(" ").remove(a).join(" ") } } return this }, onRender:function (b, a) { if (!this.el && this.autoEl) { if (Ext.isString(this.autoEl)) { this.el = document.createElement(this.autoEl) } else { var c = document.createElement("div"); Ext.DomHelper.overwrite(c, this.autoEl); this.el = c.firstChild } if (!this.el.id) { this.el.id = this.getId() } } if (this.el) { this.el = Ext.get(this.el); if (this.allowDomMove !== false) { b.dom.insertBefore(this.el.dom, a); if (c) { Ext.removeNode(c); c = null } } } }, getAutoCreate:function () { var a = Ext.isObject(this.autoCreate) ? this.autoCreate : Ext.apply({}, this.defaultAutoCreate); if (this.id && !a.id) { a.id = this.id } return a }, afterRender:Ext.emptyFn, destroy:function () { if (!this.isDestroyed) { if (this.fireEvent("beforedestroy", this) !== false) { this.destroying = true; this.beforeDestroy(); if (this.ownerCt && this.ownerCt.remove) { this.ownerCt.remove(this, false) } if (this.rendered) { this.el.remove(); if (this.actionMode == "container" || this.removeMode == "container") { this.container.remove() } } if (this.focusTask && this.focusTask.cancel) { this.focusTask.cancel() } this.onDestroy(); Ext.ComponentMgr.unregister(this); this.fireEvent("destroy", this); this.purgeListeners(); this.destroying = false; this.isDestroyed = true } } }, deleteMembers:function () { var b = arguments; for (var c = 0, a = b.length; c < a; ++c) { delete this[b[c]] } }, beforeDestroy:Ext.emptyFn, onDestroy:Ext.emptyFn, getEl:function () { return this.el }, getContentTarget:function () { return this.el }, getId:function () { return this.id || (this.id = "ext-comp-" + (++Ext.Component.AUTO_ID)) }, getItemId:function () { return this.itemId || this.getId() }, focus:function (b, a) { if (a) { this.focusTask = new Ext.util.DelayedTask(this.focus, this, [b, false]); this.focusTask.delay(Ext.isNumber(a) ? a : 10); return this } if (this.rendered && !this.isDestroyed) { this.el.focus(); if (b === true) { this.el.dom.select() } } return this }, blur:function () { if (this.rendered) { this.el.blur() } return this }, disable:function (a) { if (this.rendered) { this.onDisable() } this.disabled = true; if (a !== true) { this.fireEvent("disable", this) } return this }, onDisable:function () { this.getActionEl().addClass(this.disabledClass); this.el.dom.disabled = true }, enable:function () { if (this.rendered) { this.onEnable() } this.disabled = false; this.fireEvent("enable", this); return this }, onEnable:function () { this.getActionEl().removeClass(this.disabledClass); this.el.dom.disabled = false }, setDisabled:function (a) { return this[a ? "disable" : "enable"]() }, show:function () { if (this.fireEvent("beforeshow", this) !== false) { this.hidden = false; if (this.autoRender) { this.render(Ext.isBoolean(this.autoRender) ? Ext.getBody() : this.autoRender) } if (this.rendered) { this.onShow() } this.fireEvent("show", this) } return this }, onShow:function () { this.getVisibilityEl().removeClass("x-hide-" + this.hideMode) }, hide:function () { if (this.fireEvent("beforehide", this) !== false) { this.doHide(); this.fireEvent("hide", this) } return this }, doHide:function () { this.hidden = true; if (this.rendered) { this.onHide() } }, onHide:function () { this.getVisibilityEl().addClass("x-hide-" + this.hideMode) }, getVisibilityEl:function () { return this.hideParent ? this.container : this.getActionEl() }, setVisible:function (a) { return this[a ? "show" : "hide"]() }, isVisible:function () { return this.rendered && this.getVisibilityEl().isVisible() }, cloneConfig:function (b) { b = b || {}; var c = b.id || Ext.id(); var a = Ext.applyIf(b, this.initialConfig); a.id = c; return new this.constructor(a) }, getXType:function () { return this.constructor.xtype }, isXType:function (b, a) { if (Ext.isFunction(b)) { b = b.xtype } else { if (Ext.isObject(b)) { b = b.constructor.xtype } } return !a ? ("/" + this.getXTypes() + "/").indexOf("/" + b + "/") != -1 : this.constructor.xtype == b }, getXTypes:function () { var a = this.constructor; if (!a.xtypes) { var d = [], b = this; while (b && b.constructor.xtype) { d.unshift(b.constructor.xtype); b = b.constructor.superclass } a.xtypeChain = d; a.xtypes = d.join("/") } return a.xtypes }, findParentBy:function (a) { for (var b = this.ownerCt; (b != null) && !a(b, this); b = b.ownerCt) { } return b || null }, findParentByType:function (b, a) { return this.findParentBy(function (d) { return d.isXType(b, a) }) }, bubble:function (c, b, a) { var d = this; while (d) { if (c.apply(b || d, a || [d]) === false) { break } d = d.ownerCt } return this }, getPositionEl:function () { return this.positionEl || this.el }, purgeListeners:function () { Ext.Component.superclass.purgeListeners.call(this); if (this.mons) { this.on("beforedestroy", this.clearMons, this, {single:true}) } }, clearMons:function () { Ext.each(this.mons, function (a) { a.item.un(a.ename, a.fn, a.scope) }, this); this.mons = [] }, createMons:function () { if (!this.mons) { this.mons = []; this.on("beforedestroy", this.clearMons, this, {single:true}) } }, mon:function (g, b, d, c, a) { this.createMons(); if (Ext.isObject(b)) { var j = /^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/; var i = b; for (var h in i) { if (j.test(h)) { continue } if (Ext.isFunction(i[h])) { this.mons.push({item:g, ename:h, fn:i[h], scope:i.scope}); g.on(h, i[h], i.scope, i) } else { this.mons.push({item:g, ename:h, fn:i[h], scope:i.scope}); g.on(h, i[h]) } } return } this.mons.push({item:g, ename:b, fn:d, scope:c}); g.on(b, d, c, a) }, mun:function (h, c, g, e) { var j, d; this.createMons(); for (var b = 0, a = this.mons.length; b < a; ++b) { d = this.mons[b]; if (h === d.item && c == d.ename && g === d.fn && e === d.scope) { this.mons.splice(b, 1); h.un(c, g, e); j = true; break } } return j }, nextSibling:function () { if (this.ownerCt) { var a = this.ownerCt.items.indexOf(this); if (a != -1 && a + 1 < this.ownerCt.items.getCount()) { return this.ownerCt.items.itemAt(a + 1) } } return null }, previousSibling:function () { if (this.ownerCt) { var a = this.ownerCt.items.indexOf(this); if (a > 0) { return this.ownerCt.items.itemAt(a - 1) } } return null }, getBubbleTarget:function () { return this.ownerCt }}); Ext.reg("component", Ext.Component); Ext.Action = Ext.extend(Object, {constructor:function (a) { this.initialConfig = a; this.itemId = a.itemId = (a.itemId || a.id || Ext.id()); this.items = [] }, isAction:true, setText:function (a) { this.initialConfig.text = a; this.callEach("setText", [a]) }, getText:function () { return this.initialConfig.text }, setIconClass:function (a) { this.initialConfig.iconCls = a; this.callEach("setIconClass", [a]) }, getIconClass:function () { return this.initialConfig.iconCls }, setDisabled:function (a) { this.initialConfig.disabled = a; this.callEach("setDisabled", [a]) }, enable:function () { this.setDisabled(false) }, disable:function () { this.setDisabled(true) }, isDisabled:function () { return this.initialConfig.disabled }, setHidden:function (a) { this.initialConfig.hidden = a; this.callEach("setVisible", [!a]) }, show:function () { this.setHidden(false) }, hide:function () { this.setHidden(true) }, isHidden:function () { return this.initialConfig.hidden }, setHandler:function (b, a) { this.initialConfig.handler = b; this.initialConfig.scope = a; this.callEach("setHandler", [b, a]) }, each:function (b, a) { Ext.each(this.items, b, a) }, callEach:function (e, b) { var d = this.items; for (var c = 0, a = d.length; c < a; c++) { d[c][e].apply(d[c], b) } }, addComponent:function (a) { this.items.push(a); a.on("destroy", this.removeComponent, this) }, removeComponent:function (a) { this.items.remove(a) }, execute:function () { this.initialConfig.handler.apply(this.initialConfig.scope || window, arguments) }}); (function () { Ext.Layer = function (d, c) { d = d || {}; var e = Ext.DomHelper, h = d.parentEl, g = h ? Ext.getDom(h) : document.body; if (c) { this.dom = Ext.getDom(c) } if (!this.dom) { var i = d.dh || {tag:"div", cls:"x-layer"}; this.dom = e.append(g, i) } if (d.cls) { this.addClass(d.cls) } this.constrain = d.constrain !== false; this.setVisibilityMode(Ext.Element.VISIBILITY); if (d.id) { this.id = this.dom.id = d.id } else { this.id = Ext.id(this.dom) } this.zindex = d.zindex || this.getZIndex(); this.position("absolute", this.zindex); if (d.shadow) { this.shadowOffset = d.shadowOffset || 4; this.shadow = new Ext.Shadow({offset:this.shadowOffset, mode:d.shadow}) } else { this.shadowOffset = 0 } this.useShim = d.shim !== false && Ext.useShims; this.useDisplay = d.useDisplay; this.hide() }; var a = Ext.Element.prototype; var b = []; Ext.extend(Ext.Layer, Ext.Element, {getZIndex:function () { return this.zindex || parseInt((this.getShim() || this).getStyle("z-index"), 10) || 11000 }, getShim:function () { if (!this.useShim) { return null } if (this.shim) { return this.shim } var d = b.shift(); if (!d) { d = this.createShim(); d.enableDisplayMode("block"); d.dom.style.display = "none"; d.dom.style.visibility = "visible" } var c = this.dom.parentNode; if (d.dom.parentNode != c) { c.insertBefore(d.dom, this.dom) } d.setStyle("z-index", this.getZIndex() - 2); this.shim = d; return d }, hideShim:function () { if (this.shim) { this.shim.setDisplayed(false); b.push(this.shim); delete this.shim } }, disableShadow:function () { if (this.shadow) { this.shadowDisabled = true; this.shadow.hide(); this.lastShadowOffset = this.shadowOffset; this.shadowOffset = 0 } }, enableShadow:function (c) { if (this.shadow) { this.shadowDisabled = false; if (Ext.isDefined(this.lastShadowOffset)) { this.shadowOffset = this.lastShadowOffset; delete this.lastShadowOffset } if (c) { this.sync(true) } } }, sync:function (d) { var n = this.shadow; if (!this.updating && this.isVisible() && (n || this.useShim)) { var i = this.getShim(), m = this.getWidth(), j = this.getHeight(), e = this.getLeft(true), o = this.getTop(true); if (n && !this.shadowDisabled) { if (d && !n.isVisible()) { n.show(this) } else { n.realign(e, o, m, j) } if (i) { if (d) { i.show() } var k = n.el.getXY(), g = i.dom.style, c = n.el.getSize(); g.left = (k[0]) + "px"; g.top = (k[1]) + "px"; g.width = (c.width) + "px"; g.height = (c.height) + "px" } } else { if (i) { if (d) { i.show() } i.setSize(m, j); i.setLeftTop(e, o) } } } }, destroy:function () { this.hideShim(); if (this.shadow) { this.shadow.hide() } this.removeAllListeners(); Ext.removeNode(this.dom); delete this.dom }, remove:function () { this.destroy() }, beginUpdate:function () { this.updating = true }, endUpdate:function () { this.updating = false; this.sync(true) }, hideUnders:function (c) { if (this.shadow) { this.shadow.hide() } this.hideShim() }, constrainXY:function () { if (this.constrain) { var j = Ext.lib.Dom.getViewWidth(), d = Ext.lib.Dom.getViewHeight(); var o = Ext.getDoc().getScroll(); var n = this.getXY(); var k = n[0], i = n[1]; var c = this.shadowOffset; var l = this.dom.offsetWidth + c, e = this.dom.offsetHeight + c; var g = false; if ((k + l) > j + o.left) { k = j - l - c; g = true } if ((i + e) > d + o.top) { i = d - e - c; g = true } if (k < o.left) { k = o.left; g = true } if (i < o.top) { i = o.top; g = true } if (g) { if (this.avoidY) { var m = this.avoidY; if (i <= m && (i + e) >= m) { i = m - e - 5 } } n = [k, i]; this.storeXY(n); a.setXY.call(this, n); this.sync() } } return this }, getConstrainOffset:function () { return this.shadowOffset }, isVisible:function () { return this.visible }, showAction:function () { this.visible = true; if (this.useDisplay === true) { this.setDisplayed("") } else { if (this.lastXY) { a.setXY.call(this, this.lastXY) } else { if (this.lastLT) { a.setLeftTop.call(this, this.lastLT[0], this.lastLT[1]) } } } }, hideAction:function () { this.visible = false; if (this.useDisplay === true) { this.setDisplayed(false) } else { this.setLeftTop(-10000, -10000) } }, setVisible:function (i, h, k, l, j) { if (i) { this.showAction() } if (h && i) { var g = function () { this.sync(true); if (l) { l() } }.createDelegate(this); a.setVisible.call(this, true, true, k, g, j) } else { if (!i) { this.hideUnders(true) } var g = l; if (h) { g = function () { this.hideAction(); if (l) { l() } }.createDelegate(this) } a.setVisible.call(this, i, h, k, g, j); if (i) { this.sync(true) } else { if (!h) { this.hideAction() } } } return this }, storeXY:function (c) { delete this.lastLT; this.lastXY = c }, storeLeftTop:function (d, c) { delete this.lastXY; this.lastLT = [d, c] }, beforeFx:function () { this.beforeAction(); return Ext.Layer.superclass.beforeFx.apply(this, arguments) }, afterFx:function () { Ext.Layer.superclass.afterFx.apply(this, arguments); this.sync(this.isVisible()) }, beforeAction:function () { if (!this.updating && this.shadow) { this.shadow.hide() } }, setLeft:function (c) { this.storeLeftTop(c, this.getTop(true)); a.setLeft.apply(this, arguments); this.sync(); return this }, setTop:function (c) { this.storeLeftTop(this.getLeft(true), c); a.setTop.apply(this, arguments); this.sync(); return this }, setLeftTop:function (d, c) { this.storeLeftTop(d, c); a.setLeftTop.apply(this, arguments); this.sync(); return this }, setXY:function (j, h, k, l, i) { this.fixDisplay(); this.beforeAction(); this.storeXY(j); var g = this.createCB(l); a.setXY.call(this, j, h, k, g, i); if (!h) { g() } return this }, createCB:function (e) { var d = this; return function () { d.constrainXY(); d.sync(true); if (e) { e() } } }, setX:function (g, h, j, k, i) { this.setXY([g, this.getY()], h, j, k, i); return this }, setY:function (k, g, i, j, h) { this.setXY([this.getX(), k], g, i, j, h); return this }, setSize:function (j, k, i, m, n, l) { this.beforeAction(); var g = this.createCB(n); a.setSize.call(this, j, k, i, m, g, l); if (!i) { g() } return this }, setWidth:function (i, h, k, l, j) { this.beforeAction(); var g = this.createCB(l); a.setWidth.call(this, i, h, k, g, j); if (!h) { g() } return this }, setHeight:function (j, i, l, m, k) { this.beforeAction(); var g = this.createCB(m); a.setHeight.call(this, j, i, l, g, k); if (!i) { g() } return this }, setBounds:function (o, m, p, i, n, k, l, j) { this.beforeAction(); var g = this.createCB(l); if (!n) { this.storeXY([o, m]); a.setXY.call(this, [o, m]); a.setSize.call(this, p, i, n, k, g, j); g() } else { a.setBounds.call(this, o, m, p, i, n, k, g, j) } return this }, setZIndex:function (c) { this.zindex = c; this.setStyle("z-index", c + 2); if (this.shadow) { this.shadow.setZIndex(c + 1) } if (this.shim) { this.shim.setStyle("z-index", c) } return this }}) })(); Ext.Shadow = function (d) { Ext.apply(this, d); if (typeof this.mode != "string") { this.mode = this.defaultMode } var e = this.offset, c = {h:0}, b = Math.floor(this.offset / 2); switch (this.mode.toLowerCase()) { case"drop": c.w = 0; c.l = c.t = e; c.t -= 1; if (Ext.isIE) { c.l -= this.offset + b; c.t -= this.offset + b; c.w -= b; c.h -= b; c.t += 1 } break; case"sides": c.w = (e * 2); c.l = -e; c.t = e - 1; if (Ext.isIE) { c.l -= (this.offset - b); c.t -= this.offset + b; c.l += 1; c.w -= (this.offset - b) * 2; c.w -= b + 1; c.h -= 1 } break; case"frame": c.w = c.h = (e * 2); c.l = c.t = -e; c.t += 1; c.h -= 2; if (Ext.isIE) { c.l -= (this.offset - b); c.t -= (this.offset - b); c.l += 1; c.w -= (this.offset + b + 1); c.h -= (this.offset + b); c.h += 1 } break } this.adjusts = c }; Ext.Shadow.prototype = {offset:4, defaultMode:"drop", show:function (a) { a = Ext.get(a); if (!this.el) { this.el = Ext.Shadow.Pool.pull(); if (this.el.dom.nextSibling != a.dom) { this.el.insertBefore(a) } } this.el.setStyle("z-index", this.zIndex || parseInt(a.getStyle("z-index"), 10) - 1); if (Ext.isIE) { this.el.dom.style.filter = "progid:DXImageTransform.Microsoft.alpha(opacity=50) progid:DXImageTransform.Microsoft.Blur(pixelradius=" + (this.offset) + ")" } this.realign(a.getLeft(true), a.getTop(true), a.getWidth(), a.getHeight()); this.el.dom.style.display = "block" }, isVisible:function () { return this.el ? true : false }, realign:function (b, r, q, g) { if (!this.el) { return } var n = this.adjusts, k = this.el.dom, u = k.style, i = 0, p = (q + n.w), e = (g + n.h), j = p + "px", o = e + "px", m, c; u.left = (b + n.l) + "px"; u.top = (r + n.t) + "px"; if (u.width != j || u.height != o) { u.width = j; u.height = o; if (!Ext.isIE) { m = k.childNodes; c = Math.max(0, (p - 12)) + "px"; m[0].childNodes[1].style.width = c; m[1].childNodes[1].style.width = c; m[2].childNodes[1].style.width = c; m[1].style.height = Math.max(0, (e - 12)) + "px" } } }, hide:function () { if (this.el) { this.el.dom.style.display = "none"; Ext.Shadow.Pool.push(this.el); delete this.el } }, setZIndex:function (a) { this.zIndex = a; if (this.el) { this.el.setStyle("z-index", a) } }}; Ext.Shadow.Pool = function () { var b = [], a = Ext.isIE ? '
' : '
'; return{pull:function () { var c = b.shift(); if (!c) { c = Ext.get(Ext.DomHelper.insertHtml("beforeBegin", document.body.firstChild, a)); c.autoBoxAdjust = false } return c }, push:function (c) { b.push(c) }} }(); Ext.BoxComponent = Ext.extend(Ext.Component, {initComponent:function () { Ext.BoxComponent.superclass.initComponent.call(this); this.addEvents("resize", "move") }, boxReady:false, deferHeight:false, setSize:function (b, d) { if (typeof b == "object") { d = b.height; b = b.width } if (Ext.isDefined(b) && Ext.isDefined(this.boxMinWidth) && (b < this.boxMinWidth)) { b = this.boxMinWidth } if (Ext.isDefined(d) && Ext.isDefined(this.boxMinHeight) && (d < this.boxMinHeight)) { d = this.boxMinHeight } if (Ext.isDefined(b) && Ext.isDefined(this.boxMaxWidth) && (b > this.boxMaxWidth)) { b = this.boxMaxWidth } if (Ext.isDefined(d) && Ext.isDefined(this.boxMaxHeight) && (d > this.boxMaxHeight)) { d = this.boxMaxHeight } if (!this.boxReady) { this.width = b; this.height = d; return this } if (this.cacheSizes !== false && this.lastSize && this.lastSize.width == b && this.lastSize.height == d) { return this } this.lastSize = {width:b, height:d}; var c = this.adjustSize(b, d), g = c.width, a = c.height, e; if (g !== undefined || a !== undefined) { e = this.getResizeEl(); if (!this.deferHeight && g !== undefined && a !== undefined) { e.setSize(g, a) } else { if (!this.deferHeight && a !== undefined) { e.setHeight(a) } else { if (g !== undefined) { e.setWidth(g) } } } this.onResize(g, a, b, d); this.fireEvent("resize", this, g, a, b, d) } return this }, setWidth:function (a) { return this.setSize(a) }, setHeight:function (a) { return this.setSize(undefined, a) }, getSize:function () { return this.getResizeEl().getSize() }, getWidth:function () { return this.getResizeEl().getWidth() }, getHeight:function () { return this.getResizeEl().getHeight() }, getOuterSize:function () { var a = this.getResizeEl(); return{width:a.getWidth() + a.getMargins("lr"), height:a.getHeight() + a.getMargins("tb")} }, getPosition:function (a) { var b = this.getPositionEl(); if (a === true) { return[b.getLeft(true), b.getTop(true)] } return this.xy || b.getXY() }, getBox:function (a) { var c = this.getPosition(a); var b = this.getSize(); b.x = c[0]; b.y = c[1]; return b }, updateBox:function (a) { this.setSize(a.width, a.height); this.setPagePosition(a.x, a.y); return this }, getResizeEl:function () { return this.resizeEl || this.el }, setAutoScroll:function (a) { if (this.rendered) { this.getContentTarget().setOverflow(a ? "auto" : "") } this.autoScroll = a; return this }, setPosition:function (a, g) { if (a && typeof a[1] == "number") { g = a[1]; a = a[0] } this.x = a; this.y = g; if (!this.boxReady) { return this } var b = this.adjustPosition(a, g); var e = b.x, d = b.y; var c = this.getPositionEl(); if (e !== undefined || d !== undefined) { if (e !== undefined && d !== undefined) { c.setLeftTop(e, d) } else { if (e !== undefined) { c.setLeft(e) } else { if (d !== undefined) { c.setTop(d) } } } this.onPosition(e, d); this.fireEvent("move", this, e, d) } return this }, setPagePosition:function (a, c) { if (a && typeof a[1] == "number") { c = a[1]; a = a[0] } this.pageX = a; this.pageY = c; if (!this.boxReady) { return } if (a === undefined || c === undefined) { return } var b = this.getPositionEl().translatePoints(a, c); this.setPosition(b.left, b.top); return this }, afterRender:function () { Ext.BoxComponent.superclass.afterRender.call(this); if (this.resizeEl) { this.resizeEl = Ext.get(this.resizeEl) } if (this.positionEl) { this.positionEl = Ext.get(this.positionEl) } this.boxReady = true; Ext.isDefined(this.autoScroll) && this.setAutoScroll(this.autoScroll); this.setSize(this.width, this.height); if (this.x || this.y) { this.setPosition(this.x, this.y) } else { if (this.pageX || this.pageY) { this.setPagePosition(this.pageX, this.pageY) } } }, syncSize:function () { delete this.lastSize; this.setSize(this.autoWidth ? undefined : this.getResizeEl().getWidth(), this.autoHeight ? undefined : this.getResizeEl().getHeight()); return this }, onResize:function (d, b, a, c) { }, onPosition:function (a, b) { }, adjustSize:function (a, b) { if (this.autoWidth) { a = "auto" } if (this.autoHeight) { b = "auto" } return{width:a, height:b} }, adjustPosition:function (a, b) { return{x:a, y:b} }}); Ext.reg("box", Ext.BoxComponent); Ext.Spacer = Ext.extend(Ext.BoxComponent, {autoEl:"div"}); Ext.reg("spacer", Ext.Spacer); Ext.SplitBar = function (c, e, b, d, a) { this.el = Ext.get(c, true); this.el.dom.unselectable = "on"; this.resizingEl = Ext.get(e, true); this.orientation = b || Ext.SplitBar.HORIZONTAL; this.minSize = 0; this.maxSize = 2000; this.animate = false; this.useShim = false; this.shim = null; if (!a) { this.proxy = Ext.SplitBar.createProxy(this.orientation) } else { this.proxy = Ext.get(a).dom } this.dd = new Ext.dd.DDProxy(this.el.dom.id, "XSplitBars", {dragElId:this.proxy.id}); this.dd.b4StartDrag = this.onStartProxyDrag.createDelegate(this); this.dd.endDrag = this.onEndProxyDrag.createDelegate(this); this.dragSpecs = {}; this.adapter = new Ext.SplitBar.BasicLayoutAdapter(); this.adapter.init(this); if (this.orientation == Ext.SplitBar.HORIZONTAL) { this.placement = d || (this.el.getX() > this.resizingEl.getX() ? Ext.SplitBar.LEFT : Ext.SplitBar.RIGHT); this.el.addClass("x-splitbar-h") } else { this.placement = d || (this.el.getY() > this.resizingEl.getY() ? Ext.SplitBar.TOP : Ext.SplitBar.BOTTOM); this.el.addClass("x-splitbar-v") } this.addEvents("resize", "moved", "beforeresize", "beforeapply"); Ext.SplitBar.superclass.constructor.call(this) }; Ext.extend(Ext.SplitBar, Ext.util.Observable, {onStartProxyDrag:function (a, e) { this.fireEvent("beforeresize", this); this.overlay = Ext.DomHelper.append(document.body, {cls:"x-drag-overlay", html:" "}, true); this.overlay.unselectable(); this.overlay.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true)); this.overlay.show(); Ext.get(this.proxy).setDisplayed("block"); var c = this.adapter.getElementSize(this); this.activeMinSize = this.getMinimumSize(); this.activeMaxSize = this.getMaximumSize(); var d = c - this.activeMinSize; var b = Math.max(this.activeMaxSize - c, 0); if (this.orientation == Ext.SplitBar.HORIZONTAL) { this.dd.resetConstraints(); this.dd.setXConstraint(this.placement == Ext.SplitBar.LEFT ? d : b, this.placement == Ext.SplitBar.LEFT ? b : d, this.tickSize); this.dd.setYConstraint(0, 0) } else { this.dd.resetConstraints(); this.dd.setXConstraint(0, 0); this.dd.setYConstraint(this.placement == Ext.SplitBar.TOP ? d : b, this.placement == Ext.SplitBar.TOP ? b : d, this.tickSize) } this.dragSpecs.startSize = c; this.dragSpecs.startPoint = [a, e]; Ext.dd.DDProxy.prototype.b4StartDrag.call(this.dd, a, e) }, onEndProxyDrag:function (c) { Ext.get(this.proxy).setDisplayed(false); var b = Ext.lib.Event.getXY(c); if (this.overlay) { Ext.destroy(this.overlay); delete this.overlay } var a; if (this.orientation == Ext.SplitBar.HORIZONTAL) { a = this.dragSpecs.startSize + (this.placement == Ext.SplitBar.LEFT ? b[0] - this.dragSpecs.startPoint[0] : this.dragSpecs.startPoint[0] - b[0]) } else { a = this.dragSpecs.startSize + (this.placement == Ext.SplitBar.TOP ? b[1] - this.dragSpecs.startPoint[1] : this.dragSpecs.startPoint[1] - b[1]) } a = Math.min(Math.max(a, this.activeMinSize), this.activeMaxSize); if (a != this.dragSpecs.startSize) { if (this.fireEvent("beforeapply", this, a) !== false) { this.adapter.setElementSize(this, a); this.fireEvent("moved", this, a); this.fireEvent("resize", this, a) } } }, getAdapter:function () { return this.adapter }, setAdapter:function (a) { this.adapter = a; this.adapter.init(this) }, getMinimumSize:function () { return this.minSize }, setMinimumSize:function (a) { this.minSize = a }, getMaximumSize:function () { return this.maxSize }, setMaximumSize:function (a) { this.maxSize = a }, setCurrentSize:function (b) { var a = this.animate; this.animate = false; this.adapter.setElementSize(this, b); this.animate = a }, destroy:function (a) { Ext.destroy(this.shim, Ext.get(this.proxy)); this.dd.unreg(); if (a) { this.el.remove() } this.purgeListeners() }}); Ext.SplitBar.createProxy = function (b) { var c = new Ext.Element(document.createElement("div")); document.body.appendChild(c.dom); c.unselectable(); var a = "x-splitbar-proxy"; c.addClass(a + " " + (b == Ext.SplitBar.HORIZONTAL ? a + "-h" : a + "-v")); return c.dom }; Ext.SplitBar.BasicLayoutAdapter = function () { }; Ext.SplitBar.BasicLayoutAdapter.prototype = {init:function (a) { }, getElementSize:function (a) { if (a.orientation == Ext.SplitBar.HORIZONTAL) { return a.resizingEl.getWidth() } else { return a.resizingEl.getHeight() } }, setElementSize:function (b, a, c) { if (b.orientation == Ext.SplitBar.HORIZONTAL) { if (!b.animate) { b.resizingEl.setWidth(a); if (c) { c(b, a) } } else { b.resizingEl.setWidth(a, true, 0.1, c, "easeOut") } } else { if (!b.animate) { b.resizingEl.setHeight(a); if (c) { c(b, a) } } else { b.resizingEl.setHeight(a, true, 0.1, c, "easeOut") } } }}; Ext.SplitBar.AbsoluteLayoutAdapter = function (a) { this.basic = new Ext.SplitBar.BasicLayoutAdapter(); this.container = Ext.get(a) }; Ext.SplitBar.AbsoluteLayoutAdapter.prototype = {init:function (a) { this.basic.init(a) }, getElementSize:function (a) { return this.basic.getElementSize(a) }, setElementSize:function (b, a, c) { this.basic.setElementSize(b, a, this.moveSplitter.createDelegate(this, [b])) }, moveSplitter:function (a) { var b = Ext.SplitBar; switch (a.placement) { case b.LEFT: a.el.setX(a.resizingEl.getRight()); break; case b.RIGHT: a.el.setStyle("right", (this.container.getWidth() - a.resizingEl.getLeft()) + "px"); break; case b.TOP: a.el.setY(a.resizingEl.getBottom()); break; case b.BOTTOM: a.el.setY(a.resizingEl.getTop() - a.el.getHeight()); break } }}; Ext.SplitBar.VERTICAL = 1; Ext.SplitBar.HORIZONTAL = 2; Ext.SplitBar.LEFT = 1; Ext.SplitBar.RIGHT = 2; Ext.SplitBar.TOP = 3; Ext.SplitBar.BOTTOM = 4; Ext.Container = Ext.extend(Ext.BoxComponent, {bufferResize:50, autoDestroy:true, forceLayout:false, defaultType:"panel", resizeEvent:"resize", bubbleEvents:["add", "remove"], initComponent:function () { Ext.Container.superclass.initComponent.call(this); this.addEvents("afterlayout", "beforeadd", "beforeremove", "add", "remove"); var a = this.items; if (a) { delete this.items; this.add(a) } }, initItems:function () { if (!this.items) { this.items = new Ext.util.MixedCollection(false, this.getComponentId); this.getLayout() } }, setLayout:function (a) { if (this.layout && this.layout != a) { this.layout.setContainer(null) } this.layout = a; this.initItems(); a.setContainer(this) }, afterRender:function () { Ext.Container.superclass.afterRender.call(this); if (!this.layout) { this.layout = "auto" } if (Ext.isObject(this.layout) && !this.layout.layout) { this.layoutConfig = this.layout; this.layout = this.layoutConfig.type } if (Ext.isString(this.layout)) { this.layout = new Ext.Container.LAYOUTS[this.layout.toLowerCase()](this.layoutConfig) } this.setLayout(this.layout); if (this.activeItem !== undefined && this.layout.setActiveItem) { var a = this.activeItem; delete this.activeItem; this.layout.setActiveItem(a) } if (!this.ownerCt) { this.doLayout(false, true) } if (this.monitorResize === true) { Ext.EventManager.onWindowResize(this.doLayout, this, [false]) } }, getLayoutTarget:function () { return this.el }, getComponentId:function (a) { return a.getItemId() }, add:function (b) { this.initItems(); var e = arguments.length > 1; if (e || Ext.isArray(b)) { var a = []; Ext.each(e ? arguments : b, function (h) { a.push(this.add(h)) }, this); return a } var g = this.lookupComponent(this.applyDefaults(b)); var d = this.items.length; if (this.fireEvent("beforeadd", this, g, d) !== false && this.onBeforeAdd(g) !== false) { this.items.add(g); g.onAdded(this, d); this.onAdd(g); this.fireEvent("add", this, g, d) } return g }, onAdd:function (a) { }, onAdded:function (a, b) { this.ownerCt = a; this.initRef(); this.cascade(function (d) { d.initRef() }); this.fireEvent("added", this, a, b) }, insert:function (e, b) { var d = arguments, h = d.length, a = [], g, j; this.initItems(); if (h > 2) { for (g = h - 1; g >= 1; --g) { a.push(this.insert(e, d[g])) } return a } j = this.lookupComponent(this.applyDefaults(b)); e = Math.min(e, this.items.length); if (this.fireEvent("beforeadd", this, j, e) !== false && this.onBeforeAdd(j) !== false) { if (j.ownerCt == this) { this.items.remove(j) } this.items.insert(e, j); j.onAdded(this, e); this.onAdd(j); this.fireEvent("add", this, j, e) } return j }, applyDefaults:function (b) { var a = this.defaults; if (a) { if (Ext.isFunction(a)) { a = a.call(this, b) } if (Ext.isString(b)) { b = Ext.ComponentMgr.get(b); Ext.apply(b, a) } else { if (!b.events) { Ext.applyIf(b.isAction ? b.initialConfig : b, a) } else { Ext.apply(b, a) } } } return b }, onBeforeAdd:function (a) { if (a.ownerCt) { a.ownerCt.remove(a, false) } if (this.hideBorders === true) { a.border = (a.border === true) } }, remove:function (a, b) { this.initItems(); var d = this.getComponent(a); if (d && this.fireEvent("beforeremove", this, d) !== false) { this.doRemove(d, b); this.fireEvent("remove", this, d) } return d }, onRemove:function (a) { }, doRemove:function (e, d) { var b = this.layout, a = b && this.rendered; if (a) { b.onRemove(e) } this.items.remove(e); e.onRemoved(); this.onRemove(e); if (d === true || (d !== false && this.autoDestroy)) { e.destroy() } if (a) { b.afterRemove(e) } }, removeAll:function (c) { this.initItems(); var e, g = [], b = []; this.items.each(function (h) { g.push(h) }); for (var d = 0, a = g.length; d < a; ++d) { e = g[d]; this.remove(e, c); if (e.ownerCt !== this) { b.push(e) } } return b }, getComponent:function (a) { if (Ext.isObject(a)) { a = a.getItemId() } return this.items.get(a) }, lookupComponent:function (a) { if (Ext.isString(a)) { return Ext.ComponentMgr.get(a) } else { if (!a.events) { return this.createComponent(a) } } return a }, createComponent:function (a, d) { if (a.render) { return a } var b = Ext.create(Ext.apply({ownerCt:this}, a), d || this.defaultType); delete b.initialConfig.ownerCt; delete b.ownerCt; return b }, canLayout:function () { var a = this.getVisibilityEl(); return a && a.dom && !a.isStyle("display", "none") }, doLayout:function (g, e) { var k = this.rendered, j = e || this.forceLayout; if (this.collapsed || !this.canLayout()) { this.deferLayout = this.deferLayout || !g; if (!j) { return } g = g && !this.deferLayout } else { delete this.deferLayout } if (k && this.layout) { this.layout.layout() } if (g !== true && this.items) { var d = this.items.items; for (var b = 0, a = d.length; b < a; b++) { var h = d[b]; if (h.doLayout) { h.doLayout(false, j) } } } if (k) { this.onLayout(g, j) } this.hasLayout = true; delete this.forceLayout }, onLayout:Ext.emptyFn, shouldBufferLayout:function () { var a = this.hasLayout; if (this.ownerCt) { return a ? !this.hasLayoutPending() : false } return a }, hasLayoutPending:function () { var a = false; this.ownerCt.bubble(function (b) { if (b.layoutPending) { a = true; return false } }); return a }, onShow:function () { Ext.Container.superclass.onShow.call(this); if (Ext.isDefined(this.deferLayout)) { delete this.deferLayout; this.doLayout(true) } }, getLayout:function () { if (!this.layout) { var a = new Ext.layout.AutoLayout(this.layoutConfig); this.setLayout(a) } return this.layout }, beforeDestroy:function () { var a; if (this.items) { while (a = this.items.first()) { this.doRemove(a, true) } } if (this.monitorResize) { Ext.EventManager.removeResizeListener(this.doLayout, this) } Ext.destroy(this.layout); Ext.Container.superclass.beforeDestroy.call(this) }, cascade:function (g, e, b) { if (g.apply(e || this, b || [this]) !== false) { if (this.items) { var d = this.items.items; for (var c = 0, a = d.length; c < a; c++) { if (d[c].cascade) { d[c].cascade(g, e, b) } else { g.apply(e || d[c], b || [d[c]]) } } } } return this }, findById:function (c) { var a = null, b = this; this.cascade(function (d) { if (b != d && d.id === c) { a = d; return false } }); return a }, findByType:function (b, a) { return this.findBy(function (d) { return d.isXType(b, a) }) }, find:function (b, a) { return this.findBy(function (d) { return d[b] === a }) }, findBy:function (d, c) { var a = [], b = this; this.cascade(function (e) { if (b != e && d.call(c || e, e, b) === true) { a.push(e) } }); return a }, get:function (a) { return this.getComponent(a) }}); Ext.Container.LAYOUTS = {}; Ext.reg("container", Ext.Container); Ext.layout.ContainerLayout = Ext.extend(Object, {monitorResize:false, activeItem:null, constructor:function (a) { this.id = Ext.id(null, "ext-layout-"); Ext.apply(this, a) }, type:"container", IEMeasureHack:function (k, g) { var a = k.dom.childNodes, b = a.length, n, m = [], l, h, j; for (h = 0; h < b; h++) { n = a[h]; l = Ext.get(n); if (l) { m[h] = l.getStyle("display"); l.setStyle({display:"none"}) } } j = k ? k.getViewSize(g) : {}; for (h = 0; h < b; h++) { n = a[h]; l = Ext.get(n); if (l) { l.setStyle({display:m[h]}) } } return j }, getLayoutTargetSize:Ext.EmptyFn, layout:function () { var a = this.container, b = a.getLayoutTarget(); if (!(this.hasLayout || Ext.isEmpty(this.targetCls))) { b.addClass(this.targetCls) } this.onLayout(a, b); a.fireEvent("afterlayout", a, this) }, onLayout:function (a, b) { this.renderAll(a, b) }, isValidParent:function (b, a) { return a && b.getPositionEl().dom.parentNode == (a.dom || a) }, renderAll:function (e, g) { var b = e.items.items, d, h, a = b.length; for (d = 0; d < a; d++) { h = b[d]; if (h && (!h.rendered || !this.isValidParent(h, g))) { this.renderItem(h, d, g) } } }, renderItem:function (d, a, b) { if (d) { if (!d.rendered) { d.render(b, a); this.configureItem(d) } else { if (!this.isValidParent(d, b)) { if (Ext.isNumber(a)) { a = b.dom.childNodes[a] } b.dom.insertBefore(d.getPositionEl().dom, a || null); d.container = b; this.configureItem(d) } } } }, getRenderedItems:function (g) { var e = g.getLayoutTarget(), h = g.items.items, a = h.length, d, j, b = []; for (d = 0; d < a; d++) { if ((j = h[d]).rendered && this.isValidParent(j, e) && j.shouldLayout !== false) { b.push(j) } } return b }, configureItem:function (b) { if (this.extraCls) { var a = b.getPositionEl ? b.getPositionEl() : b; a.addClass(this.extraCls) } if (b.doLayout && this.forceLayout) { b.doLayout() } if (this.renderHidden && b != this.activeItem) { b.hide() } }, onRemove:function (b) { if (this.activeItem == b) { delete this.activeItem } if (b.rendered && this.extraCls) { var a = b.getPositionEl ? b.getPositionEl() : b; a.removeClass(this.extraCls) } }, afterRemove:function (a) { if (a.removeRestore) { a.removeMode = "container"; delete a.removeRestore } }, onResize:function () { var c = this.container, a; if (c.collapsed) { return } if (a = c.bufferResize && c.shouldBufferLayout()) { if (!this.resizeTask) { this.resizeTask = new Ext.util.DelayedTask(this.runLayout, this); this.resizeBuffer = Ext.isNumber(a) ? a : 50 } c.layoutPending = true; this.resizeTask.delay(this.resizeBuffer) } else { this.runLayout() } }, runLayout:function () { var a = this.container; this.layout(); a.onLayout(); delete a.layoutPending }, setContainer:function (b) { if (this.monitorResize && b != this.container) { var a = this.container; if (a) { a.un(a.resizeEvent, this.onResize, this) } if (b) { b.on(b.resizeEvent, this.onResize, this) } } this.container = b }, parseMargins:function (b) { if (Ext.isNumber(b)) { b = b.toString() } var c = b.split(" "), a = c.length; if (a == 1) { c[1] = c[2] = c[3] = c[0] } else { if (a == 2) { c[2] = c[0]; c[3] = c[1] } else { if (a == 3) { c[3] = c[1] } } } return{top:parseInt(c[0], 10) || 0, right:parseInt(c[1], 10) || 0, bottom:parseInt(c[2], 10) || 0, left:parseInt(c[3], 10) || 0} }, fieldTpl:(function () { var a = new Ext.Template('
', '', '
', '
', "
"); a.disableFormats = true; return a.compile() })(), destroy:function () { if (this.resizeTask && this.resizeTask.cancel) { this.resizeTask.cancel() } if (this.container) { this.container.un(this.container.resizeEvent, this.onResize, this) } if (!Ext.isEmpty(this.targetCls)) { var a = this.container.getLayoutTarget(); if (a) { a.removeClass(this.targetCls) } } }}); Ext.layout.AutoLayout = Ext.extend(Ext.layout.ContainerLayout, {type:"auto", monitorResize:true, onLayout:function (d, g) { Ext.layout.AutoLayout.superclass.onLayout.call(this, d, g); var e = this.getRenderedItems(d), a = e.length, b, h; for (b = 0; b < a; b++) { h = e[b]; if (h.doLayout) { h.doLayout(true) } } }}); Ext.Container.LAYOUTS.auto = Ext.layout.AutoLayout; Ext.layout.FitLayout = Ext.extend(Ext.layout.ContainerLayout, {monitorResize:true, type:"fit", getLayoutTargetSize:function () { var a = this.container.getLayoutTarget(); if (!a) { return{} } return a.getStyleSize() }, onLayout:function (a, b) { Ext.layout.FitLayout.superclass.onLayout.call(this, a, b); if (!a.collapsed) { this.setItemSize(this.activeItem || a.items.itemAt(0), this.getLayoutTargetSize()) } }, setItemSize:function (b, a) { if (b && a.height > 0) { b.setSize(a) } }}); Ext.Container.LAYOUTS.fit = Ext.layout.FitLayout; Ext.layout.CardLayout = Ext.extend(Ext.layout.FitLayout, {deferredRender:false, layoutOnCardChange:false, renderHidden:true, type:"card", setActiveItem:function (d) { var a = this.activeItem, b = this.container; d = b.getComponent(d); if (d && a != d) { if (a) { a.hide(); if (a.hidden !== true) { return false } a.fireEvent("deactivate", a) } var c = d.doLayout && (this.layoutOnCardChange || !d.rendered); this.activeItem = d; delete d.deferLayout; d.show(); this.layout(); if (c) { d.doLayout() } d.fireEvent("activate", d) } }, renderAll:function (a, b) { if (this.deferredRender) { this.renderItem(this.activeItem, undefined, b) } else { Ext.layout.CardLayout.superclass.renderAll.call(this, a, b) } }}); Ext.Container.LAYOUTS.card = Ext.layout.CardLayout; Ext.layout.AnchorLayout = Ext.extend(Ext.layout.ContainerLayout, {monitorResize:true, type:"anchor", defaultAnchor:"100%", parseAnchorRE:/^(r|right|b|bottom)$/i, getLayoutTargetSize:function () { var b = this.container.getLayoutTarget(), a = {}; if (b) { a = b.getViewSize(); if (Ext.isIE && Ext.isStrict && a.width == 0) { a = b.getStyleSize() } a.width -= b.getPadding("lr"); a.height -= b.getPadding("tb") } return a }, onLayout:function (m, w) { Ext.layout.AnchorLayout.superclass.onLayout.call(this, m, w); var p = this.getLayoutTargetSize(), k = p.width, o = p.height, q = w.getStyle("overflow"), n = this.getRenderedItems(m), t = n.length, g = [], j, a, v, l, h, c, e, d, u = 0, s, b; if (k < 20 && o < 20) { return } if (m.anchorSize) { if (typeof m.anchorSize == "number") { a = m.anchorSize } else { a = m.anchorSize.width; v = m.anchorSize.height } } else { a = m.initialConfig.width; v = m.initialConfig.height } for (s = 0; s < t; s++) { l = n[s]; b = l.getPositionEl(); if (!l.anchor && l.items && !Ext.isNumber(l.width) && !(Ext.isIE6 && Ext.isStrict)) { l.anchor = this.defaultAnchor } if (l.anchor) { h = l.anchorSpec; if (!h) { d = l.anchor.split(" "); l.anchorSpec = h = {right:this.parseAnchor(d[0], l.initialConfig.width, a), bottom:this.parseAnchor(d[1], l.initialConfig.height, v)} } c = h.right ? this.adjustWidthAnchor(h.right(k) - b.getMargins("lr"), l) : undefined; e = h.bottom ? this.adjustHeightAnchor(h.bottom(o) - b.getMargins("tb"), l) : undefined; if (c || e) { g.push({component:l, width:c || undefined, height:e || undefined}) } } } for (s = 0, t = g.length; s < t; s++) { j = g[s]; j.component.setSize(j.width, j.height) } if (q && q != "hidden" && !this.adjustmentPass) { var r = this.getLayoutTargetSize(); if (r.width != p.width || r.height != p.height) { this.adjustmentPass = true; this.onLayout(m, w) } } delete this.adjustmentPass }, parseAnchor:function (c, h, b) { if (c && c != "none") { var e; if (this.parseAnchorRE.test(c)) { var g = b - h; return function (a) { if (a !== e) { e = a; return a - g } } } else { if (c.indexOf("%") != -1) { var d = parseFloat(c.replace("%", "")) * 0.01; return function (a) { if (a !== e) { e = a; return Math.floor(a * d) } } } else { c = parseInt(c, 10); if (!isNaN(c)) { return function (a) { if (a !== e) { e = a; return a + c } } } } } } return false }, adjustWidthAnchor:function (b, a) { return b }, adjustHeightAnchor:function (b, a) { return b }}); Ext.Container.LAYOUTS.anchor = Ext.layout.AnchorLayout; Ext.layout.ColumnLayout = Ext.extend(Ext.layout.ContainerLayout, {monitorResize:true, type:"column", extraCls:"x-column", scrollOffset:0, targetCls:"x-column-layout-ct", isValidParent:function (b, a) { return this.innerCt && b.getPositionEl().dom.parentNode == this.innerCt.dom }, getLayoutTargetSize:function () { var b = this.container.getLayoutTarget(), a; if (b) { a = b.getViewSize(); if (Ext.isIE && Ext.isStrict && a.width == 0) { a = b.getStyleSize() } a.width -= b.getPadding("lr"); a.height -= b.getPadding("tb") } return a }, renderAll:function (a, b) { if (!this.innerCt) { this.innerCt = b.createChild({cls:"x-column-inner"}); this.innerCt.createChild({cls:"x-clear"}) } Ext.layout.ColumnLayout.superclass.renderAll.call(this, a, this.innerCt) }, onLayout:function (e, k) { var g = e.items.items, j = g.length, n, b, a, o = []; this.renderAll(e, k); var r = this.getLayoutTargetSize(); if (r.width < 1 && r.height < 1) { return } var p = r.width - this.scrollOffset, d = r.height, q = p; this.innerCt.setWidth(p); for (b = 0; b < j; b++) { n = g[b]; a = n.getPositionEl().getMargins("lr"); o[b] = a; if (!n.columnWidth) { q -= (n.getWidth() + a) } } q = q < 0 ? 0 : q; for (b = 0; b < j; b++) { n = g[b]; a = o[b]; if (n.columnWidth) { n.setSize(Math.floor(n.columnWidth * q) - a) } } if (Ext.isIE) { if (b = k.getStyle("overflow") && b != "hidden" && !this.adjustmentPass) { var l = this.getLayoutTargetSize(); if (l.width != r.width) { this.adjustmentPass = true; this.onLayout(e, k) } } } delete this.adjustmentPass }}); Ext.Container.LAYOUTS.column = Ext.layout.ColumnLayout; Ext.layout.BorderLayout = Ext.extend(Ext.layout.ContainerLayout, {monitorResize:true, rendered:false, type:"border", targetCls:"x-border-layout-ct", getLayoutTargetSize:function () { var a = this.container.getLayoutTarget(); return a ? a.getViewSize() : {} }, onLayout:function (g, I) { var j, B, F, o, x = g.items.items, C = x.length; if (!this.rendered) { j = []; for (B = 0; B < C; B++) { F = x[B]; o = F.region; if (F.collapsed) { j.push(F) } F.collapsed = false; if (!F.rendered) { F.render(I, B); F.getPositionEl().addClass("x-border-panel") } this[o] = o != "center" && F.split ? new Ext.layout.BorderLayout.SplitRegion(this, F.initialConfig, o) : new Ext.layout.BorderLayout.Region(this, F.initialConfig, o); this[o].render(I, F) } this.rendered = true } var v = this.getLayoutTargetSize(); if (v.width < 20 || v.height < 20) { if (j) { this.restoreCollapsed = j } return } else { if (this.restoreCollapsed) { j = this.restoreCollapsed; delete this.restoreCollapsed } } var t = v.width, D = v.height, r = t, A = D, p = 0, q = 0, y = this.north, u = this.south, l = this.west, E = this.east, F = this.center, H, z, d, G; if (!F && Ext.layout.BorderLayout.WARN !== false) { throw"No center region defined in BorderLayout " + g.id } if (y && y.isVisible()) { H = y.getSize(); z = y.getMargins(); H.width = t - (z.left + z.right); H.x = z.left; H.y = z.top; p = H.height + H.y + z.bottom; A -= p; y.applyLayout(H) } if (u && u.isVisible()) { H = u.getSize(); z = u.getMargins(); H.width = t - (z.left + z.right); H.x = z.left; G = (H.height + z.top + z.bottom); H.y = D - G + z.top; A -= G; u.applyLayout(H) } if (l && l.isVisible()) { H = l.getSize(); z = l.getMargins(); H.height = A - (z.top + z.bottom); H.x = z.left; H.y = p + z.top; d = (H.width + z.left + z.right); q += d; r -= d; l.applyLayout(H) } if (E && E.isVisible()) { H = E.getSize(); z = E.getMargins(); H.height = A - (z.top + z.bottom); d = (H.width + z.left + z.right); H.x = t - d + z.left; H.y = p + z.top; r -= d; E.applyLayout(H) } if (F) { z = F.getMargins(); var k = {x:q + z.left, y:p + z.top, width:r - (z.left + z.right), height:A - (z.top + z.bottom)}; F.applyLayout(k) } if (j) { for (B = 0, C = j.length; B < C; B++) { j[B].collapse(false) } } if (Ext.isIE && Ext.isStrict) { I.repaint() } if (B = I.getStyle("overflow") && B != "hidden" && !this.adjustmentPass) { var a = this.getLayoutTargetSize(); if (a.width != v.width || a.height != v.height) { this.adjustmentPass = true; this.onLayout(g, I) } } delete this.adjustmentPass }, destroy:function () { var b = ["north", "south", "east", "west"], a, c; for (a = 0; a < b.length; a++) { c = this[b[a]]; if (c) { if (c.destroy) { c.destroy() } else { if (c.split) { c.split.destroy(true) } } } } Ext.layout.BorderLayout.superclass.destroy.call(this) }}); Ext.layout.BorderLayout.Region = function (b, a, c) { Ext.apply(this, a); this.layout = b; this.position = c; this.state = {}; if (typeof this.margins == "string") { this.margins = this.layout.parseMargins(this.margins) } this.margins = Ext.applyIf(this.margins || {}, this.defaultMargins); if (this.collapsible) { if (typeof this.cmargins == "string") { this.cmargins = this.layout.parseMargins(this.cmargins) } if (this.collapseMode == "mini" && !this.cmargins) { this.cmargins = {left:0, top:0, right:0, bottom:0} } else { this.cmargins = Ext.applyIf(this.cmargins || {}, c == "north" || c == "south" ? this.defaultNSCMargins : this.defaultEWCMargins) } } }; Ext.layout.BorderLayout.Region.prototype = {collapsible:false, split:false, floatable:true, minWidth:50, minHeight:50, defaultMargins:{left:0, top:0, right:0, bottom:0}, defaultNSCMargins:{left:5, top:5, right:5, bottom:5}, defaultEWCMargins:{left:5, top:0, right:5, bottom:0}, floatingZIndex:100, isCollapsed:false, render:function (b, c) { this.panel = c; c.el.enableDisplayMode(); this.targetEl = b; this.el = c.el; var a = c.getState, d = this.position; c.getState = function () { return Ext.apply(a.call(c) || {}, this.state) }.createDelegate(this); if (d != "center") { c.allowQueuedExpand = false; c.on({beforecollapse:this.beforeCollapse, collapse:this.onCollapse, beforeexpand:this.beforeExpand, expand:this.onExpand, hide:this.onHide, show:this.onShow, scope:this}); if (this.collapsible || this.floatable) { c.collapseEl = "el"; c.slideAnchor = this.getSlideAnchor() } if (c.tools && c.tools.toggle) { c.tools.toggle.addClass("x-tool-collapse-" + d); c.tools.toggle.addClassOnOver("x-tool-collapse-" + d + "-over") } } }, getCollapsedEl:function () { if (!this.collapsedEl) { if (!this.toolTemplate) { var b = new Ext.Template('
 
'); b.disableFormats = true; b.compile(); Ext.layout.BorderLayout.Region.prototype.toolTemplate = b } this.collapsedEl = this.targetEl.createChild({cls:"x-layout-collapsed x-layout-collapsed-" + this.position, id:this.panel.id + "-xcollapsed"}); this.collapsedEl.enableDisplayMode("block"); if (this.collapseMode == "mini") { this.collapsedEl.addClass("x-layout-cmini-" + this.position); this.miniCollapsedEl = this.collapsedEl.createChild({cls:"x-layout-mini x-layout-mini-" + this.position, html:" "}); this.miniCollapsedEl.addClassOnOver("x-layout-mini-over"); this.collapsedEl.addClassOnOver("x-layout-collapsed-over"); this.collapsedEl.on("click", this.onExpandClick, this, {stopEvent:true}) } else { if (this.collapsible !== false && !this.hideCollapseTool) { var a = this.expandToolEl = this.toolTemplate.append(this.collapsedEl.dom, {id:"expand-" + this.position}, true); a.addClassOnOver("x-tool-expand-" + this.position + "-over"); a.on("click", this.onExpandClick, this, {stopEvent:true}) } if (this.floatable !== false || this.titleCollapse) { this.collapsedEl.addClassOnOver("x-layout-collapsed-over"); this.collapsedEl.on("click", this[this.floatable ? "collapseClick" : "onExpandClick"], this) } } } return this.collapsedEl }, onExpandClick:function (a) { if (this.isSlid) { this.panel.expand(false) } else { this.panel.expand() } }, onCollapseClick:function (a) { this.panel.collapse() }, beforeCollapse:function (c, a) { this.lastAnim = a; if (this.splitEl) { this.splitEl.hide() } this.getCollapsedEl().show(); var b = this.panel.getEl(); this.originalZIndex = b.getStyle("z-index"); b.setStyle("z-index", 100); this.isCollapsed = true; this.layout.layout() }, onCollapse:function (a) { this.panel.el.setStyle("z-index", 1); if (this.lastAnim === false || this.panel.animCollapse === false) { this.getCollapsedEl().dom.style.visibility = "visible" } else { this.getCollapsedEl().slideIn(this.panel.slideAnchor, {duration:0.2}) } this.state.collapsed = true; this.panel.saveState() }, beforeExpand:function (a) { if (this.isSlid) { this.afterSlideIn() } var b = this.getCollapsedEl(); this.el.show(); if (this.position == "east" || this.position == "west") { this.panel.setSize(undefined, b.getHeight()) } else { this.panel.setSize(b.getWidth(), undefined) } b.hide(); b.dom.style.visibility = "hidden"; this.panel.el.setStyle("z-index", this.floatingZIndex) }, onExpand:function () { this.isCollapsed = false; if (this.splitEl) { this.splitEl.show() } this.layout.layout(); this.panel.el.setStyle("z-index", this.originalZIndex); this.state.collapsed = false; this.panel.saveState() }, collapseClick:function (a) { if (this.isSlid) { a.stopPropagation(); this.slideIn() } else { a.stopPropagation(); this.slideOut() } }, onHide:function () { if (this.isCollapsed) { this.getCollapsedEl().hide() } else { if (this.splitEl) { this.splitEl.hide() } } }, onShow:function () { if (this.isCollapsed) { this.getCollapsedEl().show() } else { if (this.splitEl) { this.splitEl.show() } } }, isVisible:function () { return !this.panel.hidden }, getMargins:function () { return this.isCollapsed && this.cmargins ? this.cmargins : this.margins }, getSize:function () { return this.isCollapsed ? this.getCollapsedEl().getSize() : this.panel.getSize() }, setPanel:function (a) { this.panel = a }, getMinWidth:function () { return this.minWidth }, getMinHeight:function () { return this.minHeight }, applyLayoutCollapsed:function (a) { var b = this.getCollapsedEl(); b.setLeftTop(a.x, a.y); b.setSize(a.width, a.height) }, applyLayout:function (a) { if (this.isCollapsed) { this.applyLayoutCollapsed(a) } else { this.panel.setPosition(a.x, a.y); this.panel.setSize(a.width, a.height) } }, beforeSlide:function () { this.panel.beforeEffect() }, afterSlide:function () { this.panel.afterEffect() }, initAutoHide:function () { if (this.autoHide !== false) { if (!this.autoHideHd) { this.autoHideSlideTask = new Ext.util.DelayedTask(this.slideIn, this); this.autoHideHd = {mouseout:function (a) { if (!a.within(this.el, true)) { this.autoHideSlideTask.delay(500) } }, mouseover:function (a) { this.autoHideSlideTask.cancel() }, scope:this} } this.el.on(this.autoHideHd); this.collapsedEl.on(this.autoHideHd) } }, clearAutoHide:function () { if (this.autoHide !== false) { this.el.un("mouseout", this.autoHideHd.mouseout); this.el.un("mouseover", this.autoHideHd.mouseover); this.collapsedEl.un("mouseout", this.autoHideHd.mouseout); this.collapsedEl.un("mouseover", this.autoHideHd.mouseover) } }, clearMonitor:function () { Ext.getDoc().un("click", this.slideInIf, this) }, slideOut:function () { if (this.isSlid || this.el.hasActiveFx()) { return } this.isSlid = true; var b = this.panel.tools, c, a; if (b && b.toggle) { b.toggle.hide() } this.el.show(); a = this.panel.collapsed; this.panel.collapsed = false; if (this.position == "east" || this.position == "west") { c = this.panel.deferHeight; this.panel.deferHeight = false; this.panel.setSize(undefined, this.collapsedEl.getHeight()); this.panel.deferHeight = c } else { this.panel.setSize(this.collapsedEl.getWidth(), undefined) } this.panel.collapsed = a; this.restoreLT = [this.el.dom.style.left, this.el.dom.style.top]; this.el.alignTo(this.collapsedEl, this.getCollapseAnchor()); this.el.setStyle("z-index", this.floatingZIndex + 2); this.panel.el.replaceClass("x-panel-collapsed", "x-panel-floating"); if (this.animFloat !== false) { this.beforeSlide(); this.el.slideIn(this.getSlideAnchor(), {callback:function () { this.afterSlide(); this.initAutoHide(); Ext.getDoc().on("click", this.slideInIf, this) }, scope:this, block:true}) } else { this.initAutoHide(); Ext.getDoc().on("click", this.slideInIf, this) } }, afterSlideIn:function () { this.clearAutoHide(); this.isSlid = false; this.clearMonitor(); this.el.setStyle("z-index", ""); this.panel.el.replaceClass("x-panel-floating", "x-panel-collapsed"); this.el.dom.style.left = this.restoreLT[0]; this.el.dom.style.top = this.restoreLT[1]; var a = this.panel.tools; if (a && a.toggle) { a.toggle.show() } }, slideIn:function (a) { if (!this.isSlid || this.el.hasActiveFx()) { Ext.callback(a); return } this.isSlid = false; if (this.animFloat !== false) { this.beforeSlide(); this.el.slideOut(this.getSlideAnchor(), {callback:function () { this.el.hide(); this.afterSlide(); this.afterSlideIn(); Ext.callback(a) }, scope:this, block:true}) } else { this.el.hide(); this.afterSlideIn() } }, slideInIf:function (a) { if (!a.within(this.el)) { this.slideIn() } }, anchors:{west:"left", east:"right", north:"top", south:"bottom"}, sanchors:{west:"l", east:"r", north:"t", south:"b"}, canchors:{west:"tl-tr", east:"tr-tl", north:"tl-bl", south:"bl-tl"}, getAnchor:function () { return this.anchors[this.position] }, getCollapseAnchor:function () { return this.canchors[this.position] }, getSlideAnchor:function () { return this.sanchors[this.position] }, getAlignAdj:function () { var a = this.cmargins; switch (this.position) { case"west": return[0, 0]; break; case"east": return[0, 0]; break; case"north": return[0, 0]; break; case"south": return[0, 0]; break } }, getExpandAdj:function () { var b = this.collapsedEl, a = this.cmargins; switch (this.position) { case"west": return[-(a.right + b.getWidth() + a.left), 0]; break; case"east": return[a.right + b.getWidth() + a.left, 0]; break; case"north": return[0, -(a.top + a.bottom + b.getHeight())]; break; case"south": return[0, a.top + a.bottom + b.getHeight()]; break } }, destroy:function () { if (this.autoHideSlideTask && this.autoHideSlideTask.cancel) { this.autoHideSlideTask.cancel() } Ext.destroyMembers(this, "miniCollapsedEl", "collapsedEl", "expandToolEl") }}; Ext.layout.BorderLayout.SplitRegion = function (b, a, c) { Ext.layout.BorderLayout.SplitRegion.superclass.constructor.call(this, b, a, c); this.applyLayout = this.applyFns[c] }; Ext.extend(Ext.layout.BorderLayout.SplitRegion, Ext.layout.BorderLayout.Region, {splitTip:"Drag to resize.", collapsibleSplitTip:"Drag to resize. Double click to hide.", useSplitTips:false, splitSettings:{north:{orientation:Ext.SplitBar.VERTICAL, placement:Ext.SplitBar.TOP, maxFn:"getVMaxSize", minProp:"minHeight", maxProp:"maxHeight"}, south:{orientation:Ext.SplitBar.VERTICAL, placement:Ext.SplitBar.BOTTOM, maxFn:"getVMaxSize", minProp:"minHeight", maxProp:"maxHeight"}, east:{orientation:Ext.SplitBar.HORIZONTAL, placement:Ext.SplitBar.RIGHT, maxFn:"getHMaxSize", minProp:"minWidth", maxProp:"maxWidth"}, west:{orientation:Ext.SplitBar.HORIZONTAL, placement:Ext.SplitBar.LEFT, maxFn:"getHMaxSize", minProp:"minWidth", maxProp:"maxWidth"}}, applyFns:{west:function (c) { if (this.isCollapsed) { return this.applyLayoutCollapsed(c) } var d = this.splitEl.dom, b = d.style; this.panel.setPosition(c.x, c.y); var a = d.offsetWidth; b.left = (c.x + c.width - a) + "px"; b.top = (c.y) + "px"; b.height = Math.max(0, c.height) + "px"; this.panel.setSize(c.width - a, c.height) }, east:function (c) { if (this.isCollapsed) { return this.applyLayoutCollapsed(c) } var d = this.splitEl.dom, b = d.style; var a = d.offsetWidth; this.panel.setPosition(c.x + a, c.y); b.left = (c.x) + "px"; b.top = (c.y) + "px"; b.height = Math.max(0, c.height) + "px"; this.panel.setSize(c.width - a, c.height) }, north:function (c) { if (this.isCollapsed) { return this.applyLayoutCollapsed(c) } var d = this.splitEl.dom, b = d.style; var a = d.offsetHeight; this.panel.setPosition(c.x, c.y); b.left = (c.x) + "px"; b.top = (c.y + c.height - a) + "px"; b.width = Math.max(0, c.width) + "px"; this.panel.setSize(c.width, c.height - a) }, south:function (c) { if (this.isCollapsed) { return this.applyLayoutCollapsed(c) } var d = this.splitEl.dom, b = d.style; var a = d.offsetHeight; this.panel.setPosition(c.x, c.y + a); b.left = (c.x) + "px"; b.top = (c.y) + "px"; b.width = Math.max(0, c.width) + "px"; this.panel.setSize(c.width, c.height - a) }}, render:function (a, c) { Ext.layout.BorderLayout.SplitRegion.superclass.render.call(this, a, c); var d = this.position; this.splitEl = a.createChild({cls:"x-layout-split x-layout-split-" + d, html:" ", id:this.panel.id + "-xsplit"}); if (this.collapseMode == "mini") { this.miniSplitEl = this.splitEl.createChild({cls:"x-layout-mini x-layout-mini-" + d, html:" "}); this.miniSplitEl.addClassOnOver("x-layout-mini-over"); this.miniSplitEl.on("click", this.onCollapseClick, this, {stopEvent:true}) } var b = this.splitSettings[d]; this.split = new Ext.SplitBar(this.splitEl.dom, c.el, b.orientation); this.split.tickSize = this.tickSize; this.split.placement = b.placement; this.split.getMaximumSize = this[b.maxFn].createDelegate(this); this.split.minSize = this.minSize || this[b.minProp]; this.split.on("beforeapply", this.onSplitMove, this); this.split.useShim = this.useShim === true; this.maxSize = this.maxSize || this[b.maxProp]; if (c.hidden) { this.splitEl.hide() } if (this.useSplitTips) { this.splitEl.dom.title = this.collapsible ? this.collapsibleSplitTip : this.splitTip } if (this.collapsible) { this.splitEl.on("dblclick", this.onCollapseClick, this) } }, getSize:function () { if (this.isCollapsed) { return this.collapsedEl.getSize() } var a = this.panel.getSize(); if (this.position == "north" || this.position == "south") { a.height += this.splitEl.dom.offsetHeight } else { a.width += this.splitEl.dom.offsetWidth } return a }, getHMaxSize:function () { var b = this.maxSize || 10000; var a = this.layout.center; return Math.min(b, (this.el.getWidth() + a.el.getWidth()) - a.getMinWidth()) }, getVMaxSize:function () { var b = this.maxSize || 10000; var a = this.layout.center; return Math.min(b, (this.el.getHeight() + a.el.getHeight()) - a.getMinHeight()) }, onSplitMove:function (b, a) { var c = this.panel.getSize(); this.lastSplitSize = a; if (this.position == "north" || this.position == "south") { this.panel.setSize(c.width, a); this.state.height = a } else { this.panel.setSize(a, c.height); this.state.width = a } this.layout.layout(); this.panel.saveState(); return false }, getSplitBar:function () { return this.split }, destroy:function () { Ext.destroy(this.miniSplitEl, this.split, this.splitEl); Ext.layout.BorderLayout.SplitRegion.superclass.destroy.call(this) }}); Ext.Container.LAYOUTS.border = Ext.layout.BorderLayout; Ext.layout.FormLayout = Ext.extend(Ext.layout.AnchorLayout, {labelSeparator:":", trackLabels:true, type:"form", onRemove:function (d) { Ext.layout.FormLayout.superclass.onRemove.call(this, d); if (this.trackLabels) { d.un("show", this.onFieldShow, this); d.un("hide", this.onFieldHide, this) } var b = d.getPositionEl(), a = d.getItemCt && d.getItemCt(); if (d.rendered && a) { if (b && b.dom) { b.insertAfter(a) } Ext.destroy(a); Ext.destroyMembers(d, "label", "itemCt"); if (d.customItemCt) { Ext.destroyMembers(d, "getItemCt", "customItemCt") } } }, setContainer:function (a) { Ext.layout.FormLayout.superclass.setContainer.call(this, a); if (a.labelAlign) { a.addClass("x-form-label-" + a.labelAlign) } if (a.hideLabels) { Ext.apply(this, {labelStyle:"display:none", elementStyle:"padding-left:0;", labelAdjust:0}) } else { this.labelSeparator = Ext.isDefined(a.labelSeparator) ? a.labelSeparator : this.labelSeparator; a.labelWidth = a.labelWidth || 100; if (Ext.isNumber(a.labelWidth)) { var b = Ext.isNumber(a.labelPad) ? a.labelPad : 5; Ext.apply(this, {labelAdjust:a.labelWidth + b, labelStyle:"width:" + a.labelWidth + "px;", elementStyle:"padding-left:" + (a.labelWidth + b) + "px"}) } if (a.labelAlign == "top") { Ext.apply(this, {labelStyle:"width:auto;", labelAdjust:0, elementStyle:"padding-left:0;"}) } } }, isHide:function (a) { return a.hideLabel || this.container.hideLabels }, onFieldShow:function (a) { a.getItemCt().removeClass("x-hide-" + a.hideMode); if (a.isComposite) { a.doLayout() } }, onFieldHide:function (a) { a.getItemCt().addClass("x-hide-" + a.hideMode) }, getLabelStyle:function (e) { var b = "", c = [this.labelStyle, e]; for (var d = 0, a = c.length; d < a; ++d) { if (c[d]) { b += c[d]; if (b.substr(-1, 1) != ";") { b += ";" } } } return b }, renderItem:function (e, a, d) { if (e && (e.isFormField || e.fieldLabel) && e.inputType != "hidden") { var b = this.getTemplateArgs(e); if (Ext.isNumber(a)) { a = d.dom.childNodes[a] || null } if (a) { e.itemCt = this.fieldTpl.insertBefore(a, b, true) } else { e.itemCt = this.fieldTpl.append(d, b, true) } if (!e.getItemCt) { Ext.apply(e, {getItemCt:function () { return e.itemCt }, customItemCt:true}) } e.label = e.getItemCt().child("label.x-form-item-label"); if (!e.rendered) { e.render("x-form-el-" + e.id) } else { if (!this.isValidParent(e, d)) { Ext.fly("x-form-el-" + e.id).appendChild(e.getPositionEl()) } } if (this.trackLabels) { if (e.hidden) { this.onFieldHide(e) } e.on({scope:this, show:this.onFieldShow, hide:this.onFieldHide}) } this.configureItem(e) } else { Ext.layout.FormLayout.superclass.renderItem.apply(this, arguments) } }, getTemplateArgs:function (c) { var a = !c.fieldLabel || c.hideLabel, b = (c.itemCls || this.container.itemCls || "") + (c.hideLabel ? " x-hide-label" : ""); if (Ext.isIE9 && Ext.isIEQuirks && c instanceof Ext.form.TextField) { b += " x-input-wrapper" } return{id:c.id, label:c.fieldLabel, itemCls:b, clearCls:c.clearCls || "x-form-clear-left", labelStyle:this.getLabelStyle(c.labelStyle), elementStyle:this.elementStyle || "", labelSeparator:a ? "" : (Ext.isDefined(c.labelSeparator) ? c.labelSeparator : this.labelSeparator)} }, adjustWidthAnchor:function (a, d) { if (d.label && !this.isHide(d) && (this.container.labelAlign != "top")) { var b = Ext.isIE6 || (Ext.isIE && !Ext.isStrict); return a - this.labelAdjust + (b ? -3 : 0) } return a }, adjustHeightAnchor:function (a, b) { if (b.label && !this.isHide(b) && (this.container.labelAlign == "top")) { return a - b.label.getHeight() } return a }, isValidParent:function (b, a) { return a && this.container.getEl().contains(b.getPositionEl()) }}); Ext.Container.LAYOUTS.form = Ext.layout.FormLayout; Ext.layout.AccordionLayout = Ext.extend(Ext.layout.FitLayout, {fill:true, autoWidth:true, titleCollapse:true, hideCollapseTool:false, collapseFirst:false, animate:false, sequence:false, activeOnTop:false, type:"accordion", renderItem:function (a) { if (this.animate === false) { a.animCollapse = false } a.collapsible = true; if (this.autoWidth) { a.autoWidth = true } if (this.titleCollapse) { a.titleCollapse = true } if (this.hideCollapseTool) { a.hideCollapseTool = true } if (this.collapseFirst !== undefined) { a.collapseFirst = this.collapseFirst } if (!this.activeItem && !a.collapsed) { this.setActiveItem(a, true) } else { if (this.activeItem && this.activeItem != a) { a.collapsed = true } } Ext.layout.AccordionLayout.superclass.renderItem.apply(this, arguments); a.header.addClass("x-accordion-hd"); a.on("beforeexpand", this.beforeExpand, this) }, onRemove:function (a) { Ext.layout.AccordionLayout.superclass.onRemove.call(this, a); if (a.rendered) { a.header.removeClass("x-accordion-hd") } a.un("beforeexpand", this.beforeExpand, this) }, beforeExpand:function (c, b) { var a = this.activeItem; if (a) { if (this.sequence) { delete this.activeItem; if (!a.collapsed) { a.collapse({callback:function () { c.expand(b || true) }, scope:this}); return false } } else { a.collapse(this.animate) } } this.setActive(c); if (this.activeOnTop) { c.el.dom.parentNode.insertBefore(c.el.dom, c.el.dom.parentNode.firstChild) } this.layout() }, setItemSize:function (g, e) { if (this.fill && g) { var d = 0, c, b = this.getRenderedItems(this.container), a = b.length, h; for (c = 0; c < a; c++) { if ((h = b[c]) != g && !h.hidden) { d += h.header.getHeight() } } e.height -= d; g.setSize(e) } }, setActiveItem:function (a) { this.setActive(a, true) }, setActive:function (c, b) { var a = this.activeItem; c = this.container.getComponent(c); if (a != c) { if (c.rendered && c.collapsed && b) { c.expand() } else { if (a) { a.fireEvent("deactivate", a) } this.activeItem = c; c.fireEvent("activate", c) } } }}); Ext.Container.LAYOUTS.accordion = Ext.layout.AccordionLayout; Ext.layout.Accordion = Ext.layout.AccordionLayout; Ext.layout.TableLayout = Ext.extend(Ext.layout.ContainerLayout, {monitorResize:false, type:"table", targetCls:"x-table-layout-ct", tableAttrs:null, setContainer:function (a) { Ext.layout.TableLayout.superclass.setContainer.call(this, a); this.currentRow = 0; this.currentColumn = 0; this.cells = [] }, onLayout:function (d, g) { var e = d.items.items, a = e.length, h, b; if (!this.table) { g.addClass("x-table-layout-ct"); this.table = g.createChild(Ext.apply({tag:"table", cls:"x-table-layout", cellspacing:0, cn:{tag:"tbody"}}, this.tableAttrs), null, true) } this.renderAll(d, g) }, getRow:function (a) { var b = this.table.tBodies[0].childNodes[a]; if (!b) { b = document.createElement("tr"); this.table.tBodies[0].appendChild(b) } return b }, getNextCell:function (j) { var a = this.getNextNonSpan(this.currentColumn, this.currentRow); var g = this.currentColumn = a[0], e = this.currentRow = a[1]; for (var i = e; i < e + (j.rowspan || 1); i++) { if (!this.cells[i]) { this.cells[i] = [] } for (var d = g; d < g + (j.colspan || 1); d++) { this.cells[i][d] = true } } var h = document.createElement("td"); if (j.cellId) { h.id = j.cellId } var b = "x-table-layout-cell"; if (j.cellCls) { b += " " + j.cellCls } h.className = b; if (j.colspan) { h.colSpan = j.colspan } if (j.rowspan) { h.rowSpan = j.rowspan } this.getRow(e).appendChild(h); return h }, getNextNonSpan:function (a, c) { var b = this.columns; while ((b && a >= b) || (this.cells[c] && this.cells[c][a])) { if (b && a >= b) { c++; a = 0 } else { a++ } } return[a, c] }, renderItem:function (e, a, d) { if (!this.table) { this.table = d.createChild(Ext.apply({tag:"table", cls:"x-table-layout", cellspacing:0, cn:{tag:"tbody"}}, this.tableAttrs), null, true) } if (e && !e.rendered) { e.render(this.getNextCell(e)); this.configureItem(e) } else { if (e && !this.isValidParent(e, d)) { var b = this.getNextCell(e); b.insertBefore(e.getPositionEl().dom, null); e.container = Ext.get(b); this.configureItem(e) } } }, isValidParent:function (b, a) { return b.getPositionEl().up("table", 5).dom.parentNode === (a.dom || a) }, destroy:function () { delete this.table; Ext.layout.TableLayout.superclass.destroy.call(this) }}); Ext.Container.LAYOUTS.table = Ext.layout.TableLayout; Ext.layout.AbsoluteLayout = Ext.extend(Ext.layout.AnchorLayout, {extraCls:"x-abs-layout-item", type:"absolute", onLayout:function (a, b) { b.position(); this.paddingLeft = b.getPadding("l"); this.paddingTop = b.getPadding("t"); Ext.layout.AbsoluteLayout.superclass.onLayout.call(this, a, b) }, adjustWidthAnchor:function (b, a) { return b ? b - a.getPosition(true)[0] + this.paddingLeft : b }, adjustHeightAnchor:function (b, a) { return b ? b - a.getPosition(true)[1] + this.paddingTop : b }}); Ext.Container.LAYOUTS.absolute = Ext.layout.AbsoluteLayout; Ext.layout.BoxLayout = Ext.extend(Ext.layout.ContainerLayout, {defaultMargins:{left:0, top:0, right:0, bottom:0}, padding:"0", pack:"start", monitorResize:true, type:"box", scrollOffset:0, extraCls:"x-box-item", targetCls:"x-box-layout-ct", innerCls:"x-box-inner", constructor:function (a) { Ext.layout.BoxLayout.superclass.constructor.call(this, a); if (Ext.isString(this.defaultMargins)) { this.defaultMargins = this.parseMargins(this.defaultMargins) } var d = this.overflowHandler; if (typeof d == "string") { d = {type:d} } var c = "none"; if (d && d.type != undefined) { c = d.type } var b = Ext.layout.boxOverflow[c]; if (b[this.type]) { b = b[this.type] } this.overflowHandler = new b(this, d) }, onLayout:function (b, h) { Ext.layout.BoxLayout.superclass.onLayout.call(this, b, h); var d = this.getLayoutTargetSize(), i = this.getVisibleItems(b), c = this.calculateChildBoxes(i, d), g = c.boxes, j = c.meta; if (d.width > 0) { var k = this.overflowHandler, a = j.tooNarrow ? "handleOverflow" : "clearOverflow"; var e = k[a](c, d); if (e) { if (e.targetSize) { d = e.targetSize } if (e.recalculate) { i = this.getVisibleItems(b); c = this.calculateChildBoxes(i, d); g = c.boxes } } } this.layoutTargetLastSize = d; this.childBoxCache = c; this.updateInnerCtSize(d, c); this.updateChildBoxes(g); this.handleTargetOverflow(d, b, h) }, updateChildBoxes:function (c) { for (var b = 0, e = c.length; b < e; b++) { var d = c[b], a = d.component; if (d.dirtySize) { a.setSize(d.width, d.height) } if (isNaN(d.left) || isNaN(d.top)) { continue } a.setPosition(d.left, d.top) } }, updateInnerCtSize:function (c, h) { var i = this.align, g = this.padding, e = c.width, a = c.height; if (this.type == "hbox") { var b = e, d = h.meta.maxHeight + g.top + g.bottom; if (i == "stretch") { d = a } else { if (i == "middle") { d = Math.max(a, d) } } } else { var d = a, b = h.meta.maxWidth + g.left + g.right; if (i == "stretch") { b = e } else { if (i == "center") { b = Math.max(e, b) } } } this.innerCt.setSize(b || undefined, d || undefined) }, handleTargetOverflow:function (d, a, c) { var e = c.getStyle("overflow"); if (e && e != "hidden" && !this.adjustmentPass) { var b = this.getLayoutTargetSize(); if (b.width != d.width || b.height != d.height) { this.adjustmentPass = true; this.onLayout(a, c) } } delete this.adjustmentPass }, isValidParent:function (b, a) { return this.innerCt && b.getPositionEl().dom.parentNode == this.innerCt.dom }, getVisibleItems:function (g) { var g = g || this.container, e = g.getLayoutTarget(), h = g.items.items, a = h.length, d, j, b = []; for (d = 0; d < a; d++) { if ((j = h[d]).rendered && this.isValidParent(j, e) && j.hidden !== true && j.collapsed !== true && j.shouldLayout !== false) { b.push(j) } } return b }, renderAll:function (a, b) { if (!this.innerCt) { this.innerCt = b.createChild({cls:this.innerCls}); this.padding = this.parseMargins(this.padding) } Ext.layout.BoxLayout.superclass.renderAll.call(this, a, this.innerCt) }, getLayoutTargetSize:function () { var b = this.container.getLayoutTarget(), a; if (b) { a = b.getViewSize(); if (Ext.isIE && Ext.isStrict && a.width == 0) { a = b.getStyleSize() } a.width -= b.getPadding("lr"); a.height -= b.getPadding("tb") } return a }, renderItem:function (a) { if (Ext.isString(a.margins)) { a.margins = this.parseMargins(a.margins) } else { if (!a.margins) { a.margins = this.defaultMargins } } Ext.layout.BoxLayout.superclass.renderItem.apply(this, arguments) }, destroy:function () { Ext.destroy(this.overflowHandler); Ext.layout.BoxLayout.superclass.destroy.apply(this, arguments) }}); Ext.layout.boxOverflow.None = Ext.extend(Object, {constructor:function (b, a) { this.layout = b; Ext.apply(this, a || {}) }, handleOverflow:Ext.emptyFn, clearOverflow:Ext.emptyFn}); Ext.layout.boxOverflow.none = Ext.layout.boxOverflow.None; Ext.layout.boxOverflow.Menu = Ext.extend(Ext.layout.boxOverflow.None, {afterCls:"x-strip-right", noItemsMenuText:'
(None)
', constructor:function (a) { Ext.layout.boxOverflow.Menu.superclass.constructor.apply(this, arguments); this.menuItems = [] }, createInnerElements:function () { if (!this.afterCt) { this.afterCt = this.layout.innerCt.insertSibling({cls:this.afterCls}, "before") } }, clearOverflow:function (a, g) { var e = g.width + (this.afterCt ? this.afterCt.getWidth() : 0), b = this.menuItems; this.hideTrigger(); for (var c = 0, d = b.length; c < d; c++) { b.pop().component.show() } return{targetSize:{height:g.height, width:e}} }, showTrigger:function () { this.createMenu(); this.menuTrigger.show() }, hideTrigger:function () { if (this.menuTrigger != undefined) { this.menuTrigger.hide() } }, beforeMenuShow:function (h) { var b = this.menuItems, a = b.length, g, e; var c = function (j, i) { return j.isXType("buttongroup") && !(i instanceof Ext.Toolbar.Separator) }; this.clearMenu(); h.removeAll(); for (var d = 0; d < a; d++) { g = b[d].component; if (e && (c(g, e) || c(e, g))) { h.add("-") } this.addComponentToMenu(h, g); e = g } if (h.items.length < 1) { h.add(this.noItemsMenuText) } }, createMenuConfig:function (c, a) { var b = Ext.apply({}, c.initialConfig), d = c.toggleGroup; Ext.copyTo(b, c, ["iconCls", "icon", "itemId", "disabled", "handler", "scope", "menu"]); Ext.apply(b, {text:c.overflowText || c.text, hideOnClick:a}); if (d || c.enableToggle) { Ext.apply(b, {group:d, checked:c.pressed, listeners:{checkchange:function (g, e) { c.toggle(e) }}}) } delete b.ownerCt; delete b.xtype; delete b.id; return b }, addComponentToMenu:function (b, a) { if (a instanceof Ext.Toolbar.Separator) { b.add("-") } else { if (Ext.isFunction(a.isXType)) { if (a.isXType("splitbutton")) { b.add(this.createMenuConfig(a, true)) } else { if (a.isXType("button")) { b.add(this.createMenuConfig(a, !a.menu)) } else { if (a.isXType("buttongroup")) { a.items.each(function (c) { this.addComponentToMenu(b, c) }, this) } } } } } }, clearMenu:function () { var a = this.moreMenu; if (a && a.items) { a.items.each(function (b) { delete b.menu }) } }, createMenu:function () { if (!this.menuTrigger) { this.createInnerElements(); this.menu = new Ext.menu.Menu({ownerCt:this.layout.container, listeners:{scope:this, beforeshow:this.beforeMenuShow}}); this.menuTrigger = new Ext.Button({iconCls:"x-toolbar-more-icon", cls:"x-toolbar-more", menu:this.menu, renderTo:this.afterCt}) } }, destroy:function () { Ext.destroy(this.menu, this.menuTrigger) }}); Ext.layout.boxOverflow.menu = Ext.layout.boxOverflow.Menu; Ext.layout.boxOverflow.HorizontalMenu = Ext.extend(Ext.layout.boxOverflow.Menu, {constructor:function () { Ext.layout.boxOverflow.HorizontalMenu.superclass.constructor.apply(this, arguments); var c = this, b = c.layout, a = b.calculateChildBoxes; b.calculateChildBoxes = function (d, i) { var l = a.apply(b, arguments), k = l.meta, e = c.menuItems; var j = 0; for (var g = 0, h = e.length; g < h; g++) { j += e[g].width } k.minimumWidth += j; k.tooNarrow = k.minimumWidth > i.width; return l } }, handleOverflow:function (d, h) { this.showTrigger(); var k = h.width - this.afterCt.getWidth(), l = d.boxes, e = 0, r = false; for (var o = 0, c = l.length; o < c; o++) { e += l[o].width } var a = k - e, g = 0; for (var o = 0, c = this.menuItems.length; o < c; o++) { var n = this.menuItems[o], m = n.component, b = n.width; if (b < a) { m.show(); a -= b; g++; r = true } else { break } } if (r) { this.menuItems = this.menuItems.slice(g) } else { for (var j = l.length - 1; j >= 0; j--) { var q = l[j].component, p = l[j].left + l[j].width; if (p >= k) { this.menuItems.unshift({component:q, width:l[j].width}); q.hide() } else { break } } } if (this.menuItems.length == 0) { this.hideTrigger() } return{targetSize:{height:h.height, width:k}, recalculate:r} }}); Ext.layout.boxOverflow.menu.hbox = Ext.layout.boxOverflow.HorizontalMenu; Ext.layout.boxOverflow.Scroller = Ext.extend(Ext.layout.boxOverflow.None, {animateScroll:true, scrollIncrement:100, wheelIncrement:3, scrollRepeatInterval:400, scrollDuration:0.4, beforeCls:"x-strip-left", afterCls:"x-strip-right", scrollerCls:"x-strip-scroller", beforeScrollerCls:"x-strip-scroller-left", afterScrollerCls:"x-strip-scroller-right", createWheelListener:function () { this.layout.innerCt.on({scope:this, mousewheel:function (a) { a.stopEvent(); this.scrollBy(a.getWheelDelta() * this.wheelIncrement * -1, false) }}) }, handleOverflow:function (a, b) { this.createInnerElements(); this.showScrollers() }, clearOverflow:function () { this.hideScrollers() }, showScrollers:function () { this.createScrollers(); this.beforeScroller.show(); this.afterScroller.show(); this.updateScrollButtons() }, hideScrollers:function () { if (this.beforeScroller != undefined) { this.beforeScroller.hide(); this.afterScroller.hide() } }, createScrollers:function () { if (!this.beforeScroller && !this.afterScroller) { var a = this.beforeCt.createChild({cls:String.format("{0} {1} ", this.scrollerCls, this.beforeScrollerCls)}); var b = this.afterCt.createChild({cls:String.format("{0} {1}", this.scrollerCls, this.afterScrollerCls)}); a.addClassOnOver(this.beforeScrollerCls + "-hover"); b.addClassOnOver(this.afterScrollerCls + "-hover"); a.setVisibilityMode(Ext.Element.DISPLAY); b.setVisibilityMode(Ext.Element.DISPLAY); this.beforeRepeater = new Ext.util.ClickRepeater(a, {interval:this.scrollRepeatInterval, handler:this.scrollLeft, scope:this}); this.afterRepeater = new Ext.util.ClickRepeater(b, {interval:this.scrollRepeatInterval, handler:this.scrollRight, scope:this}); this.beforeScroller = a; this.afterScroller = b } }, destroy:function () { Ext.destroy(this.beforeScroller, this.afterScroller, this.beforeRepeater, this.afterRepeater, this.beforeCt, this.afterCt) }, scrollBy:function (b, a) { this.scrollTo(this.getScrollPosition() + b, a) }, getItem:function (a) { if (Ext.isString(a)) { a = Ext.getCmp(a) } else { if (Ext.isNumber(a)) { a = this.items[a] } } return a }, getScrollAnim:function () { return{duration:this.scrollDuration, callback:this.updateScrollButtons, scope:this} }, updateScrollButtons:function () { if (this.beforeScroller == undefined || this.afterScroller == undefined) { return } var d = this.atExtremeBefore() ? "addClass" : "removeClass", c = this.atExtremeAfter() ? "addClass" : "removeClass", a = this.beforeScrollerCls + "-disabled", b = this.afterScrollerCls + "-disabled"; this.beforeScroller[d](a); this.afterScroller[c](b); this.scrolling = false }, atExtremeBefore:function () { return this.getScrollPosition() === 0 }, scrollLeft:function (a) { this.scrollBy(-this.scrollIncrement, a) }, scrollRight:function (a) { this.scrollBy(this.scrollIncrement, a) }, scrollToItem:function (d, b) { d = this.getItem(d); if (d != undefined) { var a = this.getItemVisibility(d); if (!a.fullyVisible) { var c = d.getBox(true, true), e = c.x; if (a.hiddenRight) { e -= (this.layout.innerCt.getWidth() - c.width) } this.scrollTo(e, b) } } }, getItemVisibility:function (e) { var d = this.getItem(e).getBox(true, true), a = d.x, c = d.x + d.width, g = this.getScrollPosition(), b = this.layout.innerCt.getWidth() + g; return{hiddenLeft:a < g, hiddenRight:c > b, fullyVisible:a > g && c < b} }}); Ext.layout.boxOverflow.scroller = Ext.layout.boxOverflow.Scroller; Ext.layout.boxOverflow.VerticalScroller = Ext.extend(Ext.layout.boxOverflow.Scroller, {scrollIncrement:75, wheelIncrement:2, handleOverflow:function (a, b) { Ext.layout.boxOverflow.VerticalScroller.superclass.handleOverflow.apply(this, arguments); return{targetSize:{height:b.height - (this.beforeCt.getHeight() + this.afterCt.getHeight()), width:b.width}} }, createInnerElements:function () { var a = this.layout.innerCt; if (!this.beforeCt) { this.beforeCt = a.insertSibling({cls:this.beforeCls}, "before"); this.afterCt = a.insertSibling({cls:this.afterCls}, "after"); this.createWheelListener() } }, scrollTo:function (a, b) { var d = this.getScrollPosition(), c = a.constrain(0, this.getMaxScrollBottom()); if (c != d && !this.scrolling) { if (b == undefined) { b = this.animateScroll } this.layout.innerCt.scrollTo("top", c, b ? this.getScrollAnim() : false); if (b) { this.scrolling = true } else { this.scrolling = false; this.updateScrollButtons() } } }, getScrollPosition:function () { return parseInt(this.layout.innerCt.dom.scrollTop, 10) || 0 }, getMaxScrollBottom:function () { return this.layout.innerCt.dom.scrollHeight - this.layout.innerCt.getHeight() }, atExtremeAfter:function () { return this.getScrollPosition() >= this.getMaxScrollBottom() }}); Ext.layout.boxOverflow.scroller.vbox = Ext.layout.boxOverflow.VerticalScroller; Ext.layout.boxOverflow.HorizontalScroller = Ext.extend(Ext.layout.boxOverflow.Scroller, {handleOverflow:function (a, b) { Ext.layout.boxOverflow.HorizontalScroller.superclass.handleOverflow.apply(this, arguments); return{targetSize:{height:b.height, width:b.width - (this.beforeCt.getWidth() + this.afterCt.getWidth())}} }, createInnerElements:function () { var a = this.layout.innerCt; if (!this.beforeCt) { this.afterCt = a.insertSibling({cls:this.afterCls}, "before"); this.beforeCt = a.insertSibling({cls:this.beforeCls}, "before"); this.createWheelListener() } }, scrollTo:function (a, b) { var d = this.getScrollPosition(), c = a.constrain(0, this.getMaxScrollRight()); if (c != d && !this.scrolling) { if (b == undefined) { b = this.animateScroll } this.layout.innerCt.scrollTo("left", c, b ? this.getScrollAnim() : false); if (b) { this.scrolling = true } else { this.scrolling = false; this.updateScrollButtons() } } }, getScrollPosition:function () { return parseInt(this.layout.innerCt.dom.scrollLeft, 10) || 0 }, getMaxScrollRight:function () { return this.layout.innerCt.dom.scrollWidth - this.layout.innerCt.getWidth() }, atExtremeAfter:function () { return this.getScrollPosition() >= this.getMaxScrollRight() }}); Ext.layout.boxOverflow.scroller.hbox = Ext.layout.boxOverflow.HorizontalScroller; Ext.layout.HBoxLayout = Ext.extend(Ext.layout.BoxLayout, {align:"top", type:"hbox", calculateChildBoxes:function (r, b) { var F = r.length, R = this.padding, D = R.top, U = R.left, y = D + R.bottom, O = U + R.right, a = b.width - this.scrollOffset, e = b.height, o = Math.max(0, e - y), P = this.pack == "start", W = this.pack == "center", A = this.pack == "end", L = 0, Q = 0, T = 0, l = 0, X = 0, H = [], k, J, M, V, w, j, S, I, c, x, q, N; for (S = 0; S < F; S++) { k = r[S]; M = k.height; J = k.width; j = !k.hasLayout && typeof k.doLayout == "function"; if (typeof J != "number") { if (k.flex && !J) { T += k.flex } else { if (!J && j) { k.doLayout() } V = k.getSize(); J = V.width; M = V.height } } w = k.margins; x = w.left + w.right; L += x + (J || 0); l += x + (k.flex ? k.minWidth || 0 : J); X += x + (k.minWidth || J || 0); if (typeof M != "number") { if (j) { k.doLayout() } M = k.getHeight() } Q = Math.max(Q, M + w.top + w.bottom); H.push({component:k, height:M || undefined, width:J || undefined}) } var K = l - a, p = X > a; var n = Math.max(0, a - L - O); if (p) { for (S = 0; S < F; S++) { H[S].width = r[S].minWidth || r[S].width || H[S].width } } else { if (K > 0) { var C = []; for (var E = 0, v = F; E < v; E++) { var B = r[E], t = B.minWidth || 0; if (B.flex) { H[E].width = t } else { C.push({minWidth:t, available:H[E].width - t, index:E}) } } C.sort(function (Y, i) { return Y.available > i.available ? 1 : -1 }); for (var S = 0, v = C.length; S < v; S++) { var G = C[S].index; if (G == undefined) { continue } var B = r[G], m = H[G], u = m.width, t = B.minWidth, d = Math.max(t, u - Math.ceil(K / (v - S))), g = u - d; H[G].width = d; K -= g } } else { var h = n, s = T; for (S = 0; S < F; S++) { k = r[S]; I = H[S]; w = k.margins; q = w.top + w.bottom; if (P && k.flex && !k.width) { c = Math.ceil((k.flex / s) * h); h -= c; s -= k.flex; I.width = c; I.dirtySize = true } } } } if (W) { U += n / 2 } else { if (A) { U += n } } for (S = 0; S < F; S++) { k = r[S]; I = H[S]; w = k.margins; U += w.left; q = w.top + w.bottom; I.left = U; I.top = D + w.top; switch (this.align) { case"stretch": N = o - q; I.height = N.constrain(k.minHeight || 0, k.maxHeight || 1000000); I.dirtySize = true; break; case"stretchmax": N = Q - q; I.height = N.constrain(k.minHeight || 0, k.maxHeight || 1000000); I.dirtySize = true; break; case"middle": var z = o - I.height - q; if (z > 0) { I.top = D + q + (z / 2) } } U += I.width + w.right } return{boxes:H, meta:{maxHeight:Q, nonFlexWidth:L, desiredWidth:l, minimumWidth:X, shortfall:l - a, tooNarrow:p}} }}); Ext.Container.LAYOUTS.hbox = Ext.layout.HBoxLayout; Ext.layout.VBoxLayout = Ext.extend(Ext.layout.BoxLayout, {align:"left", type:"vbox", calculateChildBoxes:function (o, b) { var E = o.length, R = this.padding, C = R.top, V = R.left, x = C + R.bottom, O = V + R.right, a = b.width - this.scrollOffset, c = b.height, K = Math.max(0, a - O), P = this.pack == "start", X = this.pack == "center", z = this.pack == "end", k = 0, u = 0, U = 0, L = 0, m = 0, G = [], h, I, N, W, t, g, T, H, S, w, n, d, r; for (T = 0; T < E; T++) { h = o[T]; N = h.height; I = h.width; g = !h.hasLayout && typeof h.doLayout == "function"; if (typeof N != "number") { if (h.flex && !N) { U += h.flex } else { if (!N && g) { h.doLayout() } W = h.getSize(); I = W.width; N = W.height } } t = h.margins; n = t.top + t.bottom; k += n + (N || 0); L += n + (h.flex ? h.minHeight || 0 : N); m += n + (h.minHeight || N || 0); if (typeof I != "number") { if (g) { h.doLayout() } I = h.getWidth() } u = Math.max(u, I + t.left + t.right); G.push({component:h, height:N || undefined, width:I || undefined}) } var M = L - c, l = m > c; var q = Math.max(0, (c - k - x)); if (l) { for (T = 0, r = E; T < r; T++) { G[T].height = o[T].minHeight || o[T].height || G[T].height } } else { if (M > 0) { var J = []; for (var D = 0, r = E; D < r; D++) { var A = o[D], s = A.minHeight || 0; if (A.flex) { G[D].height = s } else { J.push({minHeight:s, available:G[D].height - s, index:D}) } } J.sort(function (Y, i) { return Y.available > i.available ? 1 : -1 }); for (var T = 0, r = J.length; T < r; T++) { var F = J[T].index; if (F == undefined) { continue } var A = o[F], j = G[F], v = j.height, s = A.minHeight, B = Math.max(s, v - Math.ceil(M / (r - T))), e = v - B; G[F].height = B; M -= e } } else { var Q = q, p = U; for (T = 0; T < E; T++) { h = o[T]; H = G[T]; t = h.margins; w = t.left + t.right; if (P && h.flex && !h.height) { S = Math.ceil((h.flex / p) * Q); Q -= S; p -= h.flex; H.height = S; H.dirtySize = true } } } } if (X) { C += q / 2 } else { if (z) { C += q } } for (T = 0; T < E; T++) { h = o[T]; H = G[T]; t = h.margins; C += t.top; w = t.left + t.right; H.left = V + t.left; H.top = C; switch (this.align) { case"stretch": d = K - w; H.width = d.constrain(h.minWidth || 0, h.maxWidth || 1000000); H.dirtySize = true; break; case"stretchmax": d = u - w; H.width = d.constrain(h.minWidth || 0, h.maxWidth || 1000000); H.dirtySize = true; break; case"center": var y = K - H.width - w; if (y > 0) { H.left = V + w + (y / 2) } } C += H.height + t.bottom } return{boxes:G, meta:{maxWidth:u, nonFlexHeight:k, desiredHeight:L, minimumHeight:m, shortfall:L - c, tooNarrow:l}} }}); Ext.Container.LAYOUTS.vbox = Ext.layout.VBoxLayout; Ext.layout.ToolbarLayout = Ext.extend(Ext.layout.ContainerLayout, {monitorResize:true, type:"toolbar", triggerWidth:18, noItemsMenuText:'
(None)
', lastOverflow:false, tableHTML:['', "", "", '", '", "", "", "
', '', "", '', "", "
", "
', '', "", "", "", "", "", "", "
", '', "", '', "", "
", "
", '', "", '', "", "
", "
", "
"].join(""), onLayout:function (e, j) { if (!this.leftTr) { var h = e.buttonAlign == "center" ? "center" : "left"; j.addClass("x-toolbar-layout-ct"); j.insertHtml("beforeEnd", String.format(this.tableHTML, h)); this.leftTr = j.child("tr.x-toolbar-left-row", true); this.rightTr = j.child("tr.x-toolbar-right-row", true); this.extrasTr = j.child("tr.x-toolbar-extras-row", true); if (this.hiddenItem == undefined) { this.hiddenItems = [] } } var k = e.buttonAlign == "right" ? this.rightTr : this.leftTr, l = e.items.items, d = 0; for (var b = 0, g = l.length, m; b < g; b++, d++) { m = l[b]; if (m.isFill) { k = this.rightTr; d = -1 } else { if (!m.rendered) { m.render(this.insertCell(m, k, d)); this.configureItem(m) } else { if (!m.xtbHidden && !this.isValidParent(m, k.childNodes[d])) { var a = this.insertCell(m, k, d); a.appendChild(m.getPositionEl().dom); m.container = Ext.get(a) } } } } this.cleanup(this.leftTr); this.cleanup(this.rightTr); this.cleanup(this.extrasTr); this.fitToSize(j) }, cleanup:function (b) { var e = b.childNodes, a, d; for (a = e.length - 1; a >= 0 && (d = e[a]); a--) { if (!d.firstChild) { b.removeChild(d) } } }, insertCell:function (e, b, a) { var d = document.createElement("td"); d.className = "x-toolbar-cell"; b.insertBefore(d, b.childNodes[a] || null); return d }, hideItem:function (a) { this.hiddenItems.push(a); a.xtbHidden = true; a.xtbWidth = a.getPositionEl().dom.parentNode.offsetWidth; a.hide() }, unhideItem:function (a) { a.show(); a.xtbHidden = false; this.hiddenItems.remove(a) }, getItemWidth:function (a) { return a.hidden ? (a.xtbWidth || 0) : a.getPositionEl().dom.parentNode.offsetWidth }, fitToSize:function (k) { if (this.container.enableOverflow === false) { return } var b = k.dom.clientWidth, j = k.dom.firstChild.offsetWidth, m = b - this.triggerWidth, a = this.lastWidth || 0, c = this.hiddenItems, e = c.length != 0, n = b >= a; this.lastWidth = b; if (j > b || (e && n)) { var l = this.container.items.items, h = l.length, d = 0, o; for (var g = 0; g < h; g++) { o = l[g]; if (!o.isFill) { d += this.getItemWidth(o); if (d > m) { if (!(o.hidden || o.xtbHidden)) { this.hideItem(o) } } else { if (o.xtbHidden) { this.unhideItem(o) } } } } } e = c.length != 0; if (e) { this.initMore(); if (!this.lastOverflow) { this.container.fireEvent("overflowchange", this.container, true); this.lastOverflow = true } } else { if (this.more) { this.clearMenu(); this.more.destroy(); delete this.more; if (this.lastOverflow) { this.container.fireEvent("overflowchange", this.container, false); this.lastOverflow = false } } } }, createMenuConfig:function (c, a) { var b = Ext.apply({}, c.initialConfig), d = c.toggleGroup; Ext.copyTo(b, c, ["iconCls", "icon", "itemId", "disabled", "handler", "scope", "menu"]); Ext.apply(b, {text:c.overflowText || c.text, hideOnClick:a}); if (d || c.enableToggle) { Ext.apply(b, {group:d, checked:c.pressed, listeners:{checkchange:function (g, e) { c.toggle(e) }}}) } delete b.ownerCt; delete b.xtype; delete b.id; return b }, addComponentToMenu:function (b, a) { if (a instanceof Ext.Toolbar.Separator) { b.add("-") } else { if (Ext.isFunction(a.isXType)) { if (a.isXType("splitbutton")) { b.add(this.createMenuConfig(a, true)) } else { if (a.isXType("button")) { b.add(this.createMenuConfig(a, !a.menu)) } else { if (a.isXType("buttongroup")) { a.items.each(function (c) { this.addComponentToMenu(b, c) }, this) } } } } } }, clearMenu:function () { var a = this.moreMenu; if (a && a.items) { a.items.each(function (b) { delete b.menu }) } }, beforeMoreShow:function (h) { var b = this.container.items.items, a = b.length, g, e; var c = function (j, i) { return j.isXType("buttongroup") && !(i instanceof Ext.Toolbar.Separator) }; this.clearMenu(); h.removeAll(); for (var d = 0; d < a; d++) { g = b[d]; if (g.xtbHidden) { if (e && (c(g, e) || c(e, g))) { h.add("-") } this.addComponentToMenu(h, g); e = g } } if (h.items.length < 1) { h.add(this.noItemsMenuText) } }, initMore:function () { if (!this.more) { this.moreMenu = new Ext.menu.Menu({ownerCt:this.container, listeners:{beforeshow:this.beforeMoreShow, scope:this}}); this.more = new Ext.Button({iconCls:"x-toolbar-more-icon", cls:"x-toolbar-more", menu:this.moreMenu, ownerCt:this.container}); var a = this.insertCell(this.more, this.extrasTr, 100); this.more.render(a) } }, destroy:function () { Ext.destroy(this.more, this.moreMenu); delete this.leftTr; delete this.rightTr; delete this.extrasTr; Ext.layout.ToolbarLayout.superclass.destroy.call(this) }}); Ext.Container.LAYOUTS.toolbar = Ext.layout.ToolbarLayout; Ext.layout.MenuLayout = Ext.extend(Ext.layout.ContainerLayout, {monitorResize:true, type:"menu", setContainer:function (a) { this.monitorResize = !a.floating; a.on("autosize", this.doAutoSize, this); Ext.layout.MenuLayout.superclass.setContainer.call(this, a) }, renderItem:function (g, b, e) { if (!this.itemTpl) { this.itemTpl = Ext.layout.MenuLayout.prototype.itemTpl = new Ext.XTemplate('
  • ', '', '{altText}', "", "
  • ") } if (g && !g.rendered) { if (Ext.isNumber(b)) { b = e.dom.childNodes[b] } var d = this.getItemArgs(g); g.render(g.positionEl = b ? this.itemTpl.insertBefore(b, d, true) : this.itemTpl.append(e, d, true)); g.positionEl.menuItemId = g.getItemId(); if (!d.isMenuItem && d.needsIcon) { g.positionEl.addClass("x-menu-list-item-indent") } this.configureItem(g) } else { if (g && !this.isValidParent(g, e)) { if (Ext.isNumber(b)) { b = e.dom.childNodes[b] } e.dom.insertBefore(g.getActionEl().dom, b || null) } } }, getItemArgs:function (d) { var a = d instanceof Ext.menu.Item, b = !(a || d instanceof Ext.menu.Separator); return{isMenuItem:a, needsIcon:b && (d.icon || d.iconCls), icon:d.icon || Ext.BLANK_IMAGE_URL, iconCls:"x-menu-item-icon " + (d.iconCls || ""), itemId:"x-menu-el-" + d.id, itemCls:"x-menu-list-item ", altText:d.altText || ""} }, isValidParent:function (b, a) { return b.el.up("li.x-menu-list-item", 5).dom.parentNode === (a.dom || a) }, onLayout:function (a, b) { Ext.layout.MenuLayout.superclass.onLayout.call(this, a, b); this.doAutoSize() }, doAutoSize:function () { var c = this.container, a = c.width; if (c.floating) { if (a) { c.setWidth(a) } else { if (Ext.isIE) { c.setWidth(Ext.isStrict && (Ext.isIE7 || Ext.isIE8 || Ext.isIE9) ? "auto" : c.minWidth); var d = c.getEl(), b = d.dom.offsetWidth; c.setWidth(c.getLayoutTarget().getWidth() + d.getFrameWidth("lr")) } } } }}); Ext.Container.LAYOUTS.menu = Ext.layout.MenuLayout; Ext.Viewport = Ext.extend(Ext.Container, {initComponent:function () { Ext.Viewport.superclass.initComponent.call(this); document.getElementsByTagName("html")[0].className += " x-viewport"; this.el = Ext.getBody(); this.el.setHeight = Ext.emptyFn; this.el.setWidth = Ext.emptyFn; this.el.setSize = Ext.emptyFn; this.el.dom.scroll = "no"; this.allowDomMove = false; this.autoWidth = true; this.autoHeight = true; Ext.EventManager.onWindowResize(this.fireResize, this); this.renderTo = this.el }, fireResize:function (a, b) { this.fireEvent("resize", this, a, b, a, b) }}); Ext.reg("viewport", Ext.Viewport); Ext.Panel = Ext.extend(Ext.Container, {baseCls:"x-panel", collapsedCls:"x-panel-collapsed", maskDisabled:true, animCollapse:Ext.enableFx, headerAsText:true, buttonAlign:"right", collapsed:false, collapseFirst:true, minButtonWidth:75, elements:"body", preventBodyReset:false, padding:undefined, resizeEvent:"bodyresize", toolTarget:"header", collapseEl:"bwrap", slideAnchor:"t", disabledClass:"", deferHeight:true, expandDefaults:{duration:0.25}, collapseDefaults:{duration:0.25}, initComponent:function () { Ext.Panel.superclass.initComponent.call(this); this.addEvents("bodyresize", "titlechange", "iconchange", "collapse", "expand", "beforecollapse", "beforeexpand", "beforeclose", "close", "activate", "deactivate"); if (this.unstyled) { this.baseCls = "x-plain" } this.toolbars = []; if (this.tbar) { this.elements += ",tbar"; this.topToolbar = this.createToolbar(this.tbar); this.tbar = null } if (this.bbar) { this.elements += ",bbar"; this.bottomToolbar = this.createToolbar(this.bbar); this.bbar = null } if (this.header === true) { this.elements += ",header"; this.header = null } else { if (this.headerCfg || (this.title && this.header !== false)) { this.elements += ",header" } } if (this.footerCfg || this.footer === true) { this.elements += ",footer"; this.footer = null } if (this.buttons) { this.fbar = this.buttons; this.buttons = null } if (this.fbar) { this.createFbar(this.fbar) } if (this.autoLoad) { this.on("render", this.doAutoLoad, this, {delay:10}) } }, createFbar:function (b) { var a = this.minButtonWidth; this.elements += ",footer"; this.fbar = this.createToolbar(b, {buttonAlign:this.buttonAlign, toolbarCls:"x-panel-fbar", enableOverflow:false, defaults:function (d) { return{minWidth:d.minWidth || a} }}); this.fbar.items.each(function (d) { d.minWidth = d.minWidth || this.minButtonWidth }, this); this.buttons = this.fbar.items.items }, createToolbar:function (b, c) { var a; if (Ext.isArray(b)) { b = {items:b} } a = b.events ? Ext.apply(b, c) : this.createComponent(Ext.apply({}, b, c), "toolbar"); this.toolbars.push(a); return a }, createElement:function (a, c) { if (this[a]) { c.appendChild(this[a].dom); return } if (a === "bwrap" || this.elements.indexOf(a) != -1) { if (this[a + "Cfg"]) { this[a] = Ext.fly(c).createChild(this[a + "Cfg"]) } else { var b = document.createElement("div"); b.className = this[a + "Cls"]; this[a] = Ext.get(c.appendChild(b)) } if (this[a + "CssClass"]) { this[a].addClass(this[a + "CssClass"]) } if (this[a + "Style"]) { this[a].applyStyles(this[a + "Style"]) } } }, onRender:function (g, e) { Ext.Panel.superclass.onRender.call(this, g, e); this.createClasses(); var a = this.el, h = a.dom, k, i; if (this.collapsible && !this.hideCollapseTool) { this.tools = this.tools ? this.tools.slice(0) : []; this.tools[this.collapseFirst ? "unshift" : "push"]({id:"toggle", handler:this.toggleCollapse, scope:this}) } if (this.tools) { i = this.tools; this.elements += (this.header !== false) ? ",header" : "" } this.tools = {}; a.addClass(this.baseCls); if (h.firstChild) { this.header = a.down("." + this.headerCls); this.bwrap = a.down("." + this.bwrapCls); var j = this.bwrap ? this.bwrap : a; this.tbar = j.down("." + this.tbarCls); this.body = j.down("." + this.bodyCls); this.bbar = j.down("." + this.bbarCls); this.footer = j.down("." + this.footerCls); this.fromMarkup = true } if (this.preventBodyReset === true) { a.addClass("x-panel-reset") } if (this.cls) { a.addClass(this.cls) } if (this.buttons) { this.elements += ",footer" } if (this.frame) { a.insertHtml("afterBegin", String.format(Ext.Element.boxMarkup, this.baseCls)); this.createElement("header", h.firstChild.firstChild.firstChild); this.createElement("bwrap", h); k = this.bwrap.dom; var c = h.childNodes[1], b = h.childNodes[2]; k.appendChild(c); k.appendChild(b); var l = k.firstChild.firstChild.firstChild; this.createElement("tbar", l); this.createElement("body", l); this.createElement("bbar", l); this.createElement("footer", k.lastChild.firstChild.firstChild); if (!this.footer) { this.bwrap.dom.lastChild.className += " x-panel-nofooter" } this.ft = Ext.get(this.bwrap.dom.lastChild); this.mc = Ext.get(l) } else { this.createElement("header", h); this.createElement("bwrap", h); k = this.bwrap.dom; this.createElement("tbar", k); this.createElement("body", k); this.createElement("bbar", k); this.createElement("footer", k); if (!this.header) { this.body.addClass(this.bodyCls + "-noheader"); if (this.tbar) { this.tbar.addClass(this.tbarCls + "-noheader") } } } if (Ext.isDefined(this.padding)) { this.body.setStyle("padding", this.body.addUnits(this.padding)) } if (this.border === false) { this.el.addClass(this.baseCls + "-noborder"); this.body.addClass(this.bodyCls + "-noborder"); if (this.header) { this.header.addClass(this.headerCls + "-noborder") } if (this.footer) { this.footer.addClass(this.footerCls + "-noborder") } if (this.tbar) { this.tbar.addClass(this.tbarCls + "-noborder") } if (this.bbar) { this.bbar.addClass(this.bbarCls + "-noborder") } } if (this.bodyBorder === false) { this.body.addClass(this.bodyCls + "-noborder") } this.bwrap.enableDisplayMode("block"); if (this.header) { this.header.unselectable(); if (this.headerAsText) { this.header.dom.innerHTML = '' + this.header.dom.innerHTML + ""; if (this.iconCls) { this.setIconClass(this.iconCls) } } } if (this.floating) { this.makeFloating(this.floating) } if (this.collapsible && this.titleCollapse && this.header) { this.mon(this.header, "click", this.toggleCollapse, this); this.header.setStyle("cursor", "pointer") } if (i) { this.addTool.apply(this, i) } if (this.fbar) { this.footer.addClass("x-panel-btns"); this.fbar.ownerCt = this; this.fbar.render(this.footer); this.footer.createChild({cls:"x-clear"}) } if (this.tbar && this.topToolbar) { this.topToolbar.ownerCt = this; this.topToolbar.render(this.tbar) } if (this.bbar && this.bottomToolbar) { this.bottomToolbar.ownerCt = this; this.bottomToolbar.render(this.bbar) } }, setIconClass:function (b) { var a = this.iconCls; this.iconCls = b; if (this.rendered && this.header) { if (this.frame) { this.header.addClass("x-panel-icon"); this.header.replaceClass(a, this.iconCls) } else { var e = this.header, c = e.child("img.x-panel-inline-icon"); if (c) { Ext.fly(c).replaceClass(a, this.iconCls) } else { var d = e.child("span." + this.headerTextCls); if (d) { Ext.DomHelper.insertBefore(d.dom, {tag:"img", alt:"", src:Ext.BLANK_IMAGE_URL, cls:"x-panel-inline-icon " + this.iconCls}) } } } } this.fireEvent("iconchange", this, b, a) }, makeFloating:function (a) { this.floating = true; this.el = new Ext.Layer(Ext.apply({}, a, {shadow:Ext.isDefined(this.shadow) ? this.shadow : "sides", shadowOffset:this.shadowOffset, constrain:false, shim:this.shim === false ? false : undefined}), this.el) }, getTopToolbar:function () { return this.topToolbar }, getBottomToolbar:function () { return this.bottomToolbar }, getFooterToolbar:function () { return this.fbar }, addButton:function (a, c, b) { if (!this.fbar) { this.createFbar([]) } if (c) { if (Ext.isString(a)) { a = {text:a} } a = Ext.apply({handler:c, scope:b}, a) } return this.fbar.add(a) }, addTool:function () { if (!this.rendered) { if (!this.tools) { this.tools = [] } Ext.each(arguments, function (a) { this.tools.push(a) }, this); return } if (!this[this.toolTarget]) { return } if (!this.toolTemplate) { var h = new Ext.Template('
     
    '); h.disableFormats = true; h.compile(); Ext.Panel.prototype.toolTemplate = h } for (var g = 0, d = arguments, c = d.length; g < c; g++) { var b = d[g]; if (!this.tools[b.id]) { var j = "x-tool-" + b.id + "-over"; var e = this.toolTemplate.insertFirst(this[this.toolTarget], b, true); this.tools[b.id] = e; e.enableDisplayMode("block"); this.mon(e, "click", this.createToolHandler(e, b, j, this)); if (b.on) { this.mon(e, b.on) } if (b.hidden) { e.hide() } if (b.qtip) { if (Ext.isObject(b.qtip)) { Ext.QuickTips.register(Ext.apply({target:e.id}, b.qtip)) } else { e.dom.qtip = b.qtip } } e.addClassOnOver(j) } } }, onLayout:function (b, a) { Ext.Panel.superclass.onLayout.apply(this, arguments); if (this.hasLayout && this.toolbars.length > 0) { Ext.each(this.toolbars, function (c) { c.doLayout(undefined, a) }); this.syncHeight() } }, syncHeight:function () { var b = this.toolbarHeight, c = this.body, a = this.lastSize.height, d; if (this.autoHeight || !Ext.isDefined(a) || a == "auto") { return } if (b != this.getToolbarHeight()) { b = Math.max(0, a - this.getFrameHeight()); c.setHeight(b); d = c.getSize(); this.toolbarHeight = this.getToolbarHeight(); this.onBodyResize(d.width, d.height) } }, onShow:function () { if (this.floating) { return this.el.show() } Ext.Panel.superclass.onShow.call(this) }, onHide:function () { if (this.floating) { return this.el.hide() } Ext.Panel.superclass.onHide.call(this) }, createToolHandler:function (c, a, d, b) { return function (g) { c.removeClass(d); if (a.stopEvent !== false) { g.stopEvent() } if (a.handler) { a.handler.call(a.scope || c, g, c, b, a) } } }, afterRender:function () { if (this.floating && !this.hidden) { this.el.show() } if (this.title) { this.setTitle(this.title) } Ext.Panel.superclass.afterRender.call(this); if (this.collapsed) { this.collapsed = false; this.collapse(false) } this.initEvents() }, getKeyMap:function () { if (!this.keyMap) { this.keyMap = new Ext.KeyMap(this.el, this.keys) } return this.keyMap }, initEvents:function () { if (this.keys) { this.getKeyMap() } if (this.draggable) { this.initDraggable() } if (this.toolbars.length > 0) { Ext.each(this.toolbars, function (a) { a.doLayout(); a.on({scope:this, afterlayout:this.syncHeight, remove:this.syncHeight}) }, this); this.syncHeight() } }, initDraggable:function () { this.dd = new Ext.Panel.DD(this, Ext.isBoolean(this.draggable) ? null : this.draggable) }, beforeEffect:function (a) { if (this.floating) { this.el.beforeAction() } if (a !== false) { this.el.addClass("x-panel-animated") } }, afterEffect:function (a) { this.syncShadow(); this.el.removeClass("x-panel-animated") }, createEffect:function (c, b, d) { var e = {scope:d, block:true}; if (c === true) { e.callback = b; return e } else { if (!c.callback) { e.callback = b } else { e.callback = function () { b.call(d); Ext.callback(c.callback, c.scope) } } } return Ext.applyIf(e, c) }, collapse:function (b) { if (this.collapsed || this.el.hasFxBlock() || this.fireEvent("beforecollapse", this, b) === false) { return } var a = b === true || (b !== false && this.animCollapse); this.beforeEffect(a); this.onCollapse(a, b); return this }, onCollapse:function (a, b) { if (a) { this[this.collapseEl].slideOut(this.slideAnchor, Ext.apply(this.createEffect(b || true, this.afterCollapse, this), this.collapseDefaults)) } else { this[this.collapseEl].hide(this.hideMode); this.afterCollapse(false) } }, afterCollapse:function (a) { this.collapsed = true; this.el.addClass(this.collapsedCls); if (a !== false) { this[this.collapseEl].hide(this.hideMode) } this.afterEffect(a); this.cascade(function (b) { if (b.lastSize) { b.lastSize = {width:undefined, height:undefined} } }); this.fireEvent("collapse", this) }, expand:function (b) { if (!this.collapsed || this.el.hasFxBlock() || this.fireEvent("beforeexpand", this, b) === false) { return } var a = b === true || (b !== false && this.animCollapse); this.el.removeClass(this.collapsedCls); this.beforeEffect(a); this.onExpand(a, b); return this }, onExpand:function (a, b) { if (a) { this[this.collapseEl].slideIn(this.slideAnchor, Ext.apply(this.createEffect(b || true, this.afterExpand, this), this.expandDefaults)) } else { this[this.collapseEl].show(this.hideMode); this.afterExpand(false) } }, afterExpand:function (a) { this.collapsed = false; if (a !== false) { this[this.collapseEl].show(this.hideMode) } this.afterEffect(a); if (this.deferLayout) { delete this.deferLayout; this.doLayout(true) } this.fireEvent("expand", this) }, toggleCollapse:function (a) { this[this.collapsed ? "expand" : "collapse"](a); return this }, onDisable:function () { if (this.rendered && this.maskDisabled) { this.el.mask() } Ext.Panel.superclass.onDisable.call(this) }, onEnable:function () { if (this.rendered && this.maskDisabled) { this.el.unmask() } Ext.Panel.superclass.onEnable.call(this) }, onResize:function (g, d, c, e) { var a = g, b = d; if (Ext.isDefined(a) || Ext.isDefined(b)) { if (!this.collapsed) { if (Ext.isNumber(a)) { this.body.setWidth(a = this.adjustBodyWidth(a - this.getFrameWidth())) } else { if (a == "auto") { a = this.body.setWidth("auto").dom.offsetWidth } else { a = this.body.dom.offsetWidth } } if (this.tbar) { this.tbar.setWidth(a); if (this.topToolbar) { this.topToolbar.setSize(a) } } if (this.bbar) { this.bbar.setWidth(a); if (this.bottomToolbar) { this.bottomToolbar.setSize(a); if (Ext.isIE) { this.bbar.setStyle("position", "static"); this.bbar.setStyle("position", "") } } } if (this.footer) { this.footer.setWidth(a); if (this.fbar) { this.fbar.setSize(Ext.isIE ? (a - this.footer.getFrameWidth("lr")) : "auto") } } if (Ext.isNumber(b)) { b = Math.max(0, b - this.getFrameHeight()); this.body.setHeight(b) } else { if (b == "auto") { this.body.setHeight(b) } } if (this.disabled && this.el._mask) { this.el._mask.setSize(this.el.dom.clientWidth, this.el.getHeight()) } } else { this.queuedBodySize = {width:a, height:b}; if (!this.queuedExpand && this.allowQueuedExpand !== false) { this.queuedExpand = true; this.on("expand", function () { delete this.queuedExpand; this.onResize(this.queuedBodySize.width, this.queuedBodySize.height) }, this, {single:true}) } } this.onBodyResize(a, b) } this.syncShadow(); Ext.Panel.superclass.onResize.call(this, g, d, c, e) }, onBodyResize:function (a, b) { this.fireEvent("bodyresize", this, a, b) }, getToolbarHeight:function () { var a = 0; if (this.rendered) { Ext.each(this.toolbars, function (b) { a += b.getHeight() }, this) } return a }, adjustBodyHeight:function (a) { return a }, adjustBodyWidth:function (a) { return a }, onPosition:function () { this.syncShadow() }, getFrameWidth:function () { var b = this.el.getFrameWidth("lr") + this.bwrap.getFrameWidth("lr"); if (this.frame) { var a = this.bwrap.dom.firstChild; b += (Ext.fly(a).getFrameWidth("l") + Ext.fly(a.firstChild).getFrameWidth("r")); b += this.mc.getFrameWidth("lr") } return b }, getFrameHeight:function () { var a = this.el.getFrameWidth("tb") + this.bwrap.getFrameWidth("tb"); a += (this.tbar ? this.tbar.getHeight() : 0) + (this.bbar ? this.bbar.getHeight() : 0); if (this.frame) { a += this.el.dom.firstChild.offsetHeight + this.ft.dom.offsetHeight + this.mc.getFrameWidth("tb") } else { a += (this.header ? this.header.getHeight() : 0) + (this.footer ? this.footer.getHeight() : 0) } return a }, getInnerWidth:function () { return this.getSize().width - this.getFrameWidth() }, getInnerHeight:function () { return this.body.getHeight() }, syncShadow:function () { if (this.floating) { this.el.sync(true) } }, getLayoutTarget:function () { return this.body }, getContentTarget:function () { return this.body }, setTitle:function (b, a) { this.title = b; if (this.header && this.headerAsText) { this.header.child("span").update(b) } if (a) { this.setIconClass(a) } this.fireEvent("titlechange", this, b); return this }, getUpdater:function () { return this.body.getUpdater() }, load:function () { var a = this.body.getUpdater(); a.update.apply(a, arguments); return this }, beforeDestroy:function () { Ext.Panel.superclass.beforeDestroy.call(this); if (this.header) { this.header.removeAllListeners() } if (this.tools) { for (var a in this.tools) { Ext.destroy(this.tools[a]) } } if (this.toolbars.length > 0) { Ext.each(this.toolbars, function (b) { b.un("afterlayout", this.syncHeight, this); b.un("remove", this.syncHeight, this) }, this) } if (Ext.isArray(this.buttons)) { while (this.buttons.length) { Ext.destroy(this.buttons[0]) } } if (this.rendered) { Ext.destroy(this.ft, this.header, this.footer, this.tbar, this.bbar, this.body, this.mc, this.bwrap, this.dd); if (this.fbar) { Ext.destroy(this.fbar, this.fbar.el) } } Ext.destroy(this.toolbars) }, createClasses:function () { this.headerCls = this.baseCls + "-header"; this.headerTextCls = this.baseCls + "-header-text"; this.bwrapCls = this.baseCls + "-bwrap"; this.tbarCls = this.baseCls + "-tbar"; this.bodyCls = this.baseCls + "-body"; this.bbarCls = this.baseCls + "-bbar"; this.footerCls = this.baseCls + "-footer" }, createGhost:function (a, e, b) { var d = document.createElement("div"); d.className = "x-panel-ghost " + (a ? a : ""); if (this.header) { d.appendChild(this.el.dom.firstChild.cloneNode(true)) } Ext.fly(d.appendChild(document.createElement("ul"))).setHeight(this.bwrap.getHeight()); d.style.width = this.el.dom.offsetWidth + "px"; if (!b) { this.container.dom.appendChild(d) } else { Ext.getDom(b).appendChild(d) } if (e !== false && this.el.useShim !== false) { var c = new Ext.Layer({shadow:false, useDisplay:true, constrain:false}, d); c.show(); return c } else { return new Ext.Element(d) } }, doAutoLoad:function () { var a = this.body.getUpdater(); if (this.renderer) { a.setRenderer(this.renderer) } a.update(Ext.isObject(this.autoLoad) ? this.autoLoad : {url:this.autoLoad}) }, getTool:function (a) { return this.tools[a] }}); Ext.reg("panel", Ext.Panel); Ext.Editor = function (b, a) { if (b.field) { this.field = Ext.create(b.field, "textfield"); a = Ext.apply({}, b); delete a.field } else { this.field = b } Ext.Editor.superclass.constructor.call(this, a) }; Ext.extend(Ext.Editor, Ext.Component, {allowBlur:true, value:"", alignment:"c-c?", offsets:[0, 0], shadow:"frame", constrain:false, swallowKeys:true, completeOnEnter:true, cancelOnEsc:true, updateEl:false, initComponent:function () { Ext.Editor.superclass.initComponent.call(this); this.addEvents("beforestartedit", "startedit", "beforecomplete", "complete", "canceledit", "specialkey") }, onRender:function (b, a) { this.el = new Ext.Layer({shadow:this.shadow, cls:"x-editor", parentEl:b, shim:this.shim, shadowOffset:this.shadowOffset || 4, id:this.id, constrain:this.constrain}); if (this.zIndex) { this.el.setZIndex(this.zIndex) } this.el.setStyle("overflow", Ext.isGecko ? "auto" : "hidden"); if (this.field.msgTarget != "title") { this.field.msgTarget = "qtip" } this.field.inEditor = true; this.mon(this.field, {scope:this, blur:this.onBlur, specialkey:this.onSpecialKey}); if (this.field.grow) { this.mon(this.field, "autosize", this.el.sync, this.el, {delay:1}) } this.field.render(this.el).show(); this.field.getEl().dom.name = ""; if (this.swallowKeys) { this.field.el.swallowEvent(["keypress", "keydown"]) } }, onSpecialKey:function (g, d) { var b = d.getKey(), a = this.completeOnEnter && b == d.ENTER, c = this.cancelOnEsc && b == d.ESC; if (a || c) { d.stopEvent(); if (a) { this.completeEdit() } else { this.cancelEdit() } if (g.triggerBlur) { g.triggerBlur() } } this.fireEvent("specialkey", g, d) }, startEdit:function (b, c) { if (this.editing) { this.completeEdit() } this.boundEl = Ext.get(b); var a = c !== undefined ? c : this.boundEl.dom.innerHTML; if (!this.rendered) { this.render(this.parentEl || document.body) } if (this.fireEvent("beforestartedit", this, this.boundEl, a) !== false) { this.startValue = a; this.field.reset(); this.field.setValue(a); this.realign(true); this.editing = true; this.show() } }, doAutoSize:function () { if (this.autoSize) { var b = this.boundEl.getSize(), a = this.field.getSize(); switch (this.autoSize) { case"width": this.setSize(b.width, a.height); break; case"height": this.setSize(a.width, b.height); break; case"none": this.setSize(a.width, a.height); break; default: this.setSize(b.width, b.height) } } }, setSize:function (a, b) { delete this.field.lastSize; this.field.setSize(a, b); if (this.el) { if (Ext.isGecko2 || Ext.isOpera || (Ext.isIE7 && Ext.isStrict)) { this.el.setSize(a, b) } this.el.sync() } }, realign:function (a) { if (a === true) { this.doAutoSize() } this.el.alignTo(this.boundEl, this.alignment, this.offsets) }, completeEdit:function (a) { if (!this.editing) { return } if (this.field.assertValue) { this.field.assertValue() } var b = this.getValue(); if (!this.field.isValid()) { if (this.revertInvalid !== false) { this.cancelEdit(a) } return } if (String(b) === String(this.startValue) && this.ignoreNoChange) { this.hideEdit(a); return } if (this.fireEvent("beforecomplete", this, b, this.startValue) !== false) { b = this.getValue(); if (this.updateEl && this.boundEl) { this.boundEl.update(b) } this.hideEdit(a); this.fireEvent("complete", this, b, this.startValue) } }, onShow:function () { this.el.show(); if (this.hideEl !== false) { this.boundEl.hide() } this.field.show().focus(false, true); this.fireEvent("startedit", this.boundEl, this.startValue) }, cancelEdit:function (a) { if (this.editing) { var b = this.getValue(); this.setValue(this.startValue); this.hideEdit(a); this.fireEvent("canceledit", this, b, this.startValue) } }, hideEdit:function (a) { if (a !== true) { this.editing = false; this.hide() } }, onBlur:function () { if (this.allowBlur === true && this.editing && this.selectSameEditor !== true) { this.completeEdit() } }, onHide:function () { if (this.editing) { this.completeEdit(); return } this.field.blur(); if (this.field.collapse) { this.field.collapse() } this.el.hide(); if (this.hideEl !== false) { this.boundEl.show() } }, setValue:function (a) { this.field.setValue(a) }, getValue:function () { return this.field.getValue() }, beforeDestroy:function () { Ext.destroyMembers(this, "field"); delete this.parentEl; delete this.boundEl }}); Ext.reg("editor", Ext.Editor); Ext.ColorPalette = Ext.extend(Ext.Component, {itemCls:"x-color-palette", value:null, clickEvent:"click", ctype:"Ext.ColorPalette", allowReselect:false, colors:["000000", "993300", "333300", "003300", "003366", "000080", "333399", "333333", "800000", "FF6600", "808000", "008000", "008080", "0000FF", "666699", "808080", "FF0000", "FF9900", "99CC00", "339966", "33CCCC", "3366FF", "800080", "969696", "FF00FF", "FFCC00", "FFFF00", "00FF00", "00FFFF", "00CCFF", "993366", "C0C0C0", "FF99CC", "FFCC99", "FFFF99", "CCFFCC", "CCFFFF", "99CCFF", "CC99FF", "FFFFFF"], initComponent:function () { Ext.ColorPalette.superclass.initComponent.call(this); this.addEvents("select"); if (this.handler) { this.on("select", this.handler, this.scope, true) } }, onRender:function (b, a) { this.autoEl = {tag:"div", cls:this.itemCls}; Ext.ColorPalette.superclass.onRender.call(this, b, a); var c = this.tpl || new Ext.XTemplate(' '); c.overwrite(this.el, this.colors); this.mon(this.el, this.clickEvent, this.handleClick, this, {delegate:"a"}); if (this.clickEvent != "click") { this.mon(this.el, "click", Ext.emptyFn, this, {delegate:"a", preventDefault:true}) } }, afterRender:function () { Ext.ColorPalette.superclass.afterRender.call(this); if (this.value) { var a = this.value; this.value = null; this.select(a, true) } }, handleClick:function (b, a) { b.preventDefault(); if (!this.disabled) { var d = a.className.match(/(?:^|\s)color-(.{6})(?:\s|$)/)[1]; this.select(d.toUpperCase()) } }, select:function (b, a) { b = b.replace("#", ""); if (b != this.value || this.allowReselect) { var c = this.el; if (this.value) { c.child("a.color-" + this.value).removeClass("x-color-palette-sel") } c.child("a.color-" + b).addClass("x-color-palette-sel"); this.value = b; if (a !== true) { this.fireEvent("select", this, b) } } }}); Ext.reg("colorpalette", Ext.ColorPalette); Ext.DatePicker = Ext.extend(Ext.BoxComponent, {todayText:"Today", okText:" OK ", cancelText:"Cancel", todayTip:"{0} (Spacebar)", minText:"This date is before the minimum date", maxText:"This date is after the maximum date", format:"m/d/y", disabledDaysText:"Disabled", disabledDatesText:"Disabled", monthNames:Date.monthNames, dayNames:Date.dayNames, nextText:"Next Month (Control+Right)", prevText:"Previous Month (Control+Left)", monthYearText:"Choose a month (Control+Up/Down to move years)", startDay:0, showToday:true, focusOnSelect:true, initHour:12, initComponent:function () { Ext.DatePicker.superclass.initComponent.call(this); this.value = this.value ? this.value.clearTime(true) : new Date().clearTime(); this.addEvents("select"); if (this.handler) { this.on("select", this.handler, this.scope || this) } this.initDisabledDays() }, initDisabledDays:function () { if (!this.disabledDatesRE && this.disabledDates) { var b = this.disabledDates, a = b.length - 1, c = "(?:"; Ext.each(b, function (g, e) { c += Ext.isDate(g) ? "^" + Ext.escapeRe(g.dateFormat(this.format)) + "$" : b[e]; if (e != a) { c += "|" } }, this); this.disabledDatesRE = new RegExp(c + ")") } }, setDisabledDates:function (a) { if (Ext.isArray(a)) { this.disabledDates = a; this.disabledDatesRE = null } else { this.disabledDatesRE = a } this.initDisabledDays(); this.update(this.value, true) }, setDisabledDays:function (a) { this.disabledDays = a; this.update(this.value, true) }, setMinDate:function (a) { this.minDate = a; this.update(this.value, true) }, setMaxDate:function (a) { this.maxDate = a; this.update(this.value, true) }, setValue:function (a) { this.value = a.clearTime(true); this.update(this.value) }, getValue:function () { return this.value }, focus:function () { this.update(this.activeDate) }, onEnable:function (a) { Ext.DatePicker.superclass.onEnable.call(this); this.doDisabled(false); this.update(a ? this.value : this.activeDate); if (Ext.isIE) { this.el.repaint() } }, onDisable:function () { Ext.DatePicker.superclass.onDisable.call(this); this.doDisabled(true); if (Ext.isIE && !Ext.isIE8) { Ext.each([].concat(this.textNodes, this.el.query("th span")), function (a) { Ext.fly(a).repaint() }) } }, doDisabled:function (a) { this.keyNav.setDisabled(a); this.prevRepeater.setDisabled(a); this.nextRepeater.setDisabled(a); if (this.showToday) { this.todayKeyListener.setDisabled(a); this.todayBtn.setDisabled(a) } }, onRender:function (e, b) { var a = ['', '', '", this.showToday ? '' : "", '
      
    '], c = this.dayNames, h; for (h = 0; h < 7; h++) { var k = this.startDay + h; if (k > 6) { k = k - 7 } a.push("") } a[a.length] = ""; for (h = 0; h < 42; h++) { if (h % 7 === 0 && h !== 0) { a[a.length] = "" } a[a.length] = '' } a.push("
    ", c[k].substr(0, 1), "
    '); var j = document.createElement("div"); j.className = "x-date-picker"; j.innerHTML = a.join(""); e.dom.insertBefore(j, b); this.el = Ext.get(j); this.eventEl = Ext.get(j.firstChild); this.prevRepeater = new Ext.util.ClickRepeater(this.el.child("td.x-date-left a"), {handler:this.showPrevMonth, scope:this, preventDefault:true, stopDefault:true}); this.nextRepeater = new Ext.util.ClickRepeater(this.el.child("td.x-date-right a"), {handler:this.showNextMonth, scope:this, preventDefault:true, stopDefault:true}); this.monthPicker = this.el.down("div.x-date-mp"); this.monthPicker.enableDisplayMode("block"); this.keyNav = new Ext.KeyNav(this.eventEl, {left:function (d) { if (d.ctrlKey) { this.showPrevMonth() } else { this.update(this.activeDate.add("d", -1)) } }, right:function (d) { if (d.ctrlKey) { this.showNextMonth() } else { this.update(this.activeDate.add("d", 1)) } }, up:function (d) { if (d.ctrlKey) { this.showNextYear() } else { this.update(this.activeDate.add("d", -7)) } }, down:function (d) { if (d.ctrlKey) { this.showPrevYear() } else { this.update(this.activeDate.add("d", 7)) } }, pageUp:function (d) { this.showNextMonth() }, pageDown:function (d) { this.showPrevMonth() }, enter:function (d) { d.stopPropagation(); return true }, scope:this}); this.el.unselectable(); this.cells = this.el.select("table.x-date-inner tbody td"); this.textNodes = this.el.query("table.x-date-inner tbody span"); this.mbtn = new Ext.Button({text:" ", tooltip:this.monthYearText, renderTo:this.el.child("td.x-date-middle", true)}); this.mbtn.el.child("em").addClass("x-btn-arrow"); if (this.showToday) { this.todayKeyListener = this.eventEl.addKeyListener(Ext.EventObject.SPACE, this.selectToday, this); var g = (new Date()).dateFormat(this.format); this.todayBtn = new Ext.Button({renderTo:this.el.child("td.x-date-bottom", true), text:String.format(this.todayText, g), tooltip:String.format(this.todayTip, g), handler:this.selectToday, scope:this}) } this.mon(this.eventEl, "mousewheel", this.handleMouseWheel, this); this.mon(this.eventEl, "click", this.handleDateClick, this, {delegate:"a.x-date-date"}); this.mon(this.mbtn, "click", this.showMonthPicker, this); this.onEnable(true) }, createMonthPicker:function () { if (!this.monthPicker.dom.firstChild) { var a = ['']; for (var b = 0; b < 6; b++) { a.push('", '", b === 0 ? '' : '') } a.push('", "
    ', Date.getShortMonthName(b), "', Date.getShortMonthName(b + 6), "
    "); this.monthPicker.update(a.join("")); this.mon(this.monthPicker, "click", this.onMonthClick, this); this.mon(this.monthPicker, "dblclick", this.onMonthDblClick, this); this.mpMonths = this.monthPicker.select("td.x-date-mp-month"); this.mpYears = this.monthPicker.select("td.x-date-mp-year"); this.mpMonths.each(function (c, d, e) { e += 1; if ((e % 2) === 0) { c.dom.xmonth = 5 + Math.round(e * 0.5) } else { c.dom.xmonth = Math.round((e - 1) * 0.5) } }) } }, showMonthPicker:function () { if (!this.disabled) { this.createMonthPicker(); var a = this.el.getSize(); this.monthPicker.setSize(a); this.monthPicker.child("table").setSize(a); this.mpSelMonth = (this.activeDate || this.value).getMonth(); this.updateMPMonth(this.mpSelMonth); this.mpSelYear = (this.activeDate || this.value).getFullYear(); this.updateMPYear(this.mpSelYear); this.monthPicker.slideIn("t", {duration:0.2}) } }, updateMPYear:function (e) { this.mpyear = e; var c = this.mpYears.elements; for (var b = 1; b <= 10; b++) { var d = c[b - 1], a; if ((b % 2) === 0) { a = e + Math.round(b * 0.5); d.firstChild.innerHTML = a; d.xyear = a } else { a = e - (5 - Math.round(b * 0.5)); d.firstChild.innerHTML = a; d.xyear = a } this.mpYears.item(b - 1)[a == this.mpSelYear ? "addClass" : "removeClass"]("x-date-mp-sel") } }, updateMPMonth:function (a) { this.mpMonths.each(function (b, c, d) { b[b.dom.xmonth == a ? "addClass" : "removeClass"]("x-date-mp-sel") }) }, selectMPMonth:function (a) { }, onMonthClick:function (g, b) { g.stopEvent(); var c = new Ext.Element(b), a; if (c.is("button.x-date-mp-cancel")) { this.hideMonthPicker() } else { if (c.is("button.x-date-mp-ok")) { var h = new Date(this.mpSelYear, this.mpSelMonth, (this.activeDate || this.value).getDate()); if (h.getMonth() != this.mpSelMonth) { h = new Date(this.mpSelYear, this.mpSelMonth, 1).getLastDateOfMonth() } this.update(h); this.hideMonthPicker() } else { if ((a = c.up("td.x-date-mp-month", 2))) { this.mpMonths.removeClass("x-date-mp-sel"); a.addClass("x-date-mp-sel"); this.mpSelMonth = a.dom.xmonth } else { if ((a = c.up("td.x-date-mp-year", 2))) { this.mpYears.removeClass("x-date-mp-sel"); a.addClass("x-date-mp-sel"); this.mpSelYear = a.dom.xyear } else { if (c.is("a.x-date-mp-prev")) { this.updateMPYear(this.mpyear - 10) } else { if (c.is("a.x-date-mp-next")) { this.updateMPYear(this.mpyear + 10) } } } } } } }, onMonthDblClick:function (d, b) { d.stopEvent(); var c = new Ext.Element(b), a; if ((a = c.up("td.x-date-mp-month", 2))) { this.update(new Date(this.mpSelYear, a.dom.xmonth, (this.activeDate || this.value).getDate())); this.hideMonthPicker() } else { if ((a = c.up("td.x-date-mp-year", 2))) { this.update(new Date(a.dom.xyear, this.mpSelMonth, (this.activeDate || this.value).getDate())); this.hideMonthPicker() } } }, hideMonthPicker:function (a) { if (this.monthPicker) { if (a === true) { this.monthPicker.hide() } else { this.monthPicker.slideOut("t", {duration:0.2}) } } }, showPrevMonth:function (a) { this.update(this.activeDate.add("mo", -1)) }, showNextMonth:function (a) { this.update(this.activeDate.add("mo", 1)) }, showPrevYear:function () { this.update(this.activeDate.add("y", -1)) }, showNextYear:function () { this.update(this.activeDate.add("y", 1)) }, handleMouseWheel:function (a) { a.stopEvent(); if (!this.disabled) { var b = a.getWheelDelta(); if (b > 0) { this.showPrevMonth() } else { if (b < 0) { this.showNextMonth() } } } }, handleDateClick:function (b, a) { b.stopEvent(); if (!this.disabled && a.dateValue && !Ext.fly(a.parentNode).hasClass("x-date-disabled")) { this.cancelFocus = this.focusOnSelect === false; this.setValue(new Date(a.dateValue)); delete this.cancelFocus; this.fireEvent("select", this, this.value) } }, selectToday:function () { if (this.todayBtn && !this.todayBtn.disabled) { this.setValue(new Date().clearTime()); this.fireEvent("select", this, this.value) } }, update:function (G, A) { if (this.rendered) { var a = this.activeDate, p = this.isVisible(); this.activeDate = G; if (!A && a && this.el) { var o = G.getTime(); if (a.getMonth() == G.getMonth() && a.getFullYear() == G.getFullYear()) { this.cells.removeClass("x-date-selected"); this.cells.each(function (d) { if (d.dom.firstChild.dateValue == o) { d.addClass("x-date-selected"); if (p && !this.cancelFocus) { Ext.fly(d.dom.firstChild).focus(50) } return false } }, this); return } } var k = G.getDaysInMonth(), q = G.getFirstDateOfMonth(), g = q.getDay() - this.startDay; if (g < 0) { g += 7 } k += g; var B = G.add("mo", -1), h = B.getDaysInMonth() - g, e = this.cells.elements, r = this.textNodes, D = (new Date(B.getFullYear(), B.getMonth(), h, this.initHour)), C = new Date().clearTime().getTime(), v = G.clearTime(true).getTime(), u = this.minDate ? this.minDate.clearTime(true) : Number.NEGATIVE_INFINITY, y = this.maxDate ? this.maxDate.clearTime(true) : Number.POSITIVE_INFINITY, F = this.disabledDatesRE, s = this.disabledDatesText, I = this.disabledDays ? this.disabledDays.join("") : false, E = this.disabledDaysText, z = this.format; if (this.showToday) { var m = new Date().clearTime(), c = (m < u || m > y || (F && z && F.test(m.dateFormat(z))) || (I && I.indexOf(m.getDay()) != -1)); if (!this.disabled) { this.todayBtn.setDisabled(c); this.todayKeyListener[c ? "disable" : "enable"]() } } var l = function (J, d) { d.title = ""; var i = D.clearTime(true).getTime(); d.firstChild.dateValue = i; if (i == C) { d.className += " x-date-today"; d.title = J.todayText } if (i == v) { d.className += " x-date-selected"; if (p) { Ext.fly(d.firstChild).focus(50) } } if (i < u) { d.className = " x-date-disabled"; d.title = J.minText; return } if (i > y) { d.className = " x-date-disabled"; d.title = J.maxText; return } if (I) { if (I.indexOf(D.getDay()) != -1) { d.title = E; d.className = " x-date-disabled" } } if (F && z) { var w = D.dateFormat(z); if (F.test(w)) { d.title = s.replace("%0", w); d.className = " x-date-disabled" } } }; var x = 0; for (; x < g; x++) { r[x].innerHTML = (++h); D.setDate(D.getDate() + 1); e[x].className = "x-date-prevday"; l(this, e[x]) } for (; x < k; x++) { var b = x - g + 1; r[x].innerHTML = (b); D.setDate(D.getDate() + 1); e[x].className = "x-date-active"; l(this, e[x]) } var H = 0; for (; x < 42; x++) { r[x].innerHTML = (++H); D.setDate(D.getDate() + 1); e[x].className = "x-date-nextday"; l(this, e[x]) } this.mbtn.setText(this.monthNames[G.getMonth()] + " " + G.getFullYear()); if (!this.internalRender) { var j = this.el.dom.firstChild, n = j.offsetWidth; this.el.setWidth(n + this.el.getBorderWidth("lr")); Ext.fly(j).setWidth(n); this.internalRender = true; if (Ext.isOpera && !this.secondPass) { j.rows[0].cells[1].style.width = (n - (j.rows[0].cells[0].offsetWidth + j.rows[0].cells[2].offsetWidth)) + "px"; this.secondPass = true; this.update.defer(10, this, [G]) } } } }, beforeDestroy:function () { if (this.rendered) { Ext.destroy(this.keyNav, this.monthPicker, this.eventEl, this.mbtn, this.nextRepeater, this.prevRepeater, this.cells.el, this.todayBtn); delete this.textNodes; delete this.cells.elements } }}); Ext.reg("datepicker", Ext.DatePicker); Ext.LoadMask = function (c, b) { this.el = Ext.get(c); Ext.apply(this, b); if (this.store) { this.store.on({scope:this, beforeload:this.onBeforeLoad, load:this.onLoad, exception:this.onLoad}); this.removeMask = Ext.value(this.removeMask, false) } else { var a = this.el.getUpdater(); a.showLoadIndicator = false; a.on({scope:this, beforeupdate:this.onBeforeLoad, update:this.onLoad, failure:this.onLoad}); this.removeMask = Ext.value(this.removeMask, true) } }; Ext.LoadMask.prototype = {msg:"Loading...", msgCls:"x-mask-loading", disabled:false, disable:function () { this.disabled = true }, enable:function () { this.disabled = false }, onLoad:function () { this.el.unmask(this.removeMask) }, onBeforeLoad:function () { if (!this.disabled) { this.el.mask(this.msg, this.msgCls) } }, show:function () { this.onBeforeLoad() }, hide:function () { this.onLoad() }, destroy:function () { if (this.store) { this.store.un("beforeload", this.onBeforeLoad, this); this.store.un("load", this.onLoad, this); this.store.un("exception", this.onLoad, this) } else { var a = this.el.getUpdater(); a.un("beforeupdate", this.onBeforeLoad, this); a.un("update", this.onLoad, this); a.un("failure", this.onLoad, this) } }}; Ext.slider.Thumb = Ext.extend(Object, {dragging:false, constructor:function (a) { Ext.apply(this, a || {}, {cls:"x-slider-thumb", constrain:false}); Ext.slider.Thumb.superclass.constructor.call(this, a); if (this.slider.vertical) { Ext.apply(this, Ext.slider.Thumb.Vertical) } }, render:function () { this.el = this.slider.innerEl.insertFirst({cls:this.cls}); this.initEvents() }, enable:function () { this.disabled = false; this.el.removeClass(this.slider.disabledClass) }, disable:function () { this.disabled = true; this.el.addClass(this.slider.disabledClass) }, initEvents:function () { var a = this.el; a.addClassOnOver("x-slider-thumb-over"); this.tracker = new Ext.dd.DragTracker({onBeforeStart:this.onBeforeDragStart.createDelegate(this), onStart:this.onDragStart.createDelegate(this), onDrag:this.onDrag.createDelegate(this), onEnd:this.onDragEnd.createDelegate(this), tolerance:3, autoStart:300}); this.tracker.initEl(a) }, onBeforeDragStart:function (a) { if (this.disabled) { return false } else { this.slider.promoteThumb(this); return true } }, onDragStart:function (a) { this.el.addClass("x-slider-thumb-drag"); this.dragging = true; this.dragStartValue = this.value; this.slider.fireEvent("dragstart", this.slider, a, this) }, onDrag:function (g) { var c = this.slider, b = this.index, d = this.getNewValue(); if (this.constrain) { var a = c.thumbs[b + 1], h = c.thumbs[b - 1]; if (h != undefined && d <= h.value) { d = h.value } if (a != undefined && d >= a.value) { d = a.value } } c.setValue(b, d, false); c.fireEvent("drag", c, g, this) }, getNewValue:function () { var a = this.slider, b = a.innerEl.translatePoints(this.tracker.getXY()); return Ext.util.Format.round(a.reverseValue(b.left), a.decimalPrecision) }, onDragEnd:function (c) { var a = this.slider, b = this.value; this.el.removeClass("x-slider-thumb-drag"); this.dragging = false; a.fireEvent("dragend", a, c); if (this.dragStartValue != b) { a.fireEvent("changecomplete", a, b, this) } }, destroy:function () { Ext.destroyMembers(this, "tracker", "el") }}); Ext.slider.MultiSlider = Ext.extend(Ext.BoxComponent, {vertical:false, minValue:0, maxValue:100, decimalPrecision:0, keyIncrement:1, increment:0, clickRange:[5, 15], clickToChange:true, animate:true, constrainThumbs:true, topThumbZIndex:10000, initComponent:function () { if (!Ext.isDefined(this.value)) { this.value = this.minValue } this.thumbs = []; Ext.slider.MultiSlider.superclass.initComponent.call(this); this.keyIncrement = Math.max(this.increment, this.keyIncrement); this.addEvents("beforechange", "change", "changecomplete", "dragstart", "drag", "dragend"); if (this.values == undefined || Ext.isEmpty(this.values)) { this.values = [0] } var a = this.values; for (var b = 0; b < a.length; b++) { this.addThumb(a[b]) } if (this.vertical) { Ext.apply(this, Ext.slider.Vertical) } }, addThumb:function (b) { var a = new Ext.slider.Thumb({value:b, slider:this, index:this.thumbs.length, constrain:this.constrainThumbs}); this.thumbs.push(a); if (this.rendered) { a.render() } }, promoteThumb:function (d) { var a = this.thumbs, g, b; for (var e = 0, c = a.length; e < c; e++) { b = a[e]; if (b == d) { g = this.topThumbZIndex } else { g = "" } b.el.setStyle("zIndex", g) } }, onRender:function () { this.autoEl = {cls:"x-slider " + (this.vertical ? "x-slider-vert" : "x-slider-horz"), cn:{cls:"x-slider-end", cn:{cls:"x-slider-inner", cn:[ {tag:"a", cls:"x-slider-focus", href:"#", tabIndex:"-1", hidefocus:"on"} ]}}}; Ext.slider.MultiSlider.superclass.onRender.apply(this, arguments); this.endEl = this.el.first(); this.innerEl = this.endEl.first(); this.focusEl = this.innerEl.child(".x-slider-focus"); for (var b = 0; b < this.thumbs.length; b++) { this.thumbs[b].render() } var a = this.innerEl.child(".x-slider-thumb"); this.halfThumb = (this.vertical ? a.getHeight() : a.getWidth()) / 2; this.initEvents() }, initEvents:function () { this.mon(this.el, {scope:this, mousedown:this.onMouseDown, keydown:this.onKeyDown}); this.focusEl.swallowEvent("click", true) }, onMouseDown:function (d) { if (this.disabled) { return } var c = false; for (var b = 0; b < this.thumbs.length; b++) { c = c || d.target == this.thumbs[b].el.dom } if (this.clickToChange && !c) { var a = this.innerEl.translatePoints(d.getXY()); this.onClickChange(a) } this.focus() }, onClickChange:function (c) { if (c.top > this.clickRange[0] && c.top < this.clickRange[1]) { var a = this.getNearest(c, "left"), b = a.index; this.setValue(b, Ext.util.Format.round(this.reverseValue(c.left), this.decimalPrecision), undefined, true) } }, getNearest:function (k, b) { var m = b == "top" ? this.innerEl.getHeight() - k[b] : k[b], g = this.reverseValue(m), j = (this.maxValue - this.minValue) + 5, e = 0, c = null; for (var d = 0; d < this.thumbs.length; d++) { var a = this.thumbs[d], l = a.value, h = Math.abs(l - g); if (Math.abs(h <= j)) { c = a; e = d; j = h } } return c }, onKeyDown:function (b) { if (this.disabled || this.thumbs.length !== 1) { b.preventDefault(); return } var a = b.getKey(), c; switch (a) { case b.UP: case b.RIGHT: b.stopEvent(); c = b.ctrlKey ? this.maxValue : this.getValue(0) + this.keyIncrement; this.setValue(0, c, undefined, true); break; case b.DOWN: case b.LEFT: b.stopEvent(); c = b.ctrlKey ? this.minValue : this.getValue(0) - this.keyIncrement; this.setValue(0, c, undefined, true); break; default: b.preventDefault() } }, doSnap:function (b) { if (!(this.increment && b)) { return b } var d = b, c = this.increment, a = b % c; if (a != 0) { d -= a; if (a * 2 >= c) { d += c } else { if (a * 2 < -c) { d -= c } } } return d.constrain(this.minValue, this.maxValue) }, afterRender:function () { Ext.slider.MultiSlider.superclass.afterRender.apply(this, arguments); for (var c = 0; c < this.thumbs.length; c++) { var b = this.thumbs[c]; if (b.value !== undefined) { var a = this.normalizeValue(b.value); if (a !== b.value) { this.setValue(c, a, false) } else { this.moveThumb(c, this.translateValue(a), false) } } } }, getRatio:function () { var a = this.innerEl.getWidth(), b = this.maxValue - this.minValue; return b == 0 ? a : (a / b) }, normalizeValue:function (a) { a = this.doSnap(a); a = Ext.util.Format.round(a, this.decimalPrecision); a = a.constrain(this.minValue, this.maxValue); return a }, setMinValue:function (e) { this.minValue = e; var d = 0, b = this.thumbs, a = b.length, c; for (; d < a; ++d) { c = b[d]; c.value = c.value < e ? e : c.value } this.syncThumb() }, setMaxValue:function (e) { this.maxValue = e; var d = 0, b = this.thumbs, a = b.length, c; for (; d < a; ++d) { c = b[d]; c.value = c.value > e ? e : c.value } this.syncThumb() }, setValue:function (d, c, b, g) { var a = this.thumbs[d], e = a.el; c = this.normalizeValue(c); if (c !== a.value && this.fireEvent("beforechange", this, c, a.value, a) !== false) { a.value = c; if (this.rendered) { this.moveThumb(d, this.translateValue(c), b !== false); this.fireEvent("change", this, c, a); if (g) { this.fireEvent("changecomplete", this, c, a) } } } }, translateValue:function (a) { var b = this.getRatio(); return(a * b) - (this.minValue * b) - this.halfThumb }, reverseValue:function (b) { var a = this.getRatio(); return(b + (this.minValue * a)) / a }, moveThumb:function (d, c, b) { var a = this.thumbs[d].el; if (!b || this.animate === false) { a.setLeft(c) } else { a.shift({left:c, stopFx:true, duration:0.35}) } }, focus:function () { this.focusEl.focus(10) }, onResize:function (c, e) { var b = this.thumbs, a = b.length, d = 0; for (; d < a; ++d) { b[d].el.stopFx() } if (Ext.isNumber(c)) { this.innerEl.setWidth(c - (this.el.getPadding("l") + this.endEl.getPadding("r"))) } this.syncThumb(); Ext.slider.MultiSlider.superclass.onResize.apply(this, arguments) }, onDisable:function () { Ext.slider.MultiSlider.superclass.onDisable.call(this); for (var b = 0; b < this.thumbs.length; b++) { var a = this.thumbs[b], c = a.el; a.disable(); if (Ext.isIE) { var d = c.getXY(); c.hide(); this.innerEl.addClass(this.disabledClass).dom.disabled = true; if (!this.thumbHolder) { this.thumbHolder = this.endEl.createChild({cls:"x-slider-thumb " + this.disabledClass}) } this.thumbHolder.show().setXY(d) } } }, onEnable:function () { Ext.slider.MultiSlider.superclass.onEnable.call(this); for (var b = 0; b < this.thumbs.length; b++) { var a = this.thumbs[b], c = a.el; a.enable(); if (Ext.isIE) { this.innerEl.removeClass(this.disabledClass).dom.disabled = false; if (this.thumbHolder) { this.thumbHolder.hide() } c.show(); this.syncThumb() } } }, syncThumb:function () { if (this.rendered) { for (var a = 0; a < this.thumbs.length; a++) { this.moveThumb(a, this.translateValue(this.thumbs[a].value)) } } }, getValue:function (a) { return this.thumbs[a].value }, getValues:function () { var a = []; for (var b = 0; b < this.thumbs.length; b++) { a.push(this.thumbs[b].value) } return a }, beforeDestroy:function () { var b = this.thumbs; for (var c = 0, a = b.length; c < a; ++c) { b[c].destroy(); b[c] = null } Ext.destroyMembers(this, "endEl", "innerEl", "focusEl", "thumbHolder"); Ext.slider.MultiSlider.superclass.beforeDestroy.call(this) }}); Ext.reg("multislider", Ext.slider.MultiSlider); Ext.slider.SingleSlider = Ext.extend(Ext.slider.MultiSlider, {constructor:function (a) { a = a || {}; Ext.applyIf(a, {values:[a.value || 0]}); Ext.slider.SingleSlider.superclass.constructor.call(this, a) }, getValue:function () { return Ext.slider.SingleSlider.superclass.getValue.call(this, 0) }, setValue:function (d, b) { var c = Ext.toArray(arguments), a = c.length; if (a == 1 || (a <= 3 && typeof arguments[1] != "number")) { c.unshift(0) } return Ext.slider.SingleSlider.superclass.setValue.apply(this, c) }, syncThumb:function () { return Ext.slider.SingleSlider.superclass.syncThumb.apply(this, [0].concat(arguments)) }, getNearest:function () { return this.thumbs[0] }}); Ext.Slider = Ext.slider.SingleSlider; Ext.reg("slider", Ext.slider.SingleSlider); Ext.slider.Vertical = {onResize:function (a, b) { this.innerEl.setHeight(b - (this.el.getPadding("t") + this.endEl.getPadding("b"))); this.syncThumb() }, getRatio:function () { var b = this.innerEl.getHeight(), a = this.maxValue - this.minValue; return b / a }, moveThumb:function (d, c, b) { var a = this.thumbs[d], e = a.el; if (!b || this.animate === false) { e.setBottom(c) } else { e.shift({bottom:c, stopFx:true, duration:0.35}) } }, onClickChange:function (c) { if (c.left > this.clickRange[0] && c.left < this.clickRange[1]) { var a = this.getNearest(c, "top"), b = a.index, d = this.minValue + this.reverseValue(this.innerEl.getHeight() - c.top); this.setValue(b, Ext.util.Format.round(d, this.decimalPrecision), undefined, true) } }}; Ext.slider.Thumb.Vertical = {getNewValue:function () { var b = this.slider, c = b.innerEl, d = c.translatePoints(this.tracker.getXY()), a = c.getHeight() - d.top; return b.minValue + Ext.util.Format.round(a / b.getRatio(), b.decimalPrecision) }}; Ext.ProgressBar = Ext.extend(Ext.BoxComponent, {baseCls:"x-progress", animate:false, waitTimer:null, initComponent:function () { Ext.ProgressBar.superclass.initComponent.call(this); this.addEvents("update") }, onRender:function (d, a) { var c = new Ext.Template('
    ', '
    ', '
    ', '
    ', "
     
    ", "
    ", "
    ", '
    ', "
     
    ", "
    ", "
    ", "
    "); this.el = a ? c.insertBefore(a, {cls:this.baseCls}, true) : c.append(d, {cls:this.baseCls}, true); if (this.id) { this.el.dom.id = this.id } var b = this.el.dom.firstChild; this.progressBar = Ext.get(b.firstChild); if (this.textEl) { this.textEl = Ext.get(this.textEl); delete this.textTopEl } else { this.textTopEl = Ext.get(this.progressBar.dom.firstChild); var e = Ext.get(b.childNodes[1]); this.textTopEl.setStyle("z-index", 99).addClass("x-hidden"); this.textEl = new Ext.CompositeElement([this.textTopEl.dom.firstChild, e.dom.firstChild]); this.textEl.setWidth(b.offsetWidth) } this.progressBar.setHeight(b.offsetHeight) }, afterRender:function () { Ext.ProgressBar.superclass.afterRender.call(this); if (this.value) { this.updateProgress(this.value, this.text) } else { this.updateText(this.text) } }, updateProgress:function (c, d, b) { this.value = c || 0; if (d) { this.updateText(d) } if (this.rendered && !this.isDestroyed) { var a = Math.floor(c * this.el.dom.firstChild.offsetWidth); this.progressBar.setWidth(a, b === true || (b !== false && this.animate)); if (this.textTopEl) { this.textTopEl.removeClass("x-hidden").setWidth(a) } } this.fireEvent("update", this, c, d); return this }, wait:function (b) { if (!this.waitTimer) { var a = this; b = b || {}; this.updateText(b.text); this.waitTimer = Ext.TaskMgr.start({run:function (c) { var d = b.increment || 10; c -= 1; this.updateProgress(((((c + d) % d) + 1) * (100 / d)) * 0.01, null, b.animate) }, interval:b.interval || 1000, duration:b.duration, onStop:function () { if (b.fn) { b.fn.apply(b.scope || this) } this.reset() }, scope:a}) } return this }, isWaiting:function () { return this.waitTimer !== null }, updateText:function (a) { this.text = a || " "; if (this.rendered) { this.textEl.update(this.text) } return this }, syncProgressBar:function () { if (this.value) { this.updateProgress(this.value, this.text) } return this }, setSize:function (a, c) { Ext.ProgressBar.superclass.setSize.call(this, a, c); if (this.textTopEl) { var b = this.el.dom.firstChild; this.textEl.setSize(b.offsetWidth, b.offsetHeight) } this.syncProgressBar(); return this }, reset:function (a) { this.updateProgress(0); if (this.textTopEl) { this.textTopEl.addClass("x-hidden") } this.clearTimer(); if (a === true) { this.hide() } return this }, clearTimer:function () { if (this.waitTimer) { this.waitTimer.onStop = null; Ext.TaskMgr.stop(this.waitTimer); this.waitTimer = null } }, onDestroy:function () { this.clearTimer(); if (this.rendered) { if (this.textEl.isComposite) { this.textEl.clear() } Ext.destroyMembers(this, "textEl", "progressBar", "textTopEl") } Ext.ProgressBar.superclass.onDestroy.call(this) }}); Ext.reg("progress", Ext.ProgressBar); (function () { var a = Ext.EventManager; var b = Ext.lib.Dom; Ext.dd.DragDrop = function (e, c, d) { if (e) { this.init(e, c, d) } }; Ext.dd.DragDrop.prototype = {id:null, config:null, dragElId:null, handleElId:null, invalidHandleTypes:null, invalidHandleIds:null, invalidHandleClasses:null, startPageX:0, startPageY:0, groups:null, locked:false, lock:function () { this.locked = true }, moveOnly:false, unlock:function () { this.locked = false }, isTarget:true, padding:null, _domRef:null, __ygDragDrop:true, constrainX:false, constrainY:false, minX:0, maxX:0, minY:0, maxY:0, maintainOffset:false, xTicks:null, yTicks:null, primaryButtonOnly:true, available:false, hasOuterHandles:false, b4StartDrag:function (c, d) { }, startDrag:function (c, d) { }, b4Drag:function (c) { }, onDrag:function (c) { }, onDragEnter:function (c, d) { }, b4DragOver:function (c) { }, onDragOver:function (c, d) { }, b4DragOut:function (c) { }, onDragOut:function (c, d) { }, b4DragDrop:function (c) { }, onDragDrop:function (c, d) { }, onInvalidDrop:function (c) { }, b4EndDrag:function (c) { }, endDrag:function (c) { }, b4MouseDown:function (c) { }, onMouseDown:function (c) { }, onMouseUp:function (c) { }, onAvailable:function () { }, defaultPadding:{left:0, right:0, top:0, bottom:0}, constrainTo:function (j, h, o) { if (Ext.isNumber(h)) { h = {left:h, right:h, top:h, bottom:h} } h = h || this.defaultPadding; var l = Ext.get(this.getEl()).getBox(), d = Ext.get(j), n = d.getScroll(), k, e = d.dom; if (e == document.body) { k = {x:n.left, y:n.top, width:Ext.lib.Dom.getViewWidth(), height:Ext.lib.Dom.getViewHeight()} } else { var m = d.getXY(); k = {x:m[0], y:m[1], width:e.clientWidth, height:e.clientHeight} } var i = l.y - k.y, g = l.x - k.x; this.resetConstraints(); this.setXConstraint(g - (h.left || 0), k.width - g - l.width - (h.right || 0), this.xTickSize); this.setYConstraint(i - (h.top || 0), k.height - i - l.height - (h.bottom || 0), this.yTickSize) }, getEl:function () { if (!this._domRef) { this._domRef = Ext.getDom(this.id) } return this._domRef }, getDragEl:function () { return Ext.getDom(this.dragElId) }, init:function (e, c, d) { this.initTarget(e, c, d); a.on(this.id, "mousedown", this.handleMouseDown, this) }, initTarget:function (e, c, d) { this.config = d || {}; this.DDM = Ext.dd.DDM; this.groups = {}; if (typeof e !== "string") { e = Ext.id(e) } this.id = e; this.addToGroup((c) ? c : "default"); this.handleElId = e; this.setDragElId(e); this.invalidHandleTypes = {A:"A"}; this.invalidHandleIds = {}; this.invalidHandleClasses = []; this.applyConfig(); this.handleOnAvailable() }, applyConfig:function () { this.padding = this.config.padding || [0, 0, 0, 0]; this.isTarget = (this.config.isTarget !== false); this.maintainOffset = (this.config.maintainOffset); this.primaryButtonOnly = (this.config.primaryButtonOnly !== false) }, handleOnAvailable:function () { this.available = true; this.resetConstraints(); this.onAvailable() }, setPadding:function (e, c, g, d) { if (!c && 0 !== c) { this.padding = [e, e, e, e] } else { if (!g && 0 !== g) { this.padding = [e, c, e, c] } else { this.padding = [e, c, g, d] } } }, setInitPosition:function (g, e) { var h = this.getEl(); if (!this.DDM.verifyEl(h)) { return } var d = g || 0; var c = e || 0; var i = b.getXY(h); this.initPageX = i[0] - d; this.initPageY = i[1] - c; this.lastPageX = i[0]; this.lastPageY = i[1]; this.setStartPosition(i) }, setStartPosition:function (d) { var c = d || b.getXY(this.getEl()); this.deltaSetXY = null; this.startPageX = c[0]; this.startPageY = c[1] }, addToGroup:function (c) { this.groups[c] = true; this.DDM.regDragDrop(this, c) }, removeFromGroup:function (c) { if (this.groups[c]) { delete this.groups[c] } this.DDM.removeDDFromGroup(this, c) }, setDragElId:function (c) { this.dragElId = c }, setHandleElId:function (c) { if (typeof c !== "string") { c = Ext.id(c) } this.handleElId = c; this.DDM.regHandle(this.id, c) }, setOuterHandleElId:function (c) { if (typeof c !== "string") { c = Ext.id(c) } a.on(c, "mousedown", this.handleMouseDown, this); this.setHandleElId(c); this.hasOuterHandles = true }, unreg:function () { a.un(this.id, "mousedown", this.handleMouseDown); this._domRef = null; this.DDM._remove(this) }, destroy:function () { this.unreg() }, isLocked:function () { return(this.DDM.isLocked() || this.locked) }, handleMouseDown:function (g, d) { if (this.primaryButtonOnly && g.button != 0) { return } if (this.isLocked()) { return } this.DDM.refreshCache(this.groups); var c = new Ext.lib.Point(Ext.lib.Event.getPageX(g), Ext.lib.Event.getPageY(g)); if (!this.hasOuterHandles && !this.DDM.isOverTarget(c, this)) { } else { if (this.clickValidator(g)) { this.setStartPosition(); this.b4MouseDown(g); this.onMouseDown(g); this.DDM.handleMouseDown(g, this); this.DDM.stopEvent(g) } else { } } }, clickValidator:function (d) { var c = d.getTarget(); return(this.isValidHandleChild(c) && (this.id == this.handleElId || this.DDM.handleWasClicked(c, this.id))) }, addInvalidHandleType:function (c) { var d = c.toUpperCase(); this.invalidHandleTypes[d] = d }, addInvalidHandleId:function (c) { if (typeof c !== "string") { c = Ext.id(c) } this.invalidHandleIds[c] = c }, addInvalidHandleClass:function (c) { this.invalidHandleClasses.push(c) }, removeInvalidHandleType:function (c) { var d = c.toUpperCase(); delete this.invalidHandleTypes[d] }, removeInvalidHandleId:function (c) { if (typeof c !== "string") { c = Ext.id(c) } delete this.invalidHandleIds[c] }, removeInvalidHandleClass:function (d) { for (var e = 0, c = this.invalidHandleClasses.length; e < c; ++e) { if (this.invalidHandleClasses[e] == d) { delete this.invalidHandleClasses[e] } } }, isValidHandleChild:function (h) { var g = true; var k; try { k = h.nodeName.toUpperCase() } catch (j) { k = h.nodeName } g = g && !this.invalidHandleTypes[k]; g = g && !this.invalidHandleIds[h.id]; for (var d = 0, c = this.invalidHandleClasses.length; g && d < c; ++d) { g = !Ext.fly(h).hasClass(this.invalidHandleClasses[d]) } return g }, setXTicks:function (g, c) { this.xTicks = []; this.xTickSize = c; var e = {}; for (var d = this.initPageX; d >= this.minX; d = d - c) { if (!e[d]) { this.xTicks[this.xTicks.length] = d; e[d] = true } } for (d = this.initPageX; d <= this.maxX; d = d + c) { if (!e[d]) { this.xTicks[this.xTicks.length] = d; e[d] = true } } this.xTicks.sort(this.DDM.numericSort) }, setYTicks:function (g, c) { this.yTicks = []; this.yTickSize = c; var e = {}; for (var d = this.initPageY; d >= this.minY; d = d - c) { if (!e[d]) { this.yTicks[this.yTicks.length] = d; e[d] = true } } for (d = this.initPageY; d <= this.maxY; d = d + c) { if (!e[d]) { this.yTicks[this.yTicks.length] = d; e[d] = true } } this.yTicks.sort(this.DDM.numericSort) }, setXConstraint:function (e, d, c) { this.leftConstraint = e; this.rightConstraint = d; this.minX = this.initPageX - e; this.maxX = this.initPageX + d; if (c) { this.setXTicks(this.initPageX, c) } this.constrainX = true }, clearConstraints:function () { this.constrainX = false; this.constrainY = false; this.clearTicks() }, clearTicks:function () { this.xTicks = null; this.yTicks = null; this.xTickSize = 0; this.yTickSize = 0 }, setYConstraint:function (c, e, d) { this.topConstraint = c; this.bottomConstraint = e; this.minY = this.initPageY - c; this.maxY = this.initPageY + e; if (d) { this.setYTicks(this.initPageY, d) } this.constrainY = true }, resetConstraints:function () { if (this.initPageX || this.initPageX === 0) { var d = (this.maintainOffset) ? this.lastPageX - this.initPageX : 0; var c = (this.maintainOffset) ? this.lastPageY - this.initPageY : 0; this.setInitPosition(d, c) } else { this.setInitPosition() } if (this.constrainX) { this.setXConstraint(this.leftConstraint, this.rightConstraint, this.xTickSize) } if (this.constrainY) { this.setYConstraint(this.topConstraint, this.bottomConstraint, this.yTickSize) } }, getTick:function (k, g) { if (!g) { return k } else { if (g[0] >= k) { return g[0] } else { for (var d = 0, c = g.length; d < c; ++d) { var e = d + 1; if (g[e] && g[e] >= k) { var j = k - g[d]; var h = g[e] - k; return(h > j) ? g[d] : g[e] } } return g[g.length - 1] } } }, toString:function () { return("DragDrop " + this.id) }} })(); if (!Ext.dd.DragDropMgr) { Ext.dd.DragDropMgr = function () { var a = Ext.EventManager; return{ids:{}, handleIds:{}, dragCurrent:null, dragOvers:{}, deltaX:0, deltaY:0, preventDefault:true, stopPropagation:true, initialized:false, locked:false, init:function () { this.initialized = true }, POINT:0, INTERSECT:1, mode:0, _execOnAll:function (d, c) { for (var e in this.ids) { for (var b in this.ids[e]) { var g = this.ids[e][b]; if (!this.isTypeOfDD(g)) { continue } g[d].apply(g, c) } } }, _onLoad:function () { this.init(); a.on(document, "mouseup", this.handleMouseUp, this, true); a.on(document, "mousemove", this.handleMouseMove, this, true); a.on(window, "unload", this._onUnload, this, true); a.on(window, "resize", this._onResize, this, true) }, _onResize:function (b) { this._execOnAll("resetConstraints", []) }, lock:function () { this.locked = true }, unlock:function () { this.locked = false }, isLocked:function () { return this.locked }, locationCache:{}, useCache:true, clickPixelThresh:3, clickTimeThresh:350, dragThreshMet:false, clickTimeout:null, startX:0, startY:0, regDragDrop:function (c, b) { if (!this.initialized) { this.init() } if (!this.ids[b]) { this.ids[b] = {} } this.ids[b][c.id] = c }, removeDDFromGroup:function (d, b) { if (!this.ids[b]) { this.ids[b] = {} } var c = this.ids[b]; if (c && c[d.id]) { delete c[d.id] } }, _remove:function (c) { for (var b in c.groups) { if (b && this.ids[b] && this.ids[b][c.id]) { delete this.ids[b][c.id] } } delete this.handleIds[c.id] }, regHandle:function (c, b) { if (!this.handleIds[c]) { this.handleIds[c] = {} } this.handleIds[c][b] = b }, isDragDrop:function (b) { return(this.getDDById(b)) ? true : false }, getRelated:function (h, c) { var g = []; for (var e in h.groups) { for (var d in this.ids[e]) { var b = this.ids[e][d]; if (!this.isTypeOfDD(b)) { continue } if (!c || b.isTarget) { g[g.length] = b } } } return g }, isLegalTarget:function (g, e) { var c = this.getRelated(g, true); for (var d = 0, b = c.length; d < b; ++d) { if (c[d].id == e.id) { return true } } return false }, isTypeOfDD:function (b) { return(b && b.__ygDragDrop) }, isHandle:function (c, b) { return(this.handleIds[c] && this.handleIds[c][b]) }, getDDById:function (c) { for (var b in this.ids) { if (this.ids[b][c]) { return this.ids[b][c] } } return null }, handleMouseDown:function (d, c) { if (Ext.QuickTips) { Ext.QuickTips.ddDisable() } if (this.dragCurrent) { this.handleMouseUp(d) } this.currentTarget = d.getTarget(); this.dragCurrent = c; var b = c.getEl(); this.startX = d.getPageX(); this.startY = d.getPageY(); this.deltaX = this.startX - b.offsetLeft; this.deltaY = this.startY - b.offsetTop; this.dragThreshMet = false; this.clickTimeout = setTimeout(function () { var e = Ext.dd.DDM; e.startDrag(e.startX, e.startY) }, this.clickTimeThresh) }, startDrag:function (b, c) { clearTimeout(this.clickTimeout); if (this.dragCurrent) { this.dragCurrent.b4StartDrag(b, c); this.dragCurrent.startDrag(b, c) } this.dragThreshMet = true }, handleMouseUp:function (b) { if (Ext.QuickTips) { Ext.QuickTips.ddEnable() } if (!this.dragCurrent) { return } clearTimeout(this.clickTimeout); if (this.dragThreshMet) { this.fireEvents(b, true) } else { } this.stopDrag(b); this.stopEvent(b) }, stopEvent:function (b) { if (this.stopPropagation) { b.stopPropagation() } if (this.preventDefault) { b.preventDefault() } }, stopDrag:function (b) { if (this.dragCurrent) { if (this.dragThreshMet) { this.dragCurrent.b4EndDrag(b); this.dragCurrent.endDrag(b) } this.dragCurrent.onMouseUp(b) } this.dragCurrent = null; this.dragOvers = {} }, handleMouseMove:function (d) { if (!this.dragCurrent) { return true } if (Ext.isIE && (d.button !== 0 && d.button !== 1 && d.button !== 2)) { this.stopEvent(d); return this.handleMouseUp(d) } if (!this.dragThreshMet) { var c = Math.abs(this.startX - d.getPageX()); var b = Math.abs(this.startY - d.getPageY()); if (c > this.clickPixelThresh || b > this.clickPixelThresh) { this.startDrag(this.startX, this.startY) } } if (this.dragThreshMet) { this.dragCurrent.b4Drag(d); this.dragCurrent.onDrag(d); if (!this.dragCurrent.moveOnly) { this.fireEvents(d, false) } } this.stopEvent(d); return true }, fireEvents:function (n, o) { var q = this.dragCurrent; if (!q || q.isLocked()) { return } var r = n.getPoint(); var b = []; var g = []; var l = []; var j = []; var d = []; for (var h in this.dragOvers) { var c = this.dragOvers[h]; if (!this.isTypeOfDD(c)) { continue } if (!this.isOverTarget(r, c, this.mode)) { g.push(c) } b[h] = true; delete this.dragOvers[h] } for (var p in q.groups) { if ("string" != typeof p) { continue } for (h in this.ids[p]) { var k = this.ids[p][h]; if (!this.isTypeOfDD(k)) { continue } if (k.isTarget && !k.isLocked() && ((k != q) || (q.ignoreSelf === false))) { if (this.isOverTarget(r, k, this.mode)) { if (o) { j.push(k) } else { if (!b[k.id]) { d.push(k) } else { l.push(k) } this.dragOvers[k.id] = k } } } } } if (this.mode) { if (g.length) { q.b4DragOut(n, g); q.onDragOut(n, g) } if (d.length) { q.onDragEnter(n, d) } if (l.length) { q.b4DragOver(n, l); q.onDragOver(n, l) } if (j.length) { q.b4DragDrop(n, j); q.onDragDrop(n, j) } } else { var m = 0; for (h = 0, m = g.length; h < m; ++h) { q.b4DragOut(n, g[h].id); q.onDragOut(n, g[h].id) } for (h = 0, m = d.length; h < m; ++h) { q.onDragEnter(n, d[h].id) } for (h = 0, m = l.length; h < m; ++h) { q.b4DragOver(n, l[h].id); q.onDragOver(n, l[h].id) } for (h = 0, m = j.length; h < m; ++h) { q.b4DragDrop(n, j[h].id); q.onDragDrop(n, j[h].id) } } if (o && !j.length) { q.onInvalidDrop(n) } }, getBestMatch:function (d) { var g = null; var c = d.length; if (c == 1) { g = d[0] } else { for (var e = 0; e < c; ++e) { var b = d[e]; if (b.cursorIsOver) { g = b; break } else { if (!g || g.overlap.getArea() < b.overlap.getArea()) { g = b } } } } return g }, refreshCache:function (c) { for (var b in c) { if ("string" != typeof b) { continue } for (var d in this.ids[b]) { var e = this.ids[b][d]; if (this.isTypeOfDD(e)) { var g = this.getLocation(e); if (g) { this.locationCache[e.id] = g } else { delete this.locationCache[e.id] } } } } }, verifyEl:function (c) { if (c) { var b; if (Ext.isIE) { try { b = c.offsetParent } catch (d) { } } else { b = c.offsetParent } if (b) { return true } } return false }, getLocation:function (j) { if (!this.isTypeOfDD(j)) { return null } var h = j.getEl(), o, g, d, q, p, s, c, n, i, m; try { o = Ext.lib.Dom.getXY(h) } catch (k) { } if (!o) { return null } g = o[0]; d = g + h.offsetWidth; q = o[1]; p = q + h.offsetHeight; s = q - j.padding[0]; c = d + j.padding[1]; n = p + j.padding[2]; i = g - j.padding[3]; m = new Ext.lib.Region(s, c, n, i); h = Ext.get(h.parentNode); while (h && m) { if (h.isScrollable()) { m = m.intersect(h.getRegion()) } h = h.parent() } return m }, isOverTarget:function (k, b, d) { var g = this.locationCache[b.id]; if (!g || !this.useCache) { g = this.getLocation(b); this.locationCache[b.id] = g } if (!g) { return false } b.cursorIsOver = g.contains(k); var j = this.dragCurrent; if (!j || !j.getTargetCoord || (!d && !j.constrainX && !j.constrainY)) { return b.cursorIsOver } b.overlap = null; var h = j.getTargetCoord(k.x, k.y); var c = j.getDragEl(); var e = new Ext.lib.Region(h.y, h.x + c.offsetWidth, h.y + c.offsetHeight, h.x); var i = e.intersect(g); if (i) { b.overlap = i; return(d) ? true : b.cursorIsOver } else { return false } }, _onUnload:function (c, b) { a.removeListener(document, "mouseup", this.handleMouseUp, this); a.removeListener(document, "mousemove", this.handleMouseMove, this); a.removeListener(window, "resize", this._onResize, this); Ext.dd.DragDropMgr.unregAll() }, unregAll:function () { if (this.dragCurrent) { this.stopDrag(); this.dragCurrent = null } this._execOnAll("unreg", []); for (var b in this.elementCache) { delete this.elementCache[b] } this.elementCache = {}; this.ids = {} }, elementCache:{}, getElWrapper:function (c) { var b = this.elementCache[c]; if (!b || !b.el) { b = this.elementCache[c] = new this.ElementWrapper(Ext.getDom(c)) } return b }, getElement:function (b) { return Ext.getDom(b) }, getCss:function (c) { var b = Ext.getDom(c); return(b) ? b.style : null }, ElementWrapper:function (b) { this.el = b || null; this.id = this.el && b.id; this.css = this.el && b.style }, getPosX:function (b) { return Ext.lib.Dom.getX(b) }, getPosY:function (b) { return Ext.lib.Dom.getY(b) }, swapNode:function (d, b) { if (d.swapNode) { d.swapNode(b) } else { var e = b.parentNode; var c = b.nextSibling; if (c == d) { e.insertBefore(d, b) } else { if (b == d.nextSibling) { e.insertBefore(b, d) } else { d.parentNode.replaceChild(b, d); e.insertBefore(d, c) } } } }, getScroll:function () { var d, b, e = document.documentElement, c = document.body; if (e && (e.scrollTop || e.scrollLeft)) { d = e.scrollTop; b = e.scrollLeft } else { if (c) { d = c.scrollTop; b = c.scrollLeft } else { } } return{top:d, left:b} }, getStyle:function (c, b) { return Ext.fly(c).getStyle(b) }, getScrollTop:function () { return this.getScroll().top }, getScrollLeft:function () { return this.getScroll().left }, moveToEl:function (b, d) { var c = Ext.lib.Dom.getXY(d); Ext.lib.Dom.setXY(b, c) }, numericSort:function (d, c) { return(d - c) }, _timeoutCount:0, _addListeners:function () { var b = Ext.dd.DDM; if (Ext.lib.Event && document) { b._onLoad() } else { if (b._timeoutCount > 2000) { } else { setTimeout(b._addListeners, 10); if (document && document.body) { b._timeoutCount += 1 } } } }, handleWasClicked:function (b, d) { if (this.isHandle(d, b.id)) { return true } else { var c = b.parentNode; while (c) { if (this.isHandle(d, c.id)) { return true } else { c = c.parentNode } } } return false }} }(); Ext.dd.DDM = Ext.dd.DragDropMgr; Ext.dd.DDM._addListeners() } Ext.dd.DD = function (c, a, b) { if (c) { this.init(c, a, b) } }; Ext.extend(Ext.dd.DD, Ext.dd.DragDrop, {scroll:true, autoOffset:function (c, b) { var a = c - this.startPageX; var d = b - this.startPageY; this.setDelta(a, d) }, setDelta:function (b, a) { this.deltaX = b; this.deltaY = a }, setDragElPos:function (c, b) { var a = this.getDragEl(); this.alignElWithMouse(a, c, b) }, alignElWithMouse:function (c, h, g) { var e = this.getTargetCoord(h, g); var b = c.dom ? c : Ext.fly(c, "_dd"); if (!this.deltaSetXY) { var i = [e.x, e.y]; b.setXY(i); var d = b.getLeft(true); var a = b.getTop(true); this.deltaSetXY = [d - e.x, a - e.y] } else { b.setLeftTop(e.x + this.deltaSetXY[0], e.y + this.deltaSetXY[1]) } this.cachePosition(e.x, e.y); this.autoScroll(e.x, e.y, c.offsetHeight, c.offsetWidth); return e }, cachePosition:function (b, a) { if (b) { this.lastPageX = b; this.lastPageY = a } else { var c = Ext.lib.Dom.getXY(this.getEl()); this.lastPageX = c[0]; this.lastPageY = c[1] } }, autoScroll:function (l, k, e, m) { if (this.scroll) { var n = Ext.lib.Dom.getViewHeight(); var b = Ext.lib.Dom.getViewWidth(); var p = this.DDM.getScrollTop(); var d = this.DDM.getScrollLeft(); var j = e + k; var o = m + l; var i = (n + p - k - this.deltaY); var g = (b + d - l - this.deltaX); var c = 40; var a = (document.all) ? 80 : 30; if (j > n && i < c) { window.scrollTo(d, p + a) } if (k < p && p > 0 && k - p < c) { window.scrollTo(d, p - a) } if (o > b && g < c) { window.scrollTo(d + a, p) } if (l < d && d > 0 && l - d < c) { window.scrollTo(d - a, p) } } }, getTargetCoord:function (c, b) { var a = c - this.deltaX; var d = b - this.deltaY; if (this.constrainX) { if (a < this.minX) { a = this.minX } if (a > this.maxX) { a = this.maxX } } if (this.constrainY) { if (d < this.minY) { d = this.minY } if (d > this.maxY) { d = this.maxY } } a = this.getTick(a, this.xTicks); d = this.getTick(d, this.yTicks); return{x:a, y:d} }, applyConfig:function () { Ext.dd.DD.superclass.applyConfig.call(this); this.scroll = (this.config.scroll !== false) }, b4MouseDown:function (a) { this.autoOffset(a.getPageX(), a.getPageY()) }, b4Drag:function (a) { this.setDragElPos(a.getPageX(), a.getPageY()) }, toString:function () { return("DD " + this.id) }}); Ext.dd.DDProxy = function (c, a, b) { if (c) { this.init(c, a, b); this.initFrame() } }; Ext.dd.DDProxy.dragElId = "ygddfdiv"; Ext.extend(Ext.dd.DDProxy, Ext.dd.DD, {resizeFrame:true, centerFrame:false, createFrame:function () { var b = this; var a = document.body; if (!a || !a.firstChild) { setTimeout(function () { b.createFrame() }, 50); return } var d = this.getDragEl(); if (!d) { d = document.createElement("div"); d.id = this.dragElId; var c = d.style; c.position = "absolute"; c.visibility = "hidden"; c.cursor = "move"; c.border = "2px solid #aaa"; c.zIndex = 999; a.insertBefore(d, a.firstChild) } }, initFrame:function () { this.createFrame() }, applyConfig:function () { Ext.dd.DDProxy.superclass.applyConfig.call(this); this.resizeFrame = (this.config.resizeFrame !== false); this.centerFrame = (this.config.centerFrame); this.setDragElId(this.config.dragElId || Ext.dd.DDProxy.dragElId) }, showFrame:function (e, d) { var c = this.getEl(); var a = this.getDragEl(); var b = a.style; this._resizeProxy(); if (this.centerFrame) { this.setDelta(Math.round(parseInt(b.width, 10) / 2), Math.round(parseInt(b.height, 10) / 2)) } this.setDragElPos(e, d); Ext.fly(a).show() }, _resizeProxy:function () { if (this.resizeFrame) { var a = this.getEl(); Ext.fly(this.getDragEl()).setSize(a.offsetWidth, a.offsetHeight) } }, b4MouseDown:function (b) { var a = b.getPageX(); var c = b.getPageY(); this.autoOffset(a, c); this.setDragElPos(a, c) }, b4StartDrag:function (a, b) { this.showFrame(a, b) }, b4EndDrag:function (a) { Ext.fly(this.getDragEl()).hide() }, endDrag:function (c) { var b = this.getEl(); var a = this.getDragEl(); a.style.visibility = ""; this.beforeMove(); b.style.visibility = "hidden"; Ext.dd.DDM.moveToEl(b, a); a.style.visibility = "hidden"; b.style.visibility = ""; this.afterDrag() }, beforeMove:function () { }, afterDrag:function () { }, toString:function () { return("DDProxy " + this.id) }}); Ext.dd.DDTarget = function (c, a, b) { if (c) { this.initTarget(c, a, b) } }; Ext.extend(Ext.dd.DDTarget, Ext.dd.DragDrop, {getDragEl:Ext.emptyFn, isValidHandleChild:Ext.emptyFn, startDrag:Ext.emptyFn, endDrag:Ext.emptyFn, onDrag:Ext.emptyFn, onDragDrop:Ext.emptyFn, onDragEnter:Ext.emptyFn, onDragOut:Ext.emptyFn, onDragOver:Ext.emptyFn, onInvalidDrop:Ext.emptyFn, onMouseDown:Ext.emptyFn, onMouseUp:Ext.emptyFn, setXConstraint:Ext.emptyFn, setYConstraint:Ext.emptyFn, resetConstraints:Ext.emptyFn, clearConstraints:Ext.emptyFn, clearTicks:Ext.emptyFn, setInitPosition:Ext.emptyFn, setDragElId:Ext.emptyFn, setHandleElId:Ext.emptyFn, setOuterHandleElId:Ext.emptyFn, addInvalidHandleClass:Ext.emptyFn, addInvalidHandleId:Ext.emptyFn, addInvalidHandleType:Ext.emptyFn, removeInvalidHandleClass:Ext.emptyFn, removeInvalidHandleId:Ext.emptyFn, removeInvalidHandleType:Ext.emptyFn, toString:function () { return("DDTarget " + this.id) }}); Ext.dd.DragTracker = Ext.extend(Ext.util.Observable, {active:false, tolerance:5, autoStart:false, constructor:function (a) { Ext.apply(this, a); this.addEvents("mousedown", "mouseup", "mousemove", "dragstart", "dragend", "drag"); this.dragRegion = new Ext.lib.Region(0, 0, 0, 0); if (this.el) { this.initEl(this.el) } Ext.dd.DragTracker.superclass.constructor.call(this, a) }, initEl:function (a) { this.el = Ext.get(a); a.on("mousedown", this.onMouseDown, this, this.delegate ? {delegate:this.delegate} : undefined) }, destroy:function () { this.el.un("mousedown", this.onMouseDown, this); delete this.el }, onMouseDown:function (b, a) { if (this.fireEvent("mousedown", this, b) !== false && this.onBeforeStart(b) !== false) { this.startXY = this.lastXY = b.getXY(); this.dragTarget = this.delegate ? a : this.el.dom; if (this.preventDefault !== false) { b.preventDefault() } Ext.getDoc().on({scope:this, mouseup:this.onMouseUp, mousemove:this.onMouseMove, selectstart:this.stopSelect}); if (this.autoStart) { this.timer = this.triggerStart.defer(this.autoStart === true ? 1000 : this.autoStart, this, [b]) } } }, onMouseMove:function (d, c) { if (this.active && Ext.isIE && !d.browserEvent.button) { d.preventDefault(); this.onMouseUp(d); return } d.preventDefault(); var b = d.getXY(), a = this.startXY; this.lastXY = b; if (!this.active) { if (Math.abs(a[0] - b[0]) > this.tolerance || Math.abs(a[1] - b[1]) > this.tolerance) { this.triggerStart(d) } else { return } } this.fireEvent("mousemove", this, d); this.onDrag(d); this.fireEvent("drag", this, d) }, onMouseUp:function (c) { var b = Ext.getDoc(), a = this.active; b.un("mousemove", this.onMouseMove, this); b.un("mouseup", this.onMouseUp, this); b.un("selectstart", this.stopSelect, this); c.preventDefault(); this.clearStart(); this.active = false; delete this.elRegion; this.fireEvent("mouseup", this, c); if (a) { this.onEnd(c); this.fireEvent("dragend", this, c) } }, triggerStart:function (a) { this.clearStart(); this.active = true; this.onStart(a); this.fireEvent("dragstart", this, a) }, clearStart:function () { if (this.timer) { clearTimeout(this.timer); delete this.timer } }, stopSelect:function (a) { a.stopEvent(); return false }, onBeforeStart:function (a) { }, onStart:function (a) { }, onDrag:function (a) { }, onEnd:function (a) { }, getDragTarget:function () { return this.dragTarget }, getDragCt:function () { return this.el }, getXY:function (a) { return a ? this.constrainModes[a].call(this, this.lastXY) : this.lastXY }, getOffset:function (c) { var b = this.getXY(c), a = this.startXY; return[a[0] - b[0], a[1] - b[1]] }, constrainModes:{point:function (b) { if (!this.elRegion) { this.elRegion = this.getDragCt().getRegion() } var a = this.dragRegion; a.left = b[0]; a.top = b[1]; a.right = b[0]; a.bottom = b[1]; a.constrainTo(this.elRegion); return[a.left, a.top] }}}); Ext.dd.ScrollManager = function () { var c = Ext.dd.DragDropMgr; var e = {}; var b = null; var i = {}; var h = function (l) { b = null; a() }; var j = function () { if (c.dragCurrent) { c.refreshCache(c.dragCurrent.groups) } }; var d = function () { if (c.dragCurrent) { var l = Ext.dd.ScrollManager; var m = i.el.ddScrollConfig ? i.el.ddScrollConfig.increment : l.increment; if (!l.animate) { if (i.el.scroll(i.dir, m)) { j() } } else { i.el.scroll(i.dir, m, true, l.animDuration, j) } } }; var a = function () { if (i.id) { clearInterval(i.id) } i.id = 0; i.el = null; i.dir = "" }; var g = function (m, l) { a(); i.el = m; i.dir = l; var o = m.ddScrollConfig ? m.ddScrollConfig.ddGroup : undefined, n = (m.ddScrollConfig && m.ddScrollConfig.frequency) ? m.ddScrollConfig.frequency : Ext.dd.ScrollManager.frequency; if (o === undefined || c.dragCurrent.ddGroup == o) { i.id = setInterval(d, n) } }; var k = function (o, q) { if (q || !c.dragCurrent) { return } var s = Ext.dd.ScrollManager; if (!b || b != c.dragCurrent) { b = c.dragCurrent; s.refreshCache() } var t = Ext.lib.Event.getXY(o); var u = new Ext.lib.Point(t[0], t[1]); for (var m in e) { var n = e[m], l = n._region; var p = n.ddScrollConfig ? n.ddScrollConfig : s; if (l && l.contains(u) && n.isScrollable()) { if (l.bottom - u.y <= p.vthresh) { if (i.el != n) { g(n, "down") } return } else { if (l.right - u.x <= p.hthresh) { if (i.el != n) { g(n, "left") } return } else { if (u.y - l.top <= p.vthresh) { if (i.el != n) { g(n, "up") } return } else { if (u.x - l.left <= p.hthresh) { if (i.el != n) { g(n, "right") } return } } } } } } a() }; c.fireEvents = c.fireEvents.createSequence(k, c); c.stopDrag = c.stopDrag.createSequence(h, c); return{register:function (n) { if (Ext.isArray(n)) { for (var m = 0, l = n.length; m < l; m++) { this.register(n[m]) } } else { n = Ext.get(n); e[n.id] = n } }, unregister:function (n) { if (Ext.isArray(n)) { for (var m = 0, l = n.length; m < l; m++) { this.unregister(n[m]) } } else { n = Ext.get(n); delete e[n.id] } }, vthresh:25, hthresh:25, increment:100, frequency:500, animate:true, animDuration:0.4, ddGroup:undefined, refreshCache:function () { for (var l in e) { if (typeof e[l] == "object") { e[l]._region = e[l].getRegion() } } }} }(); Ext.dd.Registry = function () { var d = {}; var b = {}; var a = 0; var c = function (g, e) { if (typeof g == "string") { return g } var h = g.id; if (!h && e !== false) { h = "extdd-" + (++a); g.id = h } return h }; return{register:function (j, k) { k = k || {}; if (typeof j == "string") { j = document.getElementById(j) } k.ddel = j; d[c(j)] = k; if (k.isHandle !== false) { b[k.ddel.id] = k } if (k.handles) { var h = k.handles; for (var g = 0, e = h.length; g < e; g++) { b[c(h[g])] = k } } }, unregister:function (j) { var l = c(j, false); var k = d[l]; if (k) { delete d[l]; if (k.handles) { var h = k.handles; for (var g = 0, e = h.length; g < e; g++) { delete b[c(h[g], false)] } } } }, getHandle:function (e) { if (typeof e != "string") { e = e.id } return b[e] }, getHandleFromEvent:function (h) { var g = Ext.lib.Event.getTarget(h); return g ? b[g.id] : null }, getTarget:function (e) { if (typeof e != "string") { e = e.id } return d[e] }, getTargetFromEvent:function (h) { var g = Ext.lib.Event.getTarget(h); return g ? d[g.id] || b[g.id] : null }} }(); Ext.dd.StatusProxy = function (a) { Ext.apply(this, a); this.id = this.id || Ext.id(); this.el = new Ext.Layer({dh:{id:this.id, tag:"div", cls:"x-dd-drag-proxy " + this.dropNotAllowed, children:[ {tag:"div", cls:"x-dd-drop-icon"}, {tag:"div", cls:"x-dd-drag-ghost"} ]}, shadow:!a || a.shadow !== false}); this.ghost = Ext.get(this.el.dom.childNodes[1]); this.dropStatus = this.dropNotAllowed }; Ext.dd.StatusProxy.prototype = {dropAllowed:"x-dd-drop-ok", dropNotAllowed:"x-dd-drop-nodrop", setStatus:function (a) { a = a || this.dropNotAllowed; if (this.dropStatus != a) { this.el.replaceClass(this.dropStatus, a); this.dropStatus = a } }, reset:function (a) { this.el.dom.className = "x-dd-drag-proxy " + this.dropNotAllowed; this.dropStatus = this.dropNotAllowed; if (a) { this.ghost.update("") } }, update:function (a) { if (typeof a == "string") { this.ghost.update(a) } else { this.ghost.update(""); a.style.margin = "0"; this.ghost.dom.appendChild(a) } var b = this.ghost.dom.firstChild; if (b) { Ext.fly(b).setStyle("float", "none") } }, getEl:function () { return this.el }, getGhost:function () { return this.ghost }, hide:function (a) { this.el.hide(); if (a) { this.reset(true) } }, stop:function () { if (this.anim && this.anim.isAnimated && this.anim.isAnimated()) { this.anim.stop() } }, show:function () { this.el.show() }, sync:function () { this.el.sync() }, repair:function (b, c, a) { this.callback = c; this.scope = a; if (b && this.animRepair !== false) { this.el.addClass("x-dd-drag-repair"); this.el.hideUnders(true); this.anim = this.el.shift({duration:this.repairDuration || 0.5, easing:"easeOut", xy:b, stopFx:true, callback:this.afterRepair, scope:this}) } else { this.afterRepair() } }, afterRepair:function () { this.hide(true); if (typeof this.callback == "function") { this.callback.call(this.scope || this) } this.callback = null; this.scope = null }, destroy:function () { Ext.destroy(this.ghost, this.el) }}; Ext.dd.DragSource = function (b, a) { this.el = Ext.get(b); if (!this.dragData) { this.dragData = {} } Ext.apply(this, a); if (!this.proxy) { this.proxy = new Ext.dd.StatusProxy() } Ext.dd.DragSource.superclass.constructor.call(this, this.el.dom, this.ddGroup || this.group, {dragElId:this.proxy.id, resizeFrame:false, isTarget:false, scroll:this.scroll === true}); this.dragging = false }; Ext.extend(Ext.dd.DragSource, Ext.dd.DDProxy, {dropAllowed:"x-dd-drop-ok", dropNotAllowed:"x-dd-drop-nodrop", getDragData:function (a) { return this.dragData }, onDragEnter:function (c, d) { var b = Ext.dd.DragDropMgr.getDDById(d); this.cachedTarget = b; if (this.beforeDragEnter(b, c, d) !== false) { if (b.isNotifyTarget) { var a = b.notifyEnter(this, c, this.dragData); this.proxy.setStatus(a) } else { this.proxy.setStatus(this.dropAllowed) } if (this.afterDragEnter) { this.afterDragEnter(b, c, d) } } }, beforeDragEnter:function (b, a, c) { return true }, alignElWithMouse:function () { Ext.dd.DragSource.superclass.alignElWithMouse.apply(this, arguments); this.proxy.sync() }, onDragOver:function (c, d) { var b = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(d); if (this.beforeDragOver(b, c, d) !== false) { if (b.isNotifyTarget) { var a = b.notifyOver(this, c, this.dragData); this.proxy.setStatus(a) } if (this.afterDragOver) { this.afterDragOver(b, c, d) } } }, beforeDragOver:function (b, a, c) { return true }, onDragOut:function (b, c) { var a = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(c); if (this.beforeDragOut(a, b, c) !== false) { if (a.isNotifyTarget) { a.notifyOut(this, b, this.dragData) } this.proxy.reset(); if (this.afterDragOut) { this.afterDragOut(a, b, c) } } this.cachedTarget = null }, beforeDragOut:function (b, a, c) { return true }, onDragDrop:function (b, c) { var a = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(c); if (this.beforeDragDrop(a, b, c) !== false) { if (a.isNotifyTarget) { if (a.notifyDrop(this, b, this.dragData)) { this.onValidDrop(a, b, c) } else { this.onInvalidDrop(a, b, c) } } else { this.onValidDrop(a, b, c) } if (this.afterDragDrop) { this.afterDragDrop(a, b, c) } } delete this.cachedTarget }, beforeDragDrop:function (b, a, c) { return true }, onValidDrop:function (b, a, c) { this.hideProxy(); if (this.afterValidDrop) { this.afterValidDrop(b, a, c) } }, getRepairXY:function (b, a) { return this.el.getXY() }, onInvalidDrop:function (b, a, c) { this.beforeInvalidDrop(b, a, c); if (this.cachedTarget) { if (this.cachedTarget.isNotifyTarget) { this.cachedTarget.notifyOut(this, a, this.dragData) } this.cacheTarget = null } this.proxy.repair(this.getRepairXY(a, this.dragData), this.afterRepair, this); if (this.afterInvalidDrop) { this.afterInvalidDrop(a, c) } }, afterRepair:function () { if (Ext.enableFx) { this.el.highlight(this.hlColor || "c3daf9") } this.dragging = false }, beforeInvalidDrop:function (b, a, c) { return true }, handleMouseDown:function (b) { if (this.dragging) { return } var a = this.getDragData(b); if (a && this.onBeforeDrag(a, b) !== false) { this.dragData = a; this.proxy.stop(); Ext.dd.DragSource.superclass.handleMouseDown.apply(this, arguments) } }, onBeforeDrag:function (a, b) { return true }, onStartDrag:Ext.emptyFn, startDrag:function (a, b) { this.proxy.reset(); this.dragging = true; this.proxy.update(""); this.onInitDrag(a, b); this.proxy.show() }, onInitDrag:function (a, c) { var b = this.el.dom.cloneNode(true); b.id = Ext.id(); this.proxy.update(b); this.onStartDrag(a, c); return true }, getProxy:function () { return this.proxy }, hideProxy:function () { this.proxy.hide(); this.proxy.reset(true); this.dragging = false }, triggerCacheRefresh:function () { Ext.dd.DDM.refreshCache(this.groups) }, b4EndDrag:function (a) { }, endDrag:function (a) { this.onEndDrag(this.dragData, a) }, onEndDrag:function (a, b) { }, autoOffset:function (a, b) { this.setDelta(-12, -20) }, destroy:function () { Ext.dd.DragSource.superclass.destroy.call(this); Ext.destroy(this.proxy) }}); Ext.dd.DropTarget = Ext.extend(Ext.dd.DDTarget, {constructor:function (b, a) { this.el = Ext.get(b); Ext.apply(this, a); if (this.containerScroll) { Ext.dd.ScrollManager.register(this.el) } Ext.dd.DropTarget.superclass.constructor.call(this, this.el.dom, this.ddGroup || this.group, {isTarget:true}) }, dropAllowed:"x-dd-drop-ok", dropNotAllowed:"x-dd-drop-nodrop", isTarget:true, isNotifyTarget:true, notifyEnter:function (a, c, b) { if (this.overClass) { this.el.addClass(this.overClass) } return this.dropAllowed }, notifyOver:function (a, c, b) { return this.dropAllowed }, notifyOut:function (a, c, b) { if (this.overClass) { this.el.removeClass(this.overClass) } }, notifyDrop:function (a, c, b) { return false }, destroy:function () { Ext.dd.DropTarget.superclass.destroy.call(this); if (this.containerScroll) { Ext.dd.ScrollManager.unregister(this.el) } }}); Ext.dd.DragZone = Ext.extend(Ext.dd.DragSource, {constructor:function (b, a) { Ext.dd.DragZone.superclass.constructor.call(this, b, a); if (this.containerScroll) { Ext.dd.ScrollManager.register(this.el) } }, getDragData:function (a) { return Ext.dd.Registry.getHandleFromEvent(a) }, onInitDrag:function (a, b) { this.proxy.update(this.dragData.ddel.cloneNode(true)); this.onStartDrag(a, b); return true }, afterRepair:function () { if (Ext.enableFx) { Ext.Element.fly(this.dragData.ddel).highlight(this.hlColor || "c3daf9") } this.dragging = false }, getRepairXY:function (a) { return Ext.Element.fly(this.dragData.ddel).getXY() }, destroy:function () { Ext.dd.DragZone.superclass.destroy.call(this); if (this.containerScroll) { Ext.dd.ScrollManager.unregister(this.el) } }}); Ext.dd.DropZone = function (b, a) { Ext.dd.DropZone.superclass.constructor.call(this, b, a) }; Ext.extend(Ext.dd.DropZone, Ext.dd.DropTarget, {getTargetFromEvent:function (a) { return Ext.dd.Registry.getTargetFromEvent(a) }, onNodeEnter:function (d, a, c, b) { }, onNodeOver:function (d, a, c, b) { return this.dropAllowed }, onNodeOut:function (d, a, c, b) { }, onNodeDrop:function (d, a, c, b) { return false }, onContainerOver:function (a, c, b) { return this.dropNotAllowed }, onContainerDrop:function (a, c, b) { return false }, notifyEnter:function (a, c, b) { return this.dropNotAllowed }, notifyOver:function (a, c, b) { var d = this.getTargetFromEvent(c); if (!d) { if (this.lastOverNode) { this.onNodeOut(this.lastOverNode, a, c, b); this.lastOverNode = null } return this.onContainerOver(a, c, b) } if (this.lastOverNode != d) { if (this.lastOverNode) { this.onNodeOut(this.lastOverNode, a, c, b) } this.onNodeEnter(d, a, c, b); this.lastOverNode = d } return this.onNodeOver(d, a, c, b) }, notifyOut:function (a, c, b) { if (this.lastOverNode) { this.onNodeOut(this.lastOverNode, a, c, b); this.lastOverNode = null } }, notifyDrop:function (a, c, b) { if (this.lastOverNode) { this.onNodeOut(this.lastOverNode, a, c, b); this.lastOverNode = null } var d = this.getTargetFromEvent(c); return d ? this.onNodeDrop(d, a, c, b) : this.onContainerDrop(a, c, b) }, triggerCacheRefresh:function () { Ext.dd.DDM.refreshCache(this.groups) }}); Ext.Element.addMethods({initDD:function (c, b, d) { var a = new Ext.dd.DD(Ext.id(this.dom), c, b); return Ext.apply(a, d) }, initDDProxy:function (c, b, d) { var a = new Ext.dd.DDProxy(Ext.id(this.dom), c, b); return Ext.apply(a, d) }, initDDTarget:function (c, b, d) { var a = new Ext.dd.DDTarget(Ext.id(this.dom), c, b); return Ext.apply(a, d) }}); Ext.data.Api = (function () { var a = {}; return{actions:{create:"create", read:"read", update:"update", destroy:"destroy"}, restActions:{create:"POST", read:"GET", update:"PUT", destroy:"DELETE"}, isAction:function (b) { return(Ext.data.Api.actions[b]) ? true : false }, getVerb:function (b) { if (a[b]) { return a[b] } for (var c in this.actions) { if (this.actions[c] === b) { a[b] = c; break } } return(a[b] !== undefined) ? a[b] : null }, isValid:function (b) { var e = []; var d = this.actions; for (var c in b) { if (!(c in d)) { e.push(c) } } return(!e.length) ? true : e }, hasUniqueUrl:function (c, g) { var b = (c.api[g]) ? c.api[g].url : null; var e = true; for (var d in c.api) { if ((e = (d === g) ? true : (c.api[d].url != b) ? true : false) === false) { break } } return e }, prepare:function (b) { if (!b.api) { b.api = {} } for (var d in this.actions) { var c = this.actions[d]; b.api[c] = b.api[c] || b.url || b.directFn; if (typeof(b.api[c]) == "string") { b.api[c] = {url:b.api[c], method:(b.restful === true) ? Ext.data.Api.restActions[c] : undefined} } } }, restify:function (b) { b.restful = true; for (var c in this.restActions) { b.api[this.actions[c]].method || (b.api[this.actions[c]].method = this.restActions[c]) } b.onWrite = b.onWrite.createInterceptor(function (i, j, g, e) { var d = j.reader; var h = new Ext.data.Response({action:i, raw:g}); switch (g.status) { case 200: return true; break; case 201: if (Ext.isEmpty(h.raw.responseText)) { h.success = true } else { return true } break; case 204: h.success = true; h.data = null; break; default: return true; break } if (h.success === true) { this.fireEvent("write", this, i, h.data, h, e, j.request.arg) } else { this.fireEvent("exception", this, "remote", i, j, h, e) } j.request.callback.call(j.request.scope, h.data, h, h.success); return false }, b) }} })(); Ext.data.Response = function (b, a) { Ext.apply(this, b, {raw:a}) }; Ext.data.Response.prototype = {message:null, success:false, status:null, root:null, raw:null, getMessage:function () { return this.message }, getSuccess:function () { return this.success }, getStatus:function () { return this.status }, getRoot:function () { return this.root }, getRawResponse:function () { return this.raw }}; Ext.data.Api.Error = Ext.extend(Ext.Error, {constructor:function (b, a) { this.arg = a; Ext.Error.call(this, b) }, name:"Ext.data.Api"}); Ext.apply(Ext.data.Api.Error.prototype, {lang:{"action-url-undefined":"No fallback url defined for this action. When defining a DataProxy api, please be sure to define an url for each CRUD action in Ext.data.Api.actions or define a default url in addition to your api-configuration.", invalid:"received an invalid API-configuration. Please ensure your proxy API-configuration contains only the actions defined in Ext.data.Api.actions", "invalid-url":"Invalid url. Please review your proxy configuration.", execute:'Attempted to execute an unknown action. Valid API actions are defined in Ext.data.Api.actions"'}}); Ext.data.SortTypes = {none:function (a) { return a }, stripTagsRE:/<\/?[^>]+>/gi, asText:function (a) { return String(a).replace(this.stripTagsRE, "") }, asUCText:function (a) { return String(a).toUpperCase().replace(this.stripTagsRE, "") }, asUCString:function (a) { return String(a).toUpperCase() }, asDate:function (a) { if (!a) { return 0 } if (Ext.isDate(a)) { return a.getTime() } return Date.parse(String(a)) }, asFloat:function (a) { var b = parseFloat(String(a).replace(/,/g, "")); return isNaN(b) ? 0 : b }, asInt:function (a) { var b = parseInt(String(a).replace(/,/g, ""), 10); return isNaN(b) ? 0 : b }}; Ext.data.Record = function (a, b) { this.id = (b || b === 0) ? b : Ext.data.Record.id(this); this.data = a || {} }; Ext.data.Record.create = function (e) { var c = Ext.extend(Ext.data.Record, {}); var d = c.prototype; d.fields = new Ext.util.MixedCollection(false, function (g) { return g.name }); for (var b = 0, a = e.length; b < a; b++) { d.fields.add(new Ext.data.Field(e[b])) } c.getField = function (g) { return d.fields.get(g) }; return c }; Ext.data.Record.PREFIX = "ext-record"; Ext.data.Record.AUTO_ID = 1; Ext.data.Record.EDIT = "edit"; Ext.data.Record.REJECT = "reject"; Ext.data.Record.COMMIT = "commit"; Ext.data.Record.id = function (a) { a.phantom = true; return[Ext.data.Record.PREFIX, "-", Ext.data.Record.AUTO_ID++].join("") }; Ext.data.Record.prototype = {dirty:false, editing:false, error:null, modified:null, phantom:false, join:function (a) { this.store = a }, set:function (a, c) { var b = Ext.isPrimitive(c) ? String : Ext.encode; if (b(this.data[a]) == b(c)) { return } this.dirty = true; if (!this.modified) { this.modified = {} } if (this.modified[a] === undefined) { this.modified[a] = this.data[a] } this.data[a] = c; if (!this.editing) { this.afterEdit() } }, afterEdit:function () { if (this.store != undefined && typeof this.store.afterEdit == "function") { this.store.afterEdit(this) } }, afterReject:function () { if (this.store) { this.store.afterReject(this) } }, afterCommit:function () { if (this.store) { this.store.afterCommit(this) } }, get:function (a) { return this.data[a] }, beginEdit:function () { this.editing = true; this.modified = this.modified || {} }, cancelEdit:function () { this.editing = false; delete this.modified }, endEdit:function () { this.editing = false; if (this.dirty) { this.afterEdit() } }, reject:function (b) { var a = this.modified; for (var c in a) { if (typeof a[c] != "function") { this.data[c] = a[c] } } this.dirty = false; delete this.modified; this.editing = false; if (b !== true) { this.afterReject() } }, commit:function (a) { this.dirty = false; delete this.modified; this.editing = false; if (a !== true) { this.afterCommit() } }, getChanges:function () { var a = this.modified, b = {}; for (var c in a) { if (a.hasOwnProperty(c)) { b[c] = this.data[c] } } return b }, hasError:function () { return this.error !== null }, clearError:function () { this.error = null }, copy:function (a) { return new this.constructor(Ext.apply({}, this.data), a || this.id) }, isModified:function (a) { return !!(this.modified && this.modified.hasOwnProperty(a)) }, isValid:function () { return this.fields.find(function (a) { return(a.allowBlank === false && Ext.isEmpty(this.data[a.name])) ? true : false }, this) ? false : true }, markDirty:function () { this.dirty = true; if (!this.modified) { this.modified = {} } this.fields.each(function (a) { this.modified[a.name] = this.data[a.name] }, this) }}; Ext.StoreMgr = Ext.apply(new Ext.util.MixedCollection(), {register:function () { for (var a = 0, b; (b = arguments[a]); a++) { this.add(b) } }, unregister:function () { for (var a = 0, b; (b = arguments[a]); a++) { this.remove(this.lookup(b)) } }, lookup:function (e) { if (Ext.isArray(e)) { var b = ["field1"], d = !Ext.isArray(e[0]); if (!d) { for (var c = 2, a = e[0].length; c <= a; ++c) { b.push("field" + c) } } return new Ext.data.ArrayStore({fields:b, data:e, expandData:d, autoDestroy:true, autoCreated:true}) } return Ext.isObject(e) ? (e.events ? e : Ext.create(e, "store")) : this.get(e) }, getKey:function (a) { return a.storeId }}); Ext.data.Store = Ext.extend(Ext.util.Observable, {writer:undefined, remoteSort:false, autoDestroy:false, pruneModifiedRecords:false, lastOptions:null, autoSave:true, batch:true, restful:false, paramNames:undefined, defaultParamNames:{start:"start", limit:"limit", sort:"sort", dir:"dir"}, isDestroyed:false, hasMultiSort:false, batchKey:"_ext_batch_", constructor:function (a) { this.data = new Ext.util.MixedCollection(false); this.data.getKey = function (b) { return b.id }; this.removed = []; if (a && a.data) { this.inlineData = a.data; delete a.data } Ext.apply(this, a); this.baseParams = Ext.isObject(this.baseParams) ? this.baseParams : {}; this.paramNames = Ext.applyIf(this.paramNames || {}, this.defaultParamNames); if ((this.url || this.api) && !this.proxy) { this.proxy = new Ext.data.HttpProxy({url:this.url, api:this.api}) } if (this.restful === true && this.proxy) { this.batch = false; Ext.data.Api.restify(this.proxy) } if (this.reader) { if (!this.recordType) { this.recordType = this.reader.recordType } if (this.reader.onMetaChange) { this.reader.onMetaChange = this.reader.onMetaChange.createSequence(this.onMetaChange, this) } if (this.writer) { if (this.writer instanceof (Ext.data.DataWriter) === false) { this.writer = this.buildWriter(this.writer) } this.writer.meta = this.reader.meta; this.pruneModifiedRecords = true } } if (this.recordType) { this.fields = this.recordType.prototype.fields } this.modified = []; this.addEvents("datachanged", "metachange", "add", "remove", "update", "clear", "exception", "beforeload", "load", "loadexception", "beforewrite", "write", "beforesave", "save"); if (this.proxy) { this.relayEvents(this.proxy, ["loadexception", "exception"]) } if (this.writer) { this.on({scope:this, add:this.createRecords, remove:this.destroyRecord, update:this.updateRecord, clear:this.onClear}) } this.sortToggle = {}; if (this.sortField) { this.setDefaultSort(this.sortField, this.sortDir) } else { if (this.sortInfo) { this.setDefaultSort(this.sortInfo.field, this.sortInfo.direction) } } Ext.data.Store.superclass.constructor.call(this); if (this.id) { this.storeId = this.id; delete this.id } if (this.storeId) { Ext.StoreMgr.register(this) } if (this.inlineData) { this.loadData(this.inlineData); delete this.inlineData } else { if (this.autoLoad) { this.load.defer(10, this, [typeof this.autoLoad == "object" ? this.autoLoad : undefined]) } } this.batchCounter = 0; this.batches = {} }, buildWriter:function (b) { var a = undefined, c = (b.format || "json").toLowerCase(); switch (c) { case"json": a = Ext.data.JsonWriter; break; case"xml": a = Ext.data.XmlWriter; break; default: a = Ext.data.JsonWriter } return new a(b) }, destroy:function () { if (!this.isDestroyed) { if (this.storeId) { Ext.StoreMgr.unregister(this) } this.clearData(); this.data = null; Ext.destroy(this.proxy); this.reader = this.writer = null; this.purgeListeners(); this.isDestroyed = true } }, add:function (c) { var e, a, b, d; c = [].concat(c); if (c.length < 1) { return } for (e = 0, a = c.length; e < a; e++) { b = c[e]; b.join(this); if (b.dirty || b.phantom) { this.modified.push(b) } } d = this.data.length; this.data.addAll(c); if (this.snapshot) { this.snapshot.addAll(c) } this.fireEvent("add", this, c, d) }, addSorted:function (a) { var b = this.findInsertIndex(a); this.insert(b, a) }, doUpdate:function (a) { var b = a.id; this.getById(b).join(null); this.data.replace(b, a); if (this.snapshot) { this.snapshot.replace(b, a) } a.join(this); this.fireEvent("update", this, a, Ext.data.Record.COMMIT) }, remove:function (a) { if (Ext.isArray(a)) { Ext.each(a, function (c) { this.remove(c) }, this); return } var b = this.data.indexOf(a); if (b > -1) { a.join(null); this.data.removeAt(b) } if (this.pruneModifiedRecords) { this.modified.remove(a) } if (this.snapshot) { this.snapshot.remove(a) } if (b > -1) { this.fireEvent("remove", this, a, b) } }, removeAt:function (a) { this.remove(this.getAt(a)) }, removeAll:function (b) { var a = []; this.each(function (c) { a.push(c) }); this.clearData(); if (this.snapshot) { this.snapshot.clear() } if (this.pruneModifiedRecords) { this.modified = [] } if (b !== true) { this.fireEvent("clear", this, a) } }, onClear:function (b, a) { Ext.each(a, function (d, c) { this.destroyRecord(this, d, c) }, this) }, insert:function (d, c) { var e, a, b; c = [].concat(c); for (e = 0, a = c.length; e < a; e++) { b = c[e]; this.data.insert(d + e, b); b.join(this); if (b.dirty || b.phantom) { this.modified.push(b) } } if (this.snapshot) { this.snapshot.addAll(c) } this.fireEvent("add", this, c, d) }, indexOf:function (a) { return this.data.indexOf(a) }, indexOfId:function (a) { return this.data.indexOfKey(a) }, getById:function (a) { return(this.snapshot || this.data).key(a) }, getAt:function (a) { return this.data.itemAt(a) }, getRange:function (b, a) { return this.data.getRange(b, a) }, storeOptions:function (a) { a = Ext.apply({}, a); delete a.callback; delete a.scope; this.lastOptions = a }, clearData:function () { this.data.each(function (a) { a.join(null) }); this.data.clear() }, load:function (b) { b = Ext.apply({}, b); this.storeOptions(b); if (this.sortInfo && this.remoteSort) { var a = this.paramNames; b.params = Ext.apply({}, b.params); b.params[a.sort] = this.sortInfo.field; b.params[a.dir] = this.sortInfo.direction } try { return this.execute("read", null, b) } catch (c) { this.handleException(c); return false } }, updateRecord:function (b, a, c) { if (c == Ext.data.Record.EDIT && this.autoSave === true && (!a.phantom || (a.phantom && a.isValid()))) { this.save() } }, createRecords:function (c, b, e) { var d = this.modified, h = b.length, a, g; for (g = 0; g < h; g++) { a = b[g]; if (a.phantom && a.isValid()) { a.markDirty(); if (d.indexOf(a) == -1) { d.push(a) } } } if (this.autoSave === true) { this.save() } }, destroyRecord:function (b, a, c) { if (this.modified.indexOf(a) != -1) { this.modified.remove(a) } if (!a.phantom) { this.removed.push(a); a.lastIndex = c; if (this.autoSave === true) { this.save() } } }, execute:function (e, a, c, b) { if (!Ext.data.Api.isAction(e)) { throw new Ext.data.Api.Error("execute", e) } c = Ext.applyIf(c || {}, {params:{}}); if (b !== undefined) { this.addToBatch(b) } var d = true; if (e === "read") { d = this.fireEvent("beforeload", this, c); Ext.applyIf(c.params, this.baseParams) } else { if (this.writer.listful === true && this.restful !== true) { a = (Ext.isArray(a)) ? a : [a] } else { if (Ext.isArray(a) && a.length == 1) { a = a.shift() } } if ((d = this.fireEvent("beforewrite", this, e, a, c)) !== false) { this.writer.apply(c.params, this.baseParams, e, a) } } if (d !== false) { if (this.writer && this.proxy.url && !this.proxy.restful && !Ext.data.Api.hasUniqueUrl(this.proxy, e)) { c.params.xaction = e } this.proxy.request(Ext.data.Api.actions[e], a, c.params, this.reader, this.createCallback(e, a, b), this, c) } return d }, save:function () { if (!this.writer) { throw new Ext.data.Store.Error("writer-undefined") } var h = [], j, k, e, c = {}, d; if (this.removed.length) { h.push(["destroy", this.removed]) } var b = [].concat(this.getModifiedRecords()); if (b.length) { var g = []; for (d = b.length - 1; d >= 0; d--) { if (b[d].phantom === true) { var a = b.splice(d, 1).shift(); if (a.isValid()) { g.push(a) } } else { if (!b[d].isValid()) { b.splice(d, 1) } } } if (g.length) { h.push(["create", g]) } if (b.length) { h.push(["update", b]) } } j = h.length; if (j) { e = ++this.batchCounter; for (d = 0; d < j; ++d) { k = h[d]; c[k[0]] = k[1] } if (this.fireEvent("beforesave", this, c) !== false) { for (d = 0; d < j; ++d) { k = h[d]; this.doTransaction(k[0], k[1], e) } return e } } return -1 }, doTransaction:function (e, b, c) { function g(h) { try { this.execute(e, h, undefined, c) } catch (i) { this.handleException(i) } } if (this.batch === false) { for (var d = 0, a = b.length; d < a; d++) { g.call(this, b[d]) } } else { g.call(this, b) } }, addToBatch:function (c) { var a = this.batches, d = this.batchKey + c, e = a[d]; if (!e) { a[d] = e = {id:c, count:0, data:{}} } ++e.count }, removeFromBatch:function (d, h, g) { var c = this.batches, e = this.batchKey + d, i = c[e], a; if (i) { a = i.data[h] || []; i.data[h] = a.concat(g); if (i.count === 1) { g = i.data; delete c[e]; this.fireEvent("save", this, d, g) } else { --i.count } } }, createCallback:function (c, a, b) { var d = Ext.data.Api.actions; return(c == "read") ? this.loadRecords : function (g, e, h) { this["on" + Ext.util.Format.capitalize(c) + "Records"](h, a, [].concat(g)); if (h === true) { this.fireEvent("write", this, c, g, e, a) } this.removeFromBatch(b, c, g) } }, clearModified:function (a) { if (Ext.isArray(a)) { for (var b = a.length - 1; b >= 0; b--) { this.modified.splice(this.modified.indexOf(a[b]), 1) } } else { this.modified.splice(this.modified.indexOf(a), 1) } }, reMap:function (b) { if (Ext.isArray(b)) { for (var d = 0, a = b.length; d < a; d++) { this.reMap(b[d]) } } else { delete this.data.map[b._phid]; this.data.map[b.id] = b; var c = this.data.keys.indexOf(b._phid); this.data.keys.splice(c, 1, b.id); delete b._phid } }, onCreateRecords:function (d, a, b) { if (d === true) { try { this.reader.realize(a, b) } catch (c) { this.handleException(c); if (Ext.isArray(a)) { this.onCreateRecords(d, a, b) } } } }, onUpdateRecords:function (d, a, b) { if (d === true) { try { this.reader.update(a, b) } catch (c) { this.handleException(c); if (Ext.isArray(a)) { this.onUpdateRecords(d, a, b) } } } }, onDestroyRecords:function (e, b, d) { b = (b instanceof Ext.data.Record) ? [b] : [].concat(b); for (var c = 0, a = b.length; c < a; c++) { this.removed.splice(this.removed.indexOf(b[c]), 1) } if (e === false) { for (c = b.length - 1; c >= 0; c--) { this.insert(b[c].lastIndex, b[c]) } } }, handleException:function (a) { Ext.handleError(a) }, reload:function (a) { this.load(Ext.applyIf(a || {}, this.lastOptions)) }, loadRecords:function (b, l, h) { var e, g; if (this.isDestroyed === true) { return } if (!b || h === false) { if (h !== false) { this.fireEvent("load", this, [], l) } if (l.callback) { l.callback.call(l.scope || this, [], l, false, b) } return } var a = b.records, j = b.totalRecords || a.length; if (!l || l.add !== true) { if (this.pruneModifiedRecords) { this.modified = [] } for (e = 0, g = a.length; e < g; e++) { a[e].join(this) } if (this.snapshot) { this.data = this.snapshot; delete this.snapshot } this.clearData(); this.data.addAll(a); this.totalLength = j; this.applySort(); this.fireEvent("datachanged", this) } else { var k = [], d, c = 0; for (e = 0, g = a.length; e < g; ++e) { d = a[e]; if (this.indexOfId(d.id) > -1) { this.doUpdate(d) } else { k.push(d); ++c } } this.totalLength = Math.max(j, this.data.length + c); this.add(k) } this.fireEvent("load", this, a, l); if (l.callback) { l.callback.call(l.scope || this, a, l, true) } }, loadData:function (c, a) { var b = this.reader.readRecords(c); this.loadRecords(b, {add:a}, true) }, getCount:function () { return this.data.length || 0 }, getTotalCount:function () { return this.totalLength || 0 }, getSortState:function () { return this.sortInfo }, applySort:function () { if ((this.sortInfo || this.multiSortInfo) && !this.remoteSort) { this.sortData() } }, sortData:function () { var a = this.hasMultiSort ? this.multiSortInfo : this.sortInfo, k = a.direction || "ASC", h = a.sorters, c = []; if (!this.hasMultiSort) { h = [ {direction:k, field:a.field} ] } for (var d = 0, b = h.length; d < b; d++) { c.push(this.createSortFunction(h[d].field, h[d].direction)) } if (c.length == 0) { return } var g = k.toUpperCase() == "DESC" ? -1 : 1; var e = function (n, m) { var l = c[0].call(this, n, m); if (c.length > 1) { for (var p = 1, o = c.length; p < o; p++) { l = l || c[p].call(this, n, m) } } return g * l }; this.data.sort(k, e); if (this.snapshot && this.snapshot != this.data) { this.snapshot.sort(k, e) } }, createSortFunction:function (c, b) { b = b || "ASC"; var a = b.toUpperCase() == "DESC" ? -1 : 1; var d = this.fields.get(c).sortType; return function (g, e) { var i = d(g.data[c]), h = d(e.data[c]); return a * (i > h ? 1 : (i < h ? -1 : 0)) } }, setDefaultSort:function (b, a) { a = a ? a.toUpperCase() : "ASC"; this.sortInfo = {field:b, direction:a}; this.sortToggle[b] = a }, sort:function (b, a) { if (Ext.isArray(arguments[0])) { return this.multiSort.call(this, b, a) } else { return this.singleSort(b, a) } }, singleSort:function (g, c) { var e = this.fields.get(g); if (!e) { return false } var b = e.name, a = this.sortInfo || null, d = this.sortToggle ? this.sortToggle[b] : null; if (!c) { if (a && a.field == b) { c = (this.sortToggle[b] || "ASC").toggle("ASC", "DESC") } else { c = e.sortDir } } this.sortToggle[b] = c; this.sortInfo = {field:b, direction:c}; this.hasMultiSort = false; if (this.remoteSort) { if (!this.load(this.lastOptions)) { if (d) { this.sortToggle[b] = d } if (a) { this.sortInfo = a } } } else { this.applySort(); this.fireEvent("datachanged", this) } return true }, multiSort:function (b, a) { this.hasMultiSort = true; a = a || "ASC"; if (this.multiSortInfo && a == this.multiSortInfo.direction) { a = a.toggle("ASC", "DESC") } this.multiSortInfo = {sorters:b, direction:a}; if (this.remoteSort) { this.singleSort(b[0].field, b[0].direction) } else { this.applySort(); this.fireEvent("datachanged", this) } }, each:function (b, a) { this.data.each(b, a) }, getModifiedRecords:function () { return this.modified }, sum:function (e, g, a) { var c = this.data.items, b = 0; g = g || 0; a = (a || a === 0) ? a : c.length - 1; for (var d = g; d <= a; d++) { b += (c[d].data[e] || 0) } return b }, createFilterFn:function (d, c, e, a, b) { if (Ext.isEmpty(c, false)) { return false } c = this.data.createValueMatcher(c, e, a, b); return function (g) { return c.test(g.data[d]) } }, createMultipleFilterFn:function (a) { return function (b) { var k = true; for (var d = 0, c = a.length; d < c; d++) { var h = a[d], g = h.fn, e = h.scope; k = k && g.call(e, b) } return k } }, filter:function (n, m, h, k, e) { var l; if (Ext.isObject(n)) { n = [n] } if (Ext.isArray(n)) { var b = []; for (var g = 0, d = n.length; g < d; g++) { var a = n[g], c = a.fn, o = a.scope || this; if (!Ext.isFunction(c)) { c = this.createFilterFn(a.property, a.value, a.anyMatch, a.caseSensitive, a.exactMatch) } b.push({fn:c, scope:o}) } l = this.createMultipleFilterFn(b) } else { l = this.createFilterFn(n, m, h, k, e) } return l ? this.filterBy(l) : this.clearFilter() }, filterBy:function (b, a) { this.snapshot = this.snapshot || this.data; this.data = this.queryBy(b, a || this); this.fireEvent("datachanged", this) }, clearFilter:function (a) { if (this.isFiltered()) { this.data = this.snapshot; delete this.snapshot; if (a !== true) { this.fireEvent("datachanged", this) } } }, isFiltered:function () { return !!this.snapshot && this.snapshot != this.data }, query:function (d, c, e, a) { var b = this.createFilterFn(d, c, e, a); return b ? this.queryBy(b) : this.data.clone() }, queryBy:function (b, a) { var c = this.snapshot || this.data; return c.filterBy(b, a || this) }, find:function (d, c, g, e, a) { var b = this.createFilterFn(d, c, e, a); return b ? this.data.findIndexBy(b, null, g) : -1 }, findExact:function (b, a, c) { return this.data.findIndexBy(function (d) { return d.get(b) === a }, this, c) }, findBy:function (b, a, c) { return this.data.findIndexBy(b, a, c) }, collect:function (j, k, b) { var h = (b === true && this.snapshot) ? this.snapshot.items : this.data.items; var m, n, a = [], c = {}; for (var e = 0, g = h.length; e < g; e++) { m = h[e].data[j]; n = String(m); if ((k || !Ext.isEmpty(m)) && !c[n]) { c[n] = true; a[a.length] = m } } return a }, afterEdit:function (a) { if (this.modified.indexOf(a) == -1) { this.modified.push(a) } this.fireEvent("update", this, a, Ext.data.Record.EDIT) }, afterReject:function (a) { this.modified.remove(a); this.fireEvent("update", this, a, Ext.data.Record.REJECT) }, afterCommit:function (a) { this.modified.remove(a); this.fireEvent("update", this, a, Ext.data.Record.COMMIT) }, commitChanges:function () { var a = this.modified.slice(0), c = a.length, b; for (b = 0; b < c; b++) { a[b].commit() } this.modified = []; this.removed = [] }, rejectChanges:function () { var a = this.modified.slice(0), e = this.removed.slice(0).reverse(), c = a.length, d = e.length, b; for (b = 0; b < c; b++) { a[b].reject() } for (b = 0; b < d; b++) { this.insert(e[b].lastIndex || 0, e[b]); e[b].reject() } this.modified = []; this.removed = [] }, onMetaChange:function (a) { this.recordType = this.reader.recordType; this.fields = this.recordType.prototype.fields; delete this.snapshot; if (this.reader.meta.sortInfo) { this.sortInfo = this.reader.meta.sortInfo } else { if (this.sortInfo && !this.fields.get(this.sortInfo.field)) { delete this.sortInfo } } if (this.writer) { this.writer.meta = this.reader.meta } this.modified = []; this.fireEvent("metachange", this, this.reader.meta) }, findInsertIndex:function (a) { this.suspendEvents(); var c = this.data.clone(); this.data.add(a); this.applySort(); var b = this.data.indexOf(a); this.data = c; this.resumeEvents(); return b }, setBaseParam:function (a, b) { this.baseParams = this.baseParams || {}; this.baseParams[a] = b }}); Ext.reg("store", Ext.data.Store); Ext.data.Store.Error = Ext.extend(Ext.Error, {name:"Ext.data.Store"}); Ext.apply(Ext.data.Store.Error.prototype, {lang:{"writer-undefined":"Attempted to execute a write-action without a DataWriter installed."}}); Ext.data.Field = Ext.extend(Object, {constructor:function (b) { if (Ext.isString(b)) { b = {name:b} } Ext.apply(this, b); var d = Ext.data.Types, a = this.sortType, c; if (this.type) { if (Ext.isString(this.type)) { this.type = Ext.data.Types[this.type.toUpperCase()] || d.AUTO } } else { this.type = d.AUTO } if (Ext.isString(a)) { this.sortType = Ext.data.SortTypes[a] } else { if (Ext.isEmpty(a)) { this.sortType = this.type.sortType } } if (!this.convert) { this.convert = this.type.convert } }, dateFormat:null, useNull:false, defaultValue:"", mapping:null, sortType:null, sortDir:"ASC", allowBlank:true}); Ext.data.DataReader = function (a, b) { this.meta = a; this.recordType = Ext.isArray(b) ? Ext.data.Record.create(b) : b; if (this.recordType) { this.buildExtractors() } }; Ext.data.DataReader.prototype = {getTotal:Ext.emptyFn, getRoot:Ext.emptyFn, getMessage:Ext.emptyFn, getSuccess:Ext.emptyFn, getId:Ext.emptyFn, buildExtractors:Ext.emptyFn, extractValues:Ext.emptyFn, realize:function (a, c) { if (Ext.isArray(a)) { for (var b = a.length - 1; b >= 0; b--) { if (Ext.isArray(c)) { this.realize(a.splice(b, 1).shift(), c.splice(b, 1).shift()) } else { this.realize(a.splice(b, 1).shift(), c) } } } else { if (Ext.isArray(c) && c.length == 1) { c = c.shift() } if (!this.isData(c)) { throw new Ext.data.DataReader.Error("realize", a) } a.phantom = false; a._phid = a.id; a.id = this.getId(c); a.data = c; a.commit(); a.store.reMap(a) } }, update:function (a, c) { if (Ext.isArray(a)) { for (var b = a.length - 1; b >= 0; b--) { if (Ext.isArray(c)) { this.update(a.splice(b, 1).shift(), c.splice(b, 1).shift()) } else { this.update(a.splice(b, 1).shift(), c) } } } else { if (Ext.isArray(c) && c.length == 1) { c = c.shift() } if (this.isData(c)) { a.data = Ext.apply(a.data, c) } a.commit() } }, extractData:function (k, a) { var j = (this instanceof Ext.data.JsonReader) ? "json" : "node"; var c = []; if (this.isData(k) && !(this instanceof Ext.data.XmlReader)) { k = [k] } var h = this.recordType.prototype.fields, o = h.items, m = h.length, c = []; if (a === true) { var l = this.recordType; for (var e = 0; e < k.length; e++) { var b = k[e]; var g = new l(this.extractValues(b, o, m), this.getId(b)); g[j] = b; c.push(g) } } else { for (var e = 0; e < k.length; e++) { var d = this.extractValues(k[e], o, m); d[this.meta.idProperty] = this.getId(k[e]); c.push(d) } } return c }, isData:function (a) { return(a && Ext.isObject(a) && !Ext.isEmpty(this.getId(a))) ? true : false }, onMetaChange:function (a) { delete this.ef; this.meta = a; this.recordType = Ext.data.Record.create(a.fields); this.buildExtractors() }}; Ext.data.DataReader.Error = Ext.extend(Ext.Error, {constructor:function (b, a) { this.arg = a; Ext.Error.call(this, b) }, name:"Ext.data.DataReader"}); Ext.apply(Ext.data.DataReader.Error.prototype, {lang:{update:"#update received invalid data from server. Please see docs for DataReader#update and review your DataReader configuration.", realize:"#realize was called with invalid remote-data. Please see the docs for DataReader#realize and review your DataReader configuration.", "invalid-response":"#readResponse received an invalid response from the server."}}); Ext.data.DataWriter = function (a) { Ext.apply(this, a) }; Ext.data.DataWriter.prototype = {writeAllFields:false, listful:false, apply:function (e, g, d, a) { var c = [], b = d + "Record"; if (Ext.isArray(a)) { Ext.each(a, function (h) { c.push(this[b](h)) }, this) } else { if (a instanceof Ext.data.Record) { c = this[b](a) } } this.render(e, g, c) }, render:Ext.emptyFn, updateRecord:Ext.emptyFn, createRecord:Ext.emptyFn, destroyRecord:Ext.emptyFn, toHash:function (g, c) { var e = g.fields.map, d = {}, b = (this.writeAllFields === false && g.phantom === false) ? g.getChanges() : g.data, a; Ext.iterate(b, function (i, h) { if ((a = e[i])) { d[a.mapping ? a.mapping : a.name] = h } }); if (g.phantom) { if (g.fields.containsKey(this.meta.idProperty) && Ext.isEmpty(g.data[this.meta.idProperty])) { delete d[this.meta.idProperty] } } else { d[this.meta.idProperty] = g.id } return d }, toArray:function (b) { var a = []; Ext.iterate(b, function (d, c) { a.push({name:d, value:c}) }, this); return a }}; Ext.data.DataProxy = function (a) { a = a || {}; this.api = a.api; this.url = a.url; this.restful = a.restful; this.listeners = a.listeners; this.prettyUrls = a.prettyUrls; this.addEvents("exception", "beforeload", "load", "loadexception", "beforewrite", "write"); Ext.data.DataProxy.superclass.constructor.call(this); try { Ext.data.Api.prepare(this) } catch (b) { if (b instanceof Ext.data.Api.Error) { b.toConsole() } } Ext.data.DataProxy.relayEvents(this, ["beforewrite", "write", "exception"]) }; Ext.extend(Ext.data.DataProxy, Ext.util.Observable, {restful:false, setApi:function () { if (arguments.length == 1) { var a = Ext.data.Api.isValid(arguments[0]); if (a === true) { this.api = arguments[0] } else { throw new Ext.data.Api.Error("invalid", a) } } else { if (arguments.length == 2) { if (!Ext.data.Api.isAction(arguments[0])) { throw new Ext.data.Api.Error("invalid", arguments[0]) } this.api[arguments[0]] = arguments[1] } } Ext.data.Api.prepare(this) }, isApiAction:function (a) { return(this.api[a]) ? true : false }, request:function (e, b, g, a, h, d, c) { if (!this.api[e] && !this.load) { throw new Ext.data.DataProxy.Error("action-undefined", e) } g = g || {}; if ((e === Ext.data.Api.actions.read) ? this.fireEvent("beforeload", this, g) : this.fireEvent("beforewrite", this, e, b, g) !== false) { this.doRequest.apply(this, arguments) } else { h.call(d || this, null, c, false) } }, load:null, doRequest:function (e, b, g, a, h, d, c) { this.load(g, a, h, d, c) }, onRead:Ext.emptyFn, onWrite:Ext.emptyFn, buildUrl:function (d, b) { b = b || null; var c = (this.conn && this.conn.url) ? this.conn.url : (this.api[d]) ? this.api[d].url : this.url; if (!c) { throw new Ext.data.Api.Error("invalid-url", d) } var e = null; var a = c.match(/(.*)(\.json|\.xml|\.html)$/); if (a) { e = a[2]; c = a[1] } if ((this.restful === true || this.prettyUrls === true) && b instanceof Ext.data.Record && !b.phantom) { c += "/" + b.id } return(e === null) ? c : c + e }, destroy:function () { this.purgeListeners() }}); Ext.apply(Ext.data.DataProxy, Ext.util.Observable.prototype); Ext.util.Observable.call(Ext.data.DataProxy); Ext.data.DataProxy.Error = Ext.extend(Ext.Error, {constructor:function (b, a) { this.arg = a; Ext.Error.call(this, b) }, name:"Ext.data.DataProxy"}); Ext.apply(Ext.data.DataProxy.Error.prototype, {lang:{"action-undefined":"DataProxy attempted to execute an API-action but found an undefined url / function. Please review your Proxy url/api-configuration.", "api-invalid":"Recieved an invalid API-configuration. Please ensure your proxy API-configuration contains only the actions from Ext.data.Api.actions."}}); Ext.data.Request = function (a) { Ext.apply(this, a) }; Ext.data.Request.prototype = {action:undefined, rs:undefined, params:undefined, callback:Ext.emptyFn, scope:undefined, reader:undefined}; Ext.data.Response = function (a) { Ext.apply(this, a) }; Ext.data.Response.prototype = {action:undefined, success:undefined, message:undefined, data:undefined, raw:undefined, records:undefined}; Ext.data.ScriptTagProxy = function (a) { Ext.apply(this, a); Ext.data.ScriptTagProxy.superclass.constructor.call(this, a); this.head = document.getElementsByTagName("head")[0] }; Ext.data.ScriptTagProxy.TRANS_ID = 1000; Ext.extend(Ext.data.ScriptTagProxy, Ext.data.DataProxy, {timeout:30000, callbackParam:"callback", nocache:true, doRequest:function (e, g, d, h, j, k, l) { var c = Ext.urlEncode(Ext.apply(d, this.extraParams)); var b = this.buildUrl(e, g); if (!b) { throw new Ext.data.Api.Error("invalid-url", b) } b = Ext.urlAppend(b, c); if (this.nocache) { b = Ext.urlAppend(b, "_dc=" + (new Date().getTime())) } var a = ++Ext.data.ScriptTagProxy.TRANS_ID; var m = {id:a, action:e, cb:"stcCallback" + a, scriptId:"stcScript" + a, params:d, arg:l, url:b, callback:j, scope:k, reader:h}; window[m.cb] = this.createCallback(e, g, m); b += String.format("&{0}={1}", this.callbackParam, m.cb); if (this.autoAbort !== false) { this.abort() } m.timeoutId = this.handleFailure.defer(this.timeout, this, [m]); var i = document.createElement("script"); i.setAttribute("src", b); i.setAttribute("type", "text/javascript"); i.setAttribute("id", m.scriptId); this.head.appendChild(i); this.trans = m }, createCallback:function (d, b, c) { var a = this; return function (e) { a.trans = false; a.destroyTrans(c, true); if (d === Ext.data.Api.actions.read) { a.onRead.call(a, d, c, e) } else { a.onWrite.call(a, d, c, e, b) } } }, onRead:function (d, c, b) { var a; try { a = c.reader.readRecords(b) } catch (g) { this.fireEvent("loadexception", this, c, b, g); this.fireEvent("exception", this, "response", d, c, b, g); c.callback.call(c.scope || window, null, c.arg, false); return } if (a.success === false) { this.fireEvent("loadexception", this, c, b); this.fireEvent("exception", this, "remote", d, c, b, null) } else { this.fireEvent("load", this, b, c.arg) } c.callback.call(c.scope || window, a, c.arg, a.success) }, onWrite:function (h, g, c, b) { var a = g.reader; try { var d = a.readResponse(h, c) } catch (i) { this.fireEvent("exception", this, "response", h, g, d, i); g.callback.call(g.scope || window, null, d, false); return } if (!d.success === true) { this.fireEvent("exception", this, "remote", h, g, d, b); g.callback.call(g.scope || window, null, d, false); return } this.fireEvent("write", this, h, d.data, d, b, g.arg); g.callback.call(g.scope || window, d.data, d, true) }, isLoading:function () { return this.trans ? true : false }, abort:function () { if (this.isLoading()) { this.destroyTrans(this.trans) } }, destroyTrans:function (b, a) { this.head.removeChild(document.getElementById(b.scriptId)); clearTimeout(b.timeoutId); if (a) { window[b.cb] = undefined; try { delete window[b.cb] } catch (c) { } } else { window[b.cb] = function () { window[b.cb] = undefined; try { delete window[b.cb] } catch (d) { } } } }, handleFailure:function (a) { this.trans = false; this.destroyTrans(a, false); if (a.action === Ext.data.Api.actions.read) { this.fireEvent("loadexception", this, null, a.arg) } this.fireEvent("exception", this, "response", a.action, {response:null, options:a.arg}); a.callback.call(a.scope || window, null, a.arg, false) }, destroy:function () { this.abort(); Ext.data.ScriptTagProxy.superclass.destroy.call(this) }}); Ext.data.HttpProxy = function (a) { Ext.data.HttpProxy.superclass.constructor.call(this, a); this.conn = a; this.conn.url = null; this.useAjax = !a || !a.events; var c = Ext.data.Api.actions; this.activeRequest = {}; for (var b in c) { this.activeRequest[c[b]] = undefined } }; Ext.extend(Ext.data.HttpProxy, Ext.data.DataProxy, {getConnection:function () { return this.useAjax ? Ext.Ajax : this.conn }, setUrl:function (a, b) { this.conn.url = a; if (b === true) { this.url = a; this.api = null; Ext.data.Api.prepare(this) } }, doRequest:function (g, d, i, c, b, e, a) { var h = {method:(this.api[g]) ? this.api[g]["method"] : undefined, request:{callback:b, scope:e, arg:a}, reader:c, callback:this.createCallback(g, d), scope:this}; if (i.jsonData) { h.jsonData = i.jsonData } else { if (i.xmlData) { h.xmlData = i.xmlData } else { h.params = i || {} } } this.conn.url = this.buildUrl(g, d); if (this.useAjax) { Ext.applyIf(h, this.conn); if (this.activeRequest[g]) { } this.activeRequest[g] = Ext.Ajax.request(h) } else { this.conn.request(h) } this.conn.url = null }, createCallback:function (b, a) { return function (e, d, c) { this.activeRequest[b] = undefined; if (!d) { if (b === Ext.data.Api.actions.read) { this.fireEvent("loadexception", this, e, c) } this.fireEvent("exception", this, "response", b, e, c); e.request.callback.call(e.request.scope, null, e.request.arg, false); return } if (b === Ext.data.Api.actions.read) { this.onRead(b, e, c) } else { this.onWrite(b, e, c, a) } } }, onRead:function (d, h, b) { var a; try { a = h.reader.read(b) } catch (g) { this.fireEvent("loadexception", this, h, b, g); this.fireEvent("exception", this, "response", d, h, b, g); h.request.callback.call(h.request.scope, null, h.request.arg, false); return } if (a.success === false) { this.fireEvent("loadexception", this, h, b); var c = h.reader.readResponse(d, b); this.fireEvent("exception", this, "remote", d, h, c, null) } else { this.fireEvent("load", this, h, h.request.arg) } h.request.callback.call(h.request.scope, a, h.request.arg, a.success) }, onWrite:function (g, i, c, b) { var a = i.reader; var d; try { d = a.readResponse(g, c) } catch (h) { this.fireEvent("exception", this, "response", g, i, c, h); i.request.callback.call(i.request.scope, null, i.request.arg, false); return } if (d.success === true) { this.fireEvent("write", this, g, d.data, d, b, i.request.arg) } else { this.fireEvent("exception", this, "remote", g, i, d, b) } i.request.callback.call(i.request.scope, d.data, d, d.success) }, destroy:function () { if (!this.useAjax) { this.conn.abort() } else { if (this.activeRequest) { var b = Ext.data.Api.actions; for (var a in b) { if (this.activeRequest[b[a]]) { Ext.Ajax.abort(this.activeRequest[b[a]]) } } } } Ext.data.HttpProxy.superclass.destroy.call(this) }}); Ext.data.MemoryProxy = function (b) { var a = {}; a[Ext.data.Api.actions.read] = true; Ext.data.MemoryProxy.superclass.constructor.call(this, {api:a}); this.data = b }; Ext.extend(Ext.data.MemoryProxy, Ext.data.DataProxy, {doRequest:function (b, c, a, d, h, i, j) { a = a || {}; var k; try { k = d.readRecords(this.data) } catch (g) { this.fireEvent("loadexception", this, null, j, g); this.fireEvent("exception", this, "response", b, j, null, g); h.call(i, null, j, false); return } h.call(i, k, j, true) }}); Ext.data.Types = new function () { var a = Ext.data.SortTypes; Ext.apply(this, {stripRe:/[\$,%]/g, AUTO:{convert:function (b) { return b }, sortType:a.none, type:"auto"}, STRING:{convert:function (b) { return(b === undefined || b === null) ? "" : String(b) }, sortType:a.asUCString, type:"string"}, INT:{convert:function (b) { return b !== undefined && b !== null && b !== "" ? parseInt(String(b).replace(Ext.data.Types.stripRe, ""), 10) : (this.useNull ? null : 0) }, sortType:a.none, type:"int"}, FLOAT:{convert:function (b) { return b !== undefined && b !== null && b !== "" ? parseFloat(String(b).replace(Ext.data.Types.stripRe, ""), 10) : (this.useNull ? null : 0) }, sortType:a.none, type:"float"}, BOOL:{convert:function (b) { return b === true || b === "true" || b == 1 }, sortType:a.none, type:"bool"}, DATE:{convert:function (c) { var d = this.dateFormat; if (!c) { return null } if (Ext.isDate(c)) { return c } if (d) { if (d == "timestamp") { return new Date(c * 1000) } if (d == "time") { return new Date(parseInt(c, 10)) } return Date.parseDate(c, d) } var b = Date.parse(c); return b ? new Date(b) : null }, sortType:a.asDate, type:"date"}}); Ext.apply(this, {BOOLEAN:this.BOOL, INTEGER:this.INT, NUMBER:this.FLOAT}) }; Ext.data.JsonWriter = Ext.extend(Ext.data.DataWriter, {encode:true, encodeDelete:false, constructor:function (a) { Ext.data.JsonWriter.superclass.constructor.call(this, a) }, render:function (c, d, b) { if (this.encode === true) { Ext.apply(c, d); c[this.meta.root] = Ext.encode(b) } else { var a = Ext.apply({}, d); a[this.meta.root] = b; c.jsonData = a } }, createRecord:function (a) { return this.toHash(a) }, updateRecord:function (a) { return this.toHash(a) }, destroyRecord:function (b) { if (this.encodeDelete) { var a = {}; a[this.meta.idProperty] = b.id; return a } else { return b.id } }}); Ext.data.JsonReader = function (a, b) { a = a || {}; Ext.applyIf(a, {idProperty:"id", successProperty:"success", totalProperty:"total"}); Ext.data.JsonReader.superclass.constructor.call(this, a, b || a.fields) }; Ext.extend(Ext.data.JsonReader, Ext.data.DataReader, {read:function (a) { var b = a.responseText; var c = Ext.decode(b); if (!c) { throw {message:"JsonReader.read: Json object not found"} } return this.readRecords(c) }, readResponse:function (e, b) { var h = (b.responseText !== undefined) ? Ext.decode(b.responseText) : b; if (!h) { throw new Ext.data.JsonReader.Error("response") } var a = this.getRoot(h), g = this.getSuccess(h); if (g && e === Ext.data.Api.actions.create) { var d = Ext.isDefined(a); if (d && Ext.isEmpty(a)) { throw new Ext.data.JsonReader.Error("root-empty", this.meta.root) } else { if (!d) { throw new Ext.data.JsonReader.Error("root-undefined-response", this.meta.root) } } } var c = new Ext.data.Response({action:e, success:g, data:(a) ? this.extractData(a, false) : [], message:this.getMessage(h), raw:h}); if (Ext.isEmpty(c.success)) { throw new Ext.data.JsonReader.Error("successProperty-response", this.meta.successProperty) } return c }, readRecords:function (a) { this.jsonData = a; if (a.metaData) { this.onMetaChange(a.metaData) } var m = this.meta, h = this.recordType, b = h.prototype.fields, l = b.items, i = b.length, j; var g = this.getRoot(a), e = g.length, d = e, k = true; if (m.totalProperty) { j = parseInt(this.getTotal(a), 10); if (!isNaN(j)) { d = j } } if (m.successProperty) { j = this.getSuccess(a); if (j === false || j === "false") { k = false } } return{success:k, records:this.extractData(g, true), totalRecords:d} }, buildExtractors:function () { if (this.ef) { return } var l = this.meta, h = this.recordType, e = h.prototype.fields, k = e.items, j = e.length; if (l.totalProperty) { this.getTotal = this.createAccessor(l.totalProperty) } if (l.successProperty) { this.getSuccess = this.createAccessor(l.successProperty) } if (l.messageProperty) { this.getMessage = this.createAccessor(l.messageProperty) } this.getRoot = l.root ? this.createAccessor(l.root) : function (g) { return g }; if (l.id || l.idProperty) { var d = this.createAccessor(l.id || l.idProperty); this.getId = function (i) { var g = d(i); return(g === undefined || g === "") ? null : g } } else { this.getId = function () { return null } } var c = []; for (var b = 0; b < j; b++) { e = k[b]; var a = (e.mapping !== undefined && e.mapping !== null) ? e.mapping : e.name; c.push(this.createAccessor(a)) } this.ef = c }, simpleAccess:function (b, a) { return b[a] }, createAccessor:function () { var a = /[\[\.]/; return function (c) { if (Ext.isEmpty(c)) { return Ext.emptyFn } if (Ext.isFunction(c)) { return c } var b = String(c).search(a); if (b >= 0) { return new Function("obj", "return obj" + (b > 0 ? "." : "") + c) } return function (d) { return d[c] } } }(), extractValues:function (h, d, a) { var g, c = {}; for (var e = 0; e < a; e++) { g = d[e]; var b = this.ef[e](h); c[g.name] = g.convert((b !== undefined) ? b : g.defaultValue, h) } return c }}); Ext.data.JsonReader.Error = Ext.extend(Ext.Error, {constructor:function (b, a) { this.arg = a; Ext.Error.call(this, b) }, name:"Ext.data.JsonReader"}); Ext.apply(Ext.data.JsonReader.Error.prototype, {lang:{response:"An error occurred while json-decoding your server response", "successProperty-response":'Could not locate your "successProperty" in your server response. Please review your JsonReader config to ensure the config-property "successProperty" matches the property in your server-response. See the JsonReader docs.', "root-undefined-config":'Your JsonReader was configured without a "root" property. Please review your JsonReader config and make sure to define the root property. See the JsonReader docs.', "idProperty-undefined":'Your JsonReader was configured without an "idProperty" Please review your JsonReader configuration and ensure the "idProperty" is set (e.g.: "id"). See the JsonReader docs.', "root-empty":'Data was expected to be returned by the server in the "root" property of the response. Please review your JsonReader configuration to ensure the "root" property matches that returned in the server-response. See JsonReader docs.'}}); Ext.data.ArrayReader = Ext.extend(Ext.data.JsonReader, {readRecords:function (r) { this.arrayData = r; var l = this.meta, d = l ? Ext.num(l.idIndex, l.id) : null, b = this.recordType, q = b.prototype.fields, z = [], e = true, g; var u = this.getRoot(r); for (var y = 0, A = u.length; y < A; y++) { var t = u[y], a = {}, p = ((d || d === 0) && t[d] !== undefined && t[d] !== "" ? t[d] : null); for (var x = 0, m = q.length; x < m; x++) { var B = q.items[x], w = B.mapping !== undefined && B.mapping !== null ? B.mapping : x; g = t[w] !== undefined ? t[w] : B.defaultValue; g = B.convert(g, t); a[B.name] = g } var c = new b(a, p); c.json = t; z[z.length] = c } var h = z.length; if (l.totalProperty) { g = parseInt(this.getTotal(r), 10); if (!isNaN(g)) { h = g } } if (l.successProperty) { g = this.getSuccess(r); if (g === false || g === "false") { e = false } } return{success:e, records:z, totalRecords:h} }}); Ext.data.ArrayStore = Ext.extend(Ext.data.Store, {constructor:function (a) { Ext.data.ArrayStore.superclass.constructor.call(this, Ext.apply(a, {reader:new Ext.data.ArrayReader(a)})) }, loadData:function (e, b) { if (this.expandData === true) { var d = []; for (var c = 0, a = e.length; c < a; c++) { d[d.length] = [e[c]] } e = d } Ext.data.ArrayStore.superclass.loadData.call(this, e, b) }}); Ext.reg("arraystore", Ext.data.ArrayStore); Ext.data.SimpleStore = Ext.data.ArrayStore; Ext.reg("simplestore", Ext.data.SimpleStore); Ext.data.JsonStore = Ext.extend(Ext.data.Store, {constructor:function (a) { Ext.data.JsonStore.superclass.constructor.call(this, Ext.apply(a, {reader:new Ext.data.JsonReader(a)})) }}); Ext.reg("jsonstore", Ext.data.JsonStore); Ext.data.XmlWriter = function (a) { Ext.data.XmlWriter.superclass.constructor.apply(this, arguments); this.tpl = (typeof(this.tpl) === "string") ? new Ext.XTemplate(this.tpl).compile() : this.tpl.compile() }; Ext.extend(Ext.data.XmlWriter, Ext.data.DataWriter, {documentRoot:"xrequest", forceDocumentRoot:false, root:"records", xmlVersion:"1.0", xmlEncoding:"ISO-8859-15", tpl:'<\u003fxml version="{version}" encoding="{encoding}"\u003f><{documentRoot}><{name}>{value}<{root}><{parent.record}><{name}>{value}', render:function (b, c, a) { c = this.toArray(c); b.xmlData = this.tpl.applyTemplate({version:this.xmlVersion, encoding:this.xmlEncoding, documentRoot:(c.length > 0 || this.forceDocumentRoot === true) ? this.documentRoot : false, record:this.meta.record, root:this.root, baseParams:c, records:(Ext.isArray(a[0])) ? a : [a]}) }, createRecord:function (a) { return this.toArray(this.toHash(a)) }, updateRecord:function (a) { return this.toArray(this.toHash(a)) }, destroyRecord:function (b) { var a = {}; a[this.meta.idProperty] = b.id; return this.toArray(a) }}); Ext.data.XmlReader = function (a, b) { a = a || {}; Ext.applyIf(a, {idProperty:a.idProperty || a.idPath || a.id, successProperty:a.successProperty || a.success}); Ext.data.XmlReader.superclass.constructor.call(this, a, b || a.fields) }; Ext.extend(Ext.data.XmlReader, Ext.data.DataReader, {read:function (a) { var b = a.responseXML; if (!b) { throw {message:"XmlReader.read: XML Document not available"} } return this.readRecords(b) }, readRecords:function (d) { this.xmlData = d; var a = d.documentElement || d, c = Ext.DomQuery, g = 0, e = true; if (this.meta.totalProperty) { g = this.getTotal(a, 0) } if (this.meta.successProperty) { e = this.getSuccess(a) } var b = this.extractData(c.select(this.meta.record, a), true); return{success:e, records:b, totalRecords:g || b.length} }, readResponse:function (g, b) { var e = Ext.DomQuery, h = b.responseXML, a = h.documentElement || h; var c = new Ext.data.Response({action:g, success:this.getSuccess(a), message:this.getMessage(a), data:this.extractData(e.select(this.meta.record, a) || e.select(this.meta.root, a), false), raw:h}); if (Ext.isEmpty(c.success)) { throw new Ext.data.DataReader.Error("successProperty-response", this.meta.successProperty) } if (g === Ext.data.Api.actions.create) { var d = Ext.isDefined(c.data); if (d && Ext.isEmpty(c.data)) { throw new Ext.data.JsonReader.Error("root-empty", this.meta.root) } else { if (!d) { throw new Ext.data.JsonReader.Error("root-undefined-response", this.meta.root) } } } return c }, getSuccess:function () { return true }, buildExtractors:function () { if (this.ef) { return } var l = this.meta, h = this.recordType, e = h.prototype.fields, k = e.items, j = e.length; if (l.totalProperty) { this.getTotal = this.createAccessor(l.totalProperty) } if (l.successProperty) { this.getSuccess = this.createAccessor(l.successProperty) } if (l.messageProperty) { this.getMessage = this.createAccessor(l.messageProperty) } this.getRoot = function (g) { return(!Ext.isEmpty(g[this.meta.record])) ? g[this.meta.record] : g[this.meta.root] }; if (l.idPath || l.idProperty) { var d = this.createAccessor(l.idPath || l.idProperty); this.getId = function (g) { var i = d(g) || g.id; return(i === undefined || i === "") ? null : i } } else { this.getId = function () { return null } } var c = []; for (var b = 0; b < j; b++) { e = k[b]; var a = (e.mapping !== undefined && e.mapping !== null) ? e.mapping : e.name; c.push(this.createAccessor(a)) } this.ef = c }, createAccessor:function () { var a = Ext.DomQuery; return function (b) { if (Ext.isFunction(b)) { return b } switch (b) { case this.meta.totalProperty: return function (c, d) { return a.selectNumber(b, c, d) }; break; case this.meta.successProperty: return function (d, e) { var c = a.selectValue(b, d, true); var g = c !== false && c !== "false"; return g }; break; default: return function (c, d) { return a.selectValue(b, c, d) }; break } } }(), extractValues:function (h, d, a) { var g, c = {}; for (var e = 0; e < a; e++) { g = d[e]; var b = this.ef[e](h); c[g.name] = g.convert((b !== undefined) ? b : g.defaultValue, h) } return c }}); Ext.data.XmlStore = Ext.extend(Ext.data.Store, {constructor:function (a) { Ext.data.XmlStore.superclass.constructor.call(this, Ext.apply(a, {reader:new Ext.data.XmlReader(a)})) }}); Ext.reg("xmlstore", Ext.data.XmlStore); Ext.data.GroupingStore = Ext.extend(Ext.data.Store, {constructor:function (d) { d = d || {}; this.hasMultiSort = true; this.multiSortInfo = this.multiSortInfo || {sorters:[]}; var e = this.multiSortInfo.sorters, c = d.groupField || this.groupField, b = d.sortInfo || this.sortInfo, a = d.groupDir || this.groupDir; if (c) { e.push({field:c, direction:a}) } if (b) { e.push(b) } Ext.data.GroupingStore.superclass.constructor.call(this, d); this.addEvents("groupchange"); this.applyGroupField() }, remoteGroup:false, groupOnSort:false, groupDir:"ASC", clearGrouping:function () { this.groupField = false; if (this.remoteGroup) { if (this.baseParams) { delete this.baseParams.groupBy; delete this.baseParams.groupDir } var a = this.lastOptions; if (a && a.params) { delete a.params.groupBy; delete a.params.groupDir } this.reload() } else { this.sort(); this.fireEvent("datachanged", this) } }, groupBy:function (e, a, d) { d = d ? (String(d).toUpperCase() == "DESC" ? "DESC" : "ASC") : this.groupDir; if (this.groupField == e && this.groupDir == d && !a) { return } var c = this.multiSortInfo.sorters; if (c.length > 0 && c[0].field == this.groupField) { c.shift() } this.groupField = e; this.groupDir = d; this.applyGroupField(); var b = function () { this.fireEvent("groupchange", this, this.getGroupState()) }; if (this.groupOnSort) { this.sort(e, d); b.call(this); return } if (this.remoteGroup) { this.on("load", b, this, {single:true}); this.reload() } else { this.sort(c); b.call(this) } }, sort:function (h, c) { if (this.remoteSort) { return Ext.data.GroupingStore.superclass.sort.call(this, h, c) } var g = []; if (Ext.isArray(arguments[0])) { g = arguments[0] } else { if (h == undefined) { g = this.sortInfo ? [this.sortInfo] : [] } else { var e = this.fields.get(h); if (!e) { return false } var b = e.name, a = this.sortInfo || null, d = this.sortToggle ? this.sortToggle[b] : null; if (!c) { if (a && a.field == b) { c = (this.sortToggle[b] || "ASC").toggle("ASC", "DESC") } else { c = e.sortDir } } this.sortToggle[b] = c; this.sortInfo = {field:b, direction:c}; g = [this.sortInfo] } } if (this.groupField) { g.unshift({direction:this.groupDir, field:this.groupField}) } return this.multiSort.call(this, g, c) }, applyGroupField:function () { if (this.remoteGroup) { if (!this.baseParams) { this.baseParams = {} } Ext.apply(this.baseParams, {groupBy:this.groupField, groupDir:this.groupDir}); var a = this.lastOptions; if (a && a.params) { a.params.groupDir = this.groupDir; delete a.params.groupBy } } }, applyGrouping:function (a) { if (this.groupField !== false) { this.groupBy(this.groupField, true, this.groupDir); return true } else { if (a === true) { this.fireEvent("datachanged", this) } return false } }, getGroupState:function () { return this.groupOnSort && this.groupField !== false ? (this.sortInfo ? this.sortInfo.field : undefined) : this.groupField }}); Ext.reg("groupingstore", Ext.data.GroupingStore); Ext.data.DirectProxy = function (a) { Ext.apply(this, a); if (typeof this.paramOrder == "string") { this.paramOrder = this.paramOrder.split(/[\s,|]/) } Ext.data.DirectProxy.superclass.constructor.call(this, a) }; Ext.extend(Ext.data.DirectProxy, Ext.data.DataProxy, {paramOrder:undefined, paramsAsHash:true, directFn:undefined, doRequest:function (b, c, a, e, k, l, n) { var j = [], h = this.api[b] || this.directFn; switch (b) { case Ext.data.Api.actions.create: j.push(a.jsonData); break; case Ext.data.Api.actions.read: if (h.directCfg.method.len > 0) { if (this.paramOrder) { for (var d = 0, g = this.paramOrder.length; d < g; d++) { j.push(a[this.paramOrder[d]]) } } else { if (this.paramsAsHash) { j.push(a) } } } break; case Ext.data.Api.actions.update: j.push(a.jsonData); break; case Ext.data.Api.actions.destroy: j.push(a.jsonData); break } var m = {params:a || {}, request:{callback:k, scope:l, arg:n}, reader:e}; j.push(this.createCallback(b, c, m), this); h.apply(window, j) }, createCallback:function (d, a, b) { var c = this; return function (e, g) { if (!g.status) { if (d === Ext.data.Api.actions.read) { c.fireEvent("loadexception", c, b, g, null) } c.fireEvent("exception", c, "remote", d, b, g, null); b.request.callback.call(b.request.scope, null, b.request.arg, false); return } if (d === Ext.data.Api.actions.read) { c.onRead(d, b, e, g) } else { c.onWrite(d, b, e, g, a) } } }, onRead:function (g, e, a, d) { var b; try { b = e.reader.readRecords(a) } catch (c) { this.fireEvent("loadexception", this, e, d, c); this.fireEvent("exception", this, "response", g, e, d, c); e.request.callback.call(e.request.scope, null, e.request.arg, false); return } this.fireEvent("load", this, d, e.request.arg); e.request.callback.call(e.request.scope, b, e.request.arg, true) }, onWrite:function (g, d, a, c, b) { var e = d.reader.extractData(d.reader.getRoot(a), false); var h = d.reader.getSuccess(a); h = (h !== false); if (h) { this.fireEvent("write", this, g, e, c, b, d.request.arg) } else { this.fireEvent("exception", this, "remote", g, d, a, b) } d.request.callback.call(d.request.scope, e, c, h) }}); Ext.data.DirectStore = Ext.extend(Ext.data.Store, {constructor:function (a) { var b = Ext.apply({}, {batchTransactions:false}, a); Ext.data.DirectStore.superclass.constructor.call(this, Ext.apply(b, {proxy:Ext.isDefined(b.proxy) ? b.proxy : new Ext.data.DirectProxy(Ext.copyTo({}, b, "paramOrder,paramsAsHash,directFn,api")), reader:(!Ext.isDefined(b.reader) && b.fields) ? new Ext.data.JsonReader(Ext.copyTo({}, b, "totalProperty,root,idProperty"), b.fields) : b.reader})) }}); Ext.reg("directstore", Ext.data.DirectStore); Ext.Direct = Ext.extend(Ext.util.Observable, {exceptions:{TRANSPORT:"xhr", PARSE:"parse", LOGIN:"login", SERVER:"exception"}, constructor:function () { this.addEvents("event", "exception"); this.transactions = {}; this.providers = {} }, addProvider:function (e) { var c = arguments; if (c.length > 1) { for (var d = 0, b = c.length; d < b; d++) { this.addProvider(c[d]) } return } if (!e.events) { e = new Ext.Direct.PROVIDERS[e.type](e) } e.id = e.id || Ext.id(); this.providers[e.id] = e; e.on("data", this.onProviderData, this); e.on("exception", this.onProviderException, this); if (!e.isConnected()) { e.connect() } return e }, getProvider:function (a) { return this.providers[a] }, removeProvider:function (b) { var a = b.id ? b : this.providers[b]; a.un("data", this.onProviderData, this); a.un("exception", this.onProviderException, this); delete this.providers[a.id]; return a }, addTransaction:function (a) { this.transactions[a.tid] = a; return a }, removeTransaction:function (a) { delete this.transactions[a.tid || a]; return a }, getTransaction:function (a) { return this.transactions[a.tid || a] }, onProviderData:function (d, c) { if (Ext.isArray(c)) { for (var b = 0, a = c.length; b < a; b++) { this.onProviderData(d, c[b]) } return } if (c.name && c.name != "event" && c.name != "exception") { this.fireEvent(c.name, c) } else { if (c.type == "exception") { this.fireEvent("exception", c) } } this.fireEvent("event", c, d) }, createEvent:function (a, b) { return new Ext.Direct.eventTypes[a.type](Ext.apply(a, b)) }}); Ext.Direct = new Ext.Direct(); Ext.Direct.TID = 1; Ext.Direct.PROVIDERS = {}; Ext.Direct.Transaction = function (a) { Ext.apply(this, a); this.tid = ++Ext.Direct.TID; this.retryCount = 0 }; Ext.Direct.Transaction.prototype = {send:function () { this.provider.queueTransaction(this) }, retry:function () { this.retryCount++; this.send() }, getProvider:function () { return this.provider }}; Ext.Direct.Event = function (a) { Ext.apply(this, a) }; Ext.Direct.Event.prototype = {status:true, getData:function () { return this.data }}; Ext.Direct.RemotingEvent = Ext.extend(Ext.Direct.Event, {type:"rpc", getTransaction:function () { return this.transaction || Ext.Direct.getTransaction(this.tid) }}); Ext.Direct.ExceptionEvent = Ext.extend(Ext.Direct.RemotingEvent, {status:false, type:"exception"}); Ext.Direct.eventTypes = {rpc:Ext.Direct.RemotingEvent, event:Ext.Direct.Event, exception:Ext.Direct.ExceptionEvent}; Ext.direct.Provider = Ext.extend(Ext.util.Observable, {priority:1, constructor:function (a) { Ext.apply(this, a); this.addEvents("connect", "disconnect", "data", "exception"); Ext.direct.Provider.superclass.constructor.call(this, a) }, isConnected:function () { return false }, connect:Ext.emptyFn, disconnect:Ext.emptyFn}); Ext.direct.JsonProvider = Ext.extend(Ext.direct.Provider, {parseResponse:function (a) { if (!Ext.isEmpty(a.responseText)) { if (typeof a.responseText == "object") { return a.responseText } return Ext.decode(a.responseText) } return null }, getEvents:function (j) { var g = null; try { g = this.parseResponse(j) } catch (h) { var d = new Ext.Direct.ExceptionEvent({data:h, xhr:j, code:Ext.Direct.exceptions.PARSE, message:"Error parsing json response: \n\n " + g}); return[d] } var c = []; if (Ext.isArray(g)) { for (var b = 0, a = g.length; b < a; b++) { c.push(Ext.Direct.createEvent(g[b])) } } else { c.push(Ext.Direct.createEvent(g)) } return c }}); Ext.direct.PollingProvider = Ext.extend(Ext.direct.JsonProvider, {priority:3, interval:3000, constructor:function (a) { Ext.direct.PollingProvider.superclass.constructor.call(this, a); this.addEvents("beforepoll", "poll") }, isConnected:function () { return !!this.pollTask }, connect:function () { if (this.url && !this.pollTask) { this.pollTask = Ext.TaskMgr.start({run:function () { if (this.fireEvent("beforepoll", this) !== false) { if (typeof this.url == "function") { this.url(this.baseParams) } else { Ext.Ajax.request({url:this.url, callback:this.onData, scope:this, params:this.baseParams}) } } }, interval:this.interval, scope:this}); this.fireEvent("connect", this) } else { if (!this.url) { throw"Error initializing PollingProvider, no url configured." } } }, disconnect:function () { if (this.pollTask) { Ext.TaskMgr.stop(this.pollTask); delete this.pollTask; this.fireEvent("disconnect", this) } }, onData:function (d, j, h) { if (j) { var c = this.getEvents(h); for (var b = 0, a = c.length; b < a; b++) { var g = c[b]; this.fireEvent("data", this, g) } } else { var g = new Ext.Direct.ExceptionEvent({data:g, code:Ext.Direct.exceptions.TRANSPORT, message:"Unable to connect to the server.", xhr:h}); this.fireEvent("data", this, g) } }}); Ext.Direct.PROVIDERS.polling = Ext.direct.PollingProvider; Ext.direct.RemotingProvider = Ext.extend(Ext.direct.JsonProvider, {enableBuffer:10, maxRetries:1, timeout:undefined, constructor:function (a) { Ext.direct.RemotingProvider.superclass.constructor.call(this, a); this.addEvents("beforecall", "call"); this.namespace = (Ext.isString(this.namespace)) ? Ext.ns(this.namespace) : this.namespace || window; this.transactions = {}; this.callBuffer = [] }, initAPI:function () { var h = this.actions; for (var j in h) { var d = this.namespace[j] || (this.namespace[j] = {}), e = h[j]; for (var g = 0, b = e.length; g < b; g++) { var a = e[g]; d[a.name] = this.createMethod(j, a) } } }, isConnected:function () { return !!this.connected }, connect:function () { if (this.url) { this.initAPI(); this.connected = true; this.fireEvent("connect", this) } else { if (!this.url) { throw"Error initializing RemotingProvider, no url configured." } } }, disconnect:function () { if (this.connected) { this.connected = false; this.fireEvent("disconnect", this) } }, onData:function (a, h, j) { if (h) { var k = this.getEvents(j); for (var b = 0, c = k.length; b < c; b++) { var d = k[b], l = this.getTransaction(d); this.fireEvent("data", this, d); if (l) { this.doCallback(l, d, true); Ext.Direct.removeTransaction(l) } } } else { var g = [].concat(a.ts); for (var b = 0, c = g.length; b < c; b++) { var l = this.getTransaction(g[b]); if (l && l.retryCount < this.maxRetries) { l.retry() } else { var d = new Ext.Direct.ExceptionEvent({data:d, transaction:l, code:Ext.Direct.exceptions.TRANSPORT, message:"Unable to connect to the server.", xhr:j}); this.fireEvent("data", this, d); if (l) { this.doCallback(l, d, false); Ext.Direct.removeTransaction(l) } } } } }, getCallData:function (a) { return{action:a.action, method:a.method, data:a.data, type:"rpc", tid:a.tid} }, doSend:function (d) { var g = {url:this.url, callback:this.onData, scope:this, ts:d, timeout:this.timeout}, b; if (Ext.isArray(d)) { b = []; for (var c = 0, a = d.length; c < a; c++) { b.push(this.getCallData(d[c])) } } else { b = this.getCallData(d) } if (this.enableUrlEncode) { var e = {}; e[Ext.isString(this.enableUrlEncode) ? this.enableUrlEncode : "data"] = Ext.encode(b); g.params = e } else { g.jsonData = b } Ext.Ajax.request(g) }, combineAndSend:function () { var a = this.callBuffer.length; if (a > 0) { this.doSend(a == 1 ? this.callBuffer[0] : this.callBuffer); this.callBuffer = [] } }, queueTransaction:function (a) { if (a.form) { this.processForm(a); return } this.callBuffer.push(a); if (this.enableBuffer) { if (!this.callTask) { this.callTask = new Ext.util.DelayedTask(this.combineAndSend, this) } this.callTask.delay(Ext.isNumber(this.enableBuffer) ? this.enableBuffer : 10) } else { this.combineAndSend() } }, doCall:function (i, a, b) { var h = null, e = b[a.len], g = b[a.len + 1]; if (a.len !== 0) { h = b.slice(0, a.len) } var d = new Ext.Direct.Transaction({provider:this, args:b, action:i, method:a.name, data:h, cb:g && Ext.isFunction(e) ? e.createDelegate(g) : e}); if (this.fireEvent("beforecall", this, d, a) !== false) { Ext.Direct.addTransaction(d); this.queueTransaction(d); this.fireEvent("call", this, d, a) } }, doForm:function (j, b, g, i, e) { var d = new Ext.Direct.Transaction({provider:this, action:j, method:b.name, args:[g, i, e], cb:e && Ext.isFunction(i) ? i.createDelegate(e) : i, isForm:true}); if (this.fireEvent("beforecall", this, d, b) !== false) { Ext.Direct.addTransaction(d); var a = String(g.getAttribute("enctype")).toLowerCase() == "multipart/form-data", h = {extTID:d.tid, extAction:j, extMethod:b.name, extType:"rpc", extUpload:String(a)}; Ext.apply(d, {form:Ext.getDom(g), isUpload:a, params:i && Ext.isObject(i.params) ? Ext.apply(h, i.params) : h}); this.fireEvent("call", this, d, b); this.processForm(d) } }, processForm:function (a) { Ext.Ajax.request({url:this.url, params:a.params, callback:this.onData, scope:this, form:a.form, isUpload:a.isUpload, ts:a}) }, createMethod:function (d, a) { var b; if (!a.formHandler) { b = function () { this.doCall(d, a, Array.prototype.slice.call(arguments, 0)) }.createDelegate(this) } else { b = function (e, g, c) { this.doForm(d, a, e, g, c) }.createDelegate(this) } b.directCfg = {action:d, method:a}; return b }, getTransaction:function (a) { return a && a.tid ? Ext.Direct.getTransaction(a.tid) : null }, doCallback:function (c, g) { var d = g.status ? "success" : "failure"; if (c && c.cb) { var b = c.cb, a = Ext.isDefined(g.result) ? g.result : g.data; if (Ext.isFunction(b)) { b(a, g) } else { Ext.callback(b[d], b.scope, [a, g]); Ext.callback(b.callback, b.scope, [a, g]) } } }}); Ext.Direct.PROVIDERS.remoting = Ext.direct.RemotingProvider; Ext.Resizable = Ext.extend(Ext.util.Observable, {constructor:function (d, e) { this.el = Ext.get(d); if (e && e.wrap) { e.resizeChild = this.el; this.el = this.el.wrap(typeof e.wrap == "object" ? e.wrap : {cls:"xresizable-wrap"}); this.el.id = this.el.dom.id = e.resizeChild.id + "-rzwrap"; this.el.setStyle("overflow", "hidden"); this.el.setPositioning(e.resizeChild.getPositioning()); e.resizeChild.clearPositioning(); if (!e.width || !e.height) { var g = e.resizeChild.getSize(); this.el.setSize(g.width, g.height) } if (e.pinned && !e.adjustments) { e.adjustments = "auto" } } this.proxy = this.el.createProxy({tag:"div", cls:"x-resizable-proxy", id:this.el.id + "-rzproxy"}, Ext.getBody()); this.proxy.unselectable(); this.proxy.enableDisplayMode("block"); Ext.apply(this, e); if (this.pinned) { this.disableTrackOver = true; this.el.addClass("x-resizable-pinned") } var k = this.el.getStyle("position"); if (k != "absolute" && k != "fixed") { this.el.setStyle("position", "relative") } if (!this.handles) { this.handles = "s,e,se"; if (this.multiDirectional) { this.handles += ",n,w" } } if (this.handles == "all") { this.handles = "n s e w ne nw se sw" } var o = this.handles.split(/\s*?[,;]\s*?| /); var c = Ext.Resizable.positions; for (var j = 0, l = o.length; j < l; j++) { if (o[j] && c[o[j]]) { var n = c[o[j]]; this[n] = new Ext.Resizable.Handle(this, n, this.disableTrackOver, this.transparent, this.handleCls) } } this.corner = this.southeast; if (this.handles.indexOf("n") != -1 || this.handles.indexOf("w") != -1) { this.updateBox = true } this.activeHandle = null; if (this.resizeChild) { if (typeof this.resizeChild == "boolean") { this.resizeChild = Ext.get(this.el.dom.firstChild, true) } else { this.resizeChild = Ext.get(this.resizeChild, true) } } if (this.adjustments == "auto") { var b = this.resizeChild; var m = this.west, h = this.east, a = this.north, o = this.south; if (b && (m || a)) { b.position("relative"); b.setLeft(m ? m.el.getWidth() : 0); b.setTop(a ? a.el.getHeight() : 0) } this.adjustments = [(h ? -h.el.getWidth() : 0) + (m ? -m.el.getWidth() : 0), (a ? -a.el.getHeight() : 0) + (o ? -o.el.getHeight() : 0) - 1] } if (this.draggable) { this.dd = this.dynamic ? this.el.initDD(null) : this.el.initDDProxy(null, {dragElId:this.proxy.id}); this.dd.setHandleElId(this.resizeChild ? this.resizeChild.id : this.el.id); if (this.constrainTo) { this.dd.constrainTo(this.constrainTo) } } this.addEvents("beforeresize", "resize"); if (this.width !== null && this.height !== null) { this.resizeTo(this.width, this.height) } else { this.updateChildSize() } if (Ext.isIE) { this.el.dom.style.zoom = 1 } Ext.Resizable.superclass.constructor.call(this) }, adjustments:[0, 0], animate:false, disableTrackOver:false, draggable:false, duration:0.35, dynamic:false, easing:"easeOutStrong", enabled:true, handles:false, multiDirectional:false, height:null, width:null, heightIncrement:0, widthIncrement:0, minHeight:5, minWidth:5, maxHeight:10000, maxWidth:10000, minX:0, minY:0, pinned:false, preserveRatio:false, resizeChild:false, transparent:false, resizeTo:function (b, a) { this.el.setSize(b, a); this.updateChildSize(); this.fireEvent("resize", this, b, a, null) }, startSizing:function (c, b) { this.fireEvent("beforeresize", this, c); if (this.enabled) { if (!this.overlay) { this.overlay = this.el.createProxy({tag:"div", cls:"x-resizable-overlay", html:" "}, Ext.getBody()); this.overlay.unselectable(); this.overlay.enableDisplayMode("block"); this.overlay.on({scope:this, mousemove:this.onMouseMove, mouseup:this.onMouseUp}) } this.overlay.setStyle("cursor", b.el.getStyle("cursor")); this.resizing = true; this.startBox = this.el.getBox(); this.startPoint = c.getXY(); this.offsets = [(this.startBox.x + this.startBox.width) - this.startPoint[0], (this.startBox.y + this.startBox.height) - this.startPoint[1]]; this.overlay.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true)); this.overlay.show(); if (this.constrainTo) { var a = Ext.get(this.constrainTo); this.resizeRegion = a.getRegion().adjust(a.getFrameWidth("t"), a.getFrameWidth("l"), -a.getFrameWidth("b"), -a.getFrameWidth("r")) } this.proxy.setStyle("visibility", "hidden"); this.proxy.show(); this.proxy.setBox(this.startBox); if (!this.dynamic) { this.proxy.setStyle("visibility", "visible") } } }, onMouseDown:function (a, b) { if (this.enabled) { b.stopEvent(); this.activeHandle = a; this.startSizing(b, a) } }, onMouseUp:function (b) { this.activeHandle = null; var a = this.resizeElement(); this.resizing = false; this.handleOut(); this.overlay.hide(); this.proxy.hide(); this.fireEvent("resize", this, a.width, a.height, b) }, updateChildSize:function () { if (this.resizeChild) { var d = this.el; var e = this.resizeChild; var c = this.adjustments; if (d.dom.offsetWidth) { var a = d.getSize(true); e.setSize(a.width + c[0], a.height + c[1]) } if (Ext.isIE) { setTimeout(function () { if (d.dom.offsetWidth) { var g = d.getSize(true); e.setSize(g.width + c[0], g.height + c[1]) } }, 10) } } }, snap:function (c, e, b) { if (!e || !c) { return c } var d = c; var a = c % e; if (a > 0) { if (a > (e / 2)) { d = c + (e - a) } else { d = c - a } } return Math.max(b, d) }, resizeElement:function () { var a = this.proxy.getBox(); if (this.updateBox) { this.el.setBox(a, false, this.animate, this.duration, null, this.easing) } else { this.el.setSize(a.width, a.height, this.animate, this.duration, null, this.easing) } this.updateChildSize(); if (!this.dynamic) { this.proxy.hide() } if (this.draggable && this.constrainTo) { this.dd.resetConstraints(); this.dd.constrainTo(this.constrainTo) } return a }, constrain:function (b, c, a, d) { if (b - c < a) { c = b - a } else { if (b - c > d) { c = b - d } } return c }, onMouseMove:function (z) { if (this.enabled && this.activeHandle) { try { if (this.resizeRegion && !this.resizeRegion.contains(z.getPoint())) { return } var t = this.curSize || this.startBox, l = this.startBox.x, k = this.startBox.y, c = l, b = k, m = t.width, u = t.height, d = m, o = u, n = this.minWidth, A = this.minHeight, s = this.maxWidth, D = this.maxHeight, i = this.widthIncrement, a = this.heightIncrement, B = z.getXY(), r = -(this.startPoint[0] - Math.max(this.minX, B[0])), p = -(this.startPoint[1] - Math.max(this.minY, B[1])), j = this.activeHandle.position, E, g; switch (j) { case"east": m += r; m = Math.min(Math.max(n, m), s); break; case"south": u += p; u = Math.min(Math.max(A, u), D); break; case"southeast": m += r; u += p; m = Math.min(Math.max(n, m), s); u = Math.min(Math.max(A, u), D); break; case"north": p = this.constrain(u, p, A, D); k += p; u -= p; break; case"west": r = this.constrain(m, r, n, s); l += r; m -= r; break; case"northeast": m += r; m = Math.min(Math.max(n, m), s); p = this.constrain(u, p, A, D); k += p; u -= p; break; case"northwest": r = this.constrain(m, r, n, s); p = this.constrain(u, p, A, D); k += p; u -= p; l += r; m -= r; break; case"southwest": r = this.constrain(m, r, n, s); u += p; u = Math.min(Math.max(A, u), D); l += r; m -= r; break } var q = this.snap(m, i, n); var C = this.snap(u, a, A); if (q != m || C != u) { switch (j) { case"northeast": k -= C - u; break; case"north": k -= C - u; break; case"southwest": l -= q - m; break; case"west": l -= q - m; break; case"northwest": l -= q - m; k -= C - u; break } m = q; u = C } if (this.preserveRatio) { switch (j) { case"southeast": case"east": u = o * (m / d); u = Math.min(Math.max(A, u), D); m = d * (u / o); break; case"south": m = d * (u / o); m = Math.min(Math.max(n, m), s); u = o * (m / d); break; case"northeast": m = d * (u / o); m = Math.min(Math.max(n, m), s); u = o * (m / d); break; case"north": E = m; m = d * (u / o); m = Math.min(Math.max(n, m), s); u = o * (m / d); l += (E - m) / 2; break; case"southwest": u = o * (m / d); u = Math.min(Math.max(A, u), D); E = m; m = d * (u / o); l += E - m; break; case"west": g = u; u = o * (m / d); u = Math.min(Math.max(A, u), D); k += (g - u) / 2; E = m; m = d * (u / o); l += E - m; break; case"northwest": E = m; g = u; u = o * (m / d); u = Math.min(Math.max(A, u), D); m = d * (u / o); k += g - u; l += E - m; break } } this.proxy.setBounds(l, k, m, u); if (this.dynamic) { this.resizeElement() } } catch (v) { } } }, handleOver:function () { if (this.enabled) { this.el.addClass("x-resizable-over") } }, handleOut:function () { if (!this.resizing) { this.el.removeClass("x-resizable-over") } }, getEl:function () { return this.el }, getResizeChild:function () { return this.resizeChild }, destroy:function (b) { Ext.destroy(this.dd, this.overlay, this.proxy); this.overlay = null; this.proxy = null; var c = Ext.Resizable.positions; for (var a in c) { if (typeof c[a] != "function" && this[c[a]]) { this[c[a]].destroy() } } if (b) { this.el.update(""); Ext.destroy(this.el); this.el = null } this.purgeListeners() }, syncHandleHeight:function () { var a = this.el.getHeight(true); if (this.west) { this.west.el.setHeight(a) } if (this.east) { this.east.el.setHeight(a) } }}); Ext.Resizable.positions = {n:"north", s:"south", e:"east", w:"west", se:"southeast", sw:"southwest", nw:"northwest", ne:"northeast"}; Ext.Resizable.Handle = Ext.extend(Object, {constructor:function (d, g, c, e, a) { if (!this.tpl) { var b = Ext.DomHelper.createTemplate({tag:"div", cls:"x-resizable-handle x-resizable-handle-{0}"}); b.compile(); Ext.Resizable.Handle.prototype.tpl = b } this.position = g; this.rz = d; this.el = this.tpl.append(d.el.dom, [this.position], true); this.el.unselectable(); if (e) { this.el.setOpacity(0) } if (!Ext.isEmpty(a)) { this.el.addClass(a) } this.el.on("mousedown", this.onMouseDown, this); if (!c) { this.el.on({scope:this, mouseover:this.onMouseOver, mouseout:this.onMouseOut}) } }, afterResize:function (a) { }, onMouseDown:function (a) { this.rz.onMouseDown(this, a) }, onMouseOver:function (a) { this.rz.handleOver(this, a) }, onMouseOut:function (a) { this.rz.handleOut(this, a) }, destroy:function () { Ext.destroy(this.el); this.el = null }}); Ext.Window = Ext.extend(Ext.Panel, {baseCls:"x-window", resizable:true, draggable:true, closable:true, closeAction:"close", constrain:false, constrainHeader:false, plain:false, minimizable:false, maximizable:false, minHeight:100, minWidth:200, expandOnShow:true, showAnimDuration:0.25, hideAnimDuration:0.25, collapsible:false, initHidden:undefined, hidden:true, elements:"header,body", frame:true, floating:true, initComponent:function () { this.initTools(); Ext.Window.superclass.initComponent.call(this); this.addEvents("resize", "maximize", "minimize", "restore"); if (Ext.isDefined(this.initHidden)) { this.hidden = this.initHidden } if (this.hidden === false) { this.hidden = true; this.show() } }, getState:function () { return Ext.apply(Ext.Window.superclass.getState.call(this) || {}, this.getBox(true)) }, onRender:function (b, a) { Ext.Window.superclass.onRender.call(this, b, a); if (this.plain) { this.el.addClass("x-window-plain") } this.focusEl = this.el.createChild({tag:"a", href:"#", cls:"x-dlg-focus", tabIndex:"-1", html:" "}); this.focusEl.swallowEvent("click", true); this.proxy = this.el.createProxy("x-window-proxy"); this.proxy.enableDisplayMode("block"); if (this.modal) { this.mask = this.container.createChild({cls:"ext-el-mask"}, this.el.dom); this.mask.enableDisplayMode("block"); this.mask.hide(); this.mon(this.mask, "click", this.focus, this) } if (this.maximizable) { this.mon(this.header, "dblclick", this.toggleMaximize, this) } }, initEvents:function () { Ext.Window.superclass.initEvents.call(this); if (this.animateTarget) { this.setAnimateTarget(this.animateTarget) } if (this.resizable) { this.resizer = new Ext.Resizable(this.el, {minWidth:this.minWidth, minHeight:this.minHeight, handles:this.resizeHandles || "all", pinned:true, resizeElement:this.resizerAction, handleCls:"x-window-handle"}); this.resizer.window = this; this.mon(this.resizer, "beforeresize", this.beforeResize, this) } if (this.draggable) { this.header.addClass("x-window-draggable") } this.mon(this.el, "mousedown", this.toFront, this); this.manager = this.manager || Ext.WindowMgr; this.manager.register(this); if (this.maximized) { this.maximized = false; this.maximize() } if (this.closable) { var a = this.getKeyMap(); a.on(27, this.onEsc, this); a.disable() } }, initDraggable:function () { this.dd = new Ext.Window.DD(this) }, onEsc:function (a, b) { if (this.activeGhost) { this.unghost() } b.stopEvent(); this[this.closeAction]() }, beforeDestroy:function () { if (this.rendered) { this.hide(); this.clearAnchor(); Ext.destroy(this.focusEl, this.resizer, this.dd, this.proxy, this.mask) } Ext.Window.superclass.beforeDestroy.call(this) }, onDestroy:function () { if (this.manager) { this.manager.unregister(this) } Ext.Window.superclass.onDestroy.call(this) }, initTools:function () { if (this.minimizable) { this.addTool({id:"minimize", handler:this.minimize.createDelegate(this, [])}) } if (this.maximizable) { this.addTool({id:"maximize", handler:this.maximize.createDelegate(this, [])}); this.addTool({id:"restore", handler:this.restore.createDelegate(this, []), hidden:true}) } if (this.closable) { this.addTool({id:"close", handler:this[this.closeAction].createDelegate(this, [])}) } }, resizerAction:function () { var a = this.proxy.getBox(); this.proxy.hide(); this.window.handleResize(a); return a }, beforeResize:function () { this.resizer.minHeight = Math.max(this.minHeight, this.getFrameHeight() + 40); this.resizer.minWidth = Math.max(this.minWidth, this.getFrameWidth() + 40); this.resizeBox = this.el.getBox() }, updateHandles:function () { if (Ext.isIE && this.resizer) { this.resizer.syncHandleHeight(); this.el.repaint() } }, handleResize:function (b) { var a = this.resizeBox; if (a.x != b.x || a.y != b.y) { this.updateBox(b) } else { this.setSize(b); if (Ext.isIE6 && Ext.isStrict) { this.doLayout() } } this.focus(); this.updateHandles(); this.saveState() }, focus:function () { var e = this.focusEl, a = this.defaultButton, c = typeof a, d, b; if (Ext.isDefined(a)) { if (Ext.isNumber(a) && this.fbar) { e = this.fbar.items.get(a) } else { if (Ext.isString(a)) { e = Ext.getCmp(a) } else { e = a } } d = e.getEl(); b = Ext.getDom(this.container); if (d && b) { if (b != document.body && !Ext.lib.Region.getRegion(b).contains(Ext.lib.Region.getRegion(d.dom))) { return } } } e = e || this.focusEl; e.focus.defer(10, e) }, setAnimateTarget:function (a) { a = Ext.get(a); this.animateTarget = a }, beforeShow:function () { delete this.el.lastXY; delete this.el.lastLT; if (this.x === undefined || this.y === undefined) { var a = this.el.getAlignToXY(this.container, "c-c"); var b = this.el.translatePoints(a[0], a[1]); this.x = this.x === undefined ? b.left : this.x; this.y = this.y === undefined ? b.top : this.y } this.el.setLeftTop(this.x, this.y); if (this.expandOnShow) { this.expand(false) } if (this.modal) { Ext.getBody().addClass("x-body-masked"); this.mask.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true)); this.mask.show() } }, show:function (c, a, b) { if (!this.rendered) { this.render(Ext.getBody()) } if (this.hidden === false) { this.toFront(); return this } if (this.fireEvent("beforeshow", this) === false) { return this } if (a) { this.on("show", a, b, {single:true}) } this.hidden = false; if (Ext.isDefined(c)) { this.setAnimateTarget(c) } this.beforeShow(); if (this.animateTarget) { this.animShow() } else { this.afterShow() } return this }, afterShow:function (b) { if (this.isDestroyed) { return false } this.proxy.hide(); this.el.setStyle("display", "block"); this.el.show(); if (this.maximized) { this.fitContainer() } if (Ext.isMac && Ext.isGecko2) { this.cascade(this.setAutoScroll) } if (this.monitorResize || this.modal || this.constrain || this.constrainHeader) { Ext.EventManager.onWindowResize(this.onWindowResize, this) } this.doConstrain(); this.doLayout(); if (this.keyMap) { this.keyMap.enable() } this.toFront(); this.updateHandles(); if (b && (Ext.isIE || Ext.isWebKit)) { var a = this.getSize(); this.onResize(a.width, a.height) } this.onShow(); this.fireEvent("show", this) }, animShow:function () { this.proxy.show(); this.proxy.setBox(this.animateTarget.getBox()); this.proxy.setOpacity(0); var a = this.getBox(); this.el.setStyle("display", "none"); this.proxy.shift(Ext.apply(a, {callback:this.afterShow.createDelegate(this, [true], false), scope:this, easing:"easeNone", duration:this.showAnimDuration, opacity:0.5})) }, hide:function (c, a, b) { if (this.hidden || this.fireEvent("beforehide", this) === false) { return this } if (a) { this.on("hide", a, b, {single:true}) } this.hidden = true; if (c !== undefined) { this.setAnimateTarget(c) } if (this.modal) { this.mask.hide(); Ext.getBody().removeClass("x-body-masked") } if (this.animateTarget) { this.animHide() } else { this.el.hide(); this.afterHide() } return this }, afterHide:function () { this.proxy.hide(); if (this.monitorResize || this.modal || this.constrain || this.constrainHeader) { Ext.EventManager.removeResizeListener(this.onWindowResize, this) } if (this.keyMap) { this.keyMap.disable() } this.onHide(); this.fireEvent("hide", this) }, animHide:function () { this.proxy.setOpacity(0.5); this.proxy.show(); var a = this.getBox(false); this.proxy.setBox(a); this.el.hide(); this.proxy.shift(Ext.apply(this.animateTarget.getBox(), {callback:this.afterHide, scope:this, duration:this.hideAnimDuration, easing:"easeNone", opacity:0})) }, onShow:Ext.emptyFn, onHide:Ext.emptyFn, onWindowResize:function () { if (this.maximized) { this.fitContainer() } if (this.modal) { this.mask.setSize("100%", "100%"); var a = this.mask.dom.offsetHeight; this.mask.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true)) } this.doConstrain() }, doConstrain:function () { if (this.constrain || this.constrainHeader) { var b; if (this.constrain) { b = {right:this.el.shadowOffset, left:this.el.shadowOffset, bottom:this.el.shadowOffset} } else { var a = this.getSize(); b = {right:-(a.width - 100), bottom:-(a.height - 25 + this.el.getConstrainOffset())} } var c = this.el.getConstrainToXY(this.container, true, b); if (c) { this.setPosition(c[0], c[1]) } } }, ghost:function (a) { var c = this.createGhost(a); var b = this.getBox(true); c.setLeftTop(b.x, b.y); c.setWidth(b.width); this.el.hide(); this.activeGhost = c; return c }, unghost:function (b, a) { if (!this.activeGhost) { return } if (b !== false) { this.el.show(); this.focus.defer(10, this); if (Ext.isMac && Ext.isGecko2) { this.cascade(this.setAutoScroll) } } if (a !== false) { this.setPosition(this.activeGhost.getLeft(true), this.activeGhost.getTop(true)) } this.activeGhost.hide(); this.activeGhost.remove(); delete this.activeGhost }, minimize:function () { this.fireEvent("minimize", this); return this }, close:function () { if (this.fireEvent("beforeclose", this) !== false) { if (this.hidden) { this.doClose() } else { this.hide(null, this.doClose, this) } } }, doClose:function () { this.fireEvent("close", this); this.destroy() }, maximize:function () { if (!this.maximized) { this.expand(false); this.restoreSize = this.getSize(); this.restorePos = this.getPosition(true); if (this.maximizable) { this.tools.maximize.hide(); this.tools.restore.show() } this.maximized = true; this.el.disableShadow(); if (this.dd) { this.dd.lock() } if (this.collapsible) { this.tools.toggle.hide() } this.el.addClass("x-window-maximized"); this.container.addClass("x-window-maximized-ct"); this.setPosition(0, 0); this.fitContainer(); this.fireEvent("maximize", this) } return this }, restore:function () { if (this.maximized) { var a = this.tools; this.el.removeClass("x-window-maximized"); if (a.restore) { a.restore.hide() } if (a.maximize) { a.maximize.show() } this.setPosition(this.restorePos[0], this.restorePos[1]); this.setSize(this.restoreSize.width, this.restoreSize.height); delete this.restorePos; delete this.restoreSize; this.maximized = false; this.el.enableShadow(true); if (this.dd) { this.dd.unlock() } if (this.collapsible && a.toggle) { a.toggle.show() } this.container.removeClass("x-window-maximized-ct"); this.doConstrain(); this.fireEvent("restore", this) } return this }, toggleMaximize:function () { return this[this.maximized ? "restore" : "maximize"]() }, fitContainer:function () { var a = this.container.getViewSize(false); this.setSize(a.width, a.height) }, setZIndex:function (a) { if (this.modal) { this.mask.setStyle("z-index", a) } this.el.setZIndex(++a); a += 5; if (this.resizer) { this.resizer.proxy.setStyle("z-index", ++a) } this.lastZIndex = a }, alignTo:function (b, a, c) { var d = this.el.getAlignToXY(b, a, c); this.setPagePosition(d[0], d[1]); return this }, anchorTo:function (c, e, d, b) { this.clearAnchor(); this.anchorTarget = {el:c, alignment:e, offsets:d}; Ext.EventManager.onWindowResize(this.doAnchor, this); var a = typeof b; if (a != "undefined") { Ext.EventManager.on(window, "scroll", this.doAnchor, this, {buffer:a == "number" ? b : 50}) } return this.doAnchor() }, doAnchor:function () { var a = this.anchorTarget; this.alignTo(a.el, a.alignment, a.offsets); return this }, clearAnchor:function () { if (this.anchorTarget) { Ext.EventManager.removeResizeListener(this.doAnchor, this); Ext.EventManager.un(window, "scroll", this.doAnchor, this); delete this.anchorTarget } return this }, toFront:function (a) { if (this.manager.bringToFront(this)) { if (!a || !a.getTarget().focus) { this.focus() } } return this }, setActive:function (a) { if (a) { if (!this.maximized) { this.el.enableShadow(true) } this.fireEvent("activate", this) } else { this.el.disableShadow(); this.fireEvent("deactivate", this) } }, toBack:function () { this.manager.sendToBack(this); return this }, center:function () { var a = this.el.getAlignToXY(this.container, "c-c"); this.setPagePosition(a[0], a[1]); return this }}); Ext.reg("window", Ext.Window); Ext.Window.DD = Ext.extend(Ext.dd.DD, {constructor:function (a) { this.win = a; Ext.Window.DD.superclass.constructor.call(this, a.el.id, "WindowDD-" + a.id); this.setHandleElId(a.header.id); this.scroll = false }, moveOnly:true, headerOffsets:[100, 25], startDrag:function () { var a = this.win; this.proxy = a.ghost(a.initialConfig.cls); if (a.constrain !== false) { var c = a.el.shadowOffset; this.constrainTo(a.container, {right:c, left:c, bottom:c}) } else { if (a.constrainHeader !== false) { var b = this.proxy.getSize(); this.constrainTo(a.container, {right:-(b.width - this.headerOffsets[0]), bottom:-(b.height - this.headerOffsets[1])}) } } }, b4Drag:Ext.emptyFn, onDrag:function (a) { this.alignElWithMouse(this.proxy, a.getPageX(), a.getPageY()) }, endDrag:function (a) { this.win.unghost(); this.win.saveState() }}); Ext.WindowGroup = function () { var g = {}; var d = []; var e = null; var c = function (j, i) { return(!j._lastAccess || j._lastAccess < i._lastAccess) ? -1 : 1 }; var h = function () { var l = d, j = l.length; if (j > 0) { l.sort(c); var k = l[0].manager.zseed; for (var m = 0; m < j; m++) { var n = l[m]; if (n && !n.hidden) { n.setZIndex(k + (m * 10)) } } } a() }; var b = function (i) { if (i != e) { if (e) { e.setActive(false) } e = i; if (i) { i.setActive(true) } } }; var a = function () { for (var j = d.length - 1; j >= 0; --j) { if (!d[j].hidden) { b(d[j]); return } } b(null) }; return{zseed:9000, register:function (i) { if (i.manager) { i.manager.unregister(i) } i.manager = this; g[i.id] = i; d.push(i); i.on("hide", a) }, unregister:function (i) { delete i.manager; delete g[i.id]; i.un("hide", a); d.remove(i) }, get:function (i) { return typeof i == "object" ? i : g[i] }, bringToFront:function (i) { i = this.get(i); if (i != e) { i._lastAccess = new Date().getTime(); h(); return true } return false }, sendToBack:function (i) { i = this.get(i); i._lastAccess = -(new Date().getTime()); h(); return i }, hideAll:function () { for (var i in g) { if (g[i] && typeof g[i] != "function" && g[i].isVisible()) { g[i].hide() } } }, getActive:function () { return e }, getBy:function (l, k) { var m = []; for (var j = d.length - 1; j >= 0; --j) { var n = d[j]; if (l.call(k || n, n) !== false) { m.push(n) } } return m }, each:function (j, i) { for (var k in g) { if (g[k] && typeof g[k] != "function") { if (j.call(i || g[k], g[k]) === false) { return } } } }} }; Ext.WindowMgr = new Ext.WindowGroup(); Ext.MessageBox = function () { var u, b, q, t, h, l, s, a, n, p, j, g, r, v, o, i = "", d = "", m = ["ok", "yes", "no", "cancel"]; var c = function (x) { r[x].blur(); if (u.isVisible()) { u.hide(); w(); Ext.callback(b.fn, b.scope || window, [x, v.dom.value, b], 1) } }; var w = function () { if (b && b.cls) { u.el.removeClass(b.cls) } n.reset() }; var e = function (z, x, y) { if (b && b.closable !== false) { u.hide(); w() } if (y) { y.stopEvent() } }; var k = function (x) { var z = 0, y; if (!x) { Ext.each(m, function (A) { r[A].hide() }); return z } u.footer.dom.style.display = ""; Ext.iterate(r, function (A, B) { y = x[A]; if (y) { B.show(); B.setText(Ext.isString(y) ? y : Ext.MessageBox.buttonText[A]); z += B.getEl().getWidth() + 15 } else { B.hide() } }); return z }; return{getDialog:function (x) { if (!u) { var z = []; r = {}; Ext.each(m, function (A) { z.push(r[A] = new Ext.Button({text:this.buttonText[A], handler:c.createCallback(A), hideMode:"offsets"})) }, this); u = new Ext.Window({autoCreate:true, title:x, resizable:false, constrain:true, constrainHeader:true, minimizable:false, maximizable:false, stateful:false, modal:true, shim:true, buttonAlign:"center", width:400, height:100, minHeight:80, plain:true, footer:true, closable:true, close:function () { if (b && b.buttons && b.buttons.no && !b.buttons.cancel) { c("no") } else { c("cancel") } }, fbar:new Ext.Toolbar({items:z, enableOverflow:false})}); u.render(document.body); u.getEl().addClass("x-window-dlg"); q = u.mask; h = u.body.createChild({html:'

    '}); j = Ext.get(h.dom.firstChild); var y = h.dom.childNodes[1]; l = Ext.get(y.firstChild); s = Ext.get(y.childNodes[2].firstChild); s.enableDisplayMode(); s.addKeyListener([10, 13], function () { if (u.isVisible() && b && b.buttons) { if (b.buttons.ok) { c("ok") } else { if (b.buttons.yes) { c("yes") } } } }); a = Ext.get(y.childNodes[2].childNodes[1]); a.enableDisplayMode(); n = new Ext.ProgressBar({renderTo:h}); h.createChild({cls:"x-clear"}) } return u }, updateText:function (A) { if (!u.isVisible() && !b.width) { u.setSize(this.maxWidth, 100) } l.update(A ? A + " " : " "); var y = d != "" ? (j.getWidth() + j.getMargins("lr")) : 0, C = l.getWidth() + l.getMargins("lr"), z = u.getFrameWidth("lr"), B = u.body.getFrameWidth("lr"), x; x = Math.max(Math.min(b.width || y + C + z + B, b.maxWidth || this.maxWidth), Math.max(b.minWidth || this.minWidth, o || 0)); if (b.prompt === true) { v.setWidth(x - y - z - B) } if (b.progress === true || b.wait === true) { n.setSize(x - y - z - B) } if (Ext.isIE && x == o) { x += 4 } l.update(A || " "); u.setSize(x, "auto").center(); return this }, updateProgress:function (y, x, z) { n.updateProgress(y, x); if (z) { this.updateText(z) } return this }, isVisible:function () { return u && u.isVisible() }, hide:function () { var x = u ? u.activeGhost : null; if (this.isVisible() || x) { u.hide(); w(); if (x) { u.unghost(false, false) } } return this }, show:function (A) { if (this.isVisible()) { this.hide() } b = A; var B = this.getDialog(b.title || " "); B.setTitle(b.title || " "); var x = (b.closable !== false && b.progress !== true && b.wait !== true); B.tools.close.setDisplayed(x); v = s; b.prompt = b.prompt || (b.multiline ? true : false); if (b.prompt) { if (b.multiline) { s.hide(); a.show(); a.setHeight(Ext.isNumber(b.multiline) ? b.multiline : this.defaultTextHeight); v = a } else { s.show(); a.hide() } } else { s.hide(); a.hide() } v.dom.value = b.value || ""; if (b.prompt) { B.focusEl = v } else { var z = b.buttons; var y = null; if (z && z.ok) { y = r.ok } else { if (z && z.yes) { y = r.yes } } if (y) { B.focusEl = y } } if (Ext.isDefined(b.iconCls)) { B.setIconClass(b.iconCls) } this.setIcon(Ext.isDefined(b.icon) ? b.icon : i); o = k(b.buttons); n.setVisible(b.progress === true || b.wait === true); this.updateProgress(0, b.progressText); this.updateText(b.msg); if (b.cls) { B.el.addClass(b.cls) } B.proxyDrag = b.proxyDrag === true; B.modal = b.modal !== false; B.mask = b.modal !== false ? q : false; if (!B.isVisible()) { document.body.appendChild(u.el.dom); B.setAnimateTarget(b.animEl); B.on("show", function () { if (x === true) { B.keyMap.enable() } else { B.keyMap.disable() } }, this, {single:true}); B.show(b.animEl) } if (b.wait === true) { n.wait(b.waitConfig) } return this }, setIcon:function (x) { if (!u) { i = x; return } i = undefined; if (x && x != "") { j.removeClass("x-hidden"); j.replaceClass(d, x); h.addClass("x-dlg-icon"); d = x } else { j.replaceClass(d, "x-hidden"); h.removeClass("x-dlg-icon"); d = "" } return this }, progress:function (z, y, x) { this.show({title:z, msg:y, buttons:false, progress:true, closable:false, minWidth:this.minProgressWidth, progressText:x}); return this }, wait:function (z, y, x) { this.show({title:y, msg:z, buttons:false, closable:false, wait:true, modal:true, minWidth:this.minProgressWidth, waitConfig:x}); return this }, alert:function (A, z, y, x) { this.show({title:A, msg:z, buttons:this.OK, fn:y, scope:x, minWidth:this.minWidth}); return this }, confirm:function (A, z, y, x) { this.show({title:A, msg:z, buttons:this.YESNO, fn:y, scope:x, icon:this.QUESTION, minWidth:this.minWidth}); return this }, prompt:function (C, B, z, y, x, A) { this.show({title:C, msg:B, buttons:this.OKCANCEL, fn:z, minWidth:this.minPromptWidth, scope:y, prompt:true, multiline:x, value:A}); return this }, OK:{ok:true}, CANCEL:{cancel:true}, OKCANCEL:{ok:true, cancel:true}, YESNO:{yes:true, no:true}, YESNOCANCEL:{yes:true, no:true, cancel:true}, INFO:"ext-mb-info", WARNING:"ext-mb-warning", QUESTION:"ext-mb-question", ERROR:"ext-mb-error", defaultTextHeight:75, maxWidth:600, minWidth:100, minProgressWidth:250, minPromptWidth:250, buttonText:{ok:"OK", cancel:"Cancel", yes:"Yes", no:"No"}} }(); Ext.Msg = Ext.MessageBox; Ext.dd.PanelProxy = Ext.extend(Object, {constructor:function (a, b) { this.panel = a; this.id = this.panel.id + "-ddproxy"; Ext.apply(this, b) }, insertProxy:true, setStatus:Ext.emptyFn, reset:Ext.emptyFn, update:Ext.emptyFn, stop:Ext.emptyFn, sync:Ext.emptyFn, getEl:function () { return this.ghost }, getGhost:function () { return this.ghost }, getProxy:function () { return this.proxy }, hide:function () { if (this.ghost) { if (this.proxy) { this.proxy.remove(); delete this.proxy } this.panel.el.dom.style.display = ""; this.ghost.remove(); delete this.ghost } }, show:function () { if (!this.ghost) { this.ghost = this.panel.createGhost(this.panel.initialConfig.cls, undefined, Ext.getBody()); this.ghost.setXY(this.panel.el.getXY()); if (this.insertProxy) { this.proxy = this.panel.el.insertSibling({cls:"x-panel-dd-spacer"}); this.proxy.setSize(this.panel.getSize()) } this.panel.el.dom.style.display = "none" } }, repair:function (b, c, a) { this.hide(); if (typeof c == "function") { c.call(a || this) } }, moveProxy:function (a, b) { if (this.proxy) { a.insertBefore(this.proxy.dom, b) } }}); Ext.Panel.DD = Ext.extend(Ext.dd.DragSource, {constructor:function (b, a) { this.panel = b; this.dragData = {panel:b}; this.proxy = new Ext.dd.PanelProxy(b, a); Ext.Panel.DD.superclass.constructor.call(this, b.el, a); var d = b.header, c = b.body; if (d) { this.setHandleElId(d.id); c = b.header } c.setStyle("cursor", "move"); this.scroll = false }, showFrame:Ext.emptyFn, startDrag:Ext.emptyFn, b4StartDrag:function (a, b) { this.proxy.show() }, b4MouseDown:function (b) { var a = b.getPageX(), c = b.getPageY(); this.autoOffset(a, c) }, onInitDrag:function (a, b) { this.onStartDrag(a, b); return true }, createFrame:Ext.emptyFn, getDragEl:function (a) { return this.proxy.ghost.dom }, endDrag:function (a) { this.proxy.hide(); this.panel.saveState() }, autoOffset:function (a, b) { a -= this.startPageX; b -= this.startPageY; this.setDelta(a, b) }}); Ext.state.Provider = Ext.extend(Ext.util.Observable, {constructor:function () { this.addEvents("statechange"); this.state = {}; Ext.state.Provider.superclass.constructor.call(this) }, get:function (b, a) { return typeof this.state[b] == "undefined" ? a : this.state[b] }, clear:function (a) { delete this.state[a]; this.fireEvent("statechange", this, a, null) }, set:function (a, b) { this.state[a] = b; this.fireEvent("statechange", this, a, b) }, decodeValue:function (b) { var e = /^(a|n|d|b|s|o|e)\:(.*)$/, h = e.exec(unescape(b)), d, c, a, g; if (!h || !h[1]) { return } c = h[1]; a = h[2]; switch (c) { case"e": return null; case"n": return parseFloat(a); case"d": return new Date(Date.parse(a)); case"b": return(a == "1"); case"a": d = []; if (a != "") { Ext.each(a.split("^"), function (i) { d.push(this.decodeValue(i)) }, this) } return d; case"o": d = {}; if (a != "") { Ext.each(a.split("^"), function (i) { g = i.split("="); d[g[0]] = this.decodeValue(g[1]) }, this) } return d; default: return a } }, encodeValue:function (c) { var b, g = "", e = 0, a, d; if (c == null) { return"e:1" } else { if (typeof c == "number") { b = "n:" + c } else { if (typeof c == "boolean") { b = "b:" + (c ? "1" : "0") } else { if (Ext.isDate(c)) { b = "d:" + c.toGMTString() } else { if (Ext.isArray(c)) { for (a = c.length; e < a; e++) { g += this.encodeValue(c[e]); if (e != a - 1) { g += "^" } } b = "a:" + g } else { if (typeof c == "object") { for (d in c) { if (typeof c[d] != "function" && c[d] !== undefined) { g += d + "=" + this.encodeValue(c[d]) + "^" } } b = "o:" + g.substring(0, g.length - 1) } else { b = "s:" + c } } } } } } return escape(b) }}); Ext.state.Manager = function () { var a = new Ext.state.Provider(); return{setProvider:function (b) { a = b }, get:function (c, b) { return a.get(c, b) }, set:function (b, c) { a.set(b, c) }, clear:function (b) { a.clear(b) }, getProvider:function () { return a }} }(); Ext.state.CookieProvider = Ext.extend(Ext.state.Provider, {constructor:function (a) { Ext.state.CookieProvider.superclass.constructor.call(this); this.path = "/"; this.expires = new Date(new Date().getTime() + (1000 * 60 * 60 * 24 * 7)); this.domain = null; this.secure = false; Ext.apply(this, a); this.state = this.readCookies() }, set:function (a, b) { if (typeof b == "undefined" || b === null) { this.clear(a); return } this.setCookie(a, b); Ext.state.CookieProvider.superclass.set.call(this, a, b) }, clear:function (a) { this.clearCookie(a); Ext.state.CookieProvider.superclass.clear.call(this, a) }, readCookies:function () { var d = {}, h = document.cookie + ";", b = /\s?(.*?)=(.*?);/g, g, a, e; while ((g = b.exec(h)) != null) { a = g[1]; e = g[2]; if (a && a.substring(0, 3) == "ys-") { d[a.substr(3)] = this.decodeValue(e) } } return d }, setCookie:function (a, b) { document.cookie = "ys-" + a + "=" + this.encodeValue(b) + ((this.expires == null) ? "" : ("; expires=" + this.expires.toGMTString())) + ((this.path == null) ? "" : ("; path=" + this.path)) + ((this.domain == null) ? "" : ("; domain=" + this.domain)) + ((this.secure == true) ? "; secure" : "") }, clearCookie:function (a) { document.cookie = "ys-" + a + "=null; expires=Thu, 01-Jan-70 00:00:01 GMT" + ((this.path == null) ? "" : ("; path=" + this.path)) + ((this.domain == null) ? "" : ("; domain=" + this.domain)) + ((this.secure == true) ? "; secure" : "") }}); Ext.DataView = Ext.extend(Ext.BoxComponent, {selectedClass:"x-view-selected", emptyText:"", deferEmptyText:true, trackOver:false, blockRefresh:false, last:false, initComponent:function () { Ext.DataView.superclass.initComponent.call(this); if (Ext.isString(this.tpl) || Ext.isArray(this.tpl)) { this.tpl = new Ext.XTemplate(this.tpl) } this.addEvents("beforeclick", "click", "mouseenter", "mouseleave", "containerclick", "dblclick", "contextmenu", "containercontextmenu", "selectionchange", "beforeselect"); this.store = Ext.StoreMgr.lookup(this.store); this.all = new Ext.CompositeElementLite(); this.selected = new Ext.CompositeElementLite() }, afterRender:function () { Ext.DataView.superclass.afterRender.call(this); this.mon(this.getTemplateTarget(), {click:this.onClick, dblclick:this.onDblClick, contextmenu:this.onContextMenu, scope:this}); if (this.overClass || this.trackOver) { this.mon(this.getTemplateTarget(), {mouseover:this.onMouseOver, mouseout:this.onMouseOut, scope:this}) } if (this.store) { this.bindStore(this.store, true) } }, refresh:function () { this.clearSelections(false, true); var b = this.getTemplateTarget(), a = this.store.getRange(); b.update(""); if (a.length < 1) { if (!this.deferEmptyText || this.hasSkippedEmptyText) { b.update(this.emptyText) } this.all.clear() } else { this.tpl.overwrite(b, this.collectData(a, 0)); this.all.fill(Ext.query(this.itemSelector, b.dom)); this.updateIndexes(0) } this.hasSkippedEmptyText = true }, getTemplateTarget:function () { return this.el }, prepareData:function (a) { return a }, collectData:function (b, e) { var d = [], c = 0, a = b.length; for (; c < a; c++) { d[d.length] = this.prepareData(b[c].data, e + c, b[c]) } return d }, bufferRender:function (a, b) { var c = document.createElement("div"); this.tpl.overwrite(c, this.collectData(a, b)); return Ext.query(this.itemSelector, c) }, onUpdate:function (g, a) { var b = this.store.indexOf(a); if (b > -1) { var e = this.isSelected(b), c = this.all.elements[b], d = this.bufferRender([a], b)[0]; this.all.replaceElement(b, d, true); if (e) { this.selected.replaceElement(c, d); this.all.item(b).addClass(this.selectedClass) } this.updateIndexes(b, b) } }, onAdd:function (g, d, e) { if (this.all.getCount() === 0) { this.refresh(); return } var c = this.bufferRender(d, e), h, b = this.all.elements; if (e < this.all.getCount()) { h = this.all.item(e).insertSibling(c, "before", true); b.splice.apply(b, [e, 0].concat(c)) } else { h = this.all.last().insertSibling(c, "after", true); b.push.apply(b, c) } this.updateIndexes(e) }, onRemove:function (c, a, b) { this.deselect(b); this.all.removeElement(b, true); this.updateIndexes(b); if (this.store.getCount() === 0) { this.refresh() } }, refreshNode:function (a) { this.onUpdate(this.store, this.store.getAt(a)) }, updateIndexes:function (d, c) { var b = this.all.elements; d = d || 0; c = c || ((c === 0) ? 0 : (b.length - 1)); for (var a = d; a <= c; a++) { b[a].viewIndex = a } }, getStore:function () { return this.store }, bindStore:function (a, b) { if (!b && this.store) { if (a !== this.store && this.store.autoDestroy) { this.store.destroy() } else { this.store.un("beforeload", this.onBeforeLoad, this); this.store.un("datachanged", this.onDataChanged, this); this.store.un("add", this.onAdd, this); this.store.un("remove", this.onRemove, this); this.store.un("update", this.onUpdate, this); this.store.un("clear", this.refresh, this) } if (!a) { this.store = null } } if (a) { a = Ext.StoreMgr.lookup(a); a.on({scope:this, beforeload:this.onBeforeLoad, datachanged:this.onDataChanged, add:this.onAdd, remove:this.onRemove, update:this.onUpdate, clear:this.refresh}) } this.store = a; if (a) { this.refresh() } }, onDataChanged:function () { if (this.blockRefresh !== true) { this.refresh.apply(this, arguments) } }, findItemFromChild:function (a) { return Ext.fly(a).findParent(this.itemSelector, this.getTemplateTarget()) }, onClick:function (c) { var b = c.getTarget(this.itemSelector, this.getTemplateTarget()), a; if (b) { a = this.indexOf(b); if (this.onItemClick(b, a, c) !== false) { this.fireEvent("click", this, a, b, c) } } else { if (this.fireEvent("containerclick", this, c) !== false) { this.onContainerClick(c) } } }, onContainerClick:function (a) { this.clearSelections() }, onContextMenu:function (b) { var a = b.getTarget(this.itemSelector, this.getTemplateTarget()); if (a) { this.fireEvent("contextmenu", this, this.indexOf(a), a, b) } else { this.fireEvent("containercontextmenu", this, b) } }, onDblClick:function (b) { var a = b.getTarget(this.itemSelector, this.getTemplateTarget()); if (a) { this.fireEvent("dblclick", this, this.indexOf(a), a, b) } }, onMouseOver:function (b) { var a = b.getTarget(this.itemSelector, this.getTemplateTarget()); if (a && a !== this.lastItem) { this.lastItem = a; Ext.fly(a).addClass(this.overClass); this.fireEvent("mouseenter", this, this.indexOf(a), a, b) } }, onMouseOut:function (a) { if (this.lastItem) { if (!a.within(this.lastItem, true, true)) { Ext.fly(this.lastItem).removeClass(this.overClass); this.fireEvent("mouseleave", this, this.indexOf(this.lastItem), this.lastItem, a); delete this.lastItem } } }, onItemClick:function (b, a, c) { if (this.fireEvent("beforeclick", this, a, b, c) === false) { return false } if (this.multiSelect) { this.doMultiSelection(b, a, c); c.preventDefault() } else { if (this.singleSelect) { this.doSingleSelection(b, a, c); c.preventDefault() } } return true }, doSingleSelection:function (b, a, c) { if (c.ctrlKey && this.isSelected(a)) { this.deselect(a) } else { this.select(a, false) } }, doMultiSelection:function (c, a, d) { if (d.shiftKey && this.last !== false) { var b = this.last; this.selectRange(b, a, d.ctrlKey); this.last = b } else { if ((d.ctrlKey || this.simpleSelect) && this.isSelected(a)) { this.deselect(a) } else { this.select(a, d.ctrlKey || d.shiftKey || this.simpleSelect) } } }, getSelectionCount:function () { return this.selected.getCount() }, getSelectedNodes:function () { return this.selected.elements }, getSelectedIndexes:function () { var b = [], d = this.selected.elements, c = 0, a = d.length; for (; c < a; c++) { b.push(d[c].viewIndex) } return b }, getSelectedRecords:function () { return this.getRecords(this.selected.elements) }, getRecords:function (c) { var b = [], d = 0, a = c.length; for (; d < a; d++) { b[b.length] = this.store.getAt(c[d].viewIndex) } return b }, getRecord:function (a) { return this.store.getAt(a.viewIndex) }, clearSelections:function (a, b) { if ((this.multiSelect || this.singleSelect) && this.selected.getCount() > 0) { if (!b) { this.selected.removeClass(this.selectedClass) } this.selected.clear(); this.last = false; if (!a) { this.fireEvent("selectionchange", this, this.selected.elements) } } }, isSelected:function (a) { return this.selected.contains(this.getNode(a)) }, deselect:function (a) { if (this.isSelected(a)) { a = this.getNode(a); this.selected.removeElement(a); if (this.last == a.viewIndex) { this.last = false } Ext.fly(a).removeClass(this.selectedClass); this.fireEvent("selectionchange", this, this.selected.elements) } }, select:function (d, g, b) { if (Ext.isArray(d)) { if (!g) { this.clearSelections(true) } for (var c = 0, a = d.length; c < a; c++) { this.select(d[c], true, true) } if (!b) { this.fireEvent("selectionchange", this, this.selected.elements) } } else { var e = this.getNode(d); if (!g) { this.clearSelections(true) } if (e && !this.isSelected(e)) { if (this.fireEvent("beforeselect", this, e, this.selected.elements) !== false) { Ext.fly(e).addClass(this.selectedClass); this.selected.add(e); this.last = e.viewIndex; if (!b) { this.fireEvent("selectionchange", this, this.selected.elements) } } } } }, selectRange:function (c, a, b) { if (!b) { this.clearSelections(true) } this.select(this.getNodes(c, a), true) }, getNode:function (b) { if (Ext.isString(b)) { return document.getElementById(b) } else { if (Ext.isNumber(b)) { return this.all.elements[b] } else { if (b instanceof Ext.data.Record) { var a = this.store.indexOf(b); return this.all.elements[a] } } } return b }, getNodes:function (e, a) { var d = this.all.elements, b = [], c; e = e || 0; a = !Ext.isDefined(a) ? Math.max(d.length - 1, 0) : a; if (e <= a) { for (c = e; c <= a && d[c]; c++) { b.push(d[c]) } } else { for (c = e; c >= a && d[c]; c--) { b.push(d[c]) } } return b }, indexOf:function (a) { a = this.getNode(a); if (Ext.isNumber(a.viewIndex)) { return a.viewIndex } return this.all.indexOf(a) }, onBeforeLoad:function () { if (this.loadingText) { this.clearSelections(false, true); this.getTemplateTarget().update('
    ' + this.loadingText + "
    "); this.all.clear() } }, onDestroy:function () { this.all.clear(); this.selected.clear(); Ext.DataView.superclass.onDestroy.call(this); this.bindStore(null) }}); Ext.DataView.prototype.setStore = Ext.DataView.prototype.bindStore; Ext.reg("dataview", Ext.DataView); Ext.list.ListView = Ext.extend(Ext.DataView, {itemSelector:"dl", selectedClass:"x-list-selected", overClass:"x-list-over", scrollOffset:undefined, columnResize:true, columnSort:true, maxColumnWidth:Ext.isIE ? 99 : 100, initComponent:function () { if (this.columnResize) { this.colResizer = new Ext.list.ColumnResizer(this.colResizer); this.colResizer.init(this) } if (this.columnSort) { this.colSorter = new Ext.list.Sorter(this.columnSort); this.colSorter.init(this) } if (!this.internalTpl) { this.internalTpl = new Ext.XTemplate('
    ', '', '
    ', "{header}", "
    ", "
    ", '
    ', "
    ", '
    ', "
    ") } if (!this.tpl) { this.tpl = new Ext.XTemplate('', "
    ", '', '
    ', ' class="{cls}">', "{[values.tpl.apply(parent)]}", "
    ", "
    ", '
    ', "
    ", "
    ") } var l = this.columns, h = 0, k = 0, m = l.length, b = []; for (var g = 0; g < m; g++) { var n = l[g]; if (!n.isColumn) { n.xtype = n.xtype ? (/^lv/.test(n.xtype) ? n.xtype : "lv" + n.xtype) : "lvcolumn"; n = Ext.create(n) } if (n.width) { h += n.width * 100; if (h > this.maxColumnWidth) { n.width -= (h - this.maxColumnWidth) / 100 } k++ } b.push(n) } l = this.columns = b; if (k < m) { var d = m - k; if (h < this.maxColumnWidth) { var a = ((this.maxColumnWidth - h) / d) / 100; for (var e = 0; e < m; e++) { var n = l[e]; if (!n.width) { n.width = a } } } } Ext.list.ListView.superclass.initComponent.call(this) }, onRender:function () { this.autoEl = {cls:"x-list-wrap"}; Ext.list.ListView.superclass.onRender.apply(this, arguments); this.internalTpl.overwrite(this.el, {columns:this.columns}); this.innerBody = Ext.get(this.el.dom.childNodes[1].firstChild); this.innerHd = Ext.get(this.el.dom.firstChild.firstChild); if (this.hideHeaders) { this.el.dom.firstChild.style.display = "none" } }, getTemplateTarget:function () { return this.innerBody }, collectData:function () { var a = Ext.list.ListView.superclass.collectData.apply(this, arguments); return{columns:this.columns, rows:a} }, verifyInternalSize:function () { if (this.lastSize) { this.onResize(this.lastSize.width, this.lastSize.height) } }, onResize:function (c, e) { var b = this.innerBody.dom, g = this.innerHd.dom, d = c - Ext.num(this.scrollOffset, Ext.getScrollBarWidth()) + "px", a; if (!b) { return } a = b.parentNode; if (Ext.isNumber(c)) { if (this.reserveScrollOffset || ((a.offsetWidth - a.clientWidth) > 10)) { b.style.width = d; g.style.width = d } else { b.style.width = c + "px"; g.style.width = c + "px"; setTimeout(function () { if ((a.offsetWidth - a.clientWidth) > 10) { b.style.width = d; g.style.width = d } }, 10) } } if (Ext.isNumber(e)) { a.style.height = Math.max(0, e - g.parentNode.offsetHeight) + "px" } }, updateIndexes:function () { Ext.list.ListView.superclass.updateIndexes.apply(this, arguments); this.verifyInternalSize() }, findHeaderIndex:function (g) { g = g.dom || g; var a = g.parentNode, d = a.parentNode.childNodes, b = 0, e; for (; e = d[b]; b++) { if (e == a) { return b } } return -1 }, setHdWidths:function () { var d = this.innerHd.dom.getElementsByTagName("div"), c = 0, b = this.columns, a = b.length; for (; c < a; c++) { d[c].style.width = (b[c].width * 100) + "%" } }}); Ext.reg("listview", Ext.list.ListView); Ext.ListView = Ext.list.ListView; Ext.list.Column = Ext.extend(Object, {isColumn:true, align:"left", header:"", width:null, cls:"", constructor:function (a) { if (!a.tpl) { a.tpl = new Ext.XTemplate("{" + a.dataIndex + "}") } else { if (Ext.isString(a.tpl)) { a.tpl = new Ext.XTemplate(a.tpl) } } Ext.apply(this, a) }}); Ext.reg("lvcolumn", Ext.list.Column); Ext.list.NumberColumn = Ext.extend(Ext.list.Column, {format:"0,000.00", constructor:function (a) { a.tpl = a.tpl || new Ext.XTemplate("{" + a.dataIndex + ':number("' + (a.format || this.format) + '")}'); Ext.list.NumberColumn.superclass.constructor.call(this, a) }}); Ext.reg("lvnumbercolumn", Ext.list.NumberColumn); Ext.list.DateColumn = Ext.extend(Ext.list.Column, {format:"m/d/Y", constructor:function (a) { a.tpl = a.tpl || new Ext.XTemplate("{" + a.dataIndex + ':date("' + (a.format || this.format) + '")}'); Ext.list.DateColumn.superclass.constructor.call(this, a) }}); Ext.reg("lvdatecolumn", Ext.list.DateColumn); Ext.list.BooleanColumn = Ext.extend(Ext.list.Column, {trueText:"true", falseText:"false", undefinedText:" ", constructor:function (e) { e.tpl = e.tpl || new Ext.XTemplate("{" + e.dataIndex + ":this.format}"); var b = this.trueText, d = this.falseText, a = this.undefinedText; e.tpl.format = function (c) { if (c === undefined) { return a } if (!c || c === "false") { return d } return b }; Ext.list.DateColumn.superclass.constructor.call(this, e) }}); Ext.reg("lvbooleancolumn", Ext.list.BooleanColumn); Ext.list.ColumnResizer = Ext.extend(Ext.util.Observable, {minPct:0.05, constructor:function (a) { Ext.apply(this, a); Ext.list.ColumnResizer.superclass.constructor.call(this) }, init:function (a) { this.view = a; a.on("render", this.initEvents, this) }, initEvents:function (a) { a.mon(a.innerHd, "mousemove", this.handleHdMove, this); this.tracker = new Ext.dd.DragTracker({onBeforeStart:this.onBeforeStart.createDelegate(this), onStart:this.onStart.createDelegate(this), onDrag:this.onDrag.createDelegate(this), onEnd:this.onEnd.createDelegate(this), tolerance:3, autoStart:300}); this.tracker.initEl(a.innerHd); a.on("beforedestroy", this.tracker.destroy, this.tracker) }, handleHdMove:function (i, d) { var c = 5, b = i.getPageX(), j = i.getTarget("em", 3, true); if (j) { var h = j.getRegion(), g = j.dom.style, a = j.dom.parentNode; if (b - h.left <= c && a != a.parentNode.firstChild) { this.activeHd = Ext.get(a.previousSibling.firstChild); g.cursor = Ext.isWebKit ? "e-resize" : "col-resize" } else { if (h.right - b <= c && a != a.parentNode.lastChild.previousSibling) { this.activeHd = j; g.cursor = Ext.isWebKit ? "w-resize" : "col-resize" } else { delete this.activeHd; g.cursor = "" } } } }, onBeforeStart:function (a) { this.dragHd = this.activeHd; return !!this.dragHd }, onStart:function (g) { var d = this, b = d.view, c = d.dragHd, a = d.tracker.getXY()[0]; d.proxy = b.el.createChild({cls:"x-list-resizer"}); d.dragX = c.getX(); d.headerIndex = b.findHeaderIndex(c); d.headersDisabled = b.disableHeaders; b.disableHeaders = true; d.proxy.setHeight(b.el.getHeight()); d.proxy.setX(d.dragX); d.proxy.setWidth(a - d.dragX); this.setBoundaries() }, setBoundaries:function (j) { var k = this.view, h = this.headerIndex, c = k.innerHd.getWidth(), j = k.innerHd.getX(), b = Math.ceil(c * this.minPct), l = c - b, e = k.columns.length, d = k.innerHd.select("em", true), g = b + j, a = l + j, i; if (e == 2) { this.minX = g; this.maxX = a } else { i = d.item(h + 2); this.minX = d.item(h).getX() + b; this.maxX = i ? i.getX() - b : a; if (h == 0) { this.minX = g } else { if (h == e - 2) { this.maxX = a } } } }, onDrag:function (c) { var b = this, a = b.tracker.getXY()[0].constrain(b.minX, b.maxX); b.proxy.setWidth(a - this.dragX) }, onEnd:function (i) { var g = this.proxy.getWidth(), h = this.headerIndex, l = this.view, c = l.columns, b = l.innerHd.getWidth(), k = Math.ceil(g * l.maxColumnWidth / b) / 100, d = this.headersDisabled, m = c[h], j = c[h + 1], a = m.width + j.width; this.proxy.remove(); m.width = k; j.width = a - k; delete this.dragHd; l.setHdWidths(); l.refresh(); setTimeout(function () { l.disableHeaders = d }, 100) }}); Ext.ListView.ColumnResizer = Ext.list.ColumnResizer; Ext.list.Sorter = Ext.extend(Ext.util.Observable, {sortClasses:["sort-asc", "sort-desc"], constructor:function (a) { Ext.apply(this, a); Ext.list.Sorter.superclass.constructor.call(this) }, init:function (a) { this.view = a; a.on("render", this.initEvents, this) }, initEvents:function (a) { a.mon(a.innerHd, "click", this.onHdClick, this); a.innerHd.setStyle("cursor", "pointer"); a.mon(a.store, "datachanged", this.updateSortState, this); this.updateSortState.defer(10, this, [a.store]) }, updateSortState:function (c) { var g = c.getSortState(); if (!g) { return } this.sortState = g; var e = this.view.columns, h = -1; for (var d = 0, a = e.length; d < a; d++) { if (e[d].dataIndex == g.field) { h = d; break } } if (h != -1) { var b = g.direction; this.updateSortIcon(h, b) } }, updateSortIcon:function (b, a) { var d = this.sortClasses; var c = this.view.innerHd.select("em").removeClass(d); c.item(b).addClass(d[a == "DESC" ? 1 : 0]) }, onHdClick:function (c) { var b = c.getTarget("em", 3); if (b && !this.view.disableHeaders) { var a = this.view.findHeaderIndex(b); this.view.store.sort(this.view.columns[a].dataIndex) } }}); Ext.ListView.Sorter = Ext.list.Sorter; Ext.TabPanel = Ext.extend(Ext.Panel, {deferredRender:true, tabWidth:120, minTabWidth:30, resizeTabs:false, enableTabScroll:false, scrollIncrement:0, scrollRepeatInterval:400, scrollDuration:0.35, animScroll:true, tabPosition:"top", baseCls:"x-tab-panel", autoTabs:false, autoTabSelector:"div.x-tab", activeTab:undefined, tabMargin:2, plain:false, wheelIncrement:20, idDelimiter:"__", itemCls:"x-tab-item", elements:"body", headerAsText:false, frame:false, hideBorders:true, initComponent:function () { this.frame = false; Ext.TabPanel.superclass.initComponent.call(this); this.addEvents("beforetabchange", "tabchange", "contextmenu"); this.setLayout(new Ext.layout.CardLayout(Ext.apply({layoutOnCardChange:this.layoutOnTabChange, deferredRender:this.deferredRender}, this.layoutConfig))); if (this.tabPosition == "top") { this.elements += ",header"; this.stripTarget = "header" } else { this.elements += ",footer"; this.stripTarget = "footer" } if (!this.stack) { this.stack = Ext.TabPanel.AccessStack() } this.initItems() }, onRender:function (c, a) { Ext.TabPanel.superclass.onRender.call(this, c, a); if (this.plain) { var g = this.tabPosition == "top" ? "header" : "footer"; this[g].addClass("x-tab-panel-" + g + "-plain") } var b = this[this.stripTarget]; this.stripWrap = b.createChild({cls:"x-tab-strip-wrap", cn:{tag:"ul", cls:"x-tab-strip x-tab-strip-" + this.tabPosition}}); var e = (this.tabPosition == "bottom" ? this.stripWrap : null); b.createChild({cls:"x-tab-strip-spacer"}, e); this.strip = new Ext.Element(this.stripWrap.dom.firstChild); this.edge = this.strip.createChild({tag:"li", cls:"x-tab-edge", cn:[ {tag:"span", cls:"x-tab-strip-text", cn:" "} ]}); this.strip.createChild({cls:"x-clear"}); this.body.addClass("x-tab-panel-body-" + this.tabPosition); if (!this.itemTpl) { var d = new Ext.Template('
  • ', '', '{text}', "
  • "); d.disableFormats = true; d.compile(); Ext.TabPanel.prototype.itemTpl = d } this.items.each(this.initTab, this) }, afterRender:function () { Ext.TabPanel.superclass.afterRender.call(this); if (this.autoTabs) { this.readTabs(false) } if (this.activeTab !== undefined) { var a = Ext.isObject(this.activeTab) ? this.activeTab : this.items.get(this.activeTab); delete this.activeTab; this.setActiveTab(a) } }, initEvents:function () { Ext.TabPanel.superclass.initEvents.call(this); this.mon(this.strip, {scope:this, mousedown:this.onStripMouseDown, contextmenu:this.onStripContextMenu}); if (this.enableTabScroll) { this.mon(this.strip, "mousewheel", this.onWheel, this) } }, findTargets:function (c) { var b = null, a = c.getTarget("li:not(.x-tab-edge)", this.strip); if (a) { b = this.getComponent(a.id.split(this.idDelimiter)[1]); if (b.disabled) { return{close:null, item:null, el:null} } } return{close:c.getTarget(".x-tab-strip-close", this.strip), item:b, el:a} }, onStripMouseDown:function (b) { if (b.button !== 0) { return } b.preventDefault(); var a = this.findTargets(b); if (a.close) { if (a.item.fireEvent("beforeclose", a.item) !== false) { a.item.fireEvent("close", a.item); this.remove(a.item) } return } if (a.item && a.item != this.activeTab) { this.setActiveTab(a.item) } }, onStripContextMenu:function (b) { b.preventDefault(); var a = this.findTargets(b); if (a.item) { this.fireEvent("contextmenu", this, a.item, b) } }, readTabs:function (d) { if (d === true) { this.items.each(function (h) { this.remove(h) }, this) } var c = this.el.query(this.autoTabSelector); for (var b = 0, a = c.length; b < a; b++) { var e = c[b], g = e.getAttribute("title"); e.removeAttribute("title"); this.add({title:g, contentEl:e}) } }, initTab:function (d, b) { var e = this.strip.dom.childNodes[b], g = this.getTemplateArgs(d), c = e ? this.itemTpl.insertBefore(e, g) : this.itemTpl.append(this.strip, g), a = "x-tab-strip-over", h = Ext.get(c); h.hover(function () { if (!d.disabled) { h.addClass(a) } }, function () { h.removeClass(a) }); if (d.tabTip) { h.child("span.x-tab-strip-text", true).qtip = d.tabTip } d.tabEl = c; h.select("a").on("click", function (i) { if (!i.getPageX()) { this.onStripMouseDown(i) } }, this, {preventDefault:true}); d.on({scope:this, disable:this.onItemDisabled, enable:this.onItemEnabled, titlechange:this.onItemTitleChanged, iconchange:this.onItemIconChanged, beforeshow:this.onBeforeShowItem}) }, getTemplateArgs:function (b) { var a = b.closable ? "x-tab-strip-closable" : ""; if (b.disabled) { a += " x-item-disabled" } if (b.iconCls) { a += " x-tab-with-icon" } if (b.tabCls) { a += " " + b.tabCls } return{id:this.id + this.idDelimiter + b.getItemId(), text:b.title, cls:a, iconCls:b.iconCls || ""} }, onAdd:function (b) { Ext.TabPanel.superclass.onAdd.call(this, b); if (this.rendered) { var a = this.items; this.initTab(b, a.indexOf(b)); this.delegateUpdates() } }, onBeforeAdd:function (b) { var a = b.events ? (this.items.containsKey(b.getItemId()) ? b : null) : this.items.get(b); if (a) { this.setActiveTab(b); return false } Ext.TabPanel.superclass.onBeforeAdd.apply(this, arguments); var c = b.elements; b.elements = c ? c.replace(",header", "") : c; b.border = (b.border === true) }, onRemove:function (d) { var b = Ext.get(d.tabEl); if (b) { b.select("a").removeAllListeners(); Ext.destroy(b) } Ext.TabPanel.superclass.onRemove.call(this, d); this.stack.remove(d); delete d.tabEl; d.un("disable", this.onItemDisabled, this); d.un("enable", this.onItemEnabled, this); d.un("titlechange", this.onItemTitleChanged, this); d.un("iconchange", this.onItemIconChanged, this); d.un("beforeshow", this.onBeforeShowItem, this); if (d == this.activeTab) { var a = this.stack.next(); if (a) { this.setActiveTab(a) } else { if (this.items.getCount() > 0) { this.setActiveTab(0) } else { this.setActiveTab(null) } } } if (!this.destroying) { this.delegateUpdates() } }, onBeforeShowItem:function (a) { if (a != this.activeTab) { this.setActiveTab(a); return false } }, onItemDisabled:function (b) { var a = this.getTabEl(b); if (a) { Ext.fly(a).addClass("x-item-disabled") } this.stack.remove(b) }, onItemEnabled:function (b) { var a = this.getTabEl(b); if (a) { Ext.fly(a).removeClass("x-item-disabled") } }, onItemTitleChanged:function (b) { var a = this.getTabEl(b); if (a) { Ext.fly(a).child("span.x-tab-strip-text", true).innerHTML = b.title } }, onItemIconChanged:function (d, a, c) { var b = this.getTabEl(d); if (b) { b = Ext.get(b); b.child("span.x-tab-strip-text").replaceClass(c, a); b[Ext.isEmpty(a) ? "removeClass" : "addClass"]("x-tab-with-icon") } }, getTabEl:function (a) { var b = this.getComponent(a); return b ? b.tabEl : null }, onResize:function () { Ext.TabPanel.superclass.onResize.apply(this, arguments); this.delegateUpdates() }, beginUpdate:function () { this.suspendUpdates = true }, endUpdate:function () { this.suspendUpdates = false; this.delegateUpdates() }, hideTabStripItem:function (b) { b = this.getComponent(b); var a = this.getTabEl(b); if (a) { a.style.display = "none"; this.delegateUpdates() } this.stack.remove(b) }, unhideTabStripItem:function (b) { b = this.getComponent(b); var a = this.getTabEl(b); if (a) { a.style.display = ""; this.delegateUpdates() } }, delegateUpdates:function () { var a = this.rendered; if (this.suspendUpdates) { return } if (this.resizeTabs && a) { this.autoSizeTabs() } if (this.enableTabScroll && a) { this.autoScrollTabs() } }, autoSizeTabs:function () { var h = this.items.length, b = this.tabPosition != "bottom" ? "header" : "footer", c = this[b].dom.offsetWidth, a = this[b].dom.clientWidth; if (!this.resizeTabs || h < 1 || !a) { return } var k = Math.max(Math.min(Math.floor((a - 4) / h) - this.tabMargin, this.tabWidth), this.minTabWidth); this.lastTabWidth = k; var m = this.strip.query("li:not(.x-tab-edge)"); for (var e = 0, j = m.length; e < j; e++) { var l = m[e], n = Ext.fly(l).child(".x-tab-strip-inner", true), g = l.offsetWidth, d = n.offsetWidth; n.style.width = (k - (g - d)) + "px" } }, adjustBodyWidth:function (a) { if (this.header) { this.header.setWidth(a) } if (this.footer) { this.footer.setWidth(a) } return a }, setActiveTab:function (c) { c = this.getComponent(c); if (this.fireEvent("beforetabchange", this, c, this.activeTab) === false) { return } if (!this.rendered) { this.activeTab = c; return } if (this.activeTab != c) { if (this.activeTab) { var a = this.getTabEl(this.activeTab); if (a) { Ext.fly(a).removeClass("x-tab-strip-active") } } this.activeTab = c; if (c) { var b = this.getTabEl(c); Ext.fly(b).addClass("x-tab-strip-active"); this.stack.add(c); this.layout.setActiveItem(c); this.delegateUpdates(); if (this.scrolling) { this.scrollToTab(c, this.animScroll) } } this.fireEvent("tabchange", this, c) } }, getActiveTab:function () { return this.activeTab || null }, getItem:function (a) { return this.getComponent(a) }, autoScrollTabs:function () { this.pos = this.tabPosition == "bottom" ? this.footer : this.header; var h = this.items.length, d = this.pos.dom.offsetWidth, c = this.pos.dom.clientWidth, g = this.stripWrap, e = g.dom, b = e.offsetWidth, i = this.getScrollPos(), a = this.edge.getOffsetsTo(this.stripWrap)[0] + i; if (!this.enableTabScroll || b < 20) { return } if (h == 0 || a <= c) { e.scrollLeft = 0; g.setWidth(c); if (this.scrolling) { this.scrolling = false; this.pos.removeClass("x-tab-scrolling"); this.scrollLeft.hide(); this.scrollRight.hide(); if (Ext.isAir || Ext.isWebKit) { e.style.marginLeft = ""; e.style.marginRight = "" } } } else { if (!this.scrolling) { this.pos.addClass("x-tab-scrolling"); if (Ext.isAir || Ext.isWebKit) { e.style.marginLeft = "18px"; e.style.marginRight = "18px" } } c -= g.getMargins("lr"); g.setWidth(c > 20 ? c : 20); if (!this.scrolling) { if (!this.scrollLeft) { this.createScrollers() } else { this.scrollLeft.show(); this.scrollRight.show() } } this.scrolling = true; if (i > (a - c)) { e.scrollLeft = a - c } else { this.scrollToTab(this.activeTab, false) } this.updateScrollButtons() } }, createScrollers:function () { this.pos.addClass("x-tab-scrolling-" + this.tabPosition); var c = this.stripWrap.dom.offsetHeight; var a = this.pos.insertFirst({cls:"x-tab-scroller-left"}); a.setHeight(c); a.addClassOnOver("x-tab-scroller-left-over"); this.leftRepeater = new Ext.util.ClickRepeater(a, {interval:this.scrollRepeatInterval, handler:this.onScrollLeft, scope:this}); this.scrollLeft = a; var b = this.pos.insertFirst({cls:"x-tab-scroller-right"}); b.setHeight(c); b.addClassOnOver("x-tab-scroller-right-over"); this.rightRepeater = new Ext.util.ClickRepeater(b, {interval:this.scrollRepeatInterval, handler:this.onScrollRight, scope:this}); this.scrollRight = b }, getScrollWidth:function () { return this.edge.getOffsetsTo(this.stripWrap)[0] + this.getScrollPos() }, getScrollPos:function () { return parseInt(this.stripWrap.dom.scrollLeft, 10) || 0 }, getScrollArea:function () { return parseInt(this.stripWrap.dom.clientWidth, 10) || 0 }, getScrollAnim:function () { return{duration:this.scrollDuration, callback:this.updateScrollButtons, scope:this} }, getScrollIncrement:function () { return this.scrollIncrement || (this.resizeTabs ? this.lastTabWidth + 2 : 100) }, scrollToTab:function (e, a) { if (!e) { return } var c = this.getTabEl(e), h = this.getScrollPos(), d = this.getScrollArea(), g = Ext.fly(c).getOffsetsTo(this.stripWrap)[0] + h, b = g + c.offsetWidth; if (g < h) { this.scrollTo(g, a) } else { if (b > (h + d)) { this.scrollTo(b - d, a) } } }, scrollTo:function (b, a) { this.stripWrap.scrollTo("left", b, a ? this.getScrollAnim() : false); if (!a) { this.updateScrollButtons() } }, onWheel:function (g) { var h = g.getWheelDelta() * this.wheelIncrement * -1; g.stopEvent(); var i = this.getScrollPos(), c = i + h, a = this.getScrollWidth() - this.getScrollArea(); var b = Math.max(0, Math.min(a, c)); if (b != i) { this.scrollTo(b, false) } }, onScrollRight:function () { var a = this.getScrollWidth() - this.getScrollArea(), c = this.getScrollPos(), b = Math.min(a, c + this.getScrollIncrement()); if (b != c) { this.scrollTo(b, this.animScroll) } }, onScrollLeft:function () { var b = this.getScrollPos(), a = Math.max(0, b - this.getScrollIncrement()); if (a != b) { this.scrollTo(a, this.animScroll) } }, updateScrollButtons:function () { var a = this.getScrollPos(); this.scrollLeft[a === 0 ? "addClass" : "removeClass"]("x-tab-scroller-left-disabled"); this.scrollRight[a >= (this.getScrollWidth() - this.getScrollArea()) ? "addClass" : "removeClass"]("x-tab-scroller-right-disabled") }, beforeDestroy:function () { Ext.destroy(this.leftRepeater, this.rightRepeater); this.deleteMembers("strip", "edge", "scrollLeft", "scrollRight", "stripWrap"); this.activeTab = null; Ext.TabPanel.superclass.beforeDestroy.apply(this) }}); Ext.reg("tabpanel", Ext.TabPanel); Ext.TabPanel.prototype.activate = Ext.TabPanel.prototype.setActiveTab; Ext.TabPanel.AccessStack = function () { var a = []; return{add:function (b) { a.push(b); if (a.length > 10) { a.shift() } }, remove:function (e) { var d = []; for (var c = 0, b = a.length; c < b; c++) { if (a[c] != e) { d.push(a[c]) } } a = d }, next:function () { return a.pop() }} }; Ext.Button = Ext.extend(Ext.BoxComponent, {hidden:false, disabled:false, pressed:false, enableToggle:false, menuAlign:"tl-bl?", type:"button", menuClassTarget:"tr:nth(2)", clickEvent:"click", handleMouseEvents:true, tooltipType:"qtip", buttonSelector:"button:first-child", scale:"small", iconAlign:"left", arrowAlign:"right", initComponent:function () { if (this.menu) { if (Ext.isArray(this.menu)) { this.menu = {items:this.menu} } if (Ext.isObject(this.menu)) { this.menu.ownerCt = this } this.menu = Ext.menu.MenuMgr.get(this.menu); this.menu.ownerCt = undefined } Ext.Button.superclass.initComponent.call(this); this.addEvents("click", "toggle", "mouseover", "mouseout", "menushow", "menuhide", "menutriggerover", "menutriggerout"); if (Ext.isString(this.toggleGroup)) { this.enableToggle = true } }, getTemplateArgs:function () { return[this.type, "x-btn-" + this.scale + " x-btn-icon-" + this.scale + "-" + this.iconAlign, this.getMenuClass(), this.cls, this.id] }, setButtonClass:function () { if (this.useSetClass) { if (!Ext.isEmpty(this.oldCls)) { this.el.removeClass([this.oldCls, "x-btn-pressed"]) } this.oldCls = (this.iconCls || this.icon) ? (this.text ? "x-btn-text-icon" : "x-btn-icon") : "x-btn-noicon"; this.el.addClass([this.oldCls, this.pressed ? "x-btn-pressed" : null]) } }, getMenuClass:function () { return this.menu ? (this.arrowAlign != "bottom" ? "x-btn-arrow" : "x-btn-arrow-bottom") : "" }, onRender:function (c, a) { if (!this.template) { if (!Ext.Button.buttonTemplate) { Ext.Button.buttonTemplate = new Ext.Template('', '', '', '', "
      
      
      
    "); Ext.Button.buttonTemplate.compile() } this.template = Ext.Button.buttonTemplate } var b, d = this.getTemplateArgs(); if (a) { b = this.template.insertBefore(a, d, true) } else { b = this.template.append(c, d, true) } this.btnEl = b.child(this.buttonSelector); this.mon(this.btnEl, {scope:this, focus:this.onFocus, blur:this.onBlur}); this.initButtonEl(b, this.btnEl); Ext.ButtonToggleMgr.register(this) }, initButtonEl:function (b, c) { this.el = b; this.setIcon(this.icon); this.setText(this.text); this.setIconClass(this.iconCls); if (Ext.isDefined(this.tabIndex)) { c.dom.tabIndex = this.tabIndex } if (this.tooltip) { this.setTooltip(this.tooltip, true) } if (this.handleMouseEvents) { this.mon(b, {scope:this, mouseover:this.onMouseOver, mousedown:this.onMouseDown}) } if (this.menu) { this.mon(this.menu, {scope:this, show:this.onMenuShow, hide:this.onMenuHide}) } if (this.repeat) { var a = new Ext.util.ClickRepeater(b, Ext.isObject(this.repeat) ? this.repeat : {}); this.mon(a, "click", this.onRepeatClick, this) } else { this.mon(b, this.clickEvent, this.onClick, this) } }, afterRender:function () { Ext.Button.superclass.afterRender.call(this); this.useSetClass = true; this.setButtonClass(); this.doc = Ext.getDoc(); this.doAutoWidth() }, setIconClass:function (a) { this.iconCls = a; if (this.el) { this.btnEl.dom.className = ""; this.btnEl.addClass(["x-btn-text", a || ""]); this.setButtonClass() } return this }, setTooltip:function (b, a) { if (this.rendered) { if (!a) { this.clearTip() } if (Ext.isObject(b)) { Ext.QuickTips.register(Ext.apply({target:this.btnEl.id}, b)); this.tooltip = b } else { this.btnEl.dom[this.tooltipType] = b } } else { this.tooltip = b } return this }, clearTip:function () { if (Ext.isObject(this.tooltip)) { Ext.QuickTips.unregister(this.btnEl) } }, beforeDestroy:function () { if (this.rendered) { this.clearTip() } if (this.menu && this.destroyMenu !== false) { Ext.destroy(this.btnEl, this.menu) } Ext.destroy(this.repeater) }, onDestroy:function () { if (this.rendered) { this.doc.un("mouseover", this.monitorMouseOver, this); this.doc.un("mouseup", this.onMouseUp, this); delete this.doc; delete this.btnEl; Ext.ButtonToggleMgr.unregister(this) } Ext.Button.superclass.onDestroy.call(this) }, doAutoWidth:function () { if (this.autoWidth !== false && this.el && this.text && this.width === undefined) { this.el.setWidth("auto"); if (Ext.isIE7 && Ext.isStrict) { var a = this.btnEl; if (a && a.getWidth() > 20) { a.clip(); a.setWidth(Ext.util.TextMetrics.measure(a, this.text).width + a.getFrameWidth("lr")) } } if (this.minWidth) { if (this.el.getWidth() < this.minWidth) { this.el.setWidth(this.minWidth) } } } }, setHandler:function (b, a) { this.handler = b; this.scope = a; return this }, setText:function (a) { this.text = a; if (this.el) { this.btnEl.update(a || " "); this.setButtonClass() } this.doAutoWidth(); return this }, setIcon:function (a) { this.icon = a; if (this.el) { this.btnEl.setStyle("background-image", a ? "url(" + a + ")" : ""); this.setButtonClass() } return this }, getText:function () { return this.text }, toggle:function (b, a) { b = b === undefined ? !this.pressed : !!b; if (b != this.pressed) { if (this.rendered) { this.el[b ? "addClass" : "removeClass"]("x-btn-pressed") } this.pressed = b; if (!a) { this.fireEvent("toggle", this, b); if (this.toggleHandler) { this.toggleHandler.call(this.scope || this, this, b) } } } return this }, onDisable:function () { this.onDisableChange(true) }, onEnable:function () { this.onDisableChange(false) }, onDisableChange:function (a) { if (this.el) { if (!Ext.isIE6 || !this.text) { this.el[a ? "addClass" : "removeClass"](this.disabledClass) } this.el.dom.disabled = a } this.disabled = a }, showMenu:function () { if (this.rendered && this.menu) { if (this.tooltip) { Ext.QuickTips.getQuickTip().cancelShow(this.btnEl) } if (this.menu.isVisible()) { this.menu.hide() } this.menu.ownerCt = this; this.menu.show(this.el, this.menuAlign) } return this }, hideMenu:function () { if (this.hasVisibleMenu()) { this.menu.hide() } return this }, hasVisibleMenu:function () { return this.menu && this.menu.ownerCt == this && this.menu.isVisible() }, onRepeatClick:function (a, b) { this.onClick(b) }, onClick:function (a) { if (a) { a.preventDefault() } if (a.button !== 0) { return } if (!this.disabled) { this.doToggle(); if (this.menu && !this.hasVisibleMenu() && !this.ignoreNextClick) { this.showMenu() } this.fireEvent("click", this, a); if (this.handler) { this.handler.call(this.scope || this, this, a) } } }, doToggle:function () { if (this.enableToggle && (this.allowDepress !== false || !this.pressed)) { this.toggle() } }, isMenuTriggerOver:function (b, a) { return this.menu && !a }, isMenuTriggerOut:function (b, a) { return this.menu && !a }, onMouseOver:function (b) { if (!this.disabled) { var a = b.within(this.el, true); if (!a) { this.el.addClass("x-btn-over"); if (!this.monitoringMouseOver) { this.doc.on("mouseover", this.monitorMouseOver, this); this.monitoringMouseOver = true } this.fireEvent("mouseover", this, b) } if (this.isMenuTriggerOver(b, a)) { this.fireEvent("menutriggerover", this, this.menu, b) } } }, monitorMouseOver:function (a) { if (a.target != this.el.dom && !a.within(this.el)) { if (this.monitoringMouseOver) { this.doc.un("mouseover", this.monitorMouseOver, this); this.monitoringMouseOver = false } this.onMouseOut(a) } }, onMouseOut:function (b) { var a = b.within(this.el) && b.target != this.el.dom; this.el.removeClass("x-btn-over"); this.fireEvent("mouseout", this, b); if (this.isMenuTriggerOut(b, a)) { this.fireEvent("menutriggerout", this, this.menu, b) } }, focus:function () { this.btnEl.focus() }, blur:function () { this.btnEl.blur() }, onFocus:function (a) { if (!this.disabled) { this.el.addClass("x-btn-focus") } }, onBlur:function (a) { this.el.removeClass("x-btn-focus") }, getClickEl:function (b, a) { return this.el }, onMouseDown:function (a) { if (!this.disabled && a.button === 0) { this.getClickEl(a).addClass("x-btn-click"); this.doc.on("mouseup", this.onMouseUp, this) } }, onMouseUp:function (a) { if (a.button === 0) { this.getClickEl(a, true).removeClass("x-btn-click"); this.doc.un("mouseup", this.onMouseUp, this) } }, onMenuShow:function (a) { if (this.menu.ownerCt == this) { this.menu.ownerCt = this; this.ignoreNextClick = 0; this.el.addClass("x-btn-menu-active"); this.fireEvent("menushow", this, this.menu) } }, onMenuHide:function (a) { if (this.menu.ownerCt == this) { this.el.removeClass("x-btn-menu-active"); this.ignoreNextClick = this.restoreClick.defer(250, this); this.fireEvent("menuhide", this, this.menu); delete this.menu.ownerCt } }, restoreClick:function () { this.ignoreNextClick = 0 }}); Ext.reg("button", Ext.Button); Ext.ButtonToggleMgr = function () { var a = {}; function b(e, j) { if (j) { var h = a[e.toggleGroup]; for (var d = 0, c = h.length; d < c; d++) { if (h[d] != e) { h[d].toggle(false) } } } } return{register:function (c) { if (!c.toggleGroup) { return } var d = a[c.toggleGroup]; if (!d) { d = a[c.toggleGroup] = [] } d.push(c); c.on("toggle", b) }, unregister:function (c) { if (!c.toggleGroup) { return } var d = a[c.toggleGroup]; if (d) { d.remove(c); c.un("toggle", b) } }, getPressed:function (h) { var e = a[h]; if (e) { for (var d = 0, c = e.length; d < c; d++) { if (e[d].pressed === true) { return e[d] } } } return null }} }(); Ext.SplitButton = Ext.extend(Ext.Button, {arrowSelector:"em", split:true, initComponent:function () { Ext.SplitButton.superclass.initComponent.call(this); this.addEvents("arrowclick") }, onRender:function () { Ext.SplitButton.superclass.onRender.apply(this, arguments); if (this.arrowTooltip) { this.el.child(this.arrowSelector).dom[this.tooltipType] = this.arrowTooltip } }, setArrowHandler:function (b, a) { this.arrowHandler = b; this.scope = a }, getMenuClass:function () { return"x-btn-split" + (this.arrowAlign == "bottom" ? "-bottom" : "") }, isClickOnArrow:function (c) { if (this.arrowAlign != "bottom") { var b = this.el.child("em.x-btn-split"); var a = b.getRegion().right - b.getPadding("r"); return c.getPageX() > a } else { return c.getPageY() > this.btnEl.getRegion().bottom } }, onClick:function (b, a) { b.preventDefault(); if (!this.disabled) { if (this.isClickOnArrow(b)) { if (this.menu && !this.menu.isVisible() && !this.ignoreNextClick) { this.showMenu() } this.fireEvent("arrowclick", this, b); if (this.arrowHandler) { this.arrowHandler.call(this.scope || this, this, b) } } else { this.doToggle(); this.fireEvent("click", this, b); if (this.handler) { this.handler.call(this.scope || this, this, b) } } } }, isMenuTriggerOver:function (a) { return this.menu && a.target.tagName == this.arrowSelector }, isMenuTriggerOut:function (b, a) { return this.menu && b.target.tagName != this.arrowSelector }}); Ext.reg("splitbutton", Ext.SplitButton); Ext.CycleButton = Ext.extend(Ext.SplitButton, {getItemText:function (a) { if (a && this.showText === true) { var b = ""; if (this.prependText) { b += this.prependText } b += a.text; return b } return undefined }, setActiveItem:function (c, a) { if (!Ext.isObject(c)) { c = this.menu.getComponent(c) } if (c) { if (!this.rendered) { this.text = this.getItemText(c); this.iconCls = c.iconCls } else { var b = this.getItemText(c); if (b) { this.setText(b) } this.setIconClass(c.iconCls) } this.activeItem = c; if (!c.checked) { c.setChecked(true, a) } if (this.forceIcon) { this.setIconClass(this.forceIcon) } if (!a) { this.fireEvent("change", this, c) } } }, getActiveItem:function () { return this.activeItem }, initComponent:function () { this.addEvents("change"); if (this.changeHandler) { this.on("change", this.changeHandler, this.scope || this); delete this.changeHandler } this.itemCount = this.items.length; this.menu = {cls:"x-cycle-menu", items:[]}; var a = 0; Ext.each(this.items, function (c, b) { Ext.apply(c, {group:c.group || this.id, itemIndex:b, checkHandler:this.checkHandler, scope:this, checked:c.checked || false}); this.menu.items.push(c); if (c.checked) { a = b } }, this); Ext.CycleButton.superclass.initComponent.call(this); this.on("click", this.toggleSelected, this); this.setActiveItem(a, true) }, checkHandler:function (a, b) { if (b) { this.setActiveItem(a) } }, toggleSelected:function () { var a = this.menu; a.render(); if (!a.hasLayout) { a.doLayout() } var d, b; for (var c = 1; c < this.itemCount; c++) { d = (this.activeItem.itemIndex + c) % this.itemCount; b = a.items.itemAt(d); if (!b.disabled) { b.setChecked(true); break } } }}); Ext.reg("cycle", Ext.CycleButton); Ext.Toolbar = function (a) { if (Ext.isArray(a)) { a = {items:a, layout:"toolbar"} } else { a = Ext.apply({layout:"toolbar"}, a); if (a.buttons) { a.items = a.buttons } } Ext.Toolbar.superclass.constructor.call(this, a) }; (function () { var a = Ext.Toolbar; Ext.extend(a, Ext.Container, {defaultType:"button", enableOverflow:false, trackMenus:true, internalDefaults:{removeMode:"container", hideParent:true}, toolbarCls:"x-toolbar", initComponent:function () { a.superclass.initComponent.call(this); this.addEvents("overflowchange") }, onRender:function (c, b) { if (!this.el) { if (!this.autoCreate) { this.autoCreate = {cls:this.toolbarCls + " x-small-editor"} } this.el = c.createChild(Ext.apply({id:this.id}, this.autoCreate), b); Ext.Toolbar.superclass.onRender.apply(this, arguments) } }, lookupComponent:function (b) { if (Ext.isString(b)) { if (b == "-") { b = new a.Separator() } else { if (b == " ") { b = new a.Spacer() } else { if (b == "->") { b = new a.Fill() } else { b = new a.TextItem(b) } } } this.applyDefaults(b) } else { if (b.isFormField || b.render) { b = this.createComponent(b) } else { if (b.tag) { b = new a.Item({autoEl:b}) } else { if (b.tagName) { b = new a.Item({el:b}) } else { if (Ext.isObject(b)) { b = b.xtype ? this.createComponent(b) : this.constructButton(b) } } } } } return b }, applyDefaults:function (e) { if (!Ext.isString(e)) { e = Ext.Toolbar.superclass.applyDefaults.call(this, e); var b = this.internalDefaults; if (e.events) { Ext.applyIf(e.initialConfig, b); Ext.apply(e, b) } else { Ext.applyIf(e, b) } } return e }, addSeparator:function () { return this.add(new a.Separator()) }, addSpacer:function () { return this.add(new a.Spacer()) }, addFill:function () { this.add(new a.Fill()) }, addElement:function (b) { return this.addItem(new a.Item({el:b})) }, addItem:function (b) { return this.add.apply(this, arguments) }, addButton:function (c) { if (Ext.isArray(c)) { var e = []; for (var d = 0, b = c.length; d < b; d++) { e.push(this.addButton(c[d])) } return e } return this.add(this.constructButton(c)) }, addText:function (b) { return this.addItem(new a.TextItem(b)) }, addDom:function (b) { return this.add(new a.Item({autoEl:b})) }, addField:function (b) { return this.add(b) }, insertButton:function (c, g) { if (Ext.isArray(g)) { var e = []; for (var d = 0, b = g.length; d < b; d++) { e.push(this.insertButton(c + d, g[d])) } return e } return Ext.Toolbar.superclass.insert.call(this, c, g) }, trackMenu:function (c, b) { if (this.trackMenus && c.menu) { var d = b ? "mun" : "mon"; this[d](c, "menutriggerover", this.onButtonTriggerOver, this); this[d](c, "menushow", this.onButtonMenuShow, this); this[d](c, "menuhide", this.onButtonMenuHide, this) } }, constructButton:function (d) { var c = d.events ? d : this.createComponent(d, d.split ? "splitbutton" : this.defaultType); return c }, onAdd:function (b) { Ext.Toolbar.superclass.onAdd.call(this); this.trackMenu(b); if (this.disabled) { b.disable() } }, onRemove:function (b) { Ext.Toolbar.superclass.onRemove.call(this); if (b == this.activeMenuBtn) { delete this.activeMenuBtn } this.trackMenu(b, true) }, onDisable:function () { this.items.each(function (b) { if (b.disable) { b.disable() } }) }, onEnable:function () { this.items.each(function (b) { if (b.enable) { b.enable() } }) }, onButtonTriggerOver:function (b) { if (this.activeMenuBtn && this.activeMenuBtn != b) { this.activeMenuBtn.hideMenu(); b.showMenu(); this.activeMenuBtn = b } }, onButtonMenuShow:function (b) { this.activeMenuBtn = b }, onButtonMenuHide:function (b) { delete this.activeMenuBtn }}); Ext.reg("toolbar", Ext.Toolbar); a.Item = Ext.extend(Ext.BoxComponent, {hideParent:true, enable:Ext.emptyFn, disable:Ext.emptyFn, focus:Ext.emptyFn}); Ext.reg("tbitem", a.Item); a.Separator = Ext.extend(a.Item, {onRender:function (c, b) { this.el = c.createChild({tag:"span", cls:"xtb-sep"}, b) }}); Ext.reg("tbseparator", a.Separator); a.Spacer = Ext.extend(a.Item, {onRender:function (c, b) { this.el = c.createChild({tag:"div", cls:"xtb-spacer", style:this.width ? "width:" + this.width + "px" : ""}, b) }}); Ext.reg("tbspacer", a.Spacer); a.Fill = Ext.extend(a.Item, {render:Ext.emptyFn, isFill:true}); Ext.reg("tbfill", a.Fill); a.TextItem = Ext.extend(a.Item, {constructor:function (b) { a.TextItem.superclass.constructor.call(this, Ext.isString(b) ? {text:b} : b) }, onRender:function (c, b) { this.autoEl = {cls:"xtb-text", html:this.text || ""}; a.TextItem.superclass.onRender.call(this, c, b) }, setText:function (b) { if (this.rendered) { this.el.update(b) } else { this.text = b } }}); Ext.reg("tbtext", a.TextItem); a.Button = Ext.extend(Ext.Button, {}); a.SplitButton = Ext.extend(Ext.SplitButton, {}); Ext.reg("tbbutton", a.Button); Ext.reg("tbsplit", a.SplitButton) })(); Ext.ButtonGroup = Ext.extend(Ext.Panel, {baseCls:"x-btn-group", layout:"table", defaultType:"button", frame:true, internalDefaults:{removeMode:"container", hideParent:true}, initComponent:function () { this.layoutConfig = this.layoutConfig || {}; Ext.applyIf(this.layoutConfig, {columns:this.columns}); if (!this.title) { this.addClass("x-btn-group-notitle") } this.on("afterlayout", this.onAfterLayout, this); Ext.ButtonGroup.superclass.initComponent.call(this) }, applyDefaults:function (b) { b = Ext.ButtonGroup.superclass.applyDefaults.call(this, b); var a = this.internalDefaults; if (b.events) { Ext.applyIf(b.initialConfig, a); Ext.apply(b, a) } else { Ext.applyIf(b, a) } return b }, onAfterLayout:function () { var a = this.body.getFrameWidth("lr") + this.body.dom.firstChild.offsetWidth; this.body.setWidth(a); this.el.setWidth(a + this.getFrameWidth()) }}); Ext.reg("buttongroup", Ext.ButtonGroup); (function () { var a = Ext.Toolbar; Ext.PagingToolbar = Ext.extend(Ext.Toolbar, {pageSize:20, displayMsg:"Displaying {0} - {1} of {2}", emptyMsg:"No data to display", beforePageText:"Page", afterPageText:"of {0}", firstText:"First Page", prevText:"Previous Page", nextText:"Next Page", lastText:"Last Page", refreshText:"Refresh", initComponent:function () { var c = [this.first = new a.Button({tooltip:this.firstText, overflowText:this.firstText, iconCls:"x-tbar-page-first", disabled:true, handler:this.moveFirst, scope:this}), this.prev = new a.Button({tooltip:this.prevText, overflowText:this.prevText, iconCls:"x-tbar-page-prev", disabled:true, handler:this.movePrevious, scope:this}), "-", this.beforePageText, this.inputItem = new Ext.form.NumberField({cls:"x-tbar-page-number", allowDecimals:false, allowNegative:false, enableKeyEvents:true, selectOnFocus:true, submitValue:false, listeners:{scope:this, keydown:this.onPagingKeyDown, blur:this.onPagingBlur}}), this.afterTextItem = new a.TextItem({text:String.format(this.afterPageText, 1)}), "-", this.next = new a.Button({tooltip:this.nextText, overflowText:this.nextText, iconCls:"x-tbar-page-next", disabled:true, handler:this.moveNext, scope:this}), this.last = new a.Button({tooltip:this.lastText, overflowText:this.lastText, iconCls:"x-tbar-page-last", disabled:true, handler:this.moveLast, scope:this}), "-", this.refresh = new a.Button({tooltip:this.refreshText, overflowText:this.refreshText, iconCls:"x-tbar-loading", handler:this.doRefresh, scope:this})]; var b = this.items || this.buttons || []; if (this.prependButtons) { this.items = b.concat(c) } else { this.items = c.concat(b) } delete this.buttons; if (this.displayInfo) { this.items.push("->"); this.items.push(this.displayItem = new a.TextItem({})) } Ext.PagingToolbar.superclass.initComponent.call(this); this.addEvents("change", "beforechange"); this.on("afterlayout", this.onFirstLayout, this, {single:true}); this.cursor = 0; this.bindStore(this.store, true) }, onFirstLayout:function () { if (this.dsLoaded) { this.onLoad.apply(this, this.dsLoaded) } }, updateInfo:function () { if (this.displayItem) { var b = this.store.getCount(); var c = b == 0 ? this.emptyMsg : String.format(this.displayMsg, this.cursor + 1, this.cursor + b, this.store.getTotalCount()); this.displayItem.setText(c) } }, onLoad:function (b, e, j) { if (!this.rendered) { this.dsLoaded = [b, e, j]; return } var g = this.getParams(); this.cursor = (j.params && j.params[g.start]) ? j.params[g.start] : 0; var i = this.getPageData(), c = i.activePage, h = i.pages; this.afterTextItem.setText(String.format(this.afterPageText, i.pages)); this.inputItem.setValue(c); this.first.setDisabled(c == 1); this.prev.setDisabled(c == 1); this.next.setDisabled(c == h); this.last.setDisabled(c == h); this.refresh.enable(); this.updateInfo(); this.fireEvent("change", this, i) }, getPageData:function () { var b = this.store.getTotalCount(); return{total:b, activePage:Math.ceil((this.cursor + this.pageSize) / this.pageSize), pages:b < this.pageSize ? 1 : Math.ceil(b / this.pageSize)} }, changePage:function (b) { this.doLoad(((b - 1) * this.pageSize).constrain(0, this.store.getTotalCount())) }, onLoadError:function () { if (!this.rendered) { return } this.refresh.enable() }, readPage:function (e) { var b = this.inputItem.getValue(), c; if (!b || isNaN(c = parseInt(b, 10))) { this.inputItem.setValue(e.activePage); return false } return c }, onPagingFocus:function () { this.inputItem.select() }, onPagingBlur:function (b) { this.inputItem.setValue(this.getPageData().activePage) }, onPagingKeyDown:function (i, h) { var c = h.getKey(), j = this.getPageData(), g; if (c == h.RETURN) { h.stopEvent(); g = this.readPage(j); if (g !== false) { g = Math.min(Math.max(1, g), j.pages) - 1; this.doLoad(g * this.pageSize) } } else { if (c == h.HOME || c == h.END) { h.stopEvent(); g = c == h.HOME ? 1 : j.pages; i.setValue(g) } else { if (c == h.UP || c == h.PAGEUP || c == h.DOWN || c == h.PAGEDOWN) { h.stopEvent(); if ((g = this.readPage(j))) { var b = h.shiftKey ? 10 : 1; if (c == h.DOWN || c == h.PAGEDOWN) { b *= -1 } g += b; if (g >= 1 & g <= j.pages) { i.setValue(g) } } } } } }, getParams:function () { return this.paramNames || this.store.paramNames }, beforeLoad:function () { if (this.rendered && this.refresh) { this.refresh.disable() } }, doLoad:function (d) { var c = {}, b = this.getParams(); c[b.start] = d; c[b.limit] = this.pageSize; if (this.fireEvent("beforechange", this, c) !== false) { this.store.load({params:c}) } }, moveFirst:function () { this.doLoad(0) }, movePrevious:function () { this.doLoad(Math.max(0, this.cursor - this.pageSize)) }, moveNext:function () { this.doLoad(this.cursor + this.pageSize) }, moveLast:function () { var c = this.store.getTotalCount(), b = c % this.pageSize; this.doLoad(b ? (c - b) : c - this.pageSize) }, doRefresh:function () { this.doLoad(this.cursor) }, bindStore:function (c, d) { var b; if (!d && this.store) { if (c !== this.store && this.store.autoDestroy) { this.store.destroy() } else { this.store.un("beforeload", this.beforeLoad, this); this.store.un("load", this.onLoad, this); this.store.un("exception", this.onLoadError, this) } if (!c) { this.store = null } } if (c) { c = Ext.StoreMgr.lookup(c); c.on({scope:this, beforeload:this.beforeLoad, load:this.onLoad, exception:this.onLoadError}); b = true } this.store = c; if (b) { this.onLoad(c, null, {}) } }, unbind:function (b) { this.bindStore(null) }, bind:function (b) { this.bindStore(b) }, onDestroy:function () { this.bindStore(null); Ext.PagingToolbar.superclass.onDestroy.call(this) }}) })(); Ext.reg("paging", Ext.PagingToolbar); Ext.History = (function () { var e, c; var k = false; var d; function g() { var l = location.href, m = l.indexOf("#"), n = m >= 0 ? l.substr(m + 1) : null; if (Ext.isGecko) { n = decodeURIComponent(n) } return n } function a() { c.value = d } function h(l) { d = l; Ext.History.fireEvent("change", l) } function i(m) { var l = ['
    ', Ext.util.Format.htmlEncode(m), "
    "].join(""); try { var o = e.contentWindow.document; o.open(); o.write(l); o.close(); return true } catch (n) { return false } } function b() { if (!e.contentWindow || !e.contentWindow.document) { setTimeout(b, 10); return } var o = e.contentWindow.document; var m = o.getElementById("state"); var l = m ? m.innerText : null; var n = g(); setInterval(function () { o = e.contentWindow.document; m = o.getElementById("state"); var q = m ? m.innerText : null; var p = g(); if (q !== l) { l = q; h(l); location.hash = l; n = l; a() } else { if (p !== n) { n = p; i(p) } } }, 50); k = true; Ext.History.fireEvent("ready", Ext.History) } function j() { d = c.value ? c.value : g(); if (Ext.isIE) { b() } else { var l = g(); setInterval(function () { var m = g(); if (m !== l) { l = m; h(l); a() } }, 50); k = true; Ext.History.fireEvent("ready", Ext.History) } } return{fieldId:"x-history-field", iframeId:"x-history-frame", events:{}, init:function (m, l) { if (k) { Ext.callback(m, l, [this]); return } if (!Ext.isReady) { Ext.onReady(function () { Ext.History.init(m, l) }); return } c = Ext.getDom(Ext.History.fieldId); if (Ext.isIE) { e = Ext.getDom(Ext.History.iframeId) } this.addEvents("ready", "change"); if (m) { this.on("ready", m, l, {single:true}) } j() }, add:function (l, m) { if (m !== false) { if (this.getToken() == l) { return true } } if (Ext.isIE) { return i(l) } else { location.hash = l; return true } }, back:function () { history.go(-1) }, forward:function () { history.go(1) }, getToken:function () { return k ? d : g() }} })(); Ext.apply(Ext.History, new Ext.util.Observable()); Ext.Tip = Ext.extend(Ext.Panel, {minWidth:40, maxWidth:300, shadow:"sides", defaultAlign:"tl-bl?", autoRender:true, quickShowInterval:250, frame:true, hidden:true, baseCls:"x-tip", floating:{shadow:true, shim:true, useDisplay:true, constrain:false}, autoHeight:true, closeAction:"hide", initComponent:function () { Ext.Tip.superclass.initComponent.call(this); if (this.closable && !this.title) { this.elements += ",header" } }, afterRender:function () { Ext.Tip.superclass.afterRender.call(this); if (this.closable) { this.addTool({id:"close", handler:this[this.closeAction], scope:this}) } }, showAt:function (a) { Ext.Tip.superclass.show.call(this); if (this.measureWidth !== false && (!this.initialConfig || typeof this.initialConfig.width != "number")) { this.doAutoWidth() } if (this.constrainPosition) { a = this.el.adjustForConstraints(a) } this.setPagePosition(a[0], a[1]) }, doAutoWidth:function (a) { a = a || 0; var b = this.body.getTextWidth(); if (this.title) { b = Math.max(b, this.header.child("span").getTextWidth(this.title)) } b += this.getFrameWidth() + (this.closable ? 20 : 0) + this.body.getPadding("lr") + a; this.setWidth(b.constrain(this.minWidth, this.maxWidth)); if (Ext.isIE7 && !this.repainted) { this.el.repaint(); this.repainted = true } }, showBy:function (a, b) { if (!this.rendered) { this.render(Ext.getBody()) } this.showAt(this.el.getAlignToXY(a, b || this.defaultAlign)) }, initDraggable:function () { this.dd = new Ext.Tip.DD(this, typeof this.draggable == "boolean" ? null : this.draggable); this.header.addClass("x-tip-draggable") }}); Ext.reg("tip", Ext.Tip); Ext.Tip.DD = function (b, a) { Ext.apply(this, a); this.tip = b; Ext.Tip.DD.superclass.constructor.call(this, b.el.id, "WindowDD-" + b.id); this.setHandleElId(b.header.id); this.scroll = false }; Ext.extend(Ext.Tip.DD, Ext.dd.DD, {moveOnly:true, scroll:false, headerOffsets:[100, 25], startDrag:function () { this.tip.el.disableShadow() }, endDrag:function (a) { this.tip.el.enableShadow(true) }}); Ext.ToolTip = Ext.extend(Ext.Tip, {showDelay:500, hideDelay:200, dismissDelay:5000, trackMouse:false, anchorToTarget:true, anchorOffset:0, targetCounter:0, constrainPosition:false, initComponent:function () { Ext.ToolTip.superclass.initComponent.call(this); this.lastActive = new Date(); this.initTarget(this.target); this.origAnchor = this.anchor }, onRender:function (b, a) { Ext.ToolTip.superclass.onRender.call(this, b, a); this.anchorCls = "x-tip-anchor-" + this.getAnchorPosition(); this.anchorEl = this.el.createChild({cls:"x-tip-anchor " + this.anchorCls}) }, afterRender:function () { Ext.ToolTip.superclass.afterRender.call(this); this.anchorEl.setStyle("z-index", this.el.getZIndex() + 1).setVisibilityMode(Ext.Element.DISPLAY) }, initTarget:function (c) { var a; if ((a = Ext.get(c))) { if (this.target) { var b = Ext.get(this.target); this.mun(b, "mouseover", this.onTargetOver, this); this.mun(b, "mouseout", this.onTargetOut, this); this.mun(b, "mousemove", this.onMouseMove, this) } this.mon(a, {mouseover:this.onTargetOver, mouseout:this.onTargetOut, mousemove:this.onMouseMove, scope:this}); this.target = a } if (this.anchor) { this.anchorTarget = this.target } }, onMouseMove:function (b) { var a = this.delegate ? b.getTarget(this.delegate) : this.triggerElement = true; if (a) { this.targetXY = b.getXY(); if (a === this.triggerElement) { if (!this.hidden && this.trackMouse) { this.setPagePosition(this.getTargetXY()) } } else { this.hide(); this.lastActive = new Date(0); this.onTargetOver(b) } } else { if (!this.closable && this.isVisible()) { this.hide() } } }, getTargetXY:function () { if (this.delegate) { this.anchorTarget = this.triggerElement } if (this.anchor) { this.targetCounter++; var c = this.getOffsets(), l = (this.anchorToTarget && !this.trackMouse) ? this.el.getAlignToXY(this.anchorTarget, this.getAnchorAlign()) : this.targetXY, a = Ext.lib.Dom.getViewWidth() - 5, h = Ext.lib.Dom.getViewHeight() - 5, i = document.documentElement, e = document.body, k = (i.scrollLeft || e.scrollLeft || 0) + 5, j = (i.scrollTop || e.scrollTop || 0) + 5, b = [l[0] + c[0], l[1] + c[1]], g = this.getSize(); this.anchorEl.removeClass(this.anchorCls); if (this.targetCounter < 2) { if (b[0] < k) { if (this.anchorToTarget) { this.defaultAlign = "l-r"; if (this.mouseOffset) { this.mouseOffset[0] *= -1 } } this.anchor = "left"; return this.getTargetXY() } if (b[0] + g.width > a) { if (this.anchorToTarget) { this.defaultAlign = "r-l"; if (this.mouseOffset) { this.mouseOffset[0] *= -1 } } this.anchor = "right"; return this.getTargetXY() } if (b[1] < j) { if (this.anchorToTarget) { this.defaultAlign = "t-b"; if (this.mouseOffset) { this.mouseOffset[1] *= -1 } } this.anchor = "top"; return this.getTargetXY() } if (b[1] + g.height > h) { if (this.anchorToTarget) { this.defaultAlign = "b-t"; if (this.mouseOffset) { this.mouseOffset[1] *= -1 } } this.anchor = "bottom"; return this.getTargetXY() } } this.anchorCls = "x-tip-anchor-" + this.getAnchorPosition(); this.anchorEl.addClass(this.anchorCls); this.targetCounter = 0; return b } else { var d = this.getMouseOffset(); return[this.targetXY[0] + d[0], this.targetXY[1] + d[1]] } }, getMouseOffset:function () { var a = this.anchor ? [0, 0] : [15, 18]; if (this.mouseOffset) { a[0] += this.mouseOffset[0]; a[1] += this.mouseOffset[1] } return a }, getAnchorPosition:function () { if (this.anchor) { this.tipAnchor = this.anchor.charAt(0) } else { var a = this.defaultAlign.match(/^([a-z]+)-([a-z]+)(\?)?$/); if (!a) { throw"AnchorTip.defaultAlign is invalid" } this.tipAnchor = a[1].charAt(0) } switch (this.tipAnchor) { case"t": return"top"; case"b": return"bottom"; case"r": return"right" } return"left" }, getAnchorAlign:function () { switch (this.anchor) { case"top": return"tl-bl"; case"left": return"tl-tr"; case"right": return"tr-tl"; default: return"bl-tl" } }, getOffsets:function () { var b, a = this.getAnchorPosition().charAt(0); if (this.anchorToTarget && !this.trackMouse) { switch (a) { case"t": b = [0, 9]; break; case"b": b = [0, -13]; break; case"r": b = [-13, 0]; break; default: b = [9, 0]; break } } else { switch (a) { case"t": b = [-15 - this.anchorOffset, 30]; break; case"b": b = [-19 - this.anchorOffset, -13 - this.el.dom.offsetHeight]; break; case"r": b = [-15 - this.el.dom.offsetWidth, -13 - this.anchorOffset]; break; default: b = [25, -13 - this.anchorOffset]; break } } var c = this.getMouseOffset(); b[0] += c[0]; b[1] += c[1]; return b }, onTargetOver:function (b) { if (this.disabled || b.within(this.target.dom, true)) { return } var a = b.getTarget(this.delegate); if (a) { this.triggerElement = a; this.clearTimer("hide"); this.targetXY = b.getXY(); this.delayShow() } }, delayShow:function () { if (this.hidden && !this.showTimer) { if (this.lastActive.getElapsed() < this.quickShowInterval) { this.show() } else { this.showTimer = this.show.defer(this.showDelay, this) } } else { if (!this.hidden && this.autoHide !== false) { this.show() } } }, onTargetOut:function (a) { if (this.disabled || a.within(this.target.dom, true)) { return } this.clearTimer("show"); if (this.autoHide !== false) { this.delayHide() } }, delayHide:function () { if (!this.hidden && !this.hideTimer) { this.hideTimer = this.hide.defer(this.hideDelay, this) } }, hide:function () { this.clearTimer("dismiss"); this.lastActive = new Date(); if (this.anchorEl) { this.anchorEl.hide() } Ext.ToolTip.superclass.hide.call(this); delete this.triggerElement }, show:function () { if (this.anchor) { this.showAt([-1000, -1000]); this.origConstrainPosition = this.constrainPosition; this.constrainPosition = false; this.anchor = this.origAnchor } this.showAt(this.getTargetXY()); if (this.anchor) { this.anchorEl.show(); this.syncAnchor(); this.constrainPosition = this.origConstrainPosition } else { this.anchorEl.hide() } }, showAt:function (a) { this.lastActive = new Date(); this.clearTimers(); Ext.ToolTip.superclass.showAt.call(this, a); if (this.dismissDelay && this.autoHide !== false) { this.dismissTimer = this.hide.defer(this.dismissDelay, this) } if (this.anchor && !this.anchorEl.isVisible()) { this.syncAnchor(); this.anchorEl.show() } else { this.anchorEl.hide() } }, syncAnchor:function () { var a, b, c; switch (this.tipAnchor.charAt(0)) { case"t": a = "b"; b = "tl"; c = [20 + this.anchorOffset, 2]; break; case"r": a = "l"; b = "tr"; c = [-2, 11 + this.anchorOffset]; break; case"b": a = "t"; b = "bl"; c = [20 + this.anchorOffset, -2]; break; default: a = "r"; b = "tl"; c = [2, 11 + this.anchorOffset]; break } this.anchorEl.alignTo(this.el, a + "-" + b, c) }, setPagePosition:function (a, b) { Ext.ToolTip.superclass.setPagePosition.call(this, a, b); if (this.anchor) { this.syncAnchor() } }, clearTimer:function (a) { a = a + "Timer"; clearTimeout(this[a]); delete this[a] }, clearTimers:function () { this.clearTimer("show"); this.clearTimer("dismiss"); this.clearTimer("hide") }, onShow:function () { Ext.ToolTip.superclass.onShow.call(this); Ext.getDoc().on("mousedown", this.onDocMouseDown, this) }, onHide:function () { Ext.ToolTip.superclass.onHide.call(this); Ext.getDoc().un("mousedown", this.onDocMouseDown, this) }, onDocMouseDown:function (a) { if (this.autoHide !== true && !this.closable && !a.within(this.el.dom)) { this.disable(); this.doEnable.defer(100, this) } }, doEnable:function () { if (!this.isDestroyed) { this.enable() } }, onDisable:function () { this.clearTimers(); this.hide() }, adjustPosition:function (a, d) { if (this.constrainPosition) { var c = this.targetXY[1], b = this.getSize().height; if (d <= c && (d + b) >= c) { d = c - b - 5 } } return{x:a, y:d} }, beforeDestroy:function () { this.clearTimers(); Ext.destroy(this.anchorEl); delete this.anchorEl; delete this.target; delete this.anchorTarget; delete this.triggerElement; Ext.ToolTip.superclass.beforeDestroy.call(this) }, onDestroy:function () { Ext.getDoc().un("mousedown", this.onDocMouseDown, this); Ext.ToolTip.superclass.onDestroy.call(this) }}); Ext.reg("tooltip", Ext.ToolTip); Ext.QuickTip = Ext.extend(Ext.ToolTip, {interceptTitles:false, tagConfig:{namespace:"ext", attribute:"qtip", width:"qwidth", target:"target", title:"qtitle", hide:"hide", cls:"qclass", align:"qalign", anchor:"anchor"}, initComponent:function () { this.target = this.target || Ext.getDoc(); this.targets = this.targets || {}; Ext.QuickTip.superclass.initComponent.call(this) }, register:function (e) { var h = Ext.isArray(e) ? e : arguments; for (var g = 0, a = h.length; g < a; g++) { var l = h[g]; var k = l.target; if (k) { if (Ext.isArray(k)) { for (var d = 0, b = k.length; d < b; d++) { this.targets[Ext.id(k[d])] = l } } else { this.targets[Ext.id(k)] = l } } } }, unregister:function (a) { delete this.targets[Ext.id(a)] }, cancelShow:function (b) { var a = this.activeTarget; b = Ext.get(b).dom; if (this.isVisible()) { if (a && a.el == b) { this.hide() } } else { if (a && a.el == b) { this.clearTimer("show") } } }, getTipCfg:function (d) { var b = d.getTarget(), c, a; if (this.interceptTitles && b.title && Ext.isString(b.title)) { c = b.title; b.qtip = c; b.removeAttribute("title"); d.preventDefault() } else { a = this.tagConfig; c = b.qtip || Ext.fly(b).getAttribute(a.attribute, a.namespace) } return c }, onTargetOver:function (i) { if (this.disabled) { return } this.targetXY = i.getXY(); var c = i.getTarget(); if (!c || c.nodeType !== 1 || c == document || c == document.body) { return } if (this.activeTarget && ((c == this.activeTarget.el) || Ext.fly(this.activeTarget.el).contains(c))) { this.clearTimer("hide"); this.show(); return } if (c && this.targets[c.id]) { this.activeTarget = this.targets[c.id]; this.activeTarget.el = c; this.anchor = this.activeTarget.anchor; if (this.anchor) { this.anchorTarget = c } this.delayShow(); return } var g, h = Ext.fly(c), b = this.tagConfig, d = b.namespace; if (g = this.getTipCfg(i)) { var a = h.getAttribute(b.hide, d); this.activeTarget = {el:c, text:g, width:h.getAttribute(b.width, d), autoHide:a != "user" && a !== "false", title:h.getAttribute(b.title, d), cls:h.getAttribute(b.cls, d), align:h.getAttribute(b.align, d)}; this.anchor = h.getAttribute(b.anchor, d); if (this.anchor) { this.anchorTarget = c } this.delayShow() } }, onTargetOut:function (a) { if (this.activeTarget && a.within(this.activeTarget.el) && !this.getTipCfg(a)) { return } this.clearTimer("show"); if (this.autoHide !== false) { this.delayHide() } }, showAt:function (b) { var a = this.activeTarget; if (a) { if (!this.rendered) { this.render(Ext.getBody()); this.activeTarget = a } if (a.width) { this.setWidth(a.width); this.body.setWidth(this.adjustBodyWidth(a.width - this.getFrameWidth())); this.measureWidth = false } else { this.measureWidth = true } this.setTitle(a.title || ""); this.body.update(a.text); this.autoHide = a.autoHide; this.dismissDelay = a.dismissDelay || this.dismissDelay; if (this.lastCls) { this.el.removeClass(this.lastCls); delete this.lastCls } if (a.cls) { this.el.addClass(a.cls); this.lastCls = a.cls } if (this.anchor) { this.constrainPosition = false } else { if (a.align) { b = this.el.getAlignToXY(a.el, a.align); this.constrainPosition = false } else { this.constrainPosition = true } } } Ext.QuickTip.superclass.showAt.call(this, b) }, hide:function () { delete this.activeTarget; Ext.QuickTip.superclass.hide.call(this) }}); Ext.reg("quicktip", Ext.QuickTip); Ext.QuickTips = function () { var b, a = false; return{init:function (c) { if (!b) { if (!Ext.isReady) { Ext.onReady(function () { Ext.QuickTips.init(c) }); return } b = new Ext.QuickTip({elements:"header,body", disabled:a}); if (c !== false) { b.render(Ext.getBody()) } } }, ddDisable:function () { if (b && !a) { b.disable() } }, ddEnable:function () { if (b && !a) { b.enable() } }, enable:function () { if (b) { b.enable() } a = false }, disable:function () { if (b) { b.disable() } a = true }, isEnabled:function () { return b !== undefined && !b.disabled }, getQuickTip:function () { return b }, register:function () { b.register.apply(b, arguments) }, unregister:function () { b.unregister.apply(b, arguments) }, tips:function () { b.register.apply(b, arguments) }} }(); Ext.slider.Tip = Ext.extend(Ext.Tip, {minWidth:10, offsets:[0, -10], init:function (a) { a.on({scope:this, dragstart:this.onSlide, drag:this.onSlide, dragend:this.hide, destroy:this.destroy}) }, onSlide:function (b, c, a) { this.show(); this.body.update(this.getText(a)); this.doAutoWidth(); this.el.alignTo(a.el, "b-t?", this.offsets) }, getText:function (a) { return String(a.value) }}); Ext.ux.SliderTip = Ext.slider.Tip; Ext.tree.TreePanel = Ext.extend(Ext.Panel, {rootVisible:true, animate:Ext.enableFx, lines:true, enableDD:false, hlDrop:Ext.enableFx, pathSeparator:"/", bubbleEvents:[], initComponent:function () { Ext.tree.TreePanel.superclass.initComponent.call(this); if (!this.eventModel) { this.eventModel = new Ext.tree.TreeEventModel(this) } var a = this.loader; if (!a) { a = new Ext.tree.TreeLoader({dataUrl:this.dataUrl, requestMethod:this.requestMethod}) } else { if (Ext.isObject(a) && !a.load) { a = new Ext.tree.TreeLoader(a) } } this.loader = a; this.nodeHash = {}; if (this.root) { var b = this.root; delete this.root; this.setRootNode(b) } this.addEvents("append", "remove", "movenode", "insert", "beforeappend", "beforeremove", "beforemovenode", "beforeinsert", "beforeload", "load", "textchange", "beforeexpandnode", "beforecollapsenode", "expandnode", "disabledchange", "collapsenode", "beforeclick", "click", "containerclick", "checkchange", "beforedblclick", "dblclick", "containerdblclick", "contextmenu", "containercontextmenu", "beforechildrenrendered", "startdrag", "enddrag", "dragdrop", "beforenodedrop", "nodedrop", "nodedragover"); if (this.singleExpand) { this.on("beforeexpandnode", this.restrictExpand, this) } }, proxyNodeEvent:function (c, b, a, h, g, e, d) { if (c == "collapse" || c == "expand" || c == "beforecollapse" || c == "beforeexpand" || c == "move" || c == "beforemove") { c = c + "node" } return this.fireEvent(c, b, a, h, g, e, d) }, getRootNode:function () { return this.root }, setRootNode:function (b) { this.destroyRoot(); if (!b.render) { b = this.loader.createNode(b) } this.root = b; b.ownerTree = this; b.isRoot = true; this.registerNode(b); if (!this.rootVisible) { var a = b.attributes.uiProvider; b.ui = a ? new a(b) : new Ext.tree.RootTreeNodeUI(b) } if (this.innerCt) { this.clearInnerCt(); this.renderRoot() } return b }, clearInnerCt:function () { this.innerCt.update("") }, renderRoot:function () { this.root.render(); if (!this.rootVisible) { this.root.renderChildren() } }, getNodeById:function (a) { return this.nodeHash[a] }, registerNode:function (a) { this.nodeHash[a.id] = a }, unregisterNode:function (a) { delete this.nodeHash[a.id] }, toString:function () { return"[Tree" + (this.id ? " " + this.id : "") + "]" }, restrictExpand:function (a) { var b = a.parentNode; if (b) { if (b.expandedChild && b.expandedChild.parentNode == b) { b.expandedChild.collapse() } b.expandedChild = a } }, getChecked:function (b, c) { c = c || this.root; var d = []; var e = function () { if (this.attributes.checked) { d.push(!b ? this : (b == "id" ? this.id : this.attributes[b])) } }; c.cascade(e); return d }, getLoader:function () { return this.loader }, expandAll:function () { this.root.expand(true) }, collapseAll:function () { this.root.collapse(true) }, getSelectionModel:function () { if (!this.selModel) { this.selModel = new Ext.tree.DefaultSelectionModel() } return this.selModel }, expandPath:function (g, a, h) { if (Ext.isEmpty(g)) { if (h) { h(false, undefined) } return } a = a || "id"; var d = g.split(this.pathSeparator); var c = this.root; if (c.attributes[a] != d[1]) { if (h) { h(false, null) } return } var b = 1; var e = function () { if (++b == d.length) { if (h) { h(true, c) } return } var i = c.findChild(a, d[b]); if (!i) { if (h) { h(false, c) } return } c = i; i.expand(false, false, e) }; c.expand(false, false, e) }, selectPath:function (e, a, g) { if (Ext.isEmpty(e)) { if (g) { g(false, undefined) } return } a = a || "id"; var c = e.split(this.pathSeparator), b = c.pop(); if (c.length > 1) { var d = function (i, h) { if (i && h) { var j = h.findChild(a, b); if (j) { j.select(); if (g) { g(true, j) } } else { if (g) { g(false, j) } } } else { if (g) { g(false, j) } } }; this.expandPath(c.join(this.pathSeparator), a, d) } else { this.root.select(); if (g) { g(true, this.root) } } }, getTreeEl:function () { return this.body }, onRender:function (b, a) { Ext.tree.TreePanel.superclass.onRender.call(this, b, a); this.el.addClass("x-tree"); this.innerCt = this.body.createChild({tag:"ul", cls:"x-tree-root-ct " + (this.useArrows ? "x-tree-arrows" : this.lines ? "x-tree-lines" : "x-tree-no-lines")}) }, initEvents:function () { Ext.tree.TreePanel.superclass.initEvents.call(this); if (this.containerScroll) { Ext.dd.ScrollManager.register(this.body) } if ((this.enableDD || this.enableDrop) && !this.dropZone) { this.dropZone = new Ext.tree.TreeDropZone(this, this.dropConfig || {ddGroup:this.ddGroup || "TreeDD", appendOnly:this.ddAppendOnly === true}) } if ((this.enableDD || this.enableDrag) && !this.dragZone) { this.dragZone = new Ext.tree.TreeDragZone(this, this.dragConfig || {ddGroup:this.ddGroup || "TreeDD", scroll:this.ddScroll}) } this.getSelectionModel().init(this) }, afterRender:function () { Ext.tree.TreePanel.superclass.afterRender.call(this); this.renderRoot() }, beforeDestroy:function () { if (this.rendered) { Ext.dd.ScrollManager.unregister(this.body); Ext.destroy(this.dropZone, this.dragZone) } this.destroyRoot(); Ext.destroy(this.loader); this.nodeHash = this.root = this.loader = null; Ext.tree.TreePanel.superclass.beforeDestroy.call(this) }, destroyRoot:function () { if (this.root && this.root.destroy) { this.root.destroy(true) } }}); Ext.tree.TreePanel.nodeTypes = {}; Ext.reg("treepanel", Ext.tree.TreePanel); Ext.tree.TreeEventModel = function (a) { this.tree = a; this.tree.on("render", this.initEvents, this) }; Ext.tree.TreeEventModel.prototype = {initEvents:function () { var a = this.tree; if (a.trackMouseOver !== false) { a.mon(a.innerCt, {scope:this, mouseover:this.delegateOver, mouseout:this.delegateOut}) } a.mon(a.getTreeEl(), {scope:this, click:this.delegateClick, dblclick:this.delegateDblClick, contextmenu:this.delegateContextMenu}) }, getNode:function (b) { var a; if (a = b.getTarget(".x-tree-node-el", 10)) { var c = Ext.fly(a, "_treeEvents").getAttribute("tree-node-id", "ext"); if (c) { return this.tree.getNodeById(c) } } return null }, getNodeTarget:function (b) { var a = b.getTarget(".x-tree-node-icon", 1); if (!a) { a = b.getTarget(".x-tree-node-el", 6) } return a }, delegateOut:function (b, a) { if (!this.beforeEvent(b)) { return } if (b.getTarget(".x-tree-ec-icon", 1)) { var c = this.getNode(b); this.onIconOut(b, c); if (c == this.lastEcOver) { delete this.lastEcOver } } if ((a = this.getNodeTarget(b)) && !b.within(a, true)) { this.onNodeOut(b, this.getNode(b)) } }, delegateOver:function (b, a) { if (!this.beforeEvent(b)) { return } if (Ext.isGecko && !this.trackingDoc) { Ext.getBody().on("mouseover", this.trackExit, this); this.trackingDoc = true } if (this.lastEcOver) { this.onIconOut(b, this.lastEcOver); delete this.lastEcOver } if (b.getTarget(".x-tree-ec-icon", 1)) { this.lastEcOver = this.getNode(b); this.onIconOver(b, this.lastEcOver) } if (a = this.getNodeTarget(b)) { this.onNodeOver(b, this.getNode(b)) } }, trackExit:function (a) { if (this.lastOverNode) { if (this.lastOverNode.ui && !a.within(this.lastOverNode.ui.getEl())) { this.onNodeOut(a, this.lastOverNode) } delete this.lastOverNode; Ext.getBody().un("mouseover", this.trackExit, this); this.trackingDoc = false } }, delegateClick:function (b, a) { if (this.beforeEvent(b)) { if (b.getTarget("input[type=checkbox]", 1)) { this.onCheckboxClick(b, this.getNode(b)) } else { if (b.getTarget(".x-tree-ec-icon", 1)) { this.onIconClick(b, this.getNode(b)) } else { if (this.getNodeTarget(b)) { this.onNodeClick(b, this.getNode(b)) } } } } else { this.checkContainerEvent(b, "click") } }, delegateDblClick:function (b, a) { if (this.beforeEvent(b)) { if (this.getNodeTarget(b)) { this.onNodeDblClick(b, this.getNode(b)) } } else { this.checkContainerEvent(b, "dblclick") } }, delegateContextMenu:function (b, a) { if (this.beforeEvent(b)) { if (this.getNodeTarget(b)) { this.onNodeContextMenu(b, this.getNode(b)) } } else { this.checkContainerEvent(b, "contextmenu") } }, checkContainerEvent:function (b, a) { if (this.disabled) { b.stopEvent(); return false } this.onContainerEvent(b, a) }, onContainerEvent:function (b, a) { this.tree.fireEvent("container" + a, this.tree, b) }, onNodeClick:function (b, a) { a.ui.onClick(b) }, onNodeOver:function (b, a) { this.lastOverNode = a; a.ui.onOver(b) }, onNodeOut:function (b, a) { a.ui.onOut(b) }, onIconOver:function (b, a) { a.ui.addClass("x-tree-ec-over") }, onIconOut:function (b, a) { a.ui.removeClass("x-tree-ec-over") }, onIconClick:function (b, a) { a.ui.ecClick(b) }, onCheckboxClick:function (b, a) { a.ui.onCheckChange(b) }, onNodeDblClick:function (b, a) { a.ui.onDblClick(b) }, onNodeContextMenu:function (b, a) { a.ui.onContextMenu(b) }, beforeEvent:function (b) { var a = this.getNode(b); if (this.disabled || !a || !a.ui) { b.stopEvent(); return false } return true }, disable:function () { this.disabled = true }, enable:function () { this.disabled = false }}; Ext.tree.DefaultSelectionModel = Ext.extend(Ext.util.Observable, {constructor:function (a) { this.selNode = null; this.addEvents("selectionchange", "beforeselect"); Ext.apply(this, a); Ext.tree.DefaultSelectionModel.superclass.constructor.call(this) }, init:function (a) { this.tree = a; a.mon(a.getTreeEl(), "keydown", this.onKeyDown, this); a.on("click", this.onNodeClick, this) }, onNodeClick:function (a, b) { this.select(a) }, select:function (c, a) { if (!Ext.fly(c.ui.wrap).isVisible() && a) { return a.call(this, c) } var b = this.selNode; if (c == b) { c.ui.onSelectedChange(true) } else { if (this.fireEvent("beforeselect", this, c, b) !== false) { if (b && b.ui) { b.ui.onSelectedChange(false) } this.selNode = c; c.ui.onSelectedChange(true); this.fireEvent("selectionchange", this, c, b) } } return c }, unselect:function (b, a) { if (this.selNode == b) { this.clearSelections(a) } }, clearSelections:function (a) { var b = this.selNode; if (b) { b.ui.onSelectedChange(false); this.selNode = null; if (a !== true) { this.fireEvent("selectionchange", this, null) } } return b }, getSelectedNode:function () { return this.selNode }, isSelected:function (a) { return this.selNode == a }, selectPrevious:function (a) { if (!(a = a || this.selNode || this.lastSelNode)) { return null } var c = a.previousSibling; if (c) { if (!c.isExpanded() || c.childNodes.length < 1) { return this.select(c, this.selectPrevious) } else { var b = c.lastChild; while (b && b.isExpanded() && Ext.fly(b.ui.wrap).isVisible() && b.childNodes.length > 0) { b = b.lastChild } return this.select(b, this.selectPrevious) } } else { if (a.parentNode && (this.tree.rootVisible || !a.parentNode.isRoot)) { return this.select(a.parentNode, this.selectPrevious) } } return null }, selectNext:function (b) { if (!(b = b || this.selNode || this.lastSelNode)) { return null } if (b.firstChild && b.isExpanded() && Ext.fly(b.ui.wrap).isVisible()) { return this.select(b.firstChild, this.selectNext) } else { if (b.nextSibling) { return this.select(b.nextSibling, this.selectNext) } else { if (b.parentNode) { var a = null; b.parentNode.bubble(function () { if (this.nextSibling) { a = this.getOwnerTree().selModel.select(this.nextSibling, this.selectNext); return false } }); return a } } } return null }, onKeyDown:function (c) { var b = this.selNode || this.lastSelNode; var d = this; if (!b) { return } var a = c.getKey(); switch (a) { case c.DOWN: c.stopEvent(); this.selectNext(); break; case c.UP: c.stopEvent(); this.selectPrevious(); break; case c.RIGHT: c.preventDefault(); if (b.hasChildNodes()) { if (!b.isExpanded()) { b.expand() } else { if (b.firstChild) { this.select(b.firstChild, c) } } } break; case c.LEFT: c.preventDefault(); if (b.hasChildNodes() && b.isExpanded()) { b.collapse() } else { if (b.parentNode && (this.tree.rootVisible || b.parentNode != this.tree.getRootNode())) { this.select(b.parentNode, c) } } break } }}); Ext.tree.MultiSelectionModel = Ext.extend(Ext.util.Observable, {constructor:function (a) { this.selNodes = []; this.selMap = {}; this.addEvents("selectionchange"); Ext.apply(this, a); Ext.tree.MultiSelectionModel.superclass.constructor.call(this) }, init:function (a) { this.tree = a; a.mon(a.getTreeEl(), "keydown", this.onKeyDown, this); a.on("click", this.onNodeClick, this) }, onNodeClick:function (a, b) { if (b.ctrlKey && this.isSelected(a)) { this.unselect(a) } else { this.select(a, b, b.ctrlKey) } }, select:function (a, c, b) { if (b !== true) { this.clearSelections(true) } if (this.isSelected(a)) { this.lastSelNode = a; return a } this.selNodes.push(a); this.selMap[a.id] = a; this.lastSelNode = a; a.ui.onSelectedChange(true); this.fireEvent("selectionchange", this, this.selNodes); return a }, unselect:function (b) { if (this.selMap[b.id]) { b.ui.onSelectedChange(false); var c = this.selNodes; var a = c.indexOf(b); if (a != -1) { this.selNodes.splice(a, 1) } delete this.selMap[b.id]; this.fireEvent("selectionchange", this, this.selNodes) } }, clearSelections:function (b) { var d = this.selNodes; if (d.length > 0) { for (var c = 0, a = d.length; c < a; c++) { d[c].ui.onSelectedChange(false) } this.selNodes = []; this.selMap = {}; if (b !== true) { this.fireEvent("selectionchange", this, this.selNodes) } } }, isSelected:function (a) { return this.selMap[a.id] ? true : false }, getSelectedNodes:function () { return this.selNodes.concat([]) }, onKeyDown:Ext.tree.DefaultSelectionModel.prototype.onKeyDown, selectNext:Ext.tree.DefaultSelectionModel.prototype.selectNext, selectPrevious:Ext.tree.DefaultSelectionModel.prototype.selectPrevious}); Ext.data.Tree = Ext.extend(Ext.util.Observable, {constructor:function (a) { this.nodeHash = {}; this.root = null; if (a) { this.setRootNode(a) } this.addEvents("append", "remove", "move", "insert", "beforeappend", "beforeremove", "beforemove", "beforeinsert"); Ext.data.Tree.superclass.constructor.call(this) }, pathSeparator:"/", proxyNodeEvent:function () { return this.fireEvent.apply(this, arguments) }, getRootNode:function () { return this.root }, setRootNode:function (a) { this.root = a; a.ownerTree = this; a.isRoot = true; this.registerNode(a); return a }, getNodeById:function (a) { return this.nodeHash[a] }, registerNode:function (a) { this.nodeHash[a.id] = a }, unregisterNode:function (a) { delete this.nodeHash[a.id] }, toString:function () { return"[Tree" + (this.id ? " " + this.id : "") + "]" }}); Ext.data.Node = Ext.extend(Ext.util.Observable, {constructor:function (a) { this.attributes = a || {}; this.leaf = this.attributes.leaf; this.id = this.attributes.id; if (!this.id) { this.id = Ext.id(null, "xnode-"); this.attributes.id = this.id } this.childNodes = []; this.parentNode = null; this.firstChild = null; this.lastChild = null; this.previousSibling = null; this.nextSibling = null; this.addEvents({append:true, remove:true, move:true, insert:true, beforeappend:true, beforeremove:true, beforemove:true, beforeinsert:true}); this.listeners = this.attributes.listeners; Ext.data.Node.superclass.constructor.call(this) }, fireEvent:function (b) { if (Ext.data.Node.superclass.fireEvent.apply(this, arguments) === false) { return false } var a = this.getOwnerTree(); if (a) { if (a.proxyNodeEvent.apply(a, arguments) === false) { return false } } return true }, isLeaf:function () { return this.leaf === true }, setFirstChild:function (a) { this.firstChild = a }, setLastChild:function (a) { this.lastChild = a }, isLast:function () { return(!this.parentNode ? true : this.parentNode.lastChild == this) }, isFirst:function () { return(!this.parentNode ? true : this.parentNode.firstChild == this) }, hasChildNodes:function () { return !this.isLeaf() && this.childNodes.length > 0 }, isExpandable:function () { return this.attributes.expandable || this.hasChildNodes() }, appendChild:function (e) { var g = false; if (Ext.isArray(e)) { g = e } else { if (arguments.length > 1) { g = arguments } } if (g) { for (var d = 0, a = g.length; d < a; d++) { this.appendChild(g[d]) } } else { if (this.fireEvent("beforeappend", this.ownerTree, this, e) === false) { return false } var b = this.childNodes.length; var c = e.parentNode; if (c) { if (e.fireEvent("beforemove", e.getOwnerTree(), e, c, this, b) === false) { return false } c.removeChild(e) } b = this.childNodes.length; if (b === 0) { this.setFirstChild(e) } this.childNodes.push(e); e.parentNode = this; var h = this.childNodes[b - 1]; if (h) { e.previousSibling = h; h.nextSibling = e } else { e.previousSibling = null } e.nextSibling = null; this.setLastChild(e); e.setOwnerTree(this.getOwnerTree()); this.fireEvent("append", this.ownerTree, this, e, b); if (c) { e.fireEvent("move", this.ownerTree, e, c, this, b) } return e } }, removeChild:function (c, b) { var a = this.childNodes.indexOf(c); if (a == -1) { return false } if (this.fireEvent("beforeremove", this.ownerTree, this, c) === false) { return false } this.childNodes.splice(a, 1); if (c.previousSibling) { c.previousSibling.nextSibling = c.nextSibling } if (c.nextSibling) { c.nextSibling.previousSibling = c.previousSibling } if (this.firstChild == c) { this.setFirstChild(c.nextSibling) } if (this.lastChild == c) { this.setLastChild(c.previousSibling) } this.fireEvent("remove", this.ownerTree, this, c); if (b) { c.destroy(true) } else { c.clear() } return c }, clear:function (a) { this.setOwnerTree(null, a); this.parentNode = this.previousSibling = this.nextSibling = null; if (a) { this.firstChild = this.lastChild = null } }, destroy:function (a) { if (a === true) { this.purgeListeners(); this.clear(true); Ext.each(this.childNodes, function (b) { b.destroy(true) }); this.childNodes = null } else { this.remove(true) } }, insertBefore:function (d, a) { if (!a) { return this.appendChild(d) } if (d == a) { return false } if (this.fireEvent("beforeinsert", this.ownerTree, this, d, a) === false) { return false } var b = this.childNodes.indexOf(a); var c = d.parentNode; var e = b; if (c == this && this.childNodes.indexOf(d) < b) { e-- } if (c) { if (d.fireEvent("beforemove", d.getOwnerTree(), d, c, this, b, a) === false) { return false } c.removeChild(d) } if (e === 0) { this.setFirstChild(d) } this.childNodes.splice(e, 0, d); d.parentNode = this; var g = this.childNodes[e - 1]; if (g) { d.previousSibling = g; g.nextSibling = d } else { d.previousSibling = null } d.nextSibling = a; a.previousSibling = d; d.setOwnerTree(this.getOwnerTree()); this.fireEvent("insert", this.ownerTree, this, d, a); if (c) { d.fireEvent("move", this.ownerTree, d, c, this, e, a) } return d }, remove:function (a) { if (this.parentNode) { this.parentNode.removeChild(this, a) } return this }, removeAll:function (a) { var c = this.childNodes, b; while ((b = c[0])) { this.removeChild(b, a) } return this }, item:function (a) { return this.childNodes[a] }, replaceChild:function (a, c) { var b = c ? c.nextSibling : null; this.removeChild(c); this.insertBefore(a, b); return c }, indexOf:function (a) { return this.childNodes.indexOf(a) }, getOwnerTree:function () { if (!this.ownerTree) { var a = this; while (a) { if (a.ownerTree) { this.ownerTree = a.ownerTree; break } a = a.parentNode } } return this.ownerTree }, getDepth:function () { var b = 0; var a = this; while (a.parentNode) { ++b; a = a.parentNode } return b }, setOwnerTree:function (a, b) { if (a != this.ownerTree) { if (this.ownerTree) { this.ownerTree.unregisterNode(this) } this.ownerTree = a; if (b !== true) { Ext.each(this.childNodes, function (c) { c.setOwnerTree(a) }) } if (a) { a.registerNode(this) } } }, setId:function (b) { if (b !== this.id) { var a = this.ownerTree; if (a) { a.unregisterNode(this) } this.id = this.attributes.id = b; if (a) { a.registerNode(this) } this.onIdChange(b) } }, onIdChange:Ext.emptyFn, getPath:function (c) { c = c || "id"; var e = this.parentNode; var a = [this.attributes[c]]; while (e) { a.unshift(e.attributes[c]); e = e.parentNode } var d = this.getOwnerTree().pathSeparator; return d + a.join(d) }, bubble:function (c, b, a) { var d = this; while (d) { if (c.apply(b || d, a || [d]) === false) { break } d = d.parentNode } }, cascade:function (g, e, b) { if (g.apply(e || this, b || [this]) !== false) { var d = this.childNodes; for (var c = 0, a = d.length; c < a; c++) { d[c].cascade(g, e, b) } } }, eachChild:function (g, e, b) { var d = this.childNodes; for (var c = 0, a = d.length; c < a; c++) { if (g.apply(e || d[c], b || [d[c]]) === false) { break } } }, findChild:function (b, c, a) { return this.findChildBy(function () { return this.attributes[b] == c }, null, a) }, findChildBy:function (h, g, b) { var e = this.childNodes, a = e.length, d = 0, j, c; for (; d < a; d++) { j = e[d]; if (h.call(g || j, j) === true) { return j } else { if (b) { c = j.findChildBy(h, g, b); if (c != null) { return c } } } } return null }, sort:function (e, d) { var c = this.childNodes; var a = c.length; if (a > 0) { var g = d ? function () { e.apply(d, arguments) } : e; c.sort(g); for (var b = 0; b < a; b++) { var h = c[b]; h.previousSibling = c[b - 1]; h.nextSibling = c[b + 1]; if (b === 0) { this.setFirstChild(h) } if (b == a - 1) { this.setLastChild(h) } } } }, contains:function (a) { return a.isAncestor(this) }, isAncestor:function (a) { var b = this.parentNode; while (b) { if (b == a) { return true } b = b.parentNode } return false }, toString:function () { return"[Node" + (this.id ? " " + this.id : "") + "]" }}); Ext.tree.TreeNode = Ext.extend(Ext.data.Node, {constructor:function (a) { a = a || {}; if (Ext.isString(a)) { a = {text:a} } this.childrenRendered = false; this.rendered = false; Ext.tree.TreeNode.superclass.constructor.call(this, a); this.expanded = a.expanded === true; this.isTarget = a.isTarget !== false; this.draggable = a.draggable !== false && a.allowDrag !== false; this.allowChildren = a.allowChildren !== false && a.allowDrop !== false; this.text = a.text; this.disabled = a.disabled === true; this.hidden = a.hidden === true; this.addEvents("textchange", "beforeexpand", "beforecollapse", "expand", "disabledchange", "collapse", "beforeclick", "click", "checkchange", "beforedblclick", "dblclick", "contextmenu", "beforechildrenrendered"); var b = this.attributes.uiProvider || this.defaultUI || Ext.tree.TreeNodeUI; this.ui = new b(this) }, preventHScroll:true, isExpanded:function () { return this.expanded }, getUI:function () { return this.ui }, getLoader:function () { var a; return this.loader || ((a = this.getOwnerTree()) && a.loader ? a.loader : (this.loader = new Ext.tree.TreeLoader())) }, setFirstChild:function (a) { var b = this.firstChild; Ext.tree.TreeNode.superclass.setFirstChild.call(this, a); if (this.childrenRendered && b && a != b) { b.renderIndent(true, true) } if (this.rendered) { this.renderIndent(true, true) } }, setLastChild:function (b) { var a = this.lastChild; Ext.tree.TreeNode.superclass.setLastChild.call(this, b); if (this.childrenRendered && a && b != a) { a.renderIndent(true, true) } if (this.rendered) { this.renderIndent(true, true) } }, appendChild:function (b) { if (!b.render && !Ext.isArray(b)) { b = this.getLoader().createNode(b) } var a = Ext.tree.TreeNode.superclass.appendChild.call(this, b); if (a && this.childrenRendered) { a.render() } this.ui.updateExpandIcon(); return a }, removeChild:function (b, a) { this.ownerTree.getSelectionModel().unselect(b); Ext.tree.TreeNode.superclass.removeChild.apply(this, arguments); if (!a) { var c = b.ui.rendered; if (c) { b.ui.remove() } if (c && this.childNodes.length < 1) { this.collapse(false, false) } else { this.ui.updateExpandIcon() } if (!this.firstChild && !this.isHiddenRoot()) { this.childrenRendered = false } } return b }, insertBefore:function (c, a) { if (!c.render) { c = this.getLoader().createNode(c) } var b = Ext.tree.TreeNode.superclass.insertBefore.call(this, c, a); if (b && a && this.childrenRendered) { c.render() } this.ui.updateExpandIcon(); return b }, setText:function (b) { var a = this.text; this.text = this.attributes.text = b; if (this.rendered) { this.ui.onTextChange(this, b, a) } this.fireEvent("textchange", this, b, a) }, setIconCls:function (b) { var a = this.attributes.iconCls; this.attributes.iconCls = b; if (this.rendered) { this.ui.onIconClsChange(this, b, a) } }, setTooltip:function (a, b) { this.attributes.qtip = a; this.attributes.qtipTitle = b; if (this.rendered) { this.ui.onTipChange(this, a, b) } }, setIcon:function (a) { this.attributes.icon = a; if (this.rendered) { this.ui.onIconChange(this, a) } }, setHref:function (a, b) { this.attributes.href = a; this.attributes.hrefTarget = b; if (this.rendered) { this.ui.onHrefChange(this, a, b) } }, setCls:function (b) { var a = this.attributes.cls; this.attributes.cls = b; if (this.rendered) { this.ui.onClsChange(this, b, a) } }, select:function () { var a = this.getOwnerTree(); if (a) { a.getSelectionModel().select(this) } }, unselect:function (a) { var b = this.getOwnerTree(); if (b) { b.getSelectionModel().unselect(this, a) } }, isSelected:function () { var a = this.getOwnerTree(); return a ? a.getSelectionModel().isSelected(this) : false }, expand:function (a, c, d, b) { if (!this.expanded) { if (this.fireEvent("beforeexpand", this, a, c) === false) { return } if (!this.childrenRendered) { this.renderChildren() } this.expanded = true; if (!this.isHiddenRoot() && (this.getOwnerTree().animate && c !== false) || c) { this.ui.animExpand(function () { this.fireEvent("expand", this); this.runCallback(d, b || this, [this]); if (a === true) { this.expandChildNodes(true, true) } }.createDelegate(this)); return } else { this.ui.expand(); this.fireEvent("expand", this); this.runCallback(d, b || this, [this]) } } else { this.runCallback(d, b || this, [this]) } if (a === true) { this.expandChildNodes(true) } }, runCallback:function (a, c, b) { if (Ext.isFunction(a)) { a.apply(c, b) } }, isHiddenRoot:function () { return this.isRoot && !this.getOwnerTree().rootVisible }, collapse:function (b, g, h, e) { if (this.expanded && !this.isHiddenRoot()) { if (this.fireEvent("beforecollapse", this, b, g) === false) { return } this.expanded = false; if ((this.getOwnerTree().animate && g !== false) || g) { this.ui.animCollapse(function () { this.fireEvent("collapse", this); this.runCallback(h, e || this, [this]); if (b === true) { this.collapseChildNodes(true) } }.createDelegate(this)); return } else { this.ui.collapse(); this.fireEvent("collapse", this); this.runCallback(h, e || this, [this]) } } else { if (!this.expanded) { this.runCallback(h, e || this, [this]) } } if (b === true) { var d = this.childNodes; for (var c = 0, a = d.length; c < a; c++) { d[c].collapse(true, false) } } }, delayedExpand:function (a) { if (!this.expandProcId) { this.expandProcId = this.expand.defer(a, this) } }, cancelExpand:function () { if (this.expandProcId) { clearTimeout(this.expandProcId) } this.expandProcId = false }, toggle:function () { if (this.expanded) { this.collapse() } else { this.expand() } }, ensureVisible:function (c, b) { var a = this.getOwnerTree(); a.expandPath(this.parentNode ? this.parentNode.getPath() : this.getPath(), false, function () { var d = a.getNodeById(this.id); a.getTreeEl().scrollChildIntoView(d.ui.anchor); this.runCallback(c, b || this, [this]) }.createDelegate(this)) }, expandChildNodes:function (b, e) { var d = this.childNodes, c, a = d.length; for (c = 0; c < a; c++) { d[c].expand(b, e) } }, collapseChildNodes:function (b) { var d = this.childNodes; for (var c = 0, a = d.length; c < a; c++) { d[c].collapse(b) } }, disable:function () { this.disabled = true; this.unselect(); if (this.rendered && this.ui.onDisableChange) { this.ui.onDisableChange(this, true) } this.fireEvent("disabledchange", this, true) }, enable:function () { this.disabled = false; if (this.rendered && this.ui.onDisableChange) { this.ui.onDisableChange(this, false) } this.fireEvent("disabledchange", this, false) }, renderChildren:function (b) { if (b !== false) { this.fireEvent("beforechildrenrendered", this) } var d = this.childNodes; for (var c = 0, a = d.length; c < a; c++) { d[c].render(true) } this.childrenRendered = true }, sort:function (e, d) { Ext.tree.TreeNode.superclass.sort.apply(this, arguments); if (this.childrenRendered) { var c = this.childNodes; for (var b = 0, a = c.length; b < a; b++) { c[b].render(true) } } }, render:function (a) { this.ui.render(a); if (!this.rendered) { this.getOwnerTree().registerNode(this); this.rendered = true; if (this.expanded) { this.expanded = false; this.expand(false, false) } } }, renderIndent:function (b, e) { if (e) { this.ui.childIndent = null } this.ui.renderIndent(); if (b === true && this.childrenRendered) { var d = this.childNodes; for (var c = 0, a = d.length; c < a; c++) { d[c].renderIndent(true, e) } } }, beginUpdate:function () { this.childrenRendered = false }, endUpdate:function () { if (this.expanded && this.rendered) { this.renderChildren() } }, destroy:function (a) { if (a === true) { this.unselect(true) } Ext.tree.TreeNode.superclass.destroy.call(this, a); Ext.destroy(this.ui, this.loader); this.ui = this.loader = null }, onIdChange:function (a) { this.ui.onIdChange(a) }}); Ext.tree.TreePanel.nodeTypes.node = Ext.tree.TreeNode; Ext.tree.AsyncTreeNode = function (a) { this.loaded = a && a.loaded === true; this.loading = false; Ext.tree.AsyncTreeNode.superclass.constructor.apply(this, arguments); this.addEvents("beforeload", "load") }; Ext.extend(Ext.tree.AsyncTreeNode, Ext.tree.TreeNode, {expand:function (b, e, h, c) { if (this.loading) { var g; var d = function () { if (!this.loading) { clearInterval(g); this.expand(b, e, h, c) } }.createDelegate(this); g = setInterval(d, 200); return } if (!this.loaded) { if (this.fireEvent("beforeload", this) === false) { return } this.loading = true; this.ui.beforeLoad(this); var a = this.loader || this.attributes.loader || this.getOwnerTree().getLoader(); if (a) { a.load(this, this.loadComplete.createDelegate(this, [b, e, h, c]), this); return } } Ext.tree.AsyncTreeNode.superclass.expand.call(this, b, e, h, c) }, isLoading:function () { return this.loading }, loadComplete:function (a, c, d, b) { this.loading = false; this.loaded = true; this.ui.afterLoad(this); this.fireEvent("load", this); this.expand(a, c, d, b) }, isLoaded:function () { return this.loaded }, hasChildNodes:function () { if (!this.isLeaf() && !this.loaded) { return true } else { return Ext.tree.AsyncTreeNode.superclass.hasChildNodes.call(this) } }, reload:function (b, a) { this.collapse(false, false); while (this.firstChild) { this.removeChild(this.firstChild).destroy() } this.childrenRendered = false; this.loaded = false; if (this.isHiddenRoot()) { this.expanded = false } this.expand(false, false, b, a) }}); Ext.tree.TreePanel.nodeTypes.async = Ext.tree.AsyncTreeNode; Ext.tree.TreeNodeUI = Ext.extend(Object, {constructor:function (a) { Ext.apply(this, {node:a, rendered:false, animating:false, wasLeaf:true, ecc:"x-tree-ec-icon x-tree-elbow", emptyIcon:Ext.BLANK_IMAGE_URL}) }, removeChild:function (a) { if (this.rendered) { this.ctNode.removeChild(a.ui.getEl()) } }, beforeLoad:function () { this.addClass("x-tree-node-loading") }, afterLoad:function () { this.removeClass("x-tree-node-loading") }, onTextChange:function (b, c, a) { if (this.rendered) { this.textNode.innerHTML = c } }, onIconClsChange:function (c, a, b) { if (this.rendered) { Ext.fly(this.iconNode).replaceClass(b, a) } }, onIconChange:function (b, a) { if (this.rendered) { var c = Ext.isEmpty(a); this.iconNode.src = c ? this.emptyIcon : a; Ext.fly(this.iconNode)[c ? "removeClass" : "addClass"]("x-tree-node-inline-icon") } }, onTipChange:function (b, c, d) { if (this.rendered) { var a = Ext.isDefined(d); if (this.textNode.setAttributeNS) { this.textNode.setAttributeNS("ext", "qtip", c); if (a) { this.textNode.setAttributeNS("ext", "qtitle", d) } } else { this.textNode.setAttribute("ext:qtip", c); if (a) { this.textNode.setAttribute("ext:qtitle", d) } } } }, onHrefChange:function (b, a, c) { if (this.rendered) { this.anchor.href = this.getHref(a); if (Ext.isDefined(c)) { this.anchor.target = c } } }, onClsChange:function (c, a, b) { if (this.rendered) { Ext.fly(this.elNode).replaceClass(b, a) } }, onDisableChange:function (a, b) { this.disabled = b; if (this.checkbox) { this.checkbox.disabled = b } this[b ? "addClass" : "removeClass"]("x-tree-node-disabled") }, onSelectedChange:function (a) { if (a) { this.focus(); this.addClass("x-tree-selected") } else { this.removeClass("x-tree-selected") } }, onMove:function (a, h, e, g, d, b) { this.childIndent = null; if (this.rendered) { var i = g.ui.getContainer(); if (!i) { this.holder = document.createElement("div"); this.holder.appendChild(this.wrap); return } var c = b ? b.ui.getEl() : null; if (c) { i.insertBefore(this.wrap, c) } else { i.appendChild(this.wrap) } this.node.renderIndent(true, e != g) } }, addClass:function (a) { if (this.elNode) { Ext.fly(this.elNode).addClass(a) } }, removeClass:function (a) { if (this.elNode) { Ext.fly(this.elNode).removeClass(a) } }, remove:function () { if (this.rendered) { this.holder = document.createElement("div"); this.holder.appendChild(this.wrap) } }, fireEvent:function () { return this.node.fireEvent.apply(this.node, arguments) }, initEvents:function () { this.node.on("move", this.onMove, this); if (this.node.disabled) { this.onDisableChange(this.node, true) } if (this.node.hidden) { this.hide() } var b = this.node.getOwnerTree(); var a = b.enableDD || b.enableDrag || b.enableDrop; if (a && (!this.node.isRoot || b.rootVisible)) { Ext.dd.Registry.register(this.elNode, {node:this.node, handles:this.getDDHandles(), isHandle:false}) } }, getDDHandles:function () { return[this.iconNode, this.textNode, this.elNode] }, hide:function () { this.node.hidden = true; if (this.wrap) { this.wrap.style.display = "none" } }, show:function () { this.node.hidden = false; if (this.wrap) { this.wrap.style.display = "" } }, onContextMenu:function (a) { if (this.node.hasListener("contextmenu") || this.node.getOwnerTree().hasListener("contextmenu")) { a.preventDefault(); this.focus(); this.fireEvent("contextmenu", this.node, a) } }, onClick:function (c) { if (this.dropping) { c.stopEvent(); return } if (this.fireEvent("beforeclick", this.node, c) !== false) { var b = c.getTarget("a"); if (!this.disabled && this.node.attributes.href && b) { this.fireEvent("click", this.node, c); return } else { if (b && c.ctrlKey) { c.stopEvent() } } c.preventDefault(); if (this.disabled) { return } if (this.node.attributes.singleClickExpand && !this.animating && this.node.isExpandable()) { this.node.toggle() } this.fireEvent("click", this.node, c) } else { c.stopEvent() } }, onDblClick:function (a) { a.preventDefault(); if (this.disabled) { return } if (this.fireEvent("beforedblclick", this.node, a) !== false) { if (this.checkbox) { this.toggleCheck() } if (!this.animating && this.node.isExpandable()) { this.node.toggle() } this.fireEvent("dblclick", this.node, a) } }, onOver:function (a) { this.addClass("x-tree-node-over") }, onOut:function (a) { this.removeClass("x-tree-node-over") }, onCheckChange:function () { var a = this.checkbox.checked; this.checkbox.defaultChecked = a; this.node.attributes.checked = a; this.fireEvent("checkchange", this.node, a) }, ecClick:function (a) { if (!this.animating && this.node.isExpandable()) { this.node.toggle() } }, startDrop:function () { this.dropping = true }, endDrop:function () { setTimeout(function () { this.dropping = false }.createDelegate(this), 50) }, expand:function () { this.updateExpandIcon(); this.ctNode.style.display = "" }, focus:function () { if (!this.node.preventHScroll) { try { this.anchor.focus() } catch (c) { } } else { try { var b = this.node.getOwnerTree().getTreeEl().dom; var a = b.scrollLeft; this.anchor.focus(); b.scrollLeft = a } catch (c) { } } }, toggleCheck:function (b) { var a = this.checkbox; if (a) { a.checked = (b === undefined ? !a.checked : b); this.onCheckChange() } }, blur:function () { try { this.anchor.blur() } catch (a) { } }, animExpand:function (b) { var a = Ext.get(this.ctNode); a.stopFx(); if (!this.node.isExpandable()) { this.updateExpandIcon(); this.ctNode.style.display = ""; Ext.callback(b); return } this.animating = true; this.updateExpandIcon(); a.slideIn("t", {callback:function () { this.animating = false; Ext.callback(b) }, scope:this, duration:this.node.ownerTree.duration || 0.25}) }, highlight:function () { var a = this.node.getOwnerTree(); Ext.fly(this.wrap).highlight(a.hlColor || "C3DAF9", {endColor:a.hlBaseColor}) }, collapse:function () { this.updateExpandIcon(); this.ctNode.style.display = "none" }, animCollapse:function (b) { var a = Ext.get(this.ctNode); a.enableDisplayMode("block"); a.stopFx(); this.animating = true; this.updateExpandIcon(); a.slideOut("t", {callback:function () { this.animating = false; Ext.callback(b) }, scope:this, duration:this.node.ownerTree.duration || 0.25}) }, getContainer:function () { return this.ctNode }, getEl:function () { return this.wrap }, appendDDGhost:function (a) { a.appendChild(this.elNode.cloneNode(true)) }, getDDRepairXY:function () { return Ext.lib.Dom.getXY(this.iconNode) }, onRender:function () { this.render() }, render:function (c) { var e = this.node, b = e.attributes; var d = e.parentNode ? e.parentNode.ui.getContainer() : e.ownerTree.innerCt.dom; if (!this.rendered) { this.rendered = true; this.renderElements(e, b, d, c); if (b.qtip) { this.onTipChange(e, b.qtip, b.qtipTitle) } else { if (b.qtipCfg) { b.qtipCfg.target = Ext.id(this.textNode); Ext.QuickTips.register(b.qtipCfg) } } this.initEvents(); if (!this.node.expanded) { this.updateExpandIcon(true) } } else { if (c === true) { d.appendChild(this.wrap) } } }, renderElements:function (e, k, j, l) { this.indentMarkup = e.parentNode ? e.parentNode.ui.getChildIndent() : ""; var g = Ext.isBoolean(k.checked), b, c = this.getHref(k.href), d = ['
  • ', '', this.indentMarkup, "", '', '', g ? ('' : "/>")) : "", '', e.text, "
    ", '', "
  • "].join(""); if (l !== true && e.nextSibling && (b = e.nextSibling.ui.getEl())) { this.wrap = Ext.DomHelper.insertHtml("beforeBegin", b, d) } else { this.wrap = Ext.DomHelper.insertHtml("beforeEnd", j, d) } this.elNode = this.wrap.childNodes[0]; this.ctNode = this.wrap.childNodes[1]; var i = this.elNode.childNodes; this.indentNode = i[0]; this.ecNode = i[1]; this.iconNode = i[2]; var h = 3; if (g) { this.checkbox = i[3]; this.checkbox.defaultChecked = this.checkbox.checked; h++ } this.anchor = i[h]; this.textNode = i[h].firstChild }, getHref:function (a) { return Ext.isEmpty(a) ? (Ext.isGecko ? "" : "#") : a }, getAnchor:function () { return this.anchor }, getTextEl:function () { return this.textNode }, getIconEl:function () { return this.iconNode }, isChecked:function () { return this.checkbox ? this.checkbox.checked : false }, updateExpandIcon:function () { if (this.rendered) { var g = this.node, d, c, a = g.isLast() ? "x-tree-elbow-end" : "x-tree-elbow", e = g.hasChildNodes(); if (e || g.attributes.expandable) { if (g.expanded) { a += "-minus"; d = "x-tree-node-collapsed"; c = "x-tree-node-expanded" } else { a += "-plus"; d = "x-tree-node-expanded"; c = "x-tree-node-collapsed" } if (this.wasLeaf) { this.removeClass("x-tree-node-leaf"); this.wasLeaf = false } if (this.c1 != d || this.c2 != c) { Ext.fly(this.elNode).replaceClass(d, c); this.c1 = d; this.c2 = c } } else { if (!this.wasLeaf) { Ext.fly(this.elNode).replaceClass("x-tree-node-expanded", "x-tree-node-collapsed"); delete this.c1; delete this.c2; this.wasLeaf = true } } var b = "x-tree-ec-icon " + a; if (this.ecc != b) { this.ecNode.className = b; this.ecc = b } } }, onIdChange:function (a) { if (this.rendered) { this.elNode.setAttribute("ext:tree-node-id", a) } }, getChildIndent:function () { if (!this.childIndent) { var a = [], b = this.node; while (b) { if (!b.isRoot || (b.isRoot && b.ownerTree.rootVisible)) { if (!b.isLast()) { a.unshift('') } else { a.unshift('') } } b = b.parentNode } this.childIndent = a.join("") } return this.childIndent }, renderIndent:function () { if (this.rendered) { var a = "", b = this.node.parentNode; if (b) { a = b.ui.getChildIndent() } if (this.indentMarkup != a) { this.indentNode.innerHTML = a; this.indentMarkup = a } this.updateExpandIcon() } }, destroy:function () { if (this.elNode) { Ext.dd.Registry.unregister(this.elNode.id) } Ext.each(["textnode", "anchor", "checkbox", "indentNode", "ecNode", "iconNode", "elNode", "ctNode", "wrap", "holder"], function (a) { if (this[a]) { Ext.fly(this[a]).remove(); delete this[a] } }, this); delete this.node }}); Ext.tree.RootTreeNodeUI = Ext.extend(Ext.tree.TreeNodeUI, {render:function () { if (!this.rendered) { var a = this.node.ownerTree.innerCt.dom; this.node.expanded = true; a.innerHTML = '
    '; this.wrap = this.ctNode = a.firstChild } }, collapse:Ext.emptyFn, expand:Ext.emptyFn}); Ext.tree.TreeLoader = function (a) { this.baseParams = {}; Ext.apply(this, a); this.addEvents("beforeload", "load", "loadexception"); Ext.tree.TreeLoader.superclass.constructor.call(this); if (Ext.isString(this.paramOrder)) { this.paramOrder = this.paramOrder.split(/[\s,|]/) } }; Ext.extend(Ext.tree.TreeLoader, Ext.util.Observable, {uiProviders:{}, clearOnLoad:true, paramOrder:undefined, paramsAsHash:false, nodeParameter:"node", directFn:undefined, load:function (b, c, a) { if (this.clearOnLoad) { while (b.firstChild) { b.removeChild(b.firstChild) } } if (this.doPreload(b)) { this.runCallback(c, a || b, [b]) } else { if (this.directFn || this.dataUrl || this.url) { this.requestData(b, c, a || b) } } }, doPreload:function (d) { if (d.attributes.children) { if (d.childNodes.length < 1) { var c = d.attributes.children; d.beginUpdate(); for (var b = 0, a = c.length; b < a; b++) { var e = d.appendChild(this.createNode(c[b])); if (this.preloadChildren) { this.doPreload(e) } } d.endUpdate() } return true } return false }, getParams:function (g) { var e = Ext.apply({}, this.baseParams), h = this.nodeParameter, b = this.paramOrder; h && (e[h] = g.id); if (this.directFn) { var c = [g.id]; if (b) { if (h && b.indexOf(h) > -1) { c = [] } for (var d = 0, a = b.length; d < a; d++) { c.push(e[b[d]]) } } else { if (this.paramsAsHash) { c = [e] } } return c } else { return e } }, requestData:function (c, d, b) { if (this.fireEvent("beforeload", this, c, d) !== false) { if (this.directFn) { var a = this.getParams(c); a.push(this.processDirectResponse.createDelegate(this, [ {callback:d, node:c, scope:b} ], true)); this.directFn.apply(window, a) } else { this.transId = Ext.Ajax.request({method:this.requestMethod, url:this.dataUrl || this.url, success:this.handleResponse, failure:this.handleFailure, scope:this, argument:{callback:d, node:c, scope:b}, params:this.getParams(c)}) } } else { this.runCallback(d, b || c, []) } }, processDirectResponse:function (a, b, c) { if (b.status) { this.handleResponse({responseData:Ext.isArray(a) ? a : null, responseText:a, argument:c}) } else { this.handleFailure({argument:c}) } }, runCallback:function (a, c, b) { if (Ext.isFunction(a)) { a.apply(c, b) } }, isLoading:function () { return !!this.transId }, abort:function () { if (this.isLoading()) { Ext.Ajax.abort(this.transId) } }, createNode:function (attr) { if (this.baseAttrs) { Ext.applyIf(attr, this.baseAttrs) } if (this.applyLoader !== false && !attr.loader) { attr.loader = this } if (Ext.isString(attr.uiProvider)) { attr.uiProvider = this.uiProviders[attr.uiProvider] || eval(attr.uiProvider) } if (attr.nodeType) { return new Ext.tree.TreePanel.nodeTypes[attr.nodeType](attr) } else { return attr.leaf ? new Ext.tree.TreeNode(attr) : new Ext.tree.AsyncTreeNode(attr) } }, processResponse:function (d, c, k, l) { var m = d.responseText; try { var a = d.responseData || Ext.decode(m); c.beginUpdate(); for (var g = 0, h = a.length; g < h; g++) { var b = this.createNode(a[g]); if (b) { c.appendChild(b) } } c.endUpdate(); this.runCallback(k, l || c, [c]) } catch (j) { this.handleFailure(d) } }, handleResponse:function (c) { this.transId = false; var b = c.argument; this.processResponse(c, b.node, b.callback, b.scope); this.fireEvent("load", this, b.node, c) }, handleFailure:function (c) { this.transId = false; var b = c.argument; this.fireEvent("loadexception", this, b.node, c); this.runCallback(b.callback, b.scope || b.node, [b.node]) }, destroy:function () { this.abort(); this.purgeListeners() }}); Ext.tree.TreeFilter = function (a, b) { this.tree = a; this.filtered = {}; Ext.apply(this, b) }; Ext.tree.TreeFilter.prototype = {clearBlank:false, reverse:false, autoClear:false, remove:false, filter:function (d, a, b) { a = a || "text"; var c; if (typeof d == "string") { var e = d.length; if (e == 0 && this.clearBlank) { this.clear(); return } d = d.toLowerCase(); c = function (g) { return g.attributes[a].substr(0, e).toLowerCase() == d } } else { if (d.exec) { c = function (g) { return d.test(g.attributes[a]) } } else { throw"Illegal filter type, must be string or regex" } } this.filterBy(c, null, b) }, filterBy:function (d, c, b) { b = b || this.tree.root; if (this.autoClear) { this.clear() } var a = this.filtered, i = this.reverse; var e = function (k) { if (k == b) { return true } if (a[k.id]) { return false } var j = d.call(c || k, k); if (!j || i) { a[k.id] = k; k.ui.hide(); return false } return true }; b.cascade(e); if (this.remove) { for (var h in a) { if (typeof h != "function") { var g = a[h]; if (g && g.parentNode) { g.parentNode.removeChild(g) } } } } }, clear:function () { var b = this.tree; var a = this.filtered; for (var d in a) { if (typeof d != "function") { var c = a[d]; if (c) { c.ui.show() } } } this.filtered = {} }}; Ext.tree.TreeSorter = Ext.extend(Object, {constructor:function (a, c) { Ext.apply(this, c); a.on({scope:this, beforechildrenrendered:this.doSort, append:this.updateSort, insert:this.updateSort, textchange:this.updateSortParent}); var e = this.dir && this.dir.toLowerCase() == "desc", i = this.property || "text", d = this.sortType, h = this.folderSort, b = this.caseSensitive === true, g = this.leafAttr || "leaf"; if (Ext.isString(d)) { d = Ext.data.SortTypes[d] } this.sortFn = function (o, m) { var k = o.attributes, j = m.attributes; if (h) { if (k[g] && !j[g]) { return 1 } if (!k[g] && j[g]) { return -1 } } var n = k[i], l = j[i], q = d ? d(n) : (b ? n : n.toUpperCase()), p = d ? d(l) : (b ? l : l.toUpperCase()); if (q < p) { return e ? 1 : -1 } else { if (q > p) { return e ? -1 : 1 } } return 0 } }, doSort:function (a) { a.sort(this.sortFn) }, updateSort:function (a, b) { if (b.childrenRendered) { this.doSort.defer(1, this, [b]) } }, updateSortParent:function (a) { var b = a.parentNode; if (b && b.childrenRendered) { this.doSort.defer(1, this, [b]) } }}); if (Ext.dd.DropZone) { Ext.tree.TreeDropZone = function (a, b) { this.allowParentInsert = b.allowParentInsert || false; this.allowContainerDrop = b.allowContainerDrop || false; this.appendOnly = b.appendOnly || false; Ext.tree.TreeDropZone.superclass.constructor.call(this, a.getTreeEl(), b); this.tree = a; this.dragOverData = {}; this.lastInsertClass = "x-tree-no-status" }; Ext.extend(Ext.tree.TreeDropZone, Ext.dd.DropZone, {ddGroup:"TreeDD", expandDelay:1000, expandNode:function (a) { if (a.hasChildNodes() && !a.isExpanded()) { a.expand(false, null, this.triggerCacheRefresh.createDelegate(this)) } }, queueExpand:function (a) { this.expandProcId = this.expandNode.defer(this.expandDelay, this, [a]) }, cancelExpand:function () { if (this.expandProcId) { clearTimeout(this.expandProcId); this.expandProcId = false } }, isValidDropPoint:function (a, k, i, d, c) { if (!a || !c) { return false } var g = a.node; var h = c.node; if (!(g && g.isTarget && k)) { return false } if (k == "append" && g.allowChildren === false) { return false } if ((k == "above" || k == "below") && (g.parentNode && g.parentNode.allowChildren === false)) { return false } if (h && (g == h || h.contains(g))) { return false } var b = this.dragOverData; b.tree = this.tree; b.target = g; b.data = c; b.point = k; b.source = i; b.rawEvent = d; b.dropNode = h; b.cancel = false; var j = this.tree.fireEvent("nodedragover", b); return b.cancel === false && j !== false }, getDropPoint:function (h, g, l) { var m = g.node; if (m.isRoot) { return m.allowChildren !== false ? "append" : false } var c = g.ddel; var o = Ext.lib.Dom.getY(c), j = o + c.offsetHeight; var i = Ext.lib.Event.getPageY(h); var k = m.allowChildren === false || m.isLeaf(); if (this.appendOnly || m.parentNode.allowChildren === false) { return k ? false : "append" } var d = false; if (!this.allowParentInsert) { d = m.hasChildNodes() && m.isExpanded() } var a = (j - o) / (k ? 2 : 3); if (i >= o && i < (o + a)) { return"above" } else { if (!d && (k || i >= j - a && i <= j)) { return"below" } else { return"append" } } }, onNodeEnter:function (d, a, c, b) { this.cancelExpand() }, onContainerOver:function (a, c, b) { if (this.allowContainerDrop && this.isValidDropPoint({ddel:this.tree.getRootNode().ui.elNode, node:this.tree.getRootNode()}, "append", a, c, b)) { return this.dropAllowed } return this.dropNotAllowed }, onNodeOver:function (b, i, h, g) { var k = this.getDropPoint(h, b, i); var c = b.node; if (!this.expandProcId && k == "append" && c.hasChildNodes() && !b.node.isExpanded()) { this.queueExpand(c) } else { if (k != "append") { this.cancelExpand() } } var d = this.dropNotAllowed; if (this.isValidDropPoint(b, k, i, h, g)) { if (k) { var a = b.ddel; var j; if (k == "above") { d = b.node.isFirst() ? "x-tree-drop-ok-above" : "x-tree-drop-ok-between"; j = "x-tree-drag-insert-above" } else { if (k == "below") { d = b.node.isLast() ? "x-tree-drop-ok-below" : "x-tree-drop-ok-between"; j = "x-tree-drag-insert-below" } else { d = "x-tree-drop-ok-append"; j = "x-tree-drag-append" } } if (this.lastInsertClass != j) { Ext.fly(a).replaceClass(this.lastInsertClass, j); this.lastInsertClass = j } } } return d }, onNodeOut:function (d, a, c, b) { this.cancelExpand(); this.removeDropIndicators(d) }, onNodeDrop:function (i, b, h, d) { var a = this.getDropPoint(h, i, b); var g = i.node; g.ui.startDrop(); if (!this.isValidDropPoint(i, a, b, h, d)) { g.ui.endDrop(); return false } var c = d.node || (b.getTreeNode ? b.getTreeNode(d, g, a, h) : null); return this.processDrop(g, d, a, b, h, c) }, onContainerDrop:function (a, g, c) { if (this.allowContainerDrop && this.isValidDropPoint({ddel:this.tree.getRootNode().ui.elNode, node:this.tree.getRootNode()}, "append", a, g, c)) { var d = this.tree.getRootNode(); d.ui.startDrop(); var b = c.node || (a.getTreeNode ? a.getTreeNode(c, d, "append", g) : null); return this.processDrop(d, c, "append", a, g, b) } return false }, processDrop:function (j, h, b, a, i, d) { var g = {tree:this.tree, target:j, data:h, point:b, source:a, rawEvent:i, dropNode:d, cancel:!d, dropStatus:false}; var c = this.tree.fireEvent("beforenodedrop", g); if (c === false || g.cancel === true || !g.dropNode) { j.ui.endDrop(); return g.dropStatus } j = g.target; if (b == "append" && !j.isExpanded()) { j.expand(false, null, function () { this.completeDrop(g) }.createDelegate(this)) } else { this.completeDrop(g) } return true }, completeDrop:function (h) { var d = h.dropNode, e = h.point, c = h.target; if (!Ext.isArray(d)) { d = [d] } var g; for (var b = 0, a = d.length; b < a; b++) { g = d[b]; if (e == "above") { c.parentNode.insertBefore(g, c) } else { if (e == "below") { c.parentNode.insertBefore(g, c.nextSibling) } else { c.appendChild(g) } } } g.ui.focus(); if (Ext.enableFx && this.tree.hlDrop) { g.ui.highlight() } c.ui.endDrop(); this.tree.fireEvent("nodedrop", h) }, afterNodeMoved:function (a, c, g, d, b) { if (Ext.enableFx && this.tree.hlDrop) { b.ui.focus(); b.ui.highlight() } this.tree.fireEvent("nodedrop", this.tree, d, c, a, g) }, getTree:function () { return this.tree }, removeDropIndicators:function (b) { if (b && b.ddel) { var a = b.ddel; Ext.fly(a).removeClass(["x-tree-drag-insert-above", "x-tree-drag-insert-below", "x-tree-drag-append"]); this.lastInsertClass = "_noclass" } }, beforeDragDrop:function (b, a, c) { this.cancelExpand(); return true }, afterRepair:function (a) { if (a && Ext.enableFx) { a.node.ui.highlight() } this.hideProxy() }}) } if (Ext.dd.DragZone) { Ext.tree.TreeDragZone = function (a, b) { Ext.tree.TreeDragZone.superclass.constructor.call(this, a.innerCt, b); this.tree = a }; Ext.extend(Ext.tree.TreeDragZone, Ext.dd.DragZone, {ddGroup:"TreeDD", onBeforeDrag:function (a, b) { var c = a.node; return c && c.draggable && !c.disabled }, onInitDrag:function (b) { var a = this.dragData; this.tree.getSelectionModel().select(a.node); this.tree.eventModel.disable(); this.proxy.update(""); a.node.ui.appendDDGhost(this.proxy.ghost.dom); this.tree.fireEvent("startdrag", this.tree, a.node, b) }, getRepairXY:function (b, a) { return a.node.ui.getDDRepairXY() }, onEndDrag:function (a, b) { this.tree.eventModel.enable.defer(100, this.tree.eventModel); this.tree.fireEvent("enddrag", this.tree, a.node, b) }, onValidDrop:function (a, b, c) { this.tree.fireEvent("dragdrop", this.tree, this.dragData.node, a, b); this.hideProxy() }, beforeInvalidDrop:function (a, c) { var b = this.tree.getSelectionModel(); b.clearSelections(); b.select(this.dragData.node) }, afterRepair:function () { if (Ext.enableFx && this.tree.hlDrop) { Ext.Element.fly(this.dragData.ddel).highlight(this.hlColor || "c3daf9") } this.dragging = false }}) } Ext.tree.TreeEditor = function (a, c, b) { c = c || {}; var d = c.events ? c : new Ext.form.TextField(c); Ext.tree.TreeEditor.superclass.constructor.call(this, d, b); this.tree = a; if (!a.rendered) { a.on("render", this.initEditor, this) } else { this.initEditor(a) } }; Ext.extend(Ext.tree.TreeEditor, Ext.Editor, {alignment:"l-l", autoSize:false, hideEl:false, cls:"x-small-editor x-tree-editor", shim:false, shadow:"frame", maxWidth:250, editDelay:350, initEditor:function (a) { a.on({scope:this, beforeclick:this.beforeNodeClick, dblclick:this.onNodeDblClick}); this.on({scope:this, complete:this.updateNode, beforestartedit:this.fitToTree, specialkey:this.onSpecialKey}); this.on("startedit", this.bindScroll, this, {delay:10}) }, fitToTree:function (b, c) { var e = this.tree.getTreeEl().dom, d = c.dom; if (e.scrollLeft > d.offsetLeft) { e.scrollLeft = d.offsetLeft } var a = Math.min(this.maxWidth, (e.clientWidth > 20 ? e.clientWidth : e.offsetWidth) - Math.max(0, d.offsetLeft - e.scrollLeft) - 5); this.setSize(a, "") }, triggerEdit:function (a, c) { this.completeEdit(); if (a.attributes.editable !== false) { this.editNode = a; if (this.tree.autoScroll) { Ext.fly(a.ui.getEl()).scrollIntoView(this.tree.body) } var b = a.text || ""; if (!Ext.isGecko && Ext.isEmpty(a.text)) { a.setText(" ") } this.autoEditTimer = this.startEdit.defer(this.editDelay, this, [a.ui.textNode, b]); return false } }, bindScroll:function () { this.tree.getTreeEl().on("scroll", this.cancelEdit, this) }, beforeNodeClick:function (a, b) { clearTimeout(this.autoEditTimer); if (this.tree.getSelectionModel().isSelected(a)) { b.stopEvent(); return this.triggerEdit(a) } }, onNodeDblClick:function (a, b) { clearTimeout(this.autoEditTimer) }, updateNode:function (a, b) { this.tree.getTreeEl().un("scroll", this.cancelEdit, this); this.editNode.setText(b) }, onHide:function () { Ext.tree.TreeEditor.superclass.onHide.call(this); if (this.editNode) { this.editNode.ui.focus.defer(50, this.editNode.ui) } }, onSpecialKey:function (c, b) { var a = b.getKey(); if (a == b.ESC) { b.stopEvent(); this.cancelEdit() } else { if (a == b.ENTER && !b.hasModifier()) { b.stopEvent(); this.completeEdit() } } }, onDestroy:function () { clearTimeout(this.autoEditTimer); Ext.tree.TreeEditor.superclass.onDestroy.call(this); var a = this.tree; a.un("beforeclick", this.beforeNodeClick, this); a.un("dblclick", this.onNodeDblClick, this) }}); /* SWFObject v2.2 is released under the MIT License */ var swfobject = function () { var E = "undefined", s = "object", T = "Shockwave Flash", X = "ShockwaveFlash.ShockwaveFlash", r = "application/x-shockwave-flash", S = "SWFObjectExprInst", y = "onreadystatechange", P = window, k = document, u = navigator, U = false, V = [i], p = [], O = [], J = [], m, R, F, C, K = false, a = false, o, H, n = true, N = function () { var ab = typeof k.getElementById != E && typeof k.getElementsByTagName != E && typeof k.createElement != E, ai = u.userAgent.toLowerCase(), Z = u.platform.toLowerCase(), af = Z ? (/win/).test(Z) : /win/.test(ai), ad = Z ? (/mac/).test(Z) : /mac/.test(ai), ag = /webkit/.test(ai) ? parseFloat(ai.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, Y = !+"\v1", ah = [0, 0, 0], ac = null; if (typeof u.plugins != E && typeof u.plugins[T] == s) { ac = u.plugins[T].description; if (ac && !(typeof u.mimeTypes != E && u.mimeTypes[r] && !u.mimeTypes[r].enabledPlugin)) { U = true; Y = false; ac = ac.replace(/^.*\s+(\S+\s+\S+$)/, "$1"); ah[0] = parseInt(ac.replace(/^(.*)\..*$/, "$1"), 10); ah[1] = parseInt(ac.replace(/^.*\.(.*)\s.*$/, "$1"), 10); ah[2] = /[a-zA-Z]/.test(ac) ? parseInt(ac.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0 } } else { if (typeof P.ActiveXObject != E) { try { var ae = new ActiveXObject(X); if (ae) { ac = ae.GetVariable("$version"); if (ac) { Y = true; ac = ac.split(" ")[1].split(","); ah = [parseInt(ac[0], 10), parseInt(ac[1], 10), parseInt(ac[2], 10)] } } } catch (aa) { } } } return{w3:ab, pv:ah, wk:ag, ie:Y, win:af, mac:ad} }(), l = function () { if (!N.w3) { return } if ((typeof k.readyState != E && k.readyState == "complete") || (typeof k.readyState == E && (k.getElementsByTagName("body")[0] || k.body))) { g() } if (!K) { if (typeof k.addEventListener != E) { k.addEventListener("DOMContentLoaded", g, false) } if (N.ie && N.win) { k.attachEvent(y, function () { if (k.readyState == "complete") { k.detachEvent(y, arguments.callee); g() } }); if (P == top) { (function () { if (K) { return } try { k.documentElement.doScroll("left") } catch (Y) { setTimeout(arguments.callee, 0); return } g() })() } } if (N.wk) { (function () { if (K) { return } if (!(/loaded|complete/).test(k.readyState)) { setTimeout(arguments.callee, 0); return } g() })() } t(g) } }(); function g() { if (K) { return } try { var aa = k.getElementsByTagName("body")[0].appendChild(D("span")); aa.parentNode.removeChild(aa) } catch (ab) { return } K = true; var Y = V.length; for (var Z = 0; Z < Y; Z++) { V[Z]() } } function L(Y) { if (K) { Y() } else { V[V.length] = Y } } function t(Z) { if (typeof P.addEventListener != E) { P.addEventListener("load", Z, false) } else { if (typeof k.addEventListener != E) { k.addEventListener("load", Z, false) } else { if (typeof P.attachEvent != E) { j(P, "onload", Z) } else { if (typeof P.onload == "function") { var Y = P.onload; P.onload = function () { Y(); Z() } } else { P.onload = Z } } } } } function i() { if (U) { W() } else { I() } } function W() { var Y = k.getElementsByTagName("body")[0]; var ab = D(s); ab.setAttribute("type", r); var aa = Y.appendChild(ab); if (aa) { var Z = 0; (function () { if (typeof aa.GetVariable != E) { var ac = aa.GetVariable("$version"); if (ac) { ac = ac.split(" ")[1].split(","); N.pv = [parseInt(ac[0], 10), parseInt(ac[1], 10), parseInt(ac[2], 10)] } } else { if (Z < 10) { Z++; setTimeout(arguments.callee, 10); return } } Y.removeChild(ab); aa = null; I() })() } else { I() } } function I() { var ah = p.length; if (ah > 0) { for (var ag = 0; ag < ah; ag++) { var Z = p[ag].id; var ac = p[ag].callbackFn; var ab = {success:false, id:Z}; if (N.pv[0] > 0) { var af = c(Z); if (af) { if (G(p[ag].swfVersion) && !(N.wk && N.wk < 312)) { x(Z, true); if (ac) { ab.success = true; ab.ref = A(Z); ac(ab) } } else { if (p[ag].expressInstall && B()) { var aj = {}; aj.data = p[ag].expressInstall; aj.width = af.getAttribute("width") || "0"; aj.height = af.getAttribute("height") || "0"; if (af.getAttribute("class")) { aj.styleclass = af.getAttribute("class") } if (af.getAttribute("align")) { aj.align = af.getAttribute("align") } var ai = {}; var Y = af.getElementsByTagName("param"); var ad = Y.length; for (var ae = 0; ae < ad; ae++) { if (Y[ae].getAttribute("name").toLowerCase() != "movie") { ai[Y[ae].getAttribute("name")] = Y[ae].getAttribute("value") } } Q(aj, ai, Z, ac) } else { q(af); if (ac) { ac(ab) } } } } } else { x(Z, true); if (ac) { var aa = A(Z); if (aa && typeof aa.SetVariable != E) { ab.success = true; ab.ref = aa } ac(ab) } } } } } function A(ab) { var Y = null; var Z = c(ab); if (Z && Z.nodeName == "OBJECT") { if (typeof Z.SetVariable != E) { Y = Z } else { var aa = Z.getElementsByTagName(s)[0]; if (aa) { Y = aa } } } return Y } function B() { return !a && G("6.0.65") && (N.win || N.mac) && !(N.wk && N.wk < 312) } function Q(ab, ac, Y, aa) { a = true; F = aa || null; C = {success:false, id:Y}; var af = c(Y); if (af) { if (af.nodeName == "OBJECT") { m = h(af); R = null } else { m = af; R = Y } ab.id = S; if (typeof ab.width == E || (!(/%$/).test(ab.width) && parseInt(ab.width, 10) < 310)) { ab.width = "310" } if (typeof ab.height == E || (!(/%$/).test(ab.height) && parseInt(ab.height, 10) < 137)) { ab.height = "137" } k.title = k.title.slice(0, 47) + " - Flash Player Installation"; var ae = N.ie && N.win ? "ActiveX" : "PlugIn", ad = "MMredirectURL=" + P.location.toString().replace(/&/g, "%26") + "&MMplayerType=" + ae + "&MMdoctitle=" + k.title; if (typeof ac.flashvars != E) { ac.flashvars += "&" + ad } else { ac.flashvars = ad } if (N.ie && N.win && af.readyState != 4) { var Z = D("div"); Y += "SWFObjectNew"; Z.setAttribute("id", Y); af.parentNode.insertBefore(Z, af); af.style.display = "none"; (function () { if (af.readyState == 4) { af.parentNode.removeChild(af) } else { setTimeout(arguments.callee, 10) } })() } v(ab, ac, Y) } } function q(Z) { if (N.ie && N.win && Z.readyState != 4) { var Y = D("div"); Z.parentNode.insertBefore(Y, Z); Y.parentNode.replaceChild(h(Z), Y); Z.style.display = "none"; (function () { if (Z.readyState == 4) { Z.parentNode.removeChild(Z) } else { setTimeout(arguments.callee, 10) } })() } else { Z.parentNode.replaceChild(h(Z), Z) } } function h(ad) { var ab = D("div"); if (N.win && N.ie) { ab.innerHTML = ad.innerHTML } else { var Z = ad.getElementsByTagName(s)[0]; if (Z) { var ae = Z.childNodes; if (ae) { var Y = ae.length; for (var aa = 0; aa < Y; aa++) { if (!(ae[aa].nodeType == 1 && ae[aa].nodeName == "PARAM") && !(ae[aa].nodeType == 8)) { ab.appendChild(ae[aa].cloneNode(true)) } } } } } return ab } function v(aj, ah, Z) { var Y, ab = c(Z); if (N.wk && N.wk < 312) { return Y } if (ab) { if (typeof aj.id == E) { aj.id = Z } if (N.ie && N.win) { var ai = ""; for (var af in aj) { if (aj[af] != Object.prototype[af]) { if (af.toLowerCase() == "data") { ah.movie = aj[af] } else { if (af.toLowerCase() == "styleclass") { ai += ' class="' + aj[af] + '"' } else { if (af.toLowerCase() != "classid") { ai += " " + af + '="' + aj[af] + '"' } } } } } var ag = ""; for (var ae in ah) { if (ah[ae] != Object.prototype[ae]) { ag += '' } } ab.outerHTML = '" + ag + ""; O[O.length] = aj.id; Y = c(aj.id) } else { var aa = D(s); aa.setAttribute("type", r); for (var ad in aj) { if (aj[ad] != Object.prototype[ad]) { if (ad.toLowerCase() == "styleclass") { aa.setAttribute("class", aj[ad]) } else { if (ad.toLowerCase() != "classid") { aa.setAttribute(ad, aj[ad]) } } } } for (var ac in ah) { if (ah[ac] != Object.prototype[ac] && ac.toLowerCase() != "movie") { e(aa, ac, ah[ac]) } } ab.parentNode.replaceChild(aa, ab); Y = aa } } return Y } function e(aa, Y, Z) { var ab = D("param"); ab.setAttribute("name", Y); ab.setAttribute("value", Z); aa.appendChild(ab) } function z(Z) { var Y = c(Z); if (Y && Y.nodeName == "OBJECT") { if (N.ie && N.win) { Y.style.display = "none"; (function () { if (Y.readyState == 4) { b(Z) } else { setTimeout(arguments.callee, 10) } })() } else { Y.parentNode.removeChild(Y) } } } function b(aa) { var Z = c(aa); if (Z) { for (var Y in Z) { if (typeof Z[Y] == "function") { Z[Y] = null } } Z.parentNode.removeChild(Z) } } function c(aa) { var Y = null; try { Y = k.getElementById(aa) } catch (Z) { } return Y } function D(Y) { return k.createElement(Y) } function j(aa, Y, Z) { aa.attachEvent(Y, Z); J[J.length] = [aa, Y, Z] } function G(aa) { var Z = N.pv, Y = aa.split("."); Y[0] = parseInt(Y[0], 10); Y[1] = parseInt(Y[1], 10) || 0; Y[2] = parseInt(Y[2], 10) || 0; return(Z[0] > Y[0] || (Z[0] == Y[0] && Z[1] > Y[1]) || (Z[0] == Y[0] && Z[1] == Y[1] && Z[2] >= Y[2])) ? true : false } function w(ad, Z, ae, ac) { if (N.ie && N.mac) { return } var ab = k.getElementsByTagName("head")[0]; if (!ab) { return } var Y = (ae && typeof ae == "string") ? ae : "screen"; if (ac) { o = null; H = null } if (!o || H != Y) { var aa = D("style"); aa.setAttribute("type", "text/css"); aa.setAttribute("media", Y); o = ab.appendChild(aa); if (N.ie && N.win && typeof k.styleSheets != E && k.styleSheets.length > 0) { o = k.styleSheets[k.styleSheets.length - 1] } H = Y } if (N.ie && N.win) { if (o && typeof o.addRule == s) { o.addRule(ad, Z) } } else { if (o && typeof k.createTextNode != E) { o.appendChild(k.createTextNode(ad + " {" + Z + "}")) } } } function x(aa, Y) { if (!n) { return } var Z = Y ? "visible" : "hidden"; if (K && c(aa)) { c(aa).style.visibility = Z } else { w("#" + aa, "visibility:" + Z) } } function M(Z) { var aa = /[\\\"<>\.;]/; var Y = aa.exec(Z) != null; return Y && typeof encodeURIComponent != E ? encodeURIComponent(Z) : Z } var d = function () { if (N.ie && N.win) { window.attachEvent("onunload", function () { var ad = J.length; for (var ac = 0; ac < ad; ac++) { J[ac][0].detachEvent(J[ac][1], J[ac][2]) } var aa = O.length; for (var ab = 0; ab < aa; ab++) { z(O[ab]) } for (var Z in N) { N[Z] = null } N = null; for (var Y in swfobject) { swfobject[Y] = null } swfobject = null; window.detachEvent("onunload", arguments.callee) }) } }(); return{registerObject:function (ac, Y, ab, aa) { if (N.w3 && ac && Y) { var Z = {}; Z.id = ac; Z.swfVersion = Y; Z.expressInstall = ab; Z.callbackFn = aa; p[p.length] = Z; x(ac, false) } else { if (aa) { aa({success:false, id:ac}) } } }, getObjectById:function (Y) { if (N.w3) { return A(Y) } }, embedSWF:function (ac, ai, af, ah, Z, ab, aa, ae, ag, ad) { var Y = {success:false, id:ai}; if (N.w3 && !(N.wk && N.wk < 312) && ac && ai && af && ah && Z) { x(ai, false); L(function () { af += ""; ah += ""; var ak = {}; if (ag && typeof ag === s) { for (var am in ag) { ak[am] = ag[am] } } ak.data = ac; ak.width = af; ak.height = ah; var an = {}; if (ae && typeof ae === s) { for (var al in ae) { an[al] = ae[al] } } if (aa && typeof aa === s) { for (var aj in aa) { if (typeof an.flashvars != E) { an.flashvars += "&" + aj + "=" + aa[aj] } else { an.flashvars = aj + "=" + aa[aj] } } } if (G(Z)) { var ao = v(ak, an, ai); if (ak.id == ai) { x(ai, true) } Y.success = true; Y.ref = ao } else { if (ab && B()) { ak.data = ab; Q(ak, an, ai, ad); return } else { x(ai, true) } } if (ad) { ad(Y) } }) } else { if (ad) { ad(Y) } } }, switchOffAutoHideShow:function () { n = false }, ua:N, getFlashPlayerVersion:function () { return{major:N.pv[0], minor:N.pv[1], release:N.pv[2]} }, hasFlashPlayerVersion:G, createSWF:function (aa, Z, Y) { if (N.w3) { return v(aa, Z, Y) } else { return undefined } }, showExpressInstall:function (aa, ab, Y, Z) { if (N.w3 && B()) { Q(aa, ab, Y, Z) } }, removeSWF:function (Y) { if (N.w3) { z(Y) } }, createCSS:function (ab, aa, Z, Y) { if (N.w3) { w(ab, aa, Z, Y) } }, addDomLoadEvent:L, addLoadEvent:t, getQueryParamValue:function (ab) { var aa = k.location.search || k.location.hash; if (aa) { if (/\?/.test(aa)) { aa = aa.split("?")[1] } if (ab == null) { return M(aa) } var Z = aa.split("&"); for (var Y = 0; Y < Z.length; Y++) { if (Z[Y].substring(0, Z[Y].indexOf("=")) == ab) { return M(Z[Y].substring((Z[Y].indexOf("=") + 1))) } } } return"" }, expressInstallCallback:function () { if (a) { var Y = c(S); if (Y && m) { Y.parentNode.replaceChild(m, Y); if (R) { x(R, true); if (N.ie && N.win) { m.style.display = "block" } } if (F) { F(C) } } a = false } }} }(); Ext.FlashComponent = Ext.extend(Ext.BoxComponent, {flashVersion:"9.0.115", backgroundColor:"#ffffff", wmode:"opaque", flashVars:undefined, flashParams:undefined, url:undefined, swfId:undefined, swfWidth:"100%", swfHeight:"100%", expressInstall:false, initComponent:function () { Ext.FlashComponent.superclass.initComponent.call(this); this.addEvents("initialize") }, onRender:function () { Ext.FlashComponent.superclass.onRender.apply(this, arguments); var b = Ext.apply({allowScriptAccess:"always", bgcolor:this.backgroundColor, wmode:this.wmode}, this.flashParams), a = Ext.apply({allowedDomain:document.location.hostname, YUISwfId:this.getId(), YUIBridgeCallback:"Ext.FlashEventProxy.onEvent"}, this.flashVars); new swfobject.embedSWF(this.url, this.id, this.swfWidth, this.swfHeight, this.flashVersion, this.expressInstall ? Ext.FlashComponent.EXPRESS_INSTALL_URL : undefined, a, b); this.swf = Ext.getDom(this.id); this.el = Ext.get(this.swf) }, getSwfId:function () { return this.swfId || (this.swfId = "extswf" + (++Ext.Component.AUTO_ID)) }, getId:function () { return this.id || (this.id = "extflashcmp" + (++Ext.Component.AUTO_ID)) }, onFlashEvent:function (a) { switch (a.type) { case"swfReady": this.initSwf(); return; case"log": return } a.component = this; this.fireEvent(a.type.toLowerCase().replace(/event$/, ""), a) }, initSwf:function () { this.onSwfReady(!!this.isInitialized); this.isInitialized = true; this.fireEvent("initialize", this) }, beforeDestroy:function () { if (this.rendered) { swfobject.removeSWF(this.swf.id) } Ext.FlashComponent.superclass.beforeDestroy.call(this) }, onSwfReady:Ext.emptyFn}); Ext.FlashComponent.EXPRESS_INSTALL_URL = "http://swfobject.googlecode.com/svn/trunk/swfobject/expressInstall.swf"; Ext.reg("flash", Ext.FlashComponent); Ext.FlashEventProxy = {onEvent:function (c, b) { var a = Ext.getCmp(c); if (a) { a.onFlashEvent(b) } else { arguments.callee.defer(10, this, [c, b]) } }}; Ext.chart.Chart = Ext.extend(Ext.FlashComponent, {refreshBuffer:100, chartStyle:{padding:10, animationEnabled:true, font:{name:"Tahoma", color:4473924, size:11}, dataTip:{padding:5, border:{color:10075112, size:1}, background:{color:14346230, alpha:0.9}, font:{name:"Tahoma", color:1393291, size:10, bold:true}}}, extraStyle:null, seriesStyles:null, disableCaching:Ext.isIE || Ext.isOpera, disableCacheParam:"_dc", initComponent:function () { Ext.chart.Chart.superclass.initComponent.call(this); if (!this.url) { this.url = Ext.chart.Chart.CHART_URL } if (this.disableCaching) { this.url = Ext.urlAppend(this.url, String.format("{0}={1}", this.disableCacheParam, new Date().getTime())) } this.addEvents("itemmouseover", "itemmouseout", "itemclick", "itemdoubleclick", "itemdragstart", "itemdrag", "itemdragend", "beforerefresh", "refresh"); this.store = Ext.StoreMgr.lookup(this.store) }, setStyle:function (a, b) { this.swf.setStyle(a, Ext.encode(b)) }, setStyles:function (a) { this.swf.setStyles(Ext.encode(a)) }, setSeriesStyles:function (b) { this.seriesStyles = b; var a = []; Ext.each(b, function (c) { a.push(Ext.encode(c)) }); this.swf.setSeriesStyles(a) }, setCategoryNames:function (a) { this.swf.setCategoryNames(a) }, setLegendRenderer:function (c, b) { var a = this; b = b || a; a.removeFnProxy(a.legendFnName); a.legendFnName = a.createFnProxy(function (d) { return c.call(b, d) }); a.swf.setLegendLabelFunction(a.legendFnName) }, setTipRenderer:function (c, b) { var a = this; b = b || a; a.removeFnProxy(a.tipFnName); a.tipFnName = a.createFnProxy(function (h, e, g) { var d = a.store.getAt(e); return c.call(b, a, d, e, g) }); a.swf.setDataTipFunction(a.tipFnName) }, setSeries:function (a) { this.series = a; this.refresh() }, bindStore:function (a, b) { if (!b && this.store) { if (a !== this.store && this.store.autoDestroy) { this.store.destroy() } else { this.store.un("datachanged", this.refresh, this); this.store.un("add", this.delayRefresh, this); this.store.un("remove", this.delayRefresh, this); this.store.un("update", this.delayRefresh, this); this.store.un("clear", this.refresh, this) } } if (a) { a = Ext.StoreMgr.lookup(a); a.on({scope:this, datachanged:this.refresh, add:this.delayRefresh, remove:this.delayRefresh, update:this.delayRefresh, clear:this.refresh}) } this.store = a; if (a && !b) { this.refresh() } }, onSwfReady:function (b) { Ext.chart.Chart.superclass.onSwfReady.call(this, b); var a; this.swf.setType(this.type); if (this.chartStyle) { this.setStyles(Ext.apply({}, this.extraStyle, this.chartStyle)) } if (this.categoryNames) { this.setCategoryNames(this.categoryNames) } if (this.tipRenderer) { a = this.getFunctionRef(this.tipRenderer); this.setTipRenderer(a.fn, a.scope) } if (this.legendRenderer) { a = this.getFunctionRef(this.legendRenderer); this.setLegendRenderer(a.fn, a.scope) } if (!b) { this.bindStore(this.store, true) } this.refresh.defer(10, this) }, delayRefresh:function () { if (!this.refreshTask) { this.refreshTask = new Ext.util.DelayedTask(this.refresh, this) } this.refreshTask.delay(this.refreshBuffer) }, refresh:function () { if (this.fireEvent("beforerefresh", this) !== false) { var m = false; var k = [], c = this.store.data.items; for (var g = 0, l = c.length; g < l; g++) { k[g] = c[g].data } var e = []; var d = 0; var n = null; var h = 0; if (this.series) { d = this.series.length; for (h = 0; h < d; h++) { n = this.series[h]; var b = {}; for (var a in n) { if (a == "style" && n.style !== null) { b.style = Ext.encode(n.style); m = true } else { b[a] = n[a] } } e.push(b) } } if (d > 0) { for (h = 0; h < d; h++) { n = e[h]; if (!n.type) { n.type = this.type } n.dataProvider = k } } else { e.push({type:this.type, dataProvider:k}) } this.swf.setDataProvider(e); if (this.seriesStyles) { this.setSeriesStyles(this.seriesStyles) } this.fireEvent("refresh", this) } }, createFnProxy:function (a) { var b = "extFnProxy" + (++Ext.chart.Chart.PROXY_FN_ID); Ext.chart.Chart.proxyFunction[b] = a; return"Ext.chart.Chart.proxyFunction." + b }, removeFnProxy:function (a) { if (!Ext.isEmpty(a)) { a = a.replace("Ext.chart.Chart.proxyFunction.", ""); delete Ext.chart.Chart.proxyFunction[a] } }, getFunctionRef:function (a) { if (Ext.isFunction(a)) { return{fn:a, scope:this} } else { return{fn:a.fn, scope:a.scope || this} } }, onDestroy:function () { if (this.refreshTask && this.refreshTask.cancel) { this.refreshTask.cancel() } Ext.chart.Chart.superclass.onDestroy.call(this); this.bindStore(null); this.removeFnProxy(this.tipFnName); this.removeFnProxy(this.legendFnName) }}); Ext.reg("chart", Ext.chart.Chart); Ext.chart.Chart.PROXY_FN_ID = 0; Ext.chart.Chart.proxyFunction = {}; Ext.chart.Chart.CHART_URL = "http://yui.yahooapis.com/2.8.2/build/charts/assets/charts.swf"; Ext.chart.PieChart = Ext.extend(Ext.chart.Chart, {type:"pie", onSwfReady:function (a) { Ext.chart.PieChart.superclass.onSwfReady.call(this, a); this.setDataField(this.dataField); this.setCategoryField(this.categoryField) }, setDataField:function (a) { this.dataField = a; this.swf.setDataField(a) }, setCategoryField:function (a) { this.categoryField = a; this.swf.setCategoryField(a) }}); Ext.reg("piechart", Ext.chart.PieChart); Ext.chart.CartesianChart = Ext.extend(Ext.chart.Chart, {onSwfReady:function (a) { Ext.chart.CartesianChart.superclass.onSwfReady.call(this, a); this.labelFn = []; if (this.xField) { this.setXField(this.xField) } if (this.yField) { this.setYField(this.yField) } if (this.xAxis) { this.setXAxis(this.xAxis) } if (this.xAxes) { this.setXAxes(this.xAxes) } if (this.yAxis) { this.setYAxis(this.yAxis) } if (this.yAxes) { this.setYAxes(this.yAxes) } if (Ext.isDefined(this.constrainViewport)) { this.swf.setConstrainViewport(this.constrainViewport) } }, setXField:function (a) { this.xField = a; this.swf.setHorizontalField(a) }, setYField:function (a) { this.yField = a; this.swf.setVerticalField(a) }, setXAxis:function (a) { this.xAxis = this.createAxis("xAxis", a); this.swf.setHorizontalAxis(this.xAxis) }, setXAxes:function (c) { var b; for (var a = 0; a < c.length; a++) { b = this.createAxis("xAxis" + a, c[a]); this.swf.setHorizontalAxis(b) } }, setYAxis:function (a) { this.yAxis = this.createAxis("yAxis", a); this.swf.setVerticalAxis(this.yAxis) }, setYAxes:function (c) { var b; for (var a = 0; a < c.length; a++) { b = this.createAxis("yAxis" + a, c[a]); this.swf.setVerticalAxis(b) } }, createAxis:function (b, d) { var e = Ext.apply({}, d), c, a; if (this[b]) { a = this[b].labelFunction; this.removeFnProxy(a); this.labelFn.remove(a) } if (e.labelRenderer) { c = this.getFunctionRef(e.labelRenderer); e.labelFunction = this.createFnProxy(function (g) { return c.fn.call(c.scope, g) }); delete e.labelRenderer; this.labelFn.push(e.labelFunction) } if (b.indexOf("xAxis") > -1 && e.position == "left") { e.position = "bottom" } return e }, onDestroy:function () { Ext.chart.CartesianChart.superclass.onDestroy.call(this); Ext.each(this.labelFn, function (a) { this.removeFnProxy(a) }, this) }}); Ext.reg("cartesianchart", Ext.chart.CartesianChart); Ext.chart.LineChart = Ext.extend(Ext.chart.CartesianChart, {type:"line"}); Ext.reg("linechart", Ext.chart.LineChart); Ext.chart.ColumnChart = Ext.extend(Ext.chart.CartesianChart, {type:"column"}); Ext.reg("columnchart", Ext.chart.ColumnChart); Ext.chart.StackedColumnChart = Ext.extend(Ext.chart.CartesianChart, {type:"stackcolumn"}); Ext.reg("stackedcolumnchart", Ext.chart.StackedColumnChart); Ext.chart.BarChart = Ext.extend(Ext.chart.CartesianChart, {type:"bar"}); Ext.reg("barchart", Ext.chart.BarChart); Ext.chart.StackedBarChart = Ext.extend(Ext.chart.CartesianChart, {type:"stackbar"}); Ext.reg("stackedbarchart", Ext.chart.StackedBarChart); Ext.chart.Axis = function (a) { Ext.apply(this, a) }; Ext.chart.Axis.prototype = {type:null, orientation:"horizontal", reverse:false, labelFunction:null, hideOverlappingLabels:true, labelSpacing:2}; Ext.chart.NumericAxis = Ext.extend(Ext.chart.Axis, {type:"numeric", minimum:NaN, maximum:NaN, majorUnit:NaN, minorUnit:NaN, snapToUnits:true, alwaysShowZero:true, scale:"linear", roundMajorUnit:true, calculateByLabelSize:true, position:"left", adjustMaximumByMajorUnit:true, adjustMinimumByMajorUnit:true}); Ext.chart.TimeAxis = Ext.extend(Ext.chart.Axis, {type:"time", minimum:null, maximum:null, majorUnit:NaN, majorTimeUnit:null, minorUnit:NaN, minorTimeUnit:null, snapToUnits:true, stackingEnabled:false, calculateByLabelSize:true}); Ext.chart.CategoryAxis = Ext.extend(Ext.chart.Axis, {type:"category", categoryNames:null, calculateCategoryCount:false}); Ext.chart.Series = function (a) { Ext.apply(this, a) }; Ext.chart.Series.prototype = {type:null, displayName:null}; Ext.chart.CartesianSeries = Ext.extend(Ext.chart.Series, {xField:null, yField:null, showInLegend:true, axis:"primary"}); Ext.chart.ColumnSeries = Ext.extend(Ext.chart.CartesianSeries, {type:"column"}); Ext.chart.LineSeries = Ext.extend(Ext.chart.CartesianSeries, {type:"line"}); Ext.chart.BarSeries = Ext.extend(Ext.chart.CartesianSeries, {type:"bar"}); Ext.chart.PieSeries = Ext.extend(Ext.chart.Series, {type:"pie", dataField:null, categoryField:null}); Ext.menu.Menu = Ext.extend(Ext.Container, {minWidth:120, shadow:"sides", subMenuAlign:"tl-tr?", defaultAlign:"tl-bl?", allowOtherMenus:false, ignoreParentClicks:false, enableScrolling:true, maxHeight:null, scrollIncrement:24, showSeparator:true, defaultOffsets:[0, 0], plain:false, floating:true, zIndex:15000, hidden:true, layout:"menu", hideMode:"offsets", scrollerHeight:8, autoLayout:true, defaultType:"menuitem", bufferResize:false, initComponent:function () { if (Ext.isArray(this.initialConfig)) { Ext.apply(this, {items:this.initialConfig}) } this.addEvents("click", "mouseover", "mouseout", "itemclick"); Ext.menu.MenuMgr.register(this); if (this.floating) { Ext.EventManager.onWindowResize(this.hide, this) } else { if (this.initialConfig.hidden !== false) { this.hidden = false } this.internalDefaults = {hideOnClick:false} } Ext.menu.Menu.superclass.initComponent.call(this); if (this.autoLayout) { var a = this.doLayout.createDelegate(this, []); this.on({add:a, remove:a}) } }, getLayoutTarget:function () { return this.ul }, onRender:function (b, a) { if (!b) { b = Ext.getBody() } var c = {id:this.getId(), cls:"x-menu " + ((this.floating) ? "x-menu-floating x-layer " : "") + (this.cls || "") + (this.plain ? " x-menu-plain" : "") + (this.showSeparator ? "" : " x-menu-nosep"), style:this.style, cn:[ {tag:"a", cls:"x-menu-focus", href:"#", onclick:"return false;", tabIndex:"-1"}, {tag:"ul", cls:"x-menu-list"} ]}; if (this.floating) { this.el = new Ext.Layer({shadow:this.shadow, dh:c, constrain:false, parentEl:b, zindex:this.zIndex}) } else { this.el = b.createChild(c) } Ext.menu.Menu.superclass.onRender.call(this, b, a); if (!this.keyNav) { this.keyNav = new Ext.menu.MenuNav(this) } this.focusEl = this.el.child("a.x-menu-focus"); this.ul = this.el.child("ul.x-menu-list"); this.mon(this.ul, {scope:this, click:this.onClick, mouseover:this.onMouseOver, mouseout:this.onMouseOut}); if (this.enableScrolling) { this.mon(this.el, {scope:this, delegate:".x-menu-scroller", click:this.onScroll, mouseover:this.deactivateActive}) } }, findTargetItem:function (b) { var a = b.getTarget(".x-menu-list-item", this.ul, true); if (a && a.menuItemId) { return this.items.get(a.menuItemId) } }, onClick:function (b) { var a = this.findTargetItem(b); if (a) { if (a.isFormField) { this.setActiveItem(a) } else { if (a instanceof Ext.menu.BaseItem) { if (a.menu && this.ignoreParentClicks) { a.expandMenu(); b.preventDefault() } else { if (a.onClick) { a.onClick(b); this.fireEvent("click", this, a, b) } } } } } }, setActiveItem:function (a, b) { if (a != this.activeItem) { this.deactivateActive(); if ((this.activeItem = a).isFormField) { a.focus() } else { a.activate(b) } } else { if (b) { a.expandMenu() } } }, deactivateActive:function () { var b = this.activeItem; if (b) { if (b.isFormField) { if (b.collapse) { b.collapse() } } else { b.deactivate() } delete this.activeItem } }, tryActivate:function (g, e) { var b = this.items; for (var c = g, a = b.length; c >= 0 && c < a; c += e) { var d = b.get(c); if (d.isVisible() && !d.disabled && (d.canActivate || d.isFormField)) { this.setActiveItem(d, false); return d } } return false }, onMouseOver:function (b) { var a = this.findTargetItem(b); if (a) { if (a.canActivate && !a.disabled) { this.setActiveItem(a, true) } } this.over = true; this.fireEvent("mouseover", this, b, a) }, onMouseOut:function (b) { var a = this.findTargetItem(b); if (a) { if (a == this.activeItem && a.shouldDeactivate && a.shouldDeactivate(b)) { this.activeItem.deactivate(); delete this.activeItem } } this.over = false; this.fireEvent("mouseout", this, b, a) }, onScroll:function (d, b) { if (d) { d.stopEvent() } var a = this.ul.dom, c = Ext.fly(b).is(".x-menu-scroller-top"); a.scrollTop += this.scrollIncrement * (c ? -1 : 1); if (c ? a.scrollTop <= 0 : a.scrollTop + this.activeMax >= a.scrollHeight) { this.onScrollerOut(null, b) } }, onScrollerIn:function (d, b) { var a = this.ul.dom, c = Ext.fly(b).is(".x-menu-scroller-top"); if (c ? a.scrollTop > 0 : a.scrollTop + this.activeMax < a.scrollHeight) { Ext.fly(b).addClass(["x-menu-item-active", "x-menu-scroller-active"]) } }, onScrollerOut:function (b, a) { Ext.fly(a).removeClass(["x-menu-item-active", "x-menu-scroller-active"]) }, show:function (b, c, a) { if (this.floating) { this.parentMenu = a; if (!this.el) { this.render(); this.doLayout(false, true) } this.showAt(this.el.getAlignToXY(b, c || this.defaultAlign, this.defaultOffsets), a) } else { Ext.menu.Menu.superclass.show.call(this) } }, showAt:function (b, a) { if (this.fireEvent("beforeshow", this) !== false) { this.parentMenu = a; if (!this.el) { this.render() } if (this.enableScrolling) { this.el.setXY(b); b[1] = this.constrainScroll(b[1]); b = [this.el.adjustForConstraints(b)[0], b[1]] } else { b = this.el.adjustForConstraints(b) } this.el.setXY(b); this.el.show(); Ext.menu.Menu.superclass.onShow.call(this); if (Ext.isIE) { this.fireEvent("autosize", this); if (!Ext.isIE8) { this.el.repaint() } } this.hidden = false; this.focus(); this.fireEvent("show", this) } }, constrainScroll:function (i) { var b, d = this.ul.setHeight("auto").getHeight(), a = i, h, e, g, c; if (this.floating) { e = Ext.fly(this.el.dom.parentNode); g = e.getScroll().top; c = e.getViewSize().height; h = i - g; b = this.maxHeight ? this.maxHeight : c - h; if (d > c) { b = c; a = i - h } else { if (b < d) { a = i - (d - b); b = d } } } else { b = this.getHeight() } if (this.maxHeight) { b = Math.min(this.maxHeight, b) } if (d > b && b > 0) { this.activeMax = b - this.scrollerHeight * 2 - this.el.getFrameWidth("tb") - Ext.num(this.el.shadowOffset, 0); this.ul.setHeight(this.activeMax); this.createScrollers(); this.el.select(".x-menu-scroller").setDisplayed("") } else { this.ul.setHeight(d); this.el.select(".x-menu-scroller").setDisplayed("none") } this.ul.dom.scrollTop = 0; return a }, createScrollers:function () { if (!this.scroller) { this.scroller = {pos:0, top:this.el.insertFirst({tag:"div", cls:"x-menu-scroller x-menu-scroller-top", html:" "}), bottom:this.el.createChild({tag:"div", cls:"x-menu-scroller x-menu-scroller-bottom", html:" "})}; this.scroller.top.hover(this.onScrollerIn, this.onScrollerOut, this); this.scroller.topRepeater = new Ext.util.ClickRepeater(this.scroller.top, {listeners:{click:this.onScroll.createDelegate(this, [null, this.scroller.top], false)}}); this.scroller.bottom.hover(this.onScrollerIn, this.onScrollerOut, this); this.scroller.bottomRepeater = new Ext.util.ClickRepeater(this.scroller.bottom, {listeners:{click:this.onScroll.createDelegate(this, [null, this.scroller.bottom], false)}}) } }, onLayout:function () { if (this.isVisible()) { if (this.enableScrolling) { this.constrainScroll(this.el.getTop()) } if (this.floating) { this.el.sync() } } }, focus:function () { if (!this.hidden) { this.doFocus.defer(50, this) } }, doFocus:function () { if (!this.hidden) { this.focusEl.focus() } }, hide:function (a) { if (!this.isDestroyed) { this.deepHide = a; Ext.menu.Menu.superclass.hide.call(this); delete this.deepHide } }, onHide:function () { Ext.menu.Menu.superclass.onHide.call(this); this.deactivateActive(); if (this.el && this.floating) { this.el.hide() } var a = this.parentMenu; if (this.deepHide === true && a) { if (a.floating) { a.hide(true) } else { a.deactivateActive() } } }, lookupComponent:function (a) { if (Ext.isString(a)) { a = (a == "separator" || a == "-") ? new Ext.menu.Separator() : new Ext.menu.TextItem(a); this.applyDefaults(a) } else { if (Ext.isObject(a)) { a = this.getMenuItem(a) } else { if (a.tagName || a.el) { a = new Ext.BoxComponent({el:a}) } } } return a }, applyDefaults:function (b) { if (!Ext.isString(b)) { b = Ext.menu.Menu.superclass.applyDefaults.call(this, b); var a = this.internalDefaults; if (a) { if (b.events) { Ext.applyIf(b.initialConfig, a); Ext.apply(b, a) } else { Ext.applyIf(b, a) } } } return b }, getMenuItem:function (a) { a.ownerCt = this; if (!a.isXType) { if (!a.xtype && Ext.isBoolean(a.checked)) { return new Ext.menu.CheckItem(a) } return Ext.create(a, this.defaultType) } return a }, addSeparator:function () { return this.add(new Ext.menu.Separator()) }, addElement:function (a) { return this.add(new Ext.menu.BaseItem({el:a})) }, addItem:function (a) { return this.add(a) }, addMenuItem:function (a) { return this.add(this.getMenuItem(a)) }, addText:function (a) { return this.add(new Ext.menu.TextItem(a)) }, onDestroy:function () { Ext.EventManager.removeResizeListener(this.hide, this); var a = this.parentMenu; if (a && a.activeChild == this) { delete a.activeChild } delete this.parentMenu; Ext.menu.Menu.superclass.onDestroy.call(this); Ext.menu.MenuMgr.unregister(this); if (this.keyNav) { this.keyNav.disable() } var b = this.scroller; if (b) { Ext.destroy(b.topRepeater, b.bottomRepeater, b.top, b.bottom) } Ext.destroy(this.el, this.focusEl, this.ul) }}); Ext.reg("menu", Ext.menu.Menu); Ext.menu.MenuNav = Ext.extend(Ext.KeyNav, function () { function a(d, c) { if (!c.tryActivate(c.items.indexOf(c.activeItem) - 1, -1)) { c.tryActivate(c.items.length - 1, -1) } } function b(d, c) { if (!c.tryActivate(c.items.indexOf(c.activeItem) + 1, 1)) { c.tryActivate(0, 1) } } return{constructor:function (c) { Ext.menu.MenuNav.superclass.constructor.call(this, c.el); this.scope = this.menu = c }, doRelay:function (g, d) { var c = g.getKey(); if (this.menu.activeItem && this.menu.activeItem.isFormField && c != g.TAB) { return false } if (!this.menu.activeItem && g.isNavKeyPress() && c != g.SPACE && c != g.RETURN) { this.menu.tryActivate(0, 1); return false } return d.call(this.scope || this, g, this.menu) }, tab:function (d, c) { d.stopEvent(); if (d.shiftKey) { a(d, c) } else { b(d, c) } }, up:a, down:b, right:function (d, c) { if (c.activeItem) { c.activeItem.expandMenu(true) } }, left:function (d, c) { c.hide(); if (c.parentMenu && c.parentMenu.activeItem) { c.parentMenu.activeItem.activate() } }, enter:function (d, c) { if (c.activeItem) { d.stopPropagation(); c.activeItem.onClick(d); c.fireEvent("click", this, c.activeItem); return true } }} }()); Ext.menu.MenuMgr = function () { var h, e, b, d = {}, a = false, l = new Date(); function n() { h = {}; e = new Ext.util.MixedCollection(); b = Ext.getDoc().addKeyListener(27, j); b.disable() } function j() { if (e && e.length > 0) { var o = e.clone(); o.each(function (p) { p.hide() }); return true } return false } function g(o) { e.remove(o); if (e.length < 1) { b.disable(); Ext.getDoc().un("mousedown", m); a = false } } function k(o) { var p = e.last(); l = new Date(); e.add(o); if (!a) { b.enable(); Ext.getDoc().on("mousedown", m); a = true } if (o.parentMenu) { o.getEl().setZIndex(parseInt(o.parentMenu.getEl().getStyle("z-index"), 10) + 3); o.parentMenu.activeChild = o } else { if (p && !p.isDestroyed && p.isVisible()) { o.getEl().setZIndex(parseInt(p.getEl().getStyle("z-index"), 10) + 3) } } } function c(o) { if (o.activeChild) { o.activeChild.hide() } if (o.autoHideTimer) { clearTimeout(o.autoHideTimer); delete o.autoHideTimer } } function i(o) { var p = o.parentMenu; if (!p && !o.allowOtherMenus) { j() } else { if (p && p.activeChild) { p.activeChild.hide() } } } function m(o) { if (l.getElapsed() > 50 && e.length > 0 && !o.getTarget(".x-menu")) { j() } } return{hideAll:function () { return j() }, register:function (o) { if (!h) { n() } h[o.id] = o; o.on({beforehide:c, hide:g, beforeshow:i, show:k}) }, get:function (o) { if (typeof o == "string") { if (!h) { return null } return h[o] } else { if (o.events) { return o } else { if (typeof o.length == "number") { return new Ext.menu.Menu({items:o}) } else { return Ext.create(o, "menu") } } } }, unregister:function (o) { delete h[o.id]; o.un("beforehide", c); o.un("hide", g); o.un("beforeshow", i); o.un("show", k) }, registerCheckable:function (o) { var p = o.group; if (p) { if (!d[p]) { d[p] = [] } d[p].push(o) } }, unregisterCheckable:function (o) { var p = o.group; if (p) { d[p].remove(o) } }, onCheckChange:function (q, r) { if (q.group && r) { var t = d[q.group], p = 0, o = t.length, s; for (; p < o; p++) { s = t[p]; if (s != q) { s.setChecked(false) } } } }, getCheckedItem:function (q) { var r = d[q]; if (r) { for (var p = 0, o = r.length; p < o; p++) { if (r[p].checked) { return r[p] } } } return null }, setCheckedItem:function (q, s) { var r = d[q]; if (r) { for (var p = 0, o = r.length; p < o; p++) { if (r[p].id == s) { r[p].setChecked(true) } } } return null }} }(); Ext.menu.BaseItem = Ext.extend(Ext.Component, {canActivate:false, activeClass:"x-menu-item-active", hideOnClick:true, clickHideDelay:1, ctype:"Ext.menu.BaseItem", actionMode:"container", initComponent:function () { Ext.menu.BaseItem.superclass.initComponent.call(this); this.addEvents("click", "activate", "deactivate"); if (this.handler) { this.on("click", this.handler, this.scope) } }, onRender:function (b, a) { Ext.menu.BaseItem.superclass.onRender.apply(this, arguments); if (this.ownerCt && this.ownerCt instanceof Ext.menu.Menu) { this.parentMenu = this.ownerCt } else { this.container.addClass("x-menu-list-item"); this.mon(this.el, {scope:this, click:this.onClick, mouseenter:this.activate, mouseleave:this.deactivate}) } }, setHandler:function (b, a) { if (this.handler) { this.un("click", this.handler, this.scope) } this.on("click", this.handler = b, this.scope = a) }, onClick:function (a) { if (!this.disabled && this.fireEvent("click", this, a) !== false && (this.parentMenu && this.parentMenu.fireEvent("itemclick", this, a) !== false)) { this.handleClick(a) } else { a.stopEvent() } }, activate:function () { if (this.disabled) { return false } var a = this.container; a.addClass(this.activeClass); this.region = a.getRegion().adjust(2, 2, -2, -2); this.fireEvent("activate", this); return true }, deactivate:function () { this.container.removeClass(this.activeClass); this.fireEvent("deactivate", this) }, shouldDeactivate:function (a) { return !this.region || !this.region.contains(a.getPoint()) }, handleClick:function (b) { var a = this.parentMenu; if (this.hideOnClick) { if (a.floating) { this.clickHideDelayTimer = a.hide.defer(this.clickHideDelay, a, [true]) } else { a.deactivateActive() } } }, beforeDestroy:function () { clearTimeout(this.clickHideDelayTimer); Ext.menu.BaseItem.superclass.beforeDestroy.call(this) }, expandMenu:Ext.emptyFn, hideMenu:Ext.emptyFn}); Ext.reg("menubaseitem", Ext.menu.BaseItem); Ext.menu.TextItem = Ext.extend(Ext.menu.BaseItem, {hideOnClick:false, itemCls:"x-menu-text", constructor:function (a) { if (typeof a == "string") { a = {text:a} } Ext.menu.TextItem.superclass.constructor.call(this, a) }, onRender:function () { var a = document.createElement("span"); a.className = this.itemCls; a.innerHTML = this.text; this.el = a; Ext.menu.TextItem.superclass.onRender.apply(this, arguments) }}); Ext.reg("menutextitem", Ext.menu.TextItem); Ext.menu.Separator = Ext.extend(Ext.menu.BaseItem, {itemCls:"x-menu-sep", hideOnClick:false, activeClass:"", onRender:function (a) { var b = document.createElement("span"); b.className = this.itemCls; b.innerHTML = " "; this.el = b; a.addClass("x-menu-sep-li"); Ext.menu.Separator.superclass.onRender.apply(this, arguments) }}); Ext.reg("menuseparator", Ext.menu.Separator); Ext.menu.Item = Ext.extend(Ext.menu.BaseItem, {itemCls:"x-menu-item", canActivate:true, showDelay:200, altText:"", hideDelay:200, ctype:"Ext.menu.Item", initComponent:function () { Ext.menu.Item.superclass.initComponent.call(this); if (this.menu) { if (Ext.isArray(this.menu)) { this.menu = {items:this.menu} } if (Ext.isObject(this.menu)) { this.menu.ownerCt = this } this.menu = Ext.menu.MenuMgr.get(this.menu); this.menu.ownerCt = undefined } }, onRender:function (d, b) { if (!this.itemTpl) { this.itemTpl = Ext.menu.Item.prototype.itemTpl = new Ext.XTemplate('', ' target="{hrefTarget}"', "", ">", '{altText}', '{text}', "") } var c = this.getTemplateArgs(); this.el = b ? this.itemTpl.insertBefore(b, c, true) : this.itemTpl.append(d, c, true); this.iconEl = this.el.child("img.x-menu-item-icon"); this.textEl = this.el.child(".x-menu-item-text"); if (!this.href) { this.mon(this.el, "click", Ext.emptyFn, null, {preventDefault:true}) } Ext.menu.Item.superclass.onRender.call(this, d, b) }, getTemplateArgs:function () { return{id:this.id, cls:this.itemCls + (this.menu ? " x-menu-item-arrow" : "") + (this.cls ? " " + this.cls : ""), href:this.href || "#", hrefTarget:this.hrefTarget, icon:this.icon || Ext.BLANK_IMAGE_URL, iconCls:this.iconCls || "", text:this.itemText || this.text || " ", altText:this.altText || ""} }, setText:function (a) { this.text = a || " "; if (this.rendered) { this.textEl.update(this.text); this.parentMenu.layout.doAutoSize() } }, setIconClass:function (a) { var b = this.iconCls; this.iconCls = a; if (this.rendered) { this.iconEl.replaceClass(b, this.iconCls) } }, beforeDestroy:function () { clearTimeout(this.showTimer); clearTimeout(this.hideTimer); if (this.menu) { delete this.menu.ownerCt; this.menu.destroy() } Ext.menu.Item.superclass.beforeDestroy.call(this) }, handleClick:function (a) { if (!this.href) { a.stopEvent() } Ext.menu.Item.superclass.handleClick.apply(this, arguments) }, activate:function (a) { if (Ext.menu.Item.superclass.activate.apply(this, arguments)) { this.focus(); if (a) { this.expandMenu() } } return true }, shouldDeactivate:function (a) { if (Ext.menu.Item.superclass.shouldDeactivate.call(this, a)) { if (this.menu && this.menu.isVisible()) { return !this.menu.getEl().getRegion().contains(a.getPoint()) } return true } return false }, deactivate:function () { Ext.menu.Item.superclass.deactivate.apply(this, arguments); this.hideMenu() }, expandMenu:function (a) { if (!this.disabled && this.menu) { clearTimeout(this.hideTimer); delete this.hideTimer; if (!this.menu.isVisible() && !this.showTimer) { this.showTimer = this.deferExpand.defer(this.showDelay, this, [a]) } else { if (this.menu.isVisible() && a) { this.menu.tryActivate(0, 1) } } } }, deferExpand:function (a) { delete this.showTimer; this.menu.show(this.container, this.parentMenu.subMenuAlign || "tl-tr?", this.parentMenu); if (a) { this.menu.tryActivate(0, 1) } }, hideMenu:function () { clearTimeout(this.showTimer); delete this.showTimer; if (!this.hideTimer && this.menu && this.menu.isVisible()) { this.hideTimer = this.deferHide.defer(this.hideDelay, this) } }, deferHide:function () { delete this.hideTimer; if (this.menu.over) { this.parentMenu.setActiveItem(this, false) } else { this.menu.hide() } }}); Ext.reg("menuitem", Ext.menu.Item); Ext.menu.CheckItem = Ext.extend(Ext.menu.Item, {itemCls:"x-menu-item x-menu-check-item", groupClass:"x-menu-group-item", checked:false, ctype:"Ext.menu.CheckItem", initComponent:function () { Ext.menu.CheckItem.superclass.initComponent.call(this); this.addEvents("beforecheckchange", "checkchange"); if (this.checkHandler) { this.on("checkchange", this.checkHandler, this.scope) } Ext.menu.MenuMgr.registerCheckable(this) }, onRender:function (a) { Ext.menu.CheckItem.superclass.onRender.apply(this, arguments); if (this.group) { this.el.addClass(this.groupClass) } if (this.checked) { this.checked = false; this.setChecked(true, true) } }, destroy:function () { Ext.menu.MenuMgr.unregisterCheckable(this); Ext.menu.CheckItem.superclass.destroy.apply(this, arguments) }, setChecked:function (b, a) { var c = a === true; if (this.checked != b && (c || this.fireEvent("beforecheckchange", this, b) !== false)) { Ext.menu.MenuMgr.onCheckChange(this, b); if (this.container) { this.container[b ? "addClass" : "removeClass"]("x-menu-item-checked") } this.checked = b; if (!c) { this.fireEvent("checkchange", this, b) } } }, handleClick:function (a) { if (!this.disabled && !(this.checked && this.group)) { this.setChecked(!this.checked) } Ext.menu.CheckItem.superclass.handleClick.apply(this, arguments) }}); Ext.reg("menucheckitem", Ext.menu.CheckItem); Ext.menu.DateMenu = Ext.extend(Ext.menu.Menu, {enableScrolling:false, hideOnClick:true, pickerId:null, cls:"x-date-menu", initComponent:function () { this.on("beforeshow", this.onBeforeShow, this); if (this.strict = (Ext.isIE7 && Ext.isStrict)) { this.on("show", this.onShow, this, {single:true, delay:20}) } Ext.apply(this, {plain:true, showSeparator:false, items:this.picker = new Ext.DatePicker(Ext.applyIf({internalRender:this.strict || !Ext.isIE, ctCls:"x-menu-date-item", id:this.pickerId}, this.initialConfig))}); this.picker.purgeListeners(); Ext.menu.DateMenu.superclass.initComponent.call(this); this.relayEvents(this.picker, ["select"]); this.on("show", this.picker.focus, this.picker); this.on("select", this.menuHide, this); if (this.handler) { this.on("select", this.handler, this.scope || this) } }, menuHide:function () { if (this.hideOnClick) { this.hide(true) } }, onBeforeShow:function () { if (this.picker) { this.picker.hideMonthPicker(true) } }, onShow:function () { var a = this.picker.getEl(); a.setWidth(a.getWidth()) }}); Ext.reg("datemenu", Ext.menu.DateMenu); Ext.menu.ColorMenu = Ext.extend(Ext.menu.Menu, {enableScrolling:false, hideOnClick:true, cls:"x-color-menu", paletteId:null, initComponent:function () { Ext.apply(this, {plain:true, showSeparator:false, items:this.palette = new Ext.ColorPalette(Ext.applyIf({id:this.paletteId}, this.initialConfig))}); this.palette.purgeListeners(); Ext.menu.ColorMenu.superclass.initComponent.call(this); this.relayEvents(this.palette, ["select"]); this.on("select", this.menuHide, this); if (this.handler) { this.on("select", this.handler, this.scope || this) } }, menuHide:function () { if (this.hideOnClick) { this.hide(true) } }}); Ext.reg("colormenu", Ext.menu.ColorMenu); Ext.form.Field = Ext.extend(Ext.BoxComponent, {invalidClass:"x-form-invalid", invalidText:"The value in this field is invalid", focusClass:"x-form-focus", validationEvent:"keyup", validateOnBlur:true, validationDelay:250, defaultAutoCreate:{tag:"input", type:"text", size:"20", autocomplete:"off"}, fieldClass:"x-form-field", msgTarget:"qtip", msgFx:"normal", readOnly:false, disabled:false, submitValue:true, isFormField:true, msgDisplay:"", hasFocus:false, initComponent:function () { Ext.form.Field.superclass.initComponent.call(this); this.addEvents("focus", "blur", "specialkey", "change", "invalid", "valid") }, getName:function () { return this.rendered && this.el.dom.name ? this.el.dom.name : this.name || this.id || "" }, onRender:function (c, a) { if (!this.el) { var b = this.getAutoCreate(); if (!b.name) { b.name = this.name || this.id } if (this.inputType) { b.type = this.inputType } this.autoEl = b } Ext.form.Field.superclass.onRender.call(this, c, a); if (this.submitValue === false) { this.el.dom.removeAttribute("name") } var d = this.el.dom.type; if (d) { if (d == "password") { d = "text" } this.el.addClass("x-form-" + d) } if (this.readOnly) { this.setReadOnly(true) } if (this.tabIndex !== undefined) { this.el.dom.setAttribute("tabIndex", this.tabIndex) } this.el.addClass([this.fieldClass, this.cls]) }, getItemCt:function () { return this.itemCt }, initValue:function () { if (this.value !== undefined) { this.setValue(this.value) } else { if (!Ext.isEmpty(this.el.dom.value) && this.el.dom.value != this.emptyText) { this.setValue(this.el.dom.value) } } this.originalValue = this.getValue() }, isDirty:function () { if (this.disabled || !this.rendered) { return false } return String(this.getValue()) !== String(this.originalValue) }, setReadOnly:function (a) { if (this.rendered) { this.el.dom.readOnly = a } this.readOnly = a }, afterRender:function () { Ext.form.Field.superclass.afterRender.call(this); this.initEvents(); this.initValue() }, fireKey:function (a) { if (a.isSpecialKey()) { this.fireEvent("specialkey", this, a) } }, reset:function () { this.setValue(this.originalValue); this.clearInvalid() }, initEvents:function () { this.mon(this.el, Ext.EventManager.getKeyEvent(), this.fireKey, this); this.mon(this.el, "focus", this.onFocus, this); this.mon(this.el, "blur", this.onBlur, this, this.inEditor ? {buffer:10} : null) }, preFocus:Ext.emptyFn, onFocus:function () { this.preFocus(); if (this.focusClass) { this.el.addClass(this.focusClass) } if (!this.hasFocus) { this.hasFocus = true; this.startValue = this.getValue(); this.fireEvent("focus", this) } }, beforeBlur:Ext.emptyFn, onBlur:function () { this.beforeBlur(); if (this.focusClass) { this.el.removeClass(this.focusClass) } this.hasFocus = false; if (this.validationEvent !== false && (this.validateOnBlur || this.validationEvent == "blur")) { this.validate() } var a = this.getValue(); if (String(a) !== String(this.startValue)) { this.fireEvent("change", this, a, this.startValue) } this.fireEvent("blur", this); this.postBlur() }, postBlur:Ext.emptyFn, isValid:function (a) { if (this.disabled) { return true } var c = this.preventMark; this.preventMark = a === true; var b = this.validateValue(this.processValue(this.getRawValue()), a); this.preventMark = c; return b }, validate:function () { if (this.disabled || this.validateValue(this.processValue(this.getRawValue()))) { this.clearInvalid(); return true } return false }, processValue:function (a) { return a }, validateValue:function (b) { var a = this.getErrors(b)[0]; if (a == undefined) { return true } else { this.markInvalid(a); return false } }, getErrors:function () { return[] }, getActiveError:function () { return this.activeError || "" }, markInvalid:function (c) { if (this.rendered && !this.preventMark) { c = c || this.invalidText; var a = this.getMessageHandler(); if (a) { a.mark(this, c) } else { if (this.msgTarget) { this.el.addClass(this.invalidClass); var b = Ext.getDom(this.msgTarget); if (b) { b.innerHTML = c; b.style.display = this.msgDisplay } } } } this.setActiveError(c) }, clearInvalid:function () { if (this.rendered && !this.preventMark) { this.el.removeClass(this.invalidClass); var a = this.getMessageHandler(); if (a) { a.clear(this) } else { if (this.msgTarget) { this.el.removeClass(this.invalidClass); var b = Ext.getDom(this.msgTarget); if (b) { b.innerHTML = ""; b.style.display = "none" } } } } this.unsetActiveError() }, setActiveError:function (b, a) { this.activeError = b; if (a !== true) { this.fireEvent("invalid", this, b) } }, unsetActiveError:function (a) { delete this.activeError; if (a !== true) { this.fireEvent("valid", this) } }, getMessageHandler:function () { return Ext.form.MessageTargets[this.msgTarget] }, getErrorCt:function () { return this.el.findParent(".x-form-element", 5, true) || this.el.findParent(".x-form-field-wrap", 5, true) }, alignErrorEl:function () { this.errorEl.setWidth(this.getErrorCt().getWidth(true) - 20) }, alignErrorIcon:function () { this.errorIcon.alignTo(this.el, "tl-tr", [2, 0]) }, getRawValue:function () { var a = this.rendered ? this.el.getValue() : Ext.value(this.value, ""); if (a === this.emptyText) { a = "" } return a }, getValue:function () { if (!this.rendered) { return this.value } var a = this.el.getValue(); if (a === this.emptyText || a === undefined) { a = "" } return a }, setRawValue:function (a) { return this.rendered ? (this.el.dom.value = (Ext.isEmpty(a) ? "" : a)) : "" }, setValue:function (a) { this.value = a; if (this.rendered) { this.el.dom.value = (Ext.isEmpty(a) ? "" : a); this.validate() } return this }, append:function (a) { this.setValue([this.getValue(), a].join("")) }}); Ext.form.MessageTargets = {qtip:{mark:function (a, b) { a.el.addClass(a.invalidClass); a.el.dom.qtip = b; a.el.dom.qclass = "x-form-invalid-tip"; if (Ext.QuickTips) { Ext.QuickTips.enable() } }, clear:function (a) { a.el.removeClass(a.invalidClass); a.el.dom.qtip = "" }}, title:{mark:function (a, b) { a.el.addClass(a.invalidClass); a.el.dom.title = b }, clear:function (a) { a.el.dom.title = "" }}, under:{mark:function (b, c) { b.el.addClass(b.invalidClass); if (!b.errorEl) { var a = b.getErrorCt(); if (!a) { b.el.dom.title = c; return } b.errorEl = a.createChild({cls:"x-form-invalid-msg"}); b.on("resize", b.alignErrorEl, b); b.on("destroy", function () { Ext.destroy(this.errorEl) }, b) } b.alignErrorEl(); b.errorEl.update(c); Ext.form.Field.msgFx[b.msgFx].show(b.errorEl, b) }, clear:function (a) { a.el.removeClass(a.invalidClass); if (a.errorEl) { Ext.form.Field.msgFx[a.msgFx].hide(a.errorEl, a) } else { a.el.dom.title = "" } }}, side:{mark:function (b, c) { b.el.addClass(b.invalidClass); if (!b.errorIcon) { var a = b.getErrorCt(); if (!a) { b.el.dom.title = c; return } b.errorIcon = a.createChild({cls:"x-form-invalid-icon"}); if (b.ownerCt) { b.ownerCt.on("afterlayout", b.alignErrorIcon, b); b.ownerCt.on("expand", b.alignErrorIcon, b) } b.on("resize", b.alignErrorIcon, b); b.on("destroy", function () { Ext.destroy(this.errorIcon) }, b) } b.alignErrorIcon(); b.errorIcon.dom.qtip = c; b.errorIcon.dom.qclass = "x-form-invalid-tip"; b.errorIcon.show() }, clear:function (a) { a.el.removeClass(a.invalidClass); if (a.errorIcon) { a.errorIcon.dom.qtip = ""; a.errorIcon.hide() } else { a.el.dom.title = "" } }}}; Ext.form.Field.msgFx = {normal:{show:function (a, b) { a.setDisplayed("block") }, hide:function (a, b) { a.setDisplayed(false).update("") }}, slide:{show:function (a, b) { a.slideIn("t", {stopFx:true}) }, hide:function (a, b) { a.slideOut("t", {stopFx:true, useDisplay:true}) }}, slideRight:{show:function (a, b) { a.fixDisplay(); a.alignTo(b.el, "tl-tr"); a.slideIn("l", {stopFx:true}) }, hide:function (a, b) { a.slideOut("l", {stopFx:true, useDisplay:true}) }}}; Ext.reg("field", Ext.form.Field); Ext.form.TextField = Ext.extend(Ext.form.Field, {grow:false, growMin:30, growMax:800, vtype:null, maskRe:null, disableKeyFilter:false, allowBlank:true, minLength:0, maxLength:Number.MAX_VALUE, minLengthText:"The minimum length for this field is {0}", maxLengthText:"The maximum length for this field is {0}", selectOnFocus:false, blankText:"This field is required", validator:null, regex:null, regexText:"", emptyText:null, emptyClass:"x-form-empty-field", initComponent:function () { Ext.form.TextField.superclass.initComponent.call(this); this.addEvents("autosize", "keydown", "keyup", "keypress") }, initEvents:function () { Ext.form.TextField.superclass.initEvents.call(this); if (this.validationEvent == "keyup") { this.validationTask = new Ext.util.DelayedTask(this.validate, this); this.mon(this.el, "keyup", this.filterValidation, this) } else { if (this.validationEvent !== false && this.validationEvent != "blur") { this.mon(this.el, this.validationEvent, this.validate, this, {buffer:this.validationDelay}) } } if (this.selectOnFocus || this.emptyText) { this.mon(this.el, "mousedown", this.onMouseDown, this); if (this.emptyText) { this.applyEmptyText() } } if (this.maskRe || (this.vtype && this.disableKeyFilter !== true && (this.maskRe = Ext.form.VTypes[this.vtype + "Mask"]))) { this.mon(this.el, "keypress", this.filterKeys, this) } if (this.grow) { this.mon(this.el, "keyup", this.onKeyUpBuffered, this, {buffer:50}); this.mon(this.el, "click", this.autoSize, this) } if (this.enableKeyEvents) { this.mon(this.el, {scope:this, keyup:this.onKeyUp, keydown:this.onKeyDown, keypress:this.onKeyPress}) } }, onMouseDown:function (a) { if (!this.hasFocus) { this.mon(this.el, "mouseup", Ext.emptyFn, this, {single:true, preventDefault:true}) } }, processValue:function (a) { if (this.stripCharsRe) { var b = a.replace(this.stripCharsRe, ""); if (b !== a) { this.setRawValue(b); return b } } return a }, filterValidation:function (a) { if (!a.isNavKeyPress()) { this.validationTask.delay(this.validationDelay) } }, onDisable:function () { Ext.form.TextField.superclass.onDisable.call(this); if (Ext.isIE) { this.el.dom.unselectable = "on" } }, onEnable:function () { Ext.form.TextField.superclass.onEnable.call(this); if (Ext.isIE) { this.el.dom.unselectable = "" } }, onKeyUpBuffered:function (a) { if (this.doAutoSize(a)) { this.autoSize() } }, doAutoSize:function (a) { return !a.isNavKeyPress() }, onKeyUp:function (a) { this.fireEvent("keyup", this, a) }, onKeyDown:function (a) { this.fireEvent("keydown", this, a) }, onKeyPress:function (a) { this.fireEvent("keypress", this, a) }, reset:function () { Ext.form.TextField.superclass.reset.call(this); this.applyEmptyText() }, applyEmptyText:function () { if (this.rendered && this.emptyText && this.getRawValue().length < 1 && !this.hasFocus) { this.setRawValue(this.emptyText); this.el.addClass(this.emptyClass) } }, preFocus:function () { var a = this.el, b; if (this.emptyText) { if (a.dom.value == this.emptyText) { this.setRawValue(""); b = true } a.removeClass(this.emptyClass) } if (this.selectOnFocus || b) { a.dom.select() } }, postBlur:function () { this.applyEmptyText() }, filterKeys:function (b) { if (b.ctrlKey) { return } var a = b.getKey(); if (Ext.isGecko && (b.isNavKeyPress() || a == b.BACKSPACE || (a == b.DELETE && b.button == -1))) { return } var c = String.fromCharCode(b.getCharCode()); if (!Ext.isGecko && b.isSpecialKey() && !c) { return } if (!this.maskRe.test(c)) { b.stopEvent() } }, setValue:function (a) { if (this.emptyText && this.el && !Ext.isEmpty(a)) { this.el.removeClass(this.emptyClass) } Ext.form.TextField.superclass.setValue.apply(this, arguments); this.applyEmptyText(); this.autoSize(); return this }, getErrors:function (a) { var d = Ext.form.TextField.superclass.getErrors.apply(this, arguments); a = Ext.isDefined(a) ? a : this.processValue(this.getRawValue()); if (Ext.isFunction(this.validator)) { var c = this.validator(a); if (c !== true) { d.push(c) } } if (a.length < 1 || a === this.emptyText) { if (this.allowBlank) { return d } else { d.push(this.blankText) } } if (!this.allowBlank && (a.length < 1 || a === this.emptyText)) { d.push(this.blankText) } if (a.length < this.minLength) { d.push(String.format(this.minLengthText, this.minLength)) } if (a.length > this.maxLength) { d.push(String.format(this.maxLengthText, this.maxLength)) } if (this.vtype) { var b = Ext.form.VTypes; if (!b[this.vtype](a, this)) { d.push(this.vtypeText || b[this.vtype + "Text"]) } } if (this.regex && !this.regex.test(a)) { d.push(this.regexText) } return d }, selectText:function (h, a) { var c = this.getRawValue(); var e = false; if (c.length > 0) { h = h === undefined ? 0 : h; a = a === undefined ? c.length : a; var g = this.el.dom; if (g.setSelectionRange) { g.setSelectionRange(h, a) } else { if (g.createTextRange) { var b = g.createTextRange(); b.moveStart("character", h); b.moveEnd("character", a - c.length); b.select() } } e = Ext.isGecko || Ext.isOpera } else { e = true } if (e) { this.focus() } }, autoSize:function () { if (!this.grow || !this.rendered) { return } if (!this.metrics) { this.metrics = Ext.util.TextMetrics.createInstance(this.el) } var c = this.el; var b = c.dom.value; var e = document.createElement("div"); e.appendChild(document.createTextNode(b)); b = e.innerHTML; Ext.removeNode(e); e = null; b += " "; var a = Math.min(this.growMax, Math.max(this.metrics.getWidth(b) + 10, this.growMin)); this.el.setWidth(a); this.fireEvent("autosize", this, a) }, onDestroy:function () { if (this.validationTask) { this.validationTask.cancel(); this.validationTask = null } Ext.form.TextField.superclass.onDestroy.call(this) }}); Ext.reg("textfield", Ext.form.TextField); Ext.form.TriggerField = Ext.extend(Ext.form.TextField, {defaultAutoCreate:{tag:"input", type:"text", size:"16", autocomplete:"off"}, hideTrigger:false, editable:true, readOnly:false, wrapFocusClass:"x-trigger-wrap-focus", autoSize:Ext.emptyFn, monitorTab:true, deferHeight:true, mimicing:false, actionMode:"wrap", defaultTriggerWidth:17, onResize:function (a, c) { Ext.form.TriggerField.superclass.onResize.call(this, a, c); var b = this.getTriggerWidth(); if (Ext.isNumber(a)) { this.el.setWidth(a - b) } this.wrap.setWidth(this.el.getWidth() + b) }, getTriggerWidth:function () { var a = this.trigger.getWidth(); if (!this.hideTrigger && !this.readOnly && a === 0) { a = this.defaultTriggerWidth } return a }, alignErrorIcon:function () { if (this.wrap) { this.errorIcon.alignTo(this.wrap, "tl-tr", [2, 0]) } }, onRender:function (b, a) { this.doc = Ext.isIE ? Ext.getBody() : Ext.getDoc(); Ext.form.TriggerField.superclass.onRender.call(this, b, a); this.wrap = this.el.wrap({cls:"x-form-field-wrap x-form-field-trigger-wrap"}); this.trigger = this.wrap.createChild(this.triggerConfig || {tag:"img", src:Ext.BLANK_IMAGE_URL, alt:"", cls:"x-form-trigger " + this.triggerClass}); this.initTrigger(); if (!this.width) { this.wrap.setWidth(this.el.getWidth() + this.trigger.getWidth()) } this.resizeEl = this.positionEl = this.wrap }, getWidth:function () { return(this.el.getWidth() + this.trigger.getWidth()) }, updateEditState:function () { if (this.rendered) { if (this.readOnly) { this.el.dom.readOnly = true; this.el.addClass("x-trigger-noedit"); this.mun(this.el, "click", this.onTriggerClick, this); this.trigger.setDisplayed(false) } else { if (!this.editable) { this.el.dom.readOnly = true; this.el.addClass("x-trigger-noedit"); this.mon(this.el, "click", this.onTriggerClick, this) } else { this.el.dom.readOnly = false; this.el.removeClass("x-trigger-noedit"); this.mun(this.el, "click", this.onTriggerClick, this) } this.trigger.setDisplayed(!this.hideTrigger) } this.onResize(this.width || this.wrap.getWidth()) } }, setHideTrigger:function (a) { if (a != this.hideTrigger) { this.hideTrigger = a; this.updateEditState() } }, setEditable:function (a) { if (a != this.editable) { this.editable = a; this.updateEditState() } }, setReadOnly:function (a) { if (a != this.readOnly) { this.readOnly = a; this.updateEditState() } }, afterRender:function () { Ext.form.TriggerField.superclass.afterRender.call(this); this.updateEditState() }, initTrigger:function () { this.mon(this.trigger, "click", this.onTriggerClick, this, {preventDefault:true}); this.trigger.addClassOnOver("x-form-trigger-over"); this.trigger.addClassOnClick("x-form-trigger-click") }, onDestroy:function () { Ext.destroy(this.trigger, this.wrap); if (this.mimicing) { this.doc.un("mousedown", this.mimicBlur, this) } delete this.doc; Ext.form.TriggerField.superclass.onDestroy.call(this) }, onFocus:function () { Ext.form.TriggerField.superclass.onFocus.call(this); if (!this.mimicing) { this.wrap.addClass(this.wrapFocusClass); this.mimicing = true; this.doc.on("mousedown", this.mimicBlur, this, {delay:10}); if (this.monitorTab) { this.on("specialkey", this.checkTab, this) } } }, checkTab:function (a, b) { if (b.getKey() == b.TAB) { this.triggerBlur() } }, onBlur:Ext.emptyFn, mimicBlur:function (a) { if (!this.isDestroyed && !this.wrap.contains(a.target) && this.validateBlur(a)) { this.triggerBlur() } }, triggerBlur:function () { this.mimicing = false; this.doc.un("mousedown", this.mimicBlur, this); if (this.monitorTab && this.el) { this.un("specialkey", this.checkTab, this) } Ext.form.TriggerField.superclass.onBlur.call(this); if (this.wrap) { this.wrap.removeClass(this.wrapFocusClass) } }, beforeBlur:Ext.emptyFn, validateBlur:function (a) { return true }, onTriggerClick:Ext.emptyFn}); Ext.form.TwinTriggerField = Ext.extend(Ext.form.TriggerField, {initComponent:function () { Ext.form.TwinTriggerField.superclass.initComponent.call(this); this.triggerConfig = {tag:"span", cls:"x-form-twin-triggers", cn:[ {tag:"img", src:Ext.BLANK_IMAGE_URL, alt:"", cls:"x-form-trigger " + this.trigger1Class}, {tag:"img", src:Ext.BLANK_IMAGE_URL, alt:"", cls:"x-form-trigger " + this.trigger2Class} ]} }, getTrigger:function (a) { return this.triggers[a] }, afterRender:function () { Ext.form.TwinTriggerField.superclass.afterRender.call(this); var c = this.triggers, b = 0, a = c.length; for (; b < a; ++b) { if (this["hideTrigger" + (b + 1)]) { c[b].hide() } } }, initTrigger:function () { var a = this.trigger.select(".x-form-trigger", true), b = this; a.each(function (d, g, c) { var e = "Trigger" + (c + 1); d.hide = function () { var h = b.wrap.getWidth(); this.dom.style.display = "none"; b.el.setWidth(h - b.trigger.getWidth()); b["hidden" + e] = true }; d.show = function () { var h = b.wrap.getWidth(); this.dom.style.display = ""; b.el.setWidth(h - b.trigger.getWidth()); b["hidden" + e] = false }; this.mon(d, "click", this["on" + e + "Click"], this, {preventDefault:true}); d.addClassOnOver("x-form-trigger-over"); d.addClassOnClick("x-form-trigger-click") }, this); this.triggers = a.elements }, getTriggerWidth:function () { var a = 0; Ext.each(this.triggers, function (d, c) { var e = "Trigger" + (c + 1), b = d.getWidth(); if (b === 0 && !this["hidden" + e]) { a += this.defaultTriggerWidth } else { a += b } }, this); return a }, onDestroy:function () { Ext.destroy(this.triggers); Ext.form.TwinTriggerField.superclass.onDestroy.call(this) }, onTrigger1Click:Ext.emptyFn, onTrigger2Click:Ext.emptyFn}); Ext.reg("trigger", Ext.form.TriggerField); Ext.form.TextArea = Ext.extend(Ext.form.TextField, {growMin:60, growMax:1000, growAppend:" \n ", enterIsSpecial:false, preventScrollbars:false, onRender:function (b, a) { if (!this.el) { this.defaultAutoCreate = {tag:"textarea", style:"width:100px;height:60px;", autocomplete:"off"} } Ext.form.TextArea.superclass.onRender.call(this, b, a); if (this.grow) { this.textSizeEl = Ext.DomHelper.append(document.body, {tag:"pre", cls:"x-form-grow-sizer"}); if (this.preventScrollbars) { this.el.setStyle("overflow", "hidden") } this.el.setHeight(this.growMin) } }, onDestroy:function () { Ext.removeNode(this.textSizeEl); Ext.form.TextArea.superclass.onDestroy.call(this) }, fireKey:function (a) { if (a.isSpecialKey() && (this.enterIsSpecial || (a.getKey() != a.ENTER || a.hasModifier()))) { this.fireEvent("specialkey", this, a) } }, doAutoSize:function (a) { return !a.isNavKeyPress() || a.getKey() == a.ENTER }, filterValidation:function (a) { if (!a.isNavKeyPress() || (!this.enterIsSpecial && a.keyCode == a.ENTER)) { this.validationTask.delay(this.validationDelay) } }, autoSize:function () { if (!this.grow || !this.textSizeEl) { return } var c = this.el, a = Ext.util.Format.htmlEncode(c.dom.value), d = this.textSizeEl, b; Ext.fly(d).setWidth(this.el.getWidth()); if (a.length < 1) { a = "  " } else { a += this.growAppend; if (Ext.isIE) { a = a.replace(/\n/g, " 
    ") } } d.innerHTML = a; b = Math.min(this.growMax, Math.max(d.offsetHeight, this.growMin)); if (b != this.lastHeight) { this.lastHeight = b; this.el.setHeight(b); this.fireEvent("autosize", this, b) } }}); Ext.reg("textarea", Ext.form.TextArea); Ext.form.NumberField = Ext.extend(Ext.form.TextField, {fieldClass:"x-form-field x-form-num-field", allowDecimals:true, decimalSeparator:".", decimalPrecision:2, allowNegative:true, minValue:Number.NEGATIVE_INFINITY, maxValue:Number.MAX_VALUE, minText:"The minimum value for this field is {0}", maxText:"The maximum value for this field is {0}", nanText:"{0} is not a valid number", baseChars:"0123456789", autoStripChars:false, initEvents:function () { var a = this.baseChars + ""; if (this.allowDecimals) { a += this.decimalSeparator } if (this.allowNegative) { a += "-" } a = Ext.escapeRe(a); this.maskRe = new RegExp("[" + a + "]"); if (this.autoStripChars) { this.stripCharsRe = new RegExp("[^" + a + "]", "gi") } Ext.form.NumberField.superclass.initEvents.call(this) }, getErrors:function (b) { var c = Ext.form.NumberField.superclass.getErrors.apply(this, arguments); b = Ext.isDefined(b) ? b : this.processValue(this.getRawValue()); if (b.length < 1) { return c } b = String(b).replace(this.decimalSeparator, "."); if (isNaN(b)) { c.push(String.format(this.nanText, b)) } var a = this.parseValue(b); if (a < this.minValue) { c.push(String.format(this.minText, this.minValue)) } if (a > this.maxValue) { c.push(String.format(this.maxText, this.maxValue)) } return c }, getValue:function () { return this.fixPrecision(this.parseValue(Ext.form.NumberField.superclass.getValue.call(this))) }, setValue:function (a) { a = Ext.isNumber(a) ? a : parseFloat(String(a).replace(this.decimalSeparator, ".")); a = this.fixPrecision(a); a = isNaN(a) ? "" : String(a).replace(".", this.decimalSeparator); return Ext.form.NumberField.superclass.setValue.call(this, a) }, setMinValue:function (a) { this.minValue = Ext.num(a, Number.NEGATIVE_INFINITY) }, setMaxValue:function (a) { this.maxValue = Ext.num(a, Number.MAX_VALUE) }, parseValue:function (a) { a = parseFloat(String(a).replace(this.decimalSeparator, ".")); return isNaN(a) ? "" : a }, fixPrecision:function (b) { var a = isNaN(b); if (!this.allowDecimals || this.decimalPrecision == -1 || a || !b) { return a ? "" : b } return parseFloat(parseFloat(b).toFixed(this.decimalPrecision)) }, beforeBlur:function () { var a = this.parseValue(this.getRawValue()); if (!Ext.isEmpty(a)) { this.setValue(a) } }}); Ext.reg("numberfield", Ext.form.NumberField); Ext.form.DateField = Ext.extend(Ext.form.TriggerField, {format:"m/d/Y", altFormats:"m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d|n-j|n/j", disabledDaysText:"Disabled", disabledDatesText:"Disabled", minText:"The date in this field must be equal to or after {0}", maxText:"The date in this field must be equal to or before {0}", invalidText:"{0} is not a valid date - it must be in the format {1}", triggerClass:"x-form-date-trigger", showToday:true, startDay:0, defaultAutoCreate:{tag:"input", type:"text", size:"10", autocomplete:"off"}, initTime:"12", initTimeFormat:"H", safeParse:function (b, c) { if (Date.formatContainsHourInfo(c)) { return Date.parseDate(b, c) } else { var a = Date.parseDate(b + " " + this.initTime, c + " " + this.initTimeFormat); if (a) { return a.clearTime() } } }, initComponent:function () { Ext.form.DateField.superclass.initComponent.call(this); this.addEvents("select"); if (Ext.isString(this.minValue)) { this.minValue = this.parseDate(this.minValue) } if (Ext.isString(this.maxValue)) { this.maxValue = this.parseDate(this.maxValue) } this.disabledDatesRE = null; this.initDisabledDays() }, initEvents:function () { Ext.form.DateField.superclass.initEvents.call(this); this.keyNav = new Ext.KeyNav(this.el, {down:function (a) { this.onTriggerClick() }, scope:this, forceKeyDown:true}) }, initDisabledDays:function () { if (this.disabledDates) { var b = this.disabledDates, a = b.length - 1, c = "(?:"; Ext.each(b, function (g, e) { c += Ext.isDate(g) ? "^" + Ext.escapeRe(g.dateFormat(this.format)) + "$" : b[e]; if (e != a) { c += "|" } }, this); this.disabledDatesRE = new RegExp(c + ")") } }, setDisabledDates:function (a) { this.disabledDates = a; this.initDisabledDays(); if (this.menu) { this.menu.picker.setDisabledDates(this.disabledDatesRE) } }, setDisabledDays:function (a) { this.disabledDays = a; if (this.menu) { this.menu.picker.setDisabledDays(a) } }, setMinValue:function (a) { this.minValue = (Ext.isString(a) ? this.parseDate(a) : a); if (this.menu) { this.menu.picker.setMinDate(this.minValue) } }, setMaxValue:function (a) { this.maxValue = (Ext.isString(a) ? this.parseDate(a) : a); if (this.menu) { this.menu.picker.setMaxDate(this.maxValue) } }, getErrors:function (e) { var h = Ext.form.DateField.superclass.getErrors.apply(this, arguments); e = this.formatDate(e || this.processValue(this.getRawValue())); if (e.length < 1) { return h } var c = e; e = this.parseDate(e); if (!e) { h.push(String.format(this.invalidText, c, this.format)); return h } var g = e.getTime(); if (this.minValue && g < this.minValue.clearTime().getTime()) { h.push(String.format(this.minText, this.formatDate(this.minValue))) } if (this.maxValue && g > this.maxValue.clearTime().getTime()) { h.push(String.format(this.maxText, this.formatDate(this.maxValue))) } if (this.disabledDays) { var a = e.getDay(); for (var b = 0; b < this.disabledDays.length; b++) { if (a === this.disabledDays[b]) { h.push(this.disabledDaysText); break } } } var d = this.formatDate(e); if (this.disabledDatesRE && this.disabledDatesRE.test(d)) { h.push(String.format(this.disabledDatesText, d)) } return h }, validateBlur:function () { return !this.menu || !this.menu.isVisible() }, getValue:function () { return this.parseDate(Ext.form.DateField.superclass.getValue.call(this)) || "" }, setValue:function (a) { return Ext.form.DateField.superclass.setValue.call(this, this.formatDate(this.parseDate(a))) }, parseDate:function (g) { if (!g || Ext.isDate(g)) { return g } var b = this.safeParse(g, this.format), c = this.altFormats, e = this.altFormatsArray; if (!b && c) { e = e || c.split("|"); for (var d = 0, a = e.length; d < a && !b; d++) { b = this.safeParse(g, e[d]) } } return b }, onDestroy:function () { Ext.destroy(this.menu, this.keyNav); Ext.form.DateField.superclass.onDestroy.call(this) }, formatDate:function (a) { return Ext.isDate(a) ? a.dateFormat(this.format) : a }, onTriggerClick:function () { if (this.disabled) { return } if (this.menu == null) { this.menu = new Ext.menu.DateMenu({hideOnClick:false, focusOnSelect:false}) } this.onFocus(); Ext.apply(this.menu.picker, {minDate:this.minValue, maxDate:this.maxValue, disabledDatesRE:this.disabledDatesRE, disabledDatesText:this.disabledDatesText, disabledDays:this.disabledDays, disabledDaysText:this.disabledDaysText, format:this.format, showToday:this.showToday, startDay:this.startDay, minText:String.format(this.minText, this.formatDate(this.minValue)), maxText:String.format(this.maxText, this.formatDate(this.maxValue))}); this.menu.picker.setValue(this.getValue() || new Date()); this.menu.show(this.el, "tl-bl?"); this.menuEvents("on") }, menuEvents:function (a) { this.menu[a]("select", this.onSelect, this); this.menu[a]("hide", this.onMenuHide, this); this.menu[a]("show", this.onFocus, this) }, onSelect:function (a, b) { this.setValue(b); this.fireEvent("select", this, b); this.menu.hide() }, onMenuHide:function () { this.focus(false, 60); this.menuEvents("un") }, beforeBlur:function () { var a = this.parseDate(this.getRawValue()); if (a) { this.setValue(a) } }}); Ext.reg("datefield", Ext.form.DateField); Ext.form.DisplayField = Ext.extend(Ext.form.Field, {validationEvent:false, validateOnBlur:false, defaultAutoCreate:{tag:"div"}, fieldClass:"x-form-display-field", htmlEncode:false, initEvents:Ext.emptyFn, isValid:function () { return true }, validate:function () { return true }, getRawValue:function () { var a = this.rendered ? this.el.dom.innerHTML : Ext.value(this.value, ""); if (a === this.emptyText) { a = "" } if (this.htmlEncode) { a = Ext.util.Format.htmlDecode(a) } return a }, getValue:function () { return this.getRawValue() }, getName:function () { return this.name }, setRawValue:function (a) { if (this.htmlEncode) { a = Ext.util.Format.htmlEncode(a) } return this.rendered ? (this.el.dom.innerHTML = (Ext.isEmpty(a) ? "" : a)) : (this.value = a) }, setValue:function (a) { this.setRawValue(a); return this }}); Ext.reg("displayfield", Ext.form.DisplayField); Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, {defaultAutoCreate:{tag:"input", type:"text", size:"24", autocomplete:"off"}, listClass:"", selectedClass:"x-combo-selected", listEmptyText:"", triggerClass:"x-form-arrow-trigger", shadow:"sides", listAlign:"tl-bl?", maxHeight:300, minHeight:90, triggerAction:"query", minChars:4, autoSelect:true, typeAhead:false, queryDelay:500, pageSize:0, selectOnFocus:false, queryParam:"query", loadingText:"Loading...", resizable:false, handleHeight:8, allQuery:"", mode:"remote", minListWidth:70, forceSelection:false, typeAheadDelay:250, lazyInit:true, clearFilterOnReset:true, submitValue:undefined, initComponent:function () { Ext.form.ComboBox.superclass.initComponent.call(this); this.addEvents("expand", "collapse", "beforeselect", "select", "beforequery"); if (this.transform) { var c = Ext.getDom(this.transform); if (!this.hiddenName) { this.hiddenName = c.name } if (!this.store) { this.mode = "local"; var j = [], e = c.options; for (var b = 0, a = e.length; b < a; b++) { var h = e[b], g = (h.hasAttribute ? h.hasAttribute("value") : h.getAttributeNode("value").specified) ? h.value : h.text; if (h.selected && Ext.isEmpty(this.value, true)) { this.value = g } j.push([g, h.text]) } this.store = new Ext.data.ArrayStore({idIndex:0, fields:["value", "text"], data:j, autoDestroy:true}); this.valueField = "value"; this.displayField = "text" } c.name = Ext.id(); if (!this.lazyRender) { this.target = true; this.el = Ext.DomHelper.insertBefore(c, this.autoCreate || this.defaultAutoCreate); this.render(this.el.parentNode, c) } Ext.removeNode(c) } else { if (this.store) { this.store = Ext.StoreMgr.lookup(this.store); if (this.store.autoCreated) { this.displayField = this.valueField = "field1"; if (!this.store.expandData) { this.displayField = "field2" } this.mode = "local" } } } this.selectedIndex = -1; if (this.mode == "local") { if (!Ext.isDefined(this.initialConfig.queryDelay)) { this.queryDelay = 10 } if (!Ext.isDefined(this.initialConfig.minChars)) { this.minChars = 0 } } }, onRender:function (b, a) { if (this.hiddenName && !Ext.isDefined(this.submitValue)) { this.submitValue = false } Ext.form.ComboBox.superclass.onRender.call(this, b, a); if (this.hiddenName) { this.hiddenField = this.el.insertSibling({tag:"input", type:"hidden", name:this.hiddenName, id:(this.hiddenId || Ext.id())}, "before", true) } if (Ext.isGecko) { this.el.dom.setAttribute("autocomplete", "off") } if (!this.lazyInit) { this.initList() } else { this.on("focus", this.initList, this, {single:true}) } }, initValue:function () { Ext.form.ComboBox.superclass.initValue.call(this); if (this.hiddenField) { this.hiddenField.value = Ext.value(Ext.isDefined(this.hiddenValue) ? this.hiddenValue : this.value, "") } }, getParentZIndex:function () { var a; if (this.ownerCt) { this.findParentBy(function (b) { a = parseInt(b.getPositionEl().getStyle("z-index"), 10); return !!a }) } return a }, getZIndex:function (b) { b = b || Ext.getDom(this.getListParent() || Ext.getBody()); var a = parseInt(Ext.fly(b).getStyle("z-index"), 10); if (!a) { a = this.getParentZIndex() } return(a || 12000) + 5 }, initList:function () { if (!this.list) { var a = "x-combo-list", c = Ext.getDom(this.getListParent() || Ext.getBody()); this.list = new Ext.Layer({parentEl:c, shadow:this.shadow, cls:[a, this.listClass].join(" "), constrain:false, zindex:this.getZIndex(c)}); var b = this.listWidth || Math.max(this.wrap.getWidth(), this.minListWidth); this.list.setSize(b, 0); this.list.swallowEvent("mousewheel"); this.assetHeight = 0; if (this.syncFont !== false) { this.list.setStyle("font-size", this.el.getStyle("font-size")) } if (this.title) { this.header = this.list.createChild({cls:a + "-hd", html:this.title}); this.assetHeight += this.header.getHeight() } this.innerList = this.list.createChild({cls:a + "-inner"}); this.mon(this.innerList, "mouseover", this.onViewOver, this); this.mon(this.innerList, "mousemove", this.onViewMove, this); this.innerList.setWidth(b - this.list.getFrameWidth("lr")); if (this.pageSize) { this.footer = this.list.createChild({cls:a + "-ft"}); this.pageTb = new Ext.PagingToolbar({store:this.store, pageSize:this.pageSize, renderTo:this.footer}); this.assetHeight += this.footer.getHeight() } if (!this.tpl) { this.tpl = '
    {' + this.displayField + "}
    " } this.view = new Ext.DataView({applyTo:this.innerList, tpl:this.tpl, singleSelect:true, selectedClass:this.selectedClass, itemSelector:this.itemSelector || "." + a + "-item", emptyText:this.listEmptyText, deferEmptyText:false}); this.mon(this.view, {containerclick:this.onViewClick, click:this.onViewClick, scope:this}); this.bindStore(this.store, true); if (this.resizable) { this.resizer = new Ext.Resizable(this.list, {pinned:true, handles:"se"}); this.mon(this.resizer, "resize", function (g, d, e) { this.maxHeight = e - this.handleHeight - this.list.getFrameWidth("tb") - this.assetHeight; this.listWidth = d; this.innerList.setWidth(d - this.list.getFrameWidth("lr")); this.restrictHeight() }, this); this[this.pageSize ? "footer" : "innerList"].setStyle("margin-bottom", this.handleHeight + "px") } } }, getListParent:function () { return document.body }, getStore:function () { return this.store }, bindStore:function (a, b) { if (this.store && !b) { if (this.store !== a && this.store.autoDestroy) { this.store.destroy() } else { this.store.un("beforeload", this.onBeforeLoad, this); this.store.un("load", this.onLoad, this); this.store.un("exception", this.collapse, this) } if (!a) { this.store = null; if (this.view) { this.view.bindStore(null) } if (this.pageTb) { this.pageTb.bindStore(null) } } } if (a) { if (!b) { this.lastQuery = null; if (this.pageTb) { this.pageTb.bindStore(a) } } this.store = Ext.StoreMgr.lookup(a); this.store.on({scope:this, beforeload:this.onBeforeLoad, load:this.onLoad, exception:this.collapse}); if (this.view) { this.view.bindStore(a) } } }, reset:function () { if (this.clearFilterOnReset && this.mode == "local") { this.store.clearFilter() } Ext.form.ComboBox.superclass.reset.call(this) }, initEvents:function () { Ext.form.ComboBox.superclass.initEvents.call(this); this.keyNav = new Ext.KeyNav(this.el, {up:function (a) { this.inKeyMode = true; this.selectPrev() }, down:function (a) { if (!this.isExpanded()) { this.onTriggerClick() } else { this.inKeyMode = true; this.selectNext() } }, enter:function (a) { this.onViewClick() }, esc:function (a) { this.collapse() }, tab:function (a) { if (this.forceSelection === true) { this.collapse() } else { this.onViewClick(false) } return true }, scope:this, doRelay:function (c, b, a) { if (a == "down" || this.scope.isExpanded()) { var d = Ext.KeyNav.prototype.doRelay.apply(this, arguments); if (!Ext.isIE && Ext.EventManager.useKeydown) { this.scope.fireKey(c) } return d } return true }, forceKeyDown:true, defaultEventAction:"stopEvent"}); this.queryDelay = Math.max(this.queryDelay || 10, this.mode == "local" ? 10 : 250); this.dqTask = new Ext.util.DelayedTask(this.initQuery, this); if (this.typeAhead) { this.taTask = new Ext.util.DelayedTask(this.onTypeAhead, this) } if (!this.enableKeyEvents) { this.mon(this.el, "keyup", this.onKeyUp, this) } }, onDestroy:function () { if (this.dqTask) { this.dqTask.cancel(); this.dqTask = null } this.bindStore(null); Ext.destroy(this.resizer, this.view, this.pageTb, this.list); Ext.destroyMembers(this, "hiddenField"); Ext.form.ComboBox.superclass.onDestroy.call(this) }, fireKey:function (a) { if (!this.isExpanded()) { Ext.form.ComboBox.superclass.fireKey.call(this, a) } }, onResize:function (a, b) { Ext.form.ComboBox.superclass.onResize.apply(this, arguments); if (!isNaN(a) && this.isVisible() && this.list) { this.doResize(a) } else { this.bufferSize = a } }, doResize:function (a) { if (!Ext.isDefined(this.listWidth)) { var b = Math.max(a, this.minListWidth); this.list.setWidth(b); this.innerList.setWidth(b - this.list.getFrameWidth("lr")) } }, onEnable:function () { Ext.form.ComboBox.superclass.onEnable.apply(this, arguments); if (this.hiddenField) { this.hiddenField.disabled = false } }, onDisable:function () { Ext.form.ComboBox.superclass.onDisable.apply(this, arguments); if (this.hiddenField) { this.hiddenField.disabled = true } }, onBeforeLoad:function () { if (!this.hasFocus) { return } this.innerList.update(this.loadingText ? '
    ' + this.loadingText + "
    " : ""); this.restrictHeight(); this.selectedIndex = -1 }, onLoad:function () { if (!this.hasFocus) { return } if (this.store.getCount() > 0 || this.listEmptyText) { this.expand(); this.restrictHeight(); if (this.lastQuery == this.allQuery) { if (this.editable) { this.el.dom.select() } if (this.autoSelect !== false && !this.selectByValue(this.value, true)) { this.select(0, true) } } else { if (this.autoSelect !== false) { this.selectNext() } if (this.typeAhead && this.lastKey != Ext.EventObject.BACKSPACE && this.lastKey != Ext.EventObject.DELETE) { this.taTask.delay(this.typeAheadDelay) } } } else { this.collapse() } }, onTypeAhead:function () { if (this.store.getCount() > 0) { var b = this.store.getAt(0); var c = b.data[this.displayField]; var a = c.length; var d = this.getRawValue().length; if (d != a) { this.setRawValue(c); this.selectText(d, c.length) } } }, assertValue:function () { var b = this.getRawValue(), a; if (this.valueField && Ext.isDefined(this.value)) { a = this.findRecord(this.valueField, this.value) } if (!a || a.get(this.displayField) != b) { a = this.findRecord(this.displayField, b) } if (!a && this.forceSelection) { if (b.length > 0 && b != this.emptyText) { this.el.dom.value = Ext.value(this.lastSelectionText, ""); this.applyEmptyText() } else { this.clearValue() } } else { if (a && this.valueField) { if (this.value == b) { return } b = a.get(this.valueField || this.displayField) } this.setValue(b) } }, onSelect:function (a, b) { if (this.fireEvent("beforeselect", this, a, b) !== false) { this.setValue(a.data[this.valueField || this.displayField]); this.collapse(); this.fireEvent("select", this, a, b) } }, getName:function () { var a = this.hiddenField; return a && a.name ? a.name : this.hiddenName || Ext.form.ComboBox.superclass.getName.call(this) }, getValue:function () { if (this.valueField) { return Ext.isDefined(this.value) ? this.value : "" } else { return Ext.form.ComboBox.superclass.getValue.call(this) } }, clearValue:function () { if (this.hiddenField) { this.hiddenField.value = "" } this.setRawValue(""); this.lastSelectionText = ""; this.applyEmptyText(); this.value = "" }, setValue:function (a) { var c = a; if (this.valueField) { var b = this.findRecord(this.valueField, a); if (b) { c = b.data[this.displayField] } else { if (Ext.isDefined(this.valueNotFoundText)) { c = this.valueNotFoundText } } } this.lastSelectionText = c; if (this.hiddenField) { this.hiddenField.value = Ext.value(a, "") } Ext.form.ComboBox.superclass.setValue.call(this, c); this.value = a; return this }, findRecord:function (c, b) { var a; if (this.store.getCount() > 0) { this.store.each(function (d) { if (d.data[c] == b) { a = d; return false } }) } return a }, onViewMove:function (b, a) { this.inKeyMode = false }, onViewOver:function (d, b) { if (this.inKeyMode) { return } var c = this.view.findItemFromChild(b); if (c) { var a = this.view.indexOf(c); this.select(a, false) } }, onViewClick:function (b) { var a = this.view.getSelectedIndexes()[0], c = this.store, d = c.getAt(a); if (d) { this.onSelect(d, a) } else { this.collapse() } if (b !== false) { this.el.focus() } }, restrictHeight:function () { this.innerList.dom.style.height = ""; var b = this.innerList.dom, e = this.list.getFrameWidth("tb") + (this.resizable ? this.handleHeight : 0) + this.assetHeight, c = Math.max(b.clientHeight, b.offsetHeight, b.scrollHeight), a = this.getPosition()[1] - Ext.getBody().getScroll().top, g = Ext.lib.Dom.getViewHeight() - a - this.getSize().height, d = Math.max(a, g, this.minHeight || 0) - this.list.shadowOffset - e - 5; c = Math.min(c, d, this.maxHeight); this.innerList.setHeight(c); this.list.beginUpdate(); this.list.setHeight(c + e); this.list.alignTo.apply(this.list, [this.el].concat(this.listAlign)); this.list.endUpdate() }, isExpanded:function () { return this.list && this.list.isVisible() }, selectByValue:function (a, c) { if (!Ext.isEmpty(a, true)) { var b = this.findRecord(this.valueField || this.displayField, a); if (b) { this.select(this.store.indexOf(b), c); return true } } return false }, select:function (a, c) { this.selectedIndex = a; this.view.select(a); if (c !== false) { var b = this.view.getNode(a); if (b) { this.innerList.scrollChildIntoView(b, false) } } }, selectNext:function () { var a = this.store.getCount(); if (a > 0) { if (this.selectedIndex == -1) { this.select(0) } else { if (this.selectedIndex < a - 1) { this.select(this.selectedIndex + 1) } } } }, selectPrev:function () { var a = this.store.getCount(); if (a > 0) { if (this.selectedIndex == -1) { this.select(0) } else { if (this.selectedIndex !== 0) { this.select(this.selectedIndex - 1) } } } }, onKeyUp:function (b) { var a = b.getKey(); if (this.editable !== false && this.readOnly !== true && (a == b.BACKSPACE || !b.isSpecialKey())) { this.lastKey = a; this.dqTask.delay(this.queryDelay) } Ext.form.ComboBox.superclass.onKeyUp.call(this, b) }, validateBlur:function () { return !this.list || !this.list.isVisible() }, initQuery:function () { this.doQuery(this.getRawValue()) }, beforeBlur:function () { this.assertValue() }, postBlur:function () { Ext.form.ComboBox.superclass.postBlur.call(this); this.collapse(); this.inKeyMode = false }, doQuery:function (c, b) { c = Ext.isEmpty(c) ? "" : c; var a = {query:c, forceAll:b, combo:this, cancel:false}; if (this.fireEvent("beforequery", a) === false || a.cancel) { return false } c = a.query; b = a.forceAll; if (b === true || (c.length >= this.minChars)) { if (this.lastQuery !== c) { this.lastQuery = c; if (this.mode == "local") { this.selectedIndex = -1; if (b) { this.store.clearFilter() } else { this.store.filter(this.displayField, c) } this.onLoad() } else { this.store.baseParams[this.queryParam] = c; this.store.load({params:this.getParams(c)}); this.expand() } } else { this.selectedIndex = -1; this.onLoad() } } }, getParams:function (a) { var b = {}, c = this.store.paramNames; if (this.pageSize) { b[c.start] = 0; b[c.limit] = this.pageSize } return b }, collapse:function () { if (!this.isExpanded()) { return } this.list.hide(); Ext.getDoc().un("mousewheel", this.collapseIf, this); Ext.getDoc().un("mousedown", this.collapseIf, this); this.fireEvent("collapse", this) }, collapseIf:function (a) { if (!this.isDestroyed && !a.within(this.wrap) && !a.within(this.list)) { this.collapse() } }, expand:function () { if (this.isExpanded() || !this.hasFocus) { return } if (this.title || this.pageSize) { this.assetHeight = 0; if (this.title) { this.assetHeight += this.header.getHeight() } if (this.pageSize) { this.assetHeight += this.footer.getHeight() } } if (this.bufferSize) { this.doResize(this.bufferSize); delete this.bufferSize } this.list.alignTo.apply(this.list, [this.el].concat(this.listAlign)); this.list.setZIndex(this.getZIndex()); this.list.show(); if (Ext.isGecko2) { this.innerList.setOverflow("auto") } this.mon(Ext.getDoc(), {scope:this, mousewheel:this.collapseIf, mousedown:this.collapseIf}); this.fireEvent("expand", this) }, onTriggerClick:function () { if (this.readOnly || this.disabled) { return } if (this.isExpanded()) { this.collapse(); this.el.focus() } else { this.onFocus({}); if (this.triggerAction == "all") { this.doQuery(this.allQuery, true) } else { this.doQuery(this.getRawValue()) } this.el.focus() } }}); Ext.reg("combo", Ext.form.ComboBox); Ext.form.Checkbox = Ext.extend(Ext.form.Field, {focusClass:undefined, fieldClass:"x-form-field", checked:false, boxLabel:" ", defaultAutoCreate:{tag:"input", type:"checkbox", autocomplete:"off"}, actionMode:"wrap", initComponent:function () { Ext.form.Checkbox.superclass.initComponent.call(this); this.addEvents("check") }, onResize:function () { Ext.form.Checkbox.superclass.onResize.apply(this, arguments); if (!this.boxLabel && !this.fieldLabel) { this.el.alignTo(this.wrap, "c-c") } }, initEvents:function () { Ext.form.Checkbox.superclass.initEvents.call(this); this.mon(this.el, {scope:this, click:this.onClick, change:this.onClick}) }, markInvalid:Ext.emptyFn, clearInvalid:Ext.emptyFn, onRender:function (b, a) { Ext.form.Checkbox.superclass.onRender.call(this, b, a); if (this.inputValue !== undefined) { this.el.dom.value = this.inputValue } this.wrap = this.el.wrap({cls:"x-form-check-wrap"}); if (this.boxLabel) { this.wrap.createChild({tag:"label", htmlFor:this.el.id, cls:"x-form-cb-label", html:this.boxLabel}) } if (this.checked) { this.setValue(true) } else { this.checked = this.el.dom.checked } if (Ext.isIE && !Ext.isStrict) { this.wrap.repaint() } this.resizeEl = this.positionEl = this.wrap }, onDestroy:function () { Ext.destroy(this.wrap); Ext.form.Checkbox.superclass.onDestroy.call(this) }, initValue:function () { this.originalValue = this.getValue() }, getValue:function () { if (this.rendered) { return this.el.dom.checked } return this.checked }, onClick:function () { if (this.el.dom.checked != this.checked) { this.setValue(this.el.dom.checked) } }, setValue:function (a) { var c = this.checked, b = this.inputValue; if (a === false) { this.checked = false } else { this.checked = (a === true || a === "true" || a == "1" || (b ? a == b : String(a).toLowerCase() == "on")) } if (this.rendered) { this.el.dom.checked = this.checked; this.el.dom.defaultChecked = this.checked } if (c != this.checked) { this.fireEvent("check", this, this.checked); if (this.handler) { this.handler.call(this.scope || this, this, this.checked) } } return this }}); Ext.reg("checkbox", Ext.form.Checkbox); Ext.form.CheckboxGroup = Ext.extend(Ext.form.Field, {columns:"auto", vertical:false, allowBlank:true, blankText:"You must select at least one item in this group", defaultType:"checkbox", groupCls:"x-form-check-group", initComponent:function () { this.addEvents("change"); this.on("change", this.validate, this); Ext.form.CheckboxGroup.superclass.initComponent.call(this) }, onRender:function (j, g) { if (!this.el) { var p = {autoEl:{id:this.id}, cls:this.groupCls, layout:"column", renderTo:j, bufferResize:false}; var a = {xtype:"container", defaultType:this.defaultType, layout:"form", defaults:{hideLabel:true, anchor:"100%"}}; if (this.items[0].items) { Ext.apply(p, {layoutConfig:{columns:this.items.length}, defaults:this.defaults, items:this.items}); for (var e = 0, m = this.items.length; e < m; e++) { Ext.applyIf(this.items[e], a) } } else { var d, n = []; if (typeof this.columns == "string") { this.columns = this.items.length } if (!Ext.isArray(this.columns)) { var k = []; for (var e = 0; e < this.columns; e++) { k.push((100 / this.columns) * 0.01) } this.columns = k } d = this.columns.length; for (var e = 0; e < d; e++) { var b = Ext.apply({items:[]}, a); b[this.columns[e] <= 1 ? "columnWidth" : "width"] = this.columns[e]; if (this.defaults) { b.defaults = Ext.apply(b.defaults || {}, this.defaults) } n.push(b) } if (this.vertical) { var r = Math.ceil(this.items.length / d), o = 0; for (var e = 0, m = this.items.length; e < m; e++) { if (e > 0 && e % r == 0) { o++ } if (this.items[e].fieldLabel) { this.items[e].hideLabel = false } n[o].items.push(this.items[e]) } } else { for (var e = 0, m = this.items.length; e < m; e++) { var q = e % d; if (this.items[e].fieldLabel) { this.items[e].hideLabel = false } n[q].items.push(this.items[e]) } } Ext.apply(p, {layoutConfig:{columns:d}, items:n}) } this.panel = new Ext.Container(p); this.panel.ownerCt = this; this.el = this.panel.getEl(); if (this.forId && this.itemCls) { var c = this.el.up(this.itemCls).child("label", true); if (c) { c.setAttribute("htmlFor", this.forId) } } var h = this.panel.findBy(function (i) { return i.isFormField }, this); this.items = new Ext.util.MixedCollection(); this.items.addAll(h) } Ext.form.CheckboxGroup.superclass.onRender.call(this, j, g) }, initValue:function () { if (this.value) { this.setValue.apply(this, this.buffered ? this.value : [this.value]); delete this.buffered; delete this.value } }, afterRender:function () { Ext.form.CheckboxGroup.superclass.afterRender.call(this); this.eachItem(function (a) { a.on("check", this.fireChecked, this); a.inGroup = true }) }, doLayout:function () { if (this.rendered) { this.panel.forceLayout = this.ownerCt.forceLayout; this.panel.doLayout() } }, fireChecked:function () { var a = []; this.eachItem(function (b) { if (b.checked) { a.push(b) } }); this.fireEvent("change", this, a) }, getErrors:function () { var b = Ext.form.CheckboxGroup.superclass.getErrors.apply(this, arguments); if (!this.allowBlank) { var a = true; this.eachItem(function (c) { if (c.checked) { return(a = false) } }); if (a) { b.push(this.blankText) } } return b }, isDirty:function () { if (this.disabled || !this.rendered) { return false } var a = false; this.eachItem(function (b) { if (b.isDirty()) { a = true; return false } }); return a }, setReadOnly:function (a) { if (this.rendered) { this.eachItem(function (b) { b.setReadOnly(a) }) } this.readOnly = a }, onDisable:function () { this.eachItem(function (a) { a.disable() }) }, onEnable:function () { this.eachItem(function (a) { a.enable() }) }, onResize:function (a, b) { this.panel.setSize(a, b); this.panel.doLayout() }, reset:function () { if (this.originalValue) { this.eachItem(function (a) { if (a.setValue) { a.setValue(false); a.originalValue = a.getValue() } }); this.resetOriginal = true; this.setValue(this.originalValue); delete this.resetOriginal } else { this.eachItem(function (a) { if (a.reset) { a.reset() } }) } (function () { this.clearInvalid() }).defer(50, this) }, setValue:function () { if (this.rendered) { this.onSetValue.apply(this, arguments) } else { this.buffered = true; this.value = arguments } return this }, onSetValue:function (d, c) { if (arguments.length == 1) { if (Ext.isArray(d)) { Ext.each(d, function (h, e) { if (Ext.isObject(h) && h.setValue) { h.setValue(true); if (this.resetOriginal === true) { h.originalValue = h.getValue() } } else { var g = this.items.itemAt(e); if (g) { g.setValue(h) } } }, this) } else { if (Ext.isObject(d)) { for (var a in d) { var b = this.getBox(a); if (b) { b.setValue(d[a]) } } } else { this.setValueForItem(d) } } } else { var b = this.getBox(d); if (b) { b.setValue(c) } } }, beforeDestroy:function () { Ext.destroy(this.panel); if (!this.rendered) { Ext.destroy(this.items) } Ext.form.CheckboxGroup.superclass.beforeDestroy.call(this) }, setValueForItem:function (a) { a = String(a).split(","); this.eachItem(function (b) { if (a.indexOf(b.inputValue) > -1) { b.setValue(true) } }) }, getBox:function (b) { var a = null; this.eachItem(function (c) { if (b == c || c.dataIndex == b || c.id == b || c.getName() == b) { a = c; return false } }); return a }, getValue:function () { var a = []; this.eachItem(function (b) { if (b.checked) { a.push(b) } }); return a }, eachItem:function (b, a) { if (this.items && this.items.each) { this.items.each(b, a || this) } }, getRawValue:Ext.emptyFn, setRawValue:Ext.emptyFn}); Ext.reg("checkboxgroup", Ext.form.CheckboxGroup); Ext.form.CompositeField = Ext.extend(Ext.form.Field, {defaultMargins:"0 5 0 0", skipLastItemMargin:true, isComposite:true, combineErrors:true, labelConnector:", ", initComponent:function () { var g = [], b = this.items, e; for (var d = 0, c = b.length; d < c; d++) { e = b[d]; if (!Ext.isEmpty(e.ref)) { e.ref = "../" + e.ref } g.push(e.fieldLabel); Ext.applyIf(e, this.defaults); if (!(d == c - 1 && this.skipLastItemMargin)) { Ext.applyIf(e, {margins:this.defaultMargins}) } } this.fieldLabel = this.fieldLabel || this.buildLabel(g); this.fieldErrors = new Ext.util.MixedCollection(true, function (h) { return h.field }); this.fieldErrors.on({scope:this, add:this.updateInvalidMark, remove:this.updateInvalidMark, replace:this.updateInvalidMark}); Ext.form.CompositeField.superclass.initComponent.apply(this, arguments); this.innerCt = new Ext.Container({layout:"hbox", items:this.items, cls:"x-form-composite", defaultMargins:"0 3 0 0", ownerCt:this}); this.innerCt.ownerCt = undefined; var a = this.innerCt.findBy(function (h) { return h.isFormField }, this); this.items = new Ext.util.MixedCollection(); this.items.addAll(a) }, onRender:function (c, a) { if (!this.el) { var d = this.innerCt; d.render(c); this.el = d.getEl(); if (this.combineErrors) { this.eachItem(function (e) { Ext.apply(e, {markInvalid:this.onFieldMarkInvalid.createDelegate(this, [e], 0), clearInvalid:this.onFieldClearInvalid.createDelegate(this, [e], 0)}) }) } var b = this.el.parent().parent().child("label", true); if (b) { b.setAttribute("for", this.items.items[0].id) } } Ext.form.CompositeField.superclass.onRender.apply(this, arguments) }, onFieldMarkInvalid:function (d, c) { var b = d.getName(), a = {field:b, errorName:d.fieldLabel || b, error:c}; this.fieldErrors.replace(b, a); if (!d.preventMark) { d.el.addClass(d.invalidClass) } }, onFieldClearInvalid:function (a) { this.fieldErrors.removeKey(a.getName()); a.el.removeClass(a.invalidClass) }, updateInvalidMark:function () { var a = Ext.isIE6 && Ext.isStrict; if (this.fieldErrors.length == 0) { this.clearInvalid(); if (a) { this.clearInvalid.defer(50, this) } } else { var b = this.buildCombinedErrorMessage(this.fieldErrors.items); this.sortErrors(); this.markInvalid(b); if (a) { this.markInvalid(b) } } }, validateValue:function (c, a) { var b = true; this.eachItem(function (d) { if (!d.isValid(a)) { b = false } }); return b }, buildCombinedErrorMessage:function (e) { var d = [], b; for (var c = 0, a = e.length; c < a; c++) { b = e[c]; d.push(String.format("{0}: {1}", b.errorName, b.error)) } return d.join("
    ") }, sortErrors:function () { var a = this.items; this.fieldErrors.sort("ASC", function (g, d) { var c = function (b) { return function (i) { return i.getName() == b } }; var h = a.findIndexBy(c(g.field)), e = a.findIndexBy(c(d.field)); return h < e ? -1 : 1 }) }, reset:function () { this.eachItem(function (a) { a.reset() }); (function () { this.clearInvalid() }).defer(50, this) }, clearInvalidChildren:function () { this.eachItem(function (a) { a.clearInvalid() }) }, buildLabel:function (a) { return Ext.clean(a).join(this.labelConnector) }, isDirty:function () { if (this.disabled || !this.rendered) { return false } var a = false; this.eachItem(function (b) { if (b.isDirty()) { a = true; return false } }); return a }, eachItem:function (b, a) { if (this.items && this.items.each) { this.items.each(b, a || this) } }, onResize:function (e, c, a, d) { var b = this.innerCt; if (this.rendered && b.rendered) { b.setSize(e, c) } Ext.form.CompositeField.superclass.onResize.apply(this, arguments) }, doLayout:function (c, b) { if (this.rendered) { var a = this.innerCt; a.forceLayout = this.ownerCt.forceLayout; a.doLayout(c, b) } }, beforeDestroy:function () { Ext.destroy(this.innerCt); Ext.form.CompositeField.superclass.beforeDestroy.call(this) }, setReadOnly:function (a) { if (a == undefined) { a = true } a = !!a; if (this.rendered) { this.eachItem(function (b) { b.setReadOnly(a) }) } this.readOnly = a }, onShow:function () { Ext.form.CompositeField.superclass.onShow.call(this); this.doLayout() }, onDisable:function () { this.eachItem(function (a) { a.disable() }) }, onEnable:function () { this.eachItem(function (a) { a.enable() }) }}); Ext.reg("compositefield", Ext.form.CompositeField); Ext.form.Radio = Ext.extend(Ext.form.Checkbox, {inputType:"radio", markInvalid:Ext.emptyFn, clearInvalid:Ext.emptyFn, getGroupValue:function () { var a = this.el.up("form") || Ext.getBody(); var b = a.child('input[name="' + this.el.dom.name + '"]:checked', true); return b ? b.value : null }, setValue:function (b) { var a, d, c; if (typeof b == "boolean") { Ext.form.Radio.superclass.setValue.call(this, b) } else { if (this.rendered) { a = this.getCheckEl(); c = a.child('input[name="' + this.el.dom.name + '"][value="' + b + '"]', true); if (c) { Ext.getCmp(c.id).setValue(true) } } } if (this.rendered && this.checked) { a = a || this.getCheckEl(); d = this.getCheckEl().select('input[name="' + this.el.dom.name + '"]'); d.each(function (e) { if (e.dom.id != this.id) { Ext.getCmp(e.dom.id).setValue(false) } }, this) } return this }, getCheckEl:function () { if (this.inGroup) { return this.el.up(".x-form-radio-group") } return this.el.up("form") || Ext.getBody() }}); Ext.reg("radio", Ext.form.Radio); Ext.form.RadioGroup = Ext.extend(Ext.form.CheckboxGroup, {allowBlank:true, blankText:"You must select one item in this group", defaultType:"radio", groupCls:"x-form-radio-group", getValue:function () { var a = null; this.eachItem(function (b) { if (b.checked) { a = b; return false } }); return a }, onSetValue:function (c, b) { if (arguments.length > 1) { var a = this.getBox(c); if (a) { a.setValue(b); if (a.checked) { this.eachItem(function (d) { if (d !== a) { d.setValue(false) } }) } } } else { this.setValueForItem(c) } }, setValueForItem:function (a) { a = String(a).split(",")[0]; this.eachItem(function (b) { b.setValue(a == b.inputValue) }) }, fireChecked:function () { if (!this.checkTask) { this.checkTask = new Ext.util.DelayedTask(this.bufferChecked, this) } this.checkTask.delay(10) }, bufferChecked:function () { var a = null; this.eachItem(function (b) { if (b.checked) { a = b; return false } }); this.fireEvent("change", this, a) }, onDestroy:function () { if (this.checkTask) { this.checkTask.cancel(); this.checkTask = null } Ext.form.RadioGroup.superclass.onDestroy.call(this) }}); Ext.reg("radiogroup", Ext.form.RadioGroup); Ext.form.Hidden = Ext.extend(Ext.form.Field, {inputType:"hidden", shouldLayout:false, onRender:function () { Ext.form.Hidden.superclass.onRender.apply(this, arguments) }, initEvents:function () { this.originalValue = this.getValue() }, setSize:Ext.emptyFn, setWidth:Ext.emptyFn, setHeight:Ext.emptyFn, setPosition:Ext.emptyFn, setPagePosition:Ext.emptyFn, markInvalid:Ext.emptyFn, clearInvalid:Ext.emptyFn}); Ext.reg("hidden", Ext.form.Hidden); Ext.form.BasicForm = Ext.extend(Ext.util.Observable, {constructor:function (b, a) { Ext.apply(this, a); if (Ext.isString(this.paramOrder)) { this.paramOrder = this.paramOrder.split(/[\s,|]/) } this.items = new Ext.util.MixedCollection(false, function (c) { return c.getItemId() }); this.addEvents("beforeaction", "actionfailed", "actioncomplete"); if (b) { this.initEl(b) } Ext.form.BasicForm.superclass.constructor.call(this) }, timeout:30, paramOrder:undefined, paramsAsHash:false, waitTitle:"Please Wait...", activeAction:null, trackResetOnLoad:false, initEl:function (a) { this.el = Ext.get(a); this.id = this.el.id || Ext.id(); if (!this.standardSubmit) { this.el.on("submit", this.onSubmit, this) } this.el.addClass("x-form") }, getEl:function () { return this.el }, onSubmit:function (a) { a.stopEvent() }, destroy:function (a) { if (a !== true) { this.items.each(function (b) { Ext.destroy(b) }); Ext.destroy(this.el) } this.items.clear(); this.purgeListeners() }, isValid:function () { var a = true; this.items.each(function (b) { if (!b.validate()) { a = false } }); return a }, isDirty:function () { var a = false; this.items.each(function (b) { if (b.isDirty()) { a = true; return false } }); return a }, doAction:function (b, a) { if (Ext.isString(b)) { b = new Ext.form.Action.ACTION_TYPES[b](this, a) } if (this.fireEvent("beforeaction", this, b) !== false) { this.beforeAction(b); b.run.defer(100, b) } return this }, submit:function (b) { b = b || {}; if (this.standardSubmit) { var a = b.clientValidation === false || this.isValid(); if (a) { var c = this.el.dom; if (this.url && Ext.isEmpty(c.action)) { c.action = this.url } c.submit() } return a } var d = String.format("{0}submit", this.api ? "direct" : ""); this.doAction(d, b); return this }, load:function (a) { var b = String.format("{0}load", this.api ? "direct" : ""); this.doAction(b, a); return this }, updateRecord:function (b) { b.beginEdit(); var a = b.fields, d, c; a.each(function (e) { d = this.findField(e.name); if (d) { c = d.getValue(); if (Ext.type(c) !== false && c.getGroupValue) { c = c.getGroupValue() } else { if (d.eachItem) { c = []; d.eachItem(function (g) { c.push(g.getValue()) }) } } b.set(e.name, c) } }, this); b.endEdit(); return this }, loadRecord:function (a) { this.setValues(a.data); return this }, beforeAction:function (a) { this.items.each(function (c) { if (c.isFormField && c.syncValue) { c.syncValue() } }); var b = a.options; if (b.waitMsg) { if (this.waitMsgTarget === true) { this.el.mask(b.waitMsg, "x-mask-loading") } else { if (this.waitMsgTarget) { this.waitMsgTarget = Ext.get(this.waitMsgTarget); this.waitMsgTarget.mask(b.waitMsg, "x-mask-loading") } else { Ext.MessageBox.wait(b.waitMsg, b.waitTitle || this.waitTitle) } } } }, afterAction:function (a, c) { this.activeAction = null; var b = a.options; if (b.waitMsg) { if (this.waitMsgTarget === true) { this.el.unmask() } else { if (this.waitMsgTarget) { this.waitMsgTarget.unmask() } else { Ext.MessageBox.updateProgress(1); Ext.MessageBox.hide() } } } if (c) { if (b.reset) { this.reset() } Ext.callback(b.success, b.scope, [this, a]); this.fireEvent("actioncomplete", this, a) } else { Ext.callback(b.failure, b.scope, [this, a]); this.fireEvent("actionfailed", this, a) } }, findField:function (c) { var b = this.items.get(c); if (!Ext.isObject(b)) { var a = function (d) { if (d.isFormField) { if (d.dataIndex == c || d.id == c || d.getName() == c) { b = d; return false } else { if (d.isComposite) { return d.items.each(a) } else { if (d instanceof Ext.form.CheckboxGroup && d.rendered) { return d.eachItem(a) } } } } }; this.items.each(a) } return b || null }, markInvalid:function (h) { if (Ext.isArray(h)) { for (var c = 0, a = h.length; c < a; c++) { var b = h[c]; var d = this.findField(b.id); if (d) { d.markInvalid(b.msg) } } } else { var e, g; for (g in h) { if (!Ext.isFunction(h[g]) && (e = this.findField(g))) { e.markInvalid(h[g]) } } } return this }, setValues:function (c) { if (Ext.isArray(c)) { for (var d = 0, a = c.length; d < a; d++) { var b = c[d]; var e = this.findField(b.id); if (e) { e.setValue(b.value); if (this.trackResetOnLoad) { e.originalValue = e.getValue() } } } } else { var g, h; for (h in c) { if (!Ext.isFunction(c[h]) && (g = this.findField(h))) { g.setValue(c[h]); if (this.trackResetOnLoad) { g.originalValue = g.getValue() } } } } return this }, getValues:function (b) { var a = Ext.lib.Ajax.serializeForm(this.el.dom); if (b === true) { return a } return Ext.urlDecode(a) }, getFieldValues:function (a) { var d = {}, e, b, c; this.items.each(function (g) { if (!g.disabled && (a !== true || g.isDirty())) { e = g.getName(); b = d[e]; c = g.getValue(); if (Ext.isDefined(b)) { if (Ext.isArray(b)) { d[e].push(c) } else { d[e] = [b, c] } } else { d[e] = c } } }); return d }, clearInvalid:function () { this.items.each(function (a) { a.clearInvalid() }); return this }, reset:function () { this.items.each(function (a) { a.reset() }); return this }, add:function () { this.items.addAll(Array.prototype.slice.call(arguments, 0)); return this }, remove:function (a) { this.items.remove(a); return this }, cleanDestroyed:function () { this.items.filterBy( function (a) { return !!a.isDestroyed }).each(this.remove, this) }, render:function () { this.items.each(function (a) { if (a.isFormField && !a.rendered && document.getElementById(a.id)) { a.applyToMarkup(a.id) } }); return this }, applyToFields:function (a) { this.items.each(function (b) { Ext.apply(b, a) }); return this }, applyIfToFields:function (a) { this.items.each(function (b) { Ext.applyIf(b, a) }); return this }, callFieldMethod:function (b, a) { a = a || []; this.items.each(function (c) { if (Ext.isFunction(c[b])) { c[b].apply(c, a) } }); return this }}); Ext.BasicForm = Ext.form.BasicForm; Ext.FormPanel = Ext.extend(Ext.Panel, {minButtonWidth:75, labelAlign:"left", monitorValid:false, monitorPoll:200, layout:"form", initComponent:function () { this.form = this.createForm(); Ext.FormPanel.superclass.initComponent.call(this); this.bodyCfg = {tag:"form", cls:this.baseCls + "-body", method:this.method || "POST", id:this.formId || Ext.id()}; if (this.fileUpload) { this.bodyCfg.enctype = "multipart/form-data" } this.initItems(); this.addEvents("clientvalidation"); this.relayEvents(this.form, ["beforeaction", "actionfailed", "actioncomplete"]) }, createForm:function () { var a = Ext.applyIf({listeners:{}}, this.initialConfig); return new Ext.form.BasicForm(null, a) }, initFields:function () { var c = this.form; var a = this; var b = function (d) { if (a.isField(d)) { c.add(d) } else { if (d.findBy && d != a) { a.applySettings(d); if (d.items && d.items.each) { d.items.each(b, this) } } } }; this.items.each(b, this) }, applySettings:function (b) { var a = b.ownerCt; Ext.applyIf(b, {labelAlign:a.labelAlign, labelWidth:a.labelWidth, itemCls:a.itemCls}) }, getLayoutTarget:function () { return this.form.el }, getForm:function () { return this.form }, onRender:function (b, a) { this.initFields(); Ext.FormPanel.superclass.onRender.call(this, b, a); this.form.initEl(this.body) }, beforeDestroy:function () { this.stopMonitoring(); this.form.destroy(true); Ext.FormPanel.superclass.beforeDestroy.call(this) }, isField:function (a) { return !!a.setValue && !!a.getValue && !!a.markInvalid && !!a.clearInvalid }, initEvents:function () { Ext.FormPanel.superclass.initEvents.call(this); this.on({scope:this, add:this.onAddEvent, remove:this.onRemoveEvent}); if (this.monitorValid) { this.startMonitoring() } }, onAdd:function (a) { Ext.FormPanel.superclass.onAdd.call(this, a); this.processAdd(a) }, onAddEvent:function (a, b) { if (a !== this) { this.processAdd(b) } }, processAdd:function (a) { if (this.isField(a)) { this.form.add(a) } else { if (a.findBy) { this.applySettings(a); this.form.add.apply(this.form, a.findBy(this.isField)) } } }, onRemove:function (a) { Ext.FormPanel.superclass.onRemove.call(this, a); this.processRemove(a) }, onRemoveEvent:function (a, b) { if (a !== this) { this.processRemove(b) } }, processRemove:function (a) { if (!this.destroying) { if (this.isField(a)) { this.form.remove(a) } else { if (a.findBy) { Ext.each(a.findBy(this.isField), this.form.remove, this.form); this.form.cleanDestroyed() } } } }, startMonitoring:function () { if (!this.validTask) { this.validTask = new Ext.util.TaskRunner(); this.validTask.start({run:this.bindHandler, interval:this.monitorPoll || 200, scope:this}) } }, stopMonitoring:function () { if (this.validTask) { this.validTask.stopAll(); this.validTask = null } }, load:function () { this.form.load.apply(this.form, arguments) }, onDisable:function () { Ext.FormPanel.superclass.onDisable.call(this); if (this.form) { this.form.items.each(function () { this.disable() }) } }, onEnable:function () { Ext.FormPanel.superclass.onEnable.call(this); if (this.form) { this.form.items.each(function () { this.enable() }) } }, bindHandler:function () { var e = true; this.form.items.each(function (g) { if (!g.isValid(true)) { e = false; return false } }); if (this.fbar) { var b = this.fbar.items.items; for (var d = 0, a = b.length; d < a; d++) { var c = b[d]; if (c.formBind === true && c.disabled === e) { c.setDisabled(!e) } } } this.fireEvent("clientvalidation", this, e) }}); Ext.reg("form", Ext.FormPanel); Ext.form.FormPanel = Ext.FormPanel; Ext.form.FieldSet = Ext.extend(Ext.Panel, {baseCls:"x-fieldset", layout:"form", animCollapse:false, onRender:function (b, a) { if (!this.el) { this.el = document.createElement("fieldset"); this.el.id = this.id; if (this.title || this.header || this.checkboxToggle) { this.el.appendChild(document.createElement("legend")).className = this.baseCls + "-header" } } Ext.form.FieldSet.superclass.onRender.call(this, b, a); if (this.checkboxToggle) { var c = typeof this.checkboxToggle == "object" ? this.checkboxToggle : {tag:"input", type:"checkbox", name:this.checkboxName || this.id + "-checkbox"}; this.checkbox = this.header.insertFirst(c); this.checkbox.dom.checked = !this.collapsed; this.mon(this.checkbox, "click", this.onCheckClick, this) } }, onCollapse:function (a, b) { if (this.checkbox) { this.checkbox.dom.checked = false } Ext.form.FieldSet.superclass.onCollapse.call(this, a, b) }, onExpand:function (a, b) { if (this.checkbox) { this.checkbox.dom.checked = true } Ext.form.FieldSet.superclass.onExpand.call(this, a, b) }, onCheckClick:function () { this[this.checkbox.dom.checked ? "expand" : "collapse"]() }}); Ext.reg("fieldset", Ext.form.FieldSet); Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, {enableFormat:true, enableFontSize:true, enableColors:true, enableAlignments:true, enableLists:true, enableSourceEdit:true, enableLinks:true, enableFont:true, createLinkText:"Please enter the URL for the link:", defaultLinkValue:"http://", fontFamilies:["Arial", "Courier New", "Tahoma", "Times New Roman", "Verdana"], defaultFont:"tahoma", defaultValue:(Ext.isOpera || Ext.isIE6) ? " " : "​", actionMode:"wrap", validationEvent:false, deferHeight:true, initialized:false, activated:false, sourceEditMode:false, onFocus:Ext.emptyFn, iframePad:3, hideMode:"offsets", defaultAutoCreate:{tag:"textarea", style:"width:500px;height:300px;", autocomplete:"off"}, initComponent:function () { this.addEvents("initialize", "activate", "beforesync", "beforepush", "sync", "push", "editmodechange"); Ext.form.HtmlEditor.superclass.initComponent.call(this) }, createFontOptions:function () { var d = [], b = this.fontFamilies, c, g; for (var e = 0, a = b.length; e < a; e++) { c = b[e]; g = c.toLowerCase(); d.push('") } return d.join("") }, createToolbar:function (e) { var c = []; var a = Ext.QuickTips && Ext.QuickTips.isEnabled(); function d(j, h, i) { return{itemId:j, cls:"x-btn-icon", iconCls:"x-edit-" + j, enableToggle:h !== false, scope:e, handler:i || e.relayBtnCmd, clickEvent:"mousedown", tooltip:a ? e.buttonTips[j] || undefined : undefined, overflowText:e.buttonTips[j].title || undefined, tabIndex:-1} } if (this.enableFont && !Ext.isSafari2) { var g = new Ext.Toolbar.Item({autoEl:{tag:"select", cls:"x-font-select", html:this.createFontOptions()}}); c.push(g, "-") } if (this.enableFormat) { c.push(d("bold"), d("italic"), d("underline")) } if (this.enableFontSize) { c.push("-", d("increasefontsize", false, this.adjustFont), d("decreasefontsize", false, this.adjustFont)) } if (this.enableColors) { c.push("-", {itemId:"forecolor", cls:"x-btn-icon", iconCls:"x-edit-forecolor", clickEvent:"mousedown", tooltip:a ? e.buttonTips.forecolor || undefined : undefined, tabIndex:-1, menu:new Ext.menu.ColorMenu({allowReselect:true, focus:Ext.emptyFn, value:"000000", plain:true, listeners:{scope:this, select:function (i, h) { this.execCmd("forecolor", Ext.isWebKit || Ext.isIE ? "#" + h : h); this.deferFocus() }}, clickEvent:"mousedown"})}, {itemId:"backcolor", cls:"x-btn-icon", iconCls:"x-edit-backcolor", clickEvent:"mousedown", tooltip:a ? e.buttonTips.backcolor || undefined : undefined, tabIndex:-1, menu:new Ext.menu.ColorMenu({focus:Ext.emptyFn, value:"FFFFFF", plain:true, allowReselect:true, listeners:{scope:this, select:function (i, h) { if (Ext.isGecko) { this.execCmd("useCSS", false); this.execCmd("hilitecolor", h); this.execCmd("useCSS", true); this.deferFocus() } else { this.execCmd(Ext.isOpera ? "hilitecolor" : "backcolor", Ext.isWebKit || Ext.isIE ? "#" + h : h); this.deferFocus() } }}, clickEvent:"mousedown"})}) } if (this.enableAlignments) { c.push("-", d("justifyleft"), d("justifycenter"), d("justifyright")) } if (!Ext.isSafari2) { if (this.enableLinks) { c.push("-", d("createlink", false, this.createLink)) } if (this.enableLists) { c.push("-", d("insertorderedlist"), d("insertunorderedlist")) } if (this.enableSourceEdit) { c.push("-", d("sourceedit", true, function (h) { this.toggleSourceEdit(!this.sourceEditMode) })) } } var b = new Ext.Toolbar({renderTo:this.wrap.dom.firstChild, items:c}); if (g) { this.fontSelect = g.el; this.mon(this.fontSelect, "change", function () { var h = this.fontSelect.dom.value; this.relayCmd("fontname", h); this.deferFocus() }, this) } this.mon(b.el, "click", function (h) { h.preventDefault() }); this.tb = b; this.tb.doLayout() }, onDisable:function () { this.wrap.mask(); Ext.form.HtmlEditor.superclass.onDisable.call(this) }, onEnable:function () { this.wrap.unmask(); Ext.form.HtmlEditor.superclass.onEnable.call(this) }, setReadOnly:function (b) { Ext.form.HtmlEditor.superclass.setReadOnly.call(this, b); if (this.initialized) { if (Ext.isIE) { this.getEditorBody().contentEditable = !b } else { this.setDesignMode(!b) } var a = this.getEditorBody(); if (a) { a.style.cursor = this.readOnly ? "default" : "text" } this.disableItems(b) } }, getDocMarkup:function () { var a = Ext.fly(this.iframe).getHeight() - this.iframePad * 2; return String.format('', this.iframePad, a) }, getEditorBody:function () { var a = this.getDoc(); return a.body || a.documentElement }, getDoc:function () { return Ext.isIE ? this.getWin().document : (this.iframe.contentDocument || this.getWin().document) }, getWin:function () { return Ext.isIE ? this.iframe.contentWindow : window.frames[this.iframe.name] }, onRender:function (b, a) { Ext.form.HtmlEditor.superclass.onRender.call(this, b, a); this.el.dom.style.border = "0 none"; this.el.dom.setAttribute("tabIndex", -1); this.el.addClass("x-hidden"); if (Ext.isIE) { this.el.applyStyles("margin-top:-1px;margin-bottom:-1px;") } this.wrap = this.el.wrap({cls:"x-html-editor-wrap", cn:{cls:"x-html-editor-tb"}}); this.createToolbar(this); this.disableItems(true); this.tb.doLayout(); this.createIFrame(); if (!this.width) { var c = this.el.getSize(); this.setSize(c.width, this.height || c.height) } this.resizeEl = this.positionEl = this.wrap }, createIFrame:function () { var a = document.createElement("iframe"); a.name = Ext.id(); a.frameBorder = "0"; a.style.overflow = "auto"; a.src = Ext.SSL_SECURE_URL; this.wrap.dom.appendChild(a); this.iframe = a; this.monitorTask = Ext.TaskMgr.start({run:this.checkDesignMode, scope:this, interval:100}) }, initFrame:function () { Ext.TaskMgr.stop(this.monitorTask); var b = this.getDoc(); this.win = this.getWin(); b.open(); b.write(this.getDocMarkup()); b.close(); var a = {run:function () { var c = this.getDoc(); if (c.body || c.readyState == "complete") { Ext.TaskMgr.stop(a); this.setDesignMode(true); this.initEditor.defer(10, this) } }, interval:10, duration:10000, scope:this}; Ext.TaskMgr.start(a) }, checkDesignMode:function () { if (this.wrap && this.wrap.dom.offsetWidth) { var a = this.getDoc(); if (!a) { return } if (!a.editorInitialized || this.getDesignMode() != "on") { this.initFrame() } } }, setDesignMode:function (b) { var a = this.getDoc(); if (a) { if (this.readOnly) { b = false } a.designMode = (/on|true/i).test(String(b).toLowerCase()) ? "on" : "off" } }, getDesignMode:function () { var a = this.getDoc(); if (!a) { return"" } return String(a.designMode).toLowerCase() }, disableItems:function (a) { if (this.fontSelect) { this.fontSelect.dom.disabled = a } this.tb.items.each(function (b) { if (b.getItemId() != "sourceedit") { b.setDisabled(a) } }) }, onResize:function (b, c) { Ext.form.HtmlEditor.superclass.onResize.apply(this, arguments); if (this.el && this.iframe) { if (Ext.isNumber(b)) { var e = b - this.wrap.getFrameWidth("lr"); this.el.setWidth(e); this.tb.setWidth(e); this.iframe.style.width = Math.max(e, 0) + "px" } if (Ext.isNumber(c)) { var a = c - this.wrap.getFrameWidth("tb") - this.tb.el.getHeight(); this.el.setHeight(a); this.iframe.style.height = Math.max(a, 0) + "px"; var d = this.getEditorBody(); if (d) { d.style.height = Math.max((a - (this.iframePad * 2)), 0) + "px" } } } }, toggleSourceEdit:function (b) { var d, a; if (b === undefined) { b = !this.sourceEditMode } this.sourceEditMode = b === true; var c = this.tb.getComponent("sourceedit"); if (c.pressed !== this.sourceEditMode) { c.toggle(this.sourceEditMode); if (!c.xtbHidden) { return } } if (this.sourceEditMode) { this.previousSize = this.getSize(); d = Ext.get(this.iframe).getHeight(); this.disableItems(true); this.syncValue(); this.iframe.className = "x-hidden"; this.el.removeClass("x-hidden"); this.el.dom.removeAttribute("tabIndex"); this.el.focus(); this.el.dom.style.height = d + "px" } else { a = parseInt(this.el.dom.style.height, 10); if (this.initialized) { this.disableItems(this.readOnly) } this.pushValue(); this.iframe.className = ""; this.el.addClass("x-hidden"); this.el.dom.setAttribute("tabIndex", -1); this.deferFocus(); this.setSize(this.previousSize); delete this.previousSize; this.iframe.style.height = a + "px" } this.fireEvent("editmodechange", this, this.sourceEditMode) }, createLink:function () { var a = prompt(this.createLinkText, this.defaultLinkValue); if (a && a != "http://") { this.relayCmd("createlink", a) } }, initEvents:function () { this.originalValue = this.getValue() }, markInvalid:Ext.emptyFn, clearInvalid:Ext.emptyFn, setValue:function (a) { Ext.form.HtmlEditor.superclass.setValue.call(this, a); this.pushValue(); return this }, cleanHtml:function (a) { a = String(a); if (Ext.isWebKit) { a = a.replace(/\sclass="(?:Apple-style-span|khtml-block-placeholder)"/gi, "") } if (a.charCodeAt(0) == this.defaultValue.replace(/\D/g, "")) { a = a.substring(1) } return a }, syncValue:function () { if (this.initialized) { var d = this.getEditorBody(); var c = d.innerHTML; if (Ext.isWebKit) { var b = d.getAttribute("style"); var a = b.match(/text-align:(.*?);/i); if (a && a[1]) { c = '
    ' + c + "
    " } } c = this.cleanHtml(c); if (this.fireEvent("beforesync", this, c) !== false) { this.el.dom.value = c; this.fireEvent("sync", this, c) } } }, getValue:function () { this[this.sourceEditMode ? "pushValue" : "syncValue"](); return Ext.form.HtmlEditor.superclass.getValue.call(this) }, pushValue:function () { if (this.initialized) { var a = this.el.dom.value; if (!this.activated && a.length < 1) { a = this.defaultValue } if (this.fireEvent("beforepush", this, a) !== false) { this.getEditorBody().innerHTML = a; if (Ext.isGecko) { this.setDesignMode(false); this.setDesignMode(true) } this.fireEvent("push", this, a) } } }, deferFocus:function () { this.focus.defer(10, this) }, focus:function () { if (this.win && !this.sourceEditMode) { this.win.focus() } else { this.el.focus() } }, initEditor:function () { try { var c = this.getEditorBody(), a = this.el.getStyles("font-size", "font-family", "background-image", "background-repeat", "background-color", "color"), g, b; a["background-attachment"] = "fixed"; c.bgProperties = "fixed"; Ext.DomHelper.applyStyles(c, a); g = this.getDoc(); if (g) { try { Ext.EventManager.removeAll(g) } catch (d) { } } b = this.onEditorEvent.createDelegate(this); Ext.EventManager.on(g, {mousedown:b, dblclick:b, click:b, keyup:b, buffer:100}); if (Ext.isGecko) { Ext.EventManager.on(g, "keypress", this.applyCommand, this) } if (Ext.isIE || Ext.isWebKit || Ext.isOpera) { Ext.EventManager.on(g, "keydown", this.fixKeys, this) } g.editorInitialized = true; this.initialized = true; this.pushValue(); this.setReadOnly(this.readOnly); this.fireEvent("initialize", this) } catch (d) { } }, beforeDestroy:function () { if (this.monitorTask) { Ext.TaskMgr.stop(this.monitorTask) } if (this.rendered) { Ext.destroy(this.tb); var b = this.getDoc(); if (b) { try { Ext.EventManager.removeAll(b); for (var c in b) { delete b[c] } } catch (a) { } } if (this.wrap) { this.wrap.dom.innerHTML = ""; this.wrap.remove() } } Ext.form.HtmlEditor.superclass.beforeDestroy.call(this) }, onFirstFocus:function () { this.activated = true; this.disableItems(this.readOnly); if (Ext.isGecko) { this.win.focus(); var a = this.win.getSelection(); if (!a.focusNode || a.focusNode.nodeType != 3) { var b = a.getRangeAt(0); b.selectNodeContents(this.getEditorBody()); b.collapse(true); this.deferFocus() } try { this.execCmd("useCSS", true); this.execCmd("styleWithCSS", false) } catch (c) { } } this.fireEvent("activate", this) }, adjustFont:function (b) { var d = b.getItemId() == "increasefontsize" ? 1 : -1, c = this.getDoc(), a = parseInt(c.queryCommandValue("FontSize") || 2, 10); if ((Ext.isSafari && !Ext.isSafari2) || Ext.isChrome || Ext.isAir) { if (a <= 10) { a = 1 + d } else { if (a <= 13) { a = 2 + d } else { if (a <= 16) { a = 3 + d } else { if (a <= 18) { a = 4 + d } else { if (a <= 24) { a = 5 + d } else { a = 6 + d } } } } } a = a.constrain(1, 6) } else { if (Ext.isSafari) { d *= 2 } a = Math.max(1, a + d) + (Ext.isSafari ? "px" : 0) } this.execCmd("FontSize", a) }, onEditorEvent:function (a) { this.updateToolbar() }, updateToolbar:function () { if (this.readOnly) { return } if (!this.activated) { this.onFirstFocus(); return } var b = this.tb.items.map, c = this.getDoc(); if (this.enableFont && !Ext.isSafari2) { var a = (c.queryCommandValue("FontName") || this.defaultFont).toLowerCase(); if (a != this.fontSelect.dom.value) { this.fontSelect.dom.value = a } } if (this.enableFormat) { b.bold.toggle(c.queryCommandState("bold")); b.italic.toggle(c.queryCommandState("italic")); b.underline.toggle(c.queryCommandState("underline")) } if (this.enableAlignments) { b.justifyleft.toggle(c.queryCommandState("justifyleft")); b.justifycenter.toggle(c.queryCommandState("justifycenter")); b.justifyright.toggle(c.queryCommandState("justifyright")) } if (!Ext.isSafari2 && this.enableLists) { b.insertorderedlist.toggle(c.queryCommandState("insertorderedlist")); b.insertunorderedlist.toggle(c.queryCommandState("insertunorderedlist")) } Ext.menu.MenuMgr.hideAll(); this.syncValue() }, relayBtnCmd:function (a) { this.relayCmd(a.getItemId()) }, relayCmd:function (b, a) { (function () { this.focus(); this.execCmd(b, a); this.updateToolbar() }).defer(10, this) }, execCmd:function (b, a) { var c = this.getDoc(); c.execCommand(b, false, a === undefined ? null : a); this.syncValue() }, applyCommand:function (b) { if (b.ctrlKey) { var d = b.getCharCode(), a; if (d > 0) { d = String.fromCharCode(d); switch (d) { case"b": a = "bold"; break; case"i": a = "italic"; break; case"u": a = "underline"; break } if (a) { this.win.focus(); this.execCmd(a); this.deferFocus(); b.preventDefault() } } } }, insertAtCursor:function (c) { if (!this.activated) { return } if (Ext.isIE) { this.win.focus(); var b = this.getDoc(), a = b.selection.createRange(); if (a) { a.pasteHTML(c); this.syncValue(); this.deferFocus() } } else { this.win.focus(); this.execCmd("InsertHTML", c); this.deferFocus() } }, fixKeys:function () { if (Ext.isIE) { return function (g) { var a = g.getKey(), d = this.getDoc(), b; if (a == g.TAB) { g.stopEvent(); b = d.selection.createRange(); if (b) { b.collapse(true); b.pasteHTML("    "); this.deferFocus() } } else { if (a == g.ENTER) { b = d.selection.createRange(); if (b) { var c = b.parentElement(); if (!c || c.tagName.toLowerCase() != "li") { g.stopEvent(); b.pasteHTML("
    "); b.collapse(false); b.select() } } } } } } else { if (Ext.isOpera) { return function (b) { var a = b.getKey(); if (a == b.TAB) { b.stopEvent(); this.win.focus(); this.execCmd("InsertHTML", "    "); this.deferFocus() } } } else { if (Ext.isWebKit) { return function (b) { var a = b.getKey(); if (a == b.TAB) { b.stopEvent(); this.execCmd("InsertText", "\t"); this.deferFocus() } else { if (a == b.ENTER) { b.stopEvent(); this.execCmd("InsertHtml", "

    "); this.deferFocus() } } } } } } }(), getToolbar:function () { return this.tb }, buttonTips:{bold:{title:"Bold (Ctrl+B)", text:"Make the selected text bold.", cls:"x-html-editor-tip"}, italic:{title:"Italic (Ctrl+I)", text:"Make the selected text italic.", cls:"x-html-editor-tip"}, underline:{title:"Underline (Ctrl+U)", text:"Underline the selected text.", cls:"x-html-editor-tip"}, increasefontsize:{title:"Grow Text", text:"Increase the font size.", cls:"x-html-editor-tip"}, decreasefontsize:{title:"Shrink Text", text:"Decrease the font size.", cls:"x-html-editor-tip"}, backcolor:{title:"Text Highlight Color", text:"Change the background color of the selected text.", cls:"x-html-editor-tip"}, forecolor:{title:"Font Color", text:"Change the color of the selected text.", cls:"x-html-editor-tip"}, justifyleft:{title:"Align Text Left", text:"Align text to the left.", cls:"x-html-editor-tip"}, justifycenter:{title:"Center Text", text:"Center text in the editor.", cls:"x-html-editor-tip"}, justifyright:{title:"Align Text Right", text:"Align text to the right.", cls:"x-html-editor-tip"}, insertunorderedlist:{title:"Bullet List", text:"Start a bulleted list.", cls:"x-html-editor-tip"}, insertorderedlist:{title:"Numbered List", text:"Start a numbered list.", cls:"x-html-editor-tip"}, createlink:{title:"Hyperlink", text:"Make the selected text a hyperlink.", cls:"x-html-editor-tip"}, sourceedit:{title:"Source Edit", text:"Switch to source editing mode.", cls:"x-html-editor-tip"}}}); Ext.reg("htmleditor", Ext.form.HtmlEditor); Ext.form.TimeField = Ext.extend(Ext.form.ComboBox, {minValue:undefined, maxValue:undefined, minText:"The time in this field must be equal to or after {0}", maxText:"The time in this field must be equal to or before {0}", invalidText:"{0} is not a valid time", format:"g:i A", altFormats:"g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H|gi a|hi a|giA|hiA|gi A|hi A", increment:15, mode:"local", triggerAction:"all", typeAhead:false, initDate:"1/1/2008", initDateFormat:"j/n/Y", initComponent:function () { if (Ext.isDefined(this.minValue)) { this.setMinValue(this.minValue, true) } if (Ext.isDefined(this.maxValue)) { this.setMaxValue(this.maxValue, true) } if (!this.store) { this.generateStore(true) } Ext.form.TimeField.superclass.initComponent.call(this) }, setMinValue:function (b, a) { this.setLimit(b, true, a); return this }, setMaxValue:function (b, a) { this.setLimit(b, false, a); return this }, generateStore:function (b) { var c = this.minValue || new Date(this.initDate).clearTime(), a = this.maxValue || new Date(this.initDate).clearTime().add("mi", (24 * 60) - 1), d = []; while (c <= a) { d.push(c.dateFormat(this.format)); c = c.add("mi", this.increment) } this.bindStore(d, b) }, setLimit:function (b, g, a) { var e; if (Ext.isString(b)) { e = this.parseDate(b) } else { if (Ext.isDate(b)) { e = b } } if (e) { var c = new Date(this.initDate).clearTime(); c.setHours(e.getHours(), e.getMinutes(), e.getSeconds(), e.getMilliseconds()); this[g ? "minValue" : "maxValue"] = c; if (!a) { this.generateStore() } } }, getValue:function () { var a = Ext.form.TimeField.superclass.getValue.call(this); return this.formatDate(this.parseDate(a)) || "" }, setValue:function (a) { return Ext.form.TimeField.superclass.setValue.call(this, this.formatDate(this.parseDate(a))) }, validateValue:Ext.form.DateField.prototype.validateValue, formatDate:Ext.form.DateField.prototype.formatDate, parseDate:function (h) { if (!h || Ext.isDate(h)) { return h } var j = this.initDate + " ", g = this.initDateFormat + " ", b = Date.parseDate(j + h, g + this.format), c = this.altFormats; if (!b && c) { if (!this.altFormatsArray) { this.altFormatsArray = c.split("|") } for (var e = 0, d = this.altFormatsArray, a = d.length; e < a && !b; e++) { b = Date.parseDate(j + h, g + d[e]) } } return b }}); Ext.reg("timefield", Ext.form.TimeField); Ext.form.SliderField = Ext.extend(Ext.form.Field, {useTips:true, tipText:null, actionMode:"wrap", initComponent:function () { var b = Ext.copyTo({id:this.id + "-slider"}, this.initialConfig, ["vertical", "minValue", "maxValue", "decimalPrecision", "keyIncrement", "increment", "clickToChange", "animate"]); if (this.useTips) { var a = this.tipText ? {getText:this.tipText} : {}; b.plugins = [new Ext.slider.Tip(a)] } this.slider = new Ext.Slider(b); Ext.form.SliderField.superclass.initComponent.call(this) }, onRender:function (b, a) { this.autoCreate = {id:this.id, name:this.name, type:"hidden", tag:"input"}; Ext.form.SliderField.superclass.onRender.call(this, b, a); this.wrap = this.el.wrap({cls:"x-form-field-wrap"}); this.resizeEl = this.positionEl = this.wrap; this.slider.render(this.wrap) }, onResize:function (b, c, d, a) { Ext.form.SliderField.superclass.onResize.call(this, b, c, d, a); this.slider.setSize(b, c) }, initEvents:function () { Ext.form.SliderField.superclass.initEvents.call(this); this.slider.on("change", this.onChange, this) }, onChange:function (b, a) { this.setValue(a, undefined, true) }, onEnable:function () { Ext.form.SliderField.superclass.onEnable.call(this); this.slider.enable() }, onDisable:function () { Ext.form.SliderField.superclass.onDisable.call(this); this.slider.disable() }, beforeDestroy:function () { Ext.destroy(this.slider); Ext.form.SliderField.superclass.beforeDestroy.call(this) }, alignErrorIcon:function () { this.errorIcon.alignTo(this.slider.el, "tl-tr", [2, 0]) }, setMinValue:function (a) { this.slider.setMinValue(a); return this }, setMaxValue:function (a) { this.slider.setMaxValue(a); return this }, setValue:function (c, b, a) { if (!a) { this.slider.setValue(c, b) } return Ext.form.SliderField.superclass.setValue.call(this, this.slider.getValue()) }, getValue:function () { return this.slider.getValue() }}); Ext.reg("sliderfield", Ext.form.SliderField); Ext.form.Label = Ext.extend(Ext.BoxComponent, {onRender:function (b, a) { if (!this.el) { this.el = document.createElement("label"); this.el.id = this.getId(); this.el.innerHTML = this.text ? Ext.util.Format.htmlEncode(this.text) : (this.html || ""); if (this.forId) { this.el.setAttribute("for", this.forId) } } Ext.form.Label.superclass.onRender.call(this, b, a) }, setText:function (a, b) { var c = b === false; this[!c ? "text" : "html"] = a; delete this[c ? "text" : "html"]; if (this.rendered) { this.el.dom.innerHTML = b !== false ? Ext.util.Format.htmlEncode(a) : a } return this }}); Ext.reg("label", Ext.form.Label); Ext.form.Action = function (b, a) { this.form = b; this.options = a || {} }; Ext.form.Action.CLIENT_INVALID = "client"; Ext.form.Action.SERVER_INVALID = "server"; Ext.form.Action.CONNECT_FAILURE = "connect"; Ext.form.Action.LOAD_FAILURE = "load"; Ext.form.Action.prototype = {type:"default", run:function (a) { }, success:function (a) { }, handleResponse:function (a) { }, failure:function (a) { this.response = a; this.failureType = Ext.form.Action.CONNECT_FAILURE; this.form.afterAction(this, false) }, processResponse:function (a) { this.response = a; if (!a.responseText && !a.responseXML) { return true } this.result = this.handleResponse(a); return this.result }, decodeResponse:function (a) { try { return Ext.decode(a.responseText) } catch (b) { return false } }, getUrl:function (c) { var a = this.options.url || this.form.url || this.form.el.dom.action; if (c) { var b = this.getParams(); if (b) { a = Ext.urlAppend(a, b) } } return a }, getMethod:function () { return(this.options.method || this.form.method || this.form.el.dom.method || "POST").toUpperCase() }, getParams:function () { var a = this.form.baseParams; var b = this.options.params; if (b) { if (typeof b == "object") { b = Ext.urlEncode(Ext.applyIf(b, a)) } else { if (typeof b == "string" && a) { b += "&" + Ext.urlEncode(a) } } } else { if (a) { b = Ext.urlEncode(a) } } return b }, createCallback:function (a) { var a = a || {}; return{success:this.success, failure:this.failure, scope:this, timeout:(a.timeout * 1000) || (this.form.timeout * 1000), upload:this.form.fileUpload ? this.success : undefined} }}; Ext.form.Action.Submit = function (b, a) { Ext.form.Action.Submit.superclass.constructor.call(this, b, a) }; Ext.extend(Ext.form.Action.Submit, Ext.form.Action, {type:"submit", run:function () { var e = this.options, g = this.getMethod(), d = g == "GET"; if (e.clientValidation === false || this.form.isValid()) { if (e.submitEmptyText === false) { var a = this.form.items, c = [], b = function (h) { if (h.el.getValue() == h.emptyText) { c.push(h); h.el.dom.value = "" } if (h.isComposite && h.rendered) { h.items.each(b) } }; a.each(b) } Ext.Ajax.request(Ext.apply(this.createCallback(e), {form:this.form.el.dom, url:this.getUrl(d), method:g, headers:e.headers, params:!d ? this.getParams() : null, isUpload:this.form.fileUpload})); if (e.submitEmptyText === false) { Ext.each(c, function (h) { if (h.applyEmptyText) { h.applyEmptyText() } }) } } else { if (e.clientValidation !== false) { this.failureType = Ext.form.Action.CLIENT_INVALID; this.form.afterAction(this, false) } } }, success:function (b) { var a = this.processResponse(b); if (a === true || a.success) { this.form.afterAction(this, true); return } if (a.errors) { this.form.markInvalid(a.errors) } this.failureType = Ext.form.Action.SERVER_INVALID; this.form.afterAction(this, false) }, handleResponse:function (c) { if (this.form.errorReader) { var b = this.form.errorReader.read(c); var g = []; if (b.records) { for (var d = 0, a = b.records.length; d < a; d++) { var e = b.records[d]; g[d] = e.data } } if (g.length < 1) { g = null } return{success:b.success, errors:g} } return this.decodeResponse(c) }}); Ext.form.Action.Load = function (b, a) { Ext.form.Action.Load.superclass.constructor.call(this, b, a); this.reader = this.form.reader }; Ext.extend(Ext.form.Action.Load, Ext.form.Action, {type:"load", run:function () { Ext.Ajax.request(Ext.apply(this.createCallback(this.options), {method:this.getMethod(), url:this.getUrl(false), headers:this.options.headers, params:this.getParams()})) }, success:function (b) { var a = this.processResponse(b); if (a === true || !a.success || !a.data) { this.failureType = Ext.form.Action.LOAD_FAILURE; this.form.afterAction(this, false); return } this.form.clearInvalid(); this.form.setValues(a.data); this.form.afterAction(this, true) }, handleResponse:function (b) { if (this.form.reader) { var a = this.form.reader.read(b); var c = a.records && a.records[0] ? a.records[0].data : null; return{success:a.success, data:c} } return this.decodeResponse(b) }}); Ext.form.Action.DirectLoad = Ext.extend(Ext.form.Action.Load, {constructor:function (b, a) { Ext.form.Action.DirectLoad.superclass.constructor.call(this, b, a) }, type:"directload", run:function () { var a = this.getParams(); a.push(this.success, this); this.form.api.load.apply(window, a) }, getParams:function () { var c = [], h = {}; var e = this.form.baseParams; var g = this.options.params; Ext.apply(h, g, e); var b = this.form.paramOrder; if (b) { for (var d = 0, a = b.length; d < a; d++) { c.push(h[b[d]]) } } else { if (this.form.paramsAsHash) { c.push(h) } } return c }, processResponse:function (a) { this.result = a; return a }, success:function (a, b) { if (b.type == Ext.Direct.exceptions.SERVER) { a = {} } Ext.form.Action.DirectLoad.superclass.success.call(this, a) }}); Ext.form.Action.DirectSubmit = Ext.extend(Ext.form.Action.Submit, {constructor:function (b, a) { Ext.form.Action.DirectSubmit.superclass.constructor.call(this, b, a) }, type:"directsubmit", run:function () { var a = this.options; if (a.clientValidation === false || this.form.isValid()) { this.success.params = this.getParams(); this.form.api.submit(this.form.el.dom, this.success, this) } else { if (a.clientValidation !== false) { this.failureType = Ext.form.Action.CLIENT_INVALID; this.form.afterAction(this, false) } } }, getParams:function () { var c = {}; var a = this.form.baseParams; var b = this.options.params; Ext.apply(c, b, a); return c }, processResponse:function (a) { this.result = a; return a }, success:function (a, b) { if (b.type == Ext.Direct.exceptions.SERVER) { a = {} } Ext.form.Action.DirectSubmit.superclass.success.call(this, a) }}); Ext.form.Action.ACTION_TYPES = {load:Ext.form.Action.Load, submit:Ext.form.Action.Submit, directload:Ext.form.Action.DirectLoad, directsubmit:Ext.form.Action.DirectSubmit}; Ext.form.VTypes = function () { var c = /^[a-zA-Z_]+$/, d = /^[a-zA-Z0-9_]+$/, b = /^(\w+)([\-+.\'][\w]+)*@(\w[\-\w]*\.){1,5}([A-Za-z]){2,6}$/, a = /(((^https?)|(^ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i; return{email:function (e) { return b.test(e) }, emailText:'This field should be an e-mail address in the format "user@example.com"', emailMask:/[a-z0-9_\.\-\+\'@]/i, url:function (e) { return a.test(e) }, urlText:'This field should be a URL in the format "http://www.example.com"', alpha:function (e) { return c.test(e) }, alphaText:"This field should only contain letters and _", alphaMask:/[a-z_]/i, alphanum:function (e) { return d.test(e) }, alphanumText:"This field should only contain letters, numbers and _", alphanumMask:/[a-z0-9_]/i} }(); Ext.grid.GridPanel = Ext.extend(Ext.Panel, {autoExpandColumn:false, autoExpandMax:1000, autoExpandMin:50, columnLines:false, ddText:"{0} selected row{1}", deferRowRender:true, enableColumnHide:true, enableColumnMove:true, enableDragDrop:false, enableHdMenu:true, loadMask:false, minColumnWidth:25, stripeRows:false, trackMouseOver:true, stateEvents:["columnmove", "columnresize", "sortchange", "groupchange"], view:null, bubbleEvents:[], rendered:false, viewReady:false, initComponent:function () { Ext.grid.GridPanel.superclass.initComponent.call(this); if (this.columnLines) { this.cls = (this.cls || "") + " x-grid-with-col-lines" } this.autoScroll = false; this.autoWidth = false; if (Ext.isArray(this.columns)) { this.colModel = new Ext.grid.ColumnModel(this.columns); delete this.columns } if (this.ds) { this.store = this.ds; delete this.ds } if (this.cm) { this.colModel = this.cm; delete this.cm } if (this.sm) { this.selModel = this.sm; delete this.sm } this.store = Ext.StoreMgr.lookup(this.store); this.addEvents("click", "dblclick", "contextmenu", "mousedown", "mouseup", "mouseover", "mouseout", "keypress", "keydown", "cellmousedown", "rowmousedown", "headermousedown", "groupmousedown", "rowbodymousedown", "containermousedown", "cellclick", "celldblclick", "rowclick", "rowdblclick", "headerclick", "headerdblclick", "groupclick", "groupdblclick", "containerclick", "containerdblclick", "rowbodyclick", "rowbodydblclick", "rowcontextmenu", "cellcontextmenu", "headercontextmenu", "groupcontextmenu", "containercontextmenu", "rowbodycontextmenu", "bodyscroll", "columnresize", "columnmove", "sortchange", "groupchange", "reconfigure", "viewready") }, onRender:function (d, a) { Ext.grid.GridPanel.superclass.onRender.apply(this, arguments); var e = this.getGridEl(); this.el.addClass("x-grid-panel"); this.mon(e, {scope:this, mousedown:this.onMouseDown, click:this.onClick, dblclick:this.onDblClick, contextmenu:this.onContextMenu}); this.relayEvents(e, ["mousedown", "mouseup", "mouseover", "mouseout", "keypress", "keydown"]); var b = this.getView(); b.init(this); b.render(); this.getSelectionModel().init(this) }, initEvents:function () { Ext.grid.GridPanel.superclass.initEvents.call(this); if (this.loadMask) { this.loadMask = new Ext.LoadMask(this.bwrap, Ext.apply({store:this.store}, this.loadMask)) } }, initStateEvents:function () { Ext.grid.GridPanel.superclass.initStateEvents.call(this); this.mon(this.colModel, "hiddenchange", this.saveState, this, {delay:100}) }, applyState:function (a) { var k = this.colModel, g = a.columns, j = this.store, m, h, l; if (g) { for (var d = 0, e = g.length; d < e; d++) { m = g[d]; h = k.getColumnById(m.id); if (h) { l = k.getIndexById(m.id); k.setState(l, {hidden:m.hidden, width:m.width, sortable:m.sortable}); if (l != d) { k.moveColumn(l, d) } } } } if (j) { m = a.sort; if (m) { j[j.remoteSort ? "setDefaultSort" : "sort"](m.field, m.direction) } m = a.group; if (j.groupBy) { if (m) { j.groupBy(m) } else { j.clearGrouping() } } } var b = Ext.apply({}, a); delete b.columns; delete b.sort; Ext.grid.GridPanel.superclass.applyState.call(this, b) }, getState:function () { var g = {columns:[]}, b = this.store, e, a; for (var d = 0, h; (h = this.colModel.config[d]); d++) { g.columns[d] = {id:h.id, width:h.width}; if (h.hidden) { g.columns[d].hidden = true } if (h.sortable) { g.columns[d].sortable = true } } if (b) { e = b.getSortState(); if (e) { g.sort = e } if (b.getGroupState) { a = b.getGroupState(); if (a) { g.group = a } } } return g }, afterRender:function () { Ext.grid.GridPanel.superclass.afterRender.call(this); var a = this.view; this.on("bodyresize", a.layout, a); a.layout(true); if (this.deferRowRender) { if (!this.deferRowRenderTask) { this.deferRowRenderTask = new Ext.util.DelayedTask(a.afterRender, this.view) } this.deferRowRenderTask.delay(10) } else { a.afterRender() } this.viewReady = true }, reconfigure:function (a, b) { var c = this.rendered; if (c) { if (this.loadMask) { this.loadMask.destroy(); this.loadMask = new Ext.LoadMask(this.bwrap, Ext.apply({}, {store:a}, this.initialConfig.loadMask)) } } if (this.view) { this.view.initData(a, b) } this.store = a; this.colModel = b; if (c) { this.view.refresh(true) } this.fireEvent("reconfigure", this, a, b) }, onDestroy:function () { if (this.deferRowRenderTask && this.deferRowRenderTask.cancel) { this.deferRowRenderTask.cancel() } if (this.rendered) { Ext.destroy(this.view, this.loadMask) } else { if (this.store && this.store.autoDestroy) { this.store.destroy() } } Ext.destroy(this.colModel, this.selModel); this.store = this.selModel = this.colModel = this.view = this.loadMask = null; Ext.grid.GridPanel.superclass.onDestroy.call(this) }, processEvent:function (a, b) { this.view.processEvent(a, b) }, onClick:function (a) { this.processEvent("click", a) }, onMouseDown:function (a) { this.processEvent("mousedown", a) }, onContextMenu:function (b, a) { this.processEvent("contextmenu", b) }, onDblClick:function (a) { this.processEvent("dblclick", a) }, walkCells:function (k, c, b, e, j) { var i = this.colModel, g = i.getColumnCount(), a = this.store, h = a.getCount(), d = true; if (b < 0) { if (c < 0) { k--; d = false } while (k >= 0) { if (!d) { c = g - 1 } d = false; while (c >= 0) { if (e.call(j || this, k, c, i) === true) { return[k, c] } c-- } k-- } } else { if (c >= g) { k++; d = false } while (k < h) { if (!d) { c = 0 } d = false; while (c < g) { if (e.call(j || this, k, c, i) === true) { return[k, c] } c++ } k++ } } return null }, getGridEl:function () { return this.body }, stopEditing:Ext.emptyFn, getSelectionModel:function () { if (!this.selModel) { this.selModel = new Ext.grid.RowSelectionModel(this.disableSelection ? {selectRow:Ext.emptyFn} : null) } return this.selModel }, getStore:function () { return this.store }, getColumnModel:function () { return this.colModel }, getView:function () { if (!this.view) { this.view = new Ext.grid.GridView(this.viewConfig) } return this.view }, getDragDropText:function () { var a = this.selModel.getCount(); return String.format(this.ddText, a, a == 1 ? "" : "s") }}); Ext.reg("grid", Ext.grid.GridPanel); Ext.grid.PivotGrid = Ext.extend(Ext.grid.GridPanel, {aggregator:"sum", renderer:undefined, initComponent:function () { Ext.grid.PivotGrid.superclass.initComponent.apply(this, arguments); this.initAxes(); this.enableColumnResize = false; this.viewConfig = Ext.apply(this.viewConfig || {}, {forceFit:true}); this.colModel = new Ext.grid.ColumnModel({}) }, getAggregator:function () { if (typeof this.aggregator == "string") { return Ext.grid.PivotAggregatorMgr.types[this.aggregator] } else { return this.aggregator } }, setAggregator:function (a) { this.aggregator = a }, setMeasure:function (a) { this.measure = a }, setLeftAxis:function (b, a) { this.leftAxis = b; if (a) { this.view.refresh() } }, setTopAxis:function (b, a) { this.topAxis = b; if (a) { this.view.refresh() } }, initAxes:function () { var a = Ext.grid.PivotAxis; if (!(this.leftAxis instanceof a)) { this.setLeftAxis(new a({orientation:"vertical", dimensions:this.leftAxis || [], store:this.store})) } if (!(this.topAxis instanceof a)) { this.setTopAxis(new a({orientation:"horizontal", dimensions:this.topAxis || [], store:this.store})) } }, extractData:function () { var c = this.store.data.items, s = c.length, q = [], h, g, e, d; if (s == 0) { return[] } var l = this.leftAxis.getTuples(), o = l.length, m = this.topAxis.getTuples(), a = m.length, b = this.getAggregator(); for (g = 0; g < s; g++) { h = c[g]; for (e = 0; e < o; e++) { q[e] = q[e] || []; if (l[e].matcher(h) === true) { for (d = 0; d < a; d++) { q[e][d] = q[e][d] || []; if (m[d].matcher(h)) { q[e][d].push(h) } } } } } var n = q.length, p, r; for (g = 0; g < n; g++) { r = q[g]; p = r.length; for (e = 0; e < p; e++) { q[g][e] = b(q[g][e], this.measure) } } return q }, getView:function () { if (!this.view) { this.view = new Ext.grid.PivotGridView(this.viewConfig) } return this.view }}); Ext.reg("pivotgrid", Ext.grid.PivotGrid); Ext.grid.PivotAggregatorMgr = new Ext.AbstractManager(); Ext.grid.PivotAggregatorMgr.registerType("sum", function (a, c) { var e = a.length, d = 0, b; for (b = 0; b < e; b++) { d += a[b].get(c) } return d }); Ext.grid.PivotAggregatorMgr.registerType("avg", function (a, c) { var e = a.length, d = 0, b; for (b = 0; b < e; b++) { d += a[b].get(c) } return(d / e) || "n/a" }); Ext.grid.PivotAggregatorMgr.registerType("min", function (a, c) { var e = [], d = a.length, b; for (b = 0; b < d; b++) { e.push(a[b].get(c)) } return Math.min.apply(this, e) || "n/a" }); Ext.grid.PivotAggregatorMgr.registerType("max", function (a, c) { var e = [], d = a.length, b; for (b = 0; b < d; b++) { e.push(a[b].get(c)) } return Math.max.apply(this, e) || "n/a" }); Ext.grid.PivotAggregatorMgr.registerType("count", function (a, b) { return a.length }); Ext.grid.GridView = Ext.extend(Ext.util.Observable, {deferEmptyText:true, scrollOffset:undefined, autoFill:false, forceFit:false, sortClasses:["sort-asc", "sort-desc"], sortAscText:"Sort Ascending", sortDescText:"Sort Descending", columnsText:"Columns", selectedRowClass:"x-grid3-row-selected", borderWidth:2, tdClass:"x-grid3-cell", hdCls:"x-grid3-hd", markDirty:true, cellSelectorDepth:4, rowSelectorDepth:10, rowBodySelectorDepth:10, cellSelector:"td.x-grid3-cell", rowSelector:"div.x-grid3-row", rowBodySelector:"div.x-grid3-row-body", firstRowCls:"x-grid3-row-first", lastRowCls:"x-grid3-row-last", rowClsRe:/(?:^|\s+)x-grid3-row-(first|last|alt)(?:\s+|$)/g, headerMenuOpenCls:"x-grid3-hd-menu-open", rowOverCls:"x-grid3-row-over", constructor:function (a) { Ext.apply(this, a); this.addEvents("beforerowremoved", "beforerowsinserted", "beforerefresh", "rowremoved", "rowsinserted", "rowupdated", "refresh"); Ext.grid.GridView.superclass.constructor.call(this) }, masterTpl:new Ext.Template('
    ', '
    ', '
    ', '
    ', '
    {header}
    ', "
    ", '
    ', "
    ", '
    ', '
    {body}
    ', '', "
    ", "
    ", '
     
    ', '
     
    ', "
    "), headerTpl:new Ext.Template('', "", '{cells}', "", "
    "), bodyTpl:new Ext.Template("{rows}"), cellTpl:new Ext.Template('', '
    {value}
    ', ""), initTemplates:function () { var c = this.templates || {}, d, b, g = new Ext.Template('', '
    ', this.grid.enableHdMenu ? '' : "", "{value}", '', "
    ", ""), a = ['', '', '
    {body}
    ', "", ""].join(""), e = ['', "", "{cells}", this.enableRowBody ? a : "", "", "
    "].join(""); Ext.applyIf(c, {hcell:g, cell:this.cellTpl, body:this.bodyTpl, header:this.headerTpl, master:this.masterTpl, row:new Ext.Template('
    ' + e + "
    "), rowInner:new Ext.Template(e)}); for (b in c) { d = c[b]; if (d && Ext.isFunction(d.compile) && !d.compiled) { d.disableFormats = true; d.compile() } } this.templates = c; this.colRe = new RegExp("x-grid3-td-([^\\s]+)", "") }, fly:function (a) { if (!this._flyweight) { this._flyweight = new Ext.Element.Flyweight(document.body) } this._flyweight.dom = a; return this._flyweight }, getEditorParent:function () { return this.scroller.dom }, initElements:function () { var b = Ext.Element, d = Ext.get(this.grid.getGridEl().dom.firstChild), e = new b(d.child("div.x-grid3-viewport")), c = new b(e.child("div.x-grid3-header")), a = new b(e.child("div.x-grid3-scroller")); if (this.grid.hideHeaders) { c.setDisplayed(false) } if (this.forceFit) { a.setStyle("overflow-x", "hidden") } Ext.apply(this, {el:d, mainWrap:e, scroller:a, mainHd:c, innerHd:c.child("div.x-grid3-header-inner").dom, mainBody:new b(b.fly(a).child("div.x-grid3-body")), focusEl:new b(b.fly(a).child("a")), resizeMarker:new b(d.child("div.x-grid3-resize-marker")), resizeProxy:new b(d.child("div.x-grid3-resize-proxy"))}); this.focusEl.swallowEvent("click", true) }, getRows:function () { return this.hasRows() ? this.mainBody.dom.childNodes : [] }, findCell:function (a) { if (!a) { return false } return this.fly(a).findParent(this.cellSelector, this.cellSelectorDepth) }, findCellIndex:function (d, c) { var b = this.findCell(d), a; if (b) { a = this.fly(b).hasClass(c); if (!c || a) { return this.getCellIndex(b) } } return false }, getCellIndex:function (b) { if (b) { var a = b.className.match(this.colRe); if (a && a[1]) { return this.cm.getIndexById(a[1]) } } return false }, findHeaderCell:function (b) { var a = this.findCell(b); return a && this.fly(a).hasClass(this.hdCls) ? a : null }, findHeaderIndex:function (a) { return this.findCellIndex(a, this.hdCls) }, findRow:function (a) { if (!a) { return false } return this.fly(a).findParent(this.rowSelector, this.rowSelectorDepth) }, findRowIndex:function (a) { var b = this.findRow(a); return b ? b.rowIndex : false }, findRowBody:function (a) { if (!a) { return false } return this.fly(a).findParent(this.rowBodySelector, this.rowBodySelectorDepth) }, getRow:function (a) { return this.getRows()[a] }, getCell:function (b, a) { return Ext.fly(this.getRow(b)).query(this.cellSelector)[a] }, getHeaderCell:function (a) { return this.mainHd.dom.getElementsByTagName("td")[a] }, addRowClass:function (b, a) { var c = this.getRow(b); if (c) { this.fly(c).addClass(a) } }, removeRowClass:function (c, a) { var b = this.getRow(c); if (b) { this.fly(b).removeClass(a) } }, removeRow:function (a) { Ext.removeNode(this.getRow(a)); this.syncFocusEl(a) }, removeRows:function (c, a) { var b = this.mainBody.dom, d; for (d = c; d <= a; d++) { Ext.removeNode(b.childNodes[c]) } this.syncFocusEl(c) }, getScrollState:function () { var a = this.scroller.dom; return{left:a.scrollLeft, top:a.scrollTop} }, restoreScroll:function (a) { var b = this.scroller.dom; b.scrollLeft = a.left; b.scrollTop = a.top }, scrollToTop:function () { var a = this.scroller.dom; a.scrollTop = 0; a.scrollLeft = 0 }, syncScroll:function () { this.syncHeaderScroll(); var a = this.scroller.dom; this.grid.fireEvent("bodyscroll", a.scrollLeft, a.scrollTop) }, syncHeaderScroll:function () { var a = this.innerHd, b = this.scroller.dom.scrollLeft; a.scrollLeft = b; a.scrollLeft = b }, updateSortIcon:function (d, c) { var a = this.sortClasses, b = a[c == "DESC" ? 1 : 0], e = this.mainHd.select("td").removeClass(a); e.item(d).addClass(b) }, updateAllColumnWidths:function () { var e = this.getTotalWidth(), k = this.cm.getColumnCount(), m = this.getRows(), g = m.length, b = [], l, a, h, d, c; for (d = 0; d < k; d++) { b[d] = this.getColumnWidth(d); this.getHeaderCell(d).style.width = b[d] } this.updateHeaderWidth(); for (d = 0; d < g; d++) { l = m[d]; l.style.width = e; a = l.firstChild; if (a) { a.style.width = e; h = a.rows[0]; for (c = 0; c < k; c++) { h.childNodes[c].style.width = b[c] } } } this.onAllColumnWidthsUpdated(b, e) }, updateColumnWidth:function (d, b) { var c = this.getColumnWidth(d), j = this.getTotalWidth(), h = this.getHeaderCell(d), a = this.getRows(), e = a.length, l, g, k; this.updateHeaderWidth(); h.style.width = c; for (g = 0; g < e; g++) { l = a[g]; k = l.firstChild; l.style.width = j; if (k) { k.style.width = j; k.rows[0].childNodes[d].style.width = c } } this.onColumnWidthUpdated(d, c, j) }, updateColumnHidden:function (b, j) { var h = this.getTotalWidth(), k = j ? "none" : "", g = this.getHeaderCell(b), a = this.getRows(), d = a.length, l, c, e; this.updateHeaderWidth(); g.style.display = k; for (e = 0; e < d; e++) { l = a[e]; l.style.width = h; c = l.firstChild; if (c) { c.style.width = h; c.rows[0].childNodes[b].style.display = k } } this.onColumnHiddenUpdated(b, j, h); delete this.lastViewWidth; this.layout() }, doRender:function (d, v, m, a, r, t) { var h = this.templates, c = h.cell, y = h.row, o = r - 1, b = "width:" + this.getTotalWidth() + ";", k = [], l = [], n = {tstyle:b}, q = {}, w = v.length, x, g, e, u, s, p; for (s = 0; s < w; s++) { e = v[s]; l = []; p = s + a; for (u = 0; u < r; u++) { g = d[u]; q.id = g.id; q.css = u === 0 ? "x-grid3-cell-first " : (u == o ? "x-grid3-cell-last " : ""); q.attr = q.cellAttr = ""; q.style = g.style; q.value = g.renderer.call(g.scope, e.data[g.name], q, e, p, u, m); if (Ext.isEmpty(q.value)) { q.value = " " } if (this.markDirty && e.dirty && typeof e.modified[g.name] != "undefined") { q.css += " x-grid3-dirty-cell" } l[l.length] = c.apply(q) } x = []; if (t && ((p + 1) % 2 === 0)) { x[0] = "x-grid3-row-alt" } if (e.dirty) { x[1] = " x-grid3-dirty-row" } n.cols = r; if (this.getRowClass) { x[2] = this.getRowClass(e, p, n, m) } n.alt = x.join(" "); n.cells = l.join(""); k[k.length] = y.apply(n) } return k.join("") }, processRows:function (a, g) { if (!this.ds || this.ds.getCount() < 1) { return } var d = this.getRows(), c = d.length, e, b; g = g || !this.grid.stripeRows; a = a || 0; for (b = 0; b < c; b++) { e = d[b]; if (e) { e.rowIndex = b; if (!g) { e.className = e.className.replace(this.rowClsRe, " "); if ((b + 1) % 2 === 0) { e.className += " x-grid3-row-alt" } } } } if (a === 0) { Ext.fly(d[0]).addClass(this.firstRowCls) } Ext.fly(d[c - 1]).addClass(this.lastRowCls) }, afterRender:function () { if (!this.ds || !this.cm) { return } this.mainBody.dom.innerHTML = this.renderBody() || " "; this.processRows(0, true); if (this.deferEmptyText !== true) { this.applyEmptyText() } this.grid.fireEvent("viewready", this.grid) }, afterRenderUI:function () { var a = this.grid; this.initElements(); Ext.fly(this.innerHd).on("click", this.handleHdDown, this); this.mainHd.on({scope:this, mouseover:this.handleHdOver, mouseout:this.handleHdOut, mousemove:this.handleHdMove}); this.scroller.on("scroll", this.syncScroll, this); if (a.enableColumnResize !== false) { this.splitZone = new Ext.grid.GridView.SplitDragZone(a, this.mainHd.dom) } if (a.enableColumnMove) { this.columnDrag = new Ext.grid.GridView.ColumnDragZone(a, this.innerHd); this.columnDrop = new Ext.grid.HeaderDropZone(a, this.mainHd.dom) } if (a.enableHdMenu !== false) { this.hmenu = new Ext.menu.Menu({id:a.id + "-hctx"}); this.hmenu.add({itemId:"asc", text:this.sortAscText, cls:"xg-hmenu-sort-asc"}, {itemId:"desc", text:this.sortDescText, cls:"xg-hmenu-sort-desc"}); if (a.enableColumnHide !== false) { this.colMenu = new Ext.menu.Menu({id:a.id + "-hcols-menu"}); this.colMenu.on({scope:this, beforeshow:this.beforeColMenuShow, itemclick:this.handleHdMenuClick}); this.hmenu.add("-", {itemId:"columns", hideOnClick:false, text:this.columnsText, menu:this.colMenu, iconCls:"x-cols-icon"}) } this.hmenu.on("itemclick", this.handleHdMenuClick, this) } if (a.trackMouseOver) { this.mainBody.on({scope:this, mouseover:this.onRowOver, mouseout:this.onRowOut}) } if (a.enableDragDrop || a.enableDrag) { this.dragZone = new Ext.grid.GridDragZone(a, {ddGroup:a.ddGroup || "GridDD"}) } this.updateHeaderSortState() }, renderUI:function () { var a = this.templates; return a.master.apply({body:a.body.apply({rows:" "}), header:this.renderHeaders(), ostyle:"width:" + this.getOffsetWidth() + ";", bstyle:"width:" + this.getTotalWidth() + ";"}) }, processEvent:function (b, h) { var i = h.getTarget(), a = this.grid, d = this.findHeaderIndex(i), k, j, c, g; a.fireEvent(b, h); if (d !== false) { a.fireEvent("header" + b, a, d, h) } else { k = this.findRowIndex(i); if (k !== false) { j = this.findCellIndex(i); if (j !== false) { c = a.colModel.getColumnAt(j); if (a.fireEvent("cell" + b, a, k, j, h) !== false) { if (!c || (c.processEvent && (c.processEvent(b, h, a, k, j) !== false))) { a.fireEvent("row" + b, a, k, h) } } } else { if (a.fireEvent("row" + b, a, k, h) !== false) { (g = this.findRowBody(i)) && a.fireEvent("rowbody" + b, a, k, h) } } } else { a.fireEvent("container" + b, a, h) } } }, layout:function (j) { if (!this.mainBody) { return } var a = this.grid, d = a.getGridEl(), c = d.getSize(true), i = c.width, b = c.height, h = this.scroller, g, e, k; if (i < 20 || b < 20) { return } if (a.autoHeight) { g = h.dom.style; g.overflow = "visible"; if (Ext.isWebKit) { g.position = "static" } } else { this.el.setSize(i, b); e = this.mainHd.getHeight(); k = b - e; h.setSize(i, k); if (this.innerHd) { this.innerHd.style.width = (i) + "px" } } if (this.forceFit || (j === true && this.autoFill)) { if (this.lastViewWidth != i) { this.fitColumns(false, false); this.lastViewWidth = i } } else { this.autoExpand(); this.syncHeaderScroll() } this.onLayout(i, k) }, onLayout:function (a, b) { }, onColumnWidthUpdated:function (c, a, b) { }, onAllColumnWidthsUpdated:function (a, b) { }, onColumnHiddenUpdated:function (b, c, a) { }, updateColumnText:function (a, b) { }, afterMove:function (a) { }, init:function (a) { this.grid = a; this.initTemplates(); this.initData(a.store, a.colModel); this.initUI(a) }, getColumnId:function (a) { return this.cm.getColumnId(a) }, getOffsetWidth:function () { return(this.cm.getTotalWidth() + this.getScrollOffset()) + "px" }, getScrollOffset:function () { return Ext.num(this.scrollOffset, Ext.getScrollBarWidth()) }, renderHeaders:function () { var e = this.cm, g = this.templates, a = g.hcell, d = {}, h = e.getColumnCount(), j = h - 1, k = [], c, b; for (c = 0; c < h; c++) { if (c == 0) { b = "x-grid3-cell-first " } else { b = c == j ? "x-grid3-cell-last " : "" } d = {id:e.getColumnId(c), value:e.getColumnHeader(c) || "", style:this.getColumnStyle(c, true), css:b, tooltip:this.getColumnTooltip(c)}; if (e.config[c].align == "right") { d.istyle = "padding-right: 16px;" } else { delete d.istyle } k[c] = a.apply(d) } return g.header.apply({cells:k.join(""), tstyle:String.format("width: {0};", this.getTotalWidth())}) }, getColumnTooltip:function (a) { var b = this.cm.getColumnTooltip(a); if (b) { if (Ext.QuickTips.isEnabled()) { return'ext:qtip="' + b + '"' } else { return'title="' + b + '"' } } return"" }, beforeUpdate:function () { this.grid.stopEditing(true) }, updateHeaders:function () { this.innerHd.firstChild.innerHTML = this.renderHeaders(); this.updateHeaderWidth(false) }, updateHeaderWidth:function (c) { var b = this.innerHd.firstChild, a = this.getTotalWidth(); b.style.width = this.getOffsetWidth(); b.firstChild.style.width = a; if (c !== false) { this.mainBody.dom.style.width = a } }, focusRow:function (a) { this.focusCell(a, 0, false) }, focusCell:function (d, b, c) { this.syncFocusEl(this.ensureVisible(d, b, c)); var a = this.focusEl; if (Ext.isGecko) { a.focus() } else { a.focus.defer(1, a) } }, resolveCell:function (h, d, g) { if (!Ext.isNumber(h)) { h = h.rowIndex } if (!this.ds) { return null } if (h < 0 || h >= this.ds.getCount()) { return null } d = (d !== undefined ? d : 0); var c = this.getRow(h), b = this.cm, e = b.getColumnCount(), a; if (!(g === false && d === 0)) { while (d < e && b.isHidden(d)) { d++ } a = this.getCell(h, d) } return{row:c, cell:a} }, getResolvedXY:function (b) { if (!b) { return null } var a = b.cell, c = b.row; if (a) { return Ext.fly(a).getXY() } else { return[this.el.getX(), Ext.fly(c).getY()] } }, syncFocusEl:function (d, a, c) { var b = d; if (!Ext.isArray(b)) { d = Math.min(d, Math.max(0, this.getRows().length - 1)); if (isNaN(d)) { return } b = this.getResolvedXY(this.resolveCell(d, a, c)) } this.focusEl.setXY(b || this.scroller.getXY()) }, ensureVisible:function (t, g, e) { var r = this.resolveCell(t, g, e); if (!r || !r.row) { return null } var k = r.row, h = r.cell, n = this.scroller.dom, d = k, s = 0, o = this.el.dom; while (d && d != o) { s += d.offsetTop; d = d.offsetParent } s -= this.mainHd.dom.offsetHeight; o = parseInt(n.scrollTop, 10); var q = s + k.offsetHeight, a = n.clientHeight, m = o + a; if (s < o) { n.scrollTop = s } else { if (q > m) { n.scrollTop = q - a } } if (e !== false) { var l = parseInt(h.offsetLeft, 10), j = l + h.offsetWidth, i = parseInt(n.scrollLeft, 10), b = i + n.clientWidth; if (l < i) { n.scrollLeft = l } else { if (j > b) { n.scrollLeft = j - n.clientWidth } } } return this.getResolvedXY(r) }, insertRows:function (a, i, e, h) { var d = a.getCount() - 1; if (!h && i === 0 && e >= d) { this.fireEvent("beforerowsinserted", this, i, e); this.refresh(); this.fireEvent("rowsinserted", this, i, e) } else { if (!h) { this.fireEvent("beforerowsinserted", this, i, e) } var b = this.renderRows(i, e), g = this.getRow(i); if (g) { if (i === 0) { Ext.fly(this.getRow(0)).removeClass(this.firstRowCls) } Ext.DomHelper.insertHtml("beforeBegin", g, b) } else { var c = this.getRow(d - 1); if (c) { Ext.fly(c).removeClass(this.lastRowCls) } Ext.DomHelper.insertHtml("beforeEnd", this.mainBody.dom, b) } if (!h) { this.processRows(i); this.fireEvent("rowsinserted", this, i, e) } else { if (i === 0 || i >= d) { Ext.fly(this.getRow(i)).addClass(i === 0 ? this.firstRowCls : this.lastRowCls) } } } this.syncFocusEl(i) }, deleteRows:function (a, c, b) { if (a.getRowCount() < 1) { this.refresh() } else { this.fireEvent("beforerowsdeleted", this, c, b); this.removeRows(c, b); this.processRows(c); this.fireEvent("rowsdeleted", this, c, b) } }, getColumnStyle:function (b, d) { var a = this.cm, g = a.config, c = d ? "" : g[b].css || "", e = g[b].align; c += String.format("width: {0};", this.getColumnWidth(b)); if (a.isHidden(b)) { c += "display: none; " } if (e) { c += String.format("text-align: {0};", e) } return c }, getColumnWidth:function (b) { var c = this.cm.getColumnWidth(b), a = this.borderWidth; if (Ext.isNumber(c)) { if (Ext.isBorderBox || (Ext.isWebKit && !Ext.isSafari2)) { return c + "px" } else { return Math.max(c - a, 0) + "px" } } else { return c } }, getTotalWidth:function () { return this.cm.getTotalWidth() + "px" }, fitColumns:function (g, j, h) { var a = this.grid, l = this.cm, s = l.getTotalWidth(false), q = this.getGridInnerWidth(), r = q - s, c = [], o = 0, n = 0, u, d, p; if (q < 20 || r === 0) { return false } var e = l.getColumnCount(true), m = l.getColumnCount(false), b = e - (Ext.isNumber(h) ? 1 : 0); if (b === 0) { b = 1; h = undefined } for (p = 0; p < m; p++) { if (!l.isFixed(p) && p !== h) { u = l.getColumnWidth(p); c.push(p, u); if (!l.isHidden(p)) { o = p; n += u } } } d = (q - l.getTotalWidth()) / n; while (c.length) { u = c.pop(); p = c.pop(); l.setColumnWidth(p, Math.max(a.minColumnWidth, Math.floor(u + u * d)), true) } s = l.getTotalWidth(false); if (s > q) { var t = (b == e) ? o : h, k = Math.max(1, l.getColumnWidth(t) - (s - q)); l.setColumnWidth(t, k, true) } if (g !== true) { this.updateAllColumnWidths() } return true }, autoExpand:function (k) { var a = this.grid, i = this.cm, e = this.getGridInnerWidth(), c = i.getTotalWidth(false), g = a.autoExpandColumn; if (!this.userResized && g) { if (e != c) { var j = i.getIndexById(g), b = i.getColumnWidth(j), h = e - c + b, d = Math.min(Math.max(h, a.autoExpandMin), a.autoExpandMax); if (b != d) { i.setColumnWidth(j, d, true); if (k !== true) { this.updateColumnWidth(j, d) } } } } }, getGridInnerWidth:function () { return this.grid.getGridEl().getWidth(true) - this.getScrollOffset() }, getColumnData:function () { var e = [], c = this.cm, g = c.getColumnCount(), a = this.ds.fields, d, b; for (d = 0; d < g; d++) { b = c.getDataIndex(d); e[d] = {name:Ext.isDefined(b) ? b : (a.get(d) ? a.get(d).name : undefined), renderer:c.getRenderer(d), scope:c.getRendererScope(d), id:c.getColumnId(d), style:this.getColumnStyle(d)} } return e }, renderRows:function (i, c) { var a = this.grid, g = a.store, j = a.stripeRows, e = a.colModel, h = e.getColumnCount(), d = g.getCount(), b; if (d < 1) { return"" } i = i || 0; c = Ext.isDefined(c) ? c : d - 1; b = g.getRange(i, c); return this.doRender(this.getColumnData(), b, g, i, h, j) }, renderBody:function () { var a = this.renderRows() || " "; return this.templates.body.apply({rows:a}) }, refreshRow:function (g) { var l = this.ds, m = this.cm.getColumnCount(), c = this.getColumnData(), n = m - 1, p = ["x-grid3-row"], e = {tstyle:String.format("width: {0};", this.getTotalWidth())}, a = [], k = this.templates.cell, j, q, b, o, h, d; if (Ext.isNumber(g)) { j = g; g = l.getAt(j) } else { j = l.indexOf(g) } if (!g || j < 0) { return } for (d = 0; d < m; d++) { b = c[d]; if (d == 0) { h = "x-grid3-cell-first" } else { h = (d == n) ? "x-grid3-cell-last " : "" } o = {id:b.id, style:b.style, css:h, attr:"", cellAttr:""}; o.value = b.renderer.call(b.scope, g.data[b.name], o, g, j, d, l); if (Ext.isEmpty(o.value)) { o.value = " " } if (this.markDirty && g.dirty && typeof g.modified[b.name] != "undefined") { o.css += " x-grid3-dirty-cell" } a[d] = k.apply(o) } q = this.getRow(j); q.className = ""; if (this.grid.stripeRows && ((j + 1) % 2 === 0)) { p.push("x-grid3-row-alt") } if (this.getRowClass) { e.cols = m; p.push(this.getRowClass(g, j, e, l)) } this.fly(q).addClass(p).setStyle(e.tstyle); e.cells = a.join(""); q.innerHTML = this.templates.rowInner.apply(e); this.fireEvent("rowupdated", this, j, g) }, refresh:function (b) { this.fireEvent("beforerefresh", this); this.grid.stopEditing(true); var a = this.renderBody(); this.mainBody.update(a).setWidth(this.getTotalWidth()); if (b === true) { this.updateHeaders(); this.updateHeaderSortState() } this.processRows(0, true); this.layout(); this.applyEmptyText(); this.fireEvent("refresh", this) }, applyEmptyText:function () { if (this.emptyText && !this.hasRows()) { this.mainBody.update('
    ' + this.emptyText + "
    ") } }, updateHeaderSortState:function () { var b = this.ds.getSortState(); if (!b) { return } if (!this.sortState || (this.sortState.field != b.field || this.sortState.direction != b.direction)) { this.grid.fireEvent("sortchange", this.grid, b) } this.sortState = b; var c = this.cm.findColumnIndex(b.field); if (c != -1) { var a = b.direction; this.updateSortIcon(c, a) } }, clearHeaderSortState:function () { if (!this.sortState) { return } this.grid.fireEvent("sortchange", this.grid, null); this.mainHd.select("td").removeClass(this.sortClasses); delete this.sortState }, destroy:function () { var j = this, a = j.grid, d = a.getGridEl(), i = j.dragZone, g = j.splitZone, h = j.columnDrag, e = j.columnDrop, k = j.scrollToTopTask, c, b; if (k && k.cancel) { k.cancel() } Ext.destroyMembers(j, "colMenu", "hmenu"); j.initData(null, null); j.purgeListeners(); Ext.fly(j.innerHd).un("click", j.handleHdDown, j); if (a.enableColumnMove) { c = h.dragData; b = h.proxy; Ext.destroy(h.el, b.ghost, b.el, e.el, e.proxyTop, e.proxyBottom, c.ddel, c.header); if (b.anim) { Ext.destroy(b.anim) } delete b.ghost; delete c.ddel; delete c.header; h.destroy(); delete Ext.dd.DDM.locationCache[h.id]; delete h._domRef; delete e.proxyTop; delete e.proxyBottom; e.destroy(); delete Ext.dd.DDM.locationCache["gridHeader" + d.id]; delete e._domRef; delete Ext.dd.DDM.ids[e.ddGroup] } if (g) { g.destroy(); delete g._domRef; delete Ext.dd.DDM.ids["gridSplitters" + d.id] } Ext.fly(j.innerHd).removeAllListeners(); Ext.removeNode(j.innerHd); delete j.innerHd; Ext.destroy(j.el, j.mainWrap, j.mainHd, j.scroller, j.mainBody, j.focusEl, j.resizeMarker, j.resizeProxy, j.activeHdBtn, j._flyweight, i, g); delete a.container; if (i) { i.destroy() } Ext.dd.DDM.currentTarget = null; delete Ext.dd.DDM.locationCache[d.id]; Ext.EventManager.removeResizeListener(j.onWindowResize, j) }, onDenyColumnHide:function () { }, render:function () { if (this.autoFill) { var a = this.grid.ownerCt; if (a && a.getLayout()) { a.on("afterlayout", function () { this.fitColumns(true, true); this.updateHeaders(); this.updateHeaderSortState() }, this, {single:true}) } } else { if (this.forceFit) { this.fitColumns(true, false) } else { if (this.grid.autoExpandColumn) { this.autoExpand(true) } } } this.grid.getGridEl().dom.innerHTML = this.renderUI(); this.afterRenderUI() }, initData:function (a, e) { var b = this; if (b.ds) { var d = b.ds; d.un("add", b.onAdd, b); d.un("load", b.onLoad, b); d.un("clear", b.onClear, b); d.un("remove", b.onRemove, b); d.un("update", b.onUpdate, b); d.un("datachanged", b.onDataChange, b); if (d !== a && d.autoDestroy) { d.destroy() } } if (a) { a.on({scope:b, load:b.onLoad, add:b.onAdd, remove:b.onRemove, update:b.onUpdate, clear:b.onClear, datachanged:b.onDataChange}) } if (b.cm) { var c = b.cm; c.un("configchange", b.onColConfigChange, b); c.un("widthchange", b.onColWidthChange, b); c.un("headerchange", b.onHeaderChange, b); c.un("hiddenchange", b.onHiddenChange, b); c.un("columnmoved", b.onColumnMove, b) } if (e) { delete b.lastViewWidth; e.on({scope:b, configchange:b.onColConfigChange, widthchange:b.onColWidthChange, headerchange:b.onHeaderChange, hiddenchange:b.onHiddenChange, columnmoved:b.onColumnMove}) } b.ds = a; b.cm = e }, onDataChange:function () { this.refresh(true); this.updateHeaderSortState(); this.syncFocusEl(0) }, onClear:function () { this.refresh(); this.syncFocusEl(0) }, onUpdate:function (b, a) { this.refreshRow(a) }, onAdd:function (b, a, c) { this.insertRows(b, c, c + (a.length - 1)) }, onRemove:function (b, a, c, d) { if (d !== true) { this.fireEvent("beforerowremoved", this, c, a) } this.removeRow(c); if (d !== true) { this.processRows(c); this.applyEmptyText(); this.fireEvent("rowremoved", this, c, a) } }, onLoad:function () { if (Ext.isGecko) { if (!this.scrollToTopTask) { this.scrollToTopTask = new Ext.util.DelayedTask(this.scrollToTop, this) } this.scrollToTopTask.delay(1) } else { this.scrollToTop() } }, onColWidthChange:function (a, b, c) { this.updateColumnWidth(b, c) }, onHeaderChange:function (a, b, c) { this.updateHeaders() }, onHiddenChange:function (a, b, c) { this.updateColumnHidden(b, c) }, onColumnMove:function (a, c, b) { this.indexMap = null; this.refresh(true); this.restoreScroll(this.getScrollState()); this.afterMove(b); this.grid.fireEvent("columnmove", c, b) }, onColConfigChange:function () { delete this.lastViewWidth; this.indexMap = null; this.refresh(true) }, initUI:function (a) { a.on("headerclick", this.onHeaderClick, this) }, initEvents:Ext.emptyFn, onHeaderClick:function (b, a) { if (this.headersDisabled || !this.cm.isSortable(a)) { return } b.stopEditing(true); b.store.sort(this.cm.getDataIndex(a)) }, onRowOver:function (b, a) { var c = this.findRowIndex(a); if (c !== false) { this.addRowClass(c, this.rowOverCls) } }, onRowOut:function (b, a) { var c = this.findRowIndex(a); if (c !== false && !b.within(this.getRow(c), true)) { this.removeRowClass(c, this.rowOverCls) } }, onRowSelect:function (a) { this.addRowClass(a, this.selectedRowClass) }, onRowDeselect:function (a) { this.removeRowClass(a, this.selectedRowClass) }, onCellSelect:function (c, b) { var a = this.getCell(c, b); if (a) { this.fly(a).addClass("x-grid3-cell-selected") } }, onCellDeselect:function (c, b) { var a = this.getCell(c, b); if (a) { this.fly(a).removeClass("x-grid3-cell-selected") } }, handleWheel:function (a) { a.stopPropagation() }, onColumnSplitterMoved:function (a, b) { this.userResized = true; this.grid.colModel.setColumnWidth(a, b, true); if (this.forceFit) { this.fitColumns(true, false, a); this.updateAllColumnWidths() } else { this.updateColumnWidth(a, b); this.syncHeaderScroll() } this.grid.fireEvent("columnresize", a, b) }, beforeColMenuShow:function () { var b = this.cm, d = b.getColumnCount(), a = this.colMenu, c; a.removeAll(); for (c = 0; c < d; c++) { if (b.config[c].hideable !== false) { a.add(new Ext.menu.CheckItem({text:b.getColumnHeader(c), itemId:"col-" + b.getColumnId(c), checked:!b.isHidden(c), disabled:b.config[c].hideable === false, hideOnClick:false})) } } }, handleHdMenuClick:function (c) { var a = this.ds, b = this.cm.getDataIndex(this.hdCtxIndex); switch (c.getItemId()) { case"asc": a.sort(b, "ASC"); break; case"desc": a.sort(b, "DESC"); break; default: this.handleHdMenuClickDefault(c) } return true }, handleHdMenuClickDefault:function (c) { var b = this.cm, d = c.getItemId(), a = b.getIndexById(d.substr(4)); if (a != -1) { if (c.checked && b.getColumnsBy(this.isHideableColumn, this).length <= 1) { this.onDenyColumnHide(); return } b.setHidden(a, c.checked) } }, handleHdDown:function (i, j) { if (Ext.fly(j).hasClass("x-grid3-hd-btn")) { i.stopEvent(); var k = this.cm, g = this.findHeaderCell(j), h = this.getCellIndex(g), d = k.isSortable(h), c = this.hmenu, b = c.items, a = this.headerMenuOpenCls; this.hdCtxIndex = h; Ext.fly(g).addClass(a); b.get("asc").setDisabled(!d); b.get("desc").setDisabled(!d); c.on("hide", function () { Ext.fly(g).removeClass(a) }, this, {single:true}); c.show(j, "tl-bl?") } }, handleHdMove:function (k) { var i = this.findHeaderCell(this.activeHdRef); if (i && !this.headersDisabled) { var l = this.splitHandleWidth || 5, j = this.activeHdRegion, p = i.style, m = this.cm, o = "", g = k.getPageX(); if (this.grid.enableColumnResize !== false) { var a = this.activeHdIndex, b = this.getPreviousVisible(a), n = m.isResizable(a), c = b && m.isResizable(b), d = g - j.left <= l, h = j.right - g <= (!this.activeHdBtn ? l : 2); if (d && c) { o = Ext.isAir ? "move" : Ext.isWebKit ? "e-resize" : "col-resize" } else { if (h && n) { o = Ext.isAir ? "move" : Ext.isWebKit ? "w-resize" : "col-resize" } } } p.cursor = o } }, getPreviousVisible:function (a) { while (a > 0) { if (!this.cm.isHidden(a - 1)) { return a } a-- } return undefined }, handleHdOver:function (c, b) { var d = this.findHeaderCell(b); if (d && !this.headersDisabled) { var a = this.fly(d); this.activeHdRef = b; this.activeHdIndex = this.getCellIndex(d); this.activeHdRegion = a.getRegion(); if (!this.isMenuDisabled(this.activeHdIndex, a)) { a.addClass("x-grid3-hd-over"); this.activeHdBtn = a.child(".x-grid3-hd-btn"); if (this.activeHdBtn) { this.activeHdBtn.dom.style.height = (d.firstChild.offsetHeight - 1) + "px" } } } }, handleHdOut:function (b, a) { var c = this.findHeaderCell(a); if (c && (!Ext.isIE || !b.within(c, true))) { this.activeHdRef = null; this.fly(c).removeClass("x-grid3-hd-over"); c.style.cursor = "" } }, isMenuDisabled:function (a, b) { return this.cm.isMenuDisabled(a) }, hasRows:function () { var a = this.mainBody.dom.firstChild; return a && a.nodeType == 1 && a.className != "x-grid-empty" }, isHideableColumn:function (a) { return !a.hidden }, bind:function (a, b) { this.initData(a, b) }}); Ext.grid.GridView.SplitDragZone = Ext.extend(Ext.dd.DDProxy, {constructor:function (a, b) { this.grid = a; this.view = a.getView(); this.marker = this.view.resizeMarker; this.proxy = this.view.resizeProxy; Ext.grid.GridView.SplitDragZone.superclass.constructor.call(this, b, "gridSplitters" + this.grid.getGridEl().id, {dragElId:Ext.id(this.proxy.dom), resizeFrame:false}); this.scroll = false; this.hw = this.view.splitHandleWidth || 5 }, b4StartDrag:function (a, e) { this.dragHeadersDisabled = this.view.headersDisabled; this.view.headersDisabled = true; var d = this.view.mainWrap.getHeight(); this.marker.setHeight(d); this.marker.show(); this.marker.alignTo(this.view.getHeaderCell(this.cellIndex), "tl-tl", [-2, 0]); this.proxy.setHeight(d); var b = this.cm.getColumnWidth(this.cellIndex), c = Math.max(b - this.grid.minColumnWidth, 0); this.resetConstraints(); this.setXConstraint(c, 1000); this.setYConstraint(0, 0); this.minX = a - c; this.maxX = a + 1000; this.startPos = a; Ext.dd.DDProxy.prototype.b4StartDrag.call(this, a, e) }, allowHeaderDrag:function (a) { return true }, handleMouseDown:function (a) { var h = this.view.findHeaderCell(a.getTarget()); if (h && this.allowHeaderDrag(a)) { var k = this.view.fly(h).getXY(), c = k[0], i = a.getXY(), b = i[0], g = h.offsetWidth, d = false; if ((b - c) <= this.hw) { d = -1 } else { if ((c + g) - b <= this.hw) { d = 0 } } if (d !== false) { this.cm = this.grid.colModel; var j = this.view.getCellIndex(h); if (d == -1) { if (j + d < 0) { return } while (this.cm.isHidden(j + d)) { --d; if (j + d < 0) { return } } } this.cellIndex = j + d; this.split = h.dom; if (this.cm.isResizable(this.cellIndex) && !this.cm.isFixed(this.cellIndex)) { Ext.grid.GridView.SplitDragZone.superclass.handleMouseDown.apply(this, arguments) } } else { if (this.view.columnDrag) { this.view.columnDrag.callHandleMouseDown(a) } } } }, endDrag:function (g) { this.marker.hide(); var a = this.view, c = Math.max(this.minX, g.getPageX()), d = c - this.startPos, b = this.dragHeadersDisabled; a.onColumnSplitterMoved(this.cellIndex, this.cm.getColumnWidth(this.cellIndex) + d); setTimeout(function () { a.headersDisabled = b }, 50) }, autoOffset:function () { this.setDelta(0, 0) }}); Ext.grid.PivotGridView = Ext.extend(Ext.grid.GridView, {colHeaderCellCls:"grid-hd-group-cell", title:"", getColumnHeaders:function () { return this.grid.topAxis.buildHeaders() }, getRowHeaders:function () { return this.grid.leftAxis.buildHeaders() }, renderRows:function (a, t) { var b = this.grid, o = b.extractData(), p = o.length, g = this.templates, s = b.renderer, h = typeof s == "function", w = this.getCellCls, n = typeof w == "function", d = g.cell, x = g.row, k = [], q = {}, c = "width:" + this.getGridInnerWidth() + "px;", l, r, e, v, m; a = a || 0; t = Ext.isDefined(t) ? t : p - 1; for (v = 0; v < p; v++) { m = o[v]; r = m.length; l = []; for (var u = 0; u < r; u++) { q.id = v + "-" + u; q.css = u === 0 ? "x-grid3-cell-first " : (u == (r - 1) ? "x-grid3-cell-last " : ""); q.attr = q.cellAttr = ""; q.value = m[u]; if (Ext.isEmpty(q.value)) { q.value = " " } if (h) { q.value = s(q.value) } if (n) { q.css += w(q.value) + " " } l[l.length] = d.apply(q) } k[k.length] = x.apply({tstyle:c, cols:r, cells:l.join(""), alt:""}) } return k.join("") }, masterTpl:new Ext.Template('
    ', '
    ', '
    ', '
    {title}
    ', '
    ', '
    ', "
    ", '
    ', "
    ", '
    ', '
    ', '
    {body}
    ', '', "
    ", "
    ", '
     
    ', '
     
    ', "
    "), initTemplates:function () { Ext.grid.PivotGridView.superclass.initTemplates.apply(this, arguments); var a = this.templates || {}; if (!a.gcell) { a.gcell = new Ext.XTemplate('', '
    ', this.grid.enableHdMenu ? '' : "", "{value}", "
    ", "") } this.templates = a; this.hrowRe = new RegExp("ux-grid-hd-group-row-(\\d+)", "") }, initElements:function () { Ext.grid.PivotGridView.superclass.initElements.apply(this, arguments); this.rowHeadersEl = new Ext.Element(this.scroller.child("div.x-grid3-row-headers")); this.headerTitleEl = new Ext.Element(this.mainHd.child("div.x-grid3-header-title")) }, getGridInnerWidth:function () { var a = Ext.grid.PivotGridView.superclass.getGridInnerWidth.apply(this, arguments); return a - this.getTotalRowHeaderWidth() }, getTotalRowHeaderWidth:function () { var d = this.getRowHeaders(), c = d.length, b = 0, a; for (a = 0; a < c; a++) { b += d[a].width } return b }, getTotalColumnHeaderHeight:function () { return this.getColumnHeaders().length * 21 }, getCellIndex:function (b) { if (b) { var a = b.className.match(this.colRe), c; if (a && (c = a[1])) { return parseInt(c.split("-")[1], 10) } } return false }, renderUI:function () { var b = this.templates, a = this.getGridInnerWidth(); return b.master.apply({body:b.body.apply({rows:" "}), ostyle:"width:" + a + "px", bstyle:"width:" + a + "px"}) }, onLayout:function (b, a) { Ext.grid.PivotGridView.superclass.onLayout.apply(this, arguments); var b = this.getGridInnerWidth(); this.resizeColumnHeaders(b); this.resizeAllRows(b) }, refresh:function (b) { this.fireEvent("beforerefresh", this); this.grid.stopEditing(true); var a = this.renderBody(); this.mainBody.update(a).setWidth(this.getGridInnerWidth()); if (b === true) { this.updateHeaders(); this.updateHeaderSortState() } this.processRows(0, true); this.layout(); this.applyEmptyText(); this.fireEvent("refresh", this) }, renderHeaders:Ext.emptyFn, fitColumns:Ext.emptyFn, resizeColumnHeaders:function (b) { var a = this.grid.topAxis; if (a.rendered) { a.el.setWidth(b) } }, resizeRowHeaders:function () { var a = this.getTotalRowHeaderWidth(), b = String.format("margin-left: {0}px;", a); this.rowHeadersEl.setWidth(a); this.mainBody.applyStyles(b); Ext.fly(this.innerHd).applyStyles(b); this.headerTitleEl.setWidth(a); this.headerTitleEl.setHeight(this.getTotalColumnHeaderHeight()) }, resizeAllRows:function (b) { var d = this.getRows(), c = d.length, a; for (a = 0; a < c; a++) { Ext.fly(d[a]).setWidth(b); Ext.fly(d[a]).child("table").setWidth(b) } }, updateHeaders:function () { this.renderGroupRowHeaders(); this.renderGroupColumnHeaders() }, renderGroupRowHeaders:function () { var a = this.grid.leftAxis; this.resizeRowHeaders(); a.rendered = false; a.render(this.rowHeadersEl); this.setTitle(this.title) }, setTitle:function (a) { this.headerTitleEl.child("span").dom.innerHTML = a }, renderGroupColumnHeaders:function () { var a = this.grid.topAxis; a.rendered = false; a.render(this.innerHd.firstChild) }, isMenuDisabled:function (a, b) { return true }}); Ext.grid.PivotAxis = Ext.extend(Ext.Component, {orientation:"horizontal", defaultHeaderWidth:80, paddingWidth:7, setDimensions:function (a) { this.dimensions = a }, onRender:function (b, a) { var c = this.orientation == "horizontal" ? this.renderHorizontalRows() : this.renderVerticalRows(); this.el = Ext.DomHelper.overwrite(b.dom, {tag:"table", cn:c}, true) }, renderHorizontalRows:function () { var k = this.buildHeaders(), a = k.length, g = [], c, h, e, d, b; for (d = 0; d < a; d++) { c = []; h = k[d].items; e = h.length; for (b = 0; b < e; b++) { c.push({tag:"td", html:h[b].header, colspan:h[b].span}) } g[d] = {tag:"tr", cn:c} } return g }, renderVerticalRows:function () { var b = this.buildHeaders(), k = b.length, a = [], m = [], h, c, l, g, e, d; for (e = 0; e < k; e++) { c = b[e]; g = c.width || 80; h = c.items.length; for (d = 0; d < h; d++) { l = c.items[d]; a[l.start] = a[l.start] || []; a[l.start].push({tag:"td", html:l.header, rowspan:l.span, width:Ext.isBorderBox ? g : g - this.paddingWidth}) } } h = a.length; for (e = 0; e < h; e++) { m[e] = {tag:"tr", cn:a[e]} } return m }, getTuples:function () { var b = new Ext.data.Store({}); b.data = this.store.data.clone(); b.fields = this.store.fields; var l = [], a = this.dimensions, c = a.length, j; for (j = 0; j < c; j++) { l.push({field:a[j].dataIndex, direction:a[j].direction || "ASC"}) } b.sort(l); var e = b.data.items, n = [], k = [], o, h, d, g, m; c = e.length; for (j = 0; j < c; j++) { d = this.getRecordInfo(e[j]); g = d.data; h = ""; for (m in g) { h += g[m] + "---" } if (n.indexOf(h) == -1) { n.push(h); k.push(d) } } b.destroy(); return k }, getRecordInfo:function (a) { var e = this.dimensions, d = e.length, h = {}, j, c, b; for (b = 0; b < d; b++) { j = e[b]; c = j.dataIndex; h[c] = a.get(c) } var g = function (i) { return function (k) { for (var l in i) { if (k.get(l) != i[l]) { return false } } return true } }; return{data:h, matcher:g(h)} }, buildHeaders:function () { var l = this.getTuples(), m = l.length, a = this.dimensions, e, r = a.length, c = [], o, s, n, q, p, b, k, h, g, d; for (g = 0; g < r; g++) { e = a[g]; s = []; p = 0; b = 0; for (d = 0; d < m; d++) { o = l[d]; k = d == (m - 1); n = o.data[e.dataIndex]; h = q != undefined && q != n; if (g > 0 && d > 0) { h = h || o.data[a[g - 1].dataIndex] != l[d - 1].data[a[g - 1].dataIndex] } if (h) { s.push({header:q, span:p, start:b}); b += p; p = 0 } if (k) { s.push({header:n, span:p + 1, start:b}); b += p; p = 0 } q = n; p++ } c.push({items:s, width:e.width || this.defaultHeaderWidth}); q = undefined } return c }}); Ext.grid.HeaderDragZone = Ext.extend(Ext.dd.DragZone, {maxDragWidth:120, constructor:function (a, c, b) { this.grid = a; this.view = a.getView(); this.ddGroup = "gridHeader" + this.grid.getGridEl().id; Ext.grid.HeaderDragZone.superclass.constructor.call(this, c); if (b) { this.setHandleElId(Ext.id(c)); this.setOuterHandleElId(Ext.id(b)) } this.scroll = false }, getDragData:function (c) { var a = Ext.lib.Event.getTarget(c), b = this.view.findHeaderCell(a); if (b) { return{ddel:b.firstChild, header:b} } return false }, onInitDrag:function (a) { this.dragHeadersDisabled = this.view.headersDisabled; this.view.headersDisabled = true; var b = this.dragData.ddel.cloneNode(true); b.id = Ext.id(); b.style.width = Math.min(this.dragData.header.offsetWidth, this.maxDragWidth) + "px"; this.proxy.update(b); return true }, afterValidDrop:function () { this.completeDrop() }, afterInvalidDrop:function () { this.completeDrop() }, completeDrop:function () { var a = this.view, b = this.dragHeadersDisabled; setTimeout(function () { a.headersDisabled = b }, 50) }}); Ext.grid.HeaderDropZone = Ext.extend(Ext.dd.DropZone, {proxyOffsets:[-4, -9], fly:Ext.Element.fly, constructor:function (a, c, b) { this.grid = a; this.view = a.getView(); this.proxyTop = Ext.DomHelper.append(document.body, {cls:"col-move-top", html:" "}, true); this.proxyBottom = Ext.DomHelper.append(document.body, {cls:"col-move-bottom", html:" "}, true); this.proxyTop.hide = this.proxyBottom.hide = function () { this.setLeftTop(-100, -100); this.setStyle("visibility", "hidden") }; this.ddGroup = "gridHeader" + this.grid.getGridEl().id; Ext.grid.HeaderDropZone.superclass.constructor.call(this, a.getGridEl().dom) }, getTargetFromEvent:function (c) { var a = Ext.lib.Event.getTarget(c), b = this.view.findCellIndex(a); if (b !== false) { return this.view.getHeaderCell(b) } }, nextVisible:function (c) { var b = this.view, a = this.grid.colModel; c = c.nextSibling; while (c) { if (!a.isHidden(b.getCellIndex(c))) { return c } c = c.nextSibling } return null }, prevVisible:function (c) { var b = this.view, a = this.grid.colModel; c = c.prevSibling; while (c) { if (!a.isHidden(b.getCellIndex(c))) { return c } c = c.prevSibling } return null }, positionIndicator:function (d, k, j) { var a = Ext.lib.Event.getPageX(j), g = Ext.lib.Dom.getRegion(k.firstChild), c, i, b = g.top + this.proxyOffsets[1]; if ((g.right - a) <= (g.right - g.left) / 2) { c = g.right + this.view.borderWidth; i = "after" } else { c = g.left; i = "before" } if (this.grid.colModel.isFixed(this.view.getCellIndex(k))) { return false } c += this.proxyOffsets[0]; this.proxyTop.setLeftTop(c, b); this.proxyTop.show(); if (!this.bottomOffset) { this.bottomOffset = this.view.mainHd.getHeight() } this.proxyBottom.setLeftTop(c, b + this.proxyTop.dom.offsetHeight + this.bottomOffset); this.proxyBottom.show(); return i }, onNodeEnter:function (d, a, c, b) { if (b.header != d) { this.positionIndicator(b.header, d, c) } }, onNodeOver:function (g, b, d, c) { var a = false; if (c.header != g) { a = this.positionIndicator(c.header, g, d) } if (!a) { this.proxyTop.hide(); this.proxyBottom.hide() } return a ? this.dropAllowed : this.dropNotAllowed }, onNodeOut:function (d, a, c, b) { this.proxyTop.hide(); this.proxyBottom.hide() }, onNodeDrop:function (b, m, g, c) { var d = c.header; if (d != b) { var k = this.grid.colModel, j = Ext.lib.Event.getPageX(g), a = Ext.lib.Dom.getRegion(b.firstChild), o = (a.right - j) <= ((a.right - a.left) / 2) ? "after" : "before", i = this.view.getCellIndex(d), l = this.view.getCellIndex(b); if (o == "after") { l++ } if (i < l) { l-- } k.moveColumn(i, l); return true } return false }}); Ext.grid.GridView.ColumnDragZone = Ext.extend(Ext.grid.HeaderDragZone, {constructor:function (a, b) { Ext.grid.GridView.ColumnDragZone.superclass.constructor.call(this, a, b, null); this.proxy.el.addClass("x-grid3-col-dd") }, handleMouseDown:function (a) { }, callHandleMouseDown:function (a) { Ext.grid.GridView.ColumnDragZone.superclass.handleMouseDown.call(this, a) }}); Ext.grid.SplitDragZone = Ext.extend(Ext.dd.DDProxy, {fly:Ext.Element.fly, constructor:function (a, c, b) { this.grid = a; this.view = a.getView(); this.proxy = this.view.resizeProxy; Ext.grid.SplitDragZone.superclass.constructor.call(this, c, "gridSplitters" + this.grid.getGridEl().id, {dragElId:Ext.id(this.proxy.dom), resizeFrame:false}); this.setHandleElId(Ext.id(c)); this.setOuterHandleElId(Ext.id(b)); this.scroll = false }, b4StartDrag:function (a, d) { this.view.headersDisabled = true; this.proxy.setHeight(this.view.mainWrap.getHeight()); var b = this.cm.getColumnWidth(this.cellIndex); var c = Math.max(b - this.grid.minColumnWidth, 0); this.resetConstraints(); this.setXConstraint(c, 1000); this.setYConstraint(0, 0); this.minX = a - c; this.maxX = a + 1000; this.startPos = a; Ext.dd.DDProxy.prototype.b4StartDrag.call(this, a, d) }, handleMouseDown:function (c) { var b = Ext.EventObject.setEvent(c); var a = this.fly(b.getTarget()); if (a.hasClass("x-grid-split")) { this.cellIndex = this.view.getCellIndex(a.dom); this.split = a.dom; this.cm = this.grid.colModel; if (this.cm.isResizable(this.cellIndex) && !this.cm.isFixed(this.cellIndex)) { Ext.grid.SplitDragZone.superclass.handleMouseDown.apply(this, arguments) } } }, endDrag:function (c) { this.view.headersDisabled = false; var a = Math.max(this.minX, Ext.lib.Event.getPageX(c)); var b = a - this.startPos; this.view.onColumnSplitterMoved(this.cellIndex, this.cm.getColumnWidth(this.cellIndex) + b) }, autoOffset:function () { this.setDelta(0, 0) }}); Ext.grid.GridDragZone = function (b, a) { this.view = b.getView(); Ext.grid.GridDragZone.superclass.constructor.call(this, this.view.mainBody.dom, a); this.scroll = false; this.grid = b; this.ddel = document.createElement("div"); this.ddel.className = "x-grid-dd-wrap" }; Ext.extend(Ext.grid.GridDragZone, Ext.dd.DragZone, {ddGroup:"GridDD", getDragData:function (b) { var a = Ext.lib.Event.getTarget(b); var d = this.view.findRowIndex(a); if (d !== false) { var c = this.grid.selModel; if (!c.isSelected(d) || b.hasModifier()) { c.handleMouseDown(this.grid, d, b) } return{grid:this.grid, ddel:this.ddel, rowIndex:d, selections:c.getSelections()} } return false }, onInitDrag:function (b) { var a = this.dragData; this.ddel.innerHTML = this.grid.getDragDropText(); this.proxy.update(this.ddel) }, afterRepair:function () { this.dragging = false }, getRepairXY:function (b, a) { return false }, onEndDrag:function (a, b) { }, onValidDrop:function (a, b, c) { this.hideProxy() }, beforeInvalidDrop:function (a, b) { }}); Ext.grid.ColumnModel = Ext.extend(Ext.util.Observable, {defaultWidth:100, defaultSortable:false, constructor:function (a) { if (a.columns) { Ext.apply(this, a); this.setConfig(a.columns, true) } else { this.setConfig(a, true) } this.addEvents("widthchange", "headerchange", "hiddenchange", "columnmoved", "configchange"); Ext.grid.ColumnModel.superclass.constructor.call(this) }, getColumnId:function (a) { return this.config[a].id }, getColumnAt:function (a) { return this.config[a] }, setConfig:function (d, b) { var e, h, a; if (!b) { delete this.totalWidth; for (e = 0, a = this.config.length; e < a; e++) { h = this.config[e]; if (h.setEditor) { h.setEditor(null) } } } this.defaults = Ext.apply({width:this.defaultWidth, sortable:this.defaultSortable}, this.defaults); this.config = d; this.lookup = {}; for (e = 0, a = d.length; e < a; e++) { h = Ext.applyIf(d[e], this.defaults); if (Ext.isEmpty(h.id)) { h.id = e } if (!h.isColumn) { var g = Ext.grid.Column.types[h.xtype || "gridcolumn"]; h = new g(h); d[e] = h } this.lookup[h.id] = h } if (!b) { this.fireEvent("configchange", this) } }, getColumnById:function (a) { return this.lookup[a] }, getIndexById:function (c) { for (var b = 0, a = this.config.length; b < a; b++) { if (this.config[b].id == c) { return b } } return -1 }, moveColumn:function (e, b) { var a = this.config, d = a[e]; a.splice(e, 1); a.splice(b, 0, d); this.dataMap = null; this.fireEvent("columnmoved", this, e, b) }, getColumnCount:function (b) { var d = this.config.length, e = 0, a; if (b === true) { for (a = 0; a < d; a++) { if (!this.isHidden(a)) { e++ } } return e } return d }, getColumnsBy:function (g, e) { var b = this.config, h = b.length, a = [], d, j; for (d = 0; d < h; d++) { j = b[d]; if (g.call(e || this, j, d) === true) { a[a.length] = j } } return a }, isSortable:function (a) { return !!this.config[a].sortable }, isMenuDisabled:function (a) { return !!this.config[a].menuDisabled }, getRenderer:function (a) { return this.config[a].renderer || Ext.grid.ColumnModel.defaultRenderer }, getRendererScope:function (a) { return this.config[a].scope }, setRenderer:function (a, b) { this.config[a].renderer = b }, getColumnWidth:function (a) { var b = this.config[a].width; if (typeof b != "number") { b = this.defaultWidth } return b }, setColumnWidth:function (b, c, a) { this.config[b].width = c; this.totalWidth = null; if (!a) { this.fireEvent("widthchange", this, b, c) } }, getTotalWidth:function (b) { if (!this.totalWidth) { this.totalWidth = 0; for (var c = 0, a = this.config.length; c < a; c++) { if (b || !this.isHidden(c)) { this.totalWidth += this.getColumnWidth(c) } } } return this.totalWidth }, getColumnHeader:function (a) { return this.config[a].header }, setColumnHeader:function (a, b) { this.config[a].header = b; this.fireEvent("headerchange", this, a, b) }, getColumnTooltip:function (a) { return this.config[a].tooltip }, setColumnTooltip:function (a, b) { this.config[a].tooltip = b }, getDataIndex:function (a) { return this.config[a].dataIndex }, setDataIndex:function (a, b) { this.config[a].dataIndex = b }, findColumnIndex:function (d) { var e = this.config; for (var b = 0, a = e.length; b < a; b++) { if (e[b].dataIndex == d) { return b } } return -1 }, isCellEditable:function (b, e) { var d = this.config[b], a = d.editable; return !!(a || (!Ext.isDefined(a) && d.editor)) }, getCellEditor:function (a, b) { return this.config[a].getCellEditor(b) }, setEditable:function (a, b) { this.config[a].editable = b }, isHidden:function (a) { return !!this.config[a].hidden }, isFixed:function (a) { return !!this.config[a].fixed }, isResizable:function (a) { return a >= 0 && this.config[a].resizable !== false && this.config[a].fixed !== true }, setHidden:function (a, b) { var d = this.config[a]; if (d.hidden !== b) { d.hidden = b; this.totalWidth = null; this.fireEvent("hiddenchange", this, a, b) } }, setEditor:function (a, b) { this.config[a].setEditor(b) }, destroy:function () { var b = this.config.length, a = 0; for (; a < b; a++) { this.config[a].destroy() } delete this.config; delete this.lookup; this.purgeListeners() }, setState:function (a, b) { b = Ext.applyIf(b, this.defaults); Ext.apply(this.config[a], b) }}); Ext.grid.ColumnModel.defaultRenderer = function (a) { if (typeof a == "string" && a.length < 1) { return" " } return a }; Ext.grid.AbstractSelectionModel = Ext.extend(Ext.util.Observable, {constructor:function () { this.locked = false; Ext.grid.AbstractSelectionModel.superclass.constructor.call(this) }, init:function (a) { this.grid = a; if (this.lockOnInit) { delete this.lockOnInit; this.locked = false; this.lock() } this.initEvents() }, lock:function () { if (!this.locked) { this.locked = true; var a = this.grid; if (a) { a.getView().on({scope:this, beforerefresh:this.sortUnLock, refresh:this.sortLock}) } else { this.lockOnInit = true } } }, sortLock:function () { this.locked = true }, sortUnLock:function () { this.locked = false }, unlock:function () { if (this.locked) { this.locked = false; var a = this.grid, b; if (a) { b = a.getView(); b.un("beforerefresh", this.sortUnLock, this); b.un("refresh", this.sortLock, this) } else { delete this.lockOnInit } } }, isLocked:function () { return this.locked }, destroy:function () { this.unlock(); this.purgeListeners() }}); Ext.grid.RowSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, {singleSelect:false, constructor:function (a) { Ext.apply(this, a); this.selections = new Ext.util.MixedCollection(false, function (b) { return b.id }); this.last = false; this.lastActive = false; this.addEvents("selectionchange", "beforerowselect", "rowselect", "rowdeselect"); Ext.grid.RowSelectionModel.superclass.constructor.call(this) }, initEvents:function () { if (!this.grid.enableDragDrop && !this.grid.enableDrag) { this.grid.on("rowmousedown", this.handleMouseDown, this) } this.rowNav = new Ext.KeyNav(this.grid.getGridEl(), {up:this.onKeyPress, down:this.onKeyPress, scope:this}); this.grid.getView().on({scope:this, refresh:this.onRefresh, rowupdated:this.onRowUpdated, rowremoved:this.onRemove}) }, onKeyPress:function (g, b) { var a = b == "up", h = a ? "selectPrevious" : "selectNext", d = a ? -1 : 1, c; if (!g.shiftKey || this.singleSelect) { this[h](false) } else { if (this.last !== false && this.lastActive !== false) { c = this.last; this.selectRange(this.last, this.lastActive + d); this.grid.getView().focusRow(this.lastActive); if (c !== false) { this.last = c } } else { this.selectFirstRow() } } }, onRefresh:function () { var g = this.grid.store, d = this.getSelections(), c = 0, a = d.length, b, e; this.silent = true; this.clearSelections(true); for (; c < a; c++) { e = d[c]; if ((b = g.indexOfId(e.id)) != -1) { this.selectRow(b, true) } } if (d.length != this.selections.getCount()) { this.fireEvent("selectionchange", this) } this.silent = false }, onRemove:function (a, b, c) { if (this.selections.remove(c) !== false) { this.fireEvent("selectionchange", this) } }, onRowUpdated:function (a, b, c) { if (this.isSelected(c)) { a.onRowSelect(b) } }, selectRecords:function (b, e) { if (!e) { this.clearSelections() } var d = this.grid.store, c = 0, a = b.length; for (; c < a; c++) { this.selectRow(d.indexOf(b[c]), true) } }, getCount:function () { return this.selections.length }, selectFirstRow:function () { this.selectRow(0) }, selectLastRow:function (a) { this.selectRow(this.grid.store.getCount() - 1, a) }, selectNext:function (a) { if (this.hasNext()) { this.selectRow(this.last + 1, a); this.grid.getView().focusRow(this.last); return true } return false }, selectPrevious:function (a) { if (this.hasPrevious()) { this.selectRow(this.last - 1, a); this.grid.getView().focusRow(this.last); return true } return false }, hasNext:function () { return this.last !== false && (this.last + 1) < this.grid.store.getCount() }, hasPrevious:function () { return !!this.last }, getSelections:function () { return[].concat(this.selections.items) }, getSelected:function () { return this.selections.itemAt(0) }, each:function (e, d) { var c = this.getSelections(), b = 0, a = c.length; for (; b < a; b++) { if (e.call(d || this, c[b], b) === false) { return false } } return true }, clearSelections:function (a) { if (this.isLocked()) { return } if (a !== true) { var c = this.grid.store, b = this.selections; b.each(function (d) { this.deselectRow(c.indexOfId(d.id)) }, this); b.clear() } else { this.selections.clear() } this.last = false }, selectAll:function () { if (this.isLocked()) { return } this.selections.clear(); for (var b = 0, a = this.grid.store.getCount(); b < a; b++) { this.selectRow(b, true) } }, hasSelection:function () { return this.selections.length > 0 }, isSelected:function (a) { var b = Ext.isNumber(a) ? this.grid.store.getAt(a) : a; return(b && this.selections.key(b.id) ? true : false) }, isIdSelected:function (a) { return(this.selections.key(a) ? true : false) }, handleMouseDown:function (d, i, h) { if (h.button !== 0 || this.isLocked()) { return } var a = this.grid.getView(); if (h.shiftKey && !this.singleSelect && this.last !== false) { var c = this.last; this.selectRange(c, i, h.ctrlKey); this.last = c; a.focusRow(i) } else { var b = this.isSelected(i); if (h.ctrlKey && b) { this.deselectRow(i) } else { if (!b || this.getCount() > 1) { this.selectRow(i, h.ctrlKey || h.shiftKey); a.focusRow(i) } } } }, selectRows:function (c, d) { if (!d) { this.clearSelections() } for (var b = 0, a = c.length; b < a; b++) { this.selectRow(c[b], true) } }, selectRange:function (b, a, d) { var c; if (this.isLocked()) { return } if (!d) { this.clearSelections() } if (b <= a) { for (c = b; c <= a; c++) { this.selectRow(c, true) } } else { for (c = b; c >= a; c--) { this.selectRow(c, true) } } }, deselectRange:function (c, b, a) { if (this.isLocked()) { return } for (var d = c; d <= b; d++) { this.deselectRow(d, a) } }, selectRow:function (b, d, a) { if (this.isLocked() || (b < 0 || b >= this.grid.store.getCount()) || (d && this.isSelected(b))) { return } var c = this.grid.store.getAt(b); if (c && this.fireEvent("beforerowselect", this, b, d, c) !== false) { if (!d || this.singleSelect) { this.clearSelections() } this.selections.add(c); this.last = this.lastActive = b; if (!a) { this.grid.getView().onRowSelect(b) } if (!this.silent) { this.fireEvent("rowselect", this, b, c); this.fireEvent("selectionchange", this) } } }, deselectRow:function (b, a) { if (this.isLocked()) { return } if (this.last == b) { this.last = false } if (this.lastActive == b) { this.lastActive = false } var c = this.grid.store.getAt(b); if (c) { this.selections.remove(c); if (!a) { this.grid.getView().onRowDeselect(b) } this.fireEvent("rowdeselect", this, b, c); this.fireEvent("selectionchange", this) } }, acceptsNav:function (c, b, a) { return !a.isHidden(b) && a.isCellEditable(b, c) }, onEditorKey:function (n, l) { var d = l.getKey(), h, i = this.grid, p = i.lastEdit, j = i.activeEditor, b = l.shiftKey, o, p, a, m; if (d == l.TAB) { l.stopEvent(); j.completeEdit(); if (b) { h = i.walkCells(j.row, j.col - 1, -1, this.acceptsNav, this) } else { h = i.walkCells(j.row, j.col + 1, 1, this.acceptsNav, this) } } else { if (d == l.ENTER) { if (this.moveEditorOnEnter !== false) { if (b) { h = i.walkCells(p.row - 1, p.col, -1, this.acceptsNav, this) } else { h = i.walkCells(p.row + 1, p.col, 1, this.acceptsNav, this) } } } } if (h) { a = h[0]; m = h[1]; this.onEditorSelect(a, p.row); if (i.isEditor && i.editing) { o = i.activeEditor; if (o && o.field.triggerBlur) { o.field.triggerBlur() } } i.startEditing(a, m) } }, onEditorSelect:function (b, a) { if (a != b) { this.selectRow(b) } }, destroy:function () { Ext.destroy(this.rowNav); this.rowNav = null; Ext.grid.RowSelectionModel.superclass.destroy.call(this) }}); Ext.grid.Column = Ext.extend(Ext.util.Observable, {isColumn:true, constructor:function (b) { Ext.apply(this, b); if (Ext.isString(this.renderer)) { this.renderer = Ext.util.Format[this.renderer] } else { if (Ext.isObject(this.renderer)) { this.scope = this.renderer.scope; this.renderer = this.renderer.fn } } if (!this.scope) { this.scope = this } var a = this.editor; delete this.editor; this.setEditor(a); this.addEvents("click", "contextmenu", "dblclick", "mousedown"); Ext.grid.Column.superclass.constructor.call(this) }, processEvent:function (b, d, c, g, a) { return this.fireEvent(b, this, c, g, d) }, destroy:function () { if (this.setEditor) { this.setEditor(null) } this.purgeListeners() }, renderer:function (a) { return a }, getEditor:function (a) { return this.editable !== false ? this.editor : null }, setEditor:function (b) { var a = this.editor; if (a) { if (a.gridEditor) { a.gridEditor.destroy(); delete a.gridEditor } else { a.destroy() } } this.editor = null; if (b) { if (!b.isXType) { b = Ext.create(b, "textfield") } this.editor = b } }, getCellEditor:function (b) { var a = this.getEditor(b); if (a) { if (!a.startEdit) { if (!a.gridEditor) { a.gridEditor = new Ext.grid.GridEditor(a) } a = a.gridEditor } } return a }}); Ext.grid.BooleanColumn = Ext.extend(Ext.grid.Column, {trueText:"true", falseText:"false", undefinedText:" ", constructor:function (a) { Ext.grid.BooleanColumn.superclass.constructor.call(this, a); var c = this.trueText, d = this.falseText, b = this.undefinedText; this.renderer = function (e) { if (e === undefined) { return b } if (!e || e === "false") { return d } return c } }}); Ext.grid.NumberColumn = Ext.extend(Ext.grid.Column, {format:"0,000.00", constructor:function (a) { Ext.grid.NumberColumn.superclass.constructor.call(this, a); this.renderer = Ext.util.Format.numberRenderer(this.format) }}); Ext.grid.DateColumn = Ext.extend(Ext.grid.Column, {format:"m/d/Y", constructor:function (a) { Ext.grid.DateColumn.superclass.constructor.call(this, a); this.renderer = Ext.util.Format.dateRenderer(this.format) }}); Ext.grid.TemplateColumn = Ext.extend(Ext.grid.Column, {constructor:function (a) { Ext.grid.TemplateColumn.superclass.constructor.call(this, a); var b = (!Ext.isPrimitive(this.tpl) && this.tpl.compile) ? this.tpl : new Ext.XTemplate(this.tpl); this.renderer = function (d, e, c) { return b.apply(c.data) }; this.tpl = b }}); Ext.grid.ActionColumn = Ext.extend(Ext.grid.Column, {header:" ", actionIdRe:/x-action-col-(\d+)/, altText:"", constructor:function (b) { var g = this, c = b.items || (g.items = [g]), a = c.length, d, e; Ext.grid.ActionColumn.superclass.constructor.call(g, b); g.renderer = function (h, i) { h = Ext.isFunction(b.renderer) ? b.renderer.apply(this, arguments) || "" : ""; i.css += " x-action-col-cell"; for (d = 0; d < a; d++) { e = c[d]; h += '' + (e.altText || g.altText) + '" } return h } }, destroy:function () { delete this.items; delete this.renderer; return Ext.grid.ActionColumn.superclass.destroy.apply(this, arguments) }, processEvent:function (c, i, d, j, b) { var a = i.getTarget().className.match(this.actionIdRe), h, g; if (a && (h = this.items[parseInt(a[1], 10)])) { if (c == "click") { (g = h.handler || this.handler) && g.call(h.scope || this.scope || this, d, j, b, h, i) } else { if ((c == "mousedown") && (h.stopSelection !== false)) { return false } } } return Ext.grid.ActionColumn.superclass.processEvent.apply(this, arguments) }}); Ext.grid.Column.types = {gridcolumn:Ext.grid.Column, booleancolumn:Ext.grid.BooleanColumn, numbercolumn:Ext.grid.NumberColumn, datecolumn:Ext.grid.DateColumn, templatecolumn:Ext.grid.TemplateColumn, actioncolumn:Ext.grid.ActionColumn}; Ext.grid.RowNumberer = Ext.extend(Object, {header:"", width:23, sortable:false, constructor:function (a) { Ext.apply(this, a); if (this.rowspan) { this.renderer = this.renderer.createDelegate(this) } }, fixed:true, hideable:false, menuDisabled:true, dataIndex:"", id:"numberer", rowspan:undefined, renderer:function (b, c, a, d) { if (this.rowspan) { c.cellAttr = 'rowspan="' + this.rowspan + '"' } return d + 1 }}); Ext.grid.CheckboxSelectionModel = Ext.extend(Ext.grid.RowSelectionModel, {header:'
     
    ', width:20, sortable:false, menuDisabled:true, fixed:true, hideable:false, dataIndex:"", id:"checker", isColumn:true, constructor:function () { Ext.grid.CheckboxSelectionModel.superclass.constructor.apply(this, arguments); if (this.checkOnly) { this.handleMouseDown = Ext.emptyFn } }, initEvents:function () { Ext.grid.CheckboxSelectionModel.superclass.initEvents.call(this); this.grid.on("render", function () { Ext.fly(this.grid.getView().innerHd).on("mousedown", this.onHdMouseDown, this) }, this) }, processEvent:function (b, d, c, g, a) { if (b == "mousedown") { this.onMouseDown(d, d.getTarget()); return false } else { return Ext.grid.Column.prototype.processEvent.apply(this, arguments) } }, onMouseDown:function (c, b) { if (c.button === 0 && b.className == "x-grid3-row-checker") { c.stopEvent(); var d = c.getTarget(".x-grid3-row"); if (d) { var a = d.rowIndex; if (this.isSelected(a)) { this.deselectRow(a) } else { this.selectRow(a, true); this.grid.getView().focusRow(a) } } } }, onHdMouseDown:function (c, a) { if (a.className == "x-grid3-hd-checker") { c.stopEvent(); var b = Ext.fly(a.parentNode); var d = b.hasClass("x-grid3-hd-checker-on"); if (d) { b.removeClass("x-grid3-hd-checker-on"); this.clearSelections() } else { b.addClass("x-grid3-hd-checker-on"); this.selectAll() } } }, renderer:function (b, c, a) { return'
     
    ' }, onEditorSelect:function (b, a) { if (a != b && !this.checkOnly) { this.selectRow(b) } }}); Ext.grid.CellSelectionModel = Ext.extend(Ext.grid.AbstractSelectionModel, {constructor:function (a) { Ext.apply(this, a); this.selection = null; this.addEvents("beforecellselect", "cellselect", "selectionchange"); Ext.grid.CellSelectionModel.superclass.constructor.call(this) }, initEvents:function () { this.grid.on("cellmousedown", this.handleMouseDown, this); this.grid.on(Ext.EventManager.getKeyEvent(), this.handleKeyDown, this); this.grid.getView().on({scope:this, refresh:this.onViewChange, rowupdated:this.onRowUpdated, beforerowremoved:this.clearSelections, beforerowsinserted:this.clearSelections}); if (this.grid.isEditor) { this.grid.on("beforeedit", this.beforeEdit, this) } }, beforeEdit:function (a) { this.select(a.row, a.column, false, true, a.record) }, onRowUpdated:function (a, b, c) { if (this.selection && this.selection.record == c) { a.onCellSelect(b, this.selection.cell[1]) } }, onViewChange:function () { this.clearSelections(true) }, getSelectedCell:function () { return this.selection ? this.selection.cell : null }, clearSelections:function (b) { var a = this.selection; if (a) { if (b !== true) { this.grid.view.onCellDeselect(a.cell[0], a.cell[1]) } this.selection = null; this.fireEvent("selectionchange", this, null) } }, hasSelection:function () { return this.selection ? true : false }, handleMouseDown:function (b, d, a, c) { if (c.button !== 0 || this.isLocked()) { return } this.select(d, a) }, select:function (g, c, b, e, d) { if (this.fireEvent("beforecellselect", this, g, c) !== false) { this.clearSelections(); d = d || this.grid.store.getAt(g); this.selection = {record:d, cell:[g, c]}; if (!b) { var a = this.grid.getView(); a.onCellSelect(g, c); if (e !== true) { a.focusCell(g, c) } } this.fireEvent("cellselect", this, g, c); this.fireEvent("selectionchange", this, this.selection) } }, isSelectable:function (c, b, a) { return !a.isHidden(b) }, onEditorKey:function (b, a) { if (a.getKey() == a.TAB) { this.handleKeyDown(a) } }, handleKeyDown:function (j) { if (!j.isNavKeyPress()) { return } var d = j.getKey(), i = this.grid, p = this.selection, b = this, m = function (g, c, e) { return i.walkCells(g, c, e, i.isEditor && i.editing ? b.acceptsNav : b.isSelectable, b) }, o, h, a, l, n; switch (d) { case j.ESC: case j.PAGE_UP: case j.PAGE_DOWN: break; default: j.stopEvent(); break } if (!p) { o = m(0, 0, 1); if (o) { this.select(o[0], o[1]) } return } o = p.cell; a = o[0]; l = o[1]; switch (d) { case j.TAB: if (j.shiftKey) { h = m(a, l - 1, -1) } else { h = m(a, l + 1, 1) } break; case j.DOWN: h = m(a + 1, l, 1); break; case j.UP: h = m(a - 1, l, -1); break; case j.RIGHT: h = m(a, l + 1, 1); break; case j.LEFT: h = m(a, l - 1, -1); break; case j.ENTER: if (i.isEditor && !i.editing) { i.startEditing(a, l); return } break } if (h) { a = h[0]; l = h[1]; this.select(a, l); if (i.isEditor && i.editing) { n = i.activeEditor; if (n && n.field.triggerBlur) { n.field.triggerBlur() } i.startEditing(a, l) } } }, acceptsNav:function (c, b, a) { return !a.isHidden(b) && a.isCellEditable(b, c) }}); Ext.grid.EditorGridPanel = Ext.extend(Ext.grid.GridPanel, {clicksToEdit:2, forceValidation:false, isEditor:true, detectEdit:false, autoEncode:false, trackMouseOver:false, initComponent:function () { Ext.grid.EditorGridPanel.superclass.initComponent.call(this); if (!this.selModel) { this.selModel = new Ext.grid.CellSelectionModel() } this.activeEditor = null; this.addEvents("beforeedit", "afteredit", "validateedit") }, initEvents:function () { Ext.grid.EditorGridPanel.superclass.initEvents.call(this); this.getGridEl().on("mousewheel", this.stopEditing.createDelegate(this, [true]), this); this.on("columnresize", this.stopEditing, this, [true]); if (this.clicksToEdit == 1) { this.on("cellclick", this.onCellDblClick, this) } else { var a = this.getView(); if (this.clicksToEdit == "auto" && a.mainBody) { a.mainBody.on("mousedown", this.onAutoEditClick, this) } this.on("celldblclick", this.onCellDblClick, this) } }, onResize:function () { Ext.grid.EditorGridPanel.superclass.onResize.apply(this, arguments); var a = this.activeEditor; if (this.editing && a) { a.realign(true) } }, onCellDblClick:function (b, c, a) { this.startEditing(c, a) }, onAutoEditClick:function (c, b) { if (c.button !== 0) { return } var g = this.view.findRowIndex(b), a = this.view.findCellIndex(b); if (g !== false && a !== false) { this.stopEditing(); if (this.selModel.getSelectedCell) { var d = this.selModel.getSelectedCell(); if (d && d[0] === g && d[1] === a) { this.startEditing(g, a) } } else { if (this.selModel.isSelected(g)) { this.startEditing(g, a) } } } }, onEditComplete:function (b, d, a) { this.editing = false; this.lastActiveEditor = this.activeEditor; this.activeEditor = null; var c = b.record, h = this.colModel.getDataIndex(b.col); d = this.postEditValue(d, a, c, h); if (this.forceValidation === true || String(d) !== String(a)) { var g = {grid:this, record:c, field:h, originalValue:a, value:d, row:b.row, column:b.col, cancel:false}; if (this.fireEvent("validateedit", g) !== false && !g.cancel && String(d) !== String(a)) { c.set(h, g.value); delete g.cancel; this.fireEvent("afteredit", g) } } this.view.focusCell(b.row, b.col) }, startEditing:function (i, c) { this.stopEditing(); if (this.colModel.isCellEditable(c, i)) { this.view.ensureVisible(i, c, true); var d = this.store.getAt(i), h = this.colModel.getDataIndex(c), g = {grid:this, record:d, field:h, value:d.data[h], row:i, column:c, cancel:false}; if (this.fireEvent("beforeedit", g) !== false && !g.cancel) { this.editing = true; var b = this.colModel.getCellEditor(c, i); if (!b) { return } if (!b.rendered) { b.parentEl = this.view.getEditorParent(b); b.on({scope:this, render:{fn:function (e) { e.field.focus(false, true) }, single:true, scope:this}, specialkey:function (k, j) { this.getSelectionModel().onEditorKey(k, j) }, complete:this.onEditComplete, canceledit:this.stopEditing.createDelegate(this, [true])}) } Ext.apply(b, {row:i, col:c, record:d}); this.lastEdit = {row:i, col:c}; this.activeEditor = b; b.selectSameEditor = (this.activeEditor == this.lastActiveEditor); var a = this.preEditValue(d, h); b.startEdit(this.view.getCell(i, c).firstChild, Ext.isDefined(a) ? a : ""); (function () { delete b.selectSameEditor }).defer(50) } } }, preEditValue:function (a, c) { var b = a.data[c]; return this.autoEncode && Ext.isString(b) ? Ext.util.Format.htmlDecode(b) : b }, postEditValue:function (c, a, b, d) { return this.autoEncode && Ext.isString(c) ? Ext.util.Format.htmlEncode(c) : c }, stopEditing:function (b) { if (this.editing) { var a = this.lastActiveEditor = this.activeEditor; if (a) { a[b === true ? "cancelEdit" : "completeEdit"](); this.view.focusCell(a.row, a.col) } this.activeEditor = null } this.editing = false }}); Ext.reg("editorgrid", Ext.grid.EditorGridPanel); Ext.grid.GridEditor = function (b, a) { Ext.grid.GridEditor.superclass.constructor.call(this, b, a); b.monitorTab = false }; Ext.extend(Ext.grid.GridEditor, Ext.Editor, {alignment:"tl-tl", autoSize:"width", hideEl:false, cls:"x-small-editor x-grid-editor", shim:false, shadow:false}); Ext.grid.PropertyRecord = Ext.data.Record.create([ {name:"name", type:"string"}, "value" ]); Ext.grid.PropertyStore = Ext.extend(Ext.util.Observable, {constructor:function (a, b) { this.grid = a; this.store = new Ext.data.Store({recordType:Ext.grid.PropertyRecord}); this.store.on("update", this.onUpdate, this); if (b) { this.setSource(b) } Ext.grid.PropertyStore.superclass.constructor.call(this) }, setSource:function (c) { this.source = c; this.store.removeAll(); var b = []; for (var a in c) { if (this.isEditableValue(c[a])) { b.push(new Ext.grid.PropertyRecord({name:a, value:c[a]}, a)) } } this.store.loadRecords({records:b}, {}, true) }, onUpdate:function (e, a, d) { if (d == Ext.data.Record.EDIT) { var b = a.data.value; var c = a.modified.value; if (this.grid.fireEvent("beforepropertychange", this.source, a.id, b, c) !== false) { this.source[a.id] = b; a.commit(); this.grid.fireEvent("propertychange", this.source, a.id, b, c) } else { a.reject() } } }, getProperty:function (a) { return this.store.getAt(a) }, isEditableValue:function (a) { return Ext.isPrimitive(a) || Ext.isDate(a) }, setValue:function (d, c, a) { var b = this.getRec(d); if (b) { b.set("value", c); this.source[d] = c } else { if (a) { this.source[d] = c; b = new Ext.grid.PropertyRecord({name:d, value:c}, d); this.store.add(b) } } }, remove:function (b) { var a = this.getRec(b); if (a) { this.store.remove(a); delete this.source[b] } }, getRec:function (a) { return this.store.getById(a) }, getSource:function () { return this.source }}); Ext.grid.PropertyColumnModel = Ext.extend(Ext.grid.ColumnModel, {nameText:"Name", valueText:"Value", dateFormat:"m/j/Y", trueText:"true", falseText:"false", constructor:function (c, b) { var d = Ext.grid, e = Ext.form; this.grid = c; d.PropertyColumnModel.superclass.constructor.call(this, [ {header:this.nameText, width:50, sortable:true, dataIndex:"name", id:"name", menuDisabled:true}, {header:this.valueText, width:50, resizable:false, dataIndex:"value", id:"value", menuDisabled:true} ]); this.store = b; var a = new e.Field({autoCreate:{tag:"select", children:[ {tag:"option", value:"true", html:this.trueText}, {tag:"option", value:"false", html:this.falseText} ]}, getValue:function () { return this.el.dom.value == "true" }}); this.editors = {date:new d.GridEditor(new e.DateField({selectOnFocus:true})), string:new d.GridEditor(new e.TextField({selectOnFocus:true})), number:new d.GridEditor(new e.NumberField({selectOnFocus:true, style:"text-align:left;"})), "boolean":new d.GridEditor(a, {autoSize:"both"})}; this.renderCellDelegate = this.renderCell.createDelegate(this); this.renderPropDelegate = this.renderProp.createDelegate(this) }, renderDate:function (a) { return a.dateFormat(this.dateFormat) }, renderBool:function (a) { return this[a ? "trueText" : "falseText"] }, isCellEditable:function (a, b) { return a == 1 }, getRenderer:function (a) { return a == 1 ? this.renderCellDelegate : this.renderPropDelegate }, renderProp:function (a) { return this.getPropertyName(a) }, renderCell:function (d, b, c) { var a = this.grid.customRenderers[c.get("name")]; if (a) { return a.apply(this, arguments) } var e = d; if (Ext.isDate(d)) { e = this.renderDate(d) } else { if (typeof d == "boolean") { e = this.renderBool(d) } } return Ext.util.Format.htmlEncode(e) }, getPropertyName:function (b) { var a = this.grid.propertyNames; return a && a[b] ? a[b] : b }, getCellEditor:function (a, e) { var b = this.store.getProperty(e), d = b.data.name, c = b.data.value; if (this.grid.customEditors[d]) { return this.grid.customEditors[d] } if (Ext.isDate(c)) { return this.editors.date } else { if (typeof c == "number") { return this.editors.number } else { if (typeof c == "boolean") { return this.editors["boolean"] } else { return this.editors.string } } } }, destroy:function () { Ext.grid.PropertyColumnModel.superclass.destroy.call(this); this.destroyEditors(this.editors); this.destroyEditors(this.grid.customEditors) }, destroyEditors:function (b) { for (var a in b) { Ext.destroy(b[a]) } }}); Ext.grid.PropertyGrid = Ext.extend(Ext.grid.EditorGridPanel, {enableColumnMove:false, stripeRows:false, trackMouseOver:false, clicksToEdit:1, enableHdMenu:false, viewConfig:{forceFit:true}, initComponent:function () { this.customRenderers = this.customRenderers || {}; this.customEditors = this.customEditors || {}; this.lastEditRow = null; var b = new Ext.grid.PropertyStore(this); this.propStore = b; var a = new Ext.grid.PropertyColumnModel(this, b); b.store.sort("name", "ASC"); this.addEvents("beforepropertychange", "propertychange"); this.cm = a; this.ds = b.store; Ext.grid.PropertyGrid.superclass.initComponent.call(this); this.mon(this.selModel, "beforecellselect", function (e, d, c) { if (c === 0) { this.startEditing.defer(200, this, [d, 1]); return false } }, this) }, onRender:function () { Ext.grid.PropertyGrid.superclass.onRender.apply(this, arguments); this.getGridEl().addClass("x-props-grid") }, afterRender:function () { Ext.grid.PropertyGrid.superclass.afterRender.apply(this, arguments); if (this.source) { this.setSource(this.source) } }, setSource:function (a) { this.propStore.setSource(a) }, getSource:function () { return this.propStore.getSource() }, setProperty:function (c, b, a) { this.propStore.setValue(c, b, a) }, removeProperty:function (a) { this.propStore.remove(a) }}); Ext.reg("propertygrid", Ext.grid.PropertyGrid); Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, {groupByText:"Group By This Field", showGroupsText:"Show in Groups", hideGroupedColumn:false, showGroupName:true, startCollapsed:false, enableGrouping:true, enableGroupingMenu:true, enableNoGroups:true, emptyGroupText:"(None)", ignoreAdd:false, groupTextTpl:"{text}", groupMode:"value", cancelEditOnToggle:true, initTemplates:function () { Ext.grid.GroupingView.superclass.initTemplates.call(this); this.state = {}; var a = this.grid.getSelectionModel(); a.on(a.selectRow ? "beforerowselect" : "beforecellselect", this.onBeforeRowSelect, this); if (!this.startGroup) { this.startGroup = new Ext.XTemplate('
    ', '
    ', this.groupTextTpl, "
    ", '
    ') } this.startGroup.compile(); if (!this.endGroup) { this.endGroup = "
    " } }, findGroup:function (a) { return Ext.fly(a).up(".x-grid-group", this.mainBody.dom) }, getGroups:function () { return this.hasRows() ? this.mainBody.dom.childNodes : [] }, onAdd:function (d, a, b) { if (this.canGroup() && !this.ignoreAdd) { var c = this.getScrollState(); this.fireEvent("beforerowsinserted", d, b, b + (a.length - 1)); this.refresh(); this.restoreScroll(c); this.fireEvent("rowsinserted", d, b, b + (a.length - 1)) } else { if (!this.canGroup()) { Ext.grid.GroupingView.superclass.onAdd.apply(this, arguments) } } }, onRemove:function (e, a, b, d) { Ext.grid.GroupingView.superclass.onRemove.apply(this, arguments); var c = document.getElementById(a._groupId); if (c && c.childNodes[1].childNodes.length < 1) { Ext.removeNode(c) } this.applyEmptyText() }, refreshRow:function (a) { if (this.ds.getCount() == 1) { this.refresh() } else { this.isUpdating = true; Ext.grid.GroupingView.superclass.refreshRow.apply(this, arguments); this.isUpdating = false } }, beforeMenuShow:function () { var c, a = this.hmenu.items, b = this.cm.config[this.hdCtxIndex].groupable === false; if ((c = a.get("groupBy"))) { c.setDisabled(b) } if ((c = a.get("showGroups"))) { c.setDisabled(b); c.setChecked(this.canGroup(), true) } }, renderUI:function () { var a = Ext.grid.GroupingView.superclass.renderUI.call(this); if (this.enableGroupingMenu && this.hmenu) { this.hmenu.add("-", {itemId:"groupBy", text:this.groupByText, handler:this.onGroupByClick, scope:this, iconCls:"x-group-by-icon"}); if (this.enableNoGroups) { this.hmenu.add({itemId:"showGroups", text:this.showGroupsText, checked:true, checkHandler:this.onShowGroupsClick, scope:this}) } this.hmenu.on("beforeshow", this.beforeMenuShow, this) } return a }, processEvent:function (b, i) { Ext.grid.GroupingView.superclass.processEvent.call(this, b, i); var h = i.getTarget(".x-grid-group-hd", this.mainBody); if (h) { var g = this.getGroupField(), d = this.getPrefix(g), a = h.id.substring(d.length), c = new RegExp("gp-" + Ext.escapeRe(g) + "--hd"); a = a.substr(0, a.length - 3); if (a || c.test(h.id)) { this.grid.fireEvent("group" + b, this.grid, g, a, i) } if (b == "mousedown" && i.button == 0) { this.toggleGroup(h.parentNode) } } }, onGroupByClick:function () { var a = this.grid; this.enableGrouping = true; a.store.groupBy(this.cm.getDataIndex(this.hdCtxIndex)); a.fireEvent("groupchange", a, a.store.getGroupState()); this.beforeMenuShow(); this.refresh() }, onShowGroupsClick:function (a, b) { this.enableGrouping = b; if (b) { this.onGroupByClick() } else { this.grid.store.clearGrouping(); this.grid.fireEvent("groupchange", this, null) } }, toggleRowIndex:function (c, a) { if (!this.canGroup()) { return } var b = this.getRow(c); if (b) { this.toggleGroup(this.findGroup(b), a) } }, toggleGroup:function (c, b) { var a = Ext.get(c), d = Ext.util.Format.htmlEncode(a.id); b = Ext.isDefined(b) ? b : a.hasClass("x-grid-group-collapsed"); if (this.state[d] !== b) { if (this.cancelEditOnToggle !== false) { this.grid.stopEditing(true) } this.state[d] = b; a[b ? "removeClass" : "addClass"]("x-grid-group-collapsed") } }, toggleAllGroups:function (c) { var b = this.getGroups(); for (var d = 0, a = b.length; d < a; d++) { this.toggleGroup(b[d], c) } }, expandAllGroups:function () { this.toggleAllGroups(true) }, collapseAllGroups:function () { this.toggleAllGroups(false) }, getGroup:function (a, e, i, j, b, h) { var c = this.cm.config[b], d = i ? i.call(c.scope, a, {}, e, j, b, h) : String(a); if (d === "" || d === " ") { d = c.emptyGroupText || this.emptyGroupText } return d }, getGroupField:function () { return this.grid.store.getGroupState() }, afterRender:function () { if (!this.ds || !this.cm) { return } Ext.grid.GroupingView.superclass.afterRender.call(this); if (this.grid.deferRowRender) { this.updateGroupWidths() } }, afterRenderUI:function () { Ext.grid.GroupingView.superclass.afterRenderUI.call(this); if (this.enableGroupingMenu && this.hmenu) { this.hmenu.add("-", {itemId:"groupBy", text:this.groupByText, handler:this.onGroupByClick, scope:this, iconCls:"x-group-by-icon"}); if (this.enableNoGroups) { this.hmenu.add({itemId:"showGroups", text:this.showGroupsText, checked:true, checkHandler:this.onShowGroupsClick, scope:this}) } this.hmenu.on("beforeshow", this.beforeMenuShow, this) } }, renderRows:function () { var a = this.getGroupField(); var e = !!a; if (this.hideGroupedColumn) { var b = this.cm.findColumnIndex(a), d = Ext.isDefined(this.lastGroupField); if (!e && d) { this.mainBody.update(""); this.cm.setHidden(this.cm.findColumnIndex(this.lastGroupField), false); delete this.lastGroupField } else { if (e && !d) { this.lastGroupField = a; this.cm.setHidden(b, true) } else { if (e && d && a !== this.lastGroupField) { this.mainBody.update(""); var c = this.cm.findColumnIndex(this.lastGroupField); this.cm.setHidden(c, false); this.lastGroupField = a; this.cm.setHidden(b, true) } } } } return Ext.grid.GroupingView.superclass.renderRows.apply(this, arguments) }, doRender:function (c, h, q, a, p, s) { if (h.length < 1) { return"" } if (!this.canGroup() || this.isUpdating) { return Ext.grid.GroupingView.superclass.doRender.apply(this, arguments) } var z = this.getGroupField(), o = this.cm.findColumnIndex(z), w, j = "width:" + this.getTotalWidth() + ";", e = this.cm.config[o], b = e.groupRenderer || e.renderer, t = this.showGroupName ? (e.groupName || e.header) + ": " : "", y = [], l, u, v, n; for (u = 0, v = h.length; u < v; u++) { var k = a + u, m = h[u], d = m.data[z]; w = this.getGroup(d, m, b, k, o, q); if (!l || l.group != w) { n = this.constructId(d, z, o); this.state[n] = !(Ext.isDefined(this.state[n]) ? !this.state[n] : this.startCollapsed); l = {group:w, gvalue:d, text:t + w, groupId:n, startRow:k, rs:[m], cls:this.state[n] ? "" : "x-grid-group-collapsed", style:j}; y.push(l) } else { l.rs.push(m) } m._groupId = n } var x = []; for (u = 0, v = y.length; u < v; u++) { w = y[u]; this.doGroupStart(x, w, c, q, p); x[x.length] = Ext.grid.GroupingView.superclass.doRender.call(this, c, w.rs, q, w.startRow, p, s); this.doGroupEnd(x, w, c, q, p) } return x.join("") }, getGroupId:function (a) { var b = this.getGroupField(); return this.constructId(a, b, this.cm.findColumnIndex(b)) }, constructId:function (c, e, a) { var b = this.cm.config[a], d = b.groupRenderer || b.renderer, g = (this.groupMode == "value") ? c : this.getGroup(c, {data:{}}, d, 0, a, this.ds); return this.getPrefix(e) + Ext.util.Format.htmlEncode(g) }, canGroup:function () { return this.enableGrouping && !!this.getGroupField() }, getPrefix:function (a) { return this.grid.getGridEl().id + "-gp-" + a + "-" }, doGroupStart:function (a, d, b, e, c) { a[a.length] = this.startGroup.apply(d) }, doGroupEnd:function (a, d, b, e, c) { a[a.length] = this.endGroup }, getRows:function () { if (!this.canGroup()) { return Ext.grid.GroupingView.superclass.getRows.call(this) } var k = [], c = this.getGroups(), h, e = 0, a = c.length, d, b; for (; e < a; ++e) { h = c[e].childNodes[1]; if (h) { h = h.childNodes; for (d = 0, b = h.length; d < b; ++d) { k[k.length] = h[d] } } } return k }, updateGroupWidths:function () { if (!this.canGroup() || !this.hasRows()) { return } var c = Math.max(this.cm.getTotalWidth(), this.el.dom.offsetWidth - this.getScrollOffset()) + "px"; var b = this.getGroups(); for (var d = 0, a = b.length; d < a; d++) { b[d].firstChild.style.width = c } }, onColumnWidthUpdated:function (c, a, b) { Ext.grid.GroupingView.superclass.onColumnWidthUpdated.call(this, c, a, b); this.updateGroupWidths() }, onAllColumnWidthsUpdated:function (a, b) { Ext.grid.GroupingView.superclass.onAllColumnWidthsUpdated.call(this, a, b); this.updateGroupWidths() }, onColumnHiddenUpdated:function (b, c, a) { Ext.grid.GroupingView.superclass.onColumnHiddenUpdated.call(this, b, c, a); this.updateGroupWidths() }, onLayout:function () { this.updateGroupWidths() }, onBeforeRowSelect:function (b, a) { this.toggleRowIndex(a, true) }}); Ext.grid.GroupingView.GROUP_ID = 1000;