Rev 2108 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/** Ext JS Library 2.0.2* Copyright(c) 2006-2008, Ext JS, LLC.* licensing@extjs.com** http://extjs.com/license*/Ext.DomHelper = function(){var tempTableEl = null;var emptyTags = /^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i;var tableRe = /^table|tbody|tr|td$/i;var createHtml = function(o){if(typeof o == 'string'){return o;}var b = "";if (Ext.isArray(o)) {for (var i = 0, l = o.length; i < l; i++) {b += createHtml(o[i]);}return b;}if(!o.tag){o.tag = "div";}b += "<" + o.tag;for(var attr in o){if(attr == "tag" || attr == "children" || attr == "cn" || attr == "html" || typeof o[attr] == "function") continue;if(attr == "style"){var s = o["style"];if(typeof s == "function"){s = s.call();}if(typeof s == "string"){b += ' style="' + s + '"';}else if(typeof s == "object"){b += ' style="';for(var key in s){if(typeof s[key] != "function"){b += key + ":" + s[key] + ";";}}b += '"';}}else{if(attr == "cls"){b += ' class="' + o["cls"] + '"';}else if(attr == "htmlFor"){b += ' for="' + o["htmlFor"] + '"';}else{b += " " + attr + '="' + o[attr] + '"';}}}if(emptyTags.test(o.tag)){b += "/>";}else{b += ">";var cn = o.children || o.cn;if(cn){b += createHtml(cn);} else if(o.html){b += o.html;}b += "</" + o.tag + ">";}return b;};var createDom = function(o, parentNode){var el;if (Ext.isArray(o)) {el = document.createDocumentFragment();for(var i = 0, l = o.length; i < l; i++) {createDom(o[i], el);}} else if (typeof o == "string)") {el = document.createTextNode(o);} else {el = document.createElement(o.tag||'div');var useSet = !!el.setAttribute;for(var attr in o){if(attr == "tag" || attr == "children" || attr == "cn" || attr == "html" || attr == "style" || typeof o[attr] == "function") continue;if(attr=="cls"){el.className = o["cls"];}else{if(useSet) el.setAttribute(attr, o[attr]);else el[attr] = o[attr];}}Ext.DomHelper.applyStyles(el, o.style);var cn = o.children || o.cn;if(cn){createDom(cn, el);} else if(o.html){el.innerHTML = o.html;}}if(parentNode){parentNode.appendChild(el);}return el;};var ieTable = function(depth, s, h, e){tempTableEl.innerHTML = [s, h, e].join('');var i = -1, el = tempTableEl;while(++i < depth){el = el.firstChild;}return el;};var ts = '<table>',te = '</table>',tbs = ts+'<tbody>',tbe = '</tbody>'+te,trs = tbs + '<tr>',tre = '</tr>'+tbe;var insertIntoTable = function(tag, where, el, html){if(!tempTableEl){tempTableEl = document.createElement('div');}var node;var before = null;if(tag == 'td'){if(where == 'afterbegin' || where == 'beforeend'){return;}if(where == 'beforebegin'){before = el;el = el.parentNode;} else{before = el.nextSibling;el = el.parentNode;}node = ieTable(4, trs, html, tre);}else if(tag == 'tr'){if(where == 'beforebegin'){before = el;el = el.parentNode;node = ieTable(3, tbs, html, tbe);} else if(where == 'afterend'){before = el.nextSibling;el = el.parentNode;node = ieTable(3, tbs, html, tbe);} else{if(where == 'afterbegin'){before = el.firstChild;}node = ieTable(4, trs, html, tre);}} else if(tag == 'tbody'){if(where == 'beforebegin'){before = el;el = el.parentNode;node = ieTable(2, ts, html, te);} else if(where == 'afterend'){before = el.nextSibling;el = el.parentNode;node = ieTable(2, ts, html, te);} else{if(where == 'afterbegin'){before = el.firstChild;}node = ieTable(3, tbs, html, tbe);}} else{if(where == 'beforebegin' || where == 'afterend'){return;}if(where == 'afterbegin'){before = el.firstChild;}node = ieTable(2, ts, html, te);}el.insertBefore(node, before);return node;};return {useDom : false,markup : function(o){return createHtml(o);},applyStyles : function(el, styles){if(styles){el = Ext.fly(el);if(typeof styles == "string"){var re = /\s?([a-z\-]*)\:\s?([^;]*);?/gi;var matches;while ((matches = re.exec(styles)) != null){el.setStyle(matches[1], matches[2]);}}else if (typeof styles == "object"){for (var style in styles){el.setStyle(style, styles[style]);}}else if (typeof styles == "function"){Ext.DomHelper.applyStyles(el, styles.call());}}},insertHtml : function(where, el, html){where = where.toLowerCase();if(el.insertAdjacentHTML){if(tableRe.test(el.tagName)){var rs;if(rs = insertIntoTable(el.tagName.toLowerCase(), where, el, html)){return rs;}}switch(where){case "beforebegin":el.insertAdjacentHTML('BeforeBegin', html);return el.previousSibling;case "afterbegin":el.insertAdjacentHTML('AfterBegin', html);return el.firstChild;case "beforeend":el.insertAdjacentHTML('BeforeEnd', html);return el.lastChild;case "afterend":el.insertAdjacentHTML('AfterEnd', html);return el.nextSibling;}throw 'Illegal insertion point -> "' + where + '"';}var range = el.ownerDocument.createRange();var frag;switch(where){case "beforebegin":range.setStartBefore(el);frag = range.createContextualFragment(html);el.parentNode.insertBefore(frag, el);return el.previousSibling;case "afterbegin":if(el.firstChild){range.setStartBefore(el.firstChild);frag = range.createContextualFragment(html);el.insertBefore(frag, el.firstChild);return el.firstChild;}else{el.innerHTML = html;return el.firstChild;}case "beforeend":if(el.lastChild){range.setStartAfter(el.lastChild);frag = range.createContextualFragment(html);el.appendChild(frag);return el.lastChild;}else{el.innerHTML = html;return el.lastChild;}case "afterend":range.setStartAfter(el);frag = range.createContextualFragment(html);el.parentNode.insertBefore(frag, el.nextSibling);return el.nextSibling;}throw 'Illegal insertion point -> "' + where + '"';},insertBefore : function(el, o, returnElement){return this.doInsert(el, o, returnElement, "beforeBegin");},insertAfter : function(el, o, returnElement){return this.doInsert(el, o, returnElement, "afterEnd", "nextSibling");},insertFirst : function(el, o, returnElement){return this.doInsert(el, o, returnElement, "afterBegin", "firstChild");},doInsert : function(el, o, returnElement, pos, sibling){el = Ext.getDom(el);var newNode;if(this.useDom){newNode = createDom(o, null);(sibling === "firstChild" ? el : el.parentNode).insertBefore(newNode, sibling ? el[sibling] : el);}else{var html = createHtml(o);newNode = this.insertHtml(pos, el, html);}return returnElement ? Ext.get(newNode, true) : newNode;},append : function(el, o, returnElement){el = Ext.getDom(el);var newNode;if(this.useDom){newNode = createDom(o, null);el.appendChild(newNode);}else{var html = createHtml(o);newNode = this.insertHtml("beforeEnd", el, html);}return returnElement ? Ext.get(newNode, true) : newNode;},overwrite : function(el, o, returnElement){el = Ext.getDom(el);el.innerHTML = createHtml(o);return returnElement ? Ext.get(el.firstChild, true) : el.firstChild;},createTemplate : function(o){var html = createHtml(o);return new Ext.Template(html);}};}();Ext.Template = function(html){var a = arguments;if(Ext.isArray(html)){html = html.join("");}else if(a.length > 1){var buf = [];for(var i = 0, len = a.length; i < len; i++){if(typeof a[i] == 'object'){Ext.apply(this, a[i]);}else{buf[buf.length] = a[i];}}html = buf.join('');}this.html = html;if(this.compiled){this.compile();}};Ext.Template.prototype = {applyTemplate : function(values){if(this.compiled){return this.compiled(values);}var useF = this.disableFormats !== true;var fm = Ext.util.Format, tpl = this;var fn = function(m, name, format, args){if(format && useF){if(format.substr(0, 5) == "this."){return tpl.call(format.substr(5), values[name], values);}else{if(args){var re = /^\s*['"](.*)["']\s*$/;args = args.split(',');for(var i = 0, len = args.length; i < len; i++){args[i] = args[i].replace(re, "$1");}args = [values[name]].concat(args);}else{args = [values[name]];}return fm[format].apply(fm, args);}}else{return values[name] !== undefined ? values[name] : "";}};return this.html.replace(this.re, fn);},set : function(html, compile){this.html = html;this.compiled = null;if(compile){this.compile();}return this;},disableFormats : false,re : /\{([\w-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,compile : function(){var fm = Ext.util.Format;var useF = this.disableFormats !== true;var sep = Ext.isGecko ? "+" : ",";var fn = function(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+"'";};var body;if(Ext.isGecko){body = "this.compiled = function(values){ return '" +this.html.replace(/\\/g, '\\\\').replace(/(\r\n|\n)/g, '\\n').replace(/'/g, "\\'").replace(this.re, fn) +"';};";}else{body = ["this.compiled = function(values){ return ['"];body.push(this.html.replace(/\\/g, '\\\\').replace(/(\r\n|\n)/g, '\\n').replace(/'/g, "\\'").replace(this.re, fn));body.push("'].join('');};");body = body.join('');}eval(body);return this;},call : function(fnName, value, allValues){return this[fnName](value, allValues);},insertFirst: function(el, values, returnElement){return this.doInsert('afterBegin', el, values, returnElement);},insertBefore: function(el, values, returnElement){return this.doInsert('beforeBegin', el, values, returnElement);},insertAfter : function(el, values, returnElement){return this.doInsert('afterEnd', el, values, returnElement);},append : function(el, values, returnElement){return this.doInsert('beforeEnd', el, values, returnElement);},doInsert : function(where, el, values, returnEl){el = Ext.getDom(el);var newNode = Ext.DomHelper.insertHtml(where, el, this.applyTemplate(values));return returnEl ? Ext.get(newNode, true) : newNode;},overwrite : function(el, values, returnElement){el = Ext.getDom(el);el.innerHTML = this.applyTemplate(values);return returnElement ? Ext.get(el.firstChild, true) : el.firstChild;}};Ext.Template.prototype.apply = Ext.Template.prototype.applyTemplate;Ext.DomHelper.Template = Ext.Template;Ext.Template.from = function(el, config){el = Ext.getDom(el);return new Ext.Template(el.value || el.innerHTML, config || '');};Ext.DomQuery = function(){var cache = {}, simpleCache = {}, valueCache = {};var nonSpace = /\S/;var trimRe = /^\s+|\s+$/g;var tplRe = /\{(\d+)\}/g;var modeRe = /^(\s?[\/>+~]\s?|\s|$)/;var tagTokenRe = /^(#)?([\w-\*]+)/;var nthRe = /(\d*)n\+?(\d*)/, nthRe2 = /\D/;function child(p, index){var i = 0;var n = p.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(d){var n = d.firstChild, ni = -1;while(n){var nx = n.nextSibling;if(n.nodeType == 3 && !nonSpace.test(n.nodeValue)){d.removeChild(n);}else{n.nodeIndex = ++ni;}n = nx;}return this;};function byClassName(c, a, v){if(!v){return c;}var r = [], ri = -1, cn;for(var i = 0, ci; ci = c[i]; i++){if((' '+ci.className+' ').indexOf(v) != -1){r[++ri] = ci;}}return r;};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.children || 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 == "~"){for(var i = 0, n; n = ns[i]; i++){while((n = n.nextSibling) && (n.nodeType != 1 || (tagName == '*' || n.tagName.toLowerCase()!=tagName)));if(n){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 r = [], ri = -1;tagName = tagName.toLowerCase();for(var i = 0, ci; ci = cs[i]; i++){if(ci.nodeType == 1 && ci.tagName.toLowerCase()==tagName){r[++ri] = ci;}}return r;};function byId(cs, attr, id){if(cs.tagName || cs == document){cs = [cs];}if(!id){return cs;}var r = [], ri = -1;for(var i = 0,ci; ci = cs[i]; i++){if(ci && ci.id == id){r[++ri] = ci;return r;}}return r;};function byAttribute(cs, attr, value, op, custom){var r = [], ri = -1, st = custom=="{";var f = Ext.DomQuery.operators[op];for(var i = 0, ci; ci = cs[i]; i++){var a;if(st){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);}if((f && f(a, value)) || (!f && a)){r[++ri] = ci;}}return r;};function byPseudo(cs, name, value){return Ext.DomQuery.pseudos[name](cs, value);};var isIE = window.ActiveXObject ? true : false;eval("var batch = 30803;");var key = 30803;function nodupIEXml(cs){var d = ++key;cs[0].setAttribute("_nodup", d);var 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;for(var i = 0, len = c1.length; i < len; i++){c1[i].setAttribute("_qdiff", d);}var r = [];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;if(!len1){return c2;}if(isIE && c1[0].selectSingleNode){return quickDiffIEXml(c1, c2);}var d = ++key;for(var i = 0; i < len1; i++){c1[i]._qdiff = d;}var r = [];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, null, 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"];var q = path, mode, lq;var tk = Ext.DomQuery.matchers;var tklen = tk.length;var mm;var lmode = q.match(modeRe);if(lmode && lmode[1]){fn[fn.length] = 'mode="'+lmode[1].replace(trimRe, "")+'";';q = q.replace(lmode[1], "");}while(path.substr(0, 1)=="/"){path = path.substr(1);}while(q && lq != q){lq = q;var tm = q.match(tagTokenRe);if(type == "select"){if(tm){if(tm[1] == "#"){fn[fn.length] = 'n = quickId(n, mode, root, "'+tm[2]+'");';}else{fn[fn.length] = 'n = getNodes(n, mode, "'+tm[2]+'");';}q = q.replace(tm[0], "");}else if(q.substr(0, 1) != '@'){fn[fn.length] = 'n = getNodes(n, mode, "*");';}}else{if(tm){if(tm[1] == "#"){fn[fn.length] = 'n = byId(n, null, "'+tm[2]+'");';}else{fn[fn.length] = 'n = byTag(n, "'+tm[2]+'");';}q = q.replace(tm[0], "");}}while(!(mm = q.match(modeRe))){var matched = false;for(var j = 0; j < tklen; j++){var t = tk[j];var m = q.match(t.re);if(m){fn[fn.length] = t.select.replace(tplRe, function(x, i){return m[i];});q = q.replace(m[0], "");matched = true;break;}}if(!matched){throw 'Error parsing selector, parsing failed at "' + q + '"';}}if(mm[1]){fn[fn.length] = 'mode="'+mm[1].replace(trimRe, "")+'";';q = q.replace(mm[1], "");}}fn[fn.length] = "return nodup(n);\n}";eval(fn.join(""));return f;},select : function(path, root, type){if(!root || root == document){root = document;}if(typeof root == "string"){root = document.getElementById(root);}var paths = path.split(",");var results = [];for(var i = 0, len = paths.length; i < len; i++){var p = paths[i].replace(trimRe, "");if(!cache[p]){cache[p] = Ext.DomQuery.compile(p);if(!cache[p]){throw p + " is not a valid selector";}}var result = cache[p](root);if(result && result != document){results = results.concat(result);}}if(paths.length > 1){return nodup(results);}return results;},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);n = n[0] ? n[0] : n;var 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);var 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, null, " {1} ");'}, {re: /^\:([\w-]+)(?:\(((?:[^\s>\/]*|.*?))\))?/,select: 'n = byPseudo(n, "{1}", "{2}");'},{re: /^(?:([\[\{])(?:@)?([\w-]+)\s?(?:(=|.=)\s?['"]?(.*?)["']?)?[\]\}])/,select: 'n = byAttribute(n, "{2}", "{4}", "{3}", "{1}");'}, {re: /^#([\w-]+)/,select: 'n = byId(n, null, "{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;var m = nthRe.exec(a == "even" && "2n" || a == "odd" && "2n+1" || !nthRe2.test(a) && "n+" + a || a);var 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('|');var 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;var 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;var 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;var 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.Observable = function(){if(this.listeners){this.on(this.listeners);delete this.listeners;}};Ext.util.Observable.prototype = {fireEvent : function(){if(this.eventsSuspended !== true){var ce = this.events[arguments[0].toLowerCase()];if(typeof ce == "object"){return ce.fire.apply(ce, Array.prototype.slice.call(arguments, 1));}}return true;},filterOptRe : /^(?:scope|delay|buffer|single)$/,addListener : function(eventName, fn, scope, o){if(typeof eventName == "object"){o = eventName;for(var e in o){if(this.filterOptRe.test(e)){continue;}if(typeof o[e] == "function"){this.addListener(e, o[e], o.scope, o);}else{this.addListener(e, o[e].fn, o[e].scope, o[e]);}}return;}o = (!o || typeof o == "boolean") ? {} : o;eventName = eventName.toLowerCase();var ce = this.events[eventName] || true;if(typeof ce == "boolean"){ce = new Ext.util.Event(this, eventName);this.events[eventName] = ce;}ce.addListener(fn, scope, o);},removeListener : function(eventName, fn, scope){var ce = this.events[eventName.toLowerCase()];if(typeof ce == "object"){ce.removeListener(fn, scope);}},purgeListeners : function(){for(var evt in this.events){if(typeof this.events[evt] == "object"){this.events[evt].clearListeners();}}},relayEvents : function(o, events){var createHandler = function(ename){return function(){return this.fireEvent.apply(this, Ext.combine(ename, Array.prototype.slice.call(arguments, 0)));};};for(var i = 0, len = events.length; i < len; i++){var ename = events[i];if(!this.events[ename]){ this.events[ename] = true; };o.on(ename, createHandler(ename), this);}},addEvents : function(o){if(!this.events){this.events = {};}if(typeof o == 'string'){for(var i = 0, a = arguments, v; v = a[i]; i++){if(!this.events[a[i]]){o[a[i]] = true;}}}else{Ext.applyIf(this.events, o);}},hasListener : function(eventName){var e = this.events[eventName];return typeof e == "object" && e.listeners.length > 0;},suspendEvents : function(){this.eventsSuspended = true;},resumeEvents : function(){this.eventsSuspended = false;},getMethodEvent : function(method){if(!this.methodEvents){this.methodEvents = {};}var e = this.methodEvents[method];if(!e){e = {};this.methodEvents[method] = e;e.originalFn = this[method];e.methodName = method;e.before = [];e.after = [];var returnValue, v, cancel;var obj = this;var makeCall = function(fn, scope, args){if((v = fn.apply(scope || obj, args)) !== undefined){if(typeof v === 'object'){if(v.returnValue !== undefined){returnValue = v.returnValue;}else{returnValue = v;}if(v.cancel === true){cancel = true;}}else if(v === false){cancel = true;}else {returnValue = v;}}}this[method] = function(){returnValue = v = undefined; cancel = false;var args = Array.prototype.slice.call(arguments, 0);for(var i = 0, len = e.before.length; i < len; i++){makeCall(e.before[i].fn, e.before[i].scope, args);if(cancel){return returnValue;}}if((v = e.originalFn.apply(obj, args)) !== undefined){returnValue = v;}for(var i = 0, len = e.after.length; i < len; i++){makeCall(e.after[i].fn, e.after[i].scope, args);if(cancel){return returnValue;}}return returnValue;};}return e;},beforeMethod : function(method, fn, scope){var e = this.getMethodEvent(method);e.before.push({fn: fn, scope: scope});},afterMethod : function(method, fn, scope){var e = this.getMethodEvent(method);e.after.push({fn: fn, scope: scope});},removeMethodListener : function(method, fn, scope){var e = this.getMethodEvent(method);for(var i = 0, len = e.before.length; i < len; i++){if(e.before[i].fn == fn && e.before[i].scope == scope){e.before.splice(i, 1);return;}}for(var i = 0, len = e.after.length; i < len; i++){if(e.after[i].fn == fn && e.after[i].scope == scope){e.after.splice(i, 1);return;}}}};Ext.util.Observable.prototype.on = Ext.util.Observable.prototype.addListener;Ext.util.Observable.prototype.un = Ext.util.Observable.prototype.removeListener;Ext.util.Observable.capture = function(o, fn, scope){o.fireEvent = o.fireEvent.createInterceptor(fn, scope);};Ext.util.Observable.releaseCapture = function(o){o.fireEvent = Ext.util.Observable.prototype.fireEvent;};(function(){var createBuffered = function(h, o, scope){var task = new Ext.util.DelayedTask();return function(){task.delay(o.buffer, h, scope, Array.prototype.slice.call(arguments, 0));};};var createSingle = function(h, e, fn, scope){return function(){e.removeListener(fn, scope);return h.apply(scope, arguments);};};var createDelayed = function(h, o, scope){return function(){var args = Array.prototype.slice.call(arguments, 0);setTimeout(function(){h.apply(scope, args);}, o.delay || 10);};};Ext.util.Event = function(obj, name){this.name = name;this.obj = obj;this.listeners = [];};Ext.util.Event.prototype = {addListener : function(fn, scope, options){scope = scope || this.obj;if(!this.isListening(fn, scope)){var l = this.createListener(fn, scope, options);if(!this.firing){this.listeners.push(l);}else{ this.listeners = this.listeners.slice(0);this.listeners.push(l);}}},createListener : function(fn, scope, o){o = o || {};scope = scope || this.obj;var l = {fn: fn, scope: scope, options: o};var h = fn;if(o.delay){h = createDelayed(h, o, scope);}if(o.single){h = createSingle(h, this, fn, scope);}if(o.buffer){h = createBuffered(h, o, scope);}l.fireFn = h;return l;},findListener : function(fn, scope){scope = scope || this.obj;var ls = this.listeners;for(var i = 0, len = ls.length; i < len; i++){var l = ls[i];if(l.fn == fn && l.scope == scope){return i;}}return -1;},isListening : function(fn, scope){return this.findListener(fn, scope) != -1;},removeListener : function(fn, scope){var index;if((index = this.findListener(fn, scope)) != -1){if(!this.firing){this.listeners.splice(index, 1);}else{this.listeners = this.listeners.slice(0);this.listeners.splice(index, 1);}return true;}return false;},clearListeners : function(){this.listeners = [];},fire : function(){var ls = this.listeners, scope, len = ls.length;if(len > 0){this.firing = true;var args = Array.prototype.slice.call(arguments, 0);for(var i = 0; i < len; i++){var l = ls[i];if(l.fireFn.apply(l.scope||this.obj||window, arguments) === false){this.firing = false;return false;}}this.firing = false;}return true;}};})();Ext.EventManager = function(){var docReadyEvent, docReadyProcId, docReadyState = false;var resizeEvent, resizeTask, textEvent, textSize;var E = Ext.lib.Event;var D = Ext.lib.Dom;var fireDocReady = function(){if(!docReadyState){docReadyState = true;Ext.isReady = true;if(docReadyProcId){clearInterval(docReadyProcId);}if(Ext.isGecko || Ext.isOpera) {document.removeEventListener("DOMContentLoaded", fireDocReady, false);}if(Ext.isIE){var defer = document.getElementById("ie-deferred-loader");if(defer){defer.onreadystatechange = null;defer.parentNode.removeChild(defer);}}if(docReadyEvent){docReadyEvent.fire();docReadyEvent.clearListeners();}}};var initDocReady = function(){docReadyEvent = new Ext.util.Event();if(Ext.isGecko || Ext.isOpera) {document.addEventListener("DOMContentLoaded", fireDocReady, false);}else if(Ext.isIE){document.write("<s"+'cript id="ie-deferred-loader" defer="defer" src="/'+'/:"></s'+"cript>");var defer = document.getElementById("ie-deferred-loader");defer.onreadystatechange = function(){if(this.readyState == "complete"){fireDocReady();}};}else if(Ext.isSafari){docReadyProcId = setInterval(function(){var rs = document.readyState;if(rs == "complete") {fireDocReady();}}, 10);}E.on(window, "load", fireDocReady);};var createBuffered = function(h, o){var task = new Ext.util.DelayedTask(h);return function(e){e = new Ext.EventObjectImpl(e);task.delay(o.buffer, h, null, [e]);};};var createSingle = function(h, el, ename, fn){return function(e){Ext.EventManager.removeListener(el, ename, fn);h(e);};};var createDelayed = function(h, o){return function(e){e = new Ext.EventObjectImpl(e);setTimeout(function(){h(e);}, o.delay || 10);};};var listen = function(element, ename, opt, fn, scope){var o = (!opt || typeof opt == "boolean") ? {} : opt;fn = fn || o.fn; scope = scope || o.scope;var el = Ext.getDom(element);if(!el){throw "Error listening for \"" + ename + '\". Element "' + element + '" doesn\'t exist.';}var h = function(e){e = Ext.EventObject.setEvent(e);var t;if(o.delegate){t = e.getTarget(o.delegate, el);if(!t){return;}}else{t = e.target;}if(o.stopEvent === true){e.stopEvent();}if(o.preventDefault === true){e.preventDefault();}if(o.stopPropagation === true){e.stopPropagation();}if(o.normalized === false){e = e.browserEvent;}fn.call(scope || el, e, t, o);};if(o.delay){h = createDelayed(h, o);}if(o.single){h = createSingle(h, el, ename, fn);}if(o.buffer){h = createBuffered(h, o);}fn._handlers = fn._handlers || [];fn._handlers.push([Ext.id(el), ename, h]);E.on(el, ename, h);if(ename == "mousewheel" && el.addEventListener){el.addEventListener("DOMMouseScroll", h, false);E.on(window, 'unload', function(){el.removeEventListener("DOMMouseScroll", h, false);});}if(ename == "mousedown" && el == document){Ext.EventManager.stoppedMouseDownEvent.addListener(h);}return h;};var stopListening = function(el, ename, fn){var id = Ext.id(el), hds = fn._handlers, hd = fn;if(hds){for(var i = 0, len = hds.length; i < len; i++){var h = hds[i];if(h[0] == id && h[1] == ename){hd = h[2];hds.splice(i, 1);break;}}}E.un(el, ename, hd);el = Ext.getDom(el);if(ename == "mousewheel" && el.addEventListener){el.removeEventListener("DOMMouseScroll", hd, false);}if(ename == "mousedown" && el == document){Ext.EventManager.stoppedMouseDownEvent.removeListener(hd);}};var propRe = /^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/;var pub = {addListener : function(element, eventName, fn, scope, options){if(typeof eventName == "object"){var o = eventName;for(var e in o){if(propRe.test(e)){continue;}if(typeof o[e] == "function"){listen(element, e, o, o[e], o.scope);}else{listen(element, e, o[e]);}}return;}return listen(element, eventName, options, fn, scope);},removeListener : function(element, eventName, fn){return stopListening(element, eventName, fn);},onDocumentReady : function(fn, scope, options){if(docReadyState){docReadyEvent.addListener(fn, scope, options);docReadyEvent.fire();docReadyEvent.clearListeners();return;}if(!docReadyEvent){initDocReady();}docReadyEvent.addListener(fn, scope, options);},onWindowResize : function(fn, scope, options){if(!resizeEvent){resizeEvent = new Ext.util.Event();resizeTask = new Ext.util.DelayedTask(function(){resizeEvent.fire(D.getViewWidth(), D.getViewHeight());});E.on(window, "resize", this.fireWindowResize, this);}resizeEvent.addListener(fn, scope, options);},fireWindowResize : function(){if(resizeEvent){if((Ext.isIE||Ext.isAir) && resizeTask){resizeTask.delay(50);}else{resizeEvent.fire(D.getViewWidth(), D.getViewHeight());}}},onTextResize : function(fn, scope, options){if(!textEvent){textEvent = new Ext.util.Event();var textEl = new Ext.Element(document.createElement('div'));textEl.dom.className = 'x-text-resize';textEl.dom.innerHTML = 'X';textEl.appendTo(document.body);textSize = textEl.dom.offsetHeight;setInterval(function(){if(textEl.dom.offsetHeight != textSize){textEvent.fire(textSize, textSize = textEl.dom.offsetHeight);}}, this.textResizeInterval);}textEvent.addListener(fn, scope, options);},removeResizeListener : function(fn, scope){if(resizeEvent){resizeEvent.removeListener(fn, scope);}},fireResize : function(){if(resizeEvent){resizeEvent.fire(D.getViewWidth(), D.getViewHeight());}},ieDeferSrc : false,textResizeInterval : 50};pub.on = pub.addListener;pub.un = pub.removeListener;pub.stoppedMouseDownEvent = new Ext.util.Event();return pub;}();Ext.onReady = Ext.EventManager.onDocumentReady;Ext.onReady(function(){var bd = Ext.getBody();if(!bd){ return; }var cls = [Ext.isIE ? "ext-ie " + (Ext.isIE6 ? 'ext-ie6' : 'ext-ie7'): Ext.isGecko ? "ext-gecko": Ext.isOpera ? "ext-opera": Ext.isSafari ? "ext-safari" : ""];if(Ext.isMac){cls.push("ext-mac");}if(Ext.isLinux){cls.push("ext-linux");}if(Ext.isBorderBox){cls.push('ext-border-box');}if(Ext.isStrict){var p = bd.dom.parentNode;if(p){p.className += ' ext-strict';}}bd.addClass(cls.join(' '));});Ext.EventObject = function(){var E = Ext.lib.Event;var safariKeys = {63234 : 37,63235 : 39,63232 : 38,63233 : 40,63276 : 33,63277 : 34,63272 : 46,63273 : 36,63275 : 35};var btnMap = Ext.isIE ? {1:0,4:1,2:2} :(Ext.isSafari ? {1:0,2:1,3:2} : {0:0,1:1,2:2});Ext.EventObjectImpl = function(e){if(e){this.setEvent(e.browserEvent || e);}};Ext.EventObjectImpl.prototype = {browserEvent : null,button : -1,shiftKey : false,ctrlKey : false,altKey : false,BACKSPACE : 8,TAB : 9,RETURN : 13,ENTER : 13,SHIFT : 16,CONTROL : 17,ESC : 27,SPACE : 32,PAGEUP : 33,PAGEDOWN : 34,END : 35,HOME : 36,LEFT : 37,UP : 38,RIGHT : 39,DOWN : 40,DELETE : 46,F5 : 116,setEvent : function(e){if(e == this || (e && e.browserEvent)){return e;}this.browserEvent = e;if(e){this.button = e.button ? btnMap[e.button] : (e.which ? e.which-1 : -1);if(e.type == 'click' && this.button == -1){this.button = 0;}this.type = e.type;this.shiftKey = e.shiftKey;this.ctrlKey = e.ctrlKey || e.metaKey;this.altKey = e.altKey;this.keyCode = e.keyCode;this.charCode = e.charCode;this.target = E.getTarget(e);this.xy = E.getXY(e);}else{this.button = -1;this.shiftKey = false;this.ctrlKey = false;this.altKey = false;this.keyCode = 0;this.charCode =0;this.target = null;this.xy = [0, 0];}return this;},stopEvent : function(){if(this.browserEvent){if(this.browserEvent.type == 'mousedown'){Ext.EventManager.stoppedMouseDownEvent.fire(this);}E.stopEvent(this.browserEvent);}},preventDefault : function(){if(this.browserEvent){E.preventDefault(this.browserEvent);}},isNavKeyPress : function(){var k = this.keyCode;k = Ext.isSafari ? (safariKeys[k] || k) : k;return (k >= 33 && k <= 40) || k == this.RETURN || k == this.TAB || k == this.ESC;},isSpecialKey : function(){var k = this.keyCode;return (this.type == 'keypress' && this.ctrlKey) || k == 9 || k == 13 || k == 40 || k == 27 ||(k == 16) || (k == 17) ||(k >= 18 && k <= 20) ||(k >= 33 && k <= 35) ||(k >= 36 && k <= 39) ||(k >= 44 && k <= 45);},stopPropagation : function(){if(this.browserEvent){if(this.browserEvent.type == 'mousedown'){Ext.EventManager.stoppedMouseDownEvent.fire(this);}E.stopPropagation(this.browserEvent);}},getCharCode : function(){return this.charCode || this.keyCode;},getKey : function(){var k = this.keyCode || this.charCode;return Ext.isSafari ? (safariKeys[k] || k) : k;},getPageX : function(){return this.xy[0];},getPageY : function(){return this.xy[1];},getTime : function(){if(this.browserEvent){return E.getTime(this.browserEvent);}return null;},getXY : function(){return this.xy;},getTarget : function(selector, maxDepth, returnEl){var t = Ext.get(this.target);return selector ? t.findParent(selector, maxDepth, returnEl) : (returnEl ? t : this.target);},getRelatedTarget : function(){if(this.browserEvent){return E.getRelatedTarget(this.browserEvent);}return null;},getWheelDelta : function(){var e = this.browserEvent;var delta = 0;if(e.wheelDelta){delta = e.wheelDelta/120;}else if(e.detail){delta = -e.detail/3;}return delta;},hasModifier : function(){return ((this.ctrlKey || this.altKey) || this.shiftKey) ? true : false;},within : function(el, related){var t = this[related ? "getRelatedTarget" : "getTarget"]();return t && Ext.fly(el).contains(t);},getPoint : function(){return new Ext.lib.Point(this.xy[0], this.xy[1]);}};return new Ext.EventObjectImpl();}();(function(){var D = Ext.lib.Dom;var E = Ext.lib.Event;var A = Ext.lib.Anim;var propCache = {};var camelRe = /(-[a-z])/gi;var camelFn = function(m, a){ return a.charAt(1).toUpperCase(); };var view = document.defaultView;Ext.Element = function(element, forceNew){var dom = typeof element == "string" ?document.getElementById(element) : element;if(!dom){ return null;}var id = dom.id;if(forceNew !== true && id && Ext.Element.cache[id]){ return Ext.Element.cache[id];}this.dom = dom;this.id = id || Ext.id(dom);};var El = Ext.Element;El.prototype = {originalDisplay : "",visibilityMode : 1,defaultUnit : "px",setVisibilityMode : function(visMode){this.visibilityMode = visMode;return this;},enableDisplayMode : function(display){this.setVisibilityMode(El.DISPLAY);if(typeof display != "undefined") this.originalDisplay = display;return this;},findParent : function(simpleSelector, maxDepth, returnEl){var p = this.dom, b = document.body, depth = 0, dq = Ext.DomQuery, stopEl;maxDepth = maxDepth || 50;if(typeof maxDepth != "number"){stopEl = Ext.getDom(maxDepth);maxDepth = 10;}while(p && p.nodeType == 1 && depth < maxDepth && p != b && p != stopEl){if(dq.is(p, simpleSelector)){return returnEl ? Ext.get(p) : p;}depth++;p = p.parentNode;}return null;},findParentNode : function(simpleSelector, maxDepth, returnEl){var p = Ext.fly(this.dom.parentNode, '_internal');return p ? p.findParent(simpleSelector, maxDepth, returnEl) : null;},up : function(simpleSelector, maxDepth){return this.findParentNode(simpleSelector, maxDepth, true);},is : function(simpleSelector){return Ext.DomQuery.is(this.dom, simpleSelector);},animate : function(args, duration, onComplete, easing, animType){this.anim(args, {duration: duration, callback: onComplete, easing: easing}, animType);return this;},anim : function(args, opt, animType, defaultDur, defaultEase, cb){animType = animType || 'run';opt = opt || {};var anim = Ext.lib.Anim[animType](this.dom, args,(opt.duration || defaultDur) || .35,(opt.easing || defaultEase) || 'easeOut',function(){Ext.callback(cb, this);Ext.callback(opt.callback, opt.scope || this, [this, opt]);},this);opt.anim = anim;return anim;},preanim : function(a, i){return !a[i] ? false : (typeof a[i] == "object" ? a[i]: {duration: a[i+1], callback: a[i+2], easing: a[i+3]});},clean : function(forceReclean){if(this.isCleaned && forceReclean !== true){return this;}var ns = /\S/;var d = this.dom, n = d.firstChild, ni = -1;while(n){var nx = n.nextSibling;if(n.nodeType == 3 && !ns.test(n.nodeValue)){d.removeChild(n);}else{n.nodeIndex = ++ni;}n = nx;}this.isCleaned = true;return this;},scrollIntoView : function(container, hscroll){var c = Ext.getDom(container) || Ext.getBody().dom;var el = this.dom;var o = this.getOffsetsTo(c),l = o[0] + c.scrollLeft,t = o[1] + c.scrollTop,b = t+el.offsetHeight,r = l+el.offsetWidth;var ch = c.clientHeight;var ct = parseInt(c.scrollTop, 10);var cl = parseInt(c.scrollLeft, 10);var cb = ct + ch;var cr = cl + c.clientWidth;if(el.offsetHeight > ch || t < ct){c.scrollTop = t;}else if(b > cb){c.scrollTop = b-ch;}c.scrollTop = c.scrollTop;if(hscroll !== false){if(el.offsetWidth > c.clientWidth || l < cl){c.scrollLeft = l;}else if(r > cr){c.scrollLeft = r-c.clientWidth;}c.scrollLeft = c.scrollLeft;}return this;},scrollChildIntoView : function(child, hscroll){Ext.fly(child, '_scrollChildIntoView').scrollIntoView(this, hscroll);},autoHeight : function(animate, duration, onComplete, easing){var oldHeight = this.getHeight();this.clip();this.setHeight(1); setTimeout(function(){var height = parseInt(this.dom.scrollHeight, 10); if(!animate){this.setHeight(height);this.unclip();if(typeof onComplete == "function"){onComplete();}}else{this.setHeight(oldHeight); this.setHeight(height, animate, duration, function(){this.unclip();if(typeof onComplete == "function") onComplete();}.createDelegate(this), easing);}}.createDelegate(this), 0);return this;},contains : function(el){if(!el){return false;}return D.isAncestor(this.dom, el.dom ? el.dom : el);},isVisible : function(deep) {var vis = !(this.getStyle("visibility") == "hidden" || this.getStyle("display") == "none");if(deep !== true || !vis){return vis;}var p = this.dom.parentNode;while(p && p.tagName.toLowerCase() != "body"){if(!Ext.fly(p, '_isVisible').isVisible()){return false;}p = p.parentNode;}return true;},select : function(selector, unique){return El.select(selector, unique, this.dom);},query : function(selector, unique){return Ext.DomQuery.select(selector, this.dom);},child : function(selector, returnDom){var n = Ext.DomQuery.selectNode(selector, this.dom);return returnDom ? n : Ext.get(n);},down : function(selector, returnDom){var n = Ext.DomQuery.selectNode(" > " + selector, this.dom);return returnDom ? n : Ext.get(n);},initDD : function(group, config, overrides){var dd = new Ext.dd.DD(Ext.id(this.dom), group, config);return Ext.apply(dd, overrides);},initDDProxy : function(group, config, overrides){var dd = new Ext.dd.DDProxy(Ext.id(this.dom), group, config);return Ext.apply(dd, overrides);},initDDTarget : function(group, config, overrides){var dd = new Ext.dd.DDTarget(Ext.id(this.dom), group, config);return Ext.apply(dd, overrides);},setVisible : function(visible, animate){if(!animate || !A){if(this.visibilityMode == El.DISPLAY){this.setDisplayed(visible);}else{this.fixDisplay();this.dom.style.visibility = visible ? "visible" : "hidden";}}else{var dom = this.dom;var visMode = this.visibilityMode;if(visible){this.setOpacity(.01);this.setVisible(true);}this.anim({opacity: { to: (visible?1:0) }},this.preanim(arguments, 1),null, .35, 'easeIn', function(){if(!visible){if(visMode == El.DISPLAY){dom.style.display = "none";}else{dom.style.visibility = "hidden";}Ext.get(dom).setOpacity(1);}});}return this;},isDisplayed : function() {return this.getStyle("display") != "none";},toggle : function(animate){this.setVisible(!this.isVisible(), this.preanim(arguments, 0));return this;},setDisplayed : function(value) {if(typeof value == "boolean"){value = value ? this.originalDisplay : "none";}this.setStyle("display", value);return this;},focus : function() {try{this.dom.focus();}catch(e){}return this;},blur : function() {try{this.dom.blur();}catch(e){}return this;},addClass : function(className){if(Ext.isArray(className)){for(var i = 0, len = className.length; i < len; i++) {this.addClass(className[i]);}}else{if(className && !this.hasClass(className)){this.dom.className = this.dom.className + " " + className;}}return this;},radioClass : function(className){var siblings = this.dom.parentNode.childNodes;for(var i = 0; i < siblings.length; i++) {var s = siblings[i];if(s.nodeType == 1){Ext.get(s).removeClass(className);}}this.addClass(className);return this;},removeClass : function(className){if(!className || !this.dom.className){return this;}if(Ext.isArray(className)){for(var i = 0, len = className.length; i < len; i++) {this.removeClass(className[i]);}}else{if(this.hasClass(className)){var re = this.classReCache[className];if (!re) {re = new RegExp('(?:^|\\s+)' + className + '(?:\\s+|$)', "g");this.classReCache[className] = re;}this.dom.className =this.dom.className.replace(re, " ");}}return this;},classReCache: {},toggleClass : function(className){if(this.hasClass(className)){this.removeClass(className);}else{this.addClass(className);}return this;},hasClass : function(className){return className && (' '+this.dom.className+' ').indexOf(' '+className+' ') != -1;},replaceClass : function(oldClassName, newClassName){this.removeClass(oldClassName);this.addClass(newClassName);return this;},getStyles : function(){var a = arguments, len = a.length, r = {};for(var i = 0; i < len; i++){r[a[i]] = this.getStyle(a[i]);}return r;},getStyle : function(){return view && view.getComputedStyle ?function(prop){var el = this.dom, v, cs, camel;if(prop == 'float'){prop = "cssFloat";}if(v = el.style[prop]){return v;}if(cs = view.getComputedStyle(el, "")){if(!(camel = propCache[prop])){camel = propCache[prop] = prop.replace(camelRe, camelFn);}return cs[camel];}return null;} :function(prop){var el = this.dom, v, cs, camel;if(prop == 'opacity'){if(typeof el.style.filter == 'string'){var m = el.style.filter.match(/alpha\(opacity=(.*)\)/i);if(m){var fv = parseFloat(m[1]);if(!isNaN(fv)){return fv ? fv / 100 : 0;}}}return 1;}else if(prop == 'float'){prop = "styleFloat";}if(!(camel = propCache[prop])){camel = propCache[prop] = prop.replace(camelRe, camelFn);}if(v = el.style[camel]){return v;}if(cs = el.currentStyle){return cs[camel];}return null;};}(),setStyle : function(prop, value){if(typeof prop == "string"){var camel;if(!(camel = propCache[prop])){camel = propCache[prop] = prop.replace(camelRe, camelFn);}if(camel == 'opacity') {this.setOpacity(value);}else{this.dom.style[camel] = value;}}else{for(var style in prop){if(typeof prop[style] != "function"){this.setStyle(style, prop[style]);}}}return this;},applyStyles : function(style){Ext.DomHelper.applyStyles(this.dom, style);return this;},getX : function(){return D.getX(this.dom);},getY : function(){return D.getY(this.dom);},getXY : function(){return D.getXY(this.dom);},getOffsetsTo : function(el){var o = this.getXY();var e = Ext.fly(el, '_internal').getXY();return [o[0]-e[0],o[1]-e[1]];},setX : function(x, animate){if(!animate || !A){D.setX(this.dom, x);}else{this.setXY([x, this.getY()], this.preanim(arguments, 1));}return this;},setY : function(y, animate){if(!animate || !A){D.setY(this.dom, y);}else{this.setXY([this.getX(), y], this.preanim(arguments, 1));}return this;},setLeft : function(left){this.setStyle("left", this.addUnits(left));return this;},setTop : function(top){this.setStyle("top", this.addUnits(top));return this;},setRight : function(right){this.setStyle("right", this.addUnits(right));return this;},setBottom : function(bottom){this.setStyle("bottom", this.addUnits(bottom));return this;},setXY : function(pos, animate){if(!animate || !A){D.setXY(this.dom, pos);}else{this.anim({points: {to: pos}}, this.preanim(arguments, 1), 'motion');}return this;},setLocation : function(x, y, animate){this.setXY([x, y], this.preanim(arguments, 2));return this;},moveTo : function(x, y, animate){this.setXY([x, y], this.preanim(arguments, 2));return this;},getRegion : function(){return D.getRegion(this.dom);},getHeight : function(contentHeight){var h = this.dom.offsetHeight || 0;h = contentHeight !== true ? h : h-this.getBorderWidth("tb")-this.getPadding("tb");return h < 0 ? 0 : h;},getWidth : function(contentWidth){var w = this.dom.offsetWidth || 0;w = contentWidth !== true ? w : w-this.getBorderWidth("lr")-this.getPadding("lr");return w < 0 ? 0 : w;},getComputedHeight : function(){var h = Math.max(this.dom.offsetHeight, this.dom.clientHeight);if(!h){h = parseInt(this.getStyle('height'), 10) || 0;if(!this.isBorderBox()){h += this.getFrameWidth('tb');}}return h;},getComputedWidth : function(){var w = Math.max(this.dom.offsetWidth, this.dom.clientWidth);if(!w){w = parseInt(this.getStyle('width'), 10) || 0;if(!this.isBorderBox()){w += this.getFrameWidth('lr');}}return w;},getSize : function(contentSize){return {width: this.getWidth(contentSize), height: this.getHeight(contentSize)};},getStyleSize : function(){var w, h, d = this.dom, s = d.style;if(s.width && s.width != 'auto'){w = parseInt(s.width, 10);if(Ext.isBorderBox){w -= this.getFrameWidth('lr');}}if(s.height && s.height != 'auto'){h = parseInt(s.height, 10);if(Ext.isBorderBox){h -= this.getFrameWidth('tb');}}return {width: w || this.getWidth(true), height: h || this.getHeight(true)};},getViewSize : function(){var d = this.dom, doc = document, aw = 0, ah = 0;if(d == doc || d == doc.body){return {width : D.getViewWidth(), height: D.getViewHeight()};}else{return {width : d.clientWidth,height: d.clientHeight};}},getValue : function(asNumber){return asNumber ? parseInt(this.dom.value, 10) : this.dom.value;},adjustWidth : function(width){if(typeof width == "number"){if(this.autoBoxAdjust && !this.isBorderBox()){width -= (this.getBorderWidth("lr") + this.getPadding("lr"));}if(width < 0){width = 0;}}return width;},adjustHeight : function(height){if(typeof height == "number"){if(this.autoBoxAdjust && !this.isBorderBox()){height -= (this.getBorderWidth("tb") + this.getPadding("tb"));}if(height < 0){height = 0;}}return height;},setWidth : function(width, animate){width = this.adjustWidth(width);if(!animate || !A){this.dom.style.width = this.addUnits(width);}else{this.anim({width: {to: width}}, this.preanim(arguments, 1));}return this;},setHeight : function(height, animate){height = this.adjustHeight(height);if(!animate || !A){this.dom.style.height = this.addUnits(height);}else{this.anim({height: {to: height}}, this.preanim(arguments, 1));}return this;},setSize : function(width, height, animate){if(typeof width == "object"){ height = width.height; width = width.width;}width = this.adjustWidth(width); height = this.adjustHeight(height);if(!animate || !A){this.dom.style.width = this.addUnits(width);this.dom.style.height = this.addUnits(height);}else{this.anim({width: {to: width}, height: {to: height}}, this.preanim(arguments, 2));}return this;},setBounds : function(x, y, width, height, animate){if(!animate || !A){this.setSize(width, height);this.setLocation(x, y);}else{width = this.adjustWidth(width); height = this.adjustHeight(height);this.anim({points: {to: [x, y]}, width: {to: width}, height: {to: height}},this.preanim(arguments, 4), 'motion');}return this;},setRegion : function(region, animate){this.setBounds(region.left, region.top, region.right-region.left, region.bottom-region.top, this.preanim(arguments, 1));return this;},addListener : function(eventName, fn, scope, options){Ext.EventManager.on(this.dom, eventName, fn, scope || this, options);},removeListener : function(eventName, fn){Ext.EventManager.removeListener(this.dom, eventName, fn);return this;},removeAllListeners : function(){E.purgeElement(this.dom);return this;},relayEvent : function(eventName, observable){this.on(eventName, function(e){observable.fireEvent(eventName, e);});},setOpacity : function(opacity, animate){if(!animate || !A){var s = this.dom.style;if(Ext.isIE){s.zoom = 1;s.filter = (s.filter || '').replace(/alpha\([^\)]*\)/gi,"") +(opacity == 1 ? "" : " alpha(opacity=" + opacity * 100 + ")");}else{s.opacity = opacity;}}else{this.anim({opacity: {to: opacity}}, this.preanim(arguments, 1), null, .35, 'easeIn');}return this;},getLeft : function(local){if(!local){return this.getX();}else{return parseInt(this.getStyle("left"), 10) || 0;}},getRight : function(local){if(!local){return this.getX() + this.getWidth();}else{return (this.getLeft(true) + this.getWidth()) || 0;}},getTop : function(local) {if(!local){return this.getY();}else{return parseInt(this.getStyle("top"), 10) || 0;}},getBottom : function(local){if(!local){return this.getY() + this.getHeight();}else{return (this.getTop(true) + this.getHeight()) || 0;}},position : function(pos, zIndex, x, y){if(!pos){if(this.getStyle('position') == 'static'){this.setStyle('position', 'relative');}}else{this.setStyle("position", pos);}if(zIndex){this.setStyle("z-index", zIndex);}if(x !== undefined && y !== undefined){this.setXY([x, y]);}else if(x !== undefined){this.setX(x);}else if(y !== undefined){this.setY(y);}},clearPositioning : function(value){value = value ||'';this.setStyle({"left": value,"right": value,"top": value,"bottom": value,"z-index": "","position" : "static"});return this;},getPositioning : function(){var l = this.getStyle("left");var t = this.getStyle("top");return {"position" : this.getStyle("position"),"left" : l,"right" : l ? "" : this.getStyle("right"),"top" : t,"bottom" : t ? "" : this.getStyle("bottom"),"z-index" : this.getStyle("z-index")};},getBorderWidth : function(side){return this.addStyles(side, El.borders);},getPadding : function(side){return this.addStyles(side, El.paddings);},setPositioning : function(pc){this.applyStyles(pc);if(pc.right == "auto"){this.dom.style.right = "";}if(pc.bottom == "auto"){this.dom.style.bottom = "";}return this;},fixDisplay : function(){if(this.getStyle("display") == "none"){this.setStyle("visibility", "hidden");this.setStyle("display", this.originalDisplay); if(this.getStyle("display") == "none"){ this.setStyle("display", "block");}}},setOverflow : function(v){if(v=='auto' && Ext.isMac && Ext.isGecko){ this.dom.style.overflow = 'hidden';(function(){this.dom.style.overflow = 'auto';}).defer(1, this);}else{this.dom.style.overflow = v;}},setLeftTop : function(left, top){this.dom.style.left = this.addUnits(left);this.dom.style.top = this.addUnits(top);return this;},move : function(direction, distance, animate){var xy = this.getXY();direction = direction.toLowerCase();switch(direction){case "l":case "left":this.moveTo(xy[0]-distance, xy[1], this.preanim(arguments, 2));break;case "r":case "right":this.moveTo(xy[0]+distance, xy[1], this.preanim(arguments, 2));break;case "t":case "top":case "up":this.moveTo(xy[0], xy[1]-distance, this.preanim(arguments, 2));break;case "b":case "bottom":case "down":this.moveTo(xy[0], xy[1]+distance, this.preanim(arguments, 2));break;}return this;},clip : function(){if(!this.isClipped){this.isClipped = true;this.originalClip = {"o": this.getStyle("overflow"),"x": this.getStyle("overflow-x"),"y": this.getStyle("overflow-y")};this.setStyle("overflow", "hidden");this.setStyle("overflow-x", "hidden");this.setStyle("overflow-y", "hidden");}return this;},unclip : function(){if(this.isClipped){this.isClipped = false;var o = this.originalClip;if(o.o){this.setStyle("overflow", o.o);}if(o.x){this.setStyle("overflow-x", o.x);}if(o.y){this.setStyle("overflow-y", o.y);}}return this;},getAnchorXY : function(anchor, local, s){var w, h, vp = false;if(!s){var d = this.dom;if(d == document.body || d == document){vp = true;w = D.getViewWidth(); h = D.getViewHeight();}else{w = this.getWidth(); h = this.getHeight();}}else{w = s.width; h = s.height;}var x = 0, y = 0, r = Math.round;switch((anchor || "tl").toLowerCase()){case "c":x = r(w*.5);y = r(h*.5);break;case "t":x = r(w*.5);y = 0;break;case "l":x = 0;y = r(h*.5);break;case "r":x = w;y = r(h*.5);break;case "b":x = r(w*.5);y = h;break;case "tl":x = 0;y = 0;break;case "bl":x = 0;y = h;break;case "br":x = w;y = h;break;case "tr":x = w;y = 0;break;}if(local === true){return [x, y];}if(vp){var sc = this.getScroll();return [x + sc.left, y + sc.top];}var o = this.getXY();return [x+o[0], y+o[1]];},getAlignToXY : function(el, p, o){el = Ext.get(el);if(!el || !el.dom){throw "Element.alignToXY with an element that doesn't exist";}var d = this.dom;var c = false; var p1 = "", p2 = "";o = o || [0,0];if(!p){p = "tl-bl";}else if(p == "?"){p = "tl-bl?";}else if(p.indexOf("-") == -1){p = "tl-" + p;}p = p.toLowerCase();var m = p.match(/^([a-z]+)-([a-z]+)(\?)?$/);if(!m){throw "Element.alignTo with an invalid alignment " + p;}p1 = m[1]; p2 = m[2]; c = !!m[3];var a1 = this.getAnchorXY(p1, true);var a2 = el.getAnchorXY(p2, false);var x = a2[0] - a1[0] + o[0];var y = a2[1] - a1[1] + o[1];if(c){var w = this.getWidth(), h = this.getHeight(), r = el.getRegion();var dw = D.getViewWidth()-5, dh = D.getViewHeight()-5;var p1y = p1.charAt(0), p1x = p1.charAt(p1.length-1);var p2y = p2.charAt(0), p2x = p2.charAt(p2.length-1);var swapY = ((p1y=="t" && p2y=="b") || (p1y=="b" && p2y=="t"));var swapX = ((p1x=="r" && p2x=="l") || (p1x=="l" && p2x=="r"));var doc = document;var scrollX = (doc.documentElement.scrollLeft || doc.body.scrollLeft || 0)+5;var scrollY = (doc.documentElement.scrollTop || doc.body.scrollTop || 0)+5;if((x+w) > dw + scrollX){x = swapX ? r.left-w : dw+scrollX-w;}if(x < scrollX){x = swapX ? r.right : scrollX;}if((y+h) > dh + scrollY){y = swapY ? r.top-h : dh+scrollY-h;}if (y < scrollY){y = swapY ? r.bottom : scrollY;}}return [x,y];},getConstrainToXY : function(){var os = {top:0, left:0, bottom:0, right: 0};return function(el, local, offsets, proposedXY){el = Ext.get(el);offsets = offsets ? Ext.applyIf(offsets, os) : os;var vw, vh, vx = 0, vy = 0;if(el.dom == document.body || el.dom == document){vw = Ext.lib.Dom.getViewWidth();vh = Ext.lib.Dom.getViewHeight();}else{vw = el.dom.clientWidth;vh = el.dom.clientHeight;if(!local){var vxy = el.getXY();vx = vxy[0];vy = vxy[1];}}var s = el.getScroll();vx += offsets.left + s.left;vy += offsets.top + s.top;vw -= offsets.right;vh -= offsets.bottom;var vr = vx+vw;var vb = vy+vh;var xy = proposedXY || (!local ? this.getXY() : [this.getLeft(true), this.getTop(true)]);var x = xy[0], y = xy[1];var w = this.dom.offsetWidth, h = this.dom.offsetHeight;var moved = false;if((x + w) > vr){x = vr - w;moved = true;}if((y + h) > vb){y = vb - h;moved = true;}if(x < vx){x = vx;moved = true;}if(y < vy){y = vy;moved = true;}return moved ? [x, y] : false;};}(),adjustForConstraints : function(xy, parent, offsets){return this.getConstrainToXY(parent || document, false, offsets, xy) || xy;},alignTo : function(element, position, offsets, animate){var xy = this.getAlignToXY(element, position, offsets);this.setXY(xy, this.preanim(arguments, 3));return this;},anchorTo : function(el, alignment, offsets, animate, monitorScroll, callback){var action = function(){this.alignTo(el, alignment, offsets, animate);Ext.callback(callback, this);};Ext.EventManager.onWindowResize(action, this);var tm = typeof monitorScroll;if(tm != 'undefined'){Ext.EventManager.on(window, 'scroll', action, this,{buffer: tm == 'number' ? monitorScroll : 50});}action.call(this); return this;},clearOpacity : function(){if (window.ActiveXObject) {if(typeof this.dom.style.filter == 'string' && (/alpha/i).test(this.dom.style.filter)){this.dom.style.filter = "";}} else {this.dom.style.opacity = "";this.dom.style["-moz-opacity"] = "";this.dom.style["-khtml-opacity"] = "";}return this;},hide : function(animate){this.setVisible(false, this.preanim(arguments, 0));return this;},show : function(animate){this.setVisible(true, this.preanim(arguments, 0));return this;},addUnits : function(size){return Ext.Element.addUnits(size, this.defaultUnit);},update : function(html, loadScripts, callback){if(typeof html == "undefined"){html = "";}if(loadScripts !== true){this.dom.innerHTML = html;if(typeof callback == "function"){callback();}return this;}var id = Ext.id();var dom = this.dom;html += '<span id="' + id + '"></span>';E.onAvailable(id, function(){var hd = document.getElementsByTagName("head")[0];var re = /(?:<script([^>]*)?>)((\n|\r|.)*?)(?:<\/script>)/ig;var srcRe = /\ssrc=([\'\"])(.*?)\1/i;var typeRe = /\stype=([\'\"])(.*?)\1/i;var match;while(match = re.exec(html)){var attrs = match[1];var srcMatch = attrs ? attrs.match(srcRe) : false;if(srcMatch && srcMatch[2]){var s = document.createElement("script");s.src = srcMatch[2];var 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]);}}}var el = document.getElementById(id);if(el){Ext.removeNode(el);}if(typeof callback == "function"){callback();}});dom.innerHTML = html.replace(/(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/ig, "");return this;},load : function(){var um = this.getUpdater();um.update.apply(um, arguments);return this;},getUpdater : function(){if(!this.updateManager){this.updateManager = new Ext.Updater(this);}return this.updateManager;},unselectable : function(){this.dom.unselectable = "on";this.swallowEvent("selectstart", true);this.applyStyles("-moz-user-select:none;-khtml-user-select:none;");this.addClass("x-unselectable");return this;},getCenterXY : function(){return this.getAlignToXY(document, 'c-c');},center : function(centerIn){this.alignTo(centerIn || document, 'c-c');return this;},isBorderBox : function(){return noBoxAdjust[this.dom.tagName.toLowerCase()] || Ext.isBorderBox;},getBox : function(contentBox, local){var xy;if(!local){xy = this.getXY();}else{var left = parseInt(this.getStyle("left"), 10) || 0;var top = parseInt(this.getStyle("top"), 10) || 0;xy = [left, top];}var el = this.dom, w = el.offsetWidth, h = el.offsetHeight, bx;if(!contentBox){bx = {x: xy[0], y: xy[1], 0: xy[0], 1: xy[1], width: w, height: h};}else{var l = this.getBorderWidth("l")+this.getPadding("l");var r = this.getBorderWidth("r")+this.getPadding("r");var t = this.getBorderWidth("t")+this.getPadding("t");var b = this.getBorderWidth("b")+this.getPadding("b");bx = {x: xy[0]+l, y: xy[1]+t, 0: xy[0]+l, 1: xy[1]+t, width: w-(l+r), height: h-(t+b)};}bx.right = bx.x + bx.width;bx.bottom = bx.y + bx.height;return bx;},getFrameWidth : function(sides, onlyContentBox){return onlyContentBox && Ext.isBorderBox ? 0 : (this.getPadding(sides) + this.getBorderWidth(sides));},setBox : function(box, adjust, animate){var w = box.width, h = box.height;if((adjust && !this.autoBoxAdjust) && !this.isBorderBox()){w -= (this.getBorderWidth("lr") + this.getPadding("lr"));h -= (this.getBorderWidth("tb") + this.getPadding("tb"));}this.setBounds(box.x, box.y, w, h, this.preanim(arguments, 2));return this;},repaint : function(){var dom = this.dom;this.addClass("x-repaint");setTimeout(function(){Ext.get(dom).removeClass("x-repaint");}, 1);return this;},getMargins : function(side){if(!side){return {top: parseInt(this.getStyle("margin-top"), 10) || 0,left: parseInt(this.getStyle("margin-left"), 10) || 0,bottom: parseInt(this.getStyle("margin-bottom"), 10) || 0,right: parseInt(this.getStyle("margin-right"), 10) || 0};}else{return this.addStyles(side, El.margins);}},addStyles : function(sides, styles){var val = 0, v, w;for(var i = 0, len = sides.length; i < len; i++){v = this.getStyle(styles[sides.charAt(i)]);if(v){w = parseInt(v, 10);if(w){ val += (w >= 0 ? w : -1 * w); }}}return val;},createProxy : function(config, renderTo, matchBox){config = typeof config == "object" ?config : {tag : "div", cls: config};var proxy;if(renderTo){proxy = Ext.DomHelper.append(renderTo, config, true);}else {proxy = Ext.DomHelper.insertBefore(this.dom, config, true);}if(matchBox){proxy.setBox(this.getBox());}return proxy;},mask : function(msg, msgCls){if(this.getStyle("position") == "static"){this.setStyle("position", "relative");}if(this._maskMsg){this._maskMsg.remove();}if(this._mask){this._mask.remove();}this._mask = Ext.DomHelper.append(this.dom, {cls:"ext-el-mask"}, true);this.addClass("x-masked");this._mask.setDisplayed(true);if(typeof msg == 'string'){this._maskMsg = Ext.DomHelper.append(this.dom, {cls:"ext-el-mask-msg", cn:{tag:'div'}}, true);var mm = this._maskMsg;mm.dom.className = msgCls ? "ext-el-mask-msg " + msgCls : "ext-el-mask-msg";mm.dom.firstChild.innerHTML = msg;mm.setDisplayed(true);mm.center(this);}if(Ext.isIE && !(Ext.isIE7 && Ext.isStrict) && this.getStyle('height') == 'auto'){ this._mask.setSize(this.dom.clientWidth, this.getHeight());}return this._mask;},unmask : function(){if(this._mask){if(this._maskMsg){this._maskMsg.remove();delete this._maskMsg;}this._mask.remove();delete this._mask;}this.removeClass("x-masked");},isMasked : function(){return this._mask && this._mask.isVisible();},createShim : function(){var el = document.createElement('iframe');el.frameBorder = 'no';el.className = 'ext-shim';if(Ext.isIE && Ext.isSecure){el.src = Ext.SSL_SECURE_URL;}var shim = Ext.get(this.dom.parentNode.insertBefore(el, this.dom));shim.autoBoxAdjust = false;return shim;},remove : function(){Ext.removeNode(this.dom);delete El.cache[this.dom.id];},hover : function(overFn, outFn, scope){var preOverFn = function(e){if(!e.within(this, true)){overFn.apply(scope || this, arguments);}};var preOutFn = function(e){if(!e.within(this, true)){outFn.apply(scope || this, arguments);}};this.on("mouseover", preOverFn, this.dom);this.on("mouseout", preOutFn, this.dom);return this;},addClassOnOver : function(className, preventFlicker){this.hover(function(){Ext.fly(this, '_internal').addClass(className);},function(){Ext.fly(this, '_internal').removeClass(className);});return this;},addClassOnFocus : function(className){this.on("focus", function(){Ext.fly(this, '_internal').addClass(className);}, this.dom);this.on("blur", function(){Ext.fly(this, '_internal').removeClass(className);}, this.dom);return this;},addClassOnClick : function(className){var dom = this.dom;this.on("mousedown", function(){Ext.fly(dom, '_internal').addClass(className);var d = Ext.getDoc();var fn = function(){Ext.fly(dom, '_internal').removeClass(className);d.removeListener("mouseup", fn);};d.on("mouseup", fn);});return this;},swallowEvent : function(eventName, preventDefault){var fn = function(e){e.stopPropagation();if(preventDefault){e.preventDefault();}};if(Ext.isArray(eventName)){for(var i = 0, len = eventName.length; i < len; i++){this.on(eventName[i], fn);}return this;}this.on(eventName, fn);return this;},parent : function(selector, returnDom){return this.matchNode('parentNode', 'parentNode', selector, returnDom);},next : function(selector, returnDom){return this.matchNode('nextSibling', 'nextSibling', selector, returnDom);},prev : function(selector, returnDom){return this.matchNode('previousSibling', 'previousSibling', selector, returnDom);},first : function(selector, returnDom){return this.matchNode('nextSibling', 'firstChild', selector, returnDom);},last : function(selector, returnDom){return this.matchNode('previousSibling', 'lastChild', selector, returnDom);},matchNode : function(dir, start, selector, returnDom){var n = this.dom[start];while(n){if(n.nodeType == 1 && (!selector || Ext.DomQuery.is(n, selector))){return !returnDom ? Ext.get(n) : n;}n = n[dir];}return null;},appendChild: function(el){el = Ext.get(el);el.appendTo(this);return this;},createChild: function(config, insertBefore, returnDom){config = config || {tag:'div'};if(insertBefore){return Ext.DomHelper.insertBefore(insertBefore, config, returnDom !== true);}return Ext.DomHelper[!this.dom.firstChild ? 'overwrite' : 'append'](this.dom, config, returnDom !== true);},appendTo: function(el){el = Ext.getDom(el);el.appendChild(this.dom);return this;},insertBefore: function(el){el = Ext.getDom(el);el.parentNode.insertBefore(this.dom, el);return this;},insertAfter: function(el){el = Ext.getDom(el);el.parentNode.insertBefore(this.dom, el.nextSibling);return this;},insertFirst: function(el, returnDom){el = el || {};if(typeof el == 'object' && !el.nodeType && !el.dom){ return this.createChild(el, this.dom.firstChild, returnDom);}else{el = Ext.getDom(el);this.dom.insertBefore(el, this.dom.firstChild);return !returnDom ? Ext.get(el) : el;}},insertSibling: function(el, where, returnDom){var rt;if(Ext.isArray(el)){for(var i = 0, len = el.length; i < len; i++){rt = this.insertSibling(el[i], where, returnDom);}return rt;}where = where ? where.toLowerCase() : 'before';el = el || {};var refNode = where == 'before' ? this.dom : this.dom.nextSibling;if(typeof el == 'object' && !el.nodeType && !el.dom){ if(where == 'after' && !this.dom.nextSibling){rt = Ext.DomHelper.append(this.dom.parentNode, el, !returnDom);}else{rt = Ext.DomHelper[where == 'after' ? 'insertAfter' : 'insertBefore'](this.dom, el, !returnDom);}}else{rt = this.dom.parentNode.insertBefore(Ext.getDom(el), refNode);if(!returnDom){rt = Ext.get(rt);}}return rt;},wrap: function(config, returnDom){if(!config){config = {tag: "div"};}var newEl = Ext.DomHelper.insertBefore(this.dom, config, !returnDom);newEl.dom ? newEl.dom.appendChild(this.dom) : newEl.appendChild(this.dom);return newEl;},replace: function(el){el = Ext.get(el);this.insertBefore(el);el.remove();return this;},replaceWith: function(el){if(typeof el == 'object' && !el.nodeType && !el.dom){ el = this.insertSibling(el, 'before');}else{el = Ext.getDom(el);this.dom.parentNode.insertBefore(el, this.dom);}El.uncache(this.id);this.dom.parentNode.removeChild(this.dom);this.dom = el;this.id = Ext.id(el);El.cache[this.id] = this;return this;},insertHtml : function(where, html, returnEl){var el = Ext.DomHelper.insertHtml(where, this.dom, html);return returnEl ? Ext.get(el) : el;},set : function(o, useSet){var el = this.dom;useSet = typeof useSet == 'undefined' ? (el.setAttribute ? true : false) : useSet;for(var attr in o){if(attr == "style" || typeof o[attr] == "function") continue;if(attr=="cls"){el.className = o["cls"];}else if(o.hasOwnProperty(attr)){if(useSet) el.setAttribute(attr, o[attr]);else el[attr] = o[attr];}}if(o.style){Ext.DomHelper.applyStyles(el, o.style);}return this;},addKeyListener : function(key, fn, scope){var config;if(typeof key != "object" || Ext.isArray(key)){config = {key: key,fn: fn,scope: scope};}else{config = {key : key.key,shift : key.shift,ctrl : key.ctrl,alt : key.alt,fn: fn,scope: scope};}return new Ext.KeyMap(this, config);},addKeyMap : function(config){return new Ext.KeyMap(this, config);},isScrollable : function(){var dom = this.dom;return dom.scrollHeight > dom.clientHeight || dom.scrollWidth > dom.clientWidth;},scrollTo : function(side, value, animate){var prop = side.toLowerCase() == "left" ? "scrollLeft" : "scrollTop";if(!animate || !A){this.dom[prop] = value;}else{var to = prop == "scrollLeft" ? [value, this.dom.scrollTop] : [this.dom.scrollLeft, value];this.anim({scroll: {"to": to}}, this.preanim(arguments, 2), 'scroll');}return this;},scroll : function(direction, distance, animate){if(!this.isScrollable()){return;}var el = this.dom;var l = el.scrollLeft, t = el.scrollTop;var w = el.scrollWidth, h = el.scrollHeight;var cw = el.clientWidth, ch = el.clientHeight;direction = direction.toLowerCase();var scrolled = false;var a = this.preanim(arguments, 2);switch(direction){case "l":case "left":if(w - l > cw){var v = Math.min(l + distance, w-cw);this.scrollTo("left", v, a);scrolled = true;}break;case "r":case "right":if(l > 0){var v = Math.max(l - distance, 0);this.scrollTo("left", v, a);scrolled = true;}break;case "t":case "top":case "up":if(t > 0){var v = Math.max(t - distance, 0);this.scrollTo("top", v, a);scrolled = true;}break;case "b":case "bottom":case "down":if(h - t > ch){var v = Math.min(t + distance, h-ch);this.scrollTo("top", v, a);scrolled = true;}break;}return scrolled;},translatePoints : function(x, y){if(typeof x == 'object' || Ext.isArray(x)){y = x[1]; x = x[0];}var p = this.getStyle('position');var o = this.getXY();var l = parseInt(this.getStyle('left'), 10);var t = parseInt(this.getStyle('top'), 10);if(isNaN(l)){l = (p == "relative") ? 0 : this.dom.offsetLeft;}if(isNaN(t)){t = (p == "relative") ? 0 : this.dom.offsetTop;}return {left: (x - o[0] + l), top: (y - o[1] + t)};},getScroll : function(){var d = this.dom, doc = document;if(d == doc || d == doc.body){var l, t;if(Ext.isIE && Ext.isStrict){l = doc.documentElement.scrollLeft || (doc.body.scrollLeft || 0);t = doc.documentElement.scrollTop || (doc.body.scrollTop || 0);}else{l = window.pageXOffset || (doc.body.scrollLeft || 0);t = window.pageYOffset || (doc.body.scrollTop || 0);}return {left: l, top: t};}else{return {left: d.scrollLeft, top: d.scrollTop};}},getColor : function(attr, defaultValue, prefix){var v = this.getStyle(attr);if(!v || v == "transparent" || v == "inherit") {return defaultValue;}var color = typeof prefix == "undefined" ? "#" : prefix;if(v.substr(0, 4) == "rgb("){var rvs = v.slice(4, v.length -1).split(",");for(var i = 0; i < 3; i++){var h = parseInt(rvs[i]);var s = h.toString(16);if(h < 16){s = "0" + s;}color += s;}} else {if(v.substr(0, 1) == "#"){if(v.length == 4) {for(var i = 1; i < 4; i++){var c = v.charAt(i);color += c + c;}}else if(v.length == 7){color += v.substr(1);}}}return(color.length > 5 ? color.toLowerCase() : defaultValue);},boxWrap : function(cls){cls = cls || 'x-box';var el = Ext.get(this.insertHtml('beforeBegin', String.format('<div class="{0}">'+El.boxMarkup+'</div>', cls)));el.child('.'+cls+'-mc').dom.appendChild(this.dom);return el;},getAttributeNS : Ext.isIE ? function(ns, name){var d = this.dom;var type = typeof d[ns+":"+name];if(type != 'undefined' && type != 'unknown'){return d[ns+":"+name];}return d[name];} : function(ns, name){var d = this.dom;return d.getAttributeNS(ns, name) || d.getAttribute(ns+":"+name) || d.getAttribute(name) || d[name];},getTextWidth : function(text, min, max){return (Ext.util.TextMetrics.measure(this.dom, Ext.value(text, this.dom.innerHTML, true)).width).constrain(min || 0, max || 1000000);}};var ep = El.prototype;ep.on = ep.addListener;ep.mon = ep.addListener;ep.getUpdateManager = ep.getUpdater;ep.un = ep.removeListener;ep.autoBoxAdjust = true;El.unitPattern = /\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i;El.addUnits = function(v, defaultUnit){if(v === "" || v == "auto"){return v;}if(v === undefined){return '';}if(typeof v == "number" || !El.unitPattern.test(v)){return v + (defaultUnit || 'px');}return v;};El.boxMarkup = '<div class="{0}-tl"><div class="{0}-tr"><div class="{0}-tc"></div></div></div><div class="{0}-ml"><div class="{0}-mr"><div class="{0}-mc"></div></div></div><div class="{0}-bl"><div class="{0}-br"><div class="{0}-bc"></div></div></div>';El.VISIBILITY = 1;El.DISPLAY = 2;El.borders = {l: "border-left-width", r: "border-right-width", t: "border-top-width", b: "border-bottom-width"};El.paddings = {l: "padding-left", r: "padding-right", t: "padding-top", b: "padding-bottom"};El.margins = {l: "margin-left", r: "margin-right", t: "margin-top", b: "margin-bottom"};El.cache = {};var docEl;El.get = function(el){var ex, elm, id;if(!el){ return null; }if(typeof el == "string"){ if(!(elm = document.getElementById(el))){return null;}if(ex = El.cache[el]){ex.dom = elm;}else{ex = El.cache[el] = new El(elm);}return ex;}else if(el.tagName){ if(!(id = el.id)){id = Ext.id(el);}if(ex = El.cache[id]){ex.dom = el;}else{ex = El.cache[id] = new El(el);}return ex;}else if(el instanceof El){if(el != docEl){el.dom = document.getElementById(el.id) || el.dom; El.cache[el.id] = el; }return el;}else if(el.isComposite){return el;}else if(Ext.isArray(el)){return El.select(el);}else if(el == document){if(!docEl){var f = function(){};f.prototype = El.prototype;docEl = new f();docEl.dom = document;}return docEl;}return null;};El.uncache = function(el){for(var i = 0, a = arguments, len = a.length; i < len; i++) {if(a[i]){delete El.cache[a[i].id || a[i]];}}};El.garbageCollect = function(){if(!Ext.enableGarbageCollector){clearInterval(El.collectorThread);return;}for(var eid in El.cache){var el = El.cache[eid], d = el.dom;if(!d || !d.parentNode || (!d.offsetParent && !document.getElementById(eid))){delete El.cache[eid];if(d && Ext.enableListenerCollection){E.purgeElement(d);}}}}El.collectorThreadId = setInterval(El.garbageCollect, 30000);var flyFn = function(){};flyFn.prototype = El.prototype;var _cls = new flyFn();El.Flyweight = function(dom){this.dom = dom;};El.Flyweight.prototype = _cls;El.Flyweight.prototype.isFlyweight = true;El._flyweights = {};El.fly = function(el, named){named = named || '_global';el = Ext.getDom(el);if(!el){return null;}if(!El._flyweights[named]){El._flyweights[named] = new El.Flyweight();}El._flyweights[named].dom = el;return El._flyweights[named];};Ext.get = El.get;Ext.fly = El.fly;var noBoxAdjust = Ext.isStrict ? {select:1} : {input:1, select:1, textarea:1};if(Ext.isIE || Ext.isGecko){noBoxAdjust['button'] = 1;}Ext.EventManager.on(window, 'unload', function(){delete El.cache;delete El._flyweights;});})();Ext.enableFx = true;Ext.Fx = {slideIn : function(anchor, o){var el = this.getFxEl();o = o || {};el.queueFx(o, function(){anchor = anchor || "t";this.fixDisplay();var r = this.getFxRestore();var b = this.getBox();this.setSize(b);var wrap = this.fxWrap(r.pos, o, "hidden");var st = this.dom.style;st.visibility = "visible";st.position = "absolute";var after = function(){el.fxUnwrap(wrap, r.pos, o);st.width = r.width;st.height = r.height;el.afterFx(o);};var a, pt = {to: [b.x, b.y]}, bw = {to: b.width}, bh = {to: b.height};switch(anchor.toLowerCase()){case "t":wrap.setSize(b.width, 0);st.left = st.bottom = "0";a = {height: bh};break;case "l":wrap.setSize(0, b.height);st.right = st.top = "0";a = {width: bw};break;case "r":wrap.setSize(0, b.height);wrap.setX(b.right);st.left = st.top = "0";a = {width: bw, points: pt};break;case "b":wrap.setSize(b.width, 0);wrap.setY(b.bottom);st.left = st.top = "0";a = {height: bh, points: pt};break;case "tl":wrap.setSize(0, 0);st.right = st.bottom = "0";a = {width: bw, height: bh};break;case "bl":wrap.setSize(0, 0);wrap.setY(b.y+b.height);st.right = st.top = "0";a = {width: bw, height: bh, points: pt};break;case "br":wrap.setSize(0, 0);wrap.setXY([b.right, b.bottom]);st.left = st.top = "0";a = {width: bw, height: bh, points: pt};break;case "tr":wrap.setSize(0, 0);wrap.setX(b.x+b.width);st.left = st.bottom = "0";a = {width: bw, height: bh, points: pt};break;}this.dom.style.visibility = "visible";wrap.show();arguments.callee.anim = wrap.fxanim(a,o,'motion',.5,'easeOut', after);});return this;},slideOut : function(anchor, o){var el = this.getFxEl();o = o || {};el.queueFx(o, function(){anchor = anchor || "t";var r = this.getFxRestore();var b = this.getBox();this.setSize(b);var wrap = this.fxWrap(r.pos, o, "visible");var st = this.dom.style;st.visibility = "visible";st.position = "absolute";wrap.setSize(b);var after = function(){if(o.useDisplay){el.setDisplayed(false);}else{el.hide();}el.fxUnwrap(wrap, r.pos, o);st.width = r.width;st.height = r.height;el.afterFx(o);};var a, zero = {to: 0};switch(anchor.toLowerCase()){case "t":st.left = st.bottom = "0";a = {height: zero};break;case "l":st.right = st.top = "0";a = {width: zero};break;case "r":st.left = st.top = "0";a = {width: zero, points: {to:[b.right, b.y]}};break;case "b":st.left = st.top = "0";a = {height: zero, points: {to:[b.x, b.bottom]}};break;case "tl":st.right = st.bottom = "0";a = {width: zero, height: zero};break;case "bl":st.right = st.top = "0";a = {width: zero, height: zero, points: {to:[b.x, b.bottom]}};break;case "br":st.left = st.top = "0";a = {width: zero, height: zero, points: {to:[b.x+b.width, b.bottom]}};break;case "tr":st.left = st.bottom = "0";a = {width: zero, height: zero, points: {to:[b.right, b.y]}};break;}arguments.callee.anim = wrap.fxanim(a,o,'motion',.5,"easeOut", after);});return this;},puff : function(o){var el = this.getFxEl();o = o || {};el.queueFx(o, function(){this.clearOpacity();this.show();var r = this.getFxRestore();var st = this.dom.style;var after = function(){if(o.useDisplay){el.setDisplayed(false);}else{el.hide();}el.clearOpacity();el.setPositioning(r.pos);st.width = r.width;st.height = r.height;st.fontSize = '';el.afterFx(o);};var width = this.getWidth();var height = this.getHeight();arguments.callee.anim = this.fxanim({width : {to: this.adjustWidth(width * 2)},height : {to: this.adjustHeight(height * 2)},points : {by: [-(width * .5), -(height * .5)]},opacity : {to: 0},fontSize: {to:200, unit: "%"}},o,'motion',.5,"easeOut", after);});return this;},switchOff : function(o){var el = this.getFxEl();o = o || {};el.queueFx(o, function(){this.clearOpacity();this.clip();var r = this.getFxRestore();var st = this.dom.style;var after = function(){if(o.useDisplay){el.setDisplayed(false);}else{el.hide();}el.clearOpacity();el.setPositioning(r.pos);st.width = r.width;st.height = r.height;el.afterFx(o);};this.fxanim({opacity:{to:0.3}}, null, null, .1, null, function(){this.clearOpacity();(function(){this.fxanim({height:{to:1},points:{by:[0, this.getHeight() * .5]}}, o, 'motion', 0.3, 'easeIn', after);}).defer(100, this);});});return this;},highlight : function(color, o){var el = this.getFxEl();o = o || {};el.queueFx(o, function(){color = color || "ffff9c";var attr = o.attr || "backgroundColor";this.clearOpacity();this.show();var origColor = this.getColor(attr);var restoreColor = this.dom.style[attr];var endColor = (o.endColor || origColor) || "ffffff";var after = function(){el.dom.style[attr] = restoreColor;el.afterFx(o);};var a = {};a[attr] = {from: color, to: endColor};arguments.callee.anim = this.fxanim(a,o,'color',1,'easeIn', after);});return this;},frame : function(color, count, o){var el = this.getFxEl();o = o || {};el.queueFx(o, function(){color = color || "#C3DAF9";if(color.length == 6){color = "#" + color;}count = count || 1;var duration = o.duration || 1;this.show();var b = this.getBox();var animFn = function(){var proxy = Ext.getBody().createChild({style:{visbility:"hidden",position:"absolute","z-index":"35000", border:"0px solid " + color}});var scale = Ext.isBorderBox ? 2 : 1;proxy.animate({top:{from:b.y, to:b.y - 20},left:{from:b.x, to:b.x - 20},borderWidth:{from:0, to:10},opacity:{from:1, to:0},height:{from:b.height, to:(b.height + (20*scale))},width:{from:b.width, to:(b.width + (20*scale))}}, duration, function(){proxy.remove();if(--count > 0){animFn();}else{el.afterFx(o);}});};animFn.call(this);});return this;},pause : function(seconds){var el = this.getFxEl();var o = {};el.queueFx(o, function(){setTimeout(function(){el.afterFx(o);}, seconds * 1000);});return this;},fadeIn : function(o){var el = this.getFxEl();o = o || {};el.queueFx(o, function(){this.setOpacity(0);this.fixDisplay();this.dom.style.visibility = 'visible';var to = o.endOpacity || 1;arguments.callee.anim = this.fxanim({opacity:{to:to}},o, null, .5, "easeOut", function(){if(to == 1){this.clearOpacity();}el.afterFx(o);});});return this;},fadeOut : function(o){var el = this.getFxEl();o = o || {};el.queueFx(o, function(){arguments.callee.anim = this.fxanim({opacity:{to:o.endOpacity || 0}},o, null, .5, "easeOut", function(){if(this.visibilityMode == Ext.Element.DISPLAY || o.useDisplay){this.dom.style.display = "none";}else{this.dom.style.visibility = "hidden";}this.clearOpacity();el.afterFx(o);});});return this;},scale : function(w, h, o){this.shift(Ext.apply({}, o, {width: w,height: h}));return this;},shift : function(o){var el = this.getFxEl();o = o || {};el.queueFx(o, function(){var a = {}, w = o.width, h = o.height, x = o.x, y = o.y, op = o.opacity;if(w !== undefined){a.width = {to: this.adjustWidth(w)};}if(h !== undefined){a.height = {to: this.adjustHeight(h)};}if(x !== undefined || y !== undefined){a.points = {to: [x !== undefined ? x : this.getX(),y !== undefined ? y : this.getY()]};}if(op !== undefined){a.opacity = {to: op};}if(o.xy !== undefined){a.points = {to: o.xy};}arguments.callee.anim = this.fxanim(a,o, 'motion', .35, "easeOut", function(){el.afterFx(o);});});return this;},ghost : function(anchor, o){var el = this.getFxEl();o = o || {};el.queueFx(o, function(){anchor = anchor || "b";var r = this.getFxRestore();var w = this.getWidth(),h = this.getHeight();var st = this.dom.style;var after = function(){if(o.useDisplay){el.setDisplayed(false);}else{el.hide();}el.clearOpacity();el.setPositioning(r.pos);st.width = r.width;st.height = r.height;el.afterFx(o);};var a = {opacity: {to: 0}, points: {}}, pt = a.points;switch(anchor.toLowerCase()){case "t":pt.by = [0, -h];break;case "l":pt.by = [-w, 0];break;case "r":pt.by = [w, 0];break;case "b":pt.by = [0, h];break;case "tl":pt.by = [-w, -h];break;case "bl":pt.by = [-w, h];break;case "br":pt.by = [w, h];break;case "tr":pt.by = [w, -h];break;}arguments.callee.anim = this.fxanim(a,o,'motion',.5,"easeOut", after);});return this;},syncFx : function(){this.fxDefaults = Ext.apply(this.fxDefaults || {}, {block : false,concurrent : true,stopFx : false});return this;},sequenceFx : function(){this.fxDefaults = Ext.apply(this.fxDefaults || {}, {block : false,concurrent : false,stopFx : false});return this;},nextFx : function(){var ef = this.fxQueue[0];if(ef){ef.call(this);}},hasActiveFx : function(){return this.fxQueue && this.fxQueue[0];},stopFx : function(){if(this.hasActiveFx()){var cur = this.fxQueue[0];if(cur && cur.anim && cur.anim.isAnimated()){this.fxQueue = [cur]; cur.anim.stop(true);}}return this;},beforeFx : function(o){if(this.hasActiveFx() && !o.concurrent){if(o.stopFx){this.stopFx();return true;}return false;}return true;},hasFxBlock : function(){var q = this.fxQueue;return q && q[0] && q[0].block;},queueFx : function(o, fn){if(!this.fxQueue){this.fxQueue = [];}if(!this.hasFxBlock()){Ext.applyIf(o, this.fxDefaults);if(!o.concurrent){var run = this.beforeFx(o);fn.block = o.block;this.fxQueue.push(fn);if(run){this.nextFx();}}else{fn.call(this);}}return this;},fxWrap : function(pos, o, vis){var wrap;if(!o.wrap || !(wrap = Ext.get(o.wrap))){var wrapXY;if(o.fixPosition){wrapXY = this.getXY();}var div = document.createElement("div");div.style.visibility = vis;wrap = Ext.get(this.dom.parentNode.insertBefore(div, this.dom));wrap.setPositioning(pos);if(wrap.getStyle("position") == "static"){wrap.position("relative");}this.clearPositioning('auto');wrap.clip();wrap.dom.appendChild(this.dom);if(wrapXY){wrap.setXY(wrapXY);}}return wrap;},fxUnwrap : function(wrap, pos, o){this.clearPositioning();this.setPositioning(pos);if(!o.wrap){wrap.dom.parentNode.insertBefore(this.dom, wrap.dom);wrap.remove();}},getFxRestore : function(){var st = this.dom.style;return {pos: this.getPositioning(), width: st.width, height : st.height};},afterFx : function(o){if(o.afterStyle){this.applyStyles(o.afterStyle);}if(o.afterCls){this.addClass(o.afterCls);}if(o.remove === true){this.remove();}Ext.callback(o.callback, o.scope, [this]);if(!o.concurrent){this.fxQueue.shift();this.nextFx();}},getFxEl : function(){ return Ext.get(this.dom);},fxanim : function(args, opt, animType, defaultDur, defaultEase, cb){animType = animType || 'run';opt = opt || {};var anim = Ext.lib.Anim[animType](this.dom, args,(opt.duration || defaultDur) || .35,(opt.easing || defaultEase) || 'easeOut',function(){Ext.callback(cb, this);},this);opt.anim = anim;return anim;}};Ext.Fx.resize = Ext.Fx.scale;Ext.apply(Ext.Element.prototype, Ext.Fx);Ext.CompositeElement = function(els){this.elements = [];this.addElements(els);};Ext.CompositeElement.prototype = {isComposite: true,addElements : function(els){if(!els) return this;if(typeof els == "string"){els = Ext.Element.selectorFunction(els);}var yels = this.elements;var index = yels.length-1;for(var i = 0, len = els.length; i < len; i++) {yels[++index] = Ext.get(els[i]);}return this;},fill : function(els){this.elements = [];this.add(els);return this;},filter : function(selector){var els = [];this.each(function(el){if(el.is(selector)){els[els.length] = el.dom;}});this.fill(els);return this;},invoke : function(fn, args){var els = this.elements;for(var i = 0, len = els.length; i < len; i++) {Ext.Element.prototype[fn].apply(els[i], args);}return this;},add : function(els){if(typeof els == "string"){this.addElements(Ext.Element.selectorFunction(els));}else if(els.length !== undefined){this.addElements(els);}else{this.addElements([els]);}return this;},each : function(fn, scope){var els = this.elements;for(var i = 0, len = els.length; i < len; i++){if(fn.call(scope || els[i], els[i], this, i) === false) {break;}}return this;},item : function(index){return this.elements[index] || null;},first : function(){return this.item(0);},last : function(){return this.item(this.elements.length-1);},getCount : function(){return this.elements.length;},contains : function(el){return this.indexOf(el) !== -1;},indexOf : function(el){return this.elements.indexOf(Ext.get(el));},removeElement : function(el, removeDom){if(Ext.isArray(el)){for(var i = 0, len = el.length; i < len; i++){this.removeElement(el[i]);}return this;}var index = typeof el == 'number' ? el : this.indexOf(el);if(index !== -1 && this.elements[index]){if(removeDom){var d = this.elements[index];if(d.dom){d.remove();}else{Ext.removeNode(d);}}this.elements.splice(index, 1);}return this;},replaceElement : function(el, replacement, domReplace){var index = typeof el == 'number' ? el : this.indexOf(el);if(index !== -1){if(domReplace){this.elements[index].replaceWith(replacement);}else{this.elements.splice(index, 1, Ext.get(replacement))}}return this;},clear : function(){this.elements = [];}};(function(){Ext.CompositeElement.createCall = function(proto, fnName){if(!proto[fnName]){proto[fnName] = function(){return this.invoke(fnName, arguments);};}};for(var fnName in Ext.Element.prototype){if(typeof Ext.Element.prototype[fnName] == "function"){Ext.CompositeElement.createCall(Ext.CompositeElement.prototype, fnName);}};})();Ext.CompositeElementLite = function(els){Ext.CompositeElementLite.superclass.constructor.call(this, els);this.el = new Ext.Element.Flyweight();};Ext.extend(Ext.CompositeElementLite, Ext.CompositeElement, {addElements : function(els){if(els){if(Ext.isArray(els)){this.elements = this.elements.concat(els);}else{var yels = this.elements;var index = yels.length-1;for(var i = 0, len = els.length; i < len; i++) {yels[++index] = els[i];}}}return this;},invoke : function(fn, args){var els = this.elements;var el = this.el;for(var i = 0, len = els.length; i < len; i++) {el.dom = els[i];Ext.Element.prototype[fn].apply(el, args);}return this;},item : function(index){if(!this.elements[index]){return null;}this.el.dom = this.elements[index];return this.el;},addListener : function(eventName, handler, scope, opt){var els = this.elements;for(var i = 0, len = els.length; i < len; i++) {Ext.EventManager.on(els[i], eventName, handler, scope || els[i], opt);}return this;},each : function(fn, scope){var els = this.elements;var el = this.el;for(var i = 0, len = els.length; i < len; i++){el.dom = els[i];if(fn.call(scope || el, el, this, i) === false){break;}}return this;},indexOf : function(el){return this.elements.indexOf(Ext.getDom(el));},replaceElement : function(el, replacement, domReplace){var index = typeof el == 'number' ? el : this.indexOf(el);if(index !== -1){replacement = Ext.getDom(replacement);if(domReplace){var d = this.elements[index];d.parentNode.insertBefore(replacement, d);Ext.removeNode(d);}this.elements.splice(index, 1, replacement);}return this;}});Ext.CompositeElementLite.prototype.on = Ext.CompositeElementLite.prototype.addListener;if(Ext.DomQuery){Ext.Element.selectorFunction = Ext.DomQuery.select;}Ext.Element.select = function(selector, unique, root){var els;if(typeof selector == "string"){els = Ext.Element.selectorFunction(selector, root);}else if(selector.length !== undefined){els = selector;}else{throw "Invalid selector";}if(unique === true){return new Ext.CompositeElement(els);}else{return new Ext.CompositeElementLite(els);}};Ext.select = Ext.Element.select;Ext.data.Connection = function(config){Ext.apply(this, config);this.addEvents("beforerequest","requestcomplete","requestexception");Ext.data.Connection.superclass.constructor.call(this);};Ext.extend(Ext.data.Connection, Ext.util.Observable, {timeout : 30000,autoAbort:false,disableCaching: true,request : function(o){if(this.fireEvent("beforerequest", this, o) !== false){var p = o.params;if(typeof p == "function"){p = p.call(o.scope||window, o);}if(typeof p == "object"){p = Ext.urlEncode(p);}if(this.extraParams){var extras = Ext.urlEncode(this.extraParams);p = p ? (p + '&' + extras) : extras;}var url = o.url || this.url;if(typeof url == 'function'){url = url.call(o.scope||window, o);}if(o.form){var form = Ext.getDom(o.form);url = url || form.action;var enctype = form.getAttribute("enctype");if(o.isUpload || (enctype && enctype.toLowerCase() == 'multipart/form-data')){return this.doFormUpload(o, p, url);}var f = Ext.lib.Ajax.serializeForm(form);p = p ? (p + '&' + f) : f;}var hs = o.headers;if(this.defaultHeaders){hs = Ext.apply(hs || {}, this.defaultHeaders);if(!o.headers){o.headers = hs;}}var cb = {success: this.handleResponse,failure: this.handleFailure,scope: this,argument: {options: o},timeout : o.timeout || this.timeout};var method = o.method||this.method||(p ? "POST" : "GET");if(method == 'GET' && (this.disableCaching && o.disableCaching !== false) || o.disableCaching === true){url += (url.indexOf('?') != -1 ? '&' : '?') + '_dc=' + (new Date().getTime());}if(typeof o.autoAbort == 'boolean'){if(o.autoAbort){this.abort();}}else if(this.autoAbort !== false){this.abort();}if((method == 'GET' && p) || o.xmlData || o.jsonData){url += (url.indexOf('?') != -1 ? '&' : '?') + p;p = '';}this.transId = Ext.lib.Ajax.request(method, url, cb, p, o);return this.transId;}else{Ext.callback(o.callback, o.scope, [o, null, null]);return null;}},isLoading : function(transId){if(transId){return Ext.lib.Ajax.isCallInProgress(transId);}else{return this.transId ? true : false;}},abort : function(transId){if(transId || this.isLoading()){Ext.lib.Ajax.abort(transId || this.transId);}},handleResponse : function(response){this.transId = false;var options = response.argument.options;response.argument = options ? options.argument : null;this.fireEvent("requestcomplete", this, response, options);Ext.callback(options.success, options.scope, [response, options]);Ext.callback(options.callback, options.scope, [options, true, response]);},handleFailure : function(response, e){this.transId = false;var options = response.argument.options;response.argument = options ? options.argument : null;this.fireEvent("requestexception", this, response, options, e);Ext.callback(options.failure, options.scope, [response, options]);Ext.callback(options.callback, options.scope, [options, false, response]);},doFormUpload : function(o, ps, url){var id = Ext.id();var frame = document.createElement('iframe');frame.id = id;frame.name = id;frame.className = 'x-hidden';if(Ext.isIE){frame.src = Ext.SSL_SECURE_URL;}document.body.appendChild(frame);if(Ext.isIE){document.frames[id].name = id;}var form = Ext.getDom(o.form);form.target = id;form.method = 'POST';form.enctype = form.encoding = 'multipart/form-data';if(url){form.action = url;}var hiddens, hd;if(ps){hiddens = [];ps = Ext.urlDecode(ps, false);for(var k in ps){if(ps.hasOwnProperty(k)){hd = document.createElement('input');hd.type = 'hidden';hd.name = k;hd.value = ps[k];form.appendChild(hd);hiddens.push(hd);}}}function cb(){var r = {responseText : '',responseXML : null};r.argument = o ? o.argument : null;try {var doc;if(Ext.isIE){doc = frame.contentWindow.document;}else {doc = (frame.contentDocument || window.frames[id].document);}if(doc && doc.body){r.responseText = doc.body.innerHTML;}if(doc && doc.XMLDocument){r.responseXML = doc.XMLDocument;}else {r.responseXML = doc;}}catch(e) {}Ext.EventManager.removeListener(frame, 'load', cb, this);this.fireEvent("requestcomplete", this, r, o);Ext.callback(o.success, o.scope, [r, o]);Ext.callback(o.callback, o.scope, [o, true, r]);setTimeout(function(){Ext.removeNode(frame);}, 100);}Ext.EventManager.on(frame, 'load', cb, this);form.submit();if(hiddens){for(var i = 0, len = hiddens.length; i < len; i++){Ext.removeNode(hiddens[i]);}}}});Ext.Ajax = new Ext.data.Connection({autoAbort : false,serializeForm : function(form){return Ext.lib.Ajax.serializeForm(form);}});Ext.Updater = function(el, forceNew){el = Ext.get(el);if(!forceNew && el.updateManager){return el.updateManager;}this.el = el;this.defaultUrl = null;this.addEvents("beforeupdate","update","failure");var d = Ext.Updater.defaults;this.sslBlankUrl = d.sslBlankUrl;this.disableCaching = d.disableCaching;this.indicatorText = d.indicatorText;this.showLoadIndicator = d.showLoadIndicator;this.timeout = d.timeout;this.loadScripts = d.loadScripts;this.transaction = null;this.autoRefreshProcId = null;this.refreshDelegate = this.refresh.createDelegate(this);this.updateDelegate = this.update.createDelegate(this);this.formUpdateDelegate = this.formUpdate.createDelegate(this);if(!this.renderer){this.renderer = new Ext.Updater.BasicRenderer();}Ext.Updater.superclass.constructor.call(this);};Ext.extend(Ext.Updater, Ext.util.Observable, {getEl : function(){return this.el;},update : function(url, params, callback, discardUrl){if(this.fireEvent("beforeupdate", this.el, url, params) !== false){var method = this.method, cfg, callerScope;if(typeof url == "object"){cfg = url;url = cfg.url;params = params || cfg.params;callback = callback || cfg.callback;discardUrl = discardUrl || cfg.discardUrl;callerScope = cfg.scope;if(typeof cfg.method != "undefined"){method = cfg.method;};if(typeof cfg.nocache != "undefined"){this.disableCaching = cfg.nocache;};if(typeof cfg.text != "undefined"){this.indicatorText = '<div class="loading-indicator">'+cfg.text+"</div>";};if(typeof cfg.scripts != "undefined"){this.loadScripts = cfg.scripts;};if(typeof cfg.timeout != "undefined"){this.timeout = cfg.timeout;};}this.showLoading();if(!discardUrl){this.defaultUrl = url;}if(typeof url == "function"){url = url.call(this);}method = method || (params ? "POST" : "GET");if(method == "GET"){url = this.prepareUrl(url);}var o = Ext.apply(cfg ||{}, {url : url,params: (typeof params == "function" && callerScope) ? params.createDelegate(callerScope) : params,success: this.processSuccess,failure: this.processFailure,scope: this,callback: undefined,timeout: (this.timeout*1000),argument: {"options": cfg,"url": url,"form": null,"callback": callback,"scope": callerScope || window,"params": params}});this.transaction = Ext.Ajax.request(o);}},formUpdate : function(form, url, reset, callback){if(this.fireEvent("beforeupdate", this.el, form, url) !== false){if(typeof url == "function"){url = url.call(this);}form = Ext.getDom(form)this.transaction = Ext.Ajax.request({form: form,url:url,success: this.processSuccess,failure: this.processFailure,scope: this,timeout: (this.timeout*1000),argument: {"url": url,"form": form,"callback": callback,"reset": reset}});this.showLoading.defer(1, this);}},refresh : function(callback){if(this.defaultUrl == null){return;}this.update(this.defaultUrl, null, callback, true);},startAutoRefresh : function(interval, url, params, callback, refreshNow){if(refreshNow){this.update(url || this.defaultUrl, params, callback, true);}if(this.autoRefreshProcId){clearInterval(this.autoRefreshProcId);}this.autoRefreshProcId = setInterval(this.update.createDelegate(this, [url || this.defaultUrl, params, callback, true]), interval*1000);},stopAutoRefresh : function(){if(this.autoRefreshProcId){clearInterval(this.autoRefreshProcId);delete this.autoRefreshProcId;}},isAutoRefreshing : function(){return this.autoRefreshProcId ? true : false;},showLoading : function(){if(this.showLoadIndicator){this.el.update(this.indicatorText);}},prepareUrl : function(url){if(this.disableCaching){var append = "_dc=" + (new Date().getTime());if(url.indexOf("?") !== -1){url += "&" + append;}else{url += "?" + append;}}return url;},processSuccess : function(response){this.transaction = null;if(response.argument.form && response.argument.reset){try{response.argument.form.reset();}catch(e){}}if(this.loadScripts){this.renderer.render(this.el, response, this,this.updateComplete.createDelegate(this, [response]));}else{this.renderer.render(this.el, response, this);this.updateComplete(response);}},updateComplete : function(response){this.fireEvent("update", this.el, response);if(typeof response.argument.callback == "function"){response.argument.callback.call(response.argument.scope, this.el, true, response, response.argument.options);}},processFailure : function(response){this.transaction = null;this.fireEvent("failure", this.el, response);if(typeof response.argument.callback == "function"){response.argument.callback.call(response.argument.scope, this.el, false, response, response.argument.options);}},setRenderer : function(renderer){this.renderer = renderer;},getRenderer : function(){return this.renderer;},setDefaultUrl : function(defaultUrl){this.defaultUrl = defaultUrl;},abort : function(){if(this.transaction){Ext.Ajax.abort(this.transaction);}},isUpdating : function(){if(this.transaction){return Ext.Ajax.isLoading(this.transaction);}return false;}});Ext.Updater.defaults = {timeout : 30,loadScripts : false,sslBlankUrl : (Ext.SSL_SECURE_URL || "javascript:false"),disableCaching : false,showLoadIndicator : true,indicatorText : '<div class="loading-indicator">Loading...</div>'};Ext.Updater.updateElement = function(el, url, params, options){var um = Ext.get(el).getUpdater();Ext.apply(um, options);um.update(url, params, options ? options.callback : null);};Ext.Updater.update = Ext.Updater.updateElement;Ext.Updater.BasicRenderer = function(){};Ext.Updater.BasicRenderer.prototype = {render : function(el, response, updateManager, callback){el.update(response.responseText, updateManager.loadScripts, callback);}};Ext.UpdateManager = Ext.Updater;Date.parseFunctions = {count:0};Date.parseRegexes = [];Date.formatFunctions = {count:0};Date.prototype.dateFormat = function(format) {if (Date.formatFunctions[format] == null) {Date.createNewFormat(format);}var func = Date.formatFunctions[format];return this[func]();};Date.prototype.format = Date.prototype.dateFormat;Date.createNewFormat = function(format) {var funcName = "format" + Date.formatFunctions.count++;Date.formatFunctions[format] = funcName;var code = "Date.prototype." + funcName + " = function(){return ";var special = false;var ch = '';for (var i = 0; i < format.length; ++i) {ch = format.charAt(i);if (!special && ch == "\\") {special = true;}else if (special) {special = false;code += "'" + String.escape(ch) + "' + ";}else {code += Date.getFormatCode(ch);}}eval(code.substring(0, code.length - 3) + ";}");};Date.getFormatCode = function(character) {switch (character) {case "d":return "String.leftPad(this.getDate(), 2, '0') + ";case "D":return "Date.getShortDayName(this.getDay()) + "; case "j":return "this.getDate() + ";case "l":return "Date.dayNames[this.getDay()] + ";case "N":return "(this.getDay() ? this.getDay() : 7) + ";case "S":return "this.getSuffix() + ";case "w":return "this.getDay() + ";case "z":return "this.getDayOfYear() + ";case "W":return "String.leftPad(this.getWeekOfYear(), 2, '0') + ";case "F":return "Date.monthNames[this.getMonth()] + ";case "m":return "String.leftPad(this.getMonth() + 1, 2, '0') + ";case "M":return "Date.getShortMonthName(this.getMonth()) + "; case "n":return "(this.getMonth() + 1) + ";case "t":return "this.getDaysInMonth() + ";case "L":return "(this.isLeapYear() ? 1 : 0) + ";case "o":return "(this.getFullYear() + (this.getWeekOfYear() == 1 && this.getMonth() > 0 ? +1 : (this.getWeekOfYear() >= 52 && this.getMonth() < 11 ? -1 : 0))) + ";case "Y":return "this.getFullYear() + ";case "y":return "('' + this.getFullYear()).substring(2, 4) + ";case "a":return "(this.getHours() < 12 ? 'am' : 'pm') + ";case "A":return "(this.getHours() < 12 ? 'AM' : 'PM') + ";case "g":return "((this.getHours() % 12) ? this.getHours() % 12 : 12) + ";case "G":return "this.getHours() + ";case "h":return "String.leftPad((this.getHours() % 12) ? this.getHours() % 12 : 12, 2, '0') + ";case "H":return "String.leftPad(this.getHours(), 2, '0') + ";case "i":return "String.leftPad(this.getMinutes(), 2, '0') + ";case "s":return "String.leftPad(this.getSeconds(), 2, '0') + ";case "u":return "String.leftPad(this.getMilliseconds(), 3, '0') + ";case "O":return "this.getGMTOffset() + ";case "P":return "this.getGMTOffset(true) + ";case "T":return "this.getTimezone() + ";case "Z":return "(this.getTimezoneOffset() * -60) + ";case "c":for (var df = Date.getFormatCode, c = "Y-m-dTH:i:sP", code = "", i = 0, l = c.length; i < l; ++i) {var e = c.charAt(i);code += e == "T" ? "'T' + " : df(e); }return code;case "U":return "Math.round(this.getTime() / 1000) + ";default:return "'" + String.escape(character) + "' + ";}};Date.parseDate = function(input, format) {if (Date.parseFunctions[format] == null) {Date.createParser(format);}var func = Date.parseFunctions[format];return Date[func](input);};Date.createParser = function(format) {var funcName = "parse" + Date.parseFunctions.count++;var regexNum = Date.parseRegexes.length;var currentGroup = 1;Date.parseFunctions[format] = funcName;var code = "Date." + funcName + " = function(input){\n"+ "var y = -1, m = -1, d = -1, h = -1, i = -1, s = -1, ms = -1, o, z, u, v;\n"+ "input = String(input);var d = new Date();\n"+ "y = d.getFullYear();\n"+ "m = d.getMonth();\n"+ "d = d.getDate();\n"+ "var results = input.match(Date.parseRegexes[" + regexNum + "]);\n"+ "if (results && results.length > 0) {";var regex = "";var special = false;var ch = '';for (var i = 0; i < format.length; ++i) {ch = format.charAt(i);if (!special && ch == "\\") {special = true;}else if (special) {special = false;regex += String.escape(ch);}else {var obj = Date.formatCodeToRegex(ch, currentGroup);currentGroup += obj.g;regex += obj.s;if (obj.g && obj.c) {code += obj.c;}}}code += "if (u)\n"+ "{v = new Date(u * 1000);}" + "else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0 && ms >= 0)\n"+ "{v = new Date(y, m, d, h, i, s, ms);}\n"+ "else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n"+ "{v = new Date(y, m, d, h, i, s);}\n"+ "else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n"+ "{v = new Date(y, m, d, h, i);}\n"+ "else if (y >= 0 && m >= 0 && d > 0 && h >= 0)\n"+ "{v = new Date(y, m, d, h);}\n"+ "else if (y >= 0 && m >= 0 && d > 0)\n"+ "{v = new Date(y, m, d);}\n"+ "else if (y >= 0 && m >= 0)\n"+ "{v = new Date(y, m);}\n"+ "else if (y >= 0)\n"+ "{v = new Date(y);}\n"+ "}return (v && (z || o))?\n" + " (z ? v.add(Date.SECOND, (v.getTimezoneOffset() * 60) + (z*1)) :\n" + " v.add(Date.HOUR, (v.getGMTOffset() / 100) + (o / -100))) : v\n" + ";}";Date.parseRegexes[regexNum] = new RegExp("^" + regex + "$", "i");eval(code);};Date.formatCodeToRegex = function(character, currentGroup) {switch (character) {case "d":return {g:1,c:"d = parseInt(results[" + currentGroup + "], 10);\n",s:"(\\d{2})"}; case "D":for (var a = [], i = 0; i < 7; a.push(Date.getShortDayName(i)), ++i); return {g:0,c:null,s:"(?:" + a.join("|") +")"};case "j":return {g:1,c:"d = parseInt(results[" + currentGroup + "], 10);\n",s:"(\\d{1,2})"}; case "l":return {g:0,c:null,s:"(?:" + Date.dayNames.join("|") + ")"};case "N":return {g:0,c:null,s:"[1-7]"}; case "S":return {g:0,c:null,s:"(?:st|nd|rd|th)"};case "w":return {g:0,c:null,s:"[0-6]"}; case "z":return {g:0,c:null,s:"(?:\\d{1,3}"}; case "W":return {g:0,c:null,s:"(?:\\d{2})"}; case "F":return {g:1,c:"m = parseInt(Date.getMonthNumber(results[" + currentGroup + "]), 10);\n", s:"(" + Date.monthNames.join("|") + ")"};case "m":return {g:1,c:"m = parseInt(results[" + currentGroup + "], 10) - 1;\n",s:"(\\d{2})"}; case "M":for (var a = [], i = 0; i < 12; a.push(Date.getShortMonthName(i)), ++i); return {g:1,c:"m = parseInt(Date.getMonthNumber(results[" + currentGroup + "]), 10);\n", s:"(" + a.join("|") + ")"};case "n":return {g:1,c:"m = parseInt(results[" + currentGroup + "], 10) - 1;\n",s:"(\\d{1,2})"}; case "t":return {g:0,c:null,s:"(?:\\d{2})"}; case "L":return {g:0,c:null,s:"(?:1|0)"};case "o":case "Y":return {g:1,c:"y = parseInt(results[" + currentGroup + "], 10);\n",s:"(\\d{4})"}; case "y":return {g:1,c:"var ty = parseInt(results[" + currentGroup + "], 10);\n"+ "y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"}; case "a":return {g:1,c:"if (results[" + currentGroup + "] == 'am') {\n"+ "if (h == 12) { h = 0; }\n"+ "} else { if (h < 12) { h += 12; }}",s:"(am|pm)"};case "A":return {g:1,c:"if (results[" + currentGroup + "] == 'AM') {\n"+ "if (h == 12) { h = 0; }\n"+ "} else { if (h < 12) { h += 12; }}",s:"(AM|PM)"};case "g":case "G":return {g:1,c:"h = parseInt(results[" + currentGroup + "], 10);\n",s:"(\\d{1,2})"}; case "h":case "H":return {g:1,c:"h = parseInt(results[" + currentGroup + "], 10);\n",s:"(\\d{2})"}; case "i":return {g:1,c:"i = parseInt(results[" + currentGroup + "], 10);\n",s:"(\\d{2})"}; case "s":return {g:1,c:"s = parseInt(results[" + currentGroup + "], 10);\n",s:"(\\d{2})"}; case "u":return {g:1,c:"ms = parseInt(results[" + currentGroup + "], 10);\n",s:"(\\d{3})"}; case "O":return {g:1,c:["o = results[", currentGroup, "];\n","var sn = o.substring(0,1);\n", "var hr = o.substring(1,3)*1 + Math.floor(o.substring(3,5) / 60);\n", "var mn = o.substring(3,5) % 60;\n", "o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))?\n", " (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n"].join(""),s: "([+\-]\\d{4})"}; case "P":return {g:1,c:["o = results[", currentGroup, "];\n","var sn = o.substring(0,1);\n", "var hr = o.substring(1,3)*1 + Math.floor(o.substring(4,6) / 60);\n", "var mn = o.substring(4,6) % 60;\n", "o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))?\n", " (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n"].join(""),s: "([+\-]\\d{2}:\\d{2})"}; case "T":return {g:0,c:null,s:"[A-Z]{1,4}"}; case "Z":return {g:1,c:"z = results[" + currentGroup + "] * 1;\n" + "z = (-43200 <= z && z <= 50400)? z : null;\n",s:"([+\-]?\\d{1,5})"}; case "c":var df = Date.formatCodeToRegex, calc = [];var arr = [df("Y", 1), df("m", 2), df("d", 3), df("h", 4), df("i", 5), df("s", 6), df("P", 7)];for (var i = 0, l = arr.length; i < l; ++i) {calc.push(arr[i].c);}return {g:1,c:calc.join(""),s:arr[0].s + "-" + arr[1].s + "-" + arr[2].s + "T" + arr[3].s + ":" + arr[4].s + ":" + arr[5].s + arr[6].s};case "U":return {g:1,c:"u = parseInt(results[" + currentGroup + "], 10);\n",s:"(-?\\d+)"}; default:return {g:0,c:null,s:Ext.escapeRe(character)};}};Date.prototype.getTimezone = function() {return this.toString().replace(/^.* (?:\((.*)\)|([A-Z]{1,4})(?:[\-+][0-9]{4})?(?: -?\d+)?)$/, "$1$2").replace(/[^A-Z]/g, "");};Date.prototype.getGMTOffset = function(colon) {return (this.getTimezoneOffset() > 0 ? "-" : "+")+ String.leftPad(Math.abs(Math.floor(this.getTimezoneOffset() / 60)), 2, "0")+ (colon ? ":" : "")+ String.leftPad(this.getTimezoneOffset() % 60, 2, "0");};Date.prototype.getDayOfYear = function() {var num = 0;Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28;for (var i = 0; i < this.getMonth(); ++i) {num += Date.daysInMonth[i];}return num + this.getDate() - 1;};Date.prototype.getWeekOfYear = function() {var ms1d = 864e5; var ms7d = 7 * ms1d; var DC3 = Date.UTC(this.getFullYear(), this.getMonth(), this.getDate() + 3) / ms1d; var AWN = Math.floor(DC3 / 7); var Wyr = new Date(AWN * ms7d).getUTCFullYear();return AWN - Math.floor(Date.UTC(Wyr, 0, 7) / ms7d) + 1;};Date.prototype.isLeapYear = function() {var year = this.getFullYear();return !!((year & 3) == 0 && (year % 100 || (year % 400 == 0 && year)));};Date.prototype.getFirstDayOfMonth = function() {var day = (this.getDay() - (this.getDate() - 1)) % 7;return (day < 0) ? (day + 7) : day;};Date.prototype.getLastDayOfMonth = function() {var day = (this.getDay() + (Date.daysInMonth[this.getMonth()] - this.getDate())) % 7;return (day < 0) ? (day + 7) : day;};Date.prototype.getFirstDateOfMonth = function() {return new Date(this.getFullYear(), this.getMonth(), 1);};Date.prototype.getLastDateOfMonth = function() {return new Date(this.getFullYear(), this.getMonth(), this.getDaysInMonth());};Date.prototype.getDaysInMonth = function() {Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28;return Date.daysInMonth[this.getMonth()];};Date.prototype.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";}};Date.daysInMonth = [31,28,31,30,31,30,31,31,30,31,30,31];Date.monthNames =["January","February","March","April","May","June","July","August","September","October","November","December"];Date.getShortMonthName = function(month) {return Date.monthNames[month].substring(0, 3);}Date.dayNames =["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];Date.getShortDayName = function(day) {return Date.dayNames[day].substring(0, 3);}Date.y2kYear = 50;Date.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};Date.getMonthNumber = function(name) {return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];}Date.prototype.clone = function() {return new Date(this.getTime());};Date.prototype.clearTime = function(clone){if(clone){return this.clone().clearTime();}this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);return this;};if(Ext.isSafari){Date.brokenSetMonth = Date.prototype.setMonth;Date.prototype.setMonth = function(num){if(num <= -1){var n = Math.ceil(-num);var back_year = Math.ceil(n/12);var month = (n % 12) ? 12 - n % 12 : 0 ;this.setFullYear(this.getFullYear() - back_year);return Date.brokenSetMonth.call(this, month);} else {return Date.brokenSetMonth.apply(this, arguments);}};}Date.MILLI = "ms";Date.SECOND = "s";Date.MINUTE = "mi";Date.HOUR = "h";Date.DAY = "d";Date.MONTH = "mo";Date.YEAR = "y";Date.prototype.add = function(interval, value){var d = this.clone();if (!interval || value === 0) return d;switch(interval.toLowerCase()){case Date.MILLI:d.setMilliseconds(this.getMilliseconds() + value);break;case Date.SECOND:d.setSeconds(this.getSeconds() + value);break;case Date.MINUTE:d.setMinutes(this.getMinutes() + value);break;case Date.HOUR:d.setHours(this.getHours() + value);break;case Date.DAY:d.setDate(this.getDate() + value);break;case Date.MONTH:var day = this.getDate();if(day > 28){day = Math.min(day, this.getFirstDateOfMonth().add('mo', value).getLastDateOfMonth().getDate());}d.setDate(day);d.setMonth(this.getMonth() + value);break;case Date.YEAR:d.setFullYear(this.getFullYear() + value);break;}return d;};Date.prototype.between = function(start, end){var t = this.getTime();return start.getTime() <= t && t <= end.getTime();}Ext.util.DelayedTask = function(fn, scope, args){var id = null, d, t;var call = function(){var now = new Date().getTime();if(now - t >= d){clearInterval(id);id = null;fn.apply(scope, args || []);}};this.delay = function(delay, newFn, newScope, newArgs){if(id && delay != d){this.cancel();}d = delay;t = new Date().getTime();fn = newFn || fn;scope = newScope || scope;args = newArgs || args;if(!id){id = setInterval(call, d);}};this.cancel = function(){if(id){clearInterval(id);id = null;}};};Ext.util.TaskRunner = function(interval){interval = interval || 10;var tasks = [], removeQueue = [];var id = 0;var running = false;var stopThread = function(){running = false;clearInterval(id);id = 0;};var startThread = function(){if(!running){running = true;id = setInterval(runTasks, interval);}};var removeTask = function(t){removeQueue.push(t);if(t.onStop){t.onStop.apply(t.scope || t);}};var runTasks = function(){if(removeQueue.length > 0){for(var i = 0, len = removeQueue.length; i < len; i++){tasks.remove(removeQueue[i]);}removeQueue = [];if(tasks.length < 1){stopThread();return;}}var now = new Date().getTime();for(var i = 0, len = tasks.length; i < len; ++i){var t = tasks[i];var itime = now - t.taskRunTime;if(t.interval <= itime){var rt = t.run.apply(t.scope || t, t.args || [++t.taskRunCount]);t.taskRunTime = now;if(rt === false || t.taskRunCount === t.repeat){removeTask(t);return;}}if(t.duration && t.duration <= (now - t.taskStartTime)){removeTask(t);}}};this.start = function(task){tasks.push(task);task.taskStartTime = new Date().getTime();task.taskRunTime = 0;task.taskRunCount = 0;startThread();return task;};this.stop = function(task){removeTask(task);return task;};this.stopAll = function(){stopThread();for(var i = 0, len = tasks.length; i < len; i++){if(tasks[i].onStop){tasks[i].onStop();}}tasks = [];removeQueue = [];};};Ext.TaskMgr = new Ext.util.TaskRunner();Ext.util.MixedCollection = function(allowFunctions, keyFn){this.items = [];this.map = {};this.keys = [];this.length = 0;this.addEvents("clear","add","replace","remove","sort");this.allowFunctions = allowFunctions === true;if(keyFn){this.getKey = keyFn;}Ext.util.MixedCollection.superclass.constructor.call(this);};Ext.extend(Ext.util.MixedCollection, Ext.util.Observable, {allowFunctions : false,add : function(key, o){if(arguments.length == 1){o = arguments[0];key = this.getKey(o);}if(typeof key == "undefined" || key === null){this.length++;this.items.push(o);this.keys.push(null);}else{var old = this.map[key];if(old){return this.replace(key, o);}this.length++;this.items.push(o);this.map[key] = o;this.keys.push(key);}this.fireEvent("add", this.length-1, o, key);return o;},getKey : function(o){return o.id;},replace : function(key, o){if(arguments.length == 1){o = arguments[0];key = this.getKey(o);}var old = this.item(key);if(typeof key == "undefined" || key === null || typeof old == "undefined"){return this.add(key, o);}var index = this.indexOfKey(key);this.items[index] = o;this.map[key] = o;this.fireEvent("replace", key, old, o);return o;},addAll : function(objs){if(arguments.length > 1 || Ext.isArray(objs)){var args = arguments.length > 1 ? arguments : objs;for(var i = 0, len = args.length; i < len; i++){this.add(args[i]);}}else{for(var key in objs){if(this.allowFunctions || typeof objs[key] != "function"){this.add(key, objs[key]);}}}},each : function(fn, scope){var items = [].concat(this.items);for(var i = 0, len = items.length; i < len; i++){if(fn.call(scope || items[i], items[i], i, len) === false){break;}}},eachKey : function(fn, scope){for(var i = 0, len = this.keys.length; i < len; i++){fn.call(scope || window, this.keys[i], this.items[i], i, len);}},find : function(fn, scope){for(var i = 0, len = this.items.length; i < len; i++){if(fn.call(scope || window, this.items[i], this.keys[i])){return this.items[i];}}return null;},insert : function(index, key, o){if(arguments.length == 2){o = arguments[1];key = this.getKey(o);}if(index >= this.length){return this.add(key, o);}this.length++;this.items.splice(index, 0, o);if(typeof key != "undefined" && key != null){this.map[key] = o;}this.keys.splice(index, 0, key);this.fireEvent("add", index, o, key);return o;},remove : function(o){return this.removeAt(this.indexOf(o));},removeAt : function(index){if(index < this.length && index >= 0){this.length--;var o = this.items[index];this.items.splice(index, 1);var key = this.keys[index];if(typeof key != "undefined"){delete this.map[key];}this.keys.splice(index, 1);this.fireEvent("remove", o, key);return o;}return false;},removeKey : function(key){return this.removeAt(this.indexOfKey(key));},getCount : function(){return this.length;},indexOf : function(o){return this.items.indexOf(o);},indexOfKey : function(key){return this.keys.indexOf(key);},item : function(key){var item = typeof this.map[key] != "undefined" ? this.map[key] : this.items[key];return typeof item != 'function' || this.allowFunctions ? item : null;},itemAt : function(index){return this.items[index];},key : function(key){return this.map[key];},contains : function(o){return this.indexOf(o) != -1;},containsKey : function(key){return typeof this.map[key] != "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(property, dir, fn){var dsc = String(dir).toUpperCase() == "DESC" ? -1 : 1;fn = fn || function(a, b){return a-b;};var c = [], k = this.keys, items = this.items;for(var i = 0, len = items.length; i < len; i++){c[c.length] = {key: k[i], value: items[i], index: i};}c.sort(function(a, b){var v = fn(a[property], b[property]) * dsc;if(v == 0){v = (a.index < b.index ? -1 : 1);}return v;});for(var i = 0, len = c.length; i < len; i++){items[i] = c[i].value;k[i] = c[i].key;}this.fireEvent("sort", this);},sort : function(dir, fn){this._sort("value", dir, fn);},keySort : function(dir, fn){this._sort("key", dir, fn || function(a, b){return String(a).toUpperCase()-String(b).toUpperCase();});},getRange : function(start, end){var items = this.items;if(items.length < 1){return [];}start = start || 0;end = Math.min(typeof end == "undefined" ? this.length-1 : end, this.length-1);var r = [];if(start <= end){for(var i = start; i <= end; i++) {r[r.length] = items[i];}}else{for(var i = start; i >= end; i--) {r[r.length] = items[i];}}return r;},filter : function(property, value, anyMatch, caseSensitive){if(Ext.isEmpty(value, false)){return this.clone();}value = this.createValueMatcher(value, anyMatch, caseSensitive);return this.filterBy(function(o){return o && value.test(o[property]);});},filterBy : function(fn, scope){var r = new Ext.util.MixedCollection();r.getKey = this.getKey;var k = this.keys, it = this.items;for(var i = 0, len = it.length; i < len; i++){if(fn.call(scope||this, it[i], k[i])){r.add(k[i], it[i]);}}return r;},findIndex : function(property, value, start, anyMatch, caseSensitive){if(Ext.isEmpty(value, false)){return -1;}value = this.createValueMatcher(value, anyMatch, caseSensitive);return this.findIndexBy(function(o){return o && value.test(o[property]);}, null, start);},findIndexBy : function(fn, scope, start){var k = this.keys, it = this.items;for(var i = (start||0), len = it.length; i < len; i++){if(fn.call(scope||this, it[i], k[i])){return i;}}if(typeof start == 'number' && start > 0){for(var i = 0; i < start; i++){if(fn.call(scope||this, it[i], k[i])){return i;}}}return -1;},createValueMatcher : function(value, anyMatch, caseSensitive){if(!value.exec){value = String(value);value = new RegExp((anyMatch === true ? '' : '^') + Ext.escapeRe(value), caseSensitive ? '' : 'i');}return value;},clone : function(){var r = new Ext.util.MixedCollection();var k = this.keys, it = this.items;for(var i = 0, len = it.length; i < len; i++){r.add(k[i], it[i]);}r.getKey = this.getKey;return r;}});Ext.util.MixedCollection.prototype.get = Ext.util.MixedCollection.prototype.item;Ext.util.JSON = new (function(){var useHasOwn = {}.hasOwnProperty ? true : false;var pad = function(n) {return n < 10 ? "0" + n : n;};var m = {"\b": '\\b',"\t": '\\t',"\n": '\\n',"\f": '\\f',"\r": '\\r','"' : '\\"',"\\": '\\\\'};var 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 + '"';};var 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("");};var 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(o){if(typeof o == "undefined" || o === null){return "null";}else if(Ext.isArray(o)){return encodeArray(o);}else if(Ext.isDate(o)){return encodeDate(o);}else if(typeof o == "string"){return encodeString(o);}else if(typeof o == "number"){return isFinite(o) ? String(o) : "null";}else if(typeof o == "boolean"){return String(o);}else {var a = ["{"], b, i, v;for (i in o) {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(this.encode(i), ":",v === null ? "null" : this.encode(v));b = true;}}}a.push("}");return a.join("");}};this.decode = function(json){return eval("(" + json + ')');};})();Ext.encode = Ext.util.JSON.encode;Ext.decode = Ext.util.JSON.decode;Ext.util.Format = function(){var trimRe = /^\s+|\s+$/g;return {ellipsis : function(value, len){if(value && value.length > len){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(/</g, "<").replace(/"/g, """);},htmlDecode : function(value){return !value ? value : String(value).replace(/&/g, "&").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('.');var whole = ps[0];var sub = ps[1] ? '.'+ ps[1] : '.00';var 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);};},stripTagsRE : /<\/?[^>]+>/gi,stripTags : function(v){return !v ? v : String(v).replace(this.stripTagsRE, "");},stripScriptsRe : /(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/ig,stripScripts : function(v){return !v ? v : String(v).replace(this.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);}}()};}();Ext.XTemplate = function(){Ext.XTemplate.superclass.constructor.apply(this, arguments);var s = this.html;s = ['<tpl>', s, '</tpl>'].join('');var re = /<tpl\b[^>]*>((?:(?=([^<]+))\2|<(?!tpl\b[^>]*>))*?)<\/tpl>/;var nameRe = /^<tpl\b[^>]*?for="(.*?)"/;var ifRe = /^<tpl\b[^>]*?if="(.*?)"/;var execRe = /^<tpl\b[^>]*?exec="(.*?)"/;var m, id = 0;var tpls = [];while(m = s.match(re)){var m2 = m[0].match(nameRe);var m3 = m[0].match(ifRe);var m4 = m[0].match(execRe);var exp = null, fn = null, exec = null;var name = m2 && m2[1] ? m2[1] : '';if(m3){exp = m3 && m3[1] ? m3[1] : null;if(exp){fn = new Function('values', 'parent', 'xindex', 'xcount', 'with(values){ return '+(Ext.util.Format.htmlDecode(exp))+'; }');}}if(m4){exp = m4 && m4[1] ? m4[1] : null;if(exp){exec = new Function('values', 'parent', 'xindex', 'xcount', 'with(values){ '+(Ext.util.Format.htmlDecode(exp))+'; }');}}if(name){switch(name){case '.': name = new Function('values', 'parent', 'with(values){ return values; }'); break;case '..': name = new Function('values', 'parent', 'with(values){ return parent; }'); break;default: name = new Function('values', 'parent', 'with(values){ return '+name+'; }');}}tpls.push({id: id,target: name,exec: exec,test: fn,body: m[1]||''});s = s.replace(m[0], '{xtpl'+ id + '}');++id;}for(var i = tpls.length-1; i >= 0; --i){this.compileTpl(tpls[i]);}this.master = tpls[tpls.length-1];this.tpls = tpls;};Ext.extend(Ext.XTemplate, Ext.Template, {re : /\{([\w-\.\#]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?(\s?[\+\-\*\\]\s?[\d\.\+\-\*\\\(\)]+)?\}/g,codeRe : /\{\[((?:\\\]|.|\n)*?)\]\}/g,applySubTemplate : function(id, values, parent, xindex, xcount){var t = this.tpls[id];if(t.test && !t.test.call(this, values, parent, xindex, xcount)){return '';}if(t.exec && t.exec.call(this, values, parent, xindex, xcount)){return '';}var vs = t.target ? t.target.call(this, values, parent) : values;parent = t.target ? values : parent;if(t.target && Ext.isArray(vs)){var buf = [];for(var i = 0, len = vs.length; i < len; i++){buf[buf.length] = t.compiled.call(this, vs[i], parent, i+1, len);}return buf.join('');}return t.compiled.call(this, vs, parent, xindex, xcount);},compileTpl : function(tpl){var fm = Ext.util.Format;var useF = this.disableFormats !== true;var sep = Ext.isGecko ? "+" : ",";var fn = function(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+"'";};var codeFn = function(m, code){return "'"+ sep +'('+code+')'+sep+"'";};var body;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;},apply : function(values){return this.master.compiled.call(this, values, {}, 1, 1);},applyTemplate : function(values){return this.master.compiled.call(this, values, {}, 1, 1);},compile : function(){return this;}});Ext.XTemplate.from = function(el){el = Ext.getDom(el);return new Ext.XTemplate(el.value || el.innerHTML);};Ext.util.CSS = function(){var rules = null;var doc = document;var camelRe = /(-[a-z])/gi;var camelFn = function(m, a){ return a.charAt(1).toUpperCase(); };return {createStyleSheet : function(cssText, id){var ss;var head = doc.getElementsByTagName("head")[0];var rules = doc.createElement("style");rules.setAttribute("type", "text/css");if(id){rules.setAttribute("id", id);}if(Ext.isIE){head.appendChild(rules);ss = rules.styleSheet;ss.cssText = cssText;}else{try{rules.appendChild(doc.createTextNode(cssText));}catch(e){rules.cssText = cssText;}head.appendChild(rules);ss = rules.styleSheet ? rules.styleSheet : (rules.sheet || doc.styleSheets[doc.styleSheets.length-1]);}this.cacheStyleSheet(ss);return ss;},removeStyleSheet : function(id){var existing = doc.getElementById(id);if(existing){existing.parentNode.removeChild(existing);}},swapStyleSheet : function(id, url){this.removeStyleSheet(id);var ss = doc.createElement("link");ss.setAttribute("rel", "stylesheet");ss.setAttribute("type", "text/css");ss.setAttribute("id", id);ss.setAttribute("href", url);doc.getElementsByTagName("head")[0].appendChild(ss);},refreshCache : function(){return this.getRules(true);},cacheStyleSheet : function(ss){if(!rules){rules = {};}try{var ssRules = ss.cssRules || ss.rules;for(var j = ssRules.length-1; j >= 0; --j){rules[ssRules[j].selectorText] = ssRules[j];}}catch(e){}},getRules : function(refreshCache){if(rules == null || refreshCache){rules = {};var ds = doc.styleSheets;for(var i =0, len = ds.length; i < len; i++){try{this.cacheStyleSheet(ds[i]);}catch(e){}}}return rules;},getRule : function(selector, refreshCache){var rs = this.getRules(refreshCache);if(!Ext.isArray(selector)){return rs[selector];}for(var i = 0; i < selector.length; i++){if(rs[selector[i]]){return rs[selector[i]];}}return null;},updateRule : function(selector, property, value){if(!Ext.isArray(selector)){var rule = this.getRule(selector);if(rule){rule.style[property.replace(camelRe, camelFn)] = value;return true;}}else{for(var i = 0; i < selector.length; i++){if(this.updateRule(selector[i], property, value)){return true;}}}return false;}};}();Ext.util.ClickRepeater = function(el, config){this.el = Ext.get(el);this.el.unselectable();Ext.apply(this, config);this.addEvents("mousedown","click","mouseup");this.el.on("mousedown", this.handleMouseDown, this);if(this.preventDefault || this.stopDefault){this.el.on("click", function(e){if(this.preventDefault){e.preventDefault();}if(this.stopDefault){e.stopEvent();}}, this);}if(this.handler){this.on("click", this.handler, this.scope || this);}Ext.util.ClickRepeater.superclass.constructor.call(this);};Ext.extend(Ext.util.ClickRepeater, Ext.util.Observable, {interval : 20,delay: 250,preventDefault : true,stopDefault : false,timer : 0,handleMouseDown : function(){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);this.fireEvent("click", this);if (this.accelerate) {this.delay = 400;}this.timer = this.click.defer(this.delay || this.interval, this);},click : function(){this.fireEvent("click", this);this.timer = this.click.defer(this.accelerate ?this.easeOutExpo(this.mousedownTime.getElapsed(),400,-390,12000) :this.interval, this);},easeOutExpo : function (t, b, c, d) {return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;},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);if(this.pressClass){this.el.addClass(this.pressClass);}this.click();},handleMouseUp : function(){clearTimeout(this.timer);this.el.un("mouseover", this.handleMouseReturn);this.el.un("mouseout", this.handleMouseOut);Ext.getDoc().un("mouseup", this.handleMouseUp);this.el.removeClass(this.pressClass);this.fireEvent("mouseup", this);}});Ext.KeyNav = function(el, config){this.el = Ext.get(el);Ext.apply(this, config);if(!this.disabled){this.disabled = true;this.enable();}};Ext.KeyNav.prototype = {disabled : false,defaultEventAction: "stopEvent",forceKeyDown : false,prepareEvent : function(e){var k = e.getKey();var h = this.keyToHandler[k];if(Ext.isSafari && h && k >= 37 && k <= 40){e.stopEvent();}},relay : function(e){var k = e.getKey();var h = this.keyToHandler[k];if(h && this[h]){if(this.doRelay(e, this[h], h) !== true){e[this.defaultEventAction]();}}},doRelay : function(e, h, hname){return h.call(this.scope || this, e);},enter : false,left : false,right : false,up : false,down : false,tab : false,esc : false,pageUp : false,pageDown : false,del : false,home : false,end : 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"},enable: function(){if(this.disabled){if(this.forceKeyDown || Ext.isIE || Ext.isAir){this.el.on("keydown", this.relay, this);}else{this.el.on("keydown", this.prepareEvent, this);this.el.on("keypress", this.relay, this);}this.disabled = false;}},disable: function(){if(!this.disabled){if(this.forceKeyDown || Ext.isIE || Ext.isAir){this.el.un("keydown", this.relay);}else{this.el.un("keydown", this.prepareEvent);this.el.un("keypress", this.relay);}this.disabled = true;}}};Ext.KeyMap = function(el, config, eventName){this.el = Ext.get(el);this.eventName = eventName || "keydown";this.bindings = [];if(config){this.addBinding(config);}this.enable();};Ext.KeyMap.prototype = {stopEvent : false,addBinding : function(config){if(Ext.isArray(config)){for(var i = 0, len = config.length; i < len; i++){this.addBinding(config[i]);}return;}var keyCode = config.key,shift = config.shift,ctrl = config.ctrl,alt = config.alt,fn = config.fn || config.handler,scope = config.scope;if(typeof keyCode == "string"){var ks = [];var keyString = keyCode.toUpperCase();for(var j = 0, len = keyString.length; j < len; j++){ks.push(keyString.charCodeAt(j));}keyCode = ks;}var keyArray = Ext.isArray(keyCode);var handler = function(e){if((!shift || e.shiftKey) && (!ctrl || e.ctrlKey) && (!alt || e.altKey)){var k = e.getKey();if(keyArray){for(var i = 0, len = keyCode.length; i < len; i++){if(keyCode[i] == k){if(this.stopEvent){e.stopEvent();}fn.call(scope || window, k, e);return;}}}else{if(k == keyCode){if(this.stopEvent){e.stopEvent();}fn.call(scope || window, k, e);}}}};this.bindings.push(handler);},on : function(key, fn, scope){var keyCode, shift, ctrl, alt;if(typeof key == "object" && !Ext.isArray(key)){keyCode = key.key;shift = key.shift;ctrl = key.ctrl;alt = key.alt;}else{keyCode = key;}this.addBinding({key: keyCode,shift: shift,ctrl: ctrl,alt: alt,fn: fn,scope: scope})},handleKeyDown : function(e){if(this.enabled){var b = this.bindings;for(var i = 0, len = b.length; i < len; i++){b[i].call(this, e);}}},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;}}};Ext.util.TextMetrics = function(){var shared;return {measure : function(el, text, fixedWidth){if(!shared){shared = Ext.util.TextMetrics.Instance(el, fixedWidth);}shared.bind(el);shared.setFixedWidth(fixedWidth || 'auto');return shared.getSize(text);},createInstance : function(el, fixedWidth){return Ext.util.TextMetrics.Instance(el, fixedWidth);}};}();Ext.util.TextMetrics.Instance = function(bindTo, fixedWidth){var ml = new Ext.Element(document.createElement('div'));document.body.appendChild(ml.dom);ml.position('absolute');ml.setLeftTop(-1000, -1000);ml.hide();if(fixedWidth){ml.setWidth(fixedWidth);}var instance = {getSize : function(text){ml.update(text);var s = ml.getSize();ml.update('');return s;},bind : function(el){ml.setStyle(Ext.fly(el).getStyles('font-size','font-style', 'font-weight', 'font-family','line-height'));},setFixedWidth : function(width){ml.setWidth(width);},getWidth : function(text){ml.dom.style.width = 'auto';return this.getSize(text).width;},getHeight : function(text){return this.getSize(text).height;}};instance.bind(bindTo);return instance;};Ext.Element.measureText = Ext.util.TextMetrics.measure;(function() {var Event=Ext.EventManager;var Dom=Ext.lib.Dom;Ext.dd.DragDrop = function(id, sGroup, config) {if(id) {this.init(id, sGroup, config);}};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; },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(x, y) { },startDrag: function(x, y) { },b4Drag: function(e) { },onDrag: function(e) { },onDragEnter: function(e, id) { },b4DragOver: function(e) { },onDragOver: function(e, id) { },b4DragOut: function(e) { },onDragOut: function(e, id) { },b4DragDrop: function(e) { },onDragDrop: function(e, id) { },onInvalidDrop: function(e) { },b4EndDrag: function(e) { },endDrag: function(e) { },b4MouseDown: function(e) { },onMouseDown: function(e) { },onMouseUp: function(e) { },onAvailable: function () {},defaultPadding : {left:0, right:0, top:0, bottom:0},constrainTo : function(constrainTo, pad, inContent){if(typeof pad == "number"){pad = {left: pad, right:pad, top:pad, bottom:pad};}pad = pad || this.defaultPadding;var b = Ext.get(this.getEl()).getBox();var ce = Ext.get(constrainTo);var s = ce.getScroll();var c, cd = ce.dom;if(cd == document.body){c = { x: s.left, y: s.top, width: Ext.lib.Dom.getViewWidth(), height: Ext.lib.Dom.getViewHeight()};}else{var xy = ce.getXY();c = {x : xy[0]+s.left, y: xy[1]+s.top, width: cd.clientWidth, height: cd.clientHeight};}var topSpace = b.y - c.y;var leftSpace = b.x - c.x;this.resetConstraints();this.setXConstraint(leftSpace - (pad.left||0),c.width - leftSpace - b.width - (pad.right||0),this.xTickSize);this.setYConstraint(topSpace - (pad.top||0),c.height - topSpace - b.height - (pad.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(id, sGroup, config) {this.initTarget(id, sGroup, config);Event.on(this.id, "mousedown", this.handleMouseDown, this);},initTarget: function(id, sGroup, config) {this.config = config || {};this.DDM = Ext.dd.DDM;this.groups = {};if (typeof id !== "string") {id = Ext.id(id);}this.id = id;this.addToGroup((sGroup) ? sGroup : "default");this.handleElId = id;this.setDragElId(id);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(iTop, iRight, iBot, iLeft) {if (!iRight && 0 !== iRight) {this.padding = [iTop, iTop, iTop, iTop];} else if (!iBot && 0 !== iBot) {this.padding = [iTop, iRight, iTop, iRight];} else {this.padding = [iTop, iRight, iBot, iLeft];}},setInitPosition: function(diffX, diffY) {var el = this.getEl();if (!this.DDM.verifyEl(el)) {return;}var dx = diffX || 0;var dy = diffY || 0;var p = Dom.getXY( el );this.initPageX = p[0] - dx;this.initPageY = p[1] - dy;this.lastPageX = p[0];this.lastPageY = p[1];this.setStartPosition(p);},setStartPosition: function(pos) {var p = pos || Dom.getXY( this.getEl() );this.deltaSetXY = null;this.startPageX = p[0];this.startPageY = p[1];},addToGroup: function(sGroup) {this.groups[sGroup] = true;this.DDM.regDragDrop(this, sGroup);},removeFromGroup: function(sGroup) {if (this.groups[sGroup]) {delete this.groups[sGroup];}this.DDM.removeDDFromGroup(this, sGroup);},setDragElId: function(id) {this.dragElId = id;},setHandleElId: function(id) {if (typeof id !== "string") {id = Ext.id(id);}this.handleElId = id;this.DDM.regHandle(this.id, id);},setOuterHandleElId: function(id) {if (typeof id !== "string") {id = Ext.id(id);}Event.on(id, "mousedown",this.handleMouseDown, this);this.setHandleElId(id);this.hasOuterHandles = true;},unreg: function() {Event.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(e, oDD){if (this.primaryButtonOnly && e.button != 0) {return;}if (this.isLocked()) {return;}this.DDM.refreshCache(this.groups);var pt = new Ext.lib.Point(Ext.lib.Event.getPageX(e), Ext.lib.Event.getPageY(e));if (!this.hasOuterHandles && !this.DDM.isOverTarget(pt, this) ) {} else {if (this.clickValidator(e)) {this.setStartPosition();this.b4MouseDown(e);this.onMouseDown(e);this.DDM.handleMouseDown(e, this);this.DDM.stopEvent(e);} else {}}},clickValidator: function(e) {var target = e.getTarget();return ( this.isValidHandleChild(target) &&(this.id == this.handleElId ||this.DDM.handleWasClicked(target, this.id)) );},addInvalidHandleType: function(tagName) {var type = tagName.toUpperCase();this.invalidHandleTypes[type] = type;},addInvalidHandleId: function(id) {if (typeof id !== "string") {id = Ext.id(id);}this.invalidHandleIds[id] = id;},addInvalidHandleClass: function(cssClass) {this.invalidHandleClasses.push(cssClass);},removeInvalidHandleType: function(tagName) {var type = tagName.toUpperCase();delete this.invalidHandleTypes[type];},removeInvalidHandleId: function(id) {if (typeof id !== "string") {id = Ext.id(id);}delete this.invalidHandleIds[id];},removeInvalidHandleClass: function(cssClass) {for (var i=0, len=this.invalidHandleClasses.length; i<len; ++i) {if (this.invalidHandleClasses[i] == cssClass) {delete this.invalidHandleClasses[i];}}},isValidHandleChild: function(node) {var valid = true;var nodeName;try {nodeName = node.nodeName.toUpperCase();} catch(e) {nodeName = node.nodeName;}valid = valid && !this.invalidHandleTypes[nodeName];valid = valid && !this.invalidHandleIds[node.id];for (var i=0, len=this.invalidHandleClasses.length; valid && i<len; ++i) {valid = !Dom.hasClass(node, this.invalidHandleClasses[i]);}return valid;},setXTicks: function(iStartX, iTickSize) {this.xTicks = [];this.xTickSize = iTickSize;var tickMap = {};for (var i = this.initPageX; i >= this.minX; i = i - iTickSize) {if (!tickMap[i]) {this.xTicks[this.xTicks.length] = i;tickMap[i] = true;}}for (i = this.initPageX; i <= this.maxX; i = i + iTickSize) {if (!tickMap[i]) {this.xTicks[this.xTicks.length] = i;tickMap[i] = true;}}this.xTicks.sort(this.DDM.numericSort) ;},setYTicks: function(iStartY, iTickSize) {this.yTicks = [];this.yTickSize = iTickSize;var tickMap = {};for (var i = this.initPageY; i >= this.minY; i = i - iTickSize) {if (!tickMap[i]) {this.yTicks[this.yTicks.length] = i;tickMap[i] = true;}}for (i = this.initPageY; i <= this.maxY; i = i + iTickSize) {if (!tickMap[i]) {this.yTicks[this.yTicks.length] = i;tickMap[i] = true;}}this.yTicks.sort(this.DDM.numericSort) ;},setXConstraint: function(iLeft, iRight, iTickSize) {this.leftConstraint = iLeft;this.rightConstraint = iRight;this.minX = this.initPageX - iLeft;this.maxX = this.initPageX + iRight;if (iTickSize) { this.setXTicks(this.initPageX, iTickSize); }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(iUp, iDown, iTickSize) {this.topConstraint = iUp;this.bottomConstraint = iDown;this.minY = this.initPageY - iUp;this.maxY = this.initPageY + iDown;if (iTickSize) { this.setYTicks(this.initPageY, iTickSize); }this.constrainY = true;},resetConstraints: function() {if (this.initPageX || this.initPageX === 0) {var dx = (this.maintainOffset) ? this.lastPageX - this.initPageX : 0;var dy = (this.maintainOffset) ? this.lastPageY - this.initPageY : 0;this.setInitPosition(dx, dy);} 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(val, tickArray) {if (!tickArray) {return val;} else if (tickArray[0] >= val) {return tickArray[0];} else {for (var i=0, len=tickArray.length; i<len; ++i) {var next = i + 1;if (tickArray[next] && tickArray[next] >= val) {var diff1 = val - tickArray[i];var diff2 = tickArray[next] - val;return (diff2 > diff1) ? tickArray[i] : tickArray[next];}}return tickArray[tickArray.length - 1];}},toString: function() {return ("DragDrop " + this.id);}};})();if (!Ext.dd.DragDropMgr) {Ext.dd.DragDropMgr = function() {var Event = Ext.EventManager;return {ids: {},handleIds: {},dragCurrent: null,dragOvers: {},deltaX: 0,deltaY: 0,preventDefault: true,stopPropagation: true,initalized: false,locked: false,init: function() {this.initialized = true;},POINT: 0,INTERSECT: 1,mode: 0,_execOnAll: function(sMethod, args) {for (var i in this.ids) {for (var j in this.ids[i]) {var oDD = this.ids[i][j];if (! this.isTypeOfDD(oDD)) {continue;}oDD[sMethod].apply(oDD, args);}}},_onLoad: function() {this.init();Event.on(document, "mouseup", this.handleMouseUp, this, true);Event.on(document, "mousemove", this.handleMouseMove, this, true);Event.on(window, "unload", this._onUnload, this, true);Event.on(window, "resize", this._onResize, this, true);},_onResize: function(e) {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(oDD, sGroup) {if (!this.initialized) { this.init(); }if (!this.ids[sGroup]) {this.ids[sGroup] = {};}this.ids[sGroup][oDD.id] = oDD;},removeDDFromGroup: function(oDD, sGroup) {if (!this.ids[sGroup]) {this.ids[sGroup] = {};}var obj = this.ids[sGroup];if (obj && obj[oDD.id]) {delete obj[oDD.id];}},_remove: function(oDD) {for (var g in oDD.groups) {if (g && this.ids[g][oDD.id]) {delete this.ids[g][oDD.id];}}delete this.handleIds[oDD.id];},regHandle: function(sDDId, sHandleId) {if (!this.handleIds[sDDId]) {this.handleIds[sDDId] = {};}this.handleIds[sDDId][sHandleId] = sHandleId;},isDragDrop: function(id) {return ( this.getDDById(id) ) ? true : false;},getRelated: function(p_oDD, bTargetsOnly) {var oDDs = [];for (var i in p_oDD.groups) {for (j in this.ids[i]) {var dd = this.ids[i][j];if (! this.isTypeOfDD(dd)) {continue;}if (!bTargetsOnly || dd.isTarget) {oDDs[oDDs.length] = dd;}}}return oDDs;},isLegalTarget: function (oDD, oTargetDD) {var targets = this.getRelated(oDD, true);for (var i=0, len=targets.length;i<len;++i) {if (targets[i].id == oTargetDD.id) {return true;}}return false;},isTypeOfDD: function (oDD) {return (oDD && oDD.__ygDragDrop);},isHandle: function(sDDId, sHandleId) {return ( this.handleIds[sDDId] &&this.handleIds[sDDId][sHandleId] );},getDDById: function(id) {for (var i in this.ids) {if (this.ids[i][id]) {return this.ids[i][id];}}return null;},handleMouseDown: function(e, oDD) {if(Ext.QuickTips){Ext.QuickTips.disable();}this.currentTarget = e.getTarget();this.dragCurrent = oDD;var el = oDD.getEl();this.startX = e.getPageX();this.startY = e.getPageY();this.deltaX = this.startX - el.offsetLeft;this.deltaY = this.startY - el.offsetTop;this.dragThreshMet = false;this.clickTimeout = setTimeout(function() {var DDM = Ext.dd.DDM;DDM.startDrag(DDM.startX, DDM.startY);},this.clickTimeThresh );},startDrag: function(x, y) {clearTimeout(this.clickTimeout);if (this.dragCurrent) {this.dragCurrent.b4StartDrag(x, y);this.dragCurrent.startDrag(x, y);}this.dragThreshMet = true;},handleMouseUp: function(e) {if(Ext.QuickTips){Ext.QuickTips.enable();}if (! this.dragCurrent) {return;}clearTimeout(this.clickTimeout);if (this.dragThreshMet) {this.fireEvents(e, true);} else {}this.stopDrag(e);this.stopEvent(e);},stopEvent: function(e){if(this.stopPropagation) {e.stopPropagation();}if (this.preventDefault) {e.preventDefault();}},stopDrag: function(e) {if (this.dragCurrent) {if (this.dragThreshMet) {this.dragCurrent.b4EndDrag(e);this.dragCurrent.endDrag(e);}this.dragCurrent.onMouseUp(e);}this.dragCurrent = null;this.dragOvers = {};},handleMouseMove: function(e) {if (! this.dragCurrent) {return true;}if (Ext.isIE && (e.button !== 0 && e.button !== 1 && e.button !== 2)) {this.stopEvent(e);return this.handleMouseUp(e);}if (!this.dragThreshMet) {var diffX = Math.abs(this.startX - e.getPageX());var diffY = Math.abs(this.startY - e.getPageY());if (diffX > this.clickPixelThresh ||diffY > this.clickPixelThresh) {this.startDrag(this.startX, this.startY);}}if (this.dragThreshMet) {this.dragCurrent.b4Drag(e);this.dragCurrent.onDrag(e);if(!this.dragCurrent.moveOnly){this.fireEvents(e, false);}}this.stopEvent(e);return true;},fireEvents: function(e, isDrop) {var dc = this.dragCurrent;if (!dc || dc.isLocked()) {return;}var pt = e.getPoint();var oldOvers = [];var outEvts = [];var overEvts = [];var dropEvts = [];var enterEvts = [];for (var i in this.dragOvers) {var ddo = this.dragOvers[i];if (! this.isTypeOfDD(ddo)) {continue;}if (! this.isOverTarget(pt, ddo, this.mode)) {outEvts.push( ddo );}oldOvers[i] = true;delete this.dragOvers[i];}for (var sGroup in dc.groups) {if ("string" != typeof sGroup) {continue;}for (i in this.ids[sGroup]) {var oDD = this.ids[sGroup][i];if (! this.isTypeOfDD(oDD)) {continue;}if (oDD.isTarget && !oDD.isLocked() && oDD != dc) {if (this.isOverTarget(pt, oDD, this.mode)) {if (isDrop) {dropEvts.push( oDD );} else {if (!oldOvers[oDD.id]) {enterEvts.push( oDD );} else {overEvts.push( oDD );}this.dragOvers[oDD.id] = oDD;}}}}}if (this.mode) {if (outEvts.length) {dc.b4DragOut(e, outEvts);dc.onDragOut(e, outEvts);}if (enterEvts.length) {dc.onDragEnter(e, enterEvts);}if (overEvts.length) {dc.b4DragOver(e, overEvts);dc.onDragOver(e, overEvts);}if (dropEvts.length) {dc.b4DragDrop(e, dropEvts);dc.onDragDrop(e, dropEvts);}} else {var len = 0;for (i=0, len=outEvts.length; i<len; ++i) {dc.b4DragOut(e, outEvts[i].id);dc.onDragOut(e, outEvts[i].id);}for (i=0,len=enterEvts.length; i<len; ++i) {dc.onDragEnter(e, enterEvts[i].id);}for (i=0,len=overEvts.length; i<len; ++i) {dc.b4DragOver(e, overEvts[i].id);dc.onDragOver(e, overEvts[i].id);}for (i=0, len=dropEvts.length; i<len; ++i) {dc.b4DragDrop(e, dropEvts[i].id);dc.onDragDrop(e, dropEvts[i].id);}}if (isDrop && !dropEvts.length) {dc.onInvalidDrop(e);}},getBestMatch: function(dds) {var winner = null;var len = dds.length;if (len == 1) {winner = dds[0];} else {for (var i=0; i<len; ++i) {var dd = dds[i];if (dd.cursorIsOver) {winner = dd;break;} else {if (!winner ||winner.overlap.getArea() < dd.overlap.getArea()) {winner = dd;}}}}return winner;},refreshCache: function(groups) {for (var sGroup in groups) {if ("string" != typeof sGroup) {continue;}for (var i in this.ids[sGroup]) {var oDD = this.ids[sGroup][i];if (this.isTypeOfDD(oDD)) {var loc = this.getLocation(oDD);if (loc) {this.locationCache[oDD.id] = loc;} else {delete this.locationCache[oDD.id];}}}}},verifyEl: function(el) {if (el) {var parent;if(Ext.isIE){try{parent = el.offsetParent;}catch(e){}}else{parent = el.offsetParent;}if (parent) {return true;}}return false;},getLocation: function(oDD) {if (! this.isTypeOfDD(oDD)) {return null;}var el = oDD.getEl(), pos, x1, x2, y1, y2, t, r, b, l;try {pos= Ext.lib.Dom.getXY(el);} catch (e) { }if (!pos) {return null;}x1 = pos[0];x2 = x1 + el.offsetWidth;y1 = pos[1];y2 = y1 + el.offsetHeight;t = y1 - oDD.padding[0];r = x2 + oDD.padding[1];b = y2 + oDD.padding[2];l = x1 - oDD.padding[3];return new Ext.lib.Region( t, r, b, l );},isOverTarget: function(pt, oTarget, intersect) {var loc = this.locationCache[oTarget.id];if (!loc || !this.useCache) {loc = this.getLocation(oTarget);this.locationCache[oTarget.id] = loc;}if (!loc) {return false;}oTarget.cursorIsOver = loc.contains( pt );var dc = this.dragCurrent;if (!dc || !dc.getTargetCoord ||(!intersect && !dc.constrainX && !dc.constrainY)) {return oTarget.cursorIsOver;}oTarget.overlap = null;var pos = dc.getTargetCoord(pt.x, pt.y);var el = dc.getDragEl();var curRegion = new Ext.lib.Region( pos.y,pos.x + el.offsetWidth,pos.y + el.offsetHeight,pos.x );var overlap = curRegion.intersect(loc);if (overlap) {oTarget.overlap = overlap;return (intersect) ? true : oTarget.cursorIsOver;} else {return false;}},_onUnload: function(e, me) {Ext.dd.DragDropMgr.unregAll();},unregAll: function() {if (this.dragCurrent) {this.stopDrag();this.dragCurrent = null;}this._execOnAll("unreg", []);for (var i in this.elementCache) {delete this.elementCache[i];}this.elementCache = {};this.ids = {};},elementCache: {},getElWrapper: function(id) {var oWrapper = this.elementCache[id];if (!oWrapper || !oWrapper.el) {oWrapper = this.elementCache[id] =new this.ElementWrapper(Ext.getDom(id));}return oWrapper;},getElement: function(id) {return Ext.getDom(id);},getCss: function(id) {var el = Ext.getDom(id);return (el) ? el.style : null;},ElementWrapper: function(el) {this.el = el || null;this.id = this.el && el.id;this.css = this.el && el.style;},getPosX: function(el) {return Ext.lib.Dom.getX(el);},getPosY: function(el) {return Ext.lib.Dom.getY(el);},swapNode: function(n1, n2) {if (n1.swapNode) {n1.swapNode(n2);} else {var p = n2.parentNode;var s = n2.nextSibling;if (s == n1) {p.insertBefore(n1, n2);} else if (n2 == n1.nextSibling) {p.insertBefore(n2, n1);} else {n1.parentNode.replaceChild(n2, n1);p.insertBefore(n1, s);}}},getScroll: function () {var t, l, dde=document.documentElement, db=document.body;if (dde && (dde.scrollTop || dde.scrollLeft)) {t = dde.scrollTop;l = dde.scrollLeft;} else if (db) {t = db.scrollTop;l = db.scrollLeft;} else {}return { top: t, left: l };},getStyle: function(el, styleProp) {return Ext.fly(el).getStyle(styleProp);},getScrollTop: function () { return this.getScroll().top; },getScrollLeft: function () { return this.getScroll().left; },moveToEl: function (moveEl, targetEl) {var aCoord = Ext.lib.Dom.getXY(targetEl);Ext.lib.Dom.setXY(moveEl, aCoord);},numericSort: function(a, b) { return (a - b); },_timeoutCount: 0,_addListeners: function() {var DDM = Ext.dd.DDM;if ( Ext.lib.Event && document ) {DDM._onLoad();} else {if (DDM._timeoutCount > 2000) {} else {setTimeout(DDM._addListeners, 10);if (document && document.body) {DDM._timeoutCount += 1;}}}},handleWasClicked: function(node, id) {if (this.isHandle(id, node.id)) {return true;} else {var p = node.parentNode;while (p) {if (this.isHandle(id, p.id)) {return true;} else {p = p.parentNode;}}}return false;}};}();Ext.dd.DDM = Ext.dd.DragDropMgr;Ext.dd.DDM._addListeners();}Ext.dd.DD = function(id, sGroup, config) {if (id) {this.init(id, sGroup, config);}};Ext.extend(Ext.dd.DD, Ext.dd.DragDrop, {scroll: true,autoOffset: function(iPageX, iPageY) {var x = iPageX - this.startPageX;var y = iPageY - this.startPageY;this.setDelta(x, y);},setDelta: function(iDeltaX, iDeltaY) {this.deltaX = iDeltaX;this.deltaY = iDeltaY;},setDragElPos: function(iPageX, iPageY) {var el = this.getDragEl();this.alignElWithMouse(el, iPageX, iPageY);},alignElWithMouse: function(el, iPageX, iPageY) {var oCoord = this.getTargetCoord(iPageX, iPageY);var fly = el.dom ? el : Ext.fly(el, '_dd');if (!this.deltaSetXY) {var aCoord = [oCoord.x, oCoord.y];fly.setXY(aCoord);var newLeft = fly.getLeft(true);var newTop = fly.getTop(true);this.deltaSetXY = [ newLeft - oCoord.x, newTop - oCoord.y ];} else {fly.setLeftTop(oCoord.x + this.deltaSetXY[0], oCoord.y + this.deltaSetXY[1]);}this.cachePosition(oCoord.x, oCoord.y);this.autoScroll(oCoord.x, oCoord.y, el.offsetHeight, el.offsetWidth);return oCoord;},cachePosition: function(iPageX, iPageY) {if (iPageX) {this.lastPageX = iPageX;this.lastPageY = iPageY;} else {var aCoord = Ext.lib.Dom.getXY(this.getEl());this.lastPageX = aCoord[0];this.lastPageY = aCoord[1];}},autoScroll: function(x, y, h, w) {if (this.scroll) {var clientH = Ext.lib.Dom.getViewHeight();var clientW = Ext.lib.Dom.getViewWidth();var st = this.DDM.getScrollTop();var sl = this.DDM.getScrollLeft();var bot = h + y;var right = w + x;var toBot = (clientH + st - y - this.deltaY);var toRight = (clientW + sl - x - this.deltaX);var thresh = 40;var scrAmt = (document.all) ? 80 : 30;if ( bot > clientH && toBot < thresh ) {window.scrollTo(sl, st + scrAmt);}if ( y < st && st > 0 && y - st < thresh ) {window.scrollTo(sl, st - scrAmt);}if ( right > clientW && toRight < thresh ) {window.scrollTo(sl + scrAmt, st);}if ( x < sl && sl > 0 && x - sl < thresh ) {window.scrollTo(sl - scrAmt, st);}}},getTargetCoord: function(iPageX, iPageY) {var x = iPageX - this.deltaX;var y = iPageY - this.deltaY;if (this.constrainX) {if (x < this.minX) { x = this.minX; }if (x > this.maxX) { x = this.maxX; }}if (this.constrainY) {if (y < this.minY) { y = this.minY; }if (y > this.maxY) { y = this.maxY; }}x = this.getTick(x, this.xTicks);y = this.getTick(y, this.yTicks);return {x:x, y:y};},applyConfig: function() {Ext.dd.DD.superclass.applyConfig.call(this);this.scroll = (this.config.scroll !== false);},b4MouseDown: function(e) {this.autoOffset(e.getPageX(),e.getPageY());},b4Drag: function(e) {this.setDragElPos(e.getPageX(),e.getPageY());},toString: function() {return ("DD " + this.id);}});Ext.dd.DDProxy = function(id, sGroup, config) {if (id) {this.init(id, sGroup, config);this.initFrame();}};Ext.dd.DDProxy.dragElId = "ygddfdiv";Ext.extend(Ext.dd.DDProxy, Ext.dd.DD, {resizeFrame: true,centerFrame: false,createFrame: function() {var self = this;var body = document.body;if (!body || !body.firstChild) {setTimeout( function() { self.createFrame(); }, 50 );return;}var div = this.getDragEl();if (!div) {div = document.createElement("div");div.id = this.dragElId;var s = div.style;s.position = "absolute";s.visibility = "hidden";s.cursor = "move";s.border = "2px solid #aaa";s.zIndex = 999;body.insertBefore(div, body.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(iPageX, iPageY) {var el = this.getEl();var dragEl = this.getDragEl();var s = dragEl.style;this._resizeProxy();if (this.centerFrame) {this.setDelta( Math.round(parseInt(s.width, 10)/2),Math.round(parseInt(s.height, 10)/2) );}this.setDragElPos(iPageX, iPageY);Ext.fly(dragEl).show();},_resizeProxy: function() {if (this.resizeFrame) {var el = this.getEl();Ext.fly(this.getDragEl()).setSize(el.offsetWidth, el.offsetHeight);}},b4MouseDown: function(e) {var x = e.getPageX();var y = e.getPageY();this.autoOffset(x, y);this.setDragElPos(x, y);},b4StartDrag: function(x, y) {this.showFrame(x, y);},b4EndDrag: function(e) {Ext.fly(this.getDragEl()).hide();},endDrag: function(e) {var lel = this.getEl();var del = this.getDragEl();del.style.visibility = "";this.beforeMove();lel.style.visibility = "hidden";Ext.dd.DDM.moveToEl(lel, del);del.style.visibility = "hidden";lel.style.visibility = "";this.afterDrag();},beforeMove : function(){},afterDrag : function(){},toString: function() {return ("DDProxy " + this.id);}});Ext.dd.DDTarget = function(id, sGroup, config) {if (id) {this.initTarget(id, sGroup, config);}};Ext.extend(Ext.dd.DDTarget, Ext.dd.DragDrop, {toString: function() {return ("DDTarget " + this.id);}});Ext.dd.DragTracker = function(config){Ext.apply(this, config);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.extend(Ext.dd.DragTracker, Ext.util.Observable, {active: false,tolerance: 5,autoStart: false,initEl: function(el){this.el = Ext.get(el);el.on('mousedown', this.onMouseDown, this,this.delegate ? {delegate: this.delegate} : undefined);},destroy : function(){this.el.un('mousedown', this.onMouseDown, this);},onMouseDown: function(e, target){if(this.fireEvent('mousedown', this, e) !== false && this.onBeforeStart(e) !== false){this.startXY = this.lastXY = e.getXY();this.dragTarget = this.delegate ? target : this.el.dom;e.preventDefault();var doc = Ext.getDoc();doc.on('mouseup', this.onMouseUp, this);doc.on('mousemove', this.onMouseMove, this);doc.on('selectstart', this.stopSelect, this);if(this.autoStart){this.timer = this.triggerStart.defer(this.autoStart === true ? 1000 : this.autoStart, this);}}},onMouseMove: function(e, target){e.preventDefault();var xy = e.getXY(), s = this.startXY;this.lastXY = xy;if(!this.active){if(Math.abs(s[0]-xy[0]) > this.tolerance || Math.abs(s[1]-xy[1]) > this.tolerance){this.triggerStart();}else{return;}}this.fireEvent('mousemove', this, e);this.onDrag(e);this.fireEvent('drag', this, e);},onMouseUp: function(e){var doc = Ext.getDoc();doc.un('mousemove', this.onMouseMove, this);doc.un('mouseup', this.onMouseUp, this);doc.un('selectstart', this.stopSelect, this);e.preventDefault();this.clearStart();this.active = false;delete this.elRegion;this.fireEvent('mouseup', this, e);this.onEnd(e);this.fireEvent('dragend', this, e);},triggerStart: function(isTimer){this.clearStart();this.active = true;this.onStart(this.startXY);this.fireEvent('dragstart', this, this.startXY);},clearStart : function(){if(this.timer){clearTimeout(this.timer);delete this.timer;}},stopSelect : function(e){e.stopEvent();return false;},onBeforeStart : function(e){},onStart : function(xy){},onDrag : function(e){},onEnd : function(e){},getDragTarget : function(){return this.dragTarget;},getDragCt : function(){return this.el;},getXY : function(constrain){return constrain ?this.constrainModes[constrain].call(this, this.lastXY) : this.lastXY;},getOffset : function(constrain){var xy = this.getXY(constrain);var s = this.startXY;return [s[0]-xy[0], s[1]-xy[1]];},constrainModes: {'point' : function(xy){if(!this.elRegion){this.elRegion = this.getDragCt().getRegion();}var dr = this.dragRegion;dr.left = xy[0];dr.top = xy[1];dr.right = xy[0];dr.bottom = xy[1];dr.constrainTo(this.elRegion);return [dr.left, dr.top];}}});Ext.dd.ScrollManager = function(){var ddm = Ext.dd.DragDropMgr;var els = {};var dragEl = null;var proc = {};var onStop = function(e){dragEl = null;clearProc();};var triggerRefresh = function(){if(ddm.dragCurrent){ddm.refreshCache(ddm.dragCurrent.groups);}};var doScroll = function(){if(ddm.dragCurrent){var dds = Ext.dd.ScrollManager;var inc = proc.el.ddScrollConfig ?proc.el.ddScrollConfig.increment : dds.increment;if(!dds.animate){if(proc.el.scroll(proc.dir, inc)){triggerRefresh();}}else{proc.el.scroll(proc.dir, inc, true, dds.animDuration, triggerRefresh);}}};var clearProc = function(){if(proc.id){clearInterval(proc.id);}proc.id = 0;proc.el = null;proc.dir = "";};var startProc = function(el, dir){clearProc();proc.el = el;proc.dir = dir;proc.id = setInterval(doScroll, Ext.dd.ScrollManager.frequency);};var onFire = function(e, isDrop){if(isDrop || !ddm.dragCurrent){ return; }var dds = Ext.dd.ScrollManager;if(!dragEl || dragEl != ddm.dragCurrent){dragEl = ddm.dragCurrent;dds.refreshCache();}var xy = Ext.lib.Event.getXY(e);var pt = new Ext.lib.Point(xy[0], xy[1]);for(var id in els){var el = els[id], r = el._region;var c = el.ddScrollConfig ? el.ddScrollConfig : dds;if(r && r.contains(pt) && el.isScrollable()){if(r.bottom - pt.y <= c.vthresh){if(proc.el != el){startProc(el, "down");}return;}else if(r.right - pt.x <= c.hthresh){if(proc.el != el){startProc(el, "left");}return;}else if(pt.y - r.top <= c.vthresh){if(proc.el != el){startProc(el, "up");}return;}else if(pt.x - r.left <= c.hthresh){if(proc.el != el){startProc(el, "right");}return;}}}clearProc();};ddm.fireEvents = ddm.fireEvents.createSequence(onFire, ddm);ddm.stopDrag = ddm.stopDrag.createSequence(onStop, ddm);return {register : function(el){if(Ext.isArray(el)){for(var i = 0, len = el.length; i < len; i++) {this.register(el[i]);}}else{el = Ext.get(el);els[el.id] = el;}},unregister : function(el){if(Ext.isArray(el)){for(var i = 0, len = el.length; i < len; i++) {this.unregister(el[i]);}}else{el = Ext.get(el);delete els[el.id];}},vthresh : 25,hthresh : 25,increment : 100,frequency : 500,animate: true,animDuration: .4,refreshCache : function(){for(var id in els){if(typeof els[id] == 'object'){els[id]._region = els[id].getRegion();}}}};}();Ext.dd.Registry = function(){var elements = {};var handles = {};var autoIdSeed = 0;var getId = function(el, autogen){if(typeof el == "string"){return el;}var id = el.id;if(!id && autogen !== false){id = "extdd-" + (++autoIdSeed);el.id = id;}return id;};return {register : function(el, data){data = data || {};if(typeof el == "string"){el = document.getElementById(el);}data.ddel = el;elements[getId(el)] = data;if(data.isHandle !== false){handles[data.ddel.id] = data;}if(data.handles){var hs = data.handles;for(var i = 0, len = hs.length; i < len; i++){handles[getId(hs[i])] = data;}}},unregister : function(el){var id = getId(el, false);var data = elements[id];if(data){delete elements[id];if(data.handles){var hs = data.handles;for(var i = 0, len = hs.length; i < len; i++){delete handles[getId(hs[i], false)];}}}},getHandle : function(id){if(typeof id != "string"){id = id.id;}return handles[id];},getHandleFromEvent : function(e){var t = Ext.lib.Event.getTarget(e);return t ? handles[t.id] : null;},getTarget : function(id){if(typeof id != "string"){id = id.id;}return elements[id];},getTargetFromEvent : function(e){var t = Ext.lib.Event.getTarget(e);return t ? elements[t.id] || handles[t.id] : null;}};}();Ext.dd.StatusProxy = function(config){Ext.apply(this, config);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: !config || config.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(cssClass){cssClass = cssClass || this.dropNotAllowed;if(this.dropStatus != cssClass){this.el.replaceClass(this.dropStatus, cssClass);this.dropStatus = cssClass;}},reset : function(clearGhost){this.el.dom.className = "x-dd-drag-proxy " + this.dropNotAllowed;this.dropStatus = this.dropNotAllowed;if(clearGhost){this.ghost.update("");}},update : function(html){if(typeof html == "string"){this.ghost.update(html);}else{this.ghost.update("");html.style.margin = "0";this.ghost.dom.appendChild(html);}},getEl : function(){return this.el;},getGhost : function(){return this.ghost;},hide : function(clear){this.el.hide();if(clear){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(xy, callback, scope){this.callback = callback;this.scope = scope;if(xy && this.animRepair !== false){this.el.addClass("x-dd-drag-repair");this.el.hideUnders(true);this.anim = this.el.shift({duration: this.repairDuration || .5,easing: 'easeOut',xy: xy,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;}};Ext.dd.DragSource = function(el, config){this.el = Ext.get(el);if(!this.dragData){this.dragData = {};}Ext.apply(this, config);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(e){return this.dragData;},onDragEnter : function(e, id){var target = Ext.dd.DragDropMgr.getDDById(id);this.cachedTarget = target;if(this.beforeDragEnter(target, e, id) !== false){if(target.isNotifyTarget){var status = target.notifyEnter(this, e, this.dragData);this.proxy.setStatus(status);}else{this.proxy.setStatus(this.dropAllowed);}if(this.afterDragEnter){this.afterDragEnter(target, e, id);}}},beforeDragEnter : function(target, e, id){return true;},alignElWithMouse: function() {Ext.dd.DragSource.superclass.alignElWithMouse.apply(this, arguments);this.proxy.sync();},onDragOver : function(e, id){var target = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(id);if(this.beforeDragOver(target, e, id) !== false){if(target.isNotifyTarget){var status = target.notifyOver(this, e, this.dragData);this.proxy.setStatus(status);}if(this.afterDragOver){this.afterDragOver(target, e, id);}}},beforeDragOver : function(target, e, id){return true;},onDragOut : function(e, id){var target = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(id);if(this.beforeDragOut(target, e, id) !== false){if(target.isNotifyTarget){target.notifyOut(this, e, this.dragData);}this.proxy.reset();if(this.afterDragOut){this.afterDragOut(target, e, id);}}this.cachedTarget = null;},beforeDragOut : function(target, e, id){return true;},onDragDrop : function(e, id){var target = this.cachedTarget || Ext.dd.DragDropMgr.getDDById(id);if(this.beforeDragDrop(target, e, id) !== false){if(target.isNotifyTarget){if(target.notifyDrop(this, e, this.dragData)){this.onValidDrop(target, e, id);}else{this.onInvalidDrop(target, e, id);}}else{this.onValidDrop(target, e, id);}if(this.afterDragDrop){this.afterDragDrop(target, e, id);}}delete this.cachedTarget;},beforeDragDrop : function(target, e, id){return true;},onValidDrop : function(target, e, id){this.hideProxy();if(this.afterValidDrop){this.afterValidDrop(target, e, id);}},getRepairXY : function(e, data){return this.el.getXY();},onInvalidDrop : function(target, e, id){this.beforeInvalidDrop(target, e, id);if(this.cachedTarget){if(this.cachedTarget.isNotifyTarget){this.cachedTarget.notifyOut(this, e, this.dragData);}this.cacheTarget = null;}this.proxy.repair(this.getRepairXY(e, this.dragData), this.afterRepair, this);if(this.afterInvalidDrop){this.afterInvalidDrop(e, id);}},afterRepair : function(){if(Ext.enableFx){this.el.highlight(this.hlColor || "c3daf9");}this.dragging = false;},beforeInvalidDrop : function(target, e, id){return true;},handleMouseDown : function(e){if(this.dragging) {return;}var data = this.getDragData(e);if(data && this.onBeforeDrag(data, e) !== false){this.dragData = data;this.proxy.stop();Ext.dd.DragSource.superclass.handleMouseDown.apply(this, arguments);}},onBeforeDrag : function(data, e){return true;},onStartDrag : Ext.emptyFn,startDrag : function(x, y){this.proxy.reset();this.dragging = true;this.proxy.update("");this.onInitDrag(x, y);this.proxy.show();},onInitDrag : function(x, y){var clone = this.el.dom.cloneNode(true);clone.id = Ext.id();this.proxy.update(clone);this.onStartDrag(x, y);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(e) {},endDrag : function(e){this.onEndDrag(this.dragData, e);},onEndDrag : function(data, e){},autoOffset : function(x, y) {this.setDelta(-12, -20);}});Ext.dd.DropTarget = function(el, config){this.el = Ext.get(el);Ext.apply(this, config);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});};Ext.extend(Ext.dd.DropTarget, Ext.dd.DDTarget, {dropAllowed : "x-dd-drop-ok",dropNotAllowed : "x-dd-drop-nodrop",isTarget : true,isNotifyTarget : true,notifyEnter : function(dd, e, data){if(this.overClass){this.el.addClass(this.overClass);}return this.dropAllowed;},notifyOver : function(dd, e, data){return this.dropAllowed;},notifyOut : function(dd, e, data){if(this.overClass){this.el.removeClass(this.overClass);}},notifyDrop : function(dd, e, data){return false;}});Ext.dd.DragZone = function(el, config){Ext.dd.DragZone.superclass.constructor.call(this, el, config);if(this.containerScroll){Ext.dd.ScrollManager.register(this.el);}};Ext.extend(Ext.dd.DragZone, Ext.dd.DragSource, {getDragData : function(e){return Ext.dd.Registry.getHandleFromEvent(e);},onInitDrag : function(x, y){this.proxy.update(this.dragData.ddel.cloneNode(true));this.onStartDrag(x, y);return true;},afterRepair : function(){if(Ext.enableFx){Ext.Element.fly(this.dragData.ddel).highlight(this.hlColor || "c3daf9");}this.dragging = false;},getRepairXY : function(e){return Ext.Element.fly(this.dragData.ddel).getXY();}});Ext.dd.DropZone = function(el, config){Ext.dd.DropZone.superclass.constructor.call(this, el, config);};Ext.extend(Ext.dd.DropZone, Ext.dd.DropTarget, {getTargetFromEvent : function(e){return Ext.dd.Registry.getTargetFromEvent(e);},onNodeEnter : function(n, dd, e, data){},onNodeOver : function(n, dd, e, data){return this.dropAllowed;},onNodeOut : function(n, dd, e, data){},onNodeDrop : function(n, dd, e, data){return false;},onContainerOver : function(dd, e, data){return this.dropNotAllowed;},onContainerDrop : function(dd, e, data){return false;},notifyEnter : function(dd, e, data){return this.dropNotAllowed;},notifyOver : function(dd, e, data){var n = this.getTargetFromEvent(e);if(!n){if(this.lastOverNode){this.onNodeOut(this.lastOverNode, dd, e, data);this.lastOverNode = null;}return this.onContainerOver(dd, e, data);}if(this.lastOverNode != n){if(this.lastOverNode){this.onNodeOut(this.lastOverNode, dd, e, data);}this.onNodeEnter(n, dd, e, data);this.lastOverNode = n;}return this.onNodeOver(n, dd, e, data);},notifyOut : function(dd, e, data){if(this.lastOverNode){this.onNodeOut(this.lastOverNode, dd, e, data);this.lastOverNode = null;}},notifyDrop : function(dd, e, data){if(this.lastOverNode){this.onNodeOut(this.lastOverNode, dd, e, data);this.lastOverNode = null;}var n = this.getTargetFromEvent(e);return n ?this.onNodeDrop(n, dd, e, data) :this.onContainerDrop(dd, e, data);},triggerCacheRefresh : function(){Ext.dd.DDM.refreshCache(this.groups);}});Ext.data.SortTypes = {none : function(s){return s;},stripTagsRE : /<\/?[^>]+>/gi,asText : function(s){return String(s).replace(this.stripTagsRE, "");},asUCText : function(s){return String(s).toUpperCase().replace(this.stripTagsRE, "");},asUCString : function(s) {return String(s).toUpperCase();},asDate : function(s) {if(!s){return 0;}if(Ext.isDate(s)){return s.getTime();}return Date.parse(String(s));},asFloat : function(s) {var val = parseFloat(String(s).replace(/,/g, ""));if(isNaN(val)) val = 0;return val;},asInt : function(s) {var val = parseInt(String(s).replace(/,/g, ""));if(isNaN(val)) val = 0;return val;}};Ext.data.Record = function(data, id){this.id = (id || id === 0) ? id : ++Ext.data.Record.AUTO_ID;this.data = data;};Ext.data.Record.create = function(o){var f = Ext.extend(Ext.data.Record, {});var p = f.prototype;p.fields = new Ext.util.MixedCollection(false, function(field){return field.name;});for(var i = 0, len = o.length; i < len; i++){p.fields.add(new Ext.data.Field(o[i]));}f.getField = function(name){return p.fields.get(name);};return f;};Ext.data.Record.AUTO_ID = 1000;Ext.data.Record.EDIT = 'edit';Ext.data.Record.REJECT = 'reject';Ext.data.Record.COMMIT = 'commit';Ext.data.Record.prototype = {dirty : false,editing : false,error: null,modified: null,join : function(store){this.store = store;},set : function(name, value){if(String(this.data[name]) == String(value)){return;}this.dirty = true;if(!this.modified){this.modified = {};}if(typeof this.modified[name] == 'undefined'){this.modified[name] = this.data[name];}this.data[name] = value;if(!this.editing && this.store){this.store.afterEdit(this);}},get : function(name){return this.data[name];},beginEdit : function(){this.editing = true;this.modified = {};},cancelEdit : function(){this.editing = false;delete this.modified;},endEdit : function(){this.editing = false;if(this.dirty && this.store){this.store.afterEdit(this);}},reject : function(silent){var m = this.modified;for(var n in m){if(typeof m[n] != "function"){this.data[n] = m[n];}}this.dirty = false;delete this.modified;this.editing = false;if(this.store && silent !== true){this.store.afterReject(this);}},commit : function(silent){this.dirty = false;delete this.modified;this.editing = false;if(this.store && silent !== true){this.store.afterCommit(this);}},getChanges : function(){var m = this.modified, cs = {};for(var n in m){if(m.hasOwnProperty(n)){cs[n] = this.data[n];}}return cs;},hasError : function(){return this.error != null;},clearError : function(){this.error = null;},copy : function(newId) {return new this.constructor(Ext.apply({}, this.data), newId || this.id);},isModified : function(fieldName){return this.modified && this.modified.hasOwnProperty(fieldName);}};Ext.StoreMgr = Ext.apply(new Ext.util.MixedCollection(), {register : function(){for(var i = 0, s; s = arguments[i]; i++){this.add(s);}},unregister : function(){for(var i = 0, s; s = arguments[i]; i++){this.remove(this.lookup(s));}},lookup : function(id){return typeof id == "object" ? id : this.get(id);},getKey : function(o){return o.storeId || o.id;}});Ext.data.Store = function(config){this.data = new Ext.util.MixedCollection(false);this.data.getKey = function(o){return o.id;};this.baseParams = {};this.paramNames = {"start" : "start","limit" : "limit","sort" : "sort","dir" : "dir"};if(config && config.data){this.inlineData = config.data;delete config.data;}Ext.apply(this, config);if(this.url && !this.proxy){this.proxy = new Ext.data.HttpProxy({url: this.url});}if(this.reader){if(!this.recordType){this.recordType = this.reader.recordType;}if(this.reader.onMetaChange){this.reader.onMetaChange = this.onMetaChange.createDelegate(this);}}if(this.recordType){this.fields = this.recordType.prototype.fields;}this.modified = [];this.addEvents('datachanged','metachange','add','remove','update','clear','beforeload','load','loadexception');if(this.proxy){this.relayEvents(this.proxy, ["loadexception"]);}this.sortToggle = {};if(this.sortInfo){this.setDefaultSort(this.sortInfo.field, this.sortInfo.direction);}Ext.data.Store.superclass.constructor.call(this);if(this.storeId || this.id){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]);}};Ext.extend(Ext.data.Store, Ext.util.Observable, {remoteSort : false,pruneModifiedRecords : false,lastOptions : null,destroy : function(){if(this.id){Ext.StoreMgr.unregister(this);}this.data = null;this.purgeListeners();},add : function(records){records = [].concat(records);if(records.length < 1){return;}for(var i = 0, len = records.length; i < len; i++){records[i].join(this);}var index = this.data.length;this.data.addAll(records);if(this.snapshot){this.snapshot.addAll(records);}this.fireEvent("add", this, records, index);},addSorted : function(record){var index = this.findInsertIndex(record);this.insert(index, record);},remove : function(record){var index = this.data.indexOf(record);this.data.removeAt(index);if(this.pruneModifiedRecords){this.modified.remove(record);}if(this.snapshot){this.snapshot.remove(record);}this.fireEvent("remove", this, record, index);},removeAll : function(){this.data.clear();if(this.snapshot){this.snapshot.clear();}if(this.pruneModifiedRecords){this.modified = [];}this.fireEvent("clear", this);},insert : function(index, records){records = [].concat(records);for(var i = 0, len = records.length; i < len; i++){this.data.insert(index, records[i]);records[i].join(this);}this.fireEvent("add", this, records, index);},indexOf : function(record){return this.data.indexOf(record);},indexOfId : function(id){return this.data.indexOfKey(id);},getById : function(id){return this.data.key(id);},getAt : function(index){return this.data.itemAt(index);},getRange : function(start, end){return this.data.getRange(start, end);},storeOptions : function(o){o = Ext.apply({}, o);delete o.callback;delete o.scope;this.lastOptions = o;},load : function(options){options = options || {};if(this.fireEvent("beforeload", this, options) !== false){this.storeOptions(options);var p = Ext.apply(options.params || {}, this.baseParams);if(this.sortInfo && this.remoteSort){var pn = this.paramNames;p[pn["sort"]] = this.sortInfo.field;p[pn["dir"]] = this.sortInfo.direction;}this.proxy.load(p, this.reader, this.loadRecords, this, options);return true;} else {return false;}},reload : function(options){this.load(Ext.applyIf(options||{}, this.lastOptions));},loadRecords : function(o, options, success){if(!o || success === false){if(success !== false){this.fireEvent("load", this, [], options);}if(options.callback){options.callback.call(options.scope || this, [], options, false);}return;}var r = o.records, t = o.totalRecords || r.length;if(!options || options.add !== true){if(this.pruneModifiedRecords){this.modified = [];}for(var i = 0, len = r.length; i < len; i++){r[i].join(this);}if(this.snapshot){this.data = this.snapshot;delete this.snapshot;}this.data.clear();this.data.addAll(r);this.totalLength = t;this.applySort();this.fireEvent("datachanged", this);}else{this.totalLength = Math.max(t, this.data.length+r.length);this.add(r);}this.fireEvent("load", this, r, options);if(options.callback){options.callback.call(options.scope || this, r, options, true);}},loadData : function(o, append){var r = this.reader.readRecords(o);this.loadRecords(r, {add: append}, 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.remoteSort){var s = this.sortInfo, f = s.field;this.sortData(f, s.direction);}},sortData : function(f, direction){direction = direction || 'ASC';var st = this.fields.get(f).sortType;var fn = function(r1, r2){var v1 = st(r1.data[f]), v2 = st(r2.data[f]);return v1 > v2 ? 1 : (v1 < v2 ? -1 : 0);};this.data.sort(direction, fn);if(this.snapshot && this.snapshot != this.data){this.snapshot.sort(direction, fn);}},setDefaultSort : function(field, dir){dir = dir ? dir.toUpperCase() : "ASC";this.sortInfo = {field: field, direction: dir};this.sortToggle[field] = dir;},sort : function(fieldName, dir){var f = this.fields.get(fieldName);if(!f){return false;}if(!dir){if(this.sortInfo && this.sortInfo.field == f.name){dir = (this.sortToggle[f.name] || "ASC").toggle("ASC", "DESC");}else{dir = f.sortDir;}}var st = (this.sortToggle) ? this.sortToggle[f.name] : null;var si = (this.sortInfo) ? this.sortInfo : null;this.sortToggle[f.name] = dir;this.sortInfo = {field: f.name, direction: dir};if(!this.remoteSort){this.applySort();this.fireEvent("datachanged", this);}else{if (!this.load(this.lastOptions)) {if (st) {this.sortToggle[f.name] = st;}if (si) {this.sortInfo = si;}}}},each : function(fn, scope){this.data.each(fn, scope);},getModifiedRecords : function(){return this.modified;},createFilterFn : function(property, value, anyMatch, caseSensitive){if(Ext.isEmpty(value, false)){return false;}value = this.data.createValueMatcher(value, anyMatch, caseSensitive);return function(r){return value.test(r.data[property]);};},sum : function(property, start, end){var rs = this.data.items, v = 0;start = start || 0;end = (end || end === 0) ? end : rs.length-1;for(var i = start; i <= end; i++){v += (rs[i].data[property] || 0);}return v;},filter : function(property, value, anyMatch, caseSensitive){var fn = this.createFilterFn(property, value, anyMatch, caseSensitive);return fn ? this.filterBy(fn) : this.clearFilter();},filterBy : function(fn, scope){this.snapshot = this.snapshot || this.data;this.data = this.queryBy(fn, scope||this);this.fireEvent("datachanged", this);},query : function(property, value, anyMatch, caseSensitive){var fn = this.createFilterFn(property, value, anyMatch, caseSensitive);return fn ? this.queryBy(fn) : this.data.clone();},queryBy : function(fn, scope){var data = this.snapshot || this.data;return data.filterBy(fn, scope||this);},find : function(property, value, start, anyMatch, caseSensitive){var fn = this.createFilterFn(property, value, anyMatch, caseSensitive);return fn ? this.data.findIndexBy(fn, null, start) : -1;},findBy : function(fn, scope, start){return this.data.findIndexBy(fn, scope, start);},collect : function(dataIndex, allowNull, bypassFilter){var d = (bypassFilter === true && this.snapshot) ?this.snapshot.items : this.data.items;var v, sv, r = [], l = {};for(var i = 0, len = d.length; i < len; i++){v = d[i].data[dataIndex];sv = String(v);if((allowNull || !Ext.isEmpty(v)) && !l[sv]){l[sv] = true;r[r.length] = v;}}return r;},clearFilter : function(suppressEvent){if(this.isFiltered()){this.data = this.snapshot;delete this.snapshot;if(suppressEvent !== true){this.fireEvent("datachanged", this);}}},isFiltered : function(){return this.snapshot && this.snapshot != this.data;},afterEdit : function(record){if(this.modified.indexOf(record) == -1){this.modified.push(record);}this.fireEvent("update", this, record, Ext.data.Record.EDIT);},afterReject : function(record){this.modified.remove(record);this.fireEvent("update", this, record, Ext.data.Record.REJECT);},afterCommit : function(record){this.modified.remove(record);this.fireEvent("update", this, record, Ext.data.Record.COMMIT);},commitChanges : function(){var m = this.modified.slice(0);this.modified = [];for(var i = 0, len = m.length; i < len; i++){m[i].commit();}},rejectChanges : function(){var m = this.modified.slice(0);this.modified = [];for(var i = 0, len = m.length; i < len; i++){m[i].reject();}},onMetaChange : function(meta, rtype, o){this.recordType = rtype;this.fields = rtype.prototype.fields;delete this.snapshot;this.sortInfo = meta.sortInfo;this.modified = [];this.fireEvent('metachange', this, this.reader.meta);},findInsertIndex : function(record){this.suspendEvents();var data = this.data.clone();this.data.add(record);this.applySort();var index = this.data.indexOf(record);this.data = data;this.resumeEvents();return index;}});Ext.data.SimpleStore = function(config){Ext.data.SimpleStore.superclass.constructor.call(this, Ext.apply(config, {reader: new Ext.data.ArrayReader({id: config.id},Ext.data.Record.create(config.fields))}));};Ext.extend(Ext.data.SimpleStore, Ext.data.Store, {loadData : function(data, append){if(this.expandData === true){var r = [];for(var i = 0, len = data.length; i < len; i++){r[r.length] = [data[i]];}data = r;}Ext.data.SimpleStore.superclass.loadData.call(this, data, append);}});Ext.data.JsonStore = function(c){Ext.data.JsonStore.superclass.constructor.call(this, Ext.apply(c, {proxy: !c.data ? new Ext.data.HttpProxy({url: c.url}) : undefined,reader: new Ext.data.JsonReader(c, c.fields)}));};Ext.extend(Ext.data.JsonStore, Ext.data.Store);Ext.data.Field = function(config){if(typeof config == "string"){config = {name: config};}Ext.apply(this, config);if(!this.type){this.type = "auto";}var st = Ext.data.SortTypes;if(typeof this.sortType == "string"){this.sortType = st[this.sortType];}if(!this.sortType){switch(this.type){case "string":this.sortType = st.asUCString;break;case "date":this.sortType = st.asDate;break;default:this.sortType = st.none;}}var stripRe = /[\$,%]/g;if(!this.convert){var cv, dateFormat = this.dateFormat;switch(this.type){case "":case "auto":case undefined:cv = function(v){ return v; };break;case "string":cv = function(v){ return (v === undefined || v === null) ? '' : String(v); };break;case "int":cv = function(v){return v !== undefined && v !== null && v !== '' ?parseInt(String(v).replace(stripRe, ""), 10) : '';};break;case "float":cv = function(v){return v !== undefined && v !== null && v !== '' ?parseFloat(String(v).replace(stripRe, ""), 10) : '';};break;case "bool":case "boolean":cv = function(v){ return v === true || v === "true" || v == 1; };break;case "date":cv = function(v){if(!v){return '';}if(Ext.isDate(v)){return v;}if(dateFormat){if(dateFormat == "timestamp"){return new Date(v*1000);}if(dateFormat == "time"){return new Date(parseInt(v, 10));}return Date.parseDate(v, dateFormat);}var parsed = Date.parse(v);return parsed ? new Date(parsed) : null;};break;}this.convert = cv;}};Ext.data.Field.prototype = {dateFormat: null,defaultValue: "",mapping: null,sortType : null,sortDir : "ASC"};Ext.data.DataReader = function(meta, recordType){this.meta = meta;this.recordType = Ext.isArray(recordType) ?Ext.data.Record.create(recordType) : recordType;};Ext.data.DataReader.prototype = {};Ext.data.DataProxy = function(){this.addEvents('beforeload','load','loadexception');Ext.data.DataProxy.superclass.constructor.call(this);};Ext.extend(Ext.data.DataProxy, Ext.util.Observable);Ext.data.MemoryProxy = function(data){Ext.data.MemoryProxy.superclass.constructor.call(this);this.data = data;};Ext.extend(Ext.data.MemoryProxy, Ext.data.DataProxy, {load : function(params, reader, callback, scope, arg){params = params || {};var result;try {result = reader.readRecords(this.data);}catch(e){this.fireEvent("loadexception", this, arg, null, e);callback.call(scope, null, arg, false);return;}callback.call(scope, result, arg, true);},update : function(params, records){}});Ext.data.HttpProxy = function(conn){Ext.data.HttpProxy.superclass.constructor.call(this);this.conn = conn;this.useAjax = !conn || !conn.events;};Ext.extend(Ext.data.HttpProxy, Ext.data.DataProxy, {getConnection : function(){return this.useAjax ? Ext.Ajax : this.conn;},load : function(params, reader, callback, scope, arg){if(this.fireEvent("beforeload", this, params) !== false){var o = {params : params || {},request: {callback : callback,scope : scope,arg : arg},reader: reader,callback : this.loadResponse,scope: this};if(this.useAjax){Ext.applyIf(o, this.conn);if(this.activeRequest){Ext.Ajax.abort(this.activeRequest);}this.activeRequest = Ext.Ajax.request(o);}else{this.conn.request(o);}}else{callback.call(scope||this, null, arg, false);}},loadResponse : function(o, success, response){delete this.activeRequest;if(!success){this.fireEvent("loadexception", this, o, response);o.request.callback.call(o.request.scope, null, o.request.arg, false);return;}var result;try {result = o.reader.read(response);}catch(e){this.fireEvent("loadexception", this, o, response, e);o.request.callback.call(o.request.scope, null, o.request.arg, false);return;}this.fireEvent("load", this, o, o.request.arg);o.request.callback.call(o.request.scope, result, o.request.arg, true);},update : function(dataSet){},updateResponse : function(dataSet){}});Ext.data.ScriptTagProxy = function(config){Ext.data.ScriptTagProxy.superclass.constructor.call(this);Ext.apply(this, config);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,load : function(params, reader, callback, scope, arg){if(this.fireEvent("beforeload", this, params) !== false){var p = Ext.urlEncode(Ext.apply(params, this.extraParams));var url = this.url;url += (url.indexOf("?") != -1 ? "&" : "?") + p;if(this.nocache){url += "&_dc=" + (new Date().getTime());}var transId = ++Ext.data.ScriptTagProxy.TRANS_ID;var trans = {id : transId,cb : "stcCallback"+transId,scriptId : "stcScript"+transId,params : params,arg : arg,url : url,callback : callback,scope : scope,reader : reader};var conn = this;window[trans.cb] = function(o){conn.handleResponse(o, trans);};url += String.format("&{0}={1}", this.callbackParam, trans.cb);if(this.autoAbort !== false){this.abort();}trans.timeoutId = this.handleFailure.defer(this.timeout, this, [trans]);var script = document.createElement("script");script.setAttribute("src", url);script.setAttribute("type", "text/javascript");script.setAttribute("id", trans.scriptId);this.head.appendChild(script);this.trans = trans;}else{callback.call(scope||this, null, arg, false);}},isLoading : function(){return this.trans ? true : false;},abort : function(){if(this.isLoading()){this.destroyTrans(this.trans);}},destroyTrans : function(trans, isLoaded){this.head.removeChild(document.getElementById(trans.scriptId));clearTimeout(trans.timeoutId);if(isLoaded){window[trans.cb] = undefined;try{delete window[trans.cb];}catch(e){}}else{window[trans.cb] = function(){window[trans.cb] = undefined;try{delete window[trans.cb];}catch(e){}};}},handleResponse : function(o, trans){this.trans = false;this.destroyTrans(trans, true);var result;try {result = trans.reader.readRecords(o);}catch(e){this.fireEvent("loadexception", this, o, trans.arg, e);trans.callback.call(trans.scope||window, null, trans.arg, false);return;}this.fireEvent("load", this, o, trans.arg);trans.callback.call(trans.scope||window, result, trans.arg, true);},handleFailure : function(trans){this.trans = false;this.destroyTrans(trans, false);this.fireEvent("loadexception", this, null, trans.arg);trans.callback.call(trans.scope||window, null, trans.arg, false);}});Ext.data.JsonReader = function(meta, recordType){meta = meta || {};Ext.data.JsonReader.superclass.constructor.call(this, meta, recordType || meta.fields);};Ext.extend(Ext.data.JsonReader, Ext.data.DataReader, {read : function(response){var json = response.responseText;var o = eval("("+json+")");if(!o) {throw {message: "JsonReader.read: Json object not found"};}if(o.metaData){delete this.ef;this.meta = o.metaData;this.recordType = Ext.data.Record.create(o.metaData.fields);this.onMetaChange(this.meta, this.recordType, o);}return this.readRecords(o);},onMetaChange : function(meta, recordType, o){},simpleAccess: function(obj, subsc) {return obj[subsc];},getJsonAccessor: function(){var re = /[\[\.]/;return function(expr) {try {return(re.test(expr))? new Function("obj", "return obj." + expr): function(obj){return obj[expr];};} catch(e){}return Ext.emptyFn;};}(),readRecords : function(o){this.jsonData = o;var s = this.meta, Record = this.recordType,f = Record.prototype.fields, fi = f.items, fl = f.length;if (!this.ef) {if(s.totalProperty) {this.getTotal = this.getJsonAccessor(s.totalProperty);}if(s.successProperty) {this.getSuccess = this.getJsonAccessor(s.successProperty);}this.getRoot = s.root ? this.getJsonAccessor(s.root) : function(p){return p;};if (s.id) {var g = this.getJsonAccessor(s.id);this.getId = function(rec) {var r = g(rec);return (r === undefined || r === "") ? null : r;};} else {this.getId = function(){return null;};}this.ef = [];for(var i = 0; i < fl; i++){f = fi[i];var map = (f.mapping !== undefined && f.mapping !== null) ? f.mapping : f.name;this.ef[i] = this.getJsonAccessor(map);}}var root = this.getRoot(o), c = root.length, totalRecords = c, success = true;if(s.totalProperty){var v = parseInt(this.getTotal(o), 10);if(!isNaN(v)){totalRecords = v;}}if(s.successProperty){var v = this.getSuccess(o);if(v === false || v === 'false'){success = false;}}var records = [];for(var i = 0; i < c; i++){var n = root[i];var values = {};var id = this.getId(n);for(var j = 0; j < fl; j++){f = fi[j];var v = this.ef[j](n);values[f.name] = f.convert((v !== undefined) ? v : f.defaultValue, n);}var record = new Record(values, id);record.json = n;records[i] = record;}return {success : success,records : records,totalRecords : totalRecords};}});Ext.data.XmlReader = function(meta, recordType){meta = meta || {};Ext.data.XmlReader.superclass.constructor.call(this, meta, recordType || meta.fields);};Ext.extend(Ext.data.XmlReader, Ext.data.DataReader, {read : function(response){var doc = response.responseXML;if(!doc) {throw {message: "XmlReader.read: XML Document not available"};}return this.readRecords(doc);},readRecords : function(doc){this.xmlData = doc;var root = doc.documentElement || doc;var q = Ext.DomQuery;var recordType = this.recordType, fields = recordType.prototype.fields;var sid = this.meta.id;var totalRecords = 0, success = true;if(this.meta.totalRecords){totalRecords = q.selectNumber(this.meta.totalRecords, root, 0);}if(this.meta.success){var sv = q.selectValue(this.meta.success, root, true);success = sv !== false && sv !== 'false';}var records = [];var ns = q.select(this.meta.record, root);for(var i = 0, len = ns.length; i < len; i++) {var n = ns[i];var values = {};var id = sid ? q.selectValue(sid, n) : undefined;for(var j = 0, jlen = fields.length; j < jlen; j++){var f = fields.items[j];var v = q.selectValue(f.mapping || f.name, n, f.defaultValue);v = f.convert(v, n);values[f.name] = v;}var record = new recordType(values, id);record.node = n;records[records.length] = record;}return {success : success,records : records,totalRecords : totalRecords || records.length};}});Ext.data.ArrayReader = Ext.extend(Ext.data.JsonReader, {readRecords : function(o){var sid = this.meta ? this.meta.id : null;var recordType = this.recordType, fields = recordType.prototype.fields;var records = [];var root = o;for(var i = 0; i < root.length; i++){var n = root[i];var values = {};var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null);for(var j = 0, jlen = fields.length; j < jlen; j++){var f = fields.items[j];var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j;var v = n[k] !== undefined ? n[k] : f.defaultValue;v = f.convert(v, n);values[f.name] = v;}var record = new recordType(values, id);record.json = n;records[records.length] = record;}return {records : records,totalRecords : records.length};}});Ext.data.Tree = function(root){this.nodeHash = {};this.root = null;if(root){this.setRootNode(root);}this.addEvents("append","remove","move","insert","beforeappend","beforeremove","beforemove","beforeinsert");Ext.data.Tree.superclass.constructor.call(this);};Ext.extend(Ext.data.Tree, Ext.util.Observable, {pathSeparator: "/",proxyNodeEvent : function(){return this.fireEvent.apply(this, arguments);},getRootNode : function(){return this.root;},setRootNode : function(node){this.root = node;node.ownerTree = this;node.isRoot = true;this.registerNode(node);return node;},getNodeById : function(id){return this.nodeHash[id];},registerNode : function(node){this.nodeHash[node.id] = node;},unregisterNode : function(node){delete this.nodeHash[node.id];},toString : function(){return "[Tree"+(this.id?" "+this.id:"")+"]";}});Ext.data.Node = function(attributes){this.attributes = attributes || {};this.leaf = this.attributes.leaf;this.id = this.attributes.id;if(!this.id){this.id = Ext.id(null, "ynode-");this.attributes.id = this.id;}this.childNodes = [];if(!this.childNodes.indexOf){this.childNodes.indexOf = function(o){for(var i = 0, len = this.length; i < len; i++){if(this[i] == o) return i;}return -1;};}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);};Ext.extend(Ext.data.Node, Ext.util.Observable, {fireEvent : function(evtName){if(Ext.data.Node.superclass.fireEvent.apply(this, arguments) === false){return false;}var ot = this.getOwnerTree();if(ot){if(ot.proxyNodeEvent.apply(ot, arguments) === false){return false;}}return true;},isLeaf : function(){return this.leaf === true;},setFirstChild : function(node){this.firstChild = node;},setLastChild : function(node){this.lastChild = node;},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;},appendChild : function(node){var multi = false;if(Ext.isArray(node)){multi = node;}else if(arguments.length > 1){multi = arguments;}if(multi){for(var i = 0, len = multi.length; i < len; i++) {this.appendChild(multi[i]);}}else{if(this.fireEvent("beforeappend", this.ownerTree, this, node) === false){return false;}var index = this.childNodes.length;var oldParent = node.parentNode;if(oldParent){if(node.fireEvent("beforemove", node.getOwnerTree(), node, oldParent, this, index) === false){return false;}oldParent.removeChild(node);}index = this.childNodes.length;if(index == 0){this.setFirstChild(node);}this.childNodes.push(node);node.parentNode = this;var ps = this.childNodes[index-1];if(ps){node.previousSibling = ps;ps.nextSibling = node;}else{node.previousSibling = null;}node.nextSibling = null;this.setLastChild(node);node.setOwnerTree(this.getOwnerTree());this.fireEvent("append", this.ownerTree, this, node, index);if(oldParent){node.fireEvent("move", this.ownerTree, node, oldParent, this, index);}return node;}},removeChild : function(node){var index = this.childNodes.indexOf(node);if(index == -1){return false;}if(this.fireEvent("beforeremove", this.ownerTree, this, node) === false){return false;}this.childNodes.splice(index, 1);if(node.previousSibling){node.previousSibling.nextSibling = node.nextSibling;}if(node.nextSibling){node.nextSibling.previousSibling = node.previousSibling;}if(this.firstChild == node){this.setFirstChild(node.nextSibling);}if(this.lastChild == node){this.setLastChild(node.previousSibling);}node.setOwnerTree(null);node.parentNode = null;node.previousSibling = null;node.nextSibling = null;this.fireEvent("remove", this.ownerTree, this, node);return node;},insertBefore : function(node, refNode){if(!refNode){return this.appendChild(node);}if(node == refNode){return false;}if(this.fireEvent("beforeinsert", this.ownerTree, this, node, refNode) === false){return false;}var index = this.childNodes.indexOf(refNode);var oldParent = node.parentNode;var refIndex = index;if(oldParent == this && this.childNodes.indexOf(node) < index){refIndex--;}if(oldParent){if(node.fireEvent("beforemove", node.getOwnerTree(), node, oldParent, this, index, refNode) === false){return false;}oldParent.removeChild(node);}if(refIndex == 0){this.setFirstChild(node);}this.childNodes.splice(refIndex, 0, node);node.parentNode = this;var ps = this.childNodes[refIndex-1];if(ps){node.previousSibling = ps;ps.nextSibling = node;}else{node.previousSibling = null;}node.nextSibling = refNode;refNode.previousSibling = node;node.setOwnerTree(this.getOwnerTree());this.fireEvent("insert", this.ownerTree, this, node, refNode);if(oldParent){node.fireEvent("move", this.ownerTree, node, oldParent, this, refIndex, refNode);}return node;},remove : function(){this.parentNode.removeChild(this);return this;},item : function(index){return this.childNodes[index];},replaceChild : function(newChild, oldChild){this.insertBefore(newChild, oldChild);this.removeChild(oldChild);return oldChild;},indexOf : function(child){return this.childNodes.indexOf(child);},getOwnerTree : function(){if(!this.ownerTree){var p = this;while(p){if(p.ownerTree){this.ownerTree = p.ownerTree;break;}p = p.parentNode;}}return this.ownerTree;},getDepth : function(){var depth = 0;var p = this;while(p.parentNode){++depth;p = p.parentNode;}return depth;},setOwnerTree : function(tree){if(tree != this.ownerTree){if(this.ownerTree){this.ownerTree.unregisterNode(this);}this.ownerTree = tree;var cs = this.childNodes;for(var i = 0, len = cs.length; i < len; i++) {cs[i].setOwnerTree(tree);}if(tree){tree.registerNode(this);}}},getPath : function(attr){attr = attr || "id";var p = this.parentNode;var b = [this.attributes[attr]];while(p){b.unshift(p.attributes[attr]);p = p.parentNode;}var sep = this.getOwnerTree().pathSeparator;return sep + b.join(sep);},bubble : function(fn, scope, args){var p = this;while(p){if(fn.apply(scope || p, args || [p]) === false){break;}p = p.parentNode;}},cascade : function(fn, scope, args){if(fn.apply(scope || this, args || [this]) !== false){var cs = this.childNodes;for(var i = 0, len = cs.length; i < len; i++) {cs[i].cascade(fn, scope, args);}}},eachChild : function(fn, scope, args){var cs = this.childNodes;for(var i = 0, len = cs.length; i < len; i++) {if(fn.apply(scope || this, args || [cs[i]]) === false){break;}}},findChild : function(attribute, value){var cs = this.childNodes;for(var i = 0, len = cs.length; i < len; i++) {if(cs[i].attributes[attribute] == value){return cs[i];}}return null;},findChildBy : function(fn, scope){var cs = this.childNodes;for(var i = 0, len = cs.length; i < len; i++) {if(fn.call(scope||cs[i], cs[i]) === true){return cs[i];}}return null;},sort : function(fn, scope){var cs = this.childNodes;var len = cs.length;if(len > 0){var sortFn = scope ? function(){fn.apply(scope, arguments);} : fn;cs.sort(sortFn);for(var i = 0; i < len; i++){var n = cs[i];n.previousSibling = cs[i-1];n.nextSibling = cs[i+1];if(i == 0){this.setFirstChild(n);}if(i == len-1){this.setLastChild(n);}}}},contains : function(node){return node.isAncestor(this);},isAncestor : function(node){var p = this.parentNode;while(p){if(p == node){return true;}p = p.parentNode;}return false;},toString : function(){return "[Node"+(this.id?" "+this.id:"")+"]";}});Ext.data.GroupingStore = Ext.extend(Ext.data.Store, {remoteGroup : false,groupOnSort:false,clearGrouping : function(){this.groupField = false;if(this.remoteGroup){if(this.baseParams){delete this.baseParams.groupBy;}this.reload();}else{this.applySort();this.fireEvent('datachanged', this);}},groupBy : function(field, forceRegroup){if(this.groupField == field && !forceRegroup){return;}this.groupField = field;if(this.remoteGroup){if(!this.baseParams){this.baseParams = {};}this.baseParams['groupBy'] = field;}if(this.groupOnSort){this.sort(field);return;}if(this.remoteGroup){this.reload();}else{var si = this.sortInfo || {};if(si.field != field){this.applySort();}else{this.sortData(field);}this.fireEvent('datachanged', this);}},applySort : function(){Ext.data.GroupingStore.superclass.applySort.call(this);if(!this.groupOnSort && !this.remoteGroup){var gs = this.getGroupState();if(gs && gs != this.sortInfo.field){this.sortData(this.groupField);}}},applyGrouping : function(alwaysFireChange){if(this.groupField !== false){this.groupBy(this.groupField, true);return true;}else{if(alwaysFireChange === true){this.fireEvent('datachanged', this);}return false;}},getGroupState : function(){return this.groupOnSort && this.groupField !== false ?(this.sortInfo ? this.sortInfo.field : undefined) : this.groupField;}});Ext.ComponentMgr = function(){var all = new Ext.util.MixedCollection();var types = {};return {register : function(c){all.add(c);},unregister : function(c){all.remove(c);},get : function(id){return all.get(id);},onAvailable : function(id, fn, scope){all.on("add", function(index, o){if(o.id == id){fn.call(scope || o, o);all.un("add", fn, scope);}});},all : all,registerType : function(xtype, cls){types[xtype] = cls;cls.xtype = xtype;},create : function(config, defaultType){return new types[config.xtype || defaultType](config);}};}();Ext.reg = Ext.ComponentMgr.registerType;Ext.Component = function(config){config = config || {};if(config.initialConfig){if(config.isAction){ this.baseAction = config;}config = config.initialConfig; }else if(config.tagName || config.dom || typeof config == "string"){ config = {applyTo: config, id: config.id || config};}this.initialConfig = config;Ext.apply(this, config);this.addEvents('disable','enable','beforeshow','show','beforehide','hide','beforerender','render','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 i = 0, len = this.plugins.length; i < len; i++){this.plugins[i].init(this);}}else{this.plugins.init(this);}}if(this.stateful !== false){this.initState(config);}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, {disabledClass : "x-item-disabled",allowDomMove : true,autoShow : false,hideMode: 'display',hideParent: false,hidden : false,disabled : false,rendered : false,ctype : "Ext.Component",actionMode : "el",getActionEl : function(){return this[this.actionMode];},initComponent : Ext.emptyFn,render : function(container, position){if(!this.rendered && this.fireEvent("beforerender", this) !== false){if(!container && this.el){this.el = Ext.get(this.el);container = this.el.dom.parentNode;this.allowDomMove = false;}this.container = Ext.get(container);if(this.ctCls){this.container.addClass(this.ctCls);}this.rendered = true;if(position !== undefined){if(typeof position == 'number'){position = this.container.dom.childNodes[position];}else{position = Ext.getDom(position);}}this.onRender(this.container, position || 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;}this.fireEvent("render", this);this.afterRender(this.container);if(this.hidden){this.hide();}if(this.disabled){this.disable();}this.initStateEvents();}return this;},initState : function(config){if(Ext.state.Manager){var state = Ext.state.Manager.get(this.stateId || this.id);if(state){if(this.fireEvent('beforestaterestore', this, state) !== false){this.applyState(state);this.fireEvent('staterestore', this, state);}}}},initStateEvents : function(){if(this.stateEvents){for(var i = 0, e; e = this.stateEvents[i]; i++){this.on(e, this.saveState, this, {delay:100});}}},applyState : function(state, config){if(state){Ext.apply(this, state);}},getState : function(){return null;},saveState : function(){if(Ext.state.Manager){var state = this.getState();if(this.fireEvent('beforestatesave', this, state) !== false){Ext.state.Manager.set(this.stateId || this.id, state);this.fireEvent('statesave', this, state);}}},applyToMarkup : function(el){this.allowDomMove = false;this.el = Ext.get(el);this.render(this.el.dom.parentNode);},addClass : function(cls){if(this.el){this.el.addClass(cls);}else{this.cls = this.cls ? this.cls + ' ' + cls : cls;}},removeClass : function(cls){if(this.el){this.el.removeClass(cls);}else if(this.cls){this.cls = this.cls.split(' ').remove(cls).join(' ');}},onRender : function(ct, position){if(this.autoEl){if(typeof this.autoEl == 'string'){this.el = document.createElement(this.autoEl);}else{var div = document.createElement('div');Ext.DomHelper.overwrite(div, this.autoEl);this.el = div.firstChild;}if (!this.el.id) {this.el.id = this.getId();}}if(this.el){this.el = Ext.get(this.el);if(this.allowDomMove !== false){ct.dom.insertBefore(this.el.dom, position);}}},getAutoCreate : function(){var cfg = typeof this.autoCreate == "object" ?this.autoCreate : Ext.apply({}, this.defaultAutoCreate);if(this.id && !cfg.id){cfg.id = this.id;}return cfg;},afterRender : Ext.emptyFn,destroy : function(){if(this.fireEvent("beforedestroy", this) !== false){this.beforeDestroy();if(this.rendered){this.el.removeAllListeners();this.el.remove();if(this.actionMode == "container"){this.container.remove();}}this.onDestroy();Ext.ComponentMgr.unregister(this);this.fireEvent("destroy", this);this.purgeListeners();}},beforeDestroy : Ext.emptyFn,onDestroy : Ext.emptyFn,getEl : 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(selectText, delay){if(delay){this.focus.defer(typeof delay == 'number' ? delay : 10, this, [selectText, false]);return;}if(this.rendered){this.el.focus();if(selectText === true){this.el.dom.select();}}return this;},blur : function(){if(this.rendered){this.el.blur();}return this;},disable : function(){if(this.rendered){this.onDisable();}this.disabled = 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(disabled){this[disabled ? "disable" : "enable"]();},show: function(){if(this.fireEvent("beforeshow", this) !== false){this.hidden = false;if(this.autoRender){this.render(typeof this.autoRender == 'boolean' ? Ext.getBody() : this.autoRender);}if(this.rendered){this.onShow();}this.fireEvent("show", this);}return this;},onShow : function(){if(this.hideParent){this.container.removeClass('x-hide-' + this.hideMode);}else{this.getActionEl().removeClass('x-hide-' + this.hideMode);}},hide: function(){if(this.fireEvent("beforehide", this) !== false){this.hidden = true;if(this.rendered){this.onHide();}this.fireEvent("hide", this);}return this;},onHide : function(){if(this.hideParent){this.container.addClass('x-hide-' + this.hideMode);}else{this.getActionEl().addClass('x-hide-' + this.hideMode);}},setVisible: function(visible){if(visible) {this.show();}else{this.hide();}return this;},isVisible : function(){return this.rendered && this.getActionEl().isVisible();},cloneConfig : function(overrides){overrides = overrides || {};var id = overrides.id || Ext.id();var cfg = Ext.applyIf(overrides, this.initialConfig);cfg.id = id; return new this.constructor(cfg);},getXType : function(){return this.constructor.xtype;},isXType : function(xtype, shallow){return !shallow ?('/' + this.getXTypes() + '/').indexOf('/' + xtype + '/') != -1 :this.constructor.xtype == xtype;},getXTypes : function(){var tc = this.constructor;if(!tc.xtypes){var c = [], sc = this;while(sc && sc.constructor.xtype){c.unshift(sc.constructor.xtype);sc = sc.constructor.superclass;}tc.xtypeChain = c;tc.xtypes = c.join('/');}return tc.xtypes;},findParentBy: function(fn) {for (var p = this.ownerCt; (p != null) && !fn(p, this); p = p.ownerCt);return p || null;},findParentByType: function(xtype) {return typeof xtype == 'function' ?this.findParentBy(function(p){return p.constructor === xtype;}) :this.findParentBy(function(p){return p.constructor.xtype === xtype;});}});Ext.reg('component', Ext.Component);Ext.Action = function(config){this.initialConfig = config;this.items = [];}Ext.Action.prototype = {isAction : true,setText : function(text){this.initialConfig.text = text;this.callEach('setText', [text]);},getText : function(){return this.initialConfig.text;},setIconClass : function(cls){this.initialConfig.iconCls = cls;this.callEach('setIconClass', [cls]);},getIconClass : function(){return this.initialConfig.iconCls;},setDisabled : function(v){this.initialConfig.disabled = v;this.callEach('setDisabled', [v]);},enable : function(){this.setDisabled(false);},disable : function(){this.setDisabled(true);},isDisabled : function(){return this.initialConfig.disabled;},setHidden : function(v){this.initialConfig.hidden = v;this.callEach('setVisible', [!v]);},show : function(){this.setHidden(false);},hide : function(){this.setHidden(true);},isHidden : function(){return this.initialConfig.hidden;},setHandler : function(fn, scope){this.initialConfig.handler = fn;this.initialConfig.scope = scope;this.callEach('setHandler', [fn, scope]);},each : function(fn, scope){Ext.each(this.items, fn, scope);},callEach : function(fnName, args){var cs = this.items;for(var i = 0, len = cs.length; i < len; i++){cs[i][fnName].apply(cs[i], args);}},addComponent : function(comp){this.items.push(comp);comp.on('destroy', this.removeComponent, this);},removeComponent : function(comp){this.items.remove(comp);},execute : function(){this.initialConfig.handler.apply(this.initialConfig.scope || window, arguments);}};(function(){Ext.Layer = function(config, existingEl){config = config || {};var dh = Ext.DomHelper;var cp = config.parentEl, pel = cp ? Ext.getDom(cp) : document.body;if(existingEl){this.dom = Ext.getDom(existingEl);}if(!this.dom){var o = config.dh || {tag: "div", cls: "x-layer"};this.dom = dh.append(pel, o);}if(config.cls){this.addClass(config.cls);}this.constrain = config.constrain !== false;this.visibilityMode = Ext.Element.VISIBILITY;if(config.id){this.id = this.dom.id = config.id;}else{this.id = Ext.id(this.dom);}this.zindex = config.zindex || this.getZIndex();this.position("absolute", this.zindex);if(config.shadow){this.shadowOffset = config.shadowOffset || 4;this.shadow = new Ext.Shadow({offset : this.shadowOffset,mode : config.shadow});}else{this.shadowOffset = 0;}this.useShim = config.shim !== false && Ext.useShims;this.useDisplay = config.useDisplay;this.hide();};var supr = Ext.Element.prototype;var shims = [];Ext.extend(Ext.Layer, Ext.Element, {getZIndex : function(){return this.zindex || parseInt(this.getStyle("z-index"), 10) || 11000;},getShim : function(){if(!this.useShim){return null;}if(this.shim){return this.shim;}var shim = shims.shift();if(!shim){shim = this.createShim();shim.enableDisplayMode('block');shim.dom.style.display = 'none';shim.dom.style.visibility = 'visible';}var pn = this.dom.parentNode;if(shim.dom.parentNode != pn){pn.insertBefore(shim.dom, this.dom);}shim.setStyle('z-index', this.getZIndex()-2);this.shim = shim;return shim;},hideShim : function(){if(this.shim){this.shim.setDisplayed(false);shims.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(show){if(this.shadow){this.shadowDisabled = false;this.shadowOffset = this.lastShadowOffset;delete this.lastShadowOffset;if(show){this.sync(true);}}},sync : function(doShow){var sw = this.shadow;if(!this.updating && this.isVisible() && (sw || this.useShim)){var sh = this.getShim();var w = this.getWidth(),h = this.getHeight();var l = this.getLeft(true),t = this.getTop(true);if(sw && !this.shadowDisabled){if(doShow && !sw.isVisible()){sw.show(this);}else{sw.realign(l, t, w, h);}if(sh){if(doShow){sh.show();}var a = sw.adjusts, s = sh.dom.style;s.left = (Math.min(l, l+a.l))+"px";s.top = (Math.min(t, t+a.t))+"px";s.width = (w+a.w)+"px";s.height = (h+a.h)+"px";}}else if(sh){if(doShow){sh.show();}sh.setSize(w, h);sh.setLeftTop(l, t);}}},destroy : function(){this.hideShim();if(this.shadow){this.shadow.hide();}this.removeAllListeners();Ext.removeNode(this.dom);Ext.Element.uncache(this.id);},remove : function(){this.destroy();},beginUpdate : function(){this.updating = true;},endUpdate : function(){this.updating = false;this.sync(true);},hideUnders : function(negOffset){if(this.shadow){this.shadow.hide();}this.hideShim();},constrainXY : function(){if(this.constrain){var vw = Ext.lib.Dom.getViewWidth(),vh = Ext.lib.Dom.getViewHeight();var s = Ext.getDoc().getScroll();var xy = this.getXY();var x = xy[0], y = xy[1];var w = this.dom.offsetWidth+this.shadowOffset, h = this.dom.offsetHeight+this.shadowOffset;var moved = false;if((x + w) > vw+s.left){x = vw - w - this.shadowOffset;moved = true;}if((y + h) > vh+s.top){y = vh - h - this.shadowOffset;moved = true;}if(x < s.left){x = s.left;moved = true;}if(y < s.top){y = s.top;moved = true;}if(moved){if(this.avoidY){var ay = this.avoidY;if(y <= ay && (y+h) >= ay){y = ay-h-5;}}xy = [x, y];this.storeXY(xy);supr.setXY.call(this, xy);this.sync();}}},isVisible : function(){return this.visible;},showAction : function(){this.visible = true;if(this.useDisplay === true){this.setDisplayed("");}else if(this.lastXY){supr.setXY.call(this, this.lastXY);}else if(this.lastLT){supr.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(v, a, d, c, e){if(v){this.showAction();}if(a && v){var cb = function(){this.sync(true);if(c){c();}}.createDelegate(this);supr.setVisible.call(this, true, true, d, cb, e);}else{if(!v){this.hideUnders(true);}var cb = c;if(a){cb = function(){this.hideAction();if(c){c();}}.createDelegate(this);}supr.setVisible.call(this, v, a, d, cb, e);if(v){this.sync(true);}else if(!a){this.hideAction();}}},storeXY : function(xy){delete this.lastLT;this.lastXY = xy;},storeLeftTop : function(left, top){delete this.lastXY;this.lastLT = [left, top];},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(left){this.storeLeftTop(left, this.getTop(true));supr.setLeft.apply(this, arguments);this.sync();},setTop : function(top){this.storeLeftTop(this.getLeft(true), top);supr.setTop.apply(this, arguments);this.sync();},setLeftTop : function(left, top){this.storeLeftTop(left, top);supr.setLeftTop.apply(this, arguments);this.sync();},setXY : function(xy, a, d, c, e){this.fixDisplay();this.beforeAction();this.storeXY(xy);var cb = this.createCB(c);supr.setXY.call(this, xy, a, d, cb, e);if(!a){cb();}},createCB : function(c){var el = this;return function(){el.constrainXY();el.sync(true);if(c){c();}};},setX : function(x, a, d, c, e){this.setXY([x, this.getY()], a, d, c, e);},setY : function(y, a, d, c, e){this.setXY([this.getX(), y], a, d, c, e);},setSize : function(w, h, a, d, c, e){this.beforeAction();var cb = this.createCB(c);supr.setSize.call(this, w, h, a, d, cb, e);if(!a){cb();}},setWidth : function(w, a, d, c, e){this.beforeAction();var cb = this.createCB(c);supr.setWidth.call(this, w, a, d, cb, e);if(!a){cb();}},setHeight : function(h, a, d, c, e){this.beforeAction();var cb = this.createCB(c);supr.setHeight.call(this, h, a, d, cb, e);if(!a){cb();}},setBounds : function(x, y, w, h, a, d, c, e){this.beforeAction();var cb = this.createCB(c);if(!a){this.storeXY([x, y]);supr.setXY.call(this, [x, y]);supr.setSize.call(this, w, h, a, d, cb, e);cb();}else{supr.setBounds.call(this, x, y, w, h, a, d, cb, e);}return this;},setZIndex : function(zindex){this.zindex = zindex;this.setStyle("z-index", zindex + 2);if(this.shadow){this.shadow.setZIndex(zindex + 1);}if(this.shim){this.shim.setStyle("z-index", zindex);}}});})();Ext.Shadow = function(config){Ext.apply(this, config);if(typeof this.mode != "string"){this.mode = this.defaultMode;}var o = this.offset, a = {h: 0};var rad = Math.floor(this.offset/2);switch(this.mode.toLowerCase()){ case "drop":a.w = 0;a.l = a.t = o;a.t -= 1;if(Ext.isIE){a.l -= this.offset + rad;a.t -= this.offset + rad;a.w -= rad;a.h -= rad;a.t += 1;}break;case "sides":a.w = (o*2);a.l = -o;a.t = o-1;if(Ext.isIE){a.l -= (this.offset - rad);a.t -= this.offset + rad;a.l += 1;a.w -= (this.offset - rad)*2;a.w -= rad + 1;a.h -= 1;}break;case "frame":a.w = a.h = (o*2);a.l = a.t = -o;a.t += 1;a.h -= 2;if(Ext.isIE){a.l -= (this.offset - rad);a.t -= (this.offset - rad);a.l += 1;a.w -= (this.offset + rad + 1);a.h -= (this.offset + rad);a.h += 1;}break;};this.adjusts = a;};Ext.Shadow.prototype = {offset: 4,defaultMode: "drop",show : function(target){target = Ext.get(target);if(!this.el){this.el = Ext.Shadow.Pool.pull();if(this.el.dom.nextSibling != target.dom){this.el.insertBefore(target);}}this.el.setStyle("z-index", this.zIndex || parseInt(target.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(target.getLeft(true),target.getTop(true),target.getWidth(),target.getHeight());this.el.dom.style.display = "block";},isVisible : function(){return this.el ? true : false;},realign : function(l, t, w, h){if(!this.el){return;}var a = this.adjusts, d = this.el.dom, s = d.style;var iea = 0;s.left = (l+a.l)+"px";s.top = (t+a.t)+"px";var sw = (w+a.w), sh = (h+a.h), sws = sw +"px", shs = sh + "px";if(s.width != sws || s.height != shs){s.width = sws;s.height = shs;if(!Ext.isIE){var cn = d.childNodes;var sww = Math.max(0, (sw-12))+"px";cn[0].childNodes[1].style.width = sww;cn[1].childNodes[1].style.width = sww;cn[2].childNodes[1].style.width = sww;cn[1].style.height = Math.max(0, (sh-12))+"px";}}},hide : function(){if(this.el){this.el.dom.style.display = "none";Ext.Shadow.Pool.push(this.el);delete this.el;}},setZIndex : function(z){this.zIndex = z;if(this.el){this.el.setStyle("z-index", z);}}};Ext.Shadow.Pool = function(){var p = [];var markup = Ext.isIE ?'<div class="x-ie-shadow"></div>' :'<div class="x-shadow"><div class="xst"><div class="xstl"></div><div class="xstc"></div><div class="xstr"></div></div><div class="xsc"><div class="xsml"></div><div class="xsmc"></div><div class="xsmr"></div></div><div class="xsb"><div class="xsbl"></div><div class="xsbc"></div><div class="xsbr"></div></div></div>';return {pull : function(){var sh = p.shift();if(!sh){sh = Ext.get(Ext.DomHelper.insertHtml("beforeBegin", document.body.firstChild, markup));sh.autoBoxAdjust = false;}return sh;},push : function(sh){p.push(sh);}};}();Ext.BoxComponent = Ext.extend(Ext.Component, {initComponent : function(){Ext.BoxComponent.superclass.initComponent.call(this);this.addEvents('resize','move');},boxReady : false,deferHeight: false,setSize : function(w, h){if(typeof w == 'object'){h = w.height;w = w.width;}if(!this.boxReady){this.width = w;this.height = h;return this;}if(this.lastSize && this.lastSize.width == w && this.lastSize.height == h){return this;}this.lastSize = {width: w, height: h};var adj = this.adjustSize(w, h);var aw = adj.width, ah = adj.height;if(aw !== undefined || ah !== undefined){ var rz = this.getResizeEl();if(!this.deferHeight && aw !== undefined && ah !== undefined){rz.setSize(aw, ah);}else if(!this.deferHeight && ah !== undefined){rz.setHeight(ah);}else if(aw !== undefined){rz.setWidth(aw);}this.onResize(aw, ah, w, h);this.fireEvent('resize', this, aw, ah, w, h);}return this;},setWidth : function(width){return this.setSize(width);},setHeight : function(height){return this.setSize(undefined, height);},getSize : function(){return this.el.getSize();},getPosition : function(local){if(local === true){return [this.el.getLeft(true), this.el.getTop(true)];}return this.xy || this.el.getXY();},getBox : function(local){var s = this.el.getSize();if(local === true){s.x = this.el.getLeft(true);s.y = this.el.getTop(true);}else{var xy = this.xy || this.el.getXY();s.x = xy[0];s.y = xy[1];}return s;},updateBox : function(box){this.setSize(box.width, box.height);this.setPagePosition(box.x, box.y);return this;},getResizeEl : function(){return this.resizeEl || this.el;},getPositionEl : function(){return this.positionEl || this.el;},setPosition : function(x, y){if(x && typeof x[1] == 'number'){y = x[1];x = x[0];}this.x = x;this.y = y;if(!this.boxReady){return this;}var adj = this.adjustPosition(x, y);var ax = adj.x, ay = adj.y;var el = this.getPositionEl();if(ax !== undefined || ay !== undefined){if(ax !== undefined && ay !== undefined){el.setLeftTop(ax, ay);}else if(ax !== undefined){el.setLeft(ax);}else if(ay !== undefined){el.setTop(ay);}this.onPosition(ax, ay);this.fireEvent('move', this, ax, ay);}return this;},setPagePosition : function(x, y){if(x && typeof x[1] == 'number'){y = x[1];x = x[0];}this.pageX = x;this.pageY = y;if(!this.boxReady){return;}if(x === undefined || y === undefined){ return;}var p = this.el.translatePoints(x, y);this.setPosition(p.left, p.top);return this;},onRender : function(ct, position){Ext.BoxComponent.superclass.onRender.call(this, ct, position);if(this.resizeEl){this.resizeEl = Ext.get(this.resizeEl);}if(this.positionEl){this.positionEl = Ext.get(this.positionEl);}},afterRender : function(){Ext.BoxComponent.superclass.afterRender.call(this);this.boxReady = true;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.el.getWidth(), this.autoHeight ? undefined : this.el.getHeight());return this;},onResize : function(adjWidth, adjHeight, rawWidth, rawHeight){},onPosition : function(x, y){},adjustSize : function(w, h){if(this.autoWidth){w = 'auto';}if(this.autoHeight){h = 'auto';}return {width : w, height: h};},adjustPosition : function(x, y){return {x : x, y: y};}});Ext.reg('box', Ext.BoxComponent);Ext.SplitBar = function(dragElement, resizingElement, orientation, placement, existingProxy){this.el = Ext.get(dragElement, true);this.el.dom.unselectable = "on";this.resizingEl = Ext.get(resizingElement, true);this.orientation = orientation || Ext.SplitBar.HORIZONTAL;this.minSize = 0;this.maxSize = 2000;this.animate = false;this.useShim = false;this.shim = null;if(!existingProxy){this.proxy = Ext.SplitBar.createProxy(this.orientation);}else{this.proxy = Ext.get(existingProxy).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 = placement || (this.el.getX() > this.resizingEl.getX() ? Ext.SplitBar.LEFT : Ext.SplitBar.RIGHT);this.el.addClass("x-splitbar-h");}else{this.placement = placement || (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(x, y){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 size = this.adapter.getElementSize(this);this.activeMinSize = this.getMinimumSize();;this.activeMaxSize = this.getMaximumSize();;var c1 = size - this.activeMinSize;var c2 = Math.max(this.activeMaxSize - size, 0);if(this.orientation == Ext.SplitBar.HORIZONTAL){this.dd.resetConstraints();this.dd.setXConstraint(this.placement == Ext.SplitBar.LEFT ? c1 : c2,this.placement == Ext.SplitBar.LEFT ? c2 : c1);this.dd.setYConstraint(0, 0);}else{this.dd.resetConstraints();this.dd.setXConstraint(0, 0);this.dd.setYConstraint(this.placement == Ext.SplitBar.TOP ? c1 : c2,this.placement == Ext.SplitBar.TOP ? c2 : c1);}this.dragSpecs.startSize = size;this.dragSpecs.startPoint = [x, y];Ext.dd.DDProxy.prototype.b4StartDrag.call(this.dd, x, y);},onEndProxyDrag : function(e){Ext.get(this.proxy).setDisplayed(false);var endPoint = Ext.lib.Event.getXY(e);if(this.overlay){this.overlay.remove();delete this.overlay;}var newSize;if(this.orientation == Ext.SplitBar.HORIZONTAL){newSize = this.dragSpecs.startSize +(this.placement == Ext.SplitBar.LEFT ?endPoint[0] - this.dragSpecs.startPoint[0] :this.dragSpecs.startPoint[0] - endPoint[0]);}else{newSize = this.dragSpecs.startSize +(this.placement == Ext.SplitBar.TOP ?endPoint[1] - this.dragSpecs.startPoint[1] :this.dragSpecs.startPoint[1] - endPoint[1]);}newSize = Math.min(Math.max(newSize, this.activeMinSize), this.activeMaxSize);if(newSize != this.dragSpecs.startSize){if(this.fireEvent('beforeapply', this, newSize) !== false){this.adapter.setElementSize(this, newSize);this.fireEvent("moved", this, newSize);this.fireEvent("resize", this, newSize);}}},getAdapter : function(){return this.adapter;},setAdapter : function(adapter){this.adapter = adapter;this.adapter.init(this);},getMinimumSize : function(){return this.minSize;},setMinimumSize : function(minSize){this.minSize = minSize;},getMaximumSize : function(){return this.maxSize;},setMaximumSize : function(maxSize){this.maxSize = maxSize;},setCurrentSize : function(size){var oldAnimate = this.animate;this.animate = false;this.adapter.setElementSize(this, size);this.animate = oldAnimate;},destroy : function(removeEl){if(this.shim){this.shim.remove();}this.dd.unreg();Ext.removeNode(this.proxy);if(removeEl){this.el.remove();}}});Ext.SplitBar.createProxy = function(dir){var proxy = new Ext.Element(document.createElement("div"));proxy.unselectable();var cls = 'x-splitbar-proxy';proxy.addClass(cls + ' ' + (dir == Ext.SplitBar.HORIZONTAL ? cls +'-h' : cls + '-v'));document.body.appendChild(proxy.dom);return proxy.dom;};Ext.SplitBar.BasicLayoutAdapter = function(){};Ext.SplitBar.BasicLayoutAdapter.prototype = {init : function(s){},getElementSize : function(s){if(s.orientation == Ext.SplitBar.HORIZONTAL){return s.resizingEl.getWidth();}else{return s.resizingEl.getHeight();}},setElementSize : function(s, newSize, onComplete){if(s.orientation == Ext.SplitBar.HORIZONTAL){if(!s.animate){s.resizingEl.setWidth(newSize);if(onComplete){onComplete(s, newSize);}}else{s.resizingEl.setWidth(newSize, true, .1, onComplete, 'easeOut');}}else{if(!s.animate){s.resizingEl.setHeight(newSize);if(onComplete){onComplete(s, newSize);}}else{s.resizingEl.setHeight(newSize, true, .1, onComplete, 'easeOut');}}}};Ext.SplitBar.AbsoluteLayoutAdapter = function(container){this.basic = new Ext.SplitBar.BasicLayoutAdapter();this.container = Ext.get(container);};Ext.SplitBar.AbsoluteLayoutAdapter.prototype = {init : function(s){this.basic.init(s);},getElementSize : function(s){return this.basic.getElementSize(s);},setElementSize : function(s, newSize, onComplete){this.basic.setElementSize(s, newSize, this.moveSplitter.createDelegate(this, [s]));},moveSplitter : function(s){var yes = Ext.SplitBar;switch(s.placement){case yes.LEFT:s.el.setX(s.resizingEl.getRight());break;case yes.RIGHT:s.el.setStyle("right", (this.container.getWidth() - s.resizingEl.getLeft()) + "px");break;case yes.TOP:s.el.setY(s.resizingEl.getBottom());break;case yes.BOTTOM:s.el.setY(s.resizingEl.getTop() - s.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, {autoDestroy: true,defaultType: 'panel',initComponent : function(){Ext.Container.superclass.initComponent.call(this);this.addEvents('afterlayout','beforeadd','beforeremove','add','remove');var items = this.items;if(items){delete this.items;if(Ext.isArray(items)){this.add.apply(this, items);}else{this.add(items);}}},initItems : function(){if(!this.items){this.items = new Ext.util.MixedCollection(false, this.getComponentId);this.getLayout(); }},setLayout : function(layout){if(this.layout && this.layout != layout){this.layout.setContainer(null);}this.initItems();this.layout = layout;layout.setContainer(this);},render : function(){Ext.Container.superclass.render.apply(this, arguments);if(this.layout){if(typeof this.layout == 'string'){this.layout = new Ext.Container.LAYOUTS[this.layout.toLowerCase()](this.layoutConfig);}this.setLayout(this.layout);if(this.activeItem !== undefined){var item = this.activeItem;delete this.activeItem;this.layout.setActiveItem(item);return;}}if(!this.ownerCt){this.doLayout();}if(this.monitorResize === true){Ext.EventManager.onWindowResize(this.doLayout, this, [false]);}},getLayoutTarget : function(){return this.el;},getComponentId : function(comp){return comp.itemId || comp.id;},add : function(comp){if(!this.items){this.initItems();}var a = arguments, len = a.length;if(len > 1){for(var i = 0; i < len; i++) {this.add(a[i]);}return;}var c = this.lookupComponent(this.applyDefaults(comp));var pos = this.items.length;if(this.fireEvent('beforeadd', this, c, pos) !== false && this.onBeforeAdd(c) !== false){this.items.add(c);c.ownerCt = this;this.fireEvent('add', this, c, pos);}return c;},insert : function(index, comp){if(!this.items){this.initItems();}var a = arguments, len = a.length;if(len > 2){for(var i = len-1; i >= 1; --i) {this.insert(index, a[i]);}return;}var c = this.lookupComponent(this.applyDefaults(comp));if(c.ownerCt == this && this.items.indexOf(c) < index){--index;}if(this.fireEvent('beforeadd', this, c, index) !== false && this.onBeforeAdd(c) !== false){this.items.insert(index, c);c.ownerCt = this;this.fireEvent('add', this, c, index);}return c;},applyDefaults : function(c){if(this.defaults){if(typeof c == 'string'){c = Ext.ComponentMgr.get(c);Ext.apply(c, this.defaults);}else if(!c.events){Ext.applyIf(c, this.defaults);}else{Ext.apply(c, this.defaults);}}return c;},onBeforeAdd : function(item){if(item.ownerCt){item.ownerCt.remove(item, false);}if(this.hideBorders === true){item.border = (item.border === true);}},remove : function(comp, autoDestroy){var c = this.getComponent(comp);if(c && this.fireEvent('beforeremove', this, c) !== false){this.items.remove(c);delete c.ownerCt;if(autoDestroy === true || (autoDestroy !== false && this.autoDestroy)){c.destroy();}if(this.layout && this.layout.activeItem == c){delete this.layout.activeItem;}this.fireEvent('remove', this, c);}return c;},getComponent : function(comp){if(typeof comp == 'object'){return comp;}return this.items.get(comp);},lookupComponent : function(comp){if(typeof comp == 'string'){return Ext.ComponentMgr.get(comp);}else if(!comp.events){return this.createComponent(comp);}return comp;},createComponent : function(config){return Ext.ComponentMgr.create(config, this.defaultType);},doLayout : function(shallow){if(this.rendered && this.layout){this.layout.layout();}if(shallow !== false && this.items){var cs = this.items.items;for(var i = 0, len = cs.length; i < len; i++) {var c = cs[i];if(c.doLayout){c.doLayout();}}}},getLayout : function(){if(!this.layout){var layout = new Ext.layout.ContainerLayout(this.layoutConfig);this.setLayout(layout);}return this.layout;},onDestroy : function(){if(this.items){var cs = this.items.items;for(var i = 0, len = cs.length; i < len; i++) {Ext.destroy(cs[i]);}}if(this.monitorResize){Ext.EventManager.removeResizeListener(this.doLayout, this);}Ext.Container.superclass.onDestroy.call(this);},bubble : function(fn, scope, args){var p = this;while(p){if(fn.apply(scope || p, args || [p]) === false){break;}p = p.ownerCt;}},cascade : function(fn, scope, args){if(fn.apply(scope || this, args || [this]) !== false){if(this.items){var cs = this.items.items;for(var i = 0, len = cs.length; i < len; i++){if(cs[i].cascade){cs[i].cascade(fn, scope, args);}else{fn.apply(scope || this, args || [cs[i]]);}}}}},findById : function(id){var m, ct = this;this.cascade(function(c){if(ct != c && c.id === id){m = c;return false;}});return m || null;},findByType : function(xtype){return typeof xtype == 'function' ?this.findBy(function(c){return c.constructor === xtype;}) :this.findBy(function(c){return c.constructor.xtype === xtype;});},find : function(prop, value){return this.findBy(function(c){return c[prop] === value;});},findBy : function(fn, scope){var m = [], ct = this;this.cascade(function(c){if(ct != c && fn.call(scope || c, c, ct) === true){m.push(c);}});return m;}});Ext.Container.LAYOUTS = {};Ext.reg('container', Ext.Container);Ext.layout.ContainerLayout = function(config){Ext.apply(this, config);};Ext.layout.ContainerLayout.prototype = {monitorResize:false,activeItem : null,layout : function(){var target = this.container.getLayoutTarget();this.onLayout(this.container, target);this.container.fireEvent('afterlayout', this.container, this);},onLayout : function(ct, target){this.renderAll(ct, target);},isValidParent : function(c, target){var el = c.getPositionEl ? c.getPositionEl() : c.getEl();return el.dom.parentNode == target.dom;},renderAll : function(ct, target){var items = ct.items.items;for(var i = 0, len = items.length; i < len; i++) {var c = items[i];if(c && (!c.rendered || !this.isValidParent(c, target))){this.renderItem(c, i, target);}}},renderItem : function(c, position, target){if(c && !c.rendered){c.render(target, position);if(this.extraCls){var t = c.getPositionEl ? c.getPositionEl() : c;t.addClass(this.extraCls);}if (this.renderHidden && c != this.activeItem) {c.hide();}}else if(c && !this.isValidParent(c, target)){if(this.extraCls){c.addClass(this.extraCls);}if(typeof position == 'number'){position = target.dom.childNodes[position];}target.dom.insertBefore(c.getEl().dom, position || null);if (this.renderHidden && c != this.activeItem) {c.hide();}}},onResize: function(){if(this.container.collapsed){return;}var b = this.container.bufferResize;if(b){if(!this.resizeTask){this.resizeTask = new Ext.util.DelayedTask(this.layout, this);this.resizeBuffer = typeof b == 'number' ? b : 100;}this.resizeTask.delay(this.resizeBuffer);}else{this.layout();}},setContainer : function(ct){if(this.monitorResize && ct != this.container){if(this.container){this.container.un('resize', this.onResize, this);}if(ct){ct.on('resize', this.onResize, this);}}this.container = ct;},parseMargins : function(v){var ms = v.split(' ');var len = ms.length;if(len == 1){ms[1] = ms[0];ms[2] = ms[0];ms[3] = ms[0];}if(len == 2){ms[2] = ms[0];ms[3] = ms[1];}return {top:parseInt(ms[0], 10) || 0,right:parseInt(ms[1], 10) || 0,bottom:parseInt(ms[2], 10) || 0,left:parseInt(ms[3], 10) || 0};}};Ext.Container.LAYOUTS['auto'] = Ext.layout.ContainerLayout;Ext.layout.FitLayout = Ext.extend(Ext.layout.ContainerLayout, {monitorResize:true,onLayout : function(ct, target){Ext.layout.FitLayout.superclass.onLayout.call(this, ct, target);if(!this.container.collapsed){this.setItemSize(this.activeItem || ct.items.itemAt(0), target.getStyleSize());}},setItemSize : function(item, size){if(item && size.height > 0){item.setSize(size);}}});Ext.Container.LAYOUTS['fit'] = Ext.layout.FitLayout;Ext.layout.CardLayout = Ext.extend(Ext.layout.FitLayout, {deferredRender : false,renderHidden : true,setActiveItem : function(item){item = this.container.getComponent(item);if(this.activeItem != item){if(this.activeItem){this.activeItem.hide();}this.activeItem = item;item.show();this.layout();}},renderAll : function(ct, target){if(this.deferredRender){this.renderItem(this.activeItem, undefined, target);}else{Ext.layout.CardLayout.superclass.renderAll.call(this, ct, target);}}});Ext.Container.LAYOUTS['card'] = Ext.layout.CardLayout;Ext.layout.AnchorLayout = Ext.extend(Ext.layout.ContainerLayout, {monitorResize:true,getAnchorViewSize : function(ct, target){return target.dom == document.body ?target.getViewSize() : target.getStyleSize();},onLayout : function(ct, target){Ext.layout.AnchorLayout.superclass.onLayout.call(this, ct, target);var size = this.getAnchorViewSize(ct, target);var w = size.width, h = size.height;if(w < 20 || h < 20){return;}var aw, ah;if(ct.anchorSize){if(typeof ct.anchorSize == 'number'){aw = ct.anchorSize;}else{aw = ct.anchorSize.width;ah = ct.anchorSize.height;}}else{aw = ct.initialConfig.width;ah = ct.initialConfig.height;}var cs = ct.items.items, len = cs.length, i, c, a, cw, ch;for(i = 0; i < len; i++){c = cs[i];if(c.anchor){a = c.anchorSpec;if(!a){var vs = c.anchor.split(' ');c.anchorSpec = a = {right: this.parseAnchor(vs[0], c.initialConfig.width, aw),bottom: this.parseAnchor(vs[1], c.initialConfig.height, ah)};}cw = a.right ? this.adjustWidthAnchor(a.right(w), c) : undefined;ch = a.bottom ? this.adjustHeightAnchor(a.bottom(h), c) : undefined;if(cw || ch){c.setSize(cw || undefined, ch || undefined);}}}},parseAnchor : function(a, start, cstart){if(a && a != 'none'){var last;if(/^(r|right|b|bottom)$/i.test(a)){var diff = cstart - start;return function(v){if(v !== last){last = v;return v - diff;}}}else if(a.indexOf('%') != -1){var ratio = parseFloat(a.replace('%', ''))*.01;return function(v){if(v !== last){last = v;return Math.floor(v*ratio);}}}else{a = parseInt(a, 10);if(!isNaN(a)){return function(v){if(v !== last){last = v;return v + a;}}}}}return false;},adjustWidthAnchor : function(value, comp){return value;},adjustHeightAnchor : function(value, comp){return value;}});Ext.Container.LAYOUTS['anchor'] = Ext.layout.AnchorLayout;Ext.layout.ColumnLayout = Ext.extend(Ext.layout.ContainerLayout, {monitorResize:true,extraCls: 'x-column',scrollOffset : 0,isValidParent : function(c, target){return c.getEl().dom.parentNode == this.innerCt.dom;},onLayout : function(ct, target){var cs = ct.items.items, len = cs.length, c, i;if(!this.innerCt){target.addClass('x-column-layout-ct');this.innerCt = target.createChild({cls:'x-column-inner'});this.innerCt.createChild({cls:'x-clear'});}this.renderAll(ct, this.innerCt);var size = target.getViewSize();if(size.width < 1 && size.height < 1){return;}var w = size.width - target.getPadding('lr') - this.scrollOffset,h = size.height - target.getPadding('tb'),pw = w;this.innerCt.setWidth(w);for(i = 0; i < len; i++){c = cs[i];if(!c.columnWidth){pw -= (c.getSize().width + c.getEl().getMargins('lr'));}}pw = pw < 0 ? 0 : pw;for(i = 0; i < len; i++){c = cs[i];if(c.columnWidth){c.setSize(Math.floor(c.columnWidth*pw) - c.getEl().getMargins('lr'));}}}});Ext.Container.LAYOUTS['column'] = Ext.layout.ColumnLayout;Ext.layout.BorderLayout = Ext.extend(Ext.layout.ContainerLayout, {monitorResize:true,rendered : false,onLayout : function(ct, target){var collapsed;if(!this.rendered){target.position();target.addClass('x-border-layout-ct');var items = ct.items.items;collapsed = [];for(var i = 0, len = items.length; i < len; i++) {var c = items[i];var pos = c.region;if(c.collapsed){collapsed.push(c);}c.collapsed = false;if(!c.rendered){c.cls = c.cls ? c.cls +' x-border-panel' : 'x-border-panel';c.render(target, i);}this[pos] = pos != 'center' && c.split ?new Ext.layout.BorderLayout.SplitRegion(this, c.initialConfig, pos) :new Ext.layout.BorderLayout.Region(this, c.initialConfig, pos);this[pos].render(target, c);}this.rendered = true;}var size = target.getViewSize();if(size.width < 20 || size.height < 20){ if(collapsed){this.restoreCollapsed = collapsed;}return;}else if(this.restoreCollapsed){collapsed = this.restoreCollapsed;delete this.restoreCollapsed;}var w = size.width, h = size.height;var centerW = w, centerH = h, centerY = 0, centerX = 0;var n = this.north, s = this.south, west = this.west, e = this.east, c = this.center;if(!c){throw 'No center region defined in BorderLayout ' + ct.id;}if(n && n.isVisible()){var b = n.getSize();var m = n.getMargins();b.width = w - (m.left+m.right);b.x = m.left;b.y = m.top;centerY = b.height + b.y + m.bottom;centerH -= centerY;n.applyLayout(b);}if(s && s.isVisible()){var b = s.getSize();var m = s.getMargins();b.width = w - (m.left+m.right);b.x = m.left;var totalHeight = (b.height + m.top + m.bottom);b.y = h - totalHeight + m.top;centerH -= totalHeight;s.applyLayout(b);}if(west && west.isVisible()){var b = west.getSize();var m = west.getMargins();b.height = centerH - (m.top+m.bottom);b.x = m.left;b.y = centerY + m.top;var totalWidth = (b.width + m.left + m.right);centerX += totalWidth;centerW -= totalWidth;west.applyLayout(b);}if(e && e.isVisible()){var b = e.getSize();var m = e.getMargins();b.height = centerH - (m.top+m.bottom);var totalWidth = (b.width + m.left + m.right);b.x = w - totalWidth + m.left;b.y = centerY + m.top;centerW -= totalWidth;e.applyLayout(b);}var m = c.getMargins();var centerBox = {x: centerX + m.left,y: centerY + m.top,width: centerW - (m.left+m.right),height: centerH - (m.top+m.bottom)};c.applyLayout(centerBox);if(collapsed){for(var i = 0, len = collapsed.length; i < len; i++){collapsed[i].collapse(false);}}if(Ext.isIE && Ext.isStrict){ target.repaint();}}});Ext.layout.BorderLayout.Region = function(layout, config, pos){Ext.apply(this, config);this.layout = layout;this.position = pos;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 || {},pos == 'north' || pos == '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},isCollapsed : false,render : function(ct, p){this.panel = p;p.el.enableDisplayMode();this.targetEl = ct;this.el = p.el;var gs = p.getState, ps = this.position;p.getState = function(){return Ext.apply(gs.call(p) || {}, this.state);}.createDelegate(this);if(ps != 'center'){p.allowQueuedExpand = false;p.on({beforecollapse: this.beforeCollapse,collapse: this.onCollapse,beforeexpand: this.beforeExpand,expand: this.onExpand,hide: this.onHide,show: this.onShow,scope: this});if(this.collapsible){p.collapseEl = 'el';p.slideAnchor = this.getSlideAnchor();}if(p.tools && p.tools.toggle){p.tools.toggle.addClass('x-tool-collapse-'+ps);p.tools.toggle.addClassOnOver('x-tool-collapse-'+ps+'-over');}}},getCollapsedEl : function(){if(!this.collapsedEl){if(!this.toolTemplate){var tt = new Ext.Template('<div class="x-tool x-tool-{id}"> </div>');tt.disableFormats = true;tt.compile();Ext.layout.BorderLayout.Region.prototype.toolTemplate = tt;}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 {var t = this.toolTemplate.append(this.collapsedEl.dom,{id:'expand-'+this.position}, true);t.addClassOnOver('x-tool-expand-'+this.position+'-over');t.on('click', this.onExpandClick, this, {stopEvent:true});if(this.floatable !== false){this.collapsedEl.addClassOnOver("x-layout-collapsed-over");this.collapsedEl.on("click", this.collapseClick, this);}}}return this.collapsedEl;},onExpandClick : function(e){if(this.isSlid){this.afterSlideIn();this.panel.expand(false);}else{this.panel.expand();}},onCollapseClick : function(e){this.panel.collapse();},beforeCollapse : function(p, animate){this.lastAnim = animate;if(this.splitEl){this.splitEl.hide();}this.getCollapsedEl().show();this.panel.el.setStyle('z-index', 100);this.isCollapsed = true;this.layout.layout();},onCollapse : function(animate){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:.2});}this.state.collapsed = true;this.panel.saveState();},beforeExpand : function(animate){var c = this.getCollapsedEl();this.el.show();if(this.position == 'east' || this.position == 'west'){this.panel.setSize(undefined, c.getHeight());}else{this.panel.setSize(c.getWidth(), undefined);}c.hide();c.dom.style.visibility = 'hidden';this.panel.el.setStyle('z-index', 100);},onExpand : function(){this.isCollapsed = false;if(this.splitEl){this.splitEl.show();}this.layout.layout();this.panel.el.setStyle('z-index', 1);this.state.collapsed = false;this.panel.saveState();},collapseClick : function(e){if(this.isSlid){e.stopPropagation();this.slideIn();}else{e.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(panel){this.panel = panel;},getMinWidth: function(){return this.minWidth;},getMinHeight: function(){return this.minHeight;},applyLayoutCollapsed : function(box){var ce = this.getCollapsedEl();ce.setLeftTop(box.x, box.y);ce.setSize(box.width, box.height);},applyLayout : function(box){if(this.isCollapsed){this.applyLayoutCollapsed(box);}else{this.panel.setPosition(box.x, box.y);this.panel.setSize(box.width, box.height);}},beforeSlide: function(){this.panel.beforeEffect();},afterSlide : function(){this.panel.afterEffect();},initAutoHide : function(){if(this.autoHide !== false){if(!this.autoHideHd){var st = new Ext.util.DelayedTask(this.slideIn, this);this.autoHideHd = {"mouseout": function(e){if(!e.within(this.el, true)){st.delay(500);}},"mouseover" : function(e){st.cancel();},scope : this};}this.el.on(this.autoHideHd);}},clearAutoHide : function(){if(this.autoHide !== false){this.el.un("mouseout", this.autoHideHd.mouseout);this.el.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 ts = this.panel.tools;if(ts && ts.toggle){ts.toggle.hide();}this.el.show();if(this.position == 'east' || this.position == 'west'){this.panel.setSize(undefined, this.collapsedEl.getHeight());}else{this.panel.setSize(this.collapsedEl.getWidth(), undefined);}this.restoreLT = [this.el.dom.style.left, this.el.dom.style.top];this.el.alignTo(this.collapsedEl, this.getCollapseAnchor());this.el.setStyle("z-index", 102);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.el.dom.style.left = this.restoreLT[0];this.el.dom.style.top = this.restoreLT[1];var ts = this.panel.tools;if(ts && ts.toggle){ts.toggle.show();}},slideIn : function(cb){if(!this.isSlid || this.el.hasActiveFx()){Ext.callback(cb);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(cb);},scope: this,block: true});}else{this.el.hide();this.afterSlideIn();}},slideInIf : function(e){if(!e.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 cm = 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 c = this.collapsedEl, cm = this.cmargins;switch(this.position){case "west":return [-(cm.right+c.getWidth()+cm.left), 0];break;case "east":return [cm.right+c.getWidth()+cm.left, 0];break;case "north":return [0, -(cm.top+cm.bottom+c.getHeight())];break;case "south":return [0, cm.top+cm.bottom+c.getHeight()];break;}}};Ext.layout.BorderLayout.SplitRegion = function(layout, config, pos){Ext.layout.BorderLayout.SplitRegion.superclass.constructor.call(this, layout, config, pos);this.applyLayout = this.applyFns[pos];};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(box){if(this.isCollapsed){return this.applyLayoutCollapsed(box);}var sd = this.splitEl.dom, s = sd.style;this.panel.setPosition(box.x, box.y);var sw = sd.offsetWidth;s.left = (box.x+box.width-sw)+'px';s.top = (box.y)+'px';s.height = Math.max(0, box.height)+'px';this.panel.setSize(box.width-sw, box.height);},east : function(box){if(this.isCollapsed){return this.applyLayoutCollapsed(box);}var sd = this.splitEl.dom, s = sd.style;var sw = sd.offsetWidth;this.panel.setPosition(box.x+sw, box.y);s.left = (box.x)+'px';s.top = (box.y)+'px';s.height = Math.max(0, box.height)+'px';this.panel.setSize(box.width-sw, box.height);},north : function(box){if(this.isCollapsed){return this.applyLayoutCollapsed(box);}var sd = this.splitEl.dom, s = sd.style;var sh = sd.offsetHeight;this.panel.setPosition(box.x, box.y);s.left = (box.x)+'px';s.top = (box.y+box.height-sh)+'px';s.width = Math.max(0, box.width)+'px';this.panel.setSize(box.width, box.height-sh);},south : function(box){if(this.isCollapsed){return this.applyLayoutCollapsed(box);}var sd = this.splitEl.dom, s = sd.style;var sh = sd.offsetHeight;this.panel.setPosition(box.x, box.y+sh);s.left = (box.x)+'px';s.top = (box.y)+'px';s.width = Math.max(0, box.width)+'px';this.panel.setSize(box.width, box.height-sh);}},render : function(ct, p){Ext.layout.BorderLayout.SplitRegion.superclass.render.call(this, ct, p);var ps = this.position;this.splitEl = ct.createChild({cls: "x-layout-split x-layout-split-"+ps, html: " ",id: this.panel.id + '-xsplit'});if(this.collapseMode == 'mini'){this.miniSplitEl = this.splitEl.createChild({cls: "x-layout-mini x-layout-mini-"+ps, html: " "});this.miniSplitEl.addClassOnOver('x-layout-mini-over');this.miniSplitEl.on('click', this.onCollapseClick, this, {stopEvent:true});}var s = this.splitSettings[ps];this.split = new Ext.SplitBar(this.splitEl.dom, p.el, s.orientation);this.split.placement = s.placement;this.split.getMaximumSize = this[s.maxFn].createDelegate(this);this.split.minSize = this.minSize || this[s.minProp];this.split.on("beforeapply", this.onSplitMove, this);this.split.useShim = this.useShim === true;this.maxSize = this.maxSize || this[s.maxProp];if(p.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 s = this.panel.getSize();if(this.position == 'north' || this.position == 'south'){s.height += this.splitEl.dom.offsetHeight;}else{s.width += this.splitEl.dom.offsetWidth;}return s;},getHMaxSize : function(){var cmax = this.maxSize || 10000;var center = this.layout.center;return Math.min(cmax, (this.el.getWidth()+center.el.getWidth())-center.getMinWidth());},getVMaxSize : function(){var cmax = this.maxSize || 10000;var center = this.layout.center;return Math.min(cmax, (this.el.getHeight()+center.el.getHeight())-center.getMinHeight());},onSplitMove : function(split, newSize){var s = this.panel.getSize();this.lastSplitSize = newSize;if(this.position == 'north' || this.position == 'south'){this.panel.setSize(s.width, newSize);this.state.height = newSize;}else{this.panel.setSize(newSize, s.height);this.state.width = newSize;}this.layout.layout();this.panel.saveState();return false;},getSplitBar : function(){return this.split;}});Ext.Container.LAYOUTS['border'] = Ext.layout.BorderLayout;Ext.layout.FormLayout = Ext.extend(Ext.layout.AnchorLayout, {labelSeparator : ':',getAnchorViewSize : function(ct, target){return ct.body.getStyleSize();},setContainer : function(ct){Ext.layout.FormLayout.superclass.setContainer.call(this, ct);if(ct.labelAlign){ct.addClass('x-form-label-'+ct.labelAlign);}if(ct.hideLabels){this.labelStyle = "display:none";this.elementStyle = "padding-left:0;";this.labelAdjust = 0;}else{this.labelSeparator = ct.labelSeparator || this.labelSeparator;ct.labelWidth = ct.labelWidth || 100;if(typeof ct.labelWidth == 'number'){var pad = (typeof ct.labelPad == 'number' ? ct.labelPad : 5);this.labelAdjust = ct.labelWidth+pad;this.labelStyle = "width:"+ct.labelWidth+"px;";this.elementStyle = "padding-left:"+(ct.labelWidth+pad)+'px';}if(ct.labelAlign == 'top'){this.labelStyle = "width:auto;";this.labelAdjust = 0;this.elementStyle = "padding-left:0;";}}if(!this.fieldTpl){var t = new Ext.Template('<div class="x-form-item {5}" tabIndex="-1">','<label for="{0}" style="{2}" class="x-form-item-label">{1}{4}</label>','<div class="x-form-element" id="x-form-el-{0}" style="{3}">','</div><div class="{6}"></div>','</div>');t.disableFormats = true;t.compile();Ext.layout.FormLayout.prototype.fieldTpl = t;}},renderItem : function(c, position, target){if(c && !c.rendered && c.isFormField && c.inputType != 'hidden'){var args = [c.id, c.fieldLabel,c.labelStyle||this.labelStyle||'',this.elementStyle||'',typeof c.labelSeparator == 'undefined' ? this.labelSeparator : c.labelSeparator,(c.itemCls||this.container.itemCls||'') + (c.hideLabel ? ' x-hide-label' : ''),c.clearCls || 'x-form-clear-left'];if(typeof position == 'number'){position = target.dom.childNodes[position] || null;}if(position){this.fieldTpl.insertBefore(position, args);}else{this.fieldTpl.append(target, args);}c.render('x-form-el-'+c.id);}else {Ext.layout.FormLayout.superclass.renderItem.apply(this, arguments);}},adjustWidthAnchor : function(value, comp){return value - (comp.isFormField ? (comp.hideLabel ? 0 : this.labelAdjust) : 0);},isValidParent : function(c, target){return true;}});Ext.Container.LAYOUTS['form'] = Ext.layout.FormLayout;Ext.layout.Accordion = Ext.extend(Ext.layout.FitLayout, {fill : true,autoWidth : true,titleCollapse : true,hideCollapseTool : false,collapseFirst : false,animate : false,sequence : false,activeOnTop : false,renderItem : function(c){if(this.animate === false){c.animCollapse = false;}c.collapsible = true;if(this.autoWidth){c.autoWidth = true;}if(this.titleCollapse){c.titleCollapse = true;}if(this.hideCollapseTool){c.hideCollapseTool = true;}if(this.collapseFirst !== undefined){c.collapseFirst = this.collapseFirst;}if(!this.activeItem && !c.collapsed){this.activeItem = c;}else if(this.activeItem){c.collapsed = true;}Ext.layout.Accordion.superclass.renderItem.apply(this, arguments);c.header.addClass('x-accordion-hd');c.on('beforeexpand', this.beforeExpand, this);},beforeExpand : function(p, anim){var ai = this.activeItem;if(ai){if(this.sequence){delete this.activeItem;ai.collapse({callback:function(){p.expand(anim || true);}, scope: this});return false;}else{ai.collapse(this.animate);}}this.activeItem = p;if(this.activeOnTop){p.el.dom.parentNode.insertBefore(p.el.dom, p.el.dom.parentNode.firstChild);}this.layout();},setItemSize : function(item, size){if(this.fill && item){var items = this.container.items.items;var hh = 0;for(var i = 0, len = items.length; i < len; i++){var p = items[i];if(p != item){hh += (p.getSize().height - p.bwrap.getHeight());}}size.height -= hh;item.setSize(size);}}});Ext.Container.LAYOUTS['accordion'] = Ext.layout.Accordion;Ext.layout.TableLayout = Ext.extend(Ext.layout.ContainerLayout, {monitorResize:false,setContainer : function(ct){Ext.layout.TableLayout.superclass.setContainer.call(this, ct);this.currentRow = 0;this.currentColumn = 0;this.cells = [];},onLayout : function(ct, target){var cs = ct.items.items, len = cs.length, c, i;if(!this.table){target.addClass('x-table-layout-ct');this.table = target.createChild({tag:'table', cls:'x-table-layout', cellspacing: 0, cn: {tag: 'tbody'}}, null, true);this.renderAll(ct, target);}},getRow : function(index){var row = this.table.tBodies[0].childNodes[index];if(!row){row = document.createElement('tr');this.table.tBodies[0].appendChild(row);}return row;},getNextCell : function(c){var cell = this.getNextNonSpan(this.currentColumn, this.currentRow);var curCol = this.currentColumn = cell[0], curRow = this.currentRow = cell[1];for(var rowIndex = curRow; rowIndex < curRow + (c.rowspan || 1); rowIndex++){if(!this.cells[rowIndex]){this.cells[rowIndex] = [];}for(var colIndex = curCol; colIndex < curCol + (c.colspan || 1); colIndex++){this.cells[rowIndex][colIndex] = true;}}var td = document.createElement('td');if(c.cellId){td.id = c.cellId;}var cls = 'x-table-layout-cell';if(c.cellCls){cls += ' ' + c.cellCls;}td.className = cls;if(c.colspan){td.colSpan = c.colspan;}if(c.rowspan){td.rowSpan = c.rowspan;}this.getRow(curRow).appendChild(td);return td;},getNextNonSpan: function(colIndex, rowIndex){var cols = this.columns;while((cols && colIndex >= cols) || (this.cells[rowIndex] && this.cells[rowIndex][colIndex])) {if(cols && colIndex >= cols){rowIndex++;colIndex = 0;}else{colIndex++;}}return [colIndex, rowIndex];},renderItem : function(c, position, target){if(c && !c.rendered){c.render(this.getNextCell(c));}},isValidParent : function(c, target){return true;}});Ext.Container.LAYOUTS['table'] = Ext.layout.TableLayout;Ext.layout.AbsoluteLayout = Ext.extend(Ext.layout.AnchorLayout, {extraCls: 'x-abs-layout-item',isForm: false,setContainer : function(ct){Ext.layout.AbsoluteLayout.superclass.setContainer.call(this, ct);if(ct.isXType('form')){this.isForm = true;}},onLayout : function(ct, target){if(this.isForm){ ct.body.position(); } else { target.position(); }Ext.layout.AbsoluteLayout.superclass.onLayout.call(this, ct, target);},getAnchorViewSize : function(ct, target){return this.isForm ? ct.body.getStyleSize() : Ext.layout.AbsoluteLayout.superclass.getAnchorViewSize.call(this, ct, target);},isValidParent : function(c, target){return this.isForm ? true : Ext.layout.AbsoluteLayout.superclass.isValidParent.call(this, c, target);},adjustWidthAnchor : function(value, comp){return value ? value - comp.getPosition(true)[0] : value;},adjustHeightAnchor : function(value, comp){return value ? value - comp.getPosition(true)[1] : value;}});Ext.Container.LAYOUTS['absolute'] = Ext.layout.AbsoluteLayout;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(w, h){this.fireEvent('resize', this, w, h, w, h);}});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',toolTarget : 'header',collapseEl : 'bwrap',slideAnchor : 't',deferHeight: true,expandDefaults: {duration:.25},collapseDefaults: {duration:.25},initComponent : function(){Ext.Panel.superclass.initComponent.call(this);this.addEvents('bodyresize','titlechange','collapse','expand','beforecollapse','beforeexpand','beforeclose','close','activate','deactivate');if(this.tbar){this.elements += ',tbar';if(typeof this.tbar == 'object'){this.topToolbar = this.tbar;}delete this.tbar;}if(this.bbar){this.elements += ',bbar';if(typeof this.bbar == 'object'){this.bottomToolbar = this.bbar;}delete this.bbar;}if(this.header === true){this.elements += ',header';delete this.header;}else if(this.title && this.header !== false){this.elements += ',header';}if(this.footer === true){this.elements += ',footer';delete this.footer;}if(this.buttons){var btns = this.buttons;this.buttons = [];for(var i = 0, len = btns.length; i < len; i++) {if(btns[i].render){ this.buttons.push(btns[i]);}else{this.addButton(btns[i]);}}}if(this.autoLoad){this.on('render', this.doAutoLoad, this, {delay:10});}},createElement : function(name, pnode){if(this[name]){pnode.appendChild(this[name].dom);return;}if(name === 'bwrap' || this.elements.indexOf(name) != -1){if(this[name+'Cfg']){this[name] = Ext.fly(pnode).createChild(this[name+'Cfg']);}else{var el = document.createElement('div');el.className = this[name+'Cls'];this[name] = Ext.get(pnode.appendChild(el));}}},onRender : function(ct, position){Ext.Panel.superclass.onRender.call(this, ct, position);this.createClasses();if(this.el){ this.el.addClass(this.baseCls);this.header = this.el.down('.'+this.headerCls);this.bwrap = this.el.down('.'+this.bwrapCls);var cp = this.bwrap ? this.bwrap : this.el;this.tbar = cp.down('.'+this.tbarCls);this.body = cp.down('.'+this.bodyCls);this.bbar = cp.down('.'+this.bbarCls);this.footer = cp.down('.'+this.footerCls);this.fromMarkup = true;}else{this.el = ct.createChild({id: this.id,cls: this.baseCls}, position);}var el = this.el, d = el.dom;if(this.cls){this.el.addClass(this.cls);}if(this.buttons){this.elements += ',footer';}if(this.frame){el.insertHtml('afterBegin', String.format(Ext.Element.boxMarkup, this.baseCls));this.createElement('header', d.firstChild.firstChild.firstChild);this.createElement('bwrap', d);var bw = this.bwrap.dom;var ml = d.childNodes[1], bl = d.childNodes[2];bw.appendChild(ml);bw.appendChild(bl);var mc = bw.firstChild.firstChild.firstChild;this.createElement('tbar', mc);this.createElement('body', mc);this.createElement('bbar', mc);this.createElement('footer', bw.lastChild.firstChild.firstChild);if(!this.footer){this.bwrap.dom.lastChild.className += ' x-panel-nofooter';}}else{this.createElement('header', d);this.createElement('bwrap', d);var bw = this.bwrap.dom;this.createElement('tbar', bw);this.createElement('body', bw);this.createElement('bbar', bw);this.createElement('footer', bw);if(!this.header){this.body.addClass(this.bodyCls + '-noheader');if(this.tbar){this.tbar.addClass(this.tbarCls + '-noheader');}}}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');}if(this.bodyStyle){this.body.applyStyles(this.bodyStyle);}this.bwrap.enableDisplayMode('block');if(this.header){this.header.unselectable();if(this.headerAsText){this.header.dom.innerHTML ='<span class="' + this.headerTextCls + '">'+this.header.dom.innerHTML+'</span>';if(this.iconCls){this.setIconClass(this.iconCls);}}}if(this.floating){this.makeFloating(this.floating);}if(this.collapsible){this.tools = this.tools ? this.tools.slice(0) : [];if(!this.hideCollapseTool){this.tools[this.collapseFirst?'unshift':'push']({id: 'toggle',handler : this.toggleCollapse,scope: this});}if(this.titleCollapse && this.header){this.header.on('click', this.toggleCollapse, this);this.header.setStyle('cursor', 'pointer');}}if(this.tools){var ts = this.tools;this.tools = {};this.addTool.apply(this, ts);}else{this.tools = {};}if(this.buttons && this.buttons.length > 0){var tb = this.footer.createChild({cls:'x-panel-btns-ct', cn: {cls:"x-panel-btns x-panel-btns-"+this.buttonAlign,html:'<table cellspacing="0"><tbody><tr></tr></tbody></table><div class="x-clear"></div>'}}, null, true);var tr = tb.getElementsByTagName('tr')[0];for(var i = 0, len = this.buttons.length; i < len; i++) {var b = this.buttons[i];var td = document.createElement('td');td.className = 'x-panel-btn-td';b.render(tr.appendChild(td));}}if(this.tbar && this.topToolbar){if(Ext.isArray(this.topToolbar)){this.topToolbar = new Ext.Toolbar(this.topToolbar);}this.topToolbar.render(this.tbar);}if(this.bbar && this.bottomToolbar){if(Ext.isArray(this.bottomToolbar)){this.bottomToolbar = new Ext.Toolbar(this.bottomToolbar);}this.bottomToolbar.render(this.bbar);}},setIconClass : function(cls){var old = this.iconCls;this.iconCls = cls;if(this.rendered && this.header){if(this.frame){this.header.addClass('x-panel-icon');this.header.replaceClass(old, this.iconCls);}else{var hd = this.header.dom;var img = hd.firstChild && String(hd.firstChild.tagName).toLowerCase() == 'img' ? hd.firstChild : null;if(img){Ext.fly(img).replaceClass(old, this.iconCls);}else{Ext.DomHelper.insertBefore(hd.firstChild, {tag:'img', src: Ext.BLANK_IMAGE_URL, cls:'x-panel-inline-icon '+this.iconCls});}}}},makeFloating : function(cfg){this.floating = true;this.el = new Ext.Layer(typeof cfg == 'object' ? cfg : {shadow: this.shadow !== undefined ? 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;},addButton : function(config, handler, scope){var bc = {handler: handler,scope: scope,minWidth: this.minButtonWidth,hideParent:true};if(typeof config == "string"){bc.text = config;}else{Ext.apply(bc, config);}var btn = new Ext.Button(bc);btn.ownerCt = this;if(!this.buttons){this.buttons = [];}this.buttons.push(btn);return btn;},addTool : function(){if(!this[this.toolTarget]) { return;}if(!this.toolTemplate){var tt = new Ext.Template('<div class="x-tool x-tool-{id}"> </div>');tt.disableFormats = true;tt.compile();Ext.Panel.prototype.toolTemplate = tt;}for(var i = 0, a = arguments, len = a.length; i < len; i++) {var tc = a[i], overCls = 'x-tool-'+tc.id+'-over';var t = this.toolTemplate.insertFirst(this[this.toolTarget], tc, true);this.tools[tc.id] = t;t.enableDisplayMode('block');t.on('click', this.createToolHandler(t, tc, overCls, this));if(tc.on){t.on(tc.on);}if(tc.hidden){t.hide();}if(tc.qtip){if(typeof tc.qtip == 'object'){Ext.QuickTips.register(Ext.apply({target: t.id}, tc.qtip));} else {t.dom.qtip = tc.qtip;}}t.addClassOnOver(overCls);}},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(t, tc, overCls, panel){return function(e){t.removeClass(overCls);e.stopEvent();if(tc.handler){tc.handler.call(tc.scope || t, e, t, panel);}};},afterRender : function(){if(this.fromMarkup && this.height === undefined && !this.autoHeight){this.height = this.el.getHeight();}if(this.floating && !this.hidden && !this.initHidden){this.el.show();}if(this.title){this.setTitle(this.title);}this.setAutoScroll();if(this.html){this.body.update(typeof this.html == 'object' ?Ext.DomHelper.markup(this.html) :this.html);delete this.html;}if(this.contentEl){var ce = Ext.getDom(this.contentEl);Ext.fly(ce).removeClass(['x-hidden', 'x-hide-display']);this.body.dom.appendChild(ce);}if(this.collapsed){this.collapsed = false;this.collapse(false);}Ext.Panel.superclass.afterRender.call(this); this.initEvents();},setAutoScroll : function(){if(this.rendered && this.autoScroll){this.body.setOverflow('auto');}},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();}},initDraggable : function(){this.dd = new Ext.Panel.DD(this, typeof this.draggable == 'boolean' ? null : this.draggable);},beforeEffect : function(){if(this.floating){this.el.beforeAction();}this.el.addClass('x-panel-animated');},afterEffect : function(){this.syncShadow();this.el.removeClass('x-panel-animated');},createEffect : function(a, cb, scope){var o = {scope:scope,block:true};if(a === true){o.callback = cb;return o;}else if(!a.callback){o.callback = cb;}else { o.callback = function(){cb.call(scope);Ext.callback(a.callback, a.scope);};}return Ext.applyIf(o, a);},collapse : function(animate){if(this.collapsed || this.el.hasFxBlock() || this.fireEvent('beforecollapse', this, animate) === false){return;}var doAnim = animate === true || (animate !== false && this.animCollapse);this.beforeEffect();this.onCollapse(doAnim, animate);return this;},onCollapse : function(doAnim, animArg){if(doAnim){this[this.collapseEl].slideOut(this.slideAnchor,Ext.apply(this.createEffect(animArg||true, this.afterCollapse, this),this.collapseDefaults));}else{this[this.collapseEl].hide();this.afterCollapse();}},afterCollapse : function(){this.collapsed = true;this.el.addClass(this.collapsedCls);this.afterEffect();this.fireEvent('collapse', this);},expand : function(animate){if(!this.collapsed || this.el.hasFxBlock() || this.fireEvent('beforeexpand', this, animate) === false){return;}var doAnim = animate === true || (animate !== false && this.animCollapse);this.el.removeClass(this.collapsedCls);this.beforeEffect();this.onExpand(doAnim, animate);return this;},onExpand : function(doAnim, animArg){if(doAnim){this[this.collapseEl].slideIn(this.slideAnchor,Ext.apply(this.createEffect(animArg||true, this.afterExpand, this),this.expandDefaults));}else{this[this.collapseEl].show();this.afterExpand();}},afterExpand : function(){this.collapsed = false;this.afterEffect();this.fireEvent('expand', this);},toggleCollapse : function(animate){this[this.collapsed ? 'expand' : 'collapse'](animate);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(w, h){if(w !== undefined || h !== undefined){if(!this.collapsed){if(typeof w == 'number'){this.body.setWidth(this.adjustBodyWidth(w - this.getFrameWidth()));}else if(w == 'auto'){this.body.setWidth(w);}if(typeof h == 'number'){this.body.setHeight(this.adjustBodyHeight(h - this.getFrameHeight()));}else if(h == 'auto'){this.body.setHeight(h);}}else{this.queuedBodySize = {width: w, height: h};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.doLayout();}, this, {single:true});}}this.fireEvent('bodyresize', this, w, h);}this.syncShadow();},adjustBodyHeight : function(h){return h;},adjustBodyWidth : function(w){return w;},onPosition : function(){this.syncShadow();},onDestroy : function(){if(this.tools){for(var k in this.tools){Ext.destroy(this.tools[k]);}}if(this.buttons){for(var b in this.buttons){Ext.destroy(this.buttons[b]);}}Ext.destroy(this.topToolbar,this.bottomToolbar);Ext.Panel.superclass.onDestroy.call(this);},getFrameWidth : function(){var w = this.el.getFrameWidth('lr');if(this.frame){var l = this.bwrap.dom.firstChild;w += (Ext.fly(l).getFrameWidth('l') + Ext.fly(l.firstChild).getFrameWidth('r'));var mc = this.bwrap.dom.firstChild.firstChild.firstChild;w += Ext.fly(mc).getFrameWidth('lr');}return w;},getFrameHeight : function(){var h = this.el.getFrameWidth('tb');h += (this.tbar ? this.tbar.getHeight() : 0) +(this.bbar ? this.bbar.getHeight() : 0);if(this.frame){var hd = this.el.dom.firstChild;var ft = this.bwrap.dom.lastChild;h += (hd.offsetHeight + ft.offsetHeight);var mc = this.bwrap.dom.firstChild.firstChild.firstChild;h += Ext.fly(mc).getFrameWidth('tb');}else{h += (this.header ? this.header.getHeight() : 0) +(this.footer ? this.footer.getHeight() : 0);}return h;},getInnerWidth : function(){return this.getSize().width - this.getFrameWidth();},getInnerHeight : function(){return this.getSize().height - this.getFrameHeight();},syncShadow : function(){if(this.floating){this.el.sync(true);}},getLayoutTarget : function(){return this.body;},setTitle : function(title, iconCls){this.title = title;if(this.header && this.headerAsText){this.header.child('span').update(title);}if(iconCls){this.setIconClass(iconCls);}this.fireEvent('titlechange', this, title);return this;},getUpdater : function(){return this.body.getUpdater();},load : function(){var um = this.body.getUpdater();um.update.apply(um, arguments);return this;},beforeDestroy : function(){Ext.Element.uncache(this.header,this.tbar,this.bbar,this.footer,this.body);},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(cls, useShim, appendTo){var el = document.createElement('div');el.className = 'x-panel-ghost ' + (cls ? cls : '');if(this.header){el.appendChild(this.el.dom.firstChild.cloneNode(true));}Ext.fly(el.appendChild(document.createElement('ul'))).setHeight(this.bwrap.getHeight());el.style.width = this.el.dom.offsetWidth + 'px';;if(!appendTo){this.container.dom.appendChild(el);}else{Ext.getDom(appendTo).appendChild(el);}if(useShim !== false && this.el.useShim !== false){var layer = new Ext.Layer({shadow:false, useDisplay:true, constrain:false}, el);layer.show();return layer;}else{return new Ext.Element(el);}},doAutoLoad : function(){this.body.load(typeof this.autoLoad == 'object' ?this.autoLoad : {url: this.autoLoad});}});Ext.reg('panel', Ext.Panel);Ext.Window = Ext.extend(Ext.Panel, {baseCls : 'x-window',resizable:true,draggable:true,closable : true,constrain:false,constrainHeader:false,plain:false,minimizable : false,maximizable : false,minHeight: 100,minWidth: 200,expandOnShow: true,closeAction: 'close',collapsible:false,initHidden : true,monitorResize : true,elements: 'header,body',frame:true,floating:true,initComponent : function(){Ext.Window.superclass.initComponent.call(this);this.addEvents('resize','maximize','minimize','restore');},getState : function(){return Ext.apply(Ext.Window.superclass.getState.call(this) || {}, this.getBox());},onRender : function(ct, position){Ext.Window.superclass.onRender.call(this, ct, position);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();}},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});this.resizer.window = this;this.resizer.on("beforeresize", this.beforeResize, this);}if(this.draggable){this.header.addClass("x-window-draggable");}this.initTools();this.el.on("mousedown", this.toFront, this);this.manager = this.manager || Ext.WindowMgr;this.manager.register(this);this.hidden = true;if(this.maximized){this.maximized = false;this.maximize();}if(this.closable){var km = this.getKeyMap();km.on(27, this.onEsc, this);km.disable();}},initDraggable : function(){this.dd = new Ext.Window.DD(this);},onEsc : function(){this[this.closeAction]();},beforeDestroy : function(){Ext.destroy(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});this.header.on('dblclick', this.toggleMaximize, this);}if(this.closable){this.addTool({id: 'close',handler: this[this.closeAction].createDelegate(this, [])});}},resizerAction : function(){var box = this.proxy.getBox();this.proxy.hide();this.window.handleResize(box);return box;},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(box){var rz = this.resizeBox;if(rz.x != box.x || rz.y != box.y){this.updateBox(box);}else{this.setSize(box);}this.focus();this.updateHandles();this.saveState();this.fireEvent("resize", this, box.width, box.height);},focus : function(){var f = this.focusEl, db = this.defaultButton, t = typeof db;if(t != 'undefined'){if(t == 'number'){f = this.buttons[db];}else if(t == 'string'){f = Ext.getCmp(db);}else{f = db;}}f.focus.defer(10, f);},setAnimateTarget : function(el){el = Ext.get(el);this.animateTarget = el;},beforeShow : function(){delete this.el.lastXY;delete this.el.lastLT;if(this.x === undefined || this.y === undefined){var xy = this.el.getAlignToXY(this.container, 'c-c');var pos = this.el.translatePoints(xy[0], xy[1]);this.x = this.x === undefined? pos.left : this.x;this.y = this.y === undefined? pos.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(animateTarget, cb, scope){if(!this.rendered){this.render(Ext.getBody());}if(this.hidden === false){this.toFront();return;}if(this.fireEvent("beforeshow", this) === false){return;}if(cb){this.on('show', cb, scope, {single:true});}this.hidden = false;if(animateTarget !== undefined){this.setAnimateTarget(animateTarget);}this.beforeShow();if(this.animateTarget){this.animShow();}else{this.afterShow();}},afterShow : function(){this.proxy.hide();this.el.setStyle('display', 'block');this.el.show();if(this.maximized){this.fitContainer();}if(Ext.isMac && Ext.isGecko){ this.cascade(this.setAutoScroll);}if(this.monitorResize || this.modal || this.constrain || this.constrainHeader){Ext.EventManager.onWindowResize(this.onWindowResize, this);}this.doConstrain();if(this.layout){this.doLayout();}if(this.keyMap){this.keyMap.enable();}this.toFront();this.updateHandles();this.fireEvent("show", this);},animShow : function(){this.proxy.show();this.proxy.setBox(this.animateTarget.getBox());this.proxy.setOpacity(0);var b = this.getBox(false);b.callback = this.afterShow;b.scope = this;b.duration = .25;b.easing = 'easeNone';b.opacity = .5;b.block = true;this.el.setStyle('display', 'none');this.proxy.shift(b);},hide : function(animateTarget, cb, scope){if(this.hidden || this.fireEvent("beforehide", this) === false){return;}if(cb){this.on('hide', cb, scope, {single:true});}this.hidden = true;if(animateTarget !== undefined){this.setAnimateTarget(animateTarget);}if(this.animateTarget){this.animHide();}else{this.el.hide();this.afterHide();}},afterHide : function(){this.proxy.hide();if(this.monitorResize || this.modal || this.constrain || this.constrainHeader){Ext.EventManager.removeResizeListener(this.onWindowResize, this);}if(this.modal){this.mask.hide();Ext.getBody().removeClass("x-body-masked");}if(this.keyMap){this.keyMap.disable();}this.fireEvent("hide", this);},animHide : function(){this.proxy.setOpacity(.5);this.proxy.show();var tb = this.getBox(false);this.proxy.setBox(tb);this.el.hide();var b = this.animateTarget.getBox();b.callback = this.afterHide;b.scope = this;b.duration = .25;b.easing = 'easeNone';b.block = true;b.opacity = 0;this.proxy.shift(b);},onWindowResize : function(){if(this.maximized){this.fitContainer();}if(this.modal){this.mask.setSize('100%', '100%');var force = 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 offsets;if(this.constrain){offsets = {right:this.el.shadowOffset,left:this.el.shadowOffset,bottom:this.el.shadowOffset};}else {var s = this.getSize();offsets = {right:-(s.width - 100),bottom:-(s.height - 25)};}var xy = this.el.getConstrainToXY(this.container, true, offsets);if(xy){this.setPosition(xy[0], xy[1]);}}},ghost : function(cls){var ghost = this.createGhost(cls);var box = this.getBox(true);ghost.setLeftTop(box.x, box.y);ghost.setWidth(box.width);this.el.hide();this.activeGhost = ghost;return ghost;},unghost : function(show, matchPosition){if(show !== false){this.el.show();this.focus();if(Ext.isMac && Ext.isGecko){ this.cascade(this.setAutoScroll);}}if(matchPosition !== 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);},close : function(){if(this.fireEvent("beforeclose", this) !== false){this.hide(null, function(){this.fireEvent('close', this);this.destroy();}, this);}},maximize : function(){if(!this.maximized){this.expand(false);this.restoreSize = this.getSize();this.restorePos = this.getPosition(true);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);}},restore : function(){if(this.maximized){this.el.removeClass('x-window-maximized');this.tools.restore.hide();this.tools.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){this.tools.toggle.show();}this.container.removeClass('x-window-maximized-ct');this.doConstrain();this.fireEvent('restore', this);}},toggleMaximize : function(){this[this.maximized ? 'restore' : 'maximize']();},fitContainer : function(){var vs = this.container.getViewSize();this.setSize(vs.width, vs.height);},setZIndex : function(index){if(this.modal){this.mask.setStyle("z-index", index);}this.el.setZIndex(++index);index += 5;if(this.resizer){this.resizer.proxy.setStyle("z-index", ++index);}this.lastZIndex = index;},alignTo : function(element, position, offsets){var xy = this.el.getAlignToXY(element, position, offsets);this.setPagePosition(xy[0], xy[1]);return this;},anchorTo : function(el, alignment, offsets, monitorScroll, _pname){var action = function(){this.alignTo(el, alignment, offsets);};Ext.EventManager.onWindowResize(action, this);var tm = typeof monitorScroll;if(tm != 'undefined'){Ext.EventManager.on(window, 'scroll', action, this,{buffer: tm == 'number' ? monitorScroll : 50});}action.call(this);this[_pname] = action;return this;},toFront : function(){if(this.manager.bringToFront(this)){this.focus();}return this;},setActive : function(active){if(active){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 xy = this.el.getAlignToXY(this.container, 'c-c');this.setPagePosition(xy[0], xy[1]);return this;}});Ext.reg('window', Ext.Window);Ext.Window.DD = function(win){this.win = win;Ext.Window.DD.superclass.constructor.call(this, win.el.id, 'WindowDD-'+win.id);this.setHandleElId(win.header.id);this.scroll = false;};Ext.extend(Ext.Window.DD, Ext.dd.DD, {moveOnly:true,headerOffsets:[100, 25],startDrag : function(){var w = this.win;this.proxy = w.ghost();if(w.constrain !== false){var so = w.el.shadowOffset;this.constrainTo(w.container, {right: so, left: so, bottom: so});}else if(w.constrainHeader !== false){var s = this.proxy.getSize();this.constrainTo(w.container, {right: -(s.width-this.headerOffsets[0]), bottom: -(s.height-this.headerOffsets[1])});}},b4Drag : Ext.emptyFn,onDrag : function(e){this.alignElWithMouse(this.proxy, e.getPageX(), e.getPageY());},endDrag : function(e){this.win.unghost();this.win.saveState();}});Ext.WindowGroup = function(){var list = {};var accessList = [];var front = null;var sortWindows = function(d1, d2){return (!d1._lastAccess || d1._lastAccess < d2._lastAccess) ? -1 : 1;};var orderWindows = function(){var a = accessList, len = a.length;if(len > 0){a.sort(sortWindows);var seed = a[0].manager.zseed;for(var i = 0; i < len; i++){var win = a[i];if(win && !win.hidden){win.setZIndex(seed + (i*10));}}}activateLast();};var setActiveWin = function(win){if(win != front){if(front){front.setActive(false);}front = win;if(win){win.setActive(true);}}};var activateLast = function(){for(var i = accessList.length-1; i >=0; --i) {if(!accessList[i].hidden){setActiveWin(accessList[i]);return;}}setActiveWin(null);};return {zseed : 9000,register : function(win){list[win.id] = win;accessList.push(win);win.on('hide', activateLast);},unregister : function(win){delete list[win.id];win.un('hide', activateLast);accessList.remove(win);},get : function(id){return typeof id == "object" ? id : list[id];},bringToFront : function(win){win = this.get(win);if(win != front){win._lastAccess = new Date().getTime();orderWindows();return true;}return false;},sendToBack : function(win){win = this.get(win);win._lastAccess = -(new Date().getTime());orderWindows();return win;},hideAll : function(){for(var id in list){if(list[id] && typeof list[id] != "function" && list[id].isVisible()){list[id].hide();}}},getActive : function(){return front;},getBy : function(fn, scope){var r = [];for(var i = accessList.length-1; i >=0; --i) {var win = accessList[i];if(fn.call(scope||win, win) !== false){r.push(win);}}return r;},each : function(fn, scope){for(var id in list){if(list[id] && typeof list[id] != "function"){if(fn.call(scope || list[id], list[id]) === false){return;}}}}};};Ext.WindowMgr = new Ext.WindowGroup();Ext.dd.PanelProxy = function(panel, config){this.panel = panel;this.id = this.panel.id +'-ddproxy';Ext.apply(this, config);};Ext.dd.PanelProxy.prototype = {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(undefined, 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(xy, callback, scope){this.hide();if(typeof callback == "function"){callback.call(scope || this);}},moveProxy : function(parentNode, before){if(this.proxy){parentNode.insertBefore(this.proxy.dom, before);}}};Ext.Panel.DD = function(panel, cfg){this.panel = panel;this.dragData = {panel: panel};this.proxy = new Ext.dd.PanelProxy(panel, cfg);Ext.Panel.DD.superclass.constructor.call(this, panel.el, cfg);this.setHandleElId(panel.header.id);panel.header.setStyle('cursor', 'move');this.scroll = false;};Ext.extend(Ext.Panel.DD, Ext.dd.DragSource, {showFrame: Ext.emptyFn,startDrag: Ext.emptyFn,b4StartDrag: function(x, y) {this.proxy.show();},b4MouseDown: function(e) {var x = e.getPageX();var y = e.getPageY();this.autoOffset(x, y);},onInitDrag : function(x, y){this.onStartDrag(x, y);return true;},createFrame : Ext.emptyFn,getDragEl : function(e){return this.proxy.ghost.dom;},endDrag : function(e){this.proxy.hide();this.panel.saveState();},autoOffset : function(x, y) {x -= this.startPageX;y -= this.startPageY;this.setDelta(x, y);}});Ext.state.Provider = function(){this.addEvents("statechange");this.state = {};Ext.state.Provider.superclass.constructor.call(this);};Ext.extend(Ext.state.Provider, Ext.util.Observable, {get : function(name, defaultValue){return typeof this.state[name] == "undefined" ?defaultValue : this.state[name];},clear : function(name){delete this.state[name];this.fireEvent("statechange", this, name, null);},set : function(name, value){this.state[name] = value;this.fireEvent("statechange", this, name, value);},decodeValue : function(cookie){var re = /^(a|n|d|b|s|o)\:(.*)$/;var matches = re.exec(unescape(cookie));if(!matches || !matches[1]) return;var type = matches[1];var v = matches[2];switch(type){case "n":return parseFloat(v);case "d":return new Date(Date.parse(v));case "b":return (v == "1");case "a":var all = [];var values = v.split("^");for(var i = 0, len = values.length; i < len; i++){all.push(this.decodeValue(values[i]));}return all;case "o":var all = {};var values = v.split("^");for(var i = 0, len = values.length; i < len; i++){var kv = values[i].split("=");all[kv[0]] = this.decodeValue(kv[1]);}return all;default:return v;}},encodeValue : function(v){var enc;if(typeof v == "number"){enc = "n:" + v;}else if(typeof v == "boolean"){enc = "b:" + (v ? "1" : "0");}else if(Ext.isDate(v)){enc = "d:" + v.toGMTString();}else if(Ext.isArray(v)){var flat = "";for(var i = 0, len = v.length; i < len; i++){flat += this.encodeValue(v[i]);if(i != len-1) flat += "^";}enc = "a:" + flat;}else if(typeof v == "object"){var flat = "";for(var key in v){if(typeof v[key] != "function" && v[key] !== undefined){flat += key + "=" + this.encodeValue(v[key]) + "^";}}enc = "o:" + flat.substring(0, flat.length-1);}else{enc = "s:" + v;}return escape(enc);}});Ext.state.Manager = function(){var provider = new Ext.state.Provider();return {setProvider : function(stateProvider){provider = stateProvider;},get : function(key, defaultValue){return provider.get(key, defaultValue);},set : function(key, value){provider.set(key, value);},clear : function(key){provider.clear(key);},getProvider : function(){return provider;}};}();Ext.state.CookieProvider = function(config){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, config);this.state = this.readCookies();};Ext.extend(Ext.state.CookieProvider, Ext.state.Provider, {set : function(name, value){if(typeof value == "undefined" || value === null){this.clear(name);return;}this.setCookie(name, value);Ext.state.CookieProvider.superclass.set.call(this, name, value);},clear : function(name){this.clearCookie(name);Ext.state.CookieProvider.superclass.clear.call(this, name);},readCookies : function(){var cookies = {};var c = document.cookie + ";";var re = /\s?(.*?)=(.*?);/g;var matches;while((matches = re.exec(c)) != null){var name = matches[1];var value = matches[2];if(name && name.substring(0,3) == "ys-"){cookies[name.substr(3)] = this.decodeValue(value);}}return cookies;},setCookie : function(name, value){document.cookie = "ys-"+ name + "=" + this.encodeValue(value) +((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(name){document.cookie = "ys-" + name + "=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 : "",last: false,initComponent : function(){Ext.DataView.superclass.initComponent.call(this);if(typeof this.tpl == "string"){this.tpl = new Ext.XTemplate(this.tpl);}this.addEvents("beforeclick","click","containerclick","dblclick","contextmenu","selectionchange","beforeselect");this.all = new Ext.CompositeElementLite();this.selected = new Ext.CompositeElementLite();},onRender : function(){if(!this.el){this.el = document.createElement('div');}Ext.DataView.superclass.onRender.apply(this, arguments);},afterRender : function(){Ext.DataView.superclass.afterRender.call(this);this.el.on({"click": this.onClick,"dblclick": this.onDblClick,"contextmenu": this.onContextMenu,scope:this});if(this.overClass){this.el.on({"mouseover": this.onMouseOver,"mouseout": this.onMouseOut,scope:this});}if(this.store){this.setStore(this.store, true);}},refresh : function(){this.clearSelections(false, true);this.el.update("");var html = [];var records = this.store.getRange();if(records.length < 1){this.el.update(this.emptyText);this.all.clear();return;}this.tpl.overwrite(this.el, this.collectData(records, 0));this.all.fill(Ext.query(this.itemSelector, this.el.dom));this.updateIndexes(0);},prepareData : function(data){return data;},collectData : function(records, startIndex){var r = [];for(var i = 0, len = records.length; i < len; i++){r[r.length] = this.prepareData(records[i].data, startIndex+i, records[i]);}return r;},bufferRender : function(records){var div = document.createElement('div');this.tpl.overwrite(div, this.collectData(records));return Ext.query(this.itemSelector, div);},onUpdate : function(ds, record){var index = this.store.indexOf(record);var sel = this.isSelected(index);var original = this.all.elements[index];var node = this.bufferRender([record], index)[0];this.all.replaceElement(index, node, true);if(sel){this.selected.replaceElement(original, node);this.all.item(index).addClass(this.selectedClass);}this.updateIndexes(index, index);},onAdd : function(ds, records, index){if(this.all.getCount() == 0){this.refresh();return;}var nodes = this.bufferRender(records, index), n;if(index < this.all.getCount()){n = this.all.item(index).insertSibling(nodes, 'before', true);this.all.elements.splice(index, 0, n);}else{n = this.all.last().insertSibling(nodes, 'after', true);this.all.elements.push(n);}this.updateIndexes(index);},onRemove : function(ds, record, index){this.deselect(index);this.all.removeElement(index, true);this.updateIndexes(index);},refreshNode : function(index){this.onUpdate(this.store, this.store.getAt(index));},updateIndexes : function(startIndex, endIndex){var ns = this.all.elements;startIndex = startIndex || 0;endIndex = endIndex || ((endIndex === 0) ? 0 : (ns.length - 1));for(var i = startIndex; i <= endIndex; i++){ns[i].viewIndex = i;}},setStore : function(store, initial){if(!initial && this.store){this.store.un("beforeload", this.onBeforeLoad, this);this.store.un("datachanged", this.refresh, 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(store){store = Ext.StoreMgr.lookup(store);store.on("beforeload", this.onBeforeLoad, this);store.on("datachanged", this.refresh, this);store.on("add", this.onAdd, this);store.on("remove", this.onRemove, this);store.on("update", this.onUpdate, this);store.on("clear", this.refresh, this);}this.store = store;if(store){this.refresh();}},findItemFromChild : function(node){return Ext.fly(node).findParent(this.itemSelector, this.el);},onClick : function(e){var item = e.getTarget(this.itemSelector, this.el);if(item){var index = this.indexOf(item);if(this.onItemClick(item, index, e) !== false){this.fireEvent("click", this, index, item, e);}}else{if(this.fireEvent("containerclick", this, e) !== false){this.clearSelections();}}},onContextMenu : function(e){var item = e.getTarget(this.itemSelector, this.el);if(item){this.fireEvent("contextmenu", this, this.indexOf(item), item, e);}},onDblClick : function(e){var item = e.getTarget(this.itemSelector, this.el);if(item){this.fireEvent("dblclick", this, this.indexOf(item), item, e);}},onMouseOver : function(e){var item = e.getTarget(this.itemSelector, this.el);if(item && item !== this.lastItem){this.lastItem = item;Ext.fly(item).addClass(this.overClass);}},onMouseOut : function(e){if(this.lastItem){if(!e.within(this.lastItem, true)){Ext.fly(this.lastItem).removeClass(this.overClass);delete this.lastItem;}}},onItemClick : function(item, index, e){if(this.fireEvent("beforeclick", this, index, item, e) === false){return false;}if(this.multiSelect){this.doMultiSelection(item, index, e);e.preventDefault();}else if(this.singleSelect){this.doSingleSelection(item, index, e);e.preventDefault();}return true;},doSingleSelection : function(item, index, e){if(e.ctrlKey && this.isSelected(index)){this.deselect(index);}else{this.select(index, false);}},doMultiSelection : function(item, index, e){if(e.shiftKey && this.last !== false){var last = this.last;this.selectRange(last, index, e.ctrlKey);this.last = last;}else{if((e.ctrlKey||this.simpleSelect) && this.isSelected(index)){this.deselect(index);}else{this.select(index, e.ctrlKey || e.shiftKey || this.simpleSelect);}}},getSelectionCount : function(){return this.selected.getCount()},getSelectedNodes : function(){return this.selected.elements;},getSelectedIndexes : function(){var indexes = [], s = this.selected.elements;for(var i = 0, len = s.length; i < len; i++){indexes.push(s[i].viewIndex);}return indexes;},getSelectedRecords : function(){var r = [], s = this.selected.elements;for(var i = 0, len = s.length; i < len; i++){r[r.length] = this.store.getAt(s[i].viewIndex);}return r;},getRecords : function(nodes){var r = [], s = nodes;for(var i = 0, len = s.length; i < len; i++){r[r.length] = this.store.getAt(s[i].viewIndex);}return r;},getRecord : function(node){return this.store.getAt(node.viewIndex);},clearSelections : function(suppressEvent, skipUpdate){if(this.multiSelect || this.singleSelect){if(!skipUpdate){this.selected.removeClass(this.selectedClass);}this.selected.clear();this.last = false;if(!suppressEvent){this.fireEvent("selectionchange", this, this.selected.elements);}}},isSelected : function(node){return this.selected.contains(this.getNode(node));},deselect : function(node){if(this.isSelected(node)){var node = this.getNode(node);this.selected.removeElement(node);if(this.last == node.viewIndex){this.last = false;}Ext.fly(node).removeClass(this.selectedClass);this.fireEvent("selectionchange", this, this.selected.elements);}},select : function(nodeInfo, keepExisting, suppressEvent){if(Ext.isArray(nodeInfo)){if(!keepExisting){this.clearSelections(true);}for(var i = 0, len = nodeInfo.length; i < len; i++){this.select(nodeInfo[i], true, true);}} else{var node = this.getNode(nodeInfo);if(!keepExisting){this.clearSelections(true);}if(node && !this.isSelected(node)){if(this.fireEvent("beforeselect", this, node, this.selected.elements) !== false){Ext.fly(node).addClass(this.selectedClass);this.selected.add(node);this.last = node.viewIndex;if(!suppressEvent){this.fireEvent("selectionchange", this, this.selected.elements);}}}}},selectRange : function(start, end, keepExisting){if(!keepExisting){this.clearSelections(true);}this.select(this.getNodes(start, end), true);},getNode : function(nodeInfo){if(typeof nodeInfo == "string"){return document.getElementById(nodeInfo);}else if(typeof nodeInfo == "number"){return this.all.elements[nodeInfo];}return nodeInfo;},getNodes : function(start, end){var ns = this.all.elements;start = start || 0;end = typeof end == "undefined" ? ns.length - 1 : end;var nodes = [], i;if(start <= end){for(i = start; i <= end; i++){nodes.push(ns[i]);}} else{for(i = start; i >= end; i--){nodes.push(ns[i]);}}return nodes;},indexOf : function(node){node = this.getNode(node);if(typeof node.viewIndex == "number"){return node.viewIndex;}return this.all.indexOf(node);},onBeforeLoad : function(){if(this.loadingText){this.clearSelections(false, true);this.el.update('<div class="loading-indicator">'+this.loadingText+'</div>');this.all.clear();}}});Ext.reg('dataview', Ext.DataView);Ext.ColorPalette = function(config){Ext.ColorPalette.superclass.constructor.call(this, config);this.addEvents('select');if(this.handler){this.on("select", this.handler, this.scope, true);}};Ext.extend(Ext.ColorPalette, 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"],onRender : function(container, position){var t = this.tpl || new Ext.XTemplate('<tpl for="."><a href="#" class="color-{.}" hidefocus="on"><em><span style="background:#{.}" unselectable="on"> </span></em></a></tpl>');var el = document.createElement("div");el.className = this.itemCls;t.overwrite(el, this.colors);container.dom.insertBefore(el, position);this.el = Ext.get(el);this.el.on(this.clickEvent, this.handleClick, this, {delegate: "a"});if(this.clickEvent != 'click'){this.el.on('click', Ext.emptyFn, this, {delegate: "a", preventDefault:true});}},afterRender : function(){Ext.ColorPalette.superclass.afterRender.call(this);if(this.value){var s = this.value;this.value = null;this.select(s);}},handleClick : function(e, t){e.preventDefault();if(!this.disabled){var c = t.className.match(/(?:^|\s)color-(.{6})(?:\s|$)/)[1];this.select(c.toUpperCase());}},select : function(color){color = color.replace("#", "");if(color != this.value || this.allowReselect){var el = this.el;if(this.value){el.child("a.color-"+this.value).removeClass("x-color-palette-sel");}el.child("a.color-"+color).addClass("x-color-palette-sel");this.value = color;this.fireEvent("select", this, color);}}});Ext.reg('colorpalette', Ext.ColorPalette);Ext.DatePicker = Ext.extend(Ext.Component, {todayText : "Today",okText : " OK ",cancelText : "Cancel",todayTip : "{0} (Spacebar)",minDate : null,maxDate : null,minText : "This date is before the minimum date",maxText : "This date is after the maximum date",format : "m/d/y",disabledDays : null,disabledDaysText : "",disabledDatesRE : null,disabledDatesText : "",constrainToViewport : true,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,initComponent : function(){Ext.DatePicker.superclass.initComponent.call(this);this.value = this.value ?this.value.clearTime() : 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 dd = this.disabledDates;var re = "(?:";for(var i = 0; i < dd.length; i++){re += dd[i];if(i != dd.length-1) re += "|";}this.disabledDatesRE = new RegExp(re + ")");}},setValue : function(value){var old = this.value;this.value = value.clearTime(true);if(this.el){this.update(this.value);}},getValue : function(){return this.value;},focus : function(){if(this.el){this.update(this.activeDate);}},onRender : function(container, position){var m = ['<table cellspacing="0">','<tr><td class="x-date-left"><a href="#" title="', this.prevText ,'"> </a></td><td class="x-date-middle" align="center"></td><td class="x-date-right"><a href="#" title="', this.nextText ,'"> </a></td></tr>','<tr><td colspan="3"><table class="x-date-inner" cellspacing="0"><thead><tr>'];var dn = this.dayNames;for(var i = 0; i < 7; i++){var d = this.startDay+i;if(d > 6){d = d-7;}m.push("<th><span>", dn[d].substr(0,1), "</span></th>");}m[m.length] = "</tr></thead><tbody><tr>";for(var i = 0; i < 42; i++) {if(i % 7 == 0 && i != 0){m[m.length] = "</tr><tr>";}m[m.length] = '<td><a href="#" hidefocus="on" class="x-date-date" tabIndex="1"><em><span></span></em></a></td>';}m[m.length] = '</tr></tbody></table></td></tr><tr><td colspan="3" class="x-date-bottom" align="center"></td></tr></table><div class="x-date-mp"></div>';var el = document.createElement("div");el.className = "x-date-picker";el.innerHTML = m.join("");container.dom.insertBefore(el, position);this.el = Ext.get(el);this.eventEl = Ext.get(el.firstChild);new Ext.util.ClickRepeater(this.el.child("td.x-date-left a"), {handler: this.showPrevMonth,scope: this,preventDefault:true,stopDefault:true});new Ext.util.ClickRepeater(this.el.child("td.x-date-right a"), {handler: this.showNextMonth,scope: this,preventDefault:true,stopDefault:true});this.eventEl.on("mousewheel", this.handleMouseWheel, this);this.monthPicker = this.el.down('div.x-date-mp');this.monthPicker.enableDisplayMode('block');var kn = new Ext.KeyNav(this.eventEl, {"left" : function(e){e.ctrlKey ?this.showPrevMonth() :this.update(this.activeDate.add("d", -1));},"right" : function(e){e.ctrlKey ?this.showNextMonth() :this.update(this.activeDate.add("d", 1));},"up" : function(e){e.ctrlKey ?this.showNextYear() :this.update(this.activeDate.add("d", -7));},"down" : function(e){e.ctrlKey ?this.showPrevYear() :this.update(this.activeDate.add("d", 7));},"pageUp" : function(e){this.showNextMonth();},"pageDown" : function(e){this.showPrevMonth();},"enter" : function(e){e.stopPropagation();return true;},scope : this});this.eventEl.on("click", this.handleDateClick, this, {delegate: "a.x-date-date"});this.eventEl.addKeyListener(Ext.EventObject.SPACE, this.selectToday, 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.on('click', this.showMonthPicker, this);this.mbtn.el.child(this.mbtn.menuClassTarget).addClass("x-btn-with-menu");var today = (new Date()).dateFormat(this.format);this.todayBtn = new Ext.Button({renderTo: this.el.child("td.x-date-bottom", true),text: String.format(this.todayText, today),tooltip: String.format(this.todayTip, today),handler: this.selectToday,scope: this});if(Ext.isIE){this.el.repaint();}this.update(this.value);},createMonthPicker : function(){if(!this.monthPicker.dom.firstChild){var buf = ['<table border="0" cellspacing="0">'];for(var i = 0; i < 6; i++){buf.push('<tr><td class="x-date-mp-month"><a href="#">', this.monthNames[i].substr(0, 3), '</a></td>','<td class="x-date-mp-month x-date-mp-sep"><a href="#">', this.monthNames[i+6].substr(0, 3), '</a></td>',i == 0 ?'<td class="x-date-mp-ybtn" align="center"><a class="x-date-mp-prev"></a></td><td class="x-date-mp-ybtn" align="center"><a class="x-date-mp-next"></a></td></tr>' :'<td class="x-date-mp-year"><a href="#"></a></td><td class="x-date-mp-year"><a href="#"></a></td></tr>');}buf.push('<tr class="x-date-mp-btns"><td colspan="4"><button type="button" class="x-date-mp-ok">',this.okText,'</button><button type="button" class="x-date-mp-cancel">',this.cancelText,'</button></td></tr>','</table>');this.monthPicker.update(buf.join(''));this.monthPicker.on('click', this.onMonthClick, this);this.monthPicker.on('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(m, a, i){i += 1;if((i%2) == 0){m.dom.xmonth = 5 + Math.round(i * .5);}else{m.dom.xmonth = Math.round((i-1) * .5);}});}},showMonthPicker : function(){this.createMonthPicker();var size = this.el.getSize();this.monthPicker.setSize(size);this.monthPicker.child('table').setSize(size);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:.2});},updateMPYear : function(y){this.mpyear = y;var ys = this.mpYears.elements;for(var i = 1; i <= 10; i++){var td = ys[i-1], y2;if((i%2) == 0){y2 = y + Math.round(i * .5);td.firstChild.innerHTML = y2;td.xyear = y2;}else{y2 = y - (5-Math.round(i * .5));td.firstChild.innerHTML = y2;td.xyear = y2;}this.mpYears.item(i-1)[y2 == this.mpSelYear ? 'addClass' : 'removeClass']('x-date-mp-sel');}},updateMPMonth : function(sm){this.mpMonths.each(function(m, a, i){m[m.dom.xmonth == sm ? 'addClass' : 'removeClass']('x-date-mp-sel');});},selectMPMonth: function(m){},onMonthClick : function(e, t){e.stopEvent();var el = new Ext.Element(t), pn;if(el.is('button.x-date-mp-cancel')){this.hideMonthPicker();}else if(el.is('button.x-date-mp-ok')){this.update(new Date(this.mpSelYear, this.mpSelMonth, (this.activeDate || this.value).getDate()));this.hideMonthPicker();}else if(pn = el.up('td.x-date-mp-month', 2)){this.mpMonths.removeClass('x-date-mp-sel');pn.addClass('x-date-mp-sel');this.mpSelMonth = pn.dom.xmonth;}else if(pn = el.up('td.x-date-mp-year', 2)){this.mpYears.removeClass('x-date-mp-sel');pn.addClass('x-date-mp-sel');this.mpSelYear = pn.dom.xyear;}else if(el.is('a.x-date-mp-prev')){this.updateMPYear(this.mpyear-10);}else if(el.is('a.x-date-mp-next')){this.updateMPYear(this.mpyear+10);}},onMonthDblClick : function(e, t){e.stopEvent();var el = new Ext.Element(t), pn;if(pn = el.up('td.x-date-mp-month', 2)){this.update(new Date(this.mpSelYear, pn.dom.xmonth, (this.activeDate || this.value).getDate()));this.hideMonthPicker();}else if(pn = el.up('td.x-date-mp-year', 2)){this.update(new Date(pn.dom.xyear, this.mpSelMonth, (this.activeDate || this.value).getDate()));this.hideMonthPicker();}},hideMonthPicker : function(disableAnim){if(this.monthPicker){if(disableAnim === true){this.monthPicker.hide();}else{this.monthPicker.slideOut('t', {duration:.2});}}},showPrevMonth : function(e){this.update(this.activeDate.add("mo", -1));},showNextMonth : function(e){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(e){var delta = e.getWheelDelta();if(delta > 0){this.showPrevMonth();e.stopEvent();} else if(delta < 0){this.showNextMonth();e.stopEvent();}},handleDateClick : function(e, t){e.stopEvent();if(t.dateValue && !Ext.fly(t.parentNode).hasClass("x-date-disabled")){this.setValue(new Date(t.dateValue));this.fireEvent("select", this, this.value);}},selectToday : function(){this.setValue(new Date().clearTime());this.fireEvent("select", this, this.value);},update : function(date){var vd = this.activeDate;this.activeDate = date;if(vd && this.el){var t = date.getTime();if(vd.getMonth() == date.getMonth() && vd.getFullYear() == date.getFullYear()){this.cells.removeClass("x-date-selected");this.cells.each(function(c){if(c.dom.firstChild.dateValue == t){c.addClass("x-date-selected");setTimeout(function(){try{c.dom.firstChild.focus();}catch(e){}}, 50);return false;}});return;}}var days = date.getDaysInMonth();var firstOfMonth = date.getFirstDateOfMonth();var startingPos = firstOfMonth.getDay()-this.startDay;if(startingPos <= this.startDay){startingPos += 7;}var pm = date.add("mo", -1);var prevStart = pm.getDaysInMonth()-startingPos;var cells = this.cells.elements;var textEls = this.textNodes;days += startingPos;var day = 86400000;var d = (new Date(pm.getFullYear(), pm.getMonth(), prevStart)).clearTime();var today = new Date().clearTime().getTime();var sel = date.clearTime().getTime();var min = this.minDate ? this.minDate.clearTime() : Number.NEGATIVE_INFINITY;var max = this.maxDate ? this.maxDate.clearTime() : Number.POSITIVE_INFINITY;var ddMatch = this.disabledDatesRE;var ddText = this.disabledDatesText;var ddays = this.disabledDays ? this.disabledDays.join("") : false;var ddaysText = this.disabledDaysText;var format = this.format;var setCellClass = function(cal, cell){cell.title = "";var t = d.getTime();cell.firstChild.dateValue = t;if(t == today){cell.className += " x-date-today";cell.title = cal.todayText;}if(t == sel){cell.className += " x-date-selected";setTimeout(function(){try{cell.firstChild.focus();}catch(e){}}, 50);}if(t < min) {cell.className = " x-date-disabled";cell.title = cal.minText;return;}if(t > max) {cell.className = " x-date-disabled";cell.title = cal.maxText;return;}if(ddays){if(ddays.indexOf(d.getDay()) != -1){cell.title = ddaysText;cell.className = " x-date-disabled";}}if(ddMatch && format){var fvalue = d.dateFormat(format);if(ddMatch.test(fvalue)){cell.title = ddText.replace("%0", fvalue);cell.className = " x-date-disabled";}}};var i = 0;for(; i < startingPos; i++) {textEls[i].innerHTML = (++prevStart);d.setDate(d.getDate()+1);cells[i].className = "x-date-prevday";setCellClass(this, cells[i]);}for(; i < days; i++){intDay = i - startingPos + 1;textEls[i].innerHTML = (intDay);d.setDate(d.getDate()+1);cells[i].className = "x-date-active";setCellClass(this, cells[i]);}var extraDays = 0;for(; i < 42; i++) {textEls[i].innerHTML = (++extraDays);d.setDate(d.getDate()+1);cells[i].className = "x-date-nextday";setCellClass(this, cells[i]);}this.mbtn.setText(this.monthNames[date.getMonth()] + " " + date.getFullYear());if(!this.internalRender){var main = this.el.dom.firstChild;var w = main.offsetWidth;this.el.setWidth(w + this.el.getBorderWidth("lr"));Ext.fly(main).setWidth(w);this.internalRender = true;if(Ext.isOpera && !this.secondPass){main.rows[0].cells[1].style.width = (w - (main.rows[0].cells[0].offsetWidth+main.rows[0].cells[2].offsetWidth)) + "px";this.secondPass = true;this.update.defer(10, this, [date]);}}},beforeDestroy : function() {this.mbtn.destroy();this.todayBtn.destroy();}});Ext.reg('datepicker', Ext.DatePicker);Ext.TabPanel = Ext.extend(Ext.Panel, {monitorResize : true,deferredRender : true,tabWidth: 120,minTabWidth: 30,resizeTabs:false,enableTabScroll: false,scrollIncrement : 0,scrollRepeatInterval : 400,scrollDuration : .35,animScroll : true,tabPosition: 'top',baseCls: 'x-tab-panel',autoTabs : false,autoTabSelector:'div.x-tab',activeTab : null,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({deferredRender: this.deferredRender}));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();},render : function(){Ext.TabPanel.superclass.render.apply(this, arguments);if(this.activeTab !== undefined){var item = this.activeTab;delete this.activeTab;this.setActiveTab(item);}},onRender : function(ct, position){Ext.TabPanel.superclass.onRender.call(this, ct, position);if(this.plain){var pos = this.tabPosition == 'top' ? 'header' : 'footer';this[pos].addClass('x-tab-panel-'+pos+'-plain');}var st = this[this.stripTarget];this.stripWrap = st.createChild({cls:'x-tab-strip-wrap', cn:{tag:'ul', cls:'x-tab-strip x-tab-strip-'+this.tabPosition}});this.stripSpacer = st.createChild({cls:'x-tab-strip-spacer'});this.strip = new Ext.Element(this.stripWrap.dom.firstChild);this.edge = this.strip.createChild({tag:'li', cls:'x-tab-edge'});this.strip.createChild({cls:'x-clear'});this.body.addClass('x-tab-panel-body-'+this.tabPosition);if(!this.itemTpl){var tt = new Ext.Template('<li class="{cls}" id="{id}"><a class="x-tab-strip-close" onclick="return false;"></a>','<a class="x-tab-right" href="#" onclick="return false;"><em class="x-tab-left">','<span class="x-tab-strip-inner"><span class="x-tab-strip-text {iconCls}">{text}</span></span>','</em></a></li>');tt.disableFormats = true;tt.compile();Ext.TabPanel.prototype.itemTpl = tt;}this.items.each(this.initTab, this);},afterRender : function(){Ext.TabPanel.superclass.afterRender.call(this);if(this.autoTabs){this.readTabs(false);}},initEvents : function(){Ext.TabPanel.superclass.initEvents.call(this);this.on('add', this.onAdd, this);this.on('remove', this.onRemove, this);this.strip.on('mousedown', this.onStripMouseDown, this);this.strip.on('click', this.onStripClick, this);this.strip.on('contextmenu', this.onStripContextMenu, this);if(this.enableTabScroll){this.strip.on('mousewheel', this.onWheel, this);}},findTargets : function(e){var item = null;var itemEl = e.getTarget('li', this.strip);if(itemEl){item = this.getComponent(itemEl.id.split(this.idDelimiter)[1]);if(item.disabled){return {close : null,item : null,el : null};}}return {close : e.getTarget('.x-tab-strip-close', this.strip),item : item,el : itemEl};},onStripMouseDown : function(e){e.preventDefault();if(e.button != 0){return;}var t = this.findTargets(e);if(t.close){this.remove(t.item);return;}if(t.item && t.item != this.activeTab){this.setActiveTab(t.item);}},onStripClick : function(e){var t = this.findTargets(e);if(!t.close && t.item && t.item != this.activeTab){this.setActiveTab(t.item);}},onStripContextMenu : function(e){e.preventDefault();var t = this.findTargets(e);if(t.item){this.fireEvent('contextmenu', this, t.item, e);}},readTabs : function(removeExisting){if(removeExisting === true){this.items.each(function(item){this.remove(item);}, this);}var tabs = this.el.query(this.autoTabSelector);for(var i = 0, len = tabs.length; i < len; i++){var tab = tabs[i];var title = tab.getAttribute('title');tab.removeAttribute('title');this.add({title: title,el: tab});}},initTab : function(item, index){var before = this.strip.dom.childNodes[index];var cls = item.closable ? 'x-tab-strip-closable' : '';if(item.disabled){cls += ' x-item-disabled';}if(item.iconCls){cls += ' x-tab-with-icon';}if(item.tabCls){cls += ' ' + item.tabCls;}var p = {id: this.id + this.idDelimiter + item.getItemId(),text: item.title,cls: cls,iconCls: item.iconCls || ''};var el = before ?this.itemTpl.insertBefore(before, p) :this.itemTpl.append(this.strip, p);Ext.fly(el).addClassOnOver('x-tab-strip-over');if(item.tabTip){Ext.fly(el).child('span.x-tab-strip-text', true).qtip = item.tabTip;}item.on('disable', this.onItemDisabled, this);item.on('enable', this.onItemEnabled, this);item.on('titlechange', this.onItemTitleChanged, this);item.on('beforeshow', this.onBeforeShowItem, this);},onAdd : function(tp, item, index){this.initTab(item, index);if(this.items.getCount() == 1){this.syncSize();}this.delegateUpdates();},onBeforeAdd : function(item){var existing = item.events ? (this.items.containsKey(item.getItemId()) ? item : null) : this.items.get(item);if(existing){this.setActiveTab(item);return false;}Ext.TabPanel.superclass.onBeforeAdd.apply(this, arguments);var es = item.elements;item.elements = es ? es.replace(',header', '') : es;item.border = (item.border === true);},onRemove : function(tp, item){Ext.removeNode(this.getTabEl(item));this.stack.remove(item);if(item == this.activeTab){var next = this.stack.next();if(next){this.setActiveTab(next);}else{this.setActiveTab(0);}}this.delegateUpdates();},onBeforeShowItem : function(item){if(item != this.activeTab){this.setActiveTab(item);return false;}},onItemDisabled : function(item){var el = this.getTabEl(item);if(el){Ext.fly(el).addClass('x-item-disabled');}this.stack.remove(item);},onItemEnabled : function(item){var el = this.getTabEl(item);if(el){Ext.fly(el).removeClass('x-item-disabled');}},onItemTitleChanged : function(item){var el = this.getTabEl(item);if(el){Ext.fly(el).child('span.x-tab-strip-text', true).innerHTML = item.title;}},getTabEl : function(item){var itemId = (typeof item === 'number')?this.items.items[item].getItemId() : item.getItemId();return document.getElementById(this.id+this.idDelimiter+itemId);},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(item){item = this.getComponent(item);var el = this.getTabEl(item);if(el){el.style.display = 'none';this.delegateUpdates();}},unhideTabStripItem : function(item){item = this.getComponent(item);var el = this.getTabEl(item);if(el){el.style.display = '';this.delegateUpdates();}},delegateUpdates : function(){if(this.suspendUpdates){return;}if(this.resizeTabs && this.rendered){this.autoSizeTabs();}if(this.enableTabScroll && this.rendered){this.autoScrollTabs();}},autoSizeTabs : function(){var count = this.items.length;var ce = this.tabPosition != 'bottom' ? 'header' : 'footer';var ow = this[ce].dom.offsetWidth;var aw = this[ce].dom.clientWidth;if(!this.resizeTabs || count < 1 || !aw){ return;}var each = Math.max(Math.min(Math.floor((aw-4) / count) - this.tabMargin, this.tabWidth), this.minTabWidth); this.lastTabWidth = each;var lis = this.stripWrap.dom.getElementsByTagName('li');for(var i = 0, len = lis.length-1; i < len; i++) { var li = lis[i];var inner = li.childNodes[1].firstChild.firstChild;var tw = li.offsetWidth;var iw = inner.offsetWidth;inner.style.width = (each - (tw-iw)) + 'px';}},adjustBodyWidth : function(w){if(this.header){this.header.setWidth(w);}if(this.footer){this.footer.setWidth(w);}return w;},setActiveTab : function(item){item = this.getComponent(item);if(!item || this.fireEvent('beforetabchange', this, item, this.activeTab) === false){return;}if(!this.rendered){this.activeTab = item;return;}if(this.activeTab != item){if(this.activeTab){var oldEl = this.getTabEl(this.activeTab);if(oldEl){Ext.fly(oldEl).removeClass('x-tab-strip-active');}this.activeTab.fireEvent('deactivate', this.activeTab);}var el = this.getTabEl(item);Ext.fly(el).addClass('x-tab-strip-active');this.activeTab = item;this.stack.add(item);this.layout.setActiveItem(item);if(this.layoutOnTabChange && item.doLayout){item.doLayout();}if(this.scrolling){this.scrollToTab(item, this.animScroll);}item.fireEvent('activate', item);this.fireEvent('tabchange', this, item);}},getActiveTab : function(){return this.activeTab || null;},getItem : function(item){return this.getComponent(item);},autoScrollTabs : function(){var count = this.items.length;var ow = this.header.dom.offsetWidth;var tw = this.header.dom.clientWidth;var wrap = this.stripWrap;var wd = wrap.dom;var cw = wd.offsetWidth;var pos = this.getScrollPos();var l = this.edge.getOffsetsTo(this.stripWrap)[0] + pos;if(!this.enableTabScroll || count < 1 || cw < 20){ return;}if(l <= tw){wd.scrollLeft = 0;wrap.setWidth(tw);if(this.scrolling){this.scrolling = false;this.header.removeClass('x-tab-scrolling');this.scrollLeft.hide();this.scrollRight.hide();if(Ext.isAir){wd.style.marginLeft = '';wd.style.marginRight = '';}}}else{if(!this.scrolling){this.header.addClass('x-tab-scrolling');if(Ext.isAir){wd.style.marginLeft = '18px';wd.style.marginRight = '18px';}}tw -= wrap.getMargins('lr');wrap.setWidth(tw > 20 ? tw : 20);if(!this.scrolling){if(!this.scrollLeft){this.createScrollers();}else{this.scrollLeft.show();this.scrollRight.show();}}this.scrolling = true;if(pos > (l-tw)){ wd.scrollLeft = l-tw;}else{ this.scrollToTab(this.activeTab, false);}this.updateScrollButtons();}},createScrollers : function(){var h = this.stripWrap.dom.offsetHeight;var sl = this.header.insertFirst({cls:'x-tab-scroller-left'});sl.setHeight(h);sl.addClassOnOver('x-tab-scroller-left-over');this.leftRepeater = new Ext.util.ClickRepeater(sl, {interval : this.scrollRepeatInterval,handler: this.onScrollLeft,scope: this});this.scrollLeft = sl;var sr = this.header.insertFirst({cls:'x-tab-scroller-right'});sr.setHeight(h);sr.addClassOnOver('x-tab-scroller-right-over');this.rightRepeater = new Ext.util.ClickRepeater(sr, {interval : this.scrollRepeatInterval,handler: this.onScrollRight,scope: this});this.scrollRight = sr;},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(item, animate){if(!item){ return; }var el = this.getTabEl(item);var pos = this.getScrollPos(), area = this.getScrollArea();var left = Ext.fly(el).getOffsetsTo(this.stripWrap)[0] + pos;var right = left + el.offsetWidth;if(left < pos){this.scrollTo(left, animate);}else if(right > (pos + area)){this.scrollTo(right - area, animate);}},scrollTo : function(pos, animate){this.stripWrap.scrollTo('left', pos, animate ? this.getScrollAnim() : false);if(!animate){this.updateScrollButtons();}},onWheel : function(e){var d = e.getWheelDelta()*this.wheelIncrement*-1;e.stopEvent();var pos = this.getScrollPos();var newpos = pos + d;var sw = this.getScrollWidth()-this.getScrollArea();var s = Math.max(0, Math.min(sw, newpos));if(s != pos){this.scrollTo(s, false);}},onScrollRight : function(){var sw = this.getScrollWidth()-this.getScrollArea();var pos = this.getScrollPos();var s = Math.min(sw, pos + this.getScrollIncrement());if(s != pos){this.scrollTo(s, this.animScroll);}},onScrollLeft : function(){var pos = this.getScrollPos();var s = Math.max(0, pos - this.getScrollIncrement());if(s != pos){this.scrollTo(s, this.animScroll);}},updateScrollButtons : function(){var pos = this.getScrollPos();this.scrollLeft[pos == 0 ? 'addClass' : 'removeClass']('x-tab-scroller-left-disabled');this.scrollRight[pos >= (this.getScrollWidth()-this.getScrollArea()) ? 'addClass' : 'removeClass']('x-tab-scroller-right-disabled');}});Ext.reg('tabpanel', Ext.TabPanel);Ext.TabPanel.prototype.activate = Ext.TabPanel.prototype.setActiveTab;Ext.TabPanel.AccessStack = function(){var items = [];return {add : function(item){items.push(item);if(items.length > 10){items.shift();}},remove : function(item){var s = [];for(var i = 0, len = items.length; i < len; i++) {if(items[i] != item){s.push(items[i]);}}items = s;},next : function(){return items.pop();}};};Ext.Button = Ext.extend(Ext.Component, {hidden : false,disabled : false,pressed : false,enableToggle: false,menuAlign : "tl-bl?",type : 'button',menuClassTarget: 'tr',clickEvent : 'click',handleMouseEvents : true,tooltipType : 'qtip',buttonSelector : "button:first",initComponent : function(){Ext.Button.superclass.initComponent.call(this);this.addEvents("click","toggle",'mouseover','mouseout','menushow','menuhide','menutriggerover','menutriggerout');if(this.menu){this.menu = Ext.menu.MenuMgr.get(this.menu);}if(typeof this.toggleGroup === 'string'){this.enableToggle = true;}},onRender : function(ct, position){if(!this.template){if(!Ext.Button.buttonTemplate){Ext.Button.buttonTemplate = new Ext.Template('<table border="0" cellpadding="0" cellspacing="0" class="x-btn-wrap"><tbody><tr>','<td class="x-btn-left"><i> </i></td><td class="x-btn-center"><em unselectable="on"><button class="x-btn-text" type="{1}">{0}</button></em></td><td class="x-btn-right"><i> </i></td>',"</tr></tbody></table>");}this.template = Ext.Button.buttonTemplate;}var btn, targs = [this.text || ' ', this.type];if(position){btn = this.template.insertBefore(position, targs, true);}else{btn = this.template.append(ct, targs, true);}var btnEl = btn.child(this.buttonSelector);btnEl.on('focus', this.onFocus, this);btnEl.on('blur', this.onBlur, this);this.initButtonEl(btn, btnEl);if(this.menu){this.el.child(this.menuClassTarget).addClass("x-btn-with-menu");}Ext.ButtonToggleMgr.register(this);},initButtonEl : function(btn, btnEl){this.el = btn;btn.addClass("x-btn");if(this.icon){btnEl.setStyle('background-image', 'url(' +this.icon +')');}if(this.iconCls){btnEl.addClass(this.iconCls);if(!this.cls){btn.addClass(this.text ? 'x-btn-text-icon' : 'x-btn-icon');}}if(this.tabIndex !== undefined){btnEl.dom.tabIndex = this.tabIndex;}if(this.tooltip){if(typeof this.tooltip == 'object'){Ext.QuickTips.register(Ext.apply({target: btnEl.id}, this.tooltip));} else {btnEl.dom[this.tooltipType] = this.tooltip;}}if(this.pressed){this.el.addClass("x-btn-pressed");}if(this.handleMouseEvents){btn.on("mouseover", this.onMouseOver, this);btn.on("mousedown", this.onMouseDown, this);}if(this.menu){this.menu.on("show", this.onMenuShow, this);this.menu.on("hide", this.onMenuHide, this);}if(this.id){this.el.dom.id = this.el.id = this.id;}if(this.repeat){var repeater = new Ext.util.ClickRepeater(btn,typeof this.repeat == "object" ? this.repeat : {});repeater.on("click", this.onClick, this);}btn.on(this.clickEvent, this.onClick, this);},afterRender : function(){Ext.Button.superclass.afterRender.call(this);if(Ext.isIE6){this.autoWidth.defer(1, this);}else{this.autoWidth();}},setIconClass : function(cls){if(this.el){this.el.child(this.buttonSelector).replaceClass(this.iconCls, cls);}this.iconCls = cls;},beforeDestroy: function(){if(this.rendered){var btn = this.el.child(this.buttonSelector);if(btn){btn.removeAllListeners();}}if(this.menu){Ext.destroy(this.menu);}},onDestroy : function(){if(this.rendered){Ext.ButtonToggleMgr.unregister(this);}},autoWidth : function(){if(this.el){this.el.setWidth("auto");if(Ext.isIE7 && Ext.isStrict){var ib = this.el.child(this.buttonSelector);if(ib && ib.getWidth() > 20){ib.clip();ib.setWidth(Ext.util.TextMetrics.measure(ib, this.text).width+ib.getFrameWidth('lr'));}}if(this.minWidth){if(this.el.getWidth() < this.minWidth){this.el.setWidth(this.minWidth);}}}},setHandler : function(handler, scope){this.handler = handler;this.scope = scope;},setText : function(text){this.text = text;if(this.el){this.el.child("td.x-btn-center " + this.buttonSelector).update(text);}this.autoWidth();},getText : function(){return this.text;},toggle : function(state){state = state === undefined ? !this.pressed : state;if(state != this.pressed){if(state){this.el.addClass("x-btn-pressed");this.pressed = true;this.fireEvent("toggle", this, true);}else{this.el.removeClass("x-btn-pressed");this.pressed = false;this.fireEvent("toggle", this, false);}if(this.toggleHandler){this.toggleHandler.call(this.scope || this, this, state);}}},focus : function(){this.el.child(this.buttonSelector).focus();},onDisable : function(){if(this.el){if(!Ext.isIE6 || !this.text){this.el.addClass(this.disabledClass);}this.el.dom.disabled = true;}this.disabled = true;},onEnable : function(){if(this.el){if(!Ext.isIE6 || !this.text){this.el.removeClass(this.disabledClass);}this.el.dom.disabled = false;}this.disabled = false;},showMenu : function(){if(this.menu){this.menu.show(this.el, this.menuAlign);}return this;},hideMenu : function(){if(this.menu){this.menu.hide();}return this;},hasVisibleMenu : function(){return this.menu && this.menu.isVisible();},onClick : function(e){if(e){e.preventDefault();}if(e.button != 0){return;}if(!this.disabled){if(this.enableToggle && (this.allowDepress !== false || !this.pressed)){this.toggle();}if(this.menu && !this.menu.isVisible() && !this.ignoreNextClick){this.showMenu();}this.fireEvent("click", this, e);if(this.handler){this.handler.call(this.scope || this, this, e);}}},isMenuTriggerOver : function(e, internal){return this.menu && !internal;},isMenuTriggerOut : function(e, internal){return this.menu && !internal;},onMouseOver : function(e){if(!this.disabled){var internal = e.within(this.el, true);if(!internal){this.el.addClass("x-btn-over");Ext.getDoc().on('mouseover', this.monitorMouseOver, this);this.fireEvent('mouseover', this, e);}if(this.isMenuTriggerOver(e, internal)){this.fireEvent('menutriggerover', this, this.menu, e);}}},monitorMouseOver : function(e){if(e.target != this.el.dom && !e.within(this.el)){Ext.getDoc().un('mouseover', this.monitorMouseOver, this);this.onMouseOut(e);}},onMouseOut : function(e){var internal = e.within(this.el) && e.target != this.el.dom;this.el.removeClass("x-btn-over");this.fireEvent('mouseout', this, e);if(this.isMenuTriggerOut(e, internal)){this.fireEvent('menutriggerout', this, this.menu, e);}},onFocus : function(e){if(!this.disabled){this.el.addClass("x-btn-focus");}},onBlur : function(e){this.el.removeClass("x-btn-focus");},getClickEl : function(e, isUp){return this.el;},onMouseDown : function(e){if(!this.disabled && e.button == 0){this.getClickEl(e).addClass("x-btn-click");Ext.getDoc().on('mouseup', this.onMouseUp, this);}},onMouseUp : function(e){if(e.button == 0){this.getClickEl(e, true).removeClass("x-btn-click");Ext.getDoc().un('mouseup', this.onMouseUp, this);}},onMenuShow : function(e){this.ignoreNextClick = 0;this.el.addClass("x-btn-menu-active");this.fireEvent('menushow', this, this.menu);},onMenuHide : function(e){this.el.removeClass("x-btn-menu-active");this.ignoreNextClick = this.restoreClick.defer(250, this);this.fireEvent('menuhide', this, this.menu);},restoreClick : function(){this.ignoreNextClick = 0;}});Ext.reg('button', Ext.Button);Ext.ButtonToggleMgr = function(){var groups = {};function toggleGroup(btn, state){if(state){var g = groups[btn.toggleGroup];for(var i = 0, l = g.length; i < l; i++){if(g[i] != btn){g[i].toggle(false);}}}}return {register : function(btn){if(!btn.toggleGroup){return;}var g = groups[btn.toggleGroup];if(!g){g = groups[btn.toggleGroup] = [];}g.push(btn);btn.on("toggle", toggleGroup);},unregister : function(btn){if(!btn.toggleGroup){return;}var g = groups[btn.toggleGroup];if(g){g.remove(btn);btn.un("toggle", toggleGroup);}}};}();Ext.SplitButton = Ext.extend(Ext.Button, {arrowSelector : 'button:last',initComponent : function(){Ext.SplitButton.superclass.initComponent.call(this);this.addEvents("arrowclick");},onRender : function(ct, position){var tpl = new Ext.Template('<table cellspacing="0" class="x-btn-menu-wrap x-btn"><tr><td>','<table cellspacing="0" class="x-btn-wrap x-btn-menu-text-wrap"><tbody>','<tr><td class="x-btn-left"><i> </i></td><td class="x-btn-center"><button class="x-btn-text" type="{1}">{0}</button></td></tr>',"</tbody></table></td><td>",'<table cellspacing="0" class="x-btn-wrap x-btn-menu-arrow-wrap"><tbody>','<tr><td class="x-btn-center"><button class="x-btn-menu-arrow-el" type="button"> </button></td><td class="x-btn-right"><i> </i></td></tr>',"</tbody></table></td></tr></table>");var btn, targs = [this.text || ' ', this.type];if(position){btn = tpl.insertBefore(position, targs, true);}else{btn = tpl.append(ct, targs, true);}var btnEl = btn.child(this.buttonSelector);this.initButtonEl(btn, btnEl);this.arrowBtnTable = btn.child("table:last");if(this.arrowTooltip){btn.child(this.arrowSelector).dom[this.tooltipType] = this.arrowTooltip;}},autoWidth : function(){if(this.el){var tbl = this.el.child("table:first");var tbl2 = this.el.child("table:last");this.el.setWidth("auto");tbl.setWidth("auto");if(Ext.isIE7 && Ext.isStrict){var ib = this.el.child(this.buttonSelector);if(ib && ib.getWidth() > 20){ib.clip();ib.setWidth(Ext.util.TextMetrics.measure(ib, this.text).width+ib.getFrameWidth('lr'));}}if(this.minWidth){if((tbl.getWidth()+tbl2.getWidth()) < this.minWidth){tbl.setWidth(this.minWidth-tbl2.getWidth());}}this.el.setWidth(tbl.getWidth()+tbl2.getWidth());}},setArrowHandler : function(handler, scope){this.arrowHandler = handler;this.scope = scope;},onClick : function(e){e.preventDefault();if(!this.disabled){if(e.getTarget(".x-btn-menu-arrow-wrap")){if(this.menu && !this.menu.isVisible() && !this.ignoreNextClick){this.showMenu();}this.fireEvent("arrowclick", this, e);if(this.arrowHandler){this.arrowHandler.call(this.scope || this, this, e);}}else{if(this.enableToggle){this.toggle();}this.fireEvent("click", this, e);if(this.handler){this.handler.call(this.scope || this, this, e);}}}},getClickEl : function(e, isUp){if(!isUp){return (this.lastClickEl = e.getTarget("table", 10, true));}return this.lastClickEl;},onDisable : function(){if(this.el){if(!Ext.isIE6){this.el.addClass("x-item-disabled");}this.el.child(this.buttonSelector).dom.disabled = true;this.el.child(this.arrowSelector).dom.disabled = true;}this.disabled = true;},onEnable : function(){if(this.el){if(!Ext.isIE6){this.el.removeClass("x-item-disabled");}this.el.child(this.buttonSelector).dom.disabled = false;this.el.child(this.arrowSelector).dom.disabled = false;}this.disabled = false;},isMenuTriggerOver : function(e){return this.menu && e.within(this.arrowBtnTable) && !e.within(this.arrowBtnTable, true);},isMenuTriggerOut : function(e, internal){return this.menu && !e.within(this.arrowBtnTable);},onDestroy : function(){Ext.destroy(this.arrowBtnTable);Ext.SplitButton.superclass.onDestroy.call(this);}});Ext.MenuButton = Ext.SplitButton;Ext.reg('splitbutton', Ext.SplitButton);Ext.CycleButton = Ext.extend(Ext.SplitButton, {getItemText : function(item){if(item && this.showText === true){var text = '';if(this.prependText){text += this.prependText;}text += item.text;return text;}return undefined;},setActiveItem : function(item, suppressEvent){if(typeof item != 'object'){item = this.menu.items.get(item);}if(item){if(!this.rendered){this.text = this.getItemText(item);this.iconCls = item.iconCls;}else{var t = this.getItemText(item);if(t){this.setText(t);}this.setIconClass(item.iconCls);}this.activeItem = item;if(!item.checked){item.setChecked(true, true);}if(this.forceIcon){this.setIconClass(this.forceIcon);}if(!suppressEvent){this.fireEvent('change', this, item);}}},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 checked;for(var i = 0, len = this.itemCount; i < len; i++){var item = this.items[i];item.group = item.group || this.id;item.itemIndex = i;item.checkHandler = this.checkHandler;item.scope = this;item.checked = item.checked || false;this.menu.items.push(item);if(item.checked){checked = item;}}this.setActiveItem(checked, true);Ext.CycleButton.superclass.initComponent.call(this);this.on('click', this.toggleSelected, this);},checkHandler : function(item, pressed){if(pressed){this.setActiveItem(item);}},toggleSelected : function(){this.menu.render();var nextIdx, checkItem;for (var i = 1; i < this.itemCount; i++) {nextIdx = (this.activeItem.itemIndex + i) % this.itemCount;checkItem = this.menu.items.itemAt(nextIdx);if (!checkItem.disabled) {checkItem.setChecked(true);break;}}}});Ext.reg('cycle', Ext.CycleButton);Ext.Toolbar = function(config){if(Ext.isArray(config)){config = {buttons:config};}Ext.Toolbar.superclass.constructor.call(this, config);};(function(){var T = Ext.Toolbar;Ext.extend(T, Ext.BoxComponent, {trackMenus : true,initComponent : function(){T.superclass.initComponent.call(this);if(this.items){this.buttons = this.items;}this.items = new Ext.util.MixedCollection(false, function(o){return o.itemId || o.id || Ext.id();});},autoCreate: {cls:'x-toolbar x-small-editor',html:'<table cellspacing="0"><tr></tr></table>'},onRender : function(ct, position){this.el = ct.createChild(Ext.apply({ id: this.id },this.autoCreate), position);this.tr = this.el.child("tr", true);},afterRender : function(){T.superclass.afterRender.call(this);if(this.buttons){this.add.apply(this, this.buttons);delete this.buttons;}},add : function(){var a = arguments, l = a.length;for(var i = 0; i < l; i++){var el = a[i];if(el.isFormField){this.addField(el);}else if(el.render){this.addItem(el);}else if(typeof el == "string"){if(el == "separator" || el == "-"){this.addSeparator();}else if(el == " "){this.addSpacer();}else if(el == "->"){this.addFill();}else{this.addText(el);}}else if(el.tagName){this.addElement(el);}else if(typeof el == "object"){if(el.xtype){this.addField(Ext.ComponentMgr.create(el, 'button'));}else{this.addButton(el);}}}},addSeparator : function(){return this.addItem(new T.Separator());},addSpacer : function(){return this.addItem(new T.Spacer());},addFill : function(){return this.addItem(new T.Fill());},addElement : function(el){return this.addItem(new T.Item(el));},addItem : function(item){var td = this.nextBlock();this.initMenuTracking(item);item.render(td);this.items.add(item);return item;},addButton : function(config){if(Ext.isArray(config)){var buttons = [];for(var i = 0, len = config.length; i < len; i++) {buttons.push(this.addButton(config[i]));}return buttons;}var b = config;if(!(config instanceof T.Button)){b = config.split ?new T.SplitButton(config) :new T.Button(config);}var td = this.nextBlock();this.initMenuTracking(b);b.render(td);this.items.add(b);return b;},initMenuTracking : function(item){if(this.trackMenus && item.menu){item.on({'menutriggerover' : this.onButtonTriggerOver,'menushow' : this.onButtonMenuShow,'menuhide' : this.onButtonMenuHide,scope: this})}},addText : function(text){return this.addItem(new T.TextItem(text));},insertButton : function(index, item){if(Ext.isArray(item)){var buttons = [];for(var i = 0, len = item.length; i < len; i++) {buttons.push(this.insertButton(index + i, item[i]));}return buttons;}if (!(item instanceof T.Button)){item = new T.Button(item);}var td = document.createElement("td");this.tr.insertBefore(td, this.tr.childNodes[index]);this.initMenuTracking(item);item.render(td);this.items.insert(index, item);return item;},addDom : function(config, returnEl){var td = this.nextBlock();Ext.DomHelper.overwrite(td, config);var ti = new T.Item(td.firstChild);ti.render(td);this.items.add(ti);return ti;},addField : function(field){var td = this.nextBlock();field.render(td);var ti = new T.Item(td.firstChild);ti.render(td);this.items.add(ti);return ti;},nextBlock : function(){var td = document.createElement("td");this.tr.appendChild(td);return td;},onDestroy : function(){Ext.Toolbar.superclass.onDestroy.call(this);if(this.rendered){if(this.items){Ext.destroy.apply(Ext, this.items.items);}Ext.Element.uncache(this.tr);}},onDisable : function(){this.items.each(function(item){if(item.disable){item.disable();}});},onEnable : function(){this.items.each(function(item){if(item.enable){item.enable();}});},onButtonTriggerOver : function(btn){if(this.activeMenuBtn && this.activeMenuBtn != btn){this.activeMenuBtn.hideMenu();btn.showMenu();this.activeMenuBtn = btn;}},onButtonMenuShow : function(btn){this.activeMenuBtn = btn;},onButtonMenuHide : function(btn){delete this.activeMenuBtn;}});Ext.reg('toolbar', Ext.Toolbar);T.Item = function(el){this.el = Ext.getDom(el);this.id = Ext.id(this.el);this.hidden = false;};T.Item.prototype = {getEl : function(){return this.el;},render : function(td){this.td = td;td.appendChild(this.el);},destroy : function(){if(this.td && this.td.parentNode){this.td.parentNode.removeChild(this.td);}},show: function(){this.hidden = false;this.td.style.display = "";},hide: function(){this.hidden = true;this.td.style.display = "none";},setVisible: function(visible){if(visible) {this.show();}else{this.hide();}},focus : function(){Ext.fly(this.el).focus();},disable : function(){Ext.fly(this.td).addClass("x-item-disabled");this.disabled = true;this.el.disabled = true;},enable : function(){Ext.fly(this.td).removeClass("x-item-disabled");this.disabled = false;this.el.disabled = false;}};Ext.reg('tbitem', T.Item);T.Separator = function(){var s = document.createElement("span");s.className = "ytb-sep";T.Separator.superclass.constructor.call(this, s);};Ext.extend(T.Separator, T.Item, {enable:Ext.emptyFn,disable:Ext.emptyFn,focus:Ext.emptyFn});Ext.reg('tbseparator', T.Separator);T.Spacer = function(){var s = document.createElement("div");s.className = "ytb-spacer";T.Spacer.superclass.constructor.call(this, s);};Ext.extend(T.Spacer, T.Item, {enable:Ext.emptyFn,disable:Ext.emptyFn,focus:Ext.emptyFn});Ext.reg('tbspacer', T.Spacer);T.Fill = Ext.extend(T.Spacer, {render : function(td){td.style.width = '100%';T.Fill.superclass.render.call(this, td);}});Ext.reg('tbfill', T.Fill);T.TextItem = function(t){var s = document.createElement("span");s.className = "ytb-text";s.innerHTML = t.text ? t.text : t;T.TextItem.superclass.constructor.call(this, s);};Ext.extend(T.TextItem, T.Item, {enable:Ext.emptyFn,disable:Ext.emptyFn,focus:Ext.emptyFn});Ext.reg('tbtext', T.TextItem);T.Button = Ext.extend(Ext.Button, {hideParent : true,onDestroy : function(){T.Button.superclass.onDestroy.call(this);if(this.container){this.container.remove();}}});Ext.reg('tbbutton', T.Button);T.SplitButton = Ext.extend(Ext.SplitButton, {hideParent : true,onDestroy : function(){T.SplitButton.superclass.onDestroy.call(this);if(this.container){this.container.remove();}}});Ext.reg('tbsplit', T.SplitButton);T.MenuButton = T.SplitButton;})();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",paramNames : {start: 'start', limit: 'limit'},initComponent : function(){Ext.PagingToolbar.superclass.initComponent.call(this);this.cursor = 0;this.bind(this.store);},onRender : function(ct, position){Ext.PagingToolbar.superclass.onRender.call(this, ct, position);this.first = this.addButton({tooltip: this.firstText,iconCls: "x-tbar-page-first",disabled: true,handler: this.onClick.createDelegate(this, ["first"])});this.prev = this.addButton({tooltip: this.prevText,iconCls: "x-tbar-page-prev",disabled: true,handler: this.onClick.createDelegate(this, ["prev"])});this.addSeparator();this.add(this.beforePageText);this.field = Ext.get(this.addDom({tag: "input",type: "text",size: "3",value: "1",cls: "x-tbar-page-number"}).el);this.field.on("keydown", this.onPagingKeydown, this);this.field.on("focus", function(){this.dom.select();});this.afterTextEl = this.addText(String.format(this.afterPageText, 1));this.field.setHeight(18);this.addSeparator();this.next = this.addButton({tooltip: this.nextText,iconCls: "x-tbar-page-next",disabled: true,handler: this.onClick.createDelegate(this, ["next"])});this.last = this.addButton({tooltip: this.lastText,iconCls: "x-tbar-page-last",disabled: true,handler: this.onClick.createDelegate(this, ["last"])});this.addSeparator();this.loading = this.addButton({tooltip: this.refreshText,iconCls: "x-tbar-loading",handler: this.onClick.createDelegate(this, ["refresh"])});if(this.displayInfo){this.displayEl = Ext.fly(this.el.dom).createChild({cls:'x-paging-info'});}if(this.dsLoaded){this.onLoad.apply(this, this.dsLoaded);}},updateInfo : function(){if(this.displayEl){var count = this.store.getCount();var msg = count == 0 ?this.emptyMsg :String.format(this.displayMsg,this.cursor+1, this.cursor+count, this.store.getTotalCount());this.displayEl.update(msg);}},onLoad : function(store, r, o){if(!this.rendered){this.dsLoaded = [store, r, o];return;}this.cursor = o.params ? o.params[this.paramNames.start] : 0;var d = this.getPageData(), ap = d.activePage, ps = d.pages;this.afterTextEl.el.innerHTML = String.format(this.afterPageText, d.pages);this.field.dom.value = ap;this.first.setDisabled(ap == 1);this.prev.setDisabled(ap == 1);this.next.setDisabled(ap == ps);this.last.setDisabled(ap == ps);this.loading.enable();this.updateInfo();},getPageData : function(){var total = this.store.getTotalCount();return {total : total,activePage : Math.ceil((this.cursor+this.pageSize)/this.pageSize),pages : total < this.pageSize ? 1 : Math.ceil(total/this.pageSize)};},onLoadError : function(){if(!this.rendered){return;}this.loading.enable();},readPage : function(d){var v = this.field.dom.value, pageNum;if (!v || isNaN(pageNum = parseInt(v, 10))) {this.field.dom.value = d.activePage;return false;}return pageNum;},onPagingKeydown : function(e){var k = e.getKey(), d = this.getPageData(), pageNum;if (k == e.RETURN) {e.stopEvent();if(pageNum = this.readPage(d)){pageNum = Math.min(Math.max(1, pageNum), d.pages) - 1;this.doLoad(pageNum * this.pageSize);}}else if (k == e.HOME || k == e.END){e.stopEvent();pageNum = k == e.HOME ? 1 : d.pages;this.field.dom.value = pageNum;}else if (k == e.UP || k == e.PAGEUP || k == e.DOWN || k == e.PAGEDOWN){e.stopEvent();if(pageNum = this.readPage(d)){var increment = e.shiftKey ? 10 : 1;if(k == e.DOWN || k == e.PAGEDOWN){increment *= -1;}pageNum += increment;if(pageNum >= 1 & pageNum <= d.pages){this.field.dom.value = pageNum;}}}},beforeLoad : function(){if(this.rendered && this.loading){this.loading.disable();}},doLoad : function(start){var o = {}, pn = this.paramNames;o[pn.start] = start;o[pn.limit] = this.pageSize;this.store.load({params:o});},onClick : function(which){var store = this.store;switch(which){case "first":this.doLoad(0);break;case "prev":this.doLoad(Math.max(0, this.cursor-this.pageSize));break;case "next":this.doLoad(this.cursor+this.pageSize);break;case "last":var total = store.getTotalCount();var extra = total % this.pageSize;var lastStart = extra ? (total - extra) : total-this.pageSize;this.doLoad(lastStart);break;case "refresh":this.doLoad(this.cursor);break;}},unbind : function(store){store = Ext.StoreMgr.lookup(store);store.un("beforeload", this.beforeLoad, this);store.un("load", this.onLoad, this);store.un("loadexception", this.onLoadError, this);this.store = undefined;},bind : function(store){store = Ext.StoreMgr.lookup(store);store.on("beforeload", this.beforeLoad, this);store.on("load", this.onLoad, this);store.on("loadexception", this.onLoadError, this);this.store = store;}});Ext.reg('paging', Ext.PagingToolbar);Ext.Resizable = function(el, config){this.el = Ext.get(el);if(config && config.wrap){config.resizeChild = this.el;this.el = this.el.wrap(typeof config.wrap == "object" ? config.wrap : {cls:"xresizable-wrap"});this.el.id = this.el.dom.id = config.resizeChild.id + "-rzwrap";this.el.setStyle("overflow", "hidden");this.el.setPositioning(config.resizeChild.getPositioning());config.resizeChild.clearPositioning();if(!config.width || !config.height){var csize = config.resizeChild.getSize();this.el.setSize(csize.width, csize.height);}if(config.pinned && !config.adjustments){config.adjustments = "auto";}}this.proxy = this.el.createProxy({tag: "div", cls: "x-resizable-proxy", id: this.el.id + "-rzproxy"});this.proxy.unselectable();this.proxy.enableDisplayMode('block');Ext.apply(this, config);if(this.pinned){this.disableTrackOver = true;this.el.addClass("x-resizable-pinned");}var position = this.el.getStyle("position");if(position != "absolute" && position != "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 hs = this.handles.split(/\s*?[,;]\s*?| /);var ps = Ext.Resizable.positions;for(var i = 0, len = hs.length; i < len; i++){if(hs[i] && ps[hs[i]]){var pos = ps[hs[i]];this[pos] = new Ext.Resizable.Handle(this, pos, this.disableTrackOver, this.transparent);}}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 rc = this.resizeChild;var hw = this.west, he = this.east, hn = this.north, hs = this.south;if(rc && (hw || hn)){rc.position("relative");rc.setLeft(hw ? hw.el.getWidth() : 0);rc.setTop(hn ? hn.el.getHeight() : 0);}this.adjustments = [(he ? -he.el.getWidth() : 0) + (hw ? -hw.el.getWidth() : 0),(hn ? -hn.el.getHeight() : 0) + (hs ? -hs.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);}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);};Ext.extend(Ext.Resizable, Ext.util.Observable, {resizeChild : false,adjustments : [0, 0],minWidth : 5,minHeight : 5,maxWidth : 10000,maxHeight : 10000,enabled : true,animate : false,duration : .35,dynamic : false,handles : false,multiDirectional : false,disableTrackOver : false,easing : 'easeOutStrong',widthIncrement : 0,heightIncrement : 0,pinned : false,width : null,height : null,preserveRatio : false,transparent: false,minX: 0,minY: 0,draggable: false,resizeTo : function(width, height){this.el.setSize(width, height);this.updateChildSize();this.fireEvent("resize", this, width, height, null);},startSizing : function(e, handle){this.fireEvent("beforeresize", this, e);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("mousemove", this.onMouseMove, this);this.overlay.on("mouseup", this.onMouseUp, this);}this.overlay.setStyle("cursor", handle.el.getStyle("cursor"));this.resizing = true;this.startBox = this.el.getBox();this.startPoint = e.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 ct = Ext.get(this.constrainTo);this.resizeRegion = ct.getRegion().adjust(ct.getFrameWidth('t'),ct.getFrameWidth('l'),-ct.getFrameWidth('b'),-ct.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(handle, e){if(this.enabled){e.stopEvent();this.activeHandle = handle;this.startSizing(e, handle);}},onMouseUp : function(e){var size = this.resizeElement();this.resizing = false;this.handleOut();this.overlay.hide();this.proxy.hide();this.fireEvent("resize", this, size.width, size.height, e);},updateChildSize : function(){if(this.resizeChild){var el = this.el;var child = this.resizeChild;var adj = this.adjustments;if(el.dom.offsetWidth){var b = el.getSize(true);child.setSize(b.width+adj[0], b.height+adj[1]);}if(Ext.isIE){setTimeout(function(){if(el.dom.offsetWidth){var b = el.getSize(true);child.setSize(b.width+adj[0], b.height+adj[1]);}}, 10);}}},snap : function(value, inc, min){if(!inc || !value) return value;var newValue = value;var m = value % inc;if(m > 0){if(m > (inc/2)){newValue = value + (inc-m);}else{newValue = value - m;}}return Math.max(min, newValue);},resizeElement : function(){var box = this.proxy.getBox();if(this.updateBox){this.el.setBox(box, false, this.animate, this.duration, null, this.easing);}else{this.el.setSize(box.width, box.height, this.animate, this.duration, null, this.easing);}this.updateChildSize();if(!this.dynamic){this.proxy.hide();}return box;},constrain : function(v, diff, m, mx){if(v - diff < m){diff = v - m;}else if(v - diff > mx){diff = mx - v;}return diff;},onMouseMove : function(e){if(this.enabled){try{if(this.resizeRegion && !this.resizeRegion.contains(e.getPoint())) {return;}var curSize = this.curSize || this.startBox;var x = this.startBox.x, y = this.startBox.y;var ox = x, oy = y;var w = curSize.width, h = curSize.height;var ow = w, oh = h;var mw = this.minWidth, mh = this.minHeight;var mxw = this.maxWidth, mxh = this.maxHeight;var wi = this.widthIncrement;var hi = this.heightIncrement;var eventXY = e.getXY();var diffX = -(this.startPoint[0] - Math.max(this.minX, eventXY[0]));var diffY = -(this.startPoint[1] - Math.max(this.minY, eventXY[1]));var pos = this.activeHandle.position;switch(pos){case "east":w += diffX;w = Math.min(Math.max(mw, w), mxw);break;case "south":h += diffY;h = Math.min(Math.max(mh, h), mxh);break;case "southeast":w += diffX;h += diffY;w = Math.min(Math.max(mw, w), mxw);h = Math.min(Math.max(mh, h), mxh);break;case "north":diffY = this.constrain(h, diffY, mh, mxh);y += diffY;h -= diffY;break;case "west":diffX = this.constrain(w, diffX, mw, mxw);x += diffX;w -= diffX;break;case "northeast":w += diffX;w = Math.min(Math.max(mw, w), mxw);diffY = this.constrain(h, diffY, mh, mxh);y += diffY;h -= diffY;break;case "northwest":diffX = this.constrain(w, diffX, mw, mxw);diffY = this.constrain(h, diffY, mh, mxh);y += diffY;h -= diffY;x += diffX;w -= diffX;break;case "southwest":diffX = this.constrain(w, diffX, mw, mxw);h += diffY;h = Math.min(Math.max(mh, h), mxh);x += diffX;w -= diffX;break;}var sw = this.snap(w, wi, mw);var sh = this.snap(h, hi, mh);if(sw != w || sh != h){switch(pos){case "northeast":y -= sh - h;break;case "north":y -= sh - h;break;case "southwest":x -= sw - w;break;case "west":x -= sw - w;break;case "northwest":x -= sw - w;y -= sh - h;break;}w = sw;h = sh;}if(this.preserveRatio){switch(pos){case "southeast":case "east":h = oh * (w/ow);h = Math.min(Math.max(mh, h), mxh);w = ow * (h/oh);break;case "south":w = ow * (h/oh);w = Math.min(Math.max(mw, w), mxw);h = oh * (w/ow);break;case "northeast":w = ow * (h/oh);w = Math.min(Math.max(mw, w), mxw);h = oh * (w/ow);break;case "north":var tw = w;w = ow * (h/oh);w = Math.min(Math.max(mw, w), mxw);h = oh * (w/ow);x += (tw - w) / 2;break;case "southwest":h = oh * (w/ow);h = Math.min(Math.max(mh, h), mxh);var tw = w;w = ow * (h/oh);x += tw - w;break;case "west":var th = h;h = oh * (w/ow);h = Math.min(Math.max(mh, h), mxh);y += (th - h) / 2;var tw = w;w = ow * (h/oh);x += tw - w;break;case "northwest":var tw = w;var th = h;h = oh * (w/ow);h = Math.min(Math.max(mh, h), mxh);w = ow * (h/oh);y += th - h;x += tw - w;break;}}this.proxy.setBounds(x, y, w, h);if(this.dynamic){this.resizeElement();}}catch(e){}}},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(removeEl){this.proxy.remove();if(this.overlay){this.overlay.removeAllListeners();this.overlay.remove();}var ps = Ext.Resizable.positions;for(var k in ps){if(typeof ps[k] != "function" && this[ps[k]]){var h = this[ps[k]];h.el.removeAllListeners();h.el.remove();}}if(removeEl){this.el.update("");this.el.remove();}},syncHandleHeight : function(){var h = this.el.getHeight(true);if(this.west){this.west.el.setHeight(h);}if(this.east){this.east.el.setHeight(h);}}});Ext.Resizable.positions = {n: "north", s: "south", e: "east", w: "west", se: "southeast", sw: "southwest", nw: "northwest", ne: "northeast"};Ext.Resizable.Handle = function(rz, pos, disableTrackOver, transparent){if(!this.tpl){var tpl = Ext.DomHelper.createTemplate({tag: "div", cls: "x-resizable-handle x-resizable-handle-{0}"});tpl.compile();Ext.Resizable.Handle.prototype.tpl = tpl;}this.position = pos;this.rz = rz;this.el = this.tpl.append(rz.el.dom, [this.position], true);this.el.unselectable();if(transparent){this.el.setOpacity(0);}this.el.on("mousedown", this.onMouseDown, this);if(!disableTrackOver){this.el.on("mouseover", this.onMouseOver, this);this.el.on("mouseout", this.onMouseOut, this);}};Ext.Resizable.Handle.prototype = {afterResize : function(rz){},onMouseDown : function(e){this.rz.onMouseDown(this, e);},onMouseOver : function(e){this.rz.handleOver(this, e);},onMouseOut : function(e){this.rz.handleOut(this, e);}};Ext.Editor = function(field, config){this.field = field;Ext.Editor.superclass.constructor.call(this, config);};Ext.extend(Ext.Editor, Ext.Component, {value : "",alignment: "c-c?",shadow : "frame",constrain : false,swallowKeys : true,completeOnEnter : false,cancelOnEsc : false,updateEl : false,initComponent : function(){Ext.Editor.superclass.initComponent.call(this);this.addEvents("beforestartedit","startedit","beforecomplete","complete","specialkey");},onRender : function(ct, position){this.el = new Ext.Layer({shadow: this.shadow,cls: "x-editor",parentEl : ct,shim : this.shim,shadowOffset:4,id: this.id,constrain: this.constrain});this.el.setStyle("overflow", Ext.isGecko ? "auto" : "hidden");if(this.field.msgTarget != 'title'){this.field.msgTarget = 'qtip';}this.field.inEditor = true;this.field.render(this.el);if(Ext.isGecko){this.field.el.dom.setAttribute('autocomplete', 'off');}this.field.on("specialkey", this.onSpecialKey, this);if(this.swallowKeys){this.field.el.swallowEvent(['keydown','keypress']);}this.field.show();this.field.on("blur", this.onBlur, this);if(this.field.grow){this.field.on("autosize", this.el.sync, this.el, {delay:1});}},onSpecialKey : function(field, e){if(this.completeOnEnter && e.getKey() == e.ENTER){e.stopEvent();this.completeEdit();}else if(this.cancelOnEsc && e.getKey() == e.ESC){this.cancelEdit();}else{this.fireEvent('specialkey', field, e);}},startEdit : function(el, value){if(this.editing){this.completeEdit();}this.boundEl = Ext.get(el);var v = value !== undefined ? value : this.boundEl.dom.innerHTML;if(!this.rendered){this.render(this.parentEl || document.body);}if(this.fireEvent("beforestartedit", this, this.boundEl, v) === false){return;}this.startValue = v;this.field.setValue(v);this.doAutoSize();this.el.alignTo(this.boundEl, this.alignment);this.editing = true;this.show();},doAutoSize : function(){if(this.autoSize){var sz = this.boundEl.getSize();switch(this.autoSize){case "width":this.setSize(sz.width, "");break;case "height":this.setSize("", sz.height);break;default:this.setSize(sz.width, sz.height);}}},setSize : function(w, h){delete this.field.lastSize;this.field.setSize(w, h);if(this.el){this.el.sync();}},realign : function(){this.el.alignTo(this.boundEl, this.alignment);},completeEdit : function(remainVisible){if(!this.editing){return;}var v = this.getValue();if(this.revertInvalid !== false && !this.field.isValid()){v = this.startValue;this.cancelEdit(true);}if(String(v) === String(this.startValue) && this.ignoreNoChange){this.editing = false;this.hide();return;}if(this.fireEvent("beforecomplete", this, v, this.startValue) !== false){this.editing = false;if(this.updateEl && this.boundEl){this.boundEl.update(v);}if(remainVisible !== true){this.hide();}this.fireEvent("complete", this, v, this.startValue);}},onShow : function(){this.el.show();if(this.hideEl !== false){this.boundEl.hide();}this.field.show();if(Ext.isIE && !this.fixIEFocus){ this.fixIEFocus = true;this.deferredFocus.defer(50, this);}else{this.field.focus();}this.fireEvent("startedit", this.boundEl, this.startValue);},deferredFocus : function(){if(this.editing){this.field.focus();}},cancelEdit : function(remainVisible){if(this.editing){this.setValue(this.startValue);if(remainVisible !== true){this.hide();}}},onBlur : function(){if(this.allowBlur !== true && this.editing){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(v){this.field.setValue(v);},getValue : function(){return this.field.getValue();},beforeDestroy : function(){this.field.destroy();this.field = null;}});Ext.reg('editor', Ext.Editor);Ext.MessageBox = function(){var dlg, opt, mask, waitTimer;var bodyEl, msgEl, textboxEl, textareaEl, progressBar, pp, iconEl, spacerEl;var buttons, activeTextEl, bwidth, iconCls = '';var handleButton = function(button){dlg.hide();Ext.callback(opt.fn, opt.scope||window, [button, activeTextEl.dom.value], 1);};var handleHide = function(){if(opt && opt.cls){dlg.el.removeClass(opt.cls);}progressBar.reset();};var handleEsc = function(d, k, e){if(opt && opt.closable !== false){dlg.hide();}if(e){e.stopEvent();}};var updateButtons = function(b){var width = 0;if(!b){buttons["ok"].hide();buttons["cancel"].hide();buttons["yes"].hide();buttons["no"].hide();return width;}dlg.footer.dom.style.display = '';for(var k in buttons){if(typeof buttons[k] != "function"){if(b[k]){buttons[k].show();buttons[k].setText(typeof b[k] == "string" ? b[k] : Ext.MessageBox.buttonText[k]);width += buttons[k].el.getWidth()+15;}else{buttons[k].hide();}}}return width;};return {getDialog : function(titleText){if(!dlg){dlg = new Ext.Window({autoCreate : true,title:titleText,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(opt && opt.buttons && opt.buttons.no && !opt.buttons.cancel){handleButton("no");}else{handleButton("cancel");}}});buttons = {};var bt = this.buttonText;buttons["ok"] = dlg.addButton(bt["ok"], handleButton.createCallback("ok"));buttons["yes"] = dlg.addButton(bt["yes"], handleButton.createCallback("yes"));buttons["no"] = dlg.addButton(bt["no"], handleButton.createCallback("no"));buttons["cancel"] = dlg.addButton(bt["cancel"], handleButton.createCallback("cancel"));buttons["ok"].hideMode = buttons["yes"].hideMode = buttons["no"].hideMode = buttons["cancel"].hideMode = 'offsets';dlg.render(document.body);dlg.getEl().addClass('x-window-dlg');mask = dlg.mask;bodyEl = dlg.body.createChild({html:'<div class="ext-mb-icon"></div><div class="ext-mb-content"><span class="ext-mb-text"></span><br /><input type="text" class="ext-mb-input" /><textarea class="ext-mb-textarea"></textarea></div>'});iconEl = Ext.get(bodyEl.dom.firstChild);var contentEl = bodyEl.dom.childNodes[1];msgEl = Ext.get(contentEl.firstChild);textboxEl = Ext.get(contentEl.childNodes[2]);textboxEl.enableDisplayMode();textboxEl.addKeyListener([10,13], function(){if(dlg.isVisible() && opt && opt.buttons){if(opt.buttons.ok){handleButton("ok");}else if(opt.buttons.yes){handleButton("yes");}}});textareaEl = Ext.get(contentEl.childNodes[3]);textareaEl.enableDisplayMode();progressBar = new Ext.ProgressBar({renderTo:bodyEl});bodyEl.createChild({cls:'x-clear'});}return dlg;},updateText : function(text){if(!dlg.isVisible() && !opt.width){dlg.setSize(this.maxWidth, 100);}msgEl.update(text || ' ');var iw = iconCls != '' ? (iconEl.getWidth() + iconEl.getMargins('lr')) : 0;var mw = msgEl.getWidth() + msgEl.getMargins('lr');var fw = dlg.getFrameWidth('lr');var bw = dlg.body.getFrameWidth('lr');if (Ext.isIE && iw > 0){iw += 3;}var w = Math.max(Math.min(opt.width || iw+mw+fw+bw, this.maxWidth),Math.max(opt.minWidth || this.minWidth, bwidth || 0));if(opt.prompt === true){activeTextEl.setWidth(w-iw-fw-bw);}if(opt.progress === true || opt.wait === true){progressBar.setSize(w-iw-fw-bw);}dlg.setSize(w, 'auto').center();return this;},updateProgress : function(value, progressText, msg){progressBar.updateProgress(value, progressText);if(msg){this.updateText(msg);}return this;},isVisible : function(){return dlg && dlg.isVisible();},hide : function(){if(this.isVisible()){dlg.hide();handleHide();}return this;},show : function(options){if(this.isVisible()){this.hide();}opt = options;var d = this.getDialog(opt.title || " ");d.setTitle(opt.title || " ");var allowClose = (opt.closable !== false && opt.progress !== true && opt.wait !== true);d.tools.close.setDisplayed(allowClose);activeTextEl = textboxEl;opt.prompt = opt.prompt || (opt.multiline ? true : false);if(opt.prompt){if(opt.multiline){textboxEl.hide();textareaEl.show();textareaEl.setHeight(typeof opt.multiline == "number" ?opt.multiline : this.defaultTextHeight);activeTextEl = textareaEl;}else{textboxEl.show();textareaEl.hide();}}else{textboxEl.hide();textareaEl.hide();}activeTextEl.dom.value = opt.value || "";if(opt.prompt){d.focusEl = activeTextEl;}else{var bs = opt.buttons;var db = null;if(bs && bs.ok){db = buttons["ok"];}else if(bs && bs.yes){db = buttons["yes"];}if (db){d.focusEl = db;}}this.setIcon(opt.icon);bwidth = updateButtons(opt.buttons);progressBar.setVisible(opt.progress === true || opt.wait === true);this.updateProgress(0, opt.progressText);this.updateText(opt.msg);if(opt.cls){d.el.addClass(opt.cls);}d.proxyDrag = opt.proxyDrag === true;d.modal = opt.modal !== false;d.mask = opt.modal !== false ? mask : false;if(!d.isVisible()){document.body.appendChild(dlg.el.dom);d.setAnimateTarget(opt.animEl);d.show(opt.animEl);}d.on('show', function(){if(allowClose === true){d.keyMap.enable();}else{d.keyMap.disable();}}, this, {single:true});if(opt.wait === true){progressBar.wait(opt.waitConfig);}return this;},setIcon : function(icon){if(icon && icon != ''){iconEl.removeClass('x-hidden');iconEl.replaceClass(iconCls, icon);iconCls = icon;}else{iconEl.replaceClass(iconCls, 'x-hidden');iconCls = '';}return this;},progress : function(title, msg, progressText){this.show({title : title,msg : msg,buttons: false,progress:true,closable:false,minWidth: this.minProgressWidth,progressText: progressText});return this;},wait : function(msg, title, config){this.show({title : title,msg : msg,buttons: false,closable:false,wait:true,modal:true,minWidth: this.minProgressWidth,waitConfig: config});return this;},alert : function(title, msg, fn, scope){this.show({title : title,msg : msg,buttons: this.OK,fn: fn,scope : scope});return this;},confirm : function(title, msg, fn, scope){this.show({title : title,msg : msg,buttons: this.YESNO,fn: fn,scope : scope,icon: this.QUESTION});return this;},prompt : function(title, msg, fn, scope, multiline){this.show({title : title,msg : msg,buttons: this.OKCANCEL,fn: fn,minWidth:250,scope : scope,prompt:true,multiline: multiline});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,buttonText : {ok : "OK",cancel : "Cancel",yes : "Yes",no : "No"}};}();Ext.Msg = Ext.MessageBox;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,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.hide,scope: this});}},showAt : function(xy){Ext.Tip.superclass.show.call(this);if(this.measureWidth !== false && (!this.initialConfig || typeof this.initialConfig.width != 'number')){var bw = this.body.getTextWidth();if(this.title){bw = Math.max(bw, this.header.child('span').getTextWidth(this.title));}bw += this.getFrameWidth() + (this.closable ? 20 : 0) + this.body.getPadding("lr");this.setWidth(bw.constrain(this.minWidth, this.maxWidth));}if(this.constrainPosition){xy = this.el.adjustForConstraints(xy);}this.setPagePosition(xy[0], xy[1]);},showBy : function(el, pos){if(!this.rendered){this.render(Ext.getBody());}this.showAt(this.el.getAlignToXY(el, pos || 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.Tip.DD = function(tip, config){Ext.apply(this, config);this.tip = tip;Ext.Tip.DD.superclass.constructor.call(this, tip.el.id, 'WindowDD-'+tip.id);this.setHandleElId(tip.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(e){this.tip.el.enableShadow(true);}});Ext.ToolTip = Ext.extend(Ext.Tip, {showDelay: 500,hideDelay: 200,dismissDelay: 5000,mouseOffset: [15,18],trackMouse : false,constrainPosition: true,initComponent: function(){Ext.ToolTip.superclass.initComponent.call(this);this.lastActive = new Date();this.initTarget();},initTarget : function(){if(this.target){this.target = Ext.get(this.target);this.target.on('mouseover', this.onTargetOver, this);this.target.on('mouseout', this.onTargetOut, this);this.target.on('mousemove', this.onMouseMove, this);}},onMouseMove : function(e){this.targetXY = e.getXY();if(!this.hidden && this.trackMouse){this.setPagePosition(this.getTargetXY());}},getTargetXY : function(){return [this.targetXY[0]+this.mouseOffset[0], this.targetXY[1]+this.mouseOffset[1]];},onTargetOver : function(e){if(this.disabled || e.within(this.target.dom, true)){return;}this.clearTimer('hide');this.targetXY = e.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(e){if(this.disabled || e.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();Ext.ToolTip.superclass.hide.call(this);},show : function(){this.showAt(this.getTargetXY());},showAt : function(xy){this.lastActive = new Date();this.clearTimers();Ext.ToolTip.superclass.showAt.call(this, xy);if(this.dismissDelay && this.autoHide !== false){this.dismissTimer = this.hide.defer(this.dismissDelay, this);}},clearTimer : function(name){name = name + 'Timer';clearTimeout(this[name]);delete this[name];},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(e){if(this.autoHide !== false && !e.within(this.el.dom)){this.disable();this.enable.defer(100, this);}},onDisable : function(){this.clearTimers();this.hide();},adjustPosition : function(x, y){var ay = this.targetXY[1], h = this.getSize().height;if(this.constrainPosition && y <= ay && (y+h) >= ay){y = ay-h-5;}return {x : x, y: y};},onDestroy : function(){Ext.ToolTip.superclass.onDestroy.call(this);if(this.target){this.target.un('mouseover', this.onTargetOver, this);this.target.un('mouseout', this.onTargetOut, this);this.target.un('mousemove', this.onMouseMove, this);}}});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"},initComponent : function(){this.target = this.target || Ext.getDoc();this.targets = this.targets || {};Ext.QuickTip.superclass.initComponent.call(this);},register : function(config){var cs = Ext.isArray(config) ? config : arguments;for(var i = 0, len = cs.length; i < len; i++){var c = cs[i];var target = c.target;if(target){if(Ext.isArray(target)){for(var j = 0, jlen = target.length; j < jlen; j++){this.targets[Ext.id(target[j])] = c;}} else{this.targets[Ext.id(target)] = c;}}}},unregister : function(el){delete this.targets[Ext.id(el)];},onTargetOver : function(e){if(this.disabled){return;}this.targetXY = e.getXY();var t = e.getTarget();if(!t || t.nodeType !== 1 || t == document || t == document.body){return;}if(this.activeTarget && t == this.activeTarget.el){this.clearTimer('hide');this.show();return;}if(t && this.targets[t.id]){this.activeTarget = this.targets[t.id];this.activeTarget.el = t;this.delayShow();return;}var ttp, et = Ext.fly(t), cfg = this.tagConfig;var ns = cfg.namespace;if(this.interceptTitles && t.title){ttp = t.title;t.qtip = ttp;t.removeAttribute("title");e.preventDefault();} else{ttp = t.qtip || et.getAttributeNS(ns, cfg.attribute);}if(ttp){var autoHide = et.getAttributeNS(ns, cfg.hide);this.activeTarget = {el: t,text: ttp,width: et.getAttributeNS(ns, cfg.width),autoHide: autoHide != "user" && autoHide !== 'false',title: et.getAttributeNS(ns, cfg.title),cls: et.getAttributeNS(ns, cfg.cls),align: et.getAttributeNS(ns, cfg.align)};this.delayShow();}},onTargetOut : function(e){this.clearTimer('show');if(this.autoHide !== false){this.delayHide();}},showAt : function(xy){var t = this.activeTarget;if(t){if(!this.rendered){this.render(Ext.getBody());this.activeTarget = t;}if(t.width){this.setWidth(t.width);this.body.setWidth(this.adjustBodyWidth(t.width - this.getFrameWidth()));this.measureWidth = false;} else{this.measureWidth = true;}this.setTitle(t.title || '');this.body.update(t.text);this.autoHide = t.autoHide;this.dismissDelay = t.dismissDelay || this.dismissDelay;if(this.lastCls){this.el.removeClass(this.lastCls);delete this.lastCls;}if(t.cls){this.el.addClass(t.cls);this.lastCls = t.cls;}if(t.align){xy = this.el.getAlignToXY(t.el, t.align);this.constrainPosition = false;} else{this.constrainPosition = true;}}Ext.QuickTip.superclass.showAt.call(this, xy);},hide: function(){delete this.activeTarget;Ext.QuickTip.superclass.hide.call(this);}});Ext.QuickTips = function(){var tip, locks = [];return {init : function(){if(!tip){tip = new Ext.QuickTip({elements:'header,body'});}},enable : function(){if(tip){locks.pop();if(locks.length < 1){tip.enable();}}},disable : function(){if(tip){tip.disable();}locks.push(1);},isEnabled : function(){return tip && !tip.disabled;},getQuickTip : function(){return tip;},register : function(){tip.register.apply(tip, arguments);},unregister : function(){tip.unregister.apply(tip, arguments);},tips :function(){tip.register.apply(tip, arguments);}}}();Ext.tree.TreePanel = Ext.extend(Ext.Panel, {rootVisible : true,animate: Ext.enableFx,lines : true,enableDD : false,hlDrop : Ext.enableFx,pathSeparator: "/",initComponent : function(){Ext.tree.TreePanel.superclass.initComponent.call(this);if(!this.eventModel){this.eventModel = new Ext.tree.TreeEventModel(this);}this.nodeHash = {};if(this.root){this.setRootNode(this.root);}this.addEvents("append","remove","movenode","insert","beforeappend","beforeremove","beforemovenode","beforeinsert","beforeload","load","textchange","beforeexpandnode","beforecollapsenode","expandnode","disabledchange","collapsenode","beforeclick","click","checkchange","dblclick","contextmenu","beforechildrenrendered","startdrag","enddrag","dragdrop","beforenodedrop","nodedrop","nodedragover");if(this.singleExpand){this.on("beforeexpandnode", this.restrictExpand, this);}},proxyNodeEvent : function(ename, a1, a2, a3, a4, a5, a6){if(ename == 'collapse' || ename == 'expand' || ename == 'beforecollapse' || ename == 'beforeexpand' || ename == 'move' || ename == 'beforemove'){ename = ename+'node';}return this.fireEvent(ename, a1, a2, a3, a4, a5, a6);},getRootNode : function(){return this.root;},setRootNode : function(node){this.root = node;node.ownerTree = this;node.isRoot = true;this.registerNode(node);if(!this.rootVisible){var uiP = node.attributes.uiProvider;node.ui = uiP ? new uiP(node) : new Ext.tree.RootTreeNodeUI(node);}return node;},getNodeById : function(id){return this.nodeHash[id];},registerNode : function(node){this.nodeHash[node.id] = node;},unregisterNode : function(node){delete this.nodeHash[node.id];},toString : function(){return "[Tree"+(this.id?" "+this.id:"")+"]";},restrictExpand : function(node){var p = node.parentNode;if(p){if(p.expandedChild && p.expandedChild.parentNode == p){p.expandedChild.collapse();}p.expandedChild = node;}},getChecked : function(a, startNode){startNode = startNode || this.root;var r = [];var f = function(){if(this.attributes.checked){r.push(!a ? this : (a == 'id' ? this.id : this.attributes[a]));}}startNode.cascade(f);return r;},getEl : function(){return this.el;},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(path, attr, callback){attr = attr || "id";var keys = path.split(this.pathSeparator);var curNode = this.root;if(curNode.attributes[attr] != keys[1]){if(callback){callback(false, null);}return;}var index = 1;var f = function(){if(++index == keys.length){if(callback){callback(true, curNode);}return;}var c = curNode.findChild(attr, keys[index]);if(!c){if(callback){callback(false, curNode);}return;}curNode = c;c.expand(false, false, f);};curNode.expand(false, false, f);},selectPath : function(path, attr, callback){attr = attr || "id";var keys = path.split(this.pathSeparator);var v = keys.pop();if(keys.length > 0){var f = function(success, node){if(success && node){var n = node.findChild(attr, v);if(n){n.select();if(callback){callback(true, n);}}else if(callback){callback(false, n);}}else{if(callback){callback(false, n);}}};this.expandPath(keys.join(this.pathSeparator), attr, f);}else{this.root.select();if(callback){callback(true, this.root);}}},getTreeEl : function(){return this.body;},onRender : function(ct, position){Ext.tree.TreePanel.superclass.onRender.call(this, ct, position);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.root.render();if(!this.rootVisible){this.root.renderChildren();}},onDestroy : function(){if(this.rendered){this.body.removeAllListeners();Ext.dd.ScrollManager.unregister(this.body);if(this.dropZone){this.dropZone.unreg();}if(this.dragZone){this.dragZone.unreg();}}this.root.destroy();this.nodeHash = null;Ext.tree.TreePanel.superclass.onDestroy.call(this);}});Ext.reg('treepanel', Ext.tree.TreePanel);Ext.tree.TreeEventModel = function(tree){this.tree = tree;this.tree.on('render', this.initEvents, this);}Ext.tree.TreeEventModel.prototype = {initEvents : function(){var el = this.tree.getTreeEl();el.on('click', this.delegateClick, this);if(this.tree.trackMouseOver !== false){el.on('mouseover', this.delegateOver, this);el.on('mouseout', this.delegateOut, this);}el.on('dblclick', this.delegateDblClick, this);el.on('contextmenu', this.delegateContextMenu, this);},getNode : function(e){var t;if(t = e.getTarget('.x-tree-node-el', 10)){var id = Ext.fly(t, '_treeEvents').getAttributeNS('ext', 'tree-node-id');if(id){return this.tree.getNodeById(id);}}return null;},getNodeTarget : function(e){var t = e.getTarget('.x-tree-node-icon', 1);if(!t){t = e.getTarget('.x-tree-node-el', 6);}return t;},delegateOut : function(e, t){if(!this.beforeEvent(e)){return;}if(e.getTarget('.x-tree-ec-icon', 1)){var n = this.getNode(e);this.onIconOut(e, n);if(n == this.lastEcOver){delete this.lastEcOver;}}if((t = this.getNodeTarget(e)) && !e.within(t, true)){this.onNodeOut(e, this.getNode(e));}},delegateOver : function(e, t){if(!this.beforeEvent(e)){return;}if(this.lastEcOver){this.onIconOut(e, this.lastEcOver);delete this.lastEcOver;}if(e.getTarget('.x-tree-ec-icon', 1)){this.lastEcOver = this.getNode(e);this.onIconOver(e, this.lastEcOver);}if(t = this.getNodeTarget(e)){this.onNodeOver(e, this.getNode(e));}},delegateClick : function(e, t){if(!this.beforeEvent(e)){return;}if(e.getTarget('input[type=checkbox]', 1)){this.onCheckboxClick(e, this.getNode(e));}else if(e.getTarget('.x-tree-ec-icon', 1)){this.onIconClick(e, this.getNode(e));}else if(this.getNodeTarget(e)){this.onNodeClick(e, this.getNode(e));}},delegateDblClick : function(e, t){if(this.beforeEvent(e) && this.getNodeTarget(e)){this.onNodeDblClick(e, this.getNode(e));}},delegateContextMenu : function(e, t){if(this.beforeEvent(e) && this.getNodeTarget(e)){this.onNodeContextMenu(e, this.getNode(e));}},onNodeClick : function(e, node){node.ui.onClick(e);},onNodeOver : function(e, node){node.ui.onOver(e);},onNodeOut : function(e, node){node.ui.onOut(e);},onIconOver : function(e, node){node.ui.addClass('x-tree-ec-over');},onIconOut : function(e, node){node.ui.removeClass('x-tree-ec-over');},onIconClick : function(e, node){node.ui.ecClick(e);},onCheckboxClick : function(e, node){node.ui.onCheckChange(e);},onNodeDblClick : function(e, node){node.ui.onDblClick(e);},onNodeContextMenu : function(e, node){node.ui.onContextMenu(e);},beforeEvent : function(e){if(this.disabled){e.stopEvent();return false;}return true;},disable: function(){this.disabled = true;},enable: function(){this.disabled = false;}};Ext.tree.DefaultSelectionModel = function(config){this.selNode = null;this.addEvents("selectionchange","beforeselect");Ext.apply(this, config);Ext.tree.DefaultSelectionModel.superclass.constructor.call(this);};Ext.extend(Ext.tree.DefaultSelectionModel, Ext.util.Observable, {init : function(tree){this.tree = tree;tree.getTreeEl().on("keydown", this.onKeyDown, this);tree.on("click", this.onNodeClick, this);},onNodeClick : function(node, e){this.select(node);},select : function(node){var last = this.selNode;if(last != node && this.fireEvent('beforeselect', this, node, last) !== false){if(last){last.ui.onSelectedChange(false);}this.selNode = node;node.ui.onSelectedChange(true);this.fireEvent("selectionchange", this, node, last);}return node;},unselect : function(node){if(this.selNode == node){this.clearSelections();}},clearSelections : function(){var n = this.selNode;if(n){n.ui.onSelectedChange(false);this.selNode = null;this.fireEvent("selectionchange", this, null);}return n;},getSelectedNode : function(){return this.selNode;},isSelected : function(node){return this.selNode == node;},selectPrevious : function(){var s = this.selNode || this.lastSelNode;if(!s){return null;}var ps = s.previousSibling;if(ps){if(!ps.isExpanded() || ps.childNodes.length < 1){return this.select(ps);} else{var lc = ps.lastChild;while(lc && lc.isExpanded() && lc.childNodes.length > 0){lc = lc.lastChild;}return this.select(lc);}} else if(s.parentNode && (this.tree.rootVisible || !s.parentNode.isRoot)){return this.select(s.parentNode);}return null;},selectNext : function(){var s = this.selNode || this.lastSelNode;if(!s){return null;}if(s.firstChild && s.isExpanded()){return this.select(s.firstChild);}else if(s.nextSibling){return this.select(s.nextSibling);}else if(s.parentNode){var newS = null;s.parentNode.bubble(function(){if(this.nextSibling){newS = this.getOwnerTree().selModel.select(this.nextSibling);return false;}});return newS;}return null;},onKeyDown : function(e){var s = this.selNode || this.lastSelNode;var sm = this;if(!s){return;}var k = e.getKey();switch(k){case e.DOWN:e.stopEvent();this.selectNext();break;case e.UP:e.stopEvent();this.selectPrevious();break;case e.RIGHT:e.preventDefault();if(s.hasChildNodes()){if(!s.isExpanded()){s.expand();}else if(s.firstChild){this.select(s.firstChild, e);}}break;case e.LEFT:e.preventDefault();if(s.hasChildNodes() && s.isExpanded()){s.collapse();}else if(s.parentNode && (this.tree.rootVisible || s.parentNode != this.tree.getRootNode())){this.select(s.parentNode, e);}break;};}});Ext.tree.MultiSelectionModel = function(config){this.selNodes = [];this.selMap = {};this.addEvents("selectionchange");Ext.apply(this, config);Ext.tree.MultiSelectionModel.superclass.constructor.call(this);};Ext.extend(Ext.tree.MultiSelectionModel, Ext.util.Observable, {init : function(tree){this.tree = tree;tree.getTreeEl().on("keydown", this.onKeyDown, this);tree.on("click", this.onNodeClick, this);},onNodeClick : function(node, e){this.select(node, e, e.ctrlKey);},select : function(node, e, keepExisting){if(keepExisting !== true){this.clearSelections(true);}if(this.isSelected(node)){this.lastSelNode = node;return node;}this.selNodes.push(node);this.selMap[node.id] = node;this.lastSelNode = node;node.ui.onSelectedChange(true);this.fireEvent("selectionchange", this, this.selNodes);return node;},unselect : function(node){if(this.selMap[node.id]){node.ui.onSelectedChange(false);var sn = this.selNodes;var index = sn.indexOf(node);if(index != -1){this.selNodes.splice(index, 1);}delete this.selMap[node.id];this.fireEvent("selectionchange", this, this.selNodes);}},clearSelections : function(suppressEvent){var sn = this.selNodes;if(sn.length > 0){for(var i = 0, len = sn.length; i < len; i++){sn[i].ui.onSelectedChange(false);}this.selNodes = [];this.selMap = {};if(suppressEvent !== true){this.fireEvent("selectionchange", this, this.selNodes);}}},isSelected : function(node){return this.selMap[node.id] ? true : false;},getSelectedNodes : function(){return this.selNodes;},onKeyDown : Ext.tree.DefaultSelectionModel.prototype.onKeyDown,selectNext : Ext.tree.DefaultSelectionModel.prototype.selectNext,selectPrevious : Ext.tree.DefaultSelectionModel.prototype.selectPrevious});Ext.tree.TreeNode = function(attributes){attributes = attributes || {};if(typeof attributes == "string"){attributes = {text: attributes};}this.childrenRendered = false;this.rendered = false;Ext.tree.TreeNode.superclass.constructor.call(this, attributes);this.expanded = attributes.expanded === true;this.isTarget = attributes.isTarget !== false;this.draggable = attributes.draggable !== false && attributes.allowDrag !== false;this.allowChildren = attributes.allowChildren !== false && attributes.allowDrop !== false;this.text = attributes.text;this.disabled = attributes.disabled === true;this.addEvents("textchange","beforeexpand","beforecollapse","expand","disabledchange","collapse","beforeclick","click","checkchange","dblclick","contextmenu","beforechildrenrendered");var uiClass = this.attributes.uiProvider || this.defaultUI || Ext.tree.TreeNodeUI;this.ui = new uiClass(this);};Ext.extend(Ext.tree.TreeNode, Ext.data.Node, {preventHScroll: true,isExpanded : function(){return this.expanded;},getUI : function(){return this.ui;},setFirstChild : function(node){var of = this.firstChild;Ext.tree.TreeNode.superclass.setFirstChild.call(this, node);if(this.childrenRendered && of && node != of){of.renderIndent(true, true);}if(this.rendered){this.renderIndent(true, true);}},setLastChild : function(node){var ol = this.lastChild;Ext.tree.TreeNode.superclass.setLastChild.call(this, node);if(this.childrenRendered && ol && node != ol){ol.renderIndent(true, true);}if(this.rendered){this.renderIndent(true, true);}},appendChild : function(){var node = Ext.tree.TreeNode.superclass.appendChild.apply(this, arguments);if(node && this.childrenRendered){node.render();}this.ui.updateExpandIcon();return node;},removeChild : function(node){this.ownerTree.getSelectionModel().unselect(node);Ext.tree.TreeNode.superclass.removeChild.apply(this, arguments);if(this.childrenRendered){node.ui.remove();}if(this.childNodes.length < 1){this.collapse(false, false);}else{this.ui.updateExpandIcon();}if(!this.firstChild && !this.isHiddenRoot()) {this.childrenRendered = false;}return node;},insertBefore : function(node, refNode){var newNode = Ext.tree.TreeNode.superclass.insertBefore.apply(this, arguments);if(newNode && refNode && this.childrenRendered){node.render();}this.ui.updateExpandIcon();return newNode;},setText : function(text){var oldText = this.text;this.text = text;this.attributes.text = text;if(this.rendered){this.ui.onTextChange(this, text, oldText);}this.fireEvent("textchange", this, text, oldText);},select : function(){this.getOwnerTree().getSelectionModel().select(this);},unselect : function(){this.getOwnerTree().getSelectionModel().unselect(this);},isSelected : function(){return this.getOwnerTree().getSelectionModel().isSelected(this);},expand : function(deep, anim, callback){if(!this.expanded){if(this.fireEvent("beforeexpand", this, deep, anim) === false){return;}if(!this.childrenRendered){this.renderChildren();}this.expanded = true;if(!this.isHiddenRoot() && (this.getOwnerTree().animate && anim !== false) || anim){this.ui.animExpand(function(){this.fireEvent("expand", this);if(typeof callback == "function"){callback(this);}if(deep === true){this.expandChildNodes(true);}}.createDelegate(this));return;}else{this.ui.expand();this.fireEvent("expand", this);if(typeof callback == "function"){callback(this);}}}else{if(typeof callback == "function"){callback(this);}}if(deep === true){this.expandChildNodes(true);}},isHiddenRoot : function(){return this.isRoot && !this.getOwnerTree().rootVisible;},collapse : function(deep, anim){if(this.expanded && !this.isHiddenRoot()){if(this.fireEvent("beforecollapse", this, deep, anim) === false){return;}this.expanded = false;if((this.getOwnerTree().animate && anim !== false) || anim){this.ui.animCollapse(function(){this.fireEvent("collapse", this);if(deep === true){this.collapseChildNodes(true);}}.createDelegate(this));return;}else{this.ui.collapse();this.fireEvent("collapse", this);}}if(deep === true){var cs = this.childNodes;for(var i = 0, len = cs.length; i < len; i++) {cs[i].collapse(true, false);}}},delayedExpand : function(delay){if(!this.expandProcId){this.expandProcId = this.expand.defer(delay, this);}},cancelExpand : function(){if(this.expandProcId){clearTimeout(this.expandProcId);}this.expandProcId = false;},toggle : function(){if(this.expanded){this.collapse();}else{this.expand();}},ensureVisible : function(callback){var tree = this.getOwnerTree();tree.expandPath(this.parentNode.getPath(), false, function(){var node = tree.getNodeById(this.id);tree.getTreeEl().scrollChildIntoView(node.ui.anchor);Ext.callback(callback);}.createDelegate(this));},expandChildNodes : function(deep){var cs = this.childNodes;for(var i = 0, len = cs.length; i < len; i++) {cs[i].expand(deep);}},collapseChildNodes : function(deep){var cs = this.childNodes;for(var i = 0, len = cs.length; i < len; i++) {cs[i].collapse(deep);}},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(suppressEvent){if(suppressEvent !== false){this.fireEvent("beforechildrenrendered", this);}var cs = this.childNodes;for(var i = 0, len = cs.length; i < len; i++){cs[i].render(true);}this.childrenRendered = true;},sort : function(fn, scope){Ext.tree.TreeNode.superclass.sort.apply(this, arguments);if(this.childrenRendered){var cs = this.childNodes;for(var i = 0, len = cs.length; i < len; i++){cs[i].render(true);}}},render : function(bulkRender){this.ui.render(bulkRender);if(!this.rendered){this.getOwnerTree().registerNode(this);this.rendered = true;if(this.expanded){this.expanded = false;this.expand(false, false);}}},renderIndent : function(deep, refresh){if(refresh){this.ui.childIndent = null;}this.ui.renderIndent();if(deep === true && this.childrenRendered){var cs = this.childNodes;for(var i = 0, len = cs.length; i < len; i++){cs[i].renderIndent(true, refresh);}}},beginUpdate : function(){this.childrenRendered = false;},endUpdate : function(){if(this.expanded){this.renderChildren();}},destroy : function(){for(var i = 0,l = this.childNodes.length; i < l; i++){this.childNodes[i].destroy();}this.childNodes = null;if(this.ui.destroy){this.ui.destroy();}}});Ext.tree.AsyncTreeNode = function(config){this.loaded = false;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(deep, anim, callback){if(this.loading){var timer;var f = function(){if(!this.loading){clearInterval(timer);this.expand(deep, anim, callback);}}.createDelegate(this);timer = setInterval(f, 200);return;}if(!this.loaded){if(this.fireEvent("beforeload", this) === false){return;}this.loading = true;this.ui.beforeLoad(this);var loader = this.loader || this.attributes.loader || this.getOwnerTree().getLoader();if(loader){loader.load(this, this.loadComplete.createDelegate(this, [deep, anim, callback]));return;}}Ext.tree.AsyncTreeNode.superclass.expand.call(this, deep, anim, callback);},isLoading : function(){return this.loading;},loadComplete : function(deep, anim, callback){this.loading = false;this.loaded = true;this.ui.afterLoad(this);this.fireEvent("load", this);this.expand(deep, anim, callback);},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(callback){this.collapse(false, false);while(this.firstChild){this.removeChild(this.firstChild);}this.childrenRendered = false;this.loaded = false;if(this.isHiddenRoot()){this.expanded = false;}this.expand(false, false, callback);}});Ext.tree.TreeNodeUI = function(node){this.node = node;this.rendered = false;this.animating = false;this.wasLeaf = true;this.ecc = 'x-tree-ec-icon x-tree-elbow';this.emptyIcon = Ext.BLANK_IMAGE_URL;};Ext.tree.TreeNodeUI.prototype = {removeChild : function(node){if(this.rendered){this.ctNode.removeChild(node.ui.getEl());}},beforeLoad : function(){this.addClass("x-tree-node-loading");},afterLoad : function(){this.removeClass("x-tree-node-loading");},onTextChange : function(node, text, oldText){if(this.rendered){this.textNode.innerHTML = text;}},onDisableChange : function(node, state){this.disabled = state;if (this.checkbox) {this.checkbox.disabled = state;}if(state){this.addClass("x-tree-node-disabled");}else{this.removeClass("x-tree-node-disabled");}},onSelectedChange : function(state){if(state){this.focus();this.addClass("x-tree-selected");}else{this.removeClass("x-tree-selected");}},onMove : function(tree, node, oldParent, newParent, index, refNode){this.childIndent = null;if(this.rendered){var targetNode = newParent.ui.getContainer();if(!targetNode){this.holder = document.createElement("div");this.holder.appendChild(this.wrap);return;}var insertBefore = refNode ? refNode.ui.getEl() : null;if(insertBefore){targetNode.insertBefore(this.wrap, insertBefore);}else{targetNode.appendChild(this.wrap);}this.node.renderIndent(true);}},addClass : function(cls){if(this.elNode){Ext.fly(this.elNode).addClass(cls);}},removeClass : function(cls){if(this.elNode){Ext.fly(this.elNode).removeClass(cls);}},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.addClass("x-tree-node-disabled");if (this.checkbox) {this.checkbox.disabled = true;}}if(this.node.hidden){this.hide();}var ot = this.node.getOwnerTree();var dd = ot.enableDD || ot.enableDrag || ot.enableDrop;if(dd && (!this.node.isRoot || ot.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(e){if (this.node.hasListener("contextmenu") || this.node.getOwnerTree().hasListener("contextmenu")) {e.preventDefault();this.focus();this.fireEvent("contextmenu", this.node, e);}},onClick : function(e){if(this.dropping){e.stopEvent();return;}if(this.fireEvent("beforeclick", this.node, e) !== false){var a = e.getTarget('a');if(!this.disabled && this.node.attributes.href && a){this.fireEvent("click", this.node, e);return;}else if(a && e.ctrlKey){e.stopEvent();}e.preventDefault();if(this.disabled){return;}if(this.node.attributes.singleClickExpand && !this.animating && this.node.hasChildNodes()){this.node.toggle();}this.fireEvent("click", this.node, e);}else{e.stopEvent();}},onDblClick : function(e){e.preventDefault();if(this.disabled){return;}if(this.checkbox){this.toggleCheck();}if(!this.animating && this.node.hasChildNodes()){this.node.toggle();}this.fireEvent("dblclick", this.node, e);},onOver : function(e){this.addClass('x-tree-node-over');},onOut : function(e){this.removeClass('x-tree-node-over');},onCheckChange : function(){var checked = this.checkbox.checked;this.node.attributes.checked = checked;this.fireEvent('checkchange', this.node, checked);},ecClick : function(e){if(!this.animating && (this.node.hasChildNodes() || this.node.attributes.expandable)){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(e){}}else if(!Ext.isIE){try{var noscroll = this.node.getOwnerTree().getTreeEl().dom;var l = noscroll.scrollLeft;this.anchor.focus();noscroll.scrollLeft = l;}catch(e){}}},toggleCheck : function(value){var cb = this.checkbox;if(cb){cb.checked = (value === undefined ? !cb.checked : value);}},blur : function(){try{this.anchor.blur();}catch(e){}},animExpand : function(callback){var ct = Ext.get(this.ctNode);ct.stopFx();if(!this.node.hasChildNodes()){this.updateExpandIcon();this.ctNode.style.display = "";Ext.callback(callback);return;}this.animating = true;this.updateExpandIcon();ct.slideIn('t', {callback : function(){this.animating = false;Ext.callback(callback);},scope: this,duration: this.node.ownerTree.duration || .25});},highlight : function(){var tree = this.node.getOwnerTree();Ext.fly(this.wrap).highlight(tree.hlColor || "C3DAF9",{endColor: tree.hlBaseColor});},collapse : function(){this.updateExpandIcon();this.ctNode.style.display = "none";},animCollapse : function(callback){var ct = Ext.get(this.ctNode);ct.enableDisplayMode('block');ct.stopFx();this.animating = true;this.updateExpandIcon();ct.slideOut('t', {callback : function(){this.animating = false;Ext.callback(callback);},scope: this,duration: this.node.ownerTree.duration || .25});},getContainer : function(){return this.ctNode;},getEl : function(){return this.wrap;},appendDDGhost : function(ghostNode){ghostNode.appendChild(this.elNode.cloneNode(true));},getDDRepairXY : function(){return Ext.lib.Dom.getXY(this.iconNode);},onRender : function(){this.render();},render : function(bulkRender){var n = this.node, a = n.attributes;var targetNode = n.parentNode ?n.parentNode.ui.getContainer() : n.ownerTree.innerCt.dom;if(!this.rendered){this.rendered = true;this.renderElements(n, a, targetNode, bulkRender);if(a.qtip){if(this.textNode.setAttributeNS){this.textNode.setAttributeNS("ext", "qtip", a.qtip);if(a.qtipTitle){this.textNode.setAttributeNS("ext", "qtitle", a.qtipTitle);}}else{this.textNode.setAttribute("ext:qtip", a.qtip);if(a.qtipTitle){this.textNode.setAttribute("ext:qtitle", a.qtipTitle);}}}else if(a.qtipCfg){a.qtipCfg.target = Ext.id(this.textNode);Ext.QuickTips.register(a.qtipCfg);}this.initEvents();if(!this.node.expanded){this.updateExpandIcon(true);}}else{if(bulkRender === true) {targetNode.appendChild(this.wrap);}}},renderElements : function(n, a, targetNode, bulkRender){this.indentMarkup = n.parentNode ? n.parentNode.ui.getChildIndent() : '';var cb = typeof a.checked == 'boolean';var href = a.href ? a.href : Ext.isGecko ? "" : "#";var buf = ['<li class="x-tree-node"><div ext:tree-node-id="',n.id,'" class="x-tree-node-el x-tree-node-leaf x-unselectable ', a.cls,'" unselectable="on">','<span class="x-tree-node-indent">',this.indentMarkup,"</span>",'<img src="', this.emptyIcon, '" class="x-tree-ec-icon x-tree-elbow" />','<img src="', a.icon || this.emptyIcon, '" class="x-tree-node-icon',(a.icon ? " x-tree-node-inline-icon" : ""),(a.iconCls ? " "+a.iconCls : ""),'" unselectable="on" />',cb ? ('<input class="x-tree-node-cb" type="checkbox" ' + (a.checked ? 'checked="checked" />' : '/>')) : '','<a hidefocus="on" class="x-tree-node-anchor" href="',href,'" tabIndex="1" ',a.hrefTarget ? ' target="'+a.hrefTarget+'"' : "", '><span unselectable="on">',n.text,"</span></a></div>",'<ul class="x-tree-node-ct" style="display:none;"></ul>',"</li>"].join('');var nel;if(bulkRender !== true && n.nextSibling && (nel = n.nextSibling.ui.getEl())){this.wrap = Ext.DomHelper.insertHtml("beforeBegin", nel, buf);}else{this.wrap = Ext.DomHelper.insertHtml("beforeEnd", targetNode, buf);}this.elNode = this.wrap.childNodes[0];this.ctNode = this.wrap.childNodes[1];var cs = this.elNode.childNodes;this.indentNode = cs[0];this.ecNode = cs[1];this.iconNode = cs[2];var index = 3;if(cb){this.checkbox = cs[3];index++;}this.anchor = cs[index];this.textNode = cs[index].firstChild;},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 n = this.node, c1, c2;var cls = n.isLast() ? "x-tree-elbow-end" : "x-tree-elbow";var hasChild = n.hasChildNodes();if(hasChild || n.attributes.expandable){if(n.expanded){cls += "-minus";c1 = "x-tree-node-collapsed";c2 = "x-tree-node-expanded";}else{cls += "-plus";c1 = "x-tree-node-expanded";c2 = "x-tree-node-collapsed";}if(this.wasLeaf){this.removeClass("x-tree-node-leaf");this.wasLeaf = false;}if(this.c1 != c1 || this.c2 != c2){Ext.fly(this.elNode).replaceClass(c1, c2);this.c1 = c1; this.c2 = c2;}}else{if(!this.wasLeaf){Ext.fly(this.elNode).replaceClass("x-tree-node-expanded", "x-tree-node-leaf");delete this.c1;delete this.c2;this.wasLeaf = true;}}var ecc = "x-tree-ec-icon "+cls;if(this.ecc != ecc){this.ecNode.className = ecc;this.ecc = ecc;}}},getChildIndent : function(){if(!this.childIndent){var buf = [];var p = this.node;while(p){if(!p.isRoot || (p.isRoot && p.ownerTree.rootVisible)){if(!p.isLast()) {buf.unshift('<img src="'+this.emptyIcon+'" class="x-tree-elbow-line" />');} else {buf.unshift('<img src="'+this.emptyIcon+'" class="x-tree-icon" />');}}p = p.parentNode;}this.childIndent = buf.join("");}return this.childIndent;},renderIndent : function(){if(this.rendered){var indent = "";var p = this.node.parentNode;if(p){indent = p.ui.getChildIndent();}if(this.indentMarkup != indent){this.indentNode.innerHTML = indent;this.indentMarkup = indent;}this.updateExpandIcon();}},destroy : function(){if(this.elNode){Ext.dd.Registry.unregister(this.elNode.id);}delete this.elNode;delete this.ctNode;delete this.indentNode;delete this.ecNode;delete this.iconNode;delete this.checkbox;delete this.anchor;delete this.textNode;Ext.removeNode(this.ctNode);}};Ext.tree.RootTreeNodeUI = Ext.extend(Ext.tree.TreeNodeUI, {render : function(){if(!this.rendered){var targetNode = this.node.ownerTree.innerCt.dom;this.node.expanded = true;targetNode.innerHTML = '<div class="x-tree-root-node"></div>';this.wrap = this.ctNode = targetNode.firstChild;}},collapse : Ext.emptyFn,expand : Ext.emptyFn});Ext.tree.TreeLoader = function(config){this.baseParams = {};this.requestMethod = "POST";Ext.apply(this, config);this.addEvents("beforeload","load","loadexception");Ext.tree.TreeLoader.superclass.constructor.call(this);};Ext.extend(Ext.tree.TreeLoader, Ext.util.Observable, {uiProviders : {},clearOnLoad : true,load : function(node, callback){if(this.clearOnLoad){while(node.firstChild){node.removeChild(node.firstChild);}}if(this.doPreload(node)){if(typeof callback == "function"){callback();}}else if(this.dataUrl||this.url){this.requestData(node, callback);}},doPreload : function(node){if(node.attributes.children){if(node.childNodes.length < 1){var cs = node.attributes.children;node.beginUpdate();for(var i = 0, len = cs.length; i < len; i++){var cn = node.appendChild(this.createNode(cs[i]));if(this.preloadChildren){this.doPreload(cn);}}node.endUpdate();}return true;}else {return false;}},getParams: function(node){var buf = [], bp = this.baseParams;for(var key in bp){if(typeof bp[key] != "function"){buf.push(encodeURIComponent(key), "=", encodeURIComponent(bp[key]), "&");}}buf.push("node=", encodeURIComponent(node.id));return buf.join("");},requestData : function(node, callback){if(this.fireEvent("beforeload", this, node, callback) !== false){this.transId = Ext.Ajax.request({method:this.requestMethod,url: this.dataUrl||this.url,success: this.handleResponse,failure: this.handleFailure,scope: this,argument: {callback: callback, node: node},params: this.getParams(node)});}else{if(typeof callback == "function"){callback();}}},isLoading : function(){return this.transId ? true : false;},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 = this;}if(typeof attr.uiProvider == 'string'){attr.uiProvider = this.uiProviders[attr.uiProvider] || eval(attr.uiProvider);}return(attr.leaf ?new Ext.tree.TreeNode(attr) :new Ext.tree.AsyncTreeNode(attr));},processResponse : function(response, node, callback){var json = response.responseText;try {var o = eval("("+json+")");node.beginUpdate();for(var i = 0, len = o.length; i < len; i++){var n = this.createNode(o[i]);if(n){node.appendChild(n);}}node.endUpdate();if(typeof callback == "function"){callback(this, node);}}catch(e){this.handleFailure(response);}},handleResponse : function(response){this.transId = false;var a = response.argument;this.processResponse(response, a.node, a.callback);this.fireEvent("load", this, a.node, response);},handleFailure : function(response){this.transId = false;var a = response.argument;this.fireEvent("loadexception", this, a.node, response);if(typeof a.callback == "function"){a.callback(this, a.node);}}});Ext.tree.TreeFilter = function(tree, config){this.tree = tree;this.filtered = {};Ext.apply(this, config);};Ext.tree.TreeFilter.prototype = {clearBlank:false,reverse:false,autoClear:false,remove:false,filter : function(value, attr, startNode){attr = attr || "text";var f;if(typeof value == "string"){var vlen = value.length;if(vlen == 0 && this.clearBlank){this.clear();return;}value = value.toLowerCase();f = function(n){return n.attributes[attr].substr(0, vlen).toLowerCase() == value;};}else if(value.exec){f = function(n){return value.test(n.attributes[attr]);};}else{throw 'Illegal filter type, must be string or regex';}this.filterBy(f, null, startNode);},filterBy : function(fn, scope, startNode){startNode = startNode || this.tree.root;if(this.autoClear){this.clear();}var af = this.filtered, rv = this.reverse;var f = function(n){if(n == startNode){return true;}if(af[n.id]){return false;}var m = fn.call(scope || n, n);if(!m || rv){af[n.id] = n;n.ui.hide();return false;}return true;};startNode.cascade(f);if(this.remove){for(var id in af){if(typeof id != "function"){var n = af[id];if(n && n.parentNode){n.parentNode.removeChild(n);}}}}},clear : function(){var t = this.tree;var af = this.filtered;for(var id in af){if(typeof id != "function"){var n = af[id];if(n){n.ui.show();}}}this.filtered = {};}};Ext.tree.TreeSorter = function(tree, config){Ext.apply(this, config);tree.on("beforechildrenrendered", this.doSort, this);tree.on("append", this.updateSort, this);tree.on("insert", this.updateSort, this);tree.on("textchange", this.updateSortParent, this);var dsc = this.dir && this.dir.toLowerCase() == "desc";var p = this.property || "text";var sortType = this.sortType;var fs = this.folderSort;var cs = this.caseSensitive === true;var leafAttr = this.leafAttr || 'leaf';this.sortFn = function(n1, n2){if(fs){if(n1.attributes[leafAttr] && !n2.attributes[leafAttr]){return 1;}if(!n1.attributes[leafAttr] && n2.attributes[leafAttr]){return -1;}}var v1 = sortType ? sortType(n1) : (cs ? n1.attributes[p] : n1.attributes[p].toUpperCase());var v2 = sortType ? sortType(n2) : (cs ? n2.attributes[p] : n2.attributes[p].toUpperCase());if(v1 < v2){return dsc ? +1 : -1;}else if(v1 > v2){return dsc ? -1 : +1;}else{return 0;}};};Ext.tree.TreeSorter.prototype = {doSort : function(node){node.sort(this.sortFn);},compareNodes : function(n1, n2){return (n1.text.toUpperCase() > n2.text.toUpperCase() ? 1 : -1);},updateSort : function(tree, node){if(node.childrenRendered){this.doSort.defer(1, this, [node]);}},updateSortParent : function(node){var p = node.parentNode;if(p && p.childrenRendered){this.doSort.defer(1, this, [p]);}}};if(Ext.dd.DropZone){Ext.tree.TreeDropZone = function(tree, config){this.allowParentInsert = false;this.allowContainerDrop = false;this.appendOnly = false;Ext.tree.TreeDropZone.superclass.constructor.call(this, tree.innerCt, config);this.tree = tree;this.dragOverData = {};this.lastInsertClass = "x-tree-no-status";};Ext.extend(Ext.tree.TreeDropZone, Ext.dd.DropZone, {ddGroup : "TreeDD",expandDelay : 1000,expandNode : function(node){if(node.hasChildNodes() && !node.isExpanded()){node.expand(false, null, this.triggerCacheRefresh.createDelegate(this));}},queueExpand : function(node){this.expandProcId = this.expandNode.defer(this.expandDelay, this, [node]);},cancelExpand : function(){if(this.expandProcId){clearTimeout(this.expandProcId);this.expandProcId = false;}},isValidDropPoint : function(n, pt, dd, e, data){if(!n || !data){ return false; }var targetNode = n.node;var dropNode = data.node;if(!(targetNode && targetNode.isTarget && pt)){return false;}if(pt == "append" && targetNode.allowChildren === false){return false;}if((pt == "above" || pt == "below") && (targetNode.parentNode && targetNode.parentNode.allowChildren === false)){return false;}if(dropNode && (targetNode == dropNode || dropNode.contains(targetNode))){return false;}var overEvent = this.dragOverData;overEvent.tree = this.tree;overEvent.target = targetNode;overEvent.data = data;overEvent.point = pt;overEvent.source = dd;overEvent.rawEvent = e;overEvent.dropNode = dropNode;overEvent.cancel = false;var result = this.tree.fireEvent("nodedragover", overEvent);return overEvent.cancel === false && result !== false;},getDropPoint : function(e, n, dd){var tn = n.node;if(tn.isRoot){return tn.allowChildren !== false ? "append" : false;}var dragEl = n.ddel;var t = Ext.lib.Dom.getY(dragEl), b = t + dragEl.offsetHeight;var y = Ext.lib.Event.getPageY(e);var noAppend = tn.allowChildren === false || tn.isLeaf();if(this.appendOnly || tn.parentNode.allowChildren === false){return noAppend ? false : "append";}var noBelow = false;if(!this.allowParentInsert){noBelow = tn.hasChildNodes() && tn.isExpanded();}var q = (b - t) / (noAppend ? 2 : 3);if(y >= t && y < (t + q)){return "above";}else if(!noBelow && (noAppend || y >= b-q && y <= b)){return "below";}else{return "append";}},onNodeEnter : function(n, dd, e, data){this.cancelExpand();},onNodeOver : function(n, dd, e, data){var pt = this.getDropPoint(e, n, dd);var node = n.node;if(!this.expandProcId && pt == "append" && node.hasChildNodes() && !n.node.isExpanded()){this.queueExpand(node);}else if(pt != "append"){this.cancelExpand();}var returnCls = this.dropNotAllowed;if(this.isValidDropPoint(n, pt, dd, e, data)){if(pt){var el = n.ddel;var cls;if(pt == "above"){returnCls = n.node.isFirst() ? "x-tree-drop-ok-above" : "x-tree-drop-ok-between";cls = "x-tree-drag-insert-above";}else if(pt == "below"){returnCls = n.node.isLast() ? "x-tree-drop-ok-below" : "x-tree-drop-ok-between";cls = "x-tree-drag-insert-below";}else{returnCls = "x-tree-drop-ok-append";cls = "x-tree-drag-append";}if(this.lastInsertClass != cls){Ext.fly(el).replaceClass(this.lastInsertClass, cls);this.lastInsertClass = cls;}}}return returnCls;},onNodeOut : function(n, dd, e, data){this.cancelExpand();this.removeDropIndicators(n);},onNodeDrop : function(n, dd, e, data){var point = this.getDropPoint(e, n, dd);var targetNode = n.node;targetNode.ui.startDrop();if(!this.isValidDropPoint(n, point, dd, e, data)){targetNode.ui.endDrop();return false;}var dropNode = data.node || (dd.getTreeNode ? dd.getTreeNode(data, targetNode, point, e) : null);var dropEvent = {tree : this.tree,target: targetNode,data: data,point: point,source: dd,rawEvent: e,dropNode: dropNode,cancel: !dropNode,dropStatus: false};var retval = this.tree.fireEvent("beforenodedrop", dropEvent);if(retval === false || dropEvent.cancel === true || !dropEvent.dropNode){targetNode.ui.endDrop();return dropEvent.dropStatus;}targetNode = dropEvent.target;if(point == "append" && !targetNode.isExpanded()){targetNode.expand(false, null, function(){this.completeDrop(dropEvent);}.createDelegate(this));}else{this.completeDrop(dropEvent);}return true;},completeDrop : function(de){var ns = de.dropNode, p = de.point, t = de.target;if(!Ext.isArray(ns)){ns = [ns];}var n;for(var i = 0, len = ns.length; i < len; i++){n = ns[i];if(p == "above"){t.parentNode.insertBefore(n, t);}else if(p == "below"){t.parentNode.insertBefore(n, t.nextSibling);}else{t.appendChild(n);}}n.ui.focus();if(this.tree.hlDrop){n.ui.highlight();}t.ui.endDrop();this.tree.fireEvent("nodedrop", de);},afterNodeMoved : function(dd, data, e, targetNode, dropNode){if(this.tree.hlDrop){dropNode.ui.focus();dropNode.ui.highlight();}this.tree.fireEvent("nodedrop", this.tree, targetNode, data, dd, e);},getTree : function(){return this.tree;},removeDropIndicators : function(n){if(n && n.ddel){var el = n.ddel;Ext.fly(el).removeClass(["x-tree-drag-insert-above","x-tree-drag-insert-below","x-tree-drag-append"]);this.lastInsertClass = "_noclass";}},beforeDragDrop : function(target, e, id){this.cancelExpand();return true;},afterRepair : function(data){if(data && Ext.enableFx){data.node.ui.highlight();}this.hideProxy();}});}if(Ext.dd.DragZone){Ext.tree.TreeDragZone = function(tree, config){Ext.tree.TreeDragZone.superclass.constructor.call(this, tree.getTreeEl(), config);this.tree = tree;};Ext.extend(Ext.tree.TreeDragZone, Ext.dd.DragZone, {ddGroup : "TreeDD",onBeforeDrag : function(data, e){var n = data.node;return n && n.draggable && !n.disabled;},onInitDrag : function(e){var data = this.dragData;this.tree.getSelectionModel().select(data.node);this.tree.eventModel.disable();this.proxy.update("");data.node.ui.appendDDGhost(this.proxy.ghost.dom);this.tree.fireEvent("startdrag", this.tree, data.node, e);},getRepairXY : function(e, data){return data.node.ui.getDDRepairXY();},onEndDrag : function(data, e){this.tree.eventModel.enable.defer(100, this.tree.eventModel);this.tree.fireEvent("enddrag", this.tree, data.node, e);},onValidDrop : function(dd, e, id){this.tree.fireEvent("dragdrop", this.tree, this.dragData.node, dd, e);this.hideProxy();},beforeInvalidDrop : function(e, id){var sm = this.tree.getSelectionModel();sm.clearSelections();sm.select(this.dragData.node);}});}Ext.tree.TreeEditor = function(tree, config){config = config || {};var field = config.events ? config : new Ext.form.TextField(config);Ext.tree.TreeEditor.superclass.constructor.call(this, field);this.tree = tree;if(!tree.rendered){tree.on('render', this.initEditor, this);}else{this.initEditor(tree);}};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(tree){tree.on('beforeclick', this.beforeNodeClick, this);tree.on('dblclick', this.onNodeDblClick, this);this.on('complete', this.updateNode, this);this.on('beforestartedit', this.fitToTree, this);this.on('startedit', this.bindScroll, this, {delay:10});this.on('specialkey', this.onSpecialKey, this);},fitToTree : function(ed, el){var td = this.tree.getTreeEl().dom, nd = el.dom;if(td.scrollLeft > nd.offsetLeft){ td.scrollLeft = nd.offsetLeft;}var w = Math.min(this.maxWidth,(td.clientWidth > 20 ? td.clientWidth : td.offsetWidth) - Math.max(0, nd.offsetLeft-td.scrollLeft) - 5);this.setSize(w, '');},triggerEdit : function(node, defer){this.completeEdit();if(node.attributes.editable !== false){this.editNode = node;this.autoEditTimer = this.startEdit.defer(this.editDelay, this, [node.ui.textNode, node.text]);return false;}},bindScroll : function(){this.tree.getTreeEl().on('scroll', this.cancelEdit, this);},beforeNodeClick : function(node, e){clearTimeout(this.autoEditTimer);if(this.tree.getSelectionModel().isSelected(node)){e.stopEvent();return this.triggerEdit(node);}},onNodeDblClick : function(node, e){clearTimeout(this.autoEditTimer);},updateNode : function(ed, value){this.tree.getTreeEl().un('scroll', this.cancelEdit, this);this.editNode.setText(value);},onHide : function(){Ext.tree.TreeEditor.superclass.onHide.call(this);if(this.editNode){this.editNode.ui.focus.defer(50, this.editNode.ui);}},onSpecialKey : function(field, e){var k = e.getKey();if(k == e.ESC){e.stopEvent();this.cancelEdit();}else if(k == e.ENTER && !e.hasModifier()){e.stopEvent();this.completeEdit();}}});Ext.menu.Menu = function(config){if(Ext.isArray(config)){config = {items:config};}Ext.apply(this, config);this.id = this.id || Ext.id();this.addEvents('beforeshow','beforehide','show','hide','click','mouseover','mouseout','itemclick');Ext.menu.MenuMgr.register(this);Ext.menu.Menu.superclass.constructor.call(this);var mis = this.items;this.items = new Ext.util.MixedCollection();if(mis){this.add.apply(this, mis);}};Ext.extend(Ext.menu.Menu, Ext.util.Observable, {minWidth : 120,shadow : "sides",subMenuAlign : "tl-tr?",defaultAlign : "tl-bl?",allowOtherMenus : false,hidden:true,createEl : function(){return new Ext.Layer({cls: "x-menu",shadow:this.shadow,constrain: false,parentEl: this.parentEl || document.body,zindex:15000});},render : function(){if(this.el){return;}var el = this.el = this.createEl();if(!this.keyNav){this.keyNav = new Ext.menu.MenuNav(this);}if(this.plain){el.addClass("x-menu-plain");}if(this.cls){el.addClass(this.cls);}this.focusEl = el.createChild({tag: "a", cls: "x-menu-focus", href: "#", onclick: "return false;", tabIndex:"-1"});var ul = el.createChild({tag: "ul", cls: "x-menu-list"});ul.on("click", this.onClick, this);ul.on("mouseover", this.onMouseOver, this);ul.on("mouseout", this.onMouseOut, this);this.items.each(function(item){var li = document.createElement("li");li.className = "x-menu-list-item";ul.dom.appendChild(li);item.render(li, this);}, this);this.ul = ul;this.autoWidth();},autoWidth : function(){var el = this.el, ul = this.ul;if(!el){return;}var w = this.width;if(w){el.setWidth(w);}else if(Ext.isIE){el.setWidth(this.minWidth);var t = el.dom.offsetWidth; el.setWidth(ul.getWidth()+el.getFrameWidth("lr"));}},delayAutoWidth : function(){if(this.el){if(!this.awTask){this.awTask = new Ext.util.DelayedTask(this.autoWidth, this);}this.awTask.delay(20);}},findTargetItem : function(e){var t = e.getTarget(".x-menu-list-item", this.ul, true);if(t && t.menuItemId){return this.items.get(t.menuItemId);}},onClick : function(e){var t;if(t = this.findTargetItem(e)){t.onClick(e);this.fireEvent("click", this, t, e);}},setActiveItem : function(item, autoExpand){if(item != this.activeItem){if(this.activeItem){this.activeItem.deactivate();}this.activeItem = item;item.activate(autoExpand);}else if(autoExpand){item.expandMenu();}},tryActivate : function(start, step){var items = this.items;for(var i = start, len = items.length; i >= 0 && i < len; i+= step){var item = items.get(i);if(!item.disabled && item.canActivate){this.setActiveItem(item, false);return item;}}return false;},onMouseOver : function(e){var t;if(t = this.findTargetItem(e)){if(t.canActivate && !t.disabled){this.setActiveItem(t, true);}}this.fireEvent("mouseover", this, e, t);},onMouseOut : function(e){var t;if(t = this.findTargetItem(e)){if(t == this.activeItem && t.shouldDeactivate(e)){this.activeItem.deactivate();delete this.activeItem;}}this.fireEvent("mouseout", this, e, t);},isVisible : function(){return this.el && !this.hidden;},show : function(el, pos, parentMenu){this.parentMenu = parentMenu;if(!this.el){this.render();}this.fireEvent("beforeshow", this);this.showAt(this.el.getAlignToXY(el, pos || this.defaultAlign), parentMenu, false);},showAt : function(xy, parentMenu, _e){this.parentMenu = parentMenu;if(!this.el){this.render();}if(_e !== false){this.fireEvent("beforeshow", this);xy = this.el.adjustForConstraints(xy);}this.el.setXY(xy);this.el.show();this.hidden = false;this.focus();this.fireEvent("show", this);},focus : function(){if(!this.hidden){this.doFocus.defer(50, this);}},doFocus : function(){if(!this.hidden){this.focusEl.focus();}},hide : function(deep){if(this.el && this.isVisible()){this.fireEvent("beforehide", this);if(this.activeItem){this.activeItem.deactivate();this.activeItem = null;}this.el.hide();this.hidden = true;this.fireEvent("hide", this);}if(deep === true && this.parentMenu){this.parentMenu.hide(true);}},add : function(){var a = arguments, l = a.length, item;for(var i = 0; i < l; i++){var el = a[i];if(el.render){ item = this.addItem(el);}else if(typeof el == "string"){ if(el == "separator" || el == "-"){item = this.addSeparator();}else{item = this.addText(el);}}else if(el.tagName || el.el){ item = this.addElement(el);}else if(typeof el == "object"){ Ext.applyIf(el, this.defaults);item = this.addMenuItem(el);}}return item;},getEl : function(){if(!this.el){this.render();}return this.el;},addSeparator : function(){return this.addItem(new Ext.menu.Separator());},addElement : function(el){return this.addItem(new Ext.menu.BaseItem(el));},addItem : function(item){this.items.add(item);if(this.ul){var li = document.createElement("li");li.className = "x-menu-list-item";this.ul.dom.appendChild(li);item.render(li, this);this.delayAutoWidth();}return item;},addMenuItem : function(config){if(!(config instanceof Ext.menu.Item)){if(typeof config.checked == "boolean"){ config = new Ext.menu.CheckItem(config);}else{config = new Ext.menu.Item(config);}}return this.addItem(config);},addText : function(text){return this.addItem(new Ext.menu.TextItem(text));},insert : function(index, item){this.items.insert(index, item);if(this.ul){var li = document.createElement("li");li.className = "x-menu-list-item";this.ul.dom.insertBefore(li, this.ul.dom.childNodes[index]);item.render(li, this);this.delayAutoWidth();}return item;},remove : function(item){this.items.removeKey(item.id);item.destroy();},removeAll : function(){var f;while(f = this.items.first()){this.remove(f);}},destroy : function(){this.beforeDestroy();Ext.menu.MenuMgr.unregister(this);if (this.keyNav) {this.keyNav.disable();}this.removeAll();if (this.ul) {this.ul.removeAllListeners();}if (this.el) {this.el.destroy();}},beforeDestroy : Ext.emptyFn});Ext.menu.MenuNav = function(menu){Ext.menu.MenuNav.superclass.constructor.call(this, menu.el);this.scope = this.menu = menu;};Ext.extend(Ext.menu.MenuNav, Ext.KeyNav, {doRelay : function(e, h){var k = e.getKey();if(!this.menu.activeItem && e.isNavKeyPress() && k != e.SPACE && k != e.RETURN){this.menu.tryActivate(0, 1);return false;}return h.call(this.scope || this, e, this.menu);},up : function(e, m){if(!m.tryActivate(m.items.indexOf(m.activeItem)-1, -1)){m.tryActivate(m.items.length-1, -1);}},down : function(e, m){if(!m.tryActivate(m.items.indexOf(m.activeItem)+1, 1)){m.tryActivate(0, 1);}},right : function(e, m){if(m.activeItem){m.activeItem.expandMenu(true);}},left : function(e, m){m.hide();if(m.parentMenu && m.parentMenu.activeItem){m.parentMenu.activeItem.activate();}},enter : function(e, m){if(m.activeItem){e.stopPropagation();m.activeItem.onClick(e);m.fireEvent("click", this, m.activeItem);return true;}}});Ext.menu.MenuMgr = function(){var menus, active, groups = {}, attached = false, lastShow = new Date();function init(){menus = {};active = new Ext.util.MixedCollection();Ext.getDoc().addKeyListener(27, function(){if(active.length > 0){hideAll();}});}function hideAll(){if(active && active.length > 0){var c = active.clone();c.each(function(m){m.hide();});}}function onHide(m){active.remove(m);if(active.length < 1){Ext.getDoc().un("mousedown", onMouseDown);attached = false;}}function onShow(m){var last = active.last();lastShow = new Date();active.add(m);if(!attached){Ext.getDoc().on("mousedown", onMouseDown);attached = true;}if(m.parentMenu){m.getEl().setZIndex(parseInt(m.parentMenu.getEl().getStyle("z-index"), 10) + 3);m.parentMenu.activeChild = m;}else if(last && last.isVisible()){m.getEl().setZIndex(parseInt(last.getEl().getStyle("z-index"), 10) + 3);}}function onBeforeHide(m){if(m.activeChild){m.activeChild.hide();}if(m.autoHideTimer){clearTimeout(m.autoHideTimer);delete m.autoHideTimer;}}function onBeforeShow(m){var pm = m.parentMenu;if(!pm && !m.allowOtherMenus){hideAll();}else if(pm && pm.activeChild){pm.activeChild.hide();}}function onMouseDown(e){if(lastShow.getElapsed() > 50 && active.length > 0 && !e.getTarget(".x-menu")){hideAll();}}function onBeforeCheck(mi, state){if(state){var g = groups[mi.group];for(var i = 0, l = g.length; i < l; i++){if(g[i] != mi){g[i].setChecked(false);}}}}return {hideAll : function(){hideAll();},register : function(menu){if(!menus){init();}menus[menu.id] = menu;menu.on("beforehide", onBeforeHide);menu.on("hide", onHide);menu.on("beforeshow", onBeforeShow);menu.on("show", onShow);var g = menu.group;if(g && menu.events["checkchange"]){if(!groups[g]){groups[g] = [];}groups[g].push(menu);menu.on("checkchange", onCheck);}},get : function(menu){if(typeof menu == "string"){ if(!menus){ return null;}return menus[menu];}else if(menu.events){ return menu;}else if(typeof menu.length == 'number'){ return new Ext.menu.Menu({items:menu});}else{ return new Ext.menu.Menu(menu);}},unregister : function(menu){delete menus[menu.id];menu.un("beforehide", onBeforeHide);menu.un("hide", onHide);menu.un("beforeshow", onBeforeShow);menu.un("show", onShow);var g = menu.group;if(g && menu.events["checkchange"]){groups[g].remove(menu);menu.un("checkchange", onCheck);}},registerCheckable : function(menuItem){var g = menuItem.group;if(g){if(!groups[g]){groups[g] = [];}groups[g].push(menuItem);menuItem.on("beforecheckchange", onBeforeCheck);}},unregisterCheckable : function(menuItem){var g = menuItem.group;if(g){groups[g].remove(menuItem);menuItem.un("beforecheckchange", onBeforeCheck);}},getCheckedItem : function(groupId){var g = groups[groupId];if(g){for(var i = 0, l = g.length; i < l; i++){if(g[i].checked){return g[i];}}}return null;},setCheckedItem : function(groupId, itemId){var g = groups[groupId];if(g){for(var i = 0, l = g.length; i < l; i++){if(g[i].id == itemId){g[i].setChecked(true);}}}return null;}};}();Ext.menu.BaseItem = function(config){Ext.menu.BaseItem.superclass.constructor.call(this, config);this.addEvents('click','activate','deactivate');if(this.handler){this.on("click", this.handler, this.scope);}};Ext.extend(Ext.menu.BaseItem, Ext.Component, {canActivate : false,activeClass : "x-menu-item-active",hideOnClick : true,hideDelay : 100,ctype: "Ext.menu.BaseItem",actionMode : "container",render : function(container, parentMenu){this.parentMenu = parentMenu;Ext.menu.BaseItem.superclass.render.call(this, container);this.container.menuItemId = this.id;},onRender : function(container, position){this.el = Ext.get(this.el);container.dom.appendChild(this.el.dom);},setHandler : function(handler, scope){if(this.handler){this.un("click", this.handler, this.scope);}this.on("click", this.handler = handler, this.scope = scope);},onClick : function(e){if(!this.disabled && this.fireEvent("click", this, e) !== false&& this.parentMenu.fireEvent("itemclick", this, e) !== false){this.handleClick(e);}else{e.stopEvent();}},activate : function(){if(this.disabled){return false;}var li = this.container;li.addClass(this.activeClass);this.region = li.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(e){return !this.region || !this.region.contains(e.getPoint());},handleClick : function(e){if(this.hideOnClick){this.parentMenu.hide.defer(this.hideDelay, this.parentMenu, [true]);}},expandMenu : function(autoActivate){},hideMenu : function(){}});Ext.menu.TextItem = function(text){this.text = text;Ext.menu.TextItem.superclass.constructor.call(this);};Ext.extend(Ext.menu.TextItem, Ext.menu.BaseItem, {hideOnClick : false,itemCls : "x-menu-text",onRender : function(){var s = document.createElement("span");s.className = this.itemCls;s.innerHTML = this.text;this.el = s;Ext.menu.TextItem.superclass.onRender.apply(this, arguments);}});Ext.menu.Separator = function(config){Ext.menu.Separator.superclass.constructor.call(this, config);};Ext.extend(Ext.menu.Separator, Ext.menu.BaseItem, {itemCls : "x-menu-sep",hideOnClick : false,onRender : function(li){var s = document.createElement("span");s.className = this.itemCls;s.innerHTML = " ";this.el = s;li.addClass("x-menu-sep-li");Ext.menu.Separator.superclass.onRender.apply(this, arguments);}});Ext.menu.Item = function(config){Ext.menu.Item.superclass.constructor.call(this, config);if(this.menu){this.menu = Ext.menu.MenuMgr.get(this.menu);}};Ext.extend(Ext.menu.Item, Ext.menu.BaseItem, {itemCls : "x-menu-item",canActivate : true,showDelay: 200,hideDelay: 200,ctype: "Ext.menu.Item",onRender : function(container, position){var el = document.createElement("a");el.hideFocus = true;el.unselectable = "on";el.href = this.href || "#";if(this.hrefTarget){el.target = this.hrefTarget;}el.className = this.itemCls + (this.menu ? " x-menu-item-arrow" : "") + (this.cls ? " " + this.cls : "");el.innerHTML = String.format('<img src="{0}" class="x-menu-item-icon {2}" />{1}',this.icon || Ext.BLANK_IMAGE_URL, this.itemText||this.text, this.iconCls || '');this.el = el;Ext.menu.Item.superclass.onRender.call(this, container, position);},setText : function(text){this.text = text;if(this.rendered){this.el.update(String.format('<img src="{0}" class="x-menu-item-icon {2}">{1}',this.icon || Ext.BLANK_IMAGE_URL, this.text, this.iconCls || ''));this.parentMenu.autoWidth();}},setIconClass : function(cls){var oldCls = this.iconCls;this.iconCls = cls;if(this.rendered){this.el.child('img.x-menu-item-icon').replaceClass(oldCls, this.iconCls);}},handleClick : function(e){if(!this.href){ e.stopEvent();}Ext.menu.Item.superclass.handleClick.apply(this, arguments);},activate : function(autoExpand){if(Ext.menu.Item.superclass.activate.apply(this, arguments)){this.focus();if(autoExpand){this.expandMenu();}}return true;},shouldDeactivate : function(e){if(Ext.menu.Item.superclass.shouldDeactivate.call(this, e)){if(this.menu && this.menu.isVisible()){return !this.menu.getEl().getRegion().contains(e.getPoint());}return true;}return false;},deactivate : function(){Ext.menu.Item.superclass.deactivate.apply(this, arguments);this.hideMenu();},expandMenu : function(autoActivate){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, [autoActivate]);}else if (this.menu.isVisible() && autoActivate){this.menu.tryActivate(0, 1);}}},deferExpand : function(autoActivate){delete this.showTimer;this.menu.show(this.container, this.parentMenu.subMenuAlign || "tl-tr?", this.parentMenu);if(autoActivate){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;this.menu.hide();}});Ext.menu.CheckItem = function(config){Ext.menu.CheckItem.superclass.constructor.call(this, config);this.addEvents("beforecheckchange" ,"checkchange");if(this.checkHandler){this.on('checkchange', this.checkHandler, this.scope);}Ext.menu.MenuMgr.registerCheckable(this);};Ext.extend(Ext.menu.CheckItem, Ext.menu.Item, {itemCls : "x-menu-item x-menu-check-item",groupClass : "x-menu-group-item",checked: false,ctype: "Ext.menu.CheckItem",onRender : function(c){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(state, suppressEvent){if(this.checked != state && this.fireEvent("beforecheckchange", this, state) !== false){if(this.container){this.container[state ? "addClass" : "removeClass"]("x-menu-item-checked");}this.checked = state;if(suppressEvent !== true){this.fireEvent("checkchange", this, state);}}},handleClick : function(e){if(!this.disabled && !(this.checked && this.group)){ this.setChecked(!this.checked);}Ext.menu.CheckItem.superclass.handleClick.apply(this, arguments);}});Ext.menu.Adapter = function(component, config){Ext.menu.Adapter.superclass.constructor.call(this, config);this.component = component;};Ext.extend(Ext.menu.Adapter, Ext.menu.BaseItem, {canActivate : true,onRender : function(container, position){this.component.render(container);this.el = this.component.getEl();},activate : function(){if(this.disabled){return false;}this.component.focus();this.fireEvent("activate", this);return true;},deactivate : function(){this.fireEvent("deactivate", this);},disable : function(){this.component.disable();Ext.menu.Adapter.superclass.disable.call(this);},enable : function(){this.component.enable();Ext.menu.Adapter.superclass.enable.call(this);}});Ext.menu.DateItem = function(config){Ext.menu.DateItem.superclass.constructor.call(this, new Ext.DatePicker(config), config);this.picker = this.component;this.addEvents('select');this.picker.on("render", function(picker){picker.getEl().swallowEvent("click");picker.container.addClass("x-menu-date-item");});this.picker.on("select", this.onSelect, this);};Ext.extend(Ext.menu.DateItem, Ext.menu.Adapter, {onSelect : function(picker, date){this.fireEvent("select", this, date, picker);Ext.menu.DateItem.superclass.handleClick.call(this);}});Ext.menu.ColorItem = function(config){Ext.menu.ColorItem.superclass.constructor.call(this, new Ext.ColorPalette(config), config);this.palette = this.component;this.relayEvents(this.palette, ["select"]);if(this.selectHandler){this.on('select', this.selectHandler, this.scope);}};Ext.extend(Ext.menu.ColorItem, Ext.menu.Adapter);Ext.menu.DateMenu = function(config){Ext.menu.DateMenu.superclass.constructor.call(this, config);this.plain = true;var di = new Ext.menu.DateItem(config);this.add(di);this.picker = di.picker;this.relayEvents(di, ["select"]);this.on('beforeshow', function(){if(this.picker){this.picker.hideMonthPicker(true);}}, this);};Ext.extend(Ext.menu.DateMenu, Ext.menu.Menu, {cls:'x-date-menu',beforeDestroy : function() {this.picker.destroy();}});Ext.menu.ColorMenu = function(config){Ext.menu.ColorMenu.superclass.constructor.call(this, config);this.plain = true;var ci = new Ext.menu.ColorItem(config);this.add(ci);this.palette = ci.palette;this.relayEvents(ci, ["select"]);};Ext.extend(Ext.menu.ColorMenu, Ext.menu.Menu);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,isFormField : true,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.hiddenName || '');},onRender : function(ct, position){Ext.form.Field.superclass.onRender.call(this, ct, position);if(!this.el){var cfg = this.getAutoCreate();if(!cfg.name){cfg.name = this.name || this.id;}if(this.inputType){cfg.type = this.inputType;}this.el = ct.createChild(cfg, position);}var type = this.el.dom.type;if(type){if(type == 'password'){type = 'text';}this.el.addClass('x-form-'+type);}if(this.readOnly){this.el.dom.readOnly = true;}if(this.tabIndex !== undefined){this.el.dom.setAttribute('tabIndex', this.tabIndex);}this.el.addClass([this.fieldClass, this.cls]);this.initValue();},initValue : function(){if(this.value !== undefined){this.setValue(this.value);}else if(this.el.dom.value.length > 0){this.setValue(this.el.dom.value);}},isDirty : function() {if(this.disabled) {return false;}return String(this.getValue()) !== String(this.originalValue);},afterRender : function(){Ext.form.Field.superclass.afterRender.call(this);this.initEvents();},fireKey : function(e){if(e.isSpecialKey()){this.fireEvent("specialkey", this, e);}},reset : function(){this.setValue(this.originalValue);this.clearInvalid();},initEvents : function(){this.el.on(Ext.isIE ? "keydown" : "keypress", this.fireKey, this);this.el.on("focus", this.onFocus, this);this.el.on("blur", this.onBlur, this);this.originalValue = this.getValue();},onFocus : function(){if(!Ext.isOpera && 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(!Ext.isOpera && this.focusClass){ this.el.removeClass(this.focusClass);}this.hasFocus = false;if(this.validationEvent !== false && this.validateOnBlur && this.validationEvent != "blur"){this.validate();}var v = this.getValue();if(String(v) !== String(this.startValue)){this.fireEvent('change', this, v, this.startValue);}this.fireEvent("blur", this);},isValid : function(preventMark){if(this.disabled){return true;}var restore = this.preventMark;this.preventMark = preventMark === true;var v = this.validateValue(this.processValue(this.getRawValue()));this.preventMark = restore;return v;},validate : function(){if(this.disabled || this.validateValue(this.processValue(this.getRawValue()))){this.clearInvalid();return true;}return false;},processValue : function(value){return value;},validateValue : function(value){return true;},markInvalid : function(msg){if(!this.rendered || this.preventMark){ return;}this.el.addClass(this.invalidClass);msg = msg || this.invalidText;switch(this.msgTarget){case 'qtip':this.el.dom.qtip = msg;this.el.dom.qclass = 'x-form-invalid-tip';if(Ext.QuickTips){ Ext.QuickTips.enable();}break;case 'title':this.el.dom.title = msg;break;case 'under':if(!this.errorEl){var elp = this.el.findParent('.x-form-element', 5, true);this.errorEl = elp.createChild({cls:'x-form-invalid-msg'});this.errorEl.setWidth(elp.getWidth(true)-20);}this.errorEl.update(msg);Ext.form.Field.msgFx[this.msgFx].show(this.errorEl, this);break;case 'side':if(!this.errorIcon){var elp = this.el.findParent('.x-form-element', 5, true);this.errorIcon = elp.createChild({cls:'x-form-invalid-icon'});}this.alignErrorIcon();this.errorIcon.dom.qtip = msg;this.errorIcon.dom.qclass = 'x-form-invalid-tip';this.errorIcon.show();this.on('resize', this.alignErrorIcon, this);break;default:var t = Ext.getDom(this.msgTarget);t.innerHTML = msg;t.style.display = this.msgDisplay;break;}this.fireEvent('invalid', this, msg);},alignErrorIcon : function(){this.errorIcon.alignTo(this.el, 'tl-tr', [2, 0]);},clearInvalid : function(){if(!this.rendered || this.preventMark){ return;}this.el.removeClass(this.invalidClass);switch(this.msgTarget){case 'qtip':this.el.dom.qtip = '';break;case 'title':this.el.dom.title = '';break;case 'under':if(this.errorEl){Ext.form.Field.msgFx[this.msgFx].hide(this.errorEl, this);}break;case 'side':if(this.errorIcon){this.errorIcon.dom.qtip = '';this.errorIcon.hide();this.un('resize', this.alignErrorIcon, this);}break;default:var t = Ext.getDom(this.msgTarget);t.innerHTML = '';t.style.display = 'none';break;}this.fireEvent('valid', this);},getRawValue : function(){var v = this.rendered ? this.el.getValue() : Ext.value(this.value, '');if(v === this.emptyText){v = '';}return v;},getValue : function(){if(!this.rendered) {return this.value;}var v = this.el.getValue();if(v === this.emptyText || v === undefined){v = '';}return v;},setRawValue : function(v){return this.el.dom.value = (v === null || v === undefined ? '' : v);},setValue : function(v){this.value = v;if(this.rendered){this.el.dom.value = (v === null || v === undefined ? '' : v);this.validate();}},adjustSize : function(w, h){var s = Ext.form.Field.superclass.adjustSize.call(this, w, h);s.width = this.adjustWidth(this.el.dom.tagName, s.width);return s;},adjustWidth : function(tag, w){tag = tag.toLowerCase();if(typeof w == 'number' && !Ext.isSafari){if(Ext.isIE && (tag == 'input' || tag == 'textarea')){if(tag == 'input' && !Ext.isStrict){return this.inEditor ? w : w - 3;}if(tag == 'input' && Ext.isStrict){return w - (Ext.isIE6 ? 4 : 1);}if(tag = 'textarea' && Ext.isStrict){return w-2;}}else if(Ext.isOpera && Ext.isStrict){if(tag == 'input'){return w + 2;}if(tag = 'textarea'){return w-2;}}}return w;}});Ext.form.Field.msgFx = {normal : {show: function(msgEl, f){msgEl.setDisplayed('block');},hide : function(msgEl, f){msgEl.setDisplayed(false).update('');}},slide : {show: function(msgEl, f){msgEl.slideIn('t', {stopFx:true});},hide : function(msgEl, f){msgEl.slideOut('t', {stopFx:true,useDisplay:true});}},slideRight : {show: function(msgEl, f){msgEl.fixDisplay();msgEl.alignTo(f.el, 'tl-tr');msgEl.slideIn('l', {stopFx:true});},hide : function(msgEl, f){msgEl.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');},initEvents : function(){Ext.form.TextField.superclass.initEvents.call(this);if(this.validationEvent == 'keyup'){this.validationTask = new Ext.util.DelayedTask(this.validate, this);this.el.on('keyup', this.filterValidation, this);}else if(this.validationEvent !== false){this.el.on(this.validationEvent, this.validate, this, {buffer: this.validationDelay});}if(this.selectOnFocus || this.emptyText){this.on("focus", this.preFocus, this);if(this.emptyText){this.on('blur', this.postBlur, this);this.applyEmptyText();}}if(this.maskRe || (this.vtype && this.disableKeyFilter !== true && (this.maskRe = Ext.form.VTypes[this.vtype+'Mask']))){this.el.on("keypress", this.filterKeys, this);}if(this.grow){this.el.on("keyup", this.onKeyUp, this, {buffer:50});this.el.on("click", this.autoSize, this);}},processValue : function(value){if(this.stripCharsRe){var newValue = value.replace(this.stripCharsRe, '');if(newValue !== value){this.setRawValue(newValue);return newValue;}}return value;},filterValidation : function(e){if(!e.isNavKeyPress()){this.validationTask.delay(this.validationDelay);}},onKeyUp : function(e){if(!e.isNavKeyPress()){this.autoSize();}},reset : function(){Ext.form.TextField.superclass.reset.call(this);this.applyEmptyText();},applyEmptyText : function(){if(this.rendered && this.emptyText && this.getRawValue().length < 1){this.setRawValue(this.emptyText);this.el.addClass(this.emptyClass);}},preFocus : function(){if(this.emptyText){if(this.el.dom.value == this.emptyText){this.setRawValue('');}this.el.removeClass(this.emptyClass);}if(this.selectOnFocus){this.el.dom.select();}},postBlur : function(){this.applyEmptyText();},filterKeys : function(e){var k = e.getKey();if(!Ext.isIE && (e.isNavKeyPress() || k == e.BACKSPACE || (k == e.DELETE && e.button == -1))){return;}var c = e.getCharCode(), cc = String.fromCharCode(c);if(Ext.isIE && (e.isSpecialKey() || !cc)){return;}if(!this.maskRe.test(cc)){e.stopEvent();}},setValue : function(v){if(this.emptyText && this.el && v !== undefined && v !== null && v !== ''){this.el.removeClass(this.emptyClass);}Ext.form.TextField.superclass.setValue.apply(this, arguments);this.applyEmptyText();this.autoSize();},validateValue : function(value){if(value.length < 1 || value === this.emptyText){ if(this.allowBlank){this.clearInvalid();return true;}else{this.markInvalid(this.blankText);return false;}}if(value.length < this.minLength){this.markInvalid(String.format(this.minLengthText, this.minLength));return false;}if(value.length > this.maxLength){this.markInvalid(String.format(this.maxLengthText, this.maxLength));return false;}if(this.vtype){var vt = Ext.form.VTypes;if(!vt[this.vtype](value, this)){this.markInvalid(this.vtypeText || vt[this.vtype +'Text']);return false;}}if(typeof this.validator == "function"){var msg = this.validator(value);if(msg !== true){this.markInvalid(msg);return false;}}if(this.regex && !this.regex.test(value)){this.markInvalid(this.regexText);return false;}return true;},selectText : function(start, end){var v = this.getRawValue();if(v.length > 0){start = start === undefined ? 0 : start;end = end === undefined ? v.length : end;var d = this.el.dom;if(d.setSelectionRange){d.setSelectionRange(start, end);}else if(d.createTextRange){var range = d.createTextRange();range.moveStart("character", start);range.moveEnd("character", end-v.length);range.select();}}},autoSize : function(){if(!this.grow || !this.rendered){return;}if(!this.metrics){this.metrics = Ext.util.TextMetrics.createInstance(this.el);}var el = this.el;var v = el.dom.value;var d = document.createElement('div');d.appendChild(document.createTextNode(v));v = d.innerHTML;d = null;v += " ";var w = Math.min(this.growMax, Math.max(this.metrics.getWidth(v) + 10, this.growMin));this.el.setWidth(w);this.fireEvent("autosize", this, w);}});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,autoSize: Ext.emptyFn,monitorTab : true,deferHeight : true,mimicing : false,onResize : function(w, h){Ext.form.TriggerField.superclass.onResize.call(this, w, h);if(typeof w == 'number'){this.el.setWidth(this.adjustWidth('input', w - this.trigger.getWidth()));}this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth());},adjustSize : Ext.BoxComponent.prototype.adjustSize,getResizeEl : function(){return this.wrap;},getPositionEl : function(){return this.wrap;},alignErrorIcon : function(){this.errorIcon.alignTo(this.wrap, 'tl-tr', [2, 0]);},onRender : function(ct, position){Ext.form.TriggerField.superclass.onRender.call(this, ct, position);this.wrap = this.el.wrap({cls: "x-form-field-wrap"});this.trigger = this.wrap.createChild(this.triggerConfig ||{tag: "img", src: Ext.BLANK_IMAGE_URL, cls: "x-form-trigger " + this.triggerClass});if(this.hideTrigger){this.trigger.setDisplayed(false);}this.initTrigger();if(!this.width){this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth());}},initTrigger : function(){this.trigger.on("click", this.onTriggerClick, this, {preventDefault:true});this.trigger.addClassOnOver('x-form-trigger-over');this.trigger.addClassOnClick('x-form-trigger-click');},onDestroy : function(){if(this.trigger){this.trigger.removeAllListeners();this.trigger.remove();}if(this.wrap){this.wrap.remove();}Ext.form.TriggerField.superclass.onDestroy.call(this);},onFocus : function(){Ext.form.TriggerField.superclass.onFocus.call(this);if(!this.mimicing){this.wrap.addClass('x-trigger-wrap-focus');this.mimicing = true;Ext.get(Ext.isIE ? document.body : document).on("mousedown", this.mimicBlur, this, {delay: 10});if(this.monitorTab){this.el.on("keydown", this.checkTab, this);}}},checkTab : function(e){if(e.getKey() == e.TAB){this.triggerBlur();}},onBlur : function(){},mimicBlur : function(e){if(!this.wrap.contains(e.target) && this.validateBlur(e)){this.triggerBlur();}},triggerBlur : function(){this.mimicing = false;Ext.get(Ext.isIE ? document.body : document).un("mousedown", this.mimicBlur);if(this.monitorTab){this.el.un("keydown", this.checkTab, this);}this.beforeBlur();this.wrap.removeClass('x-trigger-wrap-focus');Ext.form.TriggerField.superclass.onBlur.call(this);},beforeBlur : Ext.emptyFn,validateBlur : function(e){return true;},onDisable : function(){Ext.form.TriggerField.superclass.onDisable.call(this);if(this.wrap){this.wrap.addClass('x-item-disabled');}},onEnable : function(){Ext.form.TriggerField.superclass.onEnable.call(this);if(this.wrap){this.wrap.removeClass('x-item-disabled');}},onShow : function(){if(this.wrap){this.wrap.dom.style.display = '';this.wrap.dom.style.visibility = 'visible';}},onHide : function(){this.wrap.dom.style.display = 'none';},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, cls: "x-form-trigger " + this.trigger1Class},{tag: "img", src: Ext.BLANK_IMAGE_URL, cls: "x-form-trigger " + this.trigger2Class}]};},getTrigger : function(index){return this.triggers[index];},initTrigger : function(){var ts = this.trigger.select('.x-form-trigger', true);this.wrap.setStyle('overflow', 'hidden');var triggerField = this;ts.each(function(t, all, index){t.hide = function(){var w = triggerField.wrap.getWidth();this.dom.style.display = 'none';triggerField.el.setWidth(w-triggerField.trigger.getWidth());};t.show = function(){var w = triggerField.wrap.getWidth();this.dom.style.display = '';triggerField.el.setWidth(w-triggerField.trigger.getWidth());};var triggerIndex = 'Trigger'+(index+1);if(this['hide'+triggerIndex]){t.dom.style.display = 'none';}t.on("click", this['on'+triggerIndex+'Click'], this, {preventDefault:true});t.addClassOnOver('x-form-trigger-over');t.addClassOnClick('x-form-trigger-click');}, this);this.triggers = ts.elements;},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 ',growPad : 0,enterIsSpecial : false,preventScrollbars: false,onRender : function(ct, position){if(!this.el){this.defaultAutoCreate = {tag: "textarea",style:"width:100px;height:60px;",autocomplete: "off"};}Ext.form.TextArea.superclass.onRender.call(this, ct, position);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(){if(this.textSizeEl){Ext.removeNode(this.textSizeEl);}Ext.form.TextArea.superclass.onDestroy.call(this);},fireKey : function(e){if(e.isSpecialKey() && (this.enterIsSpecial || (e.getKey() != e.ENTER || e.hasModifier()))){this.fireEvent("specialkey", this, e);}},onKeyUp : function(e){if(!e.isNavKeyPress() || e.getKey() == e.ENTER){this.autoSize();}},autoSize : function(){if(!this.grow || !this.textSizeEl){return;}var el = this.el;var v = el.dom.value;var ts = this.textSizeEl;ts.innerHTML = '';ts.appendChild(document.createTextNode(v));v = ts.innerHTML;Ext.fly(ts).setWidth(this.el.getWidth());if(v.length < 1){v = "  ";}else{if(Ext.isIE){v = v.replace(/\n/g, '<p> </p>');}v += this.growAppend;}ts.innerHTML = v;var h = Math.min(this.growMax, Math.max(ts.offsetHeight, this.growMin)+this.growPad);if(h != this.lastHeight){this.lastHeight = h;this.el.setHeight(h);this.fireEvent("autosize", this, h);}}});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",initEvents : function(){Ext.form.NumberField.superclass.initEvents.call(this);var allowed = this.baseChars+'';if(this.allowDecimals){allowed += this.decimalSeparator;}if(this.allowNegative){allowed += "-";}this.stripCharsRe = new RegExp('[^'+allowed+']', 'gi');var keyPress = function(e){var k = e.getKey();if(!Ext.isIE && (e.isSpecialKey() || k == e.BACKSPACE || k == e.DELETE)){return;}var c = e.getCharCode();if(allowed.indexOf(String.fromCharCode(c)) === -1){e.stopEvent();}};this.el.on("keypress", keyPress, this);},validateValue : function(value){if(!Ext.form.NumberField.superclass.validateValue.call(this, value)){return false;}if(value.length < 1){ return true;}value = String(value).replace(this.decimalSeparator, ".");if(isNaN(value)){this.markInvalid(String.format(this.nanText, value));return false;}var num = this.parseValue(value);if(num < this.minValue){this.markInvalid(String.format(this.minText, this.minValue));return false;}if(num > this.maxValue){this.markInvalid(String.format(this.maxText, this.maxValue));return false;}return true;},getValue : function(){return this.fixPrecision(this.parseValue(Ext.form.NumberField.superclass.getValue.call(this)));},setValue : function(v){v = parseFloat(v);v = isNaN(v) ? '' : String(v).replace(".", this.decimalSeparator);Ext.form.NumberField.superclass.setValue.call(this, v);},parseValue : function(value){value = parseFloat(String(value).replace(this.decimalSeparator, "."));return isNaN(value) ? '' : value;},fixPrecision : function(value){var nan = isNaN(value);if(!this.allowDecimals || this.decimalPrecision == -1 || nan || !value){return nan ? '' : value;}return parseFloat(parseFloat(value).toFixed(this.decimalPrecision));},beforeBlur : function(){var v = this.parseValue(this.getRawValue());if(v){this.setValue(this.fixPrecision(v));}}});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",disabledDays : null,disabledDaysText : "Disabled",disabledDates : null,disabledDatesText : "Disabled",minValue : null,maxValue : null,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',defaultAutoCreate : {tag: "input", type: "text", size: "10", autocomplete: "off"},initComponent : function(){Ext.form.DateField.superclass.initComponent.call(this);if(typeof this.minValue == "string"){this.minValue = this.parseDate(this.minValue);}if(typeof this.maxValue == "string"){this.maxValue = this.parseDate(this.maxValue);}this.ddMatch = null;if(this.disabledDates){var dd = this.disabledDates;var re = "(?:";for(var i = 0; i < dd.length; i++){re += dd[i];if(i != dd.length-1) re += "|";}this.ddMatch = new RegExp(re + ")");}},validateValue : function(value){value = this.formatDate(value);if(!Ext.form.DateField.superclass.validateValue.call(this, value)){return false;}if(value.length < 1){ return true;}var svalue = value;value = this.parseDate(value);if(!value){this.markInvalid(String.format(this.invalidText, svalue, this.format));return false;}var time = value.getTime();if(this.minValue && time < this.minValue.getTime()){this.markInvalid(String.format(this.minText, this.formatDate(this.minValue)));return false;}if(this.maxValue && time > this.maxValue.getTime()){this.markInvalid(String.format(this.maxText, this.formatDate(this.maxValue)));return false;}if(this.disabledDays){var day = value.getDay();for(var i = 0; i < this.disabledDays.length; i++) {if(day === this.disabledDays[i]){this.markInvalid(this.disabledDaysText);return false;}}}var fvalue = this.formatDate(value);if(this.ddMatch && this.ddMatch.test(fvalue)){this.markInvalid(String.format(this.disabledDatesText, fvalue));return false;}return true;},validateBlur : function(){return !this.menu || !this.menu.isVisible();},getValue : function(){return this.parseDate(Ext.form.DateField.superclass.getValue.call(this)) || "";},setValue : function(date){Ext.form.DateField.superclass.setValue.call(this, this.formatDate(this.parseDate(date)));},parseDate : function(value){if(!value || Ext.isDate(value)){return value;}var v = Date.parseDate(value, this.format);if(!v && this.altFormats){if(!this.altFormatsArray){this.altFormatsArray = this.altFormats.split("|");}for(var i = 0, len = this.altFormatsArray.length; i < len && !v; i++){v = Date.parseDate(value, this.altFormatsArray[i]);}}return v;},onDestroy : function(){if(this.menu) {this.menu.destroy();}if(this.wrap){this.wrap.remove();}Ext.form.DateField.superclass.onDestroy.call(this);},formatDate : function(date){return Ext.isDate(date) ? date.dateFormat(this.format) : date;},menuListeners : {select: function(m, d){this.setValue(d);},show : function(){ this.onFocus();},hide : function(){this.focus.defer(10, this);var ml = this.menuListeners;this.menu.un("select", ml.select, this);this.menu.un("show", ml.show, this);this.menu.un("hide", ml.hide, this);}},onTriggerClick : function(){if(this.disabled){return;}if(this.menu == null){this.menu = new Ext.menu.DateMenu();}Ext.apply(this.menu.picker, {minDate : this.minValue,maxDate : this.maxValue,disabledDatesRE : this.ddMatch,disabledDatesText : this.disabledDatesText,disabledDays : this.disabledDays,disabledDaysText : this.disabledDaysText,format : this.format,minText : String.format(this.minText, this.formatDate(this.minValue)),maxText : String.format(this.maxText, this.formatDate(this.maxValue))});this.menu.on(Ext.apply({}, this.menuListeners, {scope:this}));this.menu.picker.setValue(this.getValue() || new Date());this.menu.show(this.el, "tl-bl?");},beforeBlur : function(){var v = this.parseDate(this.getRawValue());if(v){this.setValue(v);}}});Ext.reg('datefield', Ext.form.DateField);Ext.form.ComboBox = Ext.extend(Ext.form.TriggerField, {defaultAutoCreate : {tag: "input", type: "text", size: "24", autocomplete: "off"},listClass: '',selectedClass: 'x-combo-selected',triggerClass : 'x-form-arrow-trigger',shadow:'sides',listAlign: 'tl-bl?',maxHeight: 300,minHeight: 90,triggerAction: 'query',minChars : 4,typeAhead: false,queryDelay: 500,pageSize: 0,selectOnFocus:false,queryParam: 'query',loadingText: 'Loading...',resizable: false,handleHeight : 8,editable: true,allQuery: '',mode: 'remote',minListWidth : 70,forceSelection:false,typeAheadDelay : 250,lazyInit : true,initComponent : function(){Ext.form.ComboBox.superclass.initComponent.call(this);this.addEvents('expand','collapse','beforeselect','select','beforequery');if(this.transform){this.allowDomMove = false;var s = Ext.getDom(this.transform);if(!this.hiddenName){this.hiddenName = s.name;}if(!this.store){this.mode = 'local';var d = [], opts = s.options;for(var i = 0, len = opts.length;i < len; i++){var o = opts[i];var value = (Ext.isIE ? o.getAttributeNode('value').specified : o.hasAttribute('value')) ? o.value : o.text;if(o.selected) {this.value = value;}d.push([value, o.text]);}this.store = new Ext.data.SimpleStore({'id': 0,fields: ['value', 'text'],data : d});this.valueField = 'value';this.displayField = 'text';}s.name = Ext.id(); if(!this.lazyRender){this.target = true;this.el = Ext.DomHelper.insertBefore(s, this.autoCreate || this.defaultAutoCreate);Ext.removeNode(s); this.render(this.el.parentNode);}else{Ext.removeNode(s); }}this.selectedIndex = -1;if(this.mode == 'local'){if(this.initialConfig.queryDelay === undefined){this.queryDelay = 10;}if(this.initialConfig.minChars === undefined){this.minChars = 0;}}},onRender : function(ct, position){Ext.form.ComboBox.superclass.onRender.call(this, ct, position);if(this.hiddenName){this.hiddenField = this.el.insertSibling({tag:'input', type:'hidden', name: this.hiddenName, id: (this.hiddenId||this.hiddenName)},'before', true);this.hiddenField.value =this.hiddenValue !== undefined ? this.hiddenValue :this.value !== undefined ? this.value : '';this.el.dom.removeAttribute('name');}if(Ext.isGecko){this.el.dom.setAttribute('autocomplete', 'off');}if(!this.lazyInit){this.initList();}else{this.on('focus', this.initList, this, {single: true});}if(!this.editable){this.editable = true;this.setEditable(false);}},initList : function(){if(!this.list){var cls = 'x-combo-list';this.list = new Ext.Layer({shadow: this.shadow, cls: [cls, this.listClass].join(' '), constrain:false});var lw = this.listWidth || Math.max(this.wrap.getWidth(), this.minListWidth);this.list.setWidth(lw);this.list.swallowEvent('mousewheel');this.assetHeight = 0;if(this.title){this.header = this.list.createChild({cls:cls+'-hd', html: this.title});this.assetHeight += this.header.getHeight();}this.innerList = this.list.createChild({cls:cls+'-inner'});this.innerList.on('mouseover', this.onViewOver, this);this.innerList.on('mousemove', this.onViewMove, this);this.innerList.setWidth(lw - this.list.getFrameWidth('lr'));if(this.pageSize){this.footer = this.list.createChild({cls:cls+'-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 = '<tpl for="."><div class="'+cls+'-item">{' + this.displayField + '}</div></tpl>';}this.view = new Ext.DataView({applyTo: this.innerList,tpl: this.tpl,singleSelect: true,selectedClass: this.selectedClass,itemSelector: this.itemSelector || '.' + cls + '-item'});this.view.on('click', this.onViewClick, this);this.bindStore(this.store, true);if(this.resizable){this.resizer = new Ext.Resizable(this.list, {pinned:true, handles:'se'});this.resizer.on('resize', function(r, w, h){this.maxHeight = h-this.handleHeight-this.list.getFrameWidth('tb')-this.assetHeight;this.listWidth = w;this.innerList.setWidth(w - this.list.getFrameWidth('lr'));this.restrictHeight();}, this);this[this.pageSize?'footer':'innerList'].setStyle('margin-bottom', this.handleHeight+'px');}}},bindStore : function(store, initial){if(this.store && !initial){this.store.un('beforeload', this.onBeforeLoad, this);this.store.un('load', this.onLoad, this);this.store.un('loadexception', this.collapse, this);if(!store){this.store = null;if(this.view){this.view.setStore(null);}}}if(store){this.store = Ext.StoreMgr.lookup(store);this.store.on('beforeload', this.onBeforeLoad, this);this.store.on('load', this.onLoad, this);this.store.on('loadexception', this.collapse, this);if(this.view){this.view.setStore(store);}}},initEvents : function(){Ext.form.ComboBox.superclass.initEvents.call(this);this.keyNav = new Ext.KeyNav(this.el, {"up" : function(e){this.inKeyMode = true;this.selectPrev();},"down" : function(e){if(!this.isExpanded()){this.onTriggerClick();}else{this.inKeyMode = true;this.selectNext();}},"enter" : function(e){this.onViewClick();this.delayedCheck = true;this.unsetDelayCheck.defer(10, this);},"esc" : function(e){this.collapse();},"tab" : function(e){this.onViewClick(false);return true;},scope : this,doRelay : function(foo, bar, hname){if(hname == 'down' || this.scope.isExpanded()){return Ext.KeyNav.prototype.doRelay.apply(this, arguments);}return true;},forceKeyDown : true});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.editable !== false){this.el.on("keyup", this.onKeyUp, this);}if(this.forceSelection){this.on('blur', this.doForce, this);}},onDestroy : function(){if(this.view){this.view.el.removeAllListeners();this.view.el.remove();this.view.purgeListeners();}if(this.list){this.list.destroy();}this.bindStore(null);Ext.form.ComboBox.superclass.onDestroy.call(this);},unsetDelayCheck : function(){delete this.delayedCheck;},fireKey : function(e){if(e.isNavKeyPress() && !this.isExpanded() && !this.delayedCheck){this.fireEvent("specialkey", this, e);}},onResize: function(w, h){Ext.form.ComboBox.superclass.onResize.apply(this, arguments);if(this.list && this.listWidth === undefined){var lw = Math.max(w, this.minListWidth);this.list.setWidth(lw);this.innerList.setWidth(lw - 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;}},setEditable : function(value){if(value == this.editable){return;}this.editable = value;if(!value){this.el.dom.setAttribute('readOnly', true);this.el.on('mousedown', this.onTriggerClick, this);this.el.addClass('x-combo-noedit');}else{this.el.dom.setAttribute('readOnly', false);this.el.un('mousedown', this.onTriggerClick, this);this.el.removeClass('x-combo-noedit');}},onBeforeLoad : function(){if(!this.hasFocus){return;}this.innerList.update(this.loadingText ?'<div class="loading-indicator">'+this.loadingText+'</div>' : '');this.restrictHeight();this.selectedIndex = -1;},onLoad : function(){if(!this.hasFocus){return;}if(this.store.getCount() > 0){this.expand();this.restrictHeight();if(this.lastQuery == this.allQuery){if(this.editable){this.el.dom.select();}if(!this.selectByValue(this.value, true)){this.select(0, true);}}else{this.selectNext();if(this.typeAhead && this.lastKey != Ext.EventObject.BACKSPACE && this.lastKey != Ext.EventObject.DELETE){this.taTask.delay(this.typeAheadDelay);}}}else{this.onEmptyResults();}},onTypeAhead : function(){if(this.store.getCount() > 0){var r = this.store.getAt(0);var newValue = r.data[this.displayField];var len = newValue.length;var selStart = this.getRawValue().length;if(selStart != len){this.setRawValue(newValue);this.selectText(selStart, newValue.length);}}},onSelect : function(record, index){if(this.fireEvent('beforeselect', this, record, index) !== false){this.setValue(record.data[this.valueField || this.displayField]);this.collapse();this.fireEvent('select', this, record, index);}},getValue : function(){if(this.valueField){return typeof this.value != 'undefined' ? 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(v){var text = v;if(this.valueField){var r = this.findRecord(this.valueField, v);if(r){text = r.data[this.displayField];}else if(this.valueNotFoundText !== undefined){text = this.valueNotFoundText;}}this.lastSelectionText = text;if(this.hiddenField){this.hiddenField.value = v;}Ext.form.ComboBox.superclass.setValue.call(this, text);this.value = v;},findRecord : function(prop, value){var record;if(this.store.getCount() > 0){this.store.each(function(r){if(r.data[prop] == value){record = r;return false;}});}return record;},onViewMove : function(e, t){this.inKeyMode = false;},onViewOver : function(e, t){if(this.inKeyMode){ return;}var item = this.view.findItemFromChild(t);if(item){var index = this.view.indexOf(item);this.select(index, false);}},onViewClick : function(doFocus){var index = this.view.getSelectedIndexes()[0];var r = this.store.getAt(index);if(r){this.onSelect(r, index);}if(doFocus !== false){this.el.focus();}},restrictHeight : function(){this.innerList.dom.style.height = '';var inner = this.innerList.dom;var pad = this.list.getFrameWidth('tb')+(this.resizable?this.handleHeight:0)+this.assetHeight;var h = Math.max(inner.clientHeight, inner.offsetHeight, inner.scrollHeight);var ha = this.getPosition()[1]-Ext.getBody().getScroll().top;var hb = Ext.lib.Dom.getViewHeight()-ha-this.getSize().height;var space = Math.max(ha, hb, this.minHeight || 0)-this.list.shadow.offset-pad-2;h = Math.min(h, space, this.maxHeight);this.innerList.setHeight(h);this.list.beginUpdate();this.list.setHeight(h+pad);this.list.alignTo(this.el, this.listAlign);this.list.endUpdate();},onEmptyResults : function(){this.collapse();},isExpanded : function(){return this.list && this.list.isVisible();},selectByValue : function(v, scrollIntoView){if(v !== undefined && v !== null){var r = this.findRecord(this.valueField || this.displayField, v);if(r){this.select(this.store.indexOf(r), scrollIntoView);return true;}}return false;},select : function(index, scrollIntoView){this.selectedIndex = index;this.view.select(index);if(scrollIntoView !== false){var el = this.view.getNode(index);if(el){this.innerList.scrollChildIntoView(el, false);}}},selectNext : function(){var ct = this.store.getCount();if(ct > 0){if(this.selectedIndex == -1){this.select(0);}else if(this.selectedIndex < ct-1){this.select(this.selectedIndex+1);}}},selectPrev : function(){var ct = this.store.getCount();if(ct > 0){if(this.selectedIndex == -1){this.select(0);}else if(this.selectedIndex != 0){this.select(this.selectedIndex-1);}}},onKeyUp : function(e){if(this.editable !== false && !e.isSpecialKey()){this.lastKey = e.getKey();this.dqTask.delay(this.queryDelay);}},validateBlur : function(){return !this.list || !this.list.isVisible();},initQuery : function(){this.doQuery(this.getRawValue());},doForce : function(){if(this.el.dom.value.length > 0){this.el.dom.value =this.lastSelectionText === undefined ? '' : this.lastSelectionText;this.applyEmptyText();}},doQuery : function(q, forceAll){if(q === undefined || q === null){q = '';}var qe = {query: q,forceAll: forceAll,combo: this,cancel:false};if(this.fireEvent('beforequery', qe)===false || qe.cancel){return false;}q = qe.query;forceAll = qe.forceAll;if(forceAll === true || (q.length >= this.minChars)){if(this.lastQuery !== q){this.lastQuery = q;if(this.mode == 'local'){this.selectedIndex = -1;if(forceAll){this.store.clearFilter();}else{this.store.filter(this.displayField, q);}this.onLoad();}else{this.store.baseParams[this.queryParam] = q;this.store.load({params: this.getParams(q)});this.expand();}}else{this.selectedIndex = -1;this.onLoad();}}},getParams : function(q){var p = {};if(this.pageSize){p.start = 0;p.limit = this.pageSize;}return p;},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(e){if(!e.within(this.wrap) && !e.within(this.list)){this.collapse();}},expand : function(){if(this.isExpanded() || !this.hasFocus){return;}this.list.alignTo(this.wrap, this.listAlign);this.list.show();this.innerList.setOverflow('auto'); Ext.getDoc().on('mousewheel', this.collapseIf, this);Ext.getDoc().on('mousedown', this.collapseIf, this);this.fireEvent('expand', this);},onTriggerClick : function(){if(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,defaultAutoCreate : { tag: "input", type: 'checkbox', autocomplete: "off"},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.el.alignTo(this.wrap, 'c-c');}},initEvents : function(){Ext.form.Checkbox.superclass.initEvents.call(this);this.el.on("click", this.onClick, this);this.el.on("change", this.onClick, this);},getResizeEl : function(){return this.wrap;},getPositionEl : function(){return this.wrap;},markInvalid : Ext.emptyFn,clearInvalid : Ext.emptyFn,onRender : function(ct, position){Ext.form.Checkbox.superclass.onRender.call(this, ct, position);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;}},onDestroy : function(){if(this.wrap){this.wrap.remove();}Ext.form.Checkbox.superclass.onDestroy.call(this);},initValue : Ext.emptyFn,getValue : function(){if(this.rendered){return this.el.dom.checked;}return false;},onClick : function(){if(this.el.dom.checked != this.checked){this.setValue(this.el.dom.checked);}},setValue : function(v){this.checked = (v === true || v === 'true' || v == '1' || String(v).toLowerCase() == 'on');if(this.el && this.el.dom){this.el.dom.checked = this.checked;this.el.dom.defaultChecked = this.checked;}this.fireEvent("check", this, this.checked);}});Ext.reg('checkbox', Ext.form.Checkbox);Ext.form.Radio = Ext.extend(Ext.form.Checkbox, {inputType: 'radio',markInvalid : Ext.emptyFn,clearInvalid : Ext.emptyFn,getGroupValue : function(){var p = this.el.up('form') || Ext.getBody();var c = p.child('input[name='+this.el.dom.name+']:checked', true);return c ? c.value : null;},onClick : function(){if(this.el.dom.checked != this.checked){var p = this.el.up('form') || Ext.getBody();var els = p.select('input[name='+this.el.dom.name+']');els.each(function(el){if(el.dom.id == this.id){this.setValue(true);}else{Ext.getCmp(el.dom.id).setValue(false);}}, this);}},setValue : function(v){if (typeof v == 'boolean') {Ext.form.Radio.superclass.setValue.call(this, v);} else {var r = this.el.up('form').child('input[name='+this.el.dom.name+'][value='+v+']', true);if (r){r.checked = true;};}}});Ext.reg('radio', Ext.form.Radio);Ext.form.Hidden = Ext.extend(Ext.form.Field, {inputType : 'hidden',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 = function(el, config){Ext.apply(this, config);this.items = new Ext.util.MixedCollection(false, function(o){return o.id || (o.id = Ext.id());});this.addEvents('beforeaction','actionfailed','actioncomplete');if(el){this.initEl(el);}Ext.form.BasicForm.superclass.constructor.call(this);};Ext.extend(Ext.form.BasicForm, Ext.util.Observable, {timeout: 30,activeAction : null,trackResetOnLoad : false,initEl : function(el){this.el = Ext.get(el);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(e){e.stopEvent();},destroy: function() {this.items.each(function(f){Ext.destroy(f);});if(this.el){this.el.removeAllListeners();this.el.remove();}this.purgeListeners();},isValid : function(){var valid = true;this.items.each(function(f){if(!f.validate()){valid = false;}});return valid;},isDirty : function(){var dirty = false;this.items.each(function(f){if(f.isDirty()){dirty = true;return false;}});return dirty;},doAction : function(action, options){if(typeof action == 'string'){action = new Ext.form.Action.ACTION_TYPES[action](this, options);}if(this.fireEvent('beforeaction', this, action) !== false){this.beforeAction(action);action.run.defer(100, action);}return this;},submit : function(options){if(this.standardSubmit){var v = this.isValid();if(v){this.el.dom.submit();}return v;}this.doAction('submit', options);return this;},load : function(options){this.doAction('load', options);return this;},updateRecord : function(record){record.beginEdit();var fs = record.fields;fs.each(function(f){var field = this.findField(f.name);if(field){record.set(f.name, field.getValue());}}, this);record.endEdit();return this;},loadRecord : function(record){this.setValues(record.data);return this;},beforeAction : function(action){var o = action.options;if(o.waitMsg){if(this.waitMsgTarget === true){this.el.mask(o.waitMsg, 'x-mask-loading');}else if(this.waitMsgTarget){this.waitMsgTarget = Ext.get(this.waitMsgTarget);this.waitMsgTarget.mask(o.waitMsg, 'x-mask-loading');}else{Ext.MessageBox.wait(o.waitMsg, o.waitTitle || this.waitTitle || 'Please Wait...');}}},afterAction : function(action, success){this.activeAction = null;var o = action.options;if(o.waitMsg){if(this.waitMsgTarget === true){this.el.unmask();}else if(this.waitMsgTarget){this.waitMsgTarget.unmask();}else{Ext.MessageBox.updateProgress(1);Ext.MessageBox.hide();}}if(success){if(o.reset){this.reset();}Ext.callback(o.success, o.scope, [this, action]);this.fireEvent('actioncomplete', this, action);}else{Ext.callback(o.failure, o.scope, [this, action]);this.fireEvent('actionfailed', this, action);}},findField : function(id){var field = this.items.get(id);if(!field){this.items.each(function(f){if(f.isFormField && (f.dataIndex == id || f.id == id || f.getName() == id)){field = f;return false;}});}return field || null;},markInvalid : function(errors){if(Ext.isArray(errors)){for(var i = 0, len = errors.length; i < len; i++){var fieldError = errors[i];var f = this.findField(fieldError.id);if(f){f.markInvalid(fieldError.msg);}}}else{var field, id;for(id in errors){if(typeof errors[id] != 'function' && (field = this.findField(id))){field.markInvalid(errors[id]);}}}return this;},setValues : function(values){if(Ext.isArray(values)){ for(var i = 0, len = values.length; i < len; i++){var v = values[i];var f = this.findField(v.id);if(f){f.setValue(v.value);if(this.trackResetOnLoad){f.originalValue = f.getValue();}}}}else{ var field, id;for(id in values){if(typeof values[id] != 'function' && (field = this.findField(id))){field.setValue(values[id]);if(this.trackResetOnLoad){field.originalValue = field.getValue();}}}}return this;},getValues : function(asString){var fs = Ext.lib.Ajax.serializeForm(this.el.dom);if(asString === true){return fs;}return Ext.urlDecode(fs);},clearInvalid : function(){this.items.each(function(f){f.clearInvalid();});return this;},reset : function(){this.items.each(function(f){f.reset();});return this;},add : function(){this.items.addAll(Array.prototype.slice.call(arguments, 0));return this;},remove : function(field){this.items.remove(field);return this;},render : function(){this.items.each(function(f){if(f.isFormField && !f.rendered && document.getElementById(f.id)){ f.applyToMarkup(f.id);}});return this;},applyToFields : function(o){this.items.each(function(f){Ext.apply(f, o);});return this;},applyIfToFields : function(o){this.items.each(function(f){Ext.applyIf(f, o);});return this;}});Ext.BasicForm = Ext.form.BasicForm;Ext.FormPanel = Ext.extend(Ext.Panel, {buttonAlign:'center',minButtonWidth:75,labelAlign:'left',monitorValid : false,monitorPoll : 200,layout: 'form',initComponent :function(){this.form = this.createForm();Ext.FormPanel.superclass.initComponent.call(this);this.addEvents('clientvalidation');this.relayEvents(this.form, ['beforeaction', 'actionfailed', 'actioncomplete']);},createForm: function(){delete this.initialConfig.listeners;return new Ext.form.BasicForm(null, this.initialConfig);},initFields : function(){var f = this.form;var formPanel = this;var fn = function(c){if(c.doLayout && c != formPanel){Ext.applyIf(c, {labelAlign: c.ownerCt.labelAlign,labelWidth: c.ownerCt.labelWidth,itemCls: c.ownerCt.itemCls});if(c.items){c.items.each(fn);}}else if(c.isFormField){f.add(c);}}this.items.each(fn);},getLayoutTarget : function(){return this.form.el;},getForm : function(){return this.form;},onRender : function(ct, position){this.initFields();Ext.FormPanel.superclass.onRender.call(this, ct, position);var o = {tag: 'form',method : this.method || 'POST',id : this.formId || Ext.id()};if(this.fileUpload) {o.enctype = 'multipart/form-data';}this.form.initEl(this.body.createChild(o));},beforeDestroy: function(){Ext.FormPanel.superclass.beforeDestroy.call(this);Ext.destroy(this.form);},initEvents : function(){Ext.FormPanel.superclass.initEvents.call(this);this.items.on('remove', this.onRemove, this);this.items.on('add', this.onAdd, this);if(this.monitorValid){ this.startMonitoring();}},onAdd : function(ct, c) {if (c.isFormField) {this.form.add(c);}},onRemove : function(c) {if (c.isFormField) {Ext.destroy(c.container.up('.x-form-item'));this.form.remove(c);}},startMonitoring : function(){if(!this.bound){this.bound = true;Ext.TaskMgr.start({run : this.bindHandler,interval : this.monitorPoll || 200,scope: this});}},stopMonitoring : function(){this.bound = false;},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(){if(!this.bound){return false; }var valid = true;this.form.items.each(function(f){if(!f.isValid(true)){valid = false;return false;}});if(this.buttons){for(var i = 0, len = this.buttons.length; i < len; i++){var btn = this.buttons[i];if(btn.formBind === true && btn.disabled === valid){btn.setDisabled(!valid);}}}this.fireEvent('clientvalidation', this, valid);}});Ext.reg('form', Ext.FormPanel);Ext.form.FormPanel = Ext.FormPanel;Ext.form.FieldSet = Ext.extend(Ext.Panel, {baseCls:'x-fieldset',layout: 'form',onRender : function(ct, position){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 = 'x-fieldset-header';}}Ext.form.FieldSet.superclass.onRender.call(this, ct, position);if(this.checkboxToggle){var o = typeof this.checkboxToggle == 'object' ?this.checkboxToggle :{tag: 'input', type: 'checkbox', name: this.checkboxName || this.id+'-checkbox'};this.checkbox = this.header.insertFirst(o);this.checkbox.dom.checked = !this.collapsed;this.checkbox.on('click', this.onCheckClick, this);}},onCollapse : function(doAnim, animArg){if(this.checkbox){this.checkbox.dom.checked = false;}this.afterCollapse();},onExpand : function(doAnim, animArg){if(this.checkbox){this.checkbox.dom.checked = true;}this.afterExpand();},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',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')},createFontOptions : function(){var buf = [], fs = this.fontFamilies, ff, lc;for(var i = 0, len = fs.length; i< len; i++){ff = fs[i];lc = ff.toLowerCase();buf.push('<option value="',lc,'" style="font-family:',ff,';"',(this.defaultFont == lc ? ' selected="true">' : '>'),ff,'</option>');}return buf.join('');},createToolbar : function(editor){function btn(id, toggle, handler){return {itemId : id,cls : 'x-btn-icon x-edit-'+id,enableToggle:toggle !== false,scope: editor,handler:handler||editor.relayBtnCmd,clickEvent:'mousedown',tooltip: editor.buttonTips[id] || undefined,tabIndex:-1};}var tb = new Ext.Toolbar({renderTo:this.wrap.dom.firstChild});tb.el.on('click', function(e){e.preventDefault();});if(this.enableFont && !Ext.isSafari){this.fontSelect = tb.el.createChild({tag:'select',cls:'x-font-select',html: this.createFontOptions()});this.fontSelect.on('change', function(){var font = this.fontSelect.dom.value;this.relayCmd('fontname', font);this.deferFocus();}, this);tb.add(this.fontSelect.dom,'-');};if(this.enableFormat){tb.add(btn('bold'),btn('italic'),btn('underline'));};if(this.enableFontSize){tb.add('-',btn('increasefontsize', false, this.adjustFont),btn('decreasefontsize', false, this.adjustFont));};if(this.enableColors){tb.add('-', {itemId:'forecolor',cls:'x-btn-icon x-edit-forecolor',clickEvent:'mousedown',tooltip: editor.buttonTips['forecolor'] || undefined,tabIndex:-1,menu : new Ext.menu.ColorMenu({allowReselect: true,focus: Ext.emptyFn,value:'000000',plain:true,selectHandler: function(cp, color){this.execCmd('forecolor', Ext.isSafari || Ext.isIE ? '#'+color : color);this.deferFocus();},scope: this,clickEvent:'mousedown'})}, {itemId:'backcolor',cls:'x-btn-icon x-edit-backcolor',clickEvent:'mousedown',tooltip: editor.buttonTips['backcolor'] || undefined,tabIndex:-1,menu : new Ext.menu.ColorMenu({focus: Ext.emptyFn,value:'FFFFFF',plain:true,allowReselect: true,selectHandler: function(cp, color){if(Ext.isGecko){this.execCmd('useCSS', false);this.execCmd('hilitecolor', color);this.execCmd('useCSS', true);this.deferFocus();}else{this.execCmd(Ext.isOpera ? 'hilitecolor' : 'backcolor', Ext.isSafari || Ext.isIE ? '#'+color : color);this.deferFocus();}},scope:this,clickEvent:'mousedown'})});};if(this.enableAlignments){tb.add('-',btn('justifyleft'),btn('justifycenter'),btn('justifyright'));};if(!Ext.isSafari){if(this.enableLinks){tb.add('-',btn('createlink', false, this.createLink));};if(this.enableLists){tb.add('-',btn('insertorderedlist'),btn('insertunorderedlist'));}if(this.enableSourceEdit){tb.add('-',btn('sourceedit', true, function(btn){this.toggleSourceEdit(btn.pressed);}));}}this.tb = tb;},getDocMarkup : function(){return '<html><head><style type="text/css">body{border:0;margin:0;padding:3px;height:98%;cursor:text;}</style></head><body></body></html>';},getEditorBody : function(){return this.doc.body || this.doc.documentElement;},onRender : function(ct, position){Ext.form.HtmlEditor.superclass.onRender.call(this, ct, position);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.tb.items.each(function(item){if(item.itemId != 'sourceedit'){item.disable();}});var iframe = document.createElement('iframe');iframe.name = Ext.id();iframe.frameBorder = 'no';iframe.src=(Ext.SSL_SECURE_URL || "javascript:false");this.wrap.dom.appendChild(iframe);this.iframe = iframe;if(Ext.isIE){iframe.contentWindow.document.designMode = 'on';this.doc = iframe.contentWindow.document;this.win = iframe.contentWindow;} else {this.doc = (iframe.contentDocument || window.frames[iframe.name].document);this.win = window.frames[iframe.name];this.doc.designMode = 'on';}this.doc.open();this.doc.write(this.getDocMarkup())this.doc.close();var task = {run : function(){if(this.doc.body || this.doc.readyState == 'complete'){Ext.TaskMgr.stop(task);this.doc.designMode="on";this.initEditor.defer(10, this);}},interval : 10,duration:10000,scope: this};Ext.TaskMgr.start(task);if(!this.width){this.setSize(this.el.getSize());}},onResize : function(w, h){Ext.form.HtmlEditor.superclass.onResize.apply(this, arguments);if(this.el && this.iframe){if(typeof w == 'number'){var aw = w - this.wrap.getFrameWidth('lr');this.el.setWidth(this.adjustWidth('textarea', aw));this.iframe.style.width = aw + 'px';}if(typeof h == 'number'){var ah = h - this.wrap.getFrameWidth('tb') - this.tb.el.getHeight();this.el.setHeight(this.adjustWidth('textarea', ah));this.iframe.style.height = ah + 'px';if(this.doc){this.getEditorBody().style.height = (ah - (this.iframePad*2)) + 'px';}}}},toggleSourceEdit : function(sourceEditMode){if(sourceEditMode === undefined){sourceEditMode = !this.sourceEditMode;}this.sourceEditMode = sourceEditMode === true;var btn = this.tb.items.get('sourceedit');if(btn.pressed !== this.sourceEditMode){btn.toggle(this.sourceEditMode);return;}if(this.sourceEditMode){this.tb.items.each(function(item){if(item.itemId != 'sourceedit'){item.disable();}});this.syncValue();this.iframe.className = 'x-hidden';this.el.removeClass('x-hidden');this.el.dom.removeAttribute('tabIndex');this.el.focus();}else{if(this.initialized){this.tb.items.each(function(item){item.enable();});}this.pushValue();this.iframe.className = '';this.el.addClass('x-hidden');this.el.dom.setAttribute('tabIndex', -1);this.deferFocus();}var lastSize = this.lastSize;if(lastSize){delete this.lastSize;this.setSize(lastSize);}this.fireEvent('editmodechange', this, this.sourceEditMode);},createLink : function(){var url = prompt(this.createLinkText, this.defaultLinkValue);if(url && url != 'http:/'+'/'){this.relayCmd('createlink', url);}},adjustSize : Ext.BoxComponent.prototype.adjustSize,getResizeEl : function(){return this.wrap;},getPositionEl : function(){return this.wrap;},initEvents : function(){this.originalValue = this.getValue();},markInvalid : Ext.emptyFn,clearInvalid : Ext.emptyFn,setValue : function(v){Ext.form.HtmlEditor.superclass.setValue.call(this, v);this.pushValue();},cleanHtml : function(html){html = String(html);if(html.length > 5){if(Ext.isSafari){html = html.replace(/\sclass="(?:Apple-style-span|khtml-block-placeholder)"/gi, '');}}if(html == ' '){html = '';}return html;},syncValue : function(){if(this.initialized){var bd = this.getEditorBody();var html = bd.innerHTML;if(Ext.isSafari){var bs = bd.getAttribute('style');var m = bs.match(/text-align:(.*?);/i);if(m && m[1]){html = '<div style="'+m[0]+'">' + html + '</div>';}}html = this.cleanHtml(html);if(this.fireEvent('beforesync', this, html) !== false){this.el.dom.value = html;this.fireEvent('sync', this, html);}}},pushValue : function(){if(this.initialized){var v = this.el.dom.value;if(!this.activated && v.length < 1){v = ' ';}if(this.fireEvent('beforepush', this, v) !== false){this.getEditorBody().innerHTML = v;this.fireEvent('push', this, v);}}},deferFocus : function(){this.focus.defer(10, this);},focus : function(){if(this.win && !this.sourceEditMode){this.win.focus();}else{this.el.focus();}},initEditor : function(){var dbody = this.getEditorBody();var ss = this.el.getStyles('font-size', 'font-family', 'background-image', 'background-repeat');ss['background-attachment'] = 'fixed';dbody.bgProperties = 'fixed';Ext.DomHelper.applyStyles(dbody, ss);Ext.EventManager.on(this.doc, {'mousedown': this.onEditorEvent,'dblclick': this.onEditorEvent,'click': this.onEditorEvent,'keyup': this.onEditorEvent,buffer:100,scope: this});if(Ext.isGecko){Ext.EventManager.on(this.doc, 'keypress', this.applyCommand, this);}if(Ext.isIE || Ext.isSafari || Ext.isOpera){Ext.EventManager.on(this.doc, 'keydown', this.fixKeys, this);}this.initialized = true;this.fireEvent('initialize', this);this.pushValue();},onDestroy : function(){if(this.rendered){this.tb.items.each(function(item){if(item.menu){item.menu.removeAll();if(item.menu.el){item.menu.el.destroy();}}item.destroy();});this.wrap.dom.innerHTML = '';this.wrap.remove();}},onFirstFocus : function(){this.activated = true;this.tb.items.each(function(item){item.enable();});if(Ext.isGecko){this.win.focus();var s = this.win.getSelection();if(!s.focusNode || s.focusNode.nodeType != 3){var r = s.getRangeAt(0);r.selectNodeContents(this.getEditorBody());r.collapse(true);this.deferFocus();}try{this.execCmd('useCSS', true);this.execCmd('styleWithCSS', false);}catch(e){}}this.fireEvent('activate', this);},adjustFont: function(btn){var adjust = btn.itemId == 'increasefontsize' ? 1 : -1;var v = parseInt(this.doc.queryCommandValue('FontSize') || 2, 10);if(Ext.isSafari3 || Ext.isAir){if(v <= 10){v = 1 + adjust;}else if(v <= 13){v = 2 + adjust;}else if(v <= 16){v = 3 + adjust;}else if(v <= 18){v = 4 + adjust;}else if(v <= 24){v = 5 + adjust;}else {v = 6 + adjust;}v = v.constrain(1, 6);}else{if(Ext.isSafari){adjust *= 2;}v = Math.max(1, v+adjust) + (Ext.isSafari ? 'px' : 0);}this.execCmd('FontSize', v);},onEditorEvent : function(e){this.updateToolbar();},updateToolbar: function(){if(!this.activated){this.onFirstFocus();return;}var btns = this.tb.items.map, doc = this.doc;if(this.enableFont && !Ext.isSafari){var name = (this.doc.queryCommandValue('FontName')||this.defaultFont).toLowerCase();if(name != this.fontSelect.dom.value){this.fontSelect.dom.value = name;}}if(this.enableFormat){btns.bold.toggle(doc.queryCommandState('bold'));btns.italic.toggle(doc.queryCommandState('italic'));btns.underline.toggle(doc.queryCommandState('underline'));}if(this.enableAlignments){btns.justifyleft.toggle(doc.queryCommandState('justifyleft'));btns.justifycenter.toggle(doc.queryCommandState('justifycenter'));btns.justifyright.toggle(doc.queryCommandState('justifyright'));}if(!Ext.isSafari && this.enableLists){btns.insertorderedlist.toggle(doc.queryCommandState('insertorderedlist'));btns.insertunorderedlist.toggle(doc.queryCommandState('insertunorderedlist'));}Ext.menu.MenuMgr.hideAll();this.syncValue();},relayBtnCmd : function(btn){this.relayCmd(btn.itemId);},relayCmd : function(cmd, value){this.win.focus();this.execCmd(cmd, value);this.updateToolbar();this.deferFocus();},execCmd : function(cmd, value){this.doc.execCommand(cmd, false, value === undefined ? null : value);this.syncValue();},applyCommand : function(e){if(e.ctrlKey){var c = e.getCharCode(), cmd;if(c > 0){c = String.fromCharCode(c);switch(c){case 'b':cmd = 'bold';break;case 'i':cmd = 'italic';break;case 'u':cmd = 'underline';break;}if(cmd){this.win.focus();this.execCmd(cmd);this.deferFocus();e.preventDefault();}}}},insertAtCursor : function(text){if(!this.activated){return;}if(Ext.isIE){this.win.focus();var r = this.doc.selection.createRange();if(r){r.collapse(true);r.pasteHTML(text);this.syncValue();this.deferFocus();}}else if(Ext.isGecko || Ext.isOpera){this.win.focus();this.execCmd('InsertHTML', text);this.deferFocus();}else if(Ext.isSafari){this.execCmd('InsertText', text);this.deferFocus();}},fixKeys : function(){if(Ext.isIE){return function(e){var k = e.getKey(), r;if(k == e.TAB){e.stopEvent();r = this.doc.selection.createRange();if(r){r.collapse(true);r.pasteHTML(' ');this.deferFocus();}}else if(k == e.ENTER){r = this.doc.selection.createRange();if(r){var target = r.parentElement();if(!target || target.tagName.toLowerCase() != 'li'){e.stopEvent();r.pasteHTML('<br />');r.collapse(false);r.select();}}}};}else if(Ext.isOpera){return function(e){var k = e.getKey();if(k == e.TAB){e.stopEvent();this.win.focus();this.execCmd('InsertHTML',' ');this.deferFocus();}};}else if(Ext.isSafari){return function(e){var k = e.getKey();if(k == e.TAB){e.stopEvent();this.execCmd('InsertText','\t');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 : null,maxValue : null,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",increment: 15,mode: 'local',triggerAction: 'all',typeAhead: false,initComponent : function(){Ext.form.TimeField.superclass.initComponent.call(this);if(typeof this.minValue == "string"){this.minValue = this.parseDate(this.minValue);}if(typeof this.maxValue == "string"){this.maxValue = this.parseDate(this.maxValue);}if(!this.store){var min = this.parseDate(this.minValue);if(!min){min = new Date().clearTime();}var max = this.parseDate(this.maxValue);if(!max){max = new Date().clearTime().add('mi', (24 * 60) - 1);}var times = [];while(min <= max){times.push([min.dateFormat(this.format)]);min = min.add('mi', this.increment);}this.store = new Ext.data.SimpleStore({fields: ['text'],data : times});this.displayField = 'text';}},getValue : function(){var v = Ext.form.TimeField.superclass.getValue.call(this);return this.formatDate(this.parseDate(v)) || '';},setValue : function(value){Ext.form.TimeField.superclass.setValue.call(this, this.formatDate(this.parseDate(value)));},validateValue : Ext.form.DateField.prototype.validateValue,parseDate : Ext.form.DateField.prototype.parseDate,formatDate : Ext.form.DateField.prototype.formatDate,beforeBlur : function(){var v = this.parseDate(this.getRawValue());if(v){this.setValue(v.dateFormat(this.format));}}});Ext.reg('timefield', Ext.form.TimeField);Ext.form.Label = Ext.extend(Ext.BoxComponent, {onRender : function(ct, position){if(!this.el){this.el = document.createElement('label');this.el.innerHTML = this.text ? Ext.util.Format.htmlEncode(this.text) : (this.html || '');if(this.forId){this.el.setAttribute('htmlFor', this.forId);}}Ext.form.Label.superclass.onRender.call(this, ct, position);}});Ext.reg('label', Ext.form.Label);Ext.form.Action = function(form, options){this.form = form;this.options = options || {};};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(options){},success : function(response){},handleResponse : function(response){},failure : function(response){this.response = response;this.failureType = Ext.form.Action.CONNECT_FAILURE;this.form.afterAction(this, false);},processResponse : function(response){this.response = response;if(!response.responseText){return true;}this.result = this.handleResponse(response);return this.result;},getUrl : function(appendParams){var url = this.options.url || this.form.url || this.form.el.dom.action;if(appendParams){var p = this.getParams();if(p){url += (url.indexOf('?') != -1 ? '&' : '?') + p;}}return url;},getMethod : function(){return (this.options.method || this.form.method || this.form.el.dom.method || 'POST').toUpperCase();},getParams : function(){var bp = this.form.baseParams;var p = this.options.params;if(p){if(typeof p == "object"){p = Ext.urlEncode(Ext.applyIf(p, bp));}else if(typeof p == 'string' && bp){p += '&' + Ext.urlEncode(bp);}}else if(bp){p = Ext.urlEncode(bp);}return p;},createCallback : function(opts){var opts = opts || {};return {success: this.success,failure: this.failure,scope: this,timeout: (opts.timeout*1000) || (this.form.timeout*1000),upload: this.form.fileUpload ? this.success : undefined};}};Ext.form.Action.Submit = function(form, options){Ext.form.Action.Submit.superclass.constructor.call(this, form, options);};Ext.extend(Ext.form.Action.Submit, Ext.form.Action, {type : 'submit',run : function(){var o = this.options;var method = this.getMethod();var isPost = method == 'POST';if(o.clientValidation === false || this.form.isValid()){Ext.Ajax.request(Ext.apply(this.createCallback(o), {form:this.form.el.dom,url:this.getUrl(!isPost),method: method,params:isPost ? this.getParams() : null,isUpload: this.form.fileUpload}));}else if (o.clientValidation !== false){ this.failureType = Ext.form.Action.CLIENT_INVALID;this.form.afterAction(this, false);}},success : function(response){var result = this.processResponse(response);if(result === true || result.success){this.form.afterAction(this, true);return;}if(result.errors){this.form.markInvalid(result.errors);this.failureType = Ext.form.Action.SERVER_INVALID;}this.form.afterAction(this, false);},handleResponse : function(response){if(this.form.errorReader){var rs = this.form.errorReader.read(response);var errors = [];if(rs.records){for(var i = 0, len = rs.records.length; i < len; i++) {var r = rs.records[i];errors[i] = r.data;}}if(errors.length < 1){errors = null;}return {success : rs.success,errors : errors};}return Ext.decode(response.responseText);}});Ext.form.Action.Load = function(form, options){Ext.form.Action.Load.superclass.constructor.call(this, form, options);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),params:this.getParams()}));},success : function(response){var result = this.processResponse(response);if(result === true || !result.success || !result.data){this.failureType = Ext.form.Action.LOAD_FAILURE;this.form.afterAction(this, false);return;}this.form.clearInvalid();this.form.setValues(result.data);this.form.afterAction(this, true);},handleResponse : function(response){if(this.form.reader){var rs = this.form.reader.read(response);var data = rs.records && rs.records[0] ? rs.records[0].data : null;return {success : rs.success,data : data};}return Ext.decode(response.responseText);}});Ext.form.Action.ACTION_TYPES = {'load' : Ext.form.Action.Load,'submit' : Ext.form.Action.Submit};Ext.form.VTypes = function(){var alpha = /^[a-zA-Z_]+$/;var alphanum = /^[a-zA-Z0-9_]+$/;var email = /^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,4}$/;var url = /(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i;return {'email' : function(v){return email.test(v);},'emailText' : 'This field should be an e-mail address in the format "user@domain.com"','emailMask' : /[a-z0-9_\.\-@]/i,'url' : function(v){return url.test(v);},'urlText' : 'This field should be a URL in the format "http:/'+'/www.domain.com"','alpha' : function(v){return alpha.test(v);},'alphaText' : 'This field should only contain letters and _','alphaMask' : /[a-z_]/i,'alphanum' : function(v){return alphanum.test(v);},'alphanumText' : 'This field should only contain letters, numbers and _','alphanumMask' : /[a-z0-9_]/i};}();Ext.grid.GridPanel = Ext.extend(Ext.Panel, {ddText : "{0} selected row{1}",minColumnWidth : 25,trackMouseOver : true,enableDragDrop : false,enableColumnMove : true,enableColumnHide : true,enableHdMenu : true,stripeRows : false,autoExpandColumn : false,autoExpandMin : 50,autoExpandMax : 1000,view : null,loadMask : false,rendered : false,viewReady: false,stateEvents: ["columnmove", "columnresize", "sortchange"],initComponent : function(){Ext.grid.GridPanel.superclass.initComponent.call(this);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","cellclick","celldblclick","rowclick","rowdblclick","headerclick","headerdblclick","rowcontextmenu","cellcontextmenu","headercontextmenu","bodyscroll","columnresize","columnmove","sortchange");},onRender : function(ct, position){Ext.grid.GridPanel.superclass.onRender.apply(this, arguments);var c = this.body;this.el.addClass('x-grid-panel');var view = this.getView();view.init(this);c.on("mousedown", this.onMouseDown, this);c.on("click", this.onClick, this);c.on("dblclick", this.onDblClick, this);c.on("contextmenu", this.onContextMenu, this);c.on("keydown", this.onKeyDown, this);this.relayEvents(c, ["mousedown","mouseup","mouseover","mouseout","keypress"]);this.getSelectionModel().init(this);this.view.render();},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.colModel.on('hiddenchange', this.saveState, this, {delay: 100});},applyState : function(state){var cm = this.colModel;var cs = state.columns;if(cs){for(var i = 0, len = cs.length; i < len; i++){var s = cs[i];var c = cm.getColumnById(s.id);if(c){c.hidden = s.hidden;c.width = s.width;var oldIndex = cm.getIndexById(s.id);if(oldIndex != i){cm.moveColumn(oldIndex, i);}}}}if(state.sort){this.store[this.store.remoteSort ? 'setDefaultSort' : 'sort'](state.sort.field, state.sort.direction);}},getState : function(){var o = {columns: []};for(var i = 0, c; c = this.colModel.config[i]; i++){o.columns[i] = {id: c.id,width: c.width};if(c.hidden){o.columns[i].hidden = true;}}var ss = this.store.getSortState();if(ss){o.sort = ss;}return o;},afterRender : function(){Ext.grid.GridPanel.superclass.afterRender.call(this);this.view.layout();this.viewReady = true;},reconfigure : function(store, colModel){if(this.loadMask){this.loadMask.destroy();this.loadMask = new Ext.LoadMask(this.bwrap,Ext.apply({store:store}, this.initialConfig.loadMask));}this.view.bind(store, colModel);this.store = store;this.colModel = colModel;if(this.rendered){this.view.refresh(true);}},onKeyDown : function(e){this.fireEvent("keydown", e);},onDestroy : function(){if(this.rendered){if(this.loadMask){this.loadMask.destroy();}var c = this.body;c.removeAllListeners();this.view.destroy();c.update("");}this.colModel.purgeListeners();Ext.grid.GridPanel.superclass.onDestroy.call(this);},processEvent : function(name, e){this.fireEvent(name, e);var t = e.getTarget();var v = this.view;var header = v.findHeaderIndex(t);if(header !== false){this.fireEvent("header" + name, this, header, e);}else{var row = v.findRowIndex(t);var cell = v.findCellIndex(t);if(row !== false){this.fireEvent("row" + name, this, row, e);if(cell !== false){this.fireEvent("cell" + name, this, row, cell, e);}}}},onClick : function(e){this.processEvent("click", e);},onMouseDown : function(e){this.processEvent("mousedown", e);},onContextMenu : function(e, t){this.processEvent("contextmenu", e);},onDblClick : function(e){this.processEvent("dblclick", e);},walkCells : function(row, col, step, fn, scope){var cm = this.colModel, clen = cm.getColumnCount();var ds = this.store, rlen = ds.getCount(), first = true;if(step < 0){if(col < 0){row--;first = false;}while(row >= 0){if(!first){col = clen-1;}first = false;while(col >= 0){if(fn.call(scope || this, row, col, cm) === true){return [row, col];}col--;}row--;}} else {if(col >= clen){row++;first = false;}while(row < rlen){if(!first){col = 0;}first = false;while(col < clen){if(fn.call(scope || this, row, col, cm) === true){return [row, col];}col++;}row++;}}return null;},getSelections : function(){return this.selModel.getSelections();},onResize : function(){Ext.grid.GridPanel.superclass.onResize.apply(this, arguments);if(this.viewReady){this.view.layout();}},getGridEl : function(){return this.body;},stopEditing : function(){},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 count = this.selModel.getCount();return String.format(this.ddText, count, count == 1 ? '' : 's');}});Ext.reg('grid', Ext.grid.GridPanel);Ext.grid.GridView = function(config){Ext.apply(this, config);this.addEvents("beforerowremoved","beforerowsinserted","beforerefresh","rowremoved","rowsinserted","rowupdated","refresh");Ext.grid.GridView.superclass.constructor.call(this);};Ext.extend(Ext.grid.GridView, Ext.util.Observable, {scrollOffset: 19,autoFill: false,forceFit: false,sortClasses : ["sort-asc", "sort-desc"],sortAscText : "Sort Ascending",sortDescText : "Sort Descending",columnsText : "Columns",borderWidth: 2,initTemplates : function(){var ts = this.templates || {};if(!ts.master){ts.master = new Ext.Template('<div class="x-grid3" hidefocus="true">','<div class="x-grid3-viewport">','<div class="x-grid3-header"><div class="x-grid3-header-inner"><div class="x-grid3-header-offset">{header}</div></div><div class="x-clear"></div></div>','<div class="x-grid3-scroller"><div class="x-grid3-body">{body}</div><a href="#" class="x-grid3-focus" tabIndex="-1"></a></div>',"</div>",'<div class="x-grid3-resize-marker"> </div>','<div class="x-grid3-resize-proxy"> </div>',"</div>");}if(!ts.header){ts.header = new Ext.Template('<table border="0" cellspacing="0" cellpadding="0" style="{tstyle}">','<thead><tr class="x-grid3-hd-row">{cells}</tr></thead>',"</table>");}if(!ts.hcell){ts.hcell = new Ext.Template('<td class="x-grid3-hd x-grid3-cell x-grid3-td-{id}" style="{style}"><div {tooltip} {attr} class="x-grid3-hd-inner x-grid3-hd-{id}" unselectable="on" style="{istyle}">', this.grid.enableHdMenu ? '<a class="x-grid3-hd-btn" href="#"></a>' : '','{value}<img class="x-grid3-sort-icon" src="', Ext.BLANK_IMAGE_URL, '" />',"</div></td>");}if(!ts.body){ts.body = new Ext.Template('{rows}');}if(!ts.row){ts.row = new Ext.Template('<div class="x-grid3-row {alt}" style="{tstyle}"><table class="x-grid3-row-table" border="0" cellspacing="0" cellpadding="0" style="{tstyle}">','<tbody><tr>{cells}</tr>',(this.enableRowBody ? '<tr class="x-grid3-row-body-tr" style="{bodyStyle}"><td colspan="{cols}" class="x-grid3-body-cell" tabIndex="0" hidefocus="on"><div class="x-grid3-row-body">{body}</div></td></tr>' : ''),'</tbody></table></div>');}if(!ts.cell){ts.cell = new Ext.Template('<td class="x-grid3-col x-grid3-cell x-grid3-td-{id} {css}" style="{style}" tabIndex="0" {cellAttr}>','<div class="x-grid3-cell-inner x-grid3-col-{id}" unselectable="on" {attr}>{value}</div>',"</td>");}for(var k in ts){var t = ts[k];if(t && typeof t.compile == 'function' && !t.compiled){t.disableFormats = true;t.compile();}}this.templates = ts;this.tdClass = 'x-grid3-cell';this.cellSelector = 'td.x-grid3-cell';this.hdCls = 'x-grid3-hd';this.rowSelector = 'div.x-grid3-row';this.colRe = new RegExp("x-grid3-td-([^\\s]+)", "");},fly : function(el){if(!this._flyweight){this._flyweight = new Ext.Element.Flyweight(document.body);}this._flyweight.dom = el;return this._flyweight;},getEditorParent : function(ed){return this.scroller.dom;},initElements : function(){var E = Ext.Element;var el = this.grid.getGridEl().dom.firstChild;var cs = el.childNodes;this.el = new E(el);this.mainWrap = new E(cs[0]);this.mainHd = new E(this.mainWrap.dom.firstChild);if(this.grid.hideHeaders){this.mainHd.setDisplayed(false);}this.innerHd = this.mainHd.dom.firstChild;this.scroller = new E(this.mainWrap.dom.childNodes[1]);if(this.forceFit){this.scroller.setStyle('overflow-x', 'hidden');}this.mainBody = new E(this.scroller.dom.firstChild);this.focusEl = new E(this.scroller.dom.childNodes[1]);this.focusEl.swallowEvent("click", true);this.resizeMarker = new E(cs[1]);this.resizeProxy = new E(cs[2]);},getRows : function(){return this.hasRows() ? this.mainBody.dom.childNodes : [];},findCell : function(el){if(!el){return false;}return this.fly(el).findParent(this.cellSelector, 3);},findCellIndex : function(el, requiredCls){var cell = this.findCell(el);if(cell && (!requiredCls || this.fly(cell).hasClass(requiredCls))){return this.getCellIndex(cell);}return false;},getCellIndex : function(el){if(el){var m = el.className.match(this.colRe);if(m && m[1]){return this.cm.getIndexById(m[1]);}}return false;},findHeaderCell : function(el){var cell = this.findCell(el);return cell && this.fly(cell).hasClass(this.hdCls) ? cell : null;},findHeaderIndex : function(el){return this.findCellIndex(el, this.hdCls);},findRow : function(el){if(!el){return false;}return this.fly(el).findParent(this.rowSelector, 10);},findRowIndex : function(el){var r = this.findRow(el);return r ? r.rowIndex : false;},getRow : function(row){return this.getRows()[row];},getCell : function(row, col){return this.getRow(row).getElementsByTagName('td')[col];},getHeaderCell : function(index){return this.mainHd.dom.getElementsByTagName('td')[index];},addRowClass : function(row, cls){var r = this.getRow(row);if(r){this.fly(r).addClass(cls);}},removeRowClass : function(row, cls){var r = this.getRow(row);if(r){this.fly(r).removeClass(cls);}},removeRow : function(row){Ext.removeNode(this.getRow(row));},removeRows : function(firstRow, lastRow){var bd = this.mainBody.dom;for(var rowIndex = firstRow; rowIndex <= lastRow; rowIndex++){Ext.removeNode(bd.childNodes[firstRow]);}},getScrollState : function(){var sb = this.scroller.dom;return {left: sb.scrollLeft, top: sb.scrollTop};},restoreScroll : function(state){var sb = this.scroller.dom;sb.scrollLeft = state.left;sb.scrollTop = state.top;},scrollToTop : function(){this.scroller.dom.scrollTop = 0;this.scroller.dom.scrollLeft = 0;},syncScroll : function(){this.syncHeaderScroll();var mb = this.scroller.dom;this.grid.fireEvent("bodyscroll", mb.scrollLeft, mb.scrollTop);},syncHeaderScroll : function(){var mb = this.scroller.dom;this.innerHd.scrollLeft = mb.scrollLeft;this.innerHd.scrollLeft = mb.scrollLeft; },updateSortIcon : function(col, dir){var sc = this.sortClasses;var hds = this.mainHd.select('td').removeClass(sc);hds.item(col).addClass(sc[dir == "DESC" ? 1 : 0]);},updateAllColumnWidths : function(){var tw = this.getTotalWidth();var clen = this.cm.getColumnCount();var ws = [];for(var i = 0; i < clen; i++){ws[i] = this.getColumnWidth(i);}this.innerHd.firstChild.firstChild.style.width = tw;for(var i = 0; i < clen; i++){var hd = this.getHeaderCell(i);hd.style.width = ws[i];}var ns = this.getRows();for(var i = 0, len = ns.length; i < len; i++){ns[i].style.width = tw;ns[i].firstChild.style.width = tw;var row = ns[i].firstChild.rows[0];for(var j = 0; j < clen; j++){row.childNodes[j].style.width = ws[j];}}this.onAllColumnWidthsUpdated(ws, tw);},updateColumnWidth : function(col, width){var w = this.getColumnWidth(col);var tw = this.getTotalWidth();this.innerHd.firstChild.firstChild.style.width = tw;var hd = this.getHeaderCell(col);hd.style.width = w;var ns = this.getRows();for(var i = 0, len = ns.length; i < len; i++){ns[i].style.width = tw;ns[i].firstChild.style.width = tw;ns[i].firstChild.rows[0].childNodes[col].style.width = w;}this.onColumnWidthUpdated(col, w, tw);},updateColumnHidden : function(col, hidden){var tw = this.getTotalWidth();this.innerHd.firstChild.firstChild.style.width = tw;var display = hidden ? 'none' : '';var hd = this.getHeaderCell(col);hd.style.display = display;var ns = this.getRows();for(var i = 0, len = ns.length; i < len; i++){ns[i].style.width = tw;ns[i].firstChild.style.width = tw;ns[i].firstChild.rows[0].childNodes[col].style.display = display;}this.onColumnHiddenUpdated(col, hidden, tw);delete this.lastViewWidth; this.layout();},doRender : function(cs, rs, ds, startRow, colCount, stripe){var ts = this.templates, ct = ts.cell, rt = ts.row, last = colCount-1;var tstyle = 'width:'+this.getTotalWidth()+';';var buf = [], cb, c, p = {}, rp = {tstyle: tstyle}, r;for(var j = 0, len = rs.length; j < len; j++){r = rs[j]; cb = [];var rowIndex = (j+startRow);for(var i = 0; i < colCount; i++){c = cs[i];p.id = c.id;p.css = i == 0 ? 'x-grid3-cell-first ' : (i == last ? 'x-grid3-cell-last ' : '');p.attr = p.cellAttr = "";p.value = c.renderer(r.data[c.name], p, r, rowIndex, i, ds);p.style = c.style;if(p.value == undefined || p.value === "") p.value = " ";if(r.dirty && typeof r.modified[c.name] !== 'undefined'){p.css += ' x-grid3-dirty-cell';}cb[cb.length] = ct.apply(p);}var alt = [];if(stripe && ((rowIndex+1) % 2 == 0)){alt[0] = "x-grid3-row-alt";}if(r.dirty){alt[1] = " x-grid3-dirty-row";}rp.cols = colCount;if(this.getRowClass){alt[2] = this.getRowClass(r, rowIndex, rp, ds);}rp.alt = alt.join(" ");rp.cells = cb.join("");buf[buf.length] = rt.apply(rp);}return buf.join("");},processRows : function(startRow, skipStripe){if(this.ds.getCount() < 1){return;}skipStripe = skipStripe || !this.grid.stripeRows;startRow = startRow || 0;var rows = this.getRows();var cls = ' x-grid3-row-alt ';for(var i = startRow, len = rows.length; i < len; i++){var row = rows[i];row.rowIndex = i;if(!skipStripe){var isAlt = ((i+1) % 2 == 0);var hasAlt = (' '+row.className + ' ').indexOf(cls) != -1;if(isAlt == hasAlt){continue;}if(isAlt){row.className += " x-grid3-row-alt";}else{row.className = row.className.replace("x-grid3-row-alt", "");}}}},renderUI : function(){var header = this.renderHeaders();var body = this.templates.body.apply({rows:''});var html = this.templates.master.apply({body: body,header: header});var g = this.grid;g.getGridEl().dom.innerHTML = html;this.initElements();this.mainBody.dom.innerHTML = this.renderRows();this.processRows(0, true);Ext.fly(this.innerHd).on("click", this.handleHdDown, this);this.mainHd.on("mouseover", this.handleHdOver, this);this.mainHd.on("mouseout", this.handleHdOut, this);this.mainHd.on("mousemove", this.handleHdMove, this);this.scroller.on('scroll', this.syncScroll, this);if(g.enableColumnResize !== false){this.splitone = new Ext.grid.GridView.SplitDragZone(g, this.mainHd.dom);}if(g.enableColumnMove){this.columnDrag = new Ext.grid.GridView.ColumnDragZone(g, this.innerHd);this.columnDrop = new Ext.grid.HeaderDropZone(g, this.mainHd.dom);}if(g.enableHdMenu !== false){if(g.enableColumnHide !== false){this.colMenu = new Ext.menu.Menu({id:g.id + "-hcols-menu"});this.colMenu.on("beforeshow", this.beforeColMenuShow, this);this.colMenu.on("itemclick", this.handleHdMenuClick, this);}this.hmenu = new Ext.menu.Menu({id: g.id + "-hctx"});this.hmenu.add({id:"asc", text: this.sortAscText, cls: "xg-hmenu-sort-asc"},{id:"desc", text: this.sortDescText, cls: "xg-hmenu-sort-desc"});if(g.enableColumnHide !== false){this.hmenu.add('-',{id:"columns", text: this.columnsText, menu: this.colMenu, iconCls: 'x-cols-icon'});}this.hmenu.on("itemclick", this.handleHdMenuClick, this);}if(g.enableDragDrop || g.enableDrag){var dd = new Ext.grid.GridDragZone(g, {ddGroup : g.ddGroup || 'GridDD'});}this.updateHeaderSortState();},layout : function(){if(!this.mainBody){return; }var g = this.grid;var c = g.getGridEl(), cm = this.cm,expandCol = g.autoExpandColumn,gv = this;var csize = c.getSize(true);var vw = csize.width;if(vw < 20 || csize.height < 20){ return;}if(g.autoHeight){this.scroller.dom.style.overflow = 'visible';}else{this.el.setSize(csize.width, csize.height);var hdHeight = this.mainHd.getHeight();var vh = csize.height - (hdHeight);this.scroller.setSize(vw, vh);if(this.innerHd){this.innerHd.style.width = (vw)+'px';}}if(this.forceFit){if(this.lastViewWidth != vw){this.fitColumns(false, false);this.lastViewWidth = vw;}}else {this.autoExpand();this.syncHeaderScroll();}this.onLayout(vw, vh);},onLayout : function(vw, vh){},onColumnWidthUpdated : function(col, w, tw){},onAllColumnWidthsUpdated : function(ws, tw){},onColumnHiddenUpdated : function(col, hidden, tw){},updateColumnText : function(col, text){},afterMove : function(colIndex){},init: function(grid){this.grid = grid;this.initTemplates();this.initData(grid.store, grid.colModel);this.initUI(grid);},getColumnId : function(index){return this.cm.getColumnId(index);},renderHeaders : function(){var cm = this.cm, ts = this.templates;var ct = ts.hcell;var cb = [], sb = [], p = {};for(var i = 0, len = cm.getColumnCount(); i < len; i++){p.id = cm.getColumnId(i);p.value = cm.getColumnHeader(i) || "";p.style = this.getColumnStyle(i, true);p.tooltip = this.getColumnTooltip(i);if(cm.config[i].align == 'right'){p.istyle = 'padding-right:16px';} else {delete p.istyle;}cb[cb.length] = ct.apply(p);}return ts.header.apply({cells: cb.join(""), tstyle:'width:'+this.getTotalWidth()+';'});},getColumnTooltip : function(i){var tt = this.cm.getColumnTooltip(i);if(tt){if(Ext.QuickTips.isEnabled()){return 'ext:qtip="'+tt+'"';}else{return 'title="'+tt+'"';}}return "";},beforeUpdate : function(){this.grid.stopEditing(true);},updateHeaders : function(){this.innerHd.firstChild.innerHTML = this.renderHeaders();},focusRow : function(row){this.focusCell(row, 0, false);},focusCell : function(row, col, hscroll){var xy = this.ensureVisible(row, col, hscroll);this.focusEl.setXY(xy);if(Ext.isGecko){this.focusEl.focus();}else{this.focusEl.focus.defer(1, this.focusEl);}},ensureVisible : function(row, col, hscroll){if(typeof row != "number"){row = row.rowIndex;}if(!this.ds){return;}if(row < 0 || row >= this.ds.getCount()){return;}col = (col !== undefined ? col : 0);var rowEl = this.getRow(row), cellEl;if(!(hscroll === false && col === 0)){while(this.cm.isHidden(col)){col++;}cellEl = this.getCell(row, col);}if(!rowEl){return;}var c = this.scroller.dom;var ctop = 0;var p = rowEl, stop = this.el.dom;while(p && p != stop){ctop += p.offsetTop;p = p.offsetParent;}ctop -= this.mainHd.dom.offsetHeight;var cbot = ctop + rowEl.offsetHeight;var ch = c.clientHeight;var stop = parseInt(c.scrollTop, 10);var sbot = stop + ch;if(ctop < stop){c.scrollTop = ctop;}else if(cbot > sbot){c.scrollTop = cbot-ch;}if(hscroll !== false){var cleft = parseInt(cellEl.offsetLeft, 10);var cright = cleft + cellEl.offsetWidth;var sleft = parseInt(c.scrollLeft, 10);var sright = sleft + c.clientWidth;if(cleft < sleft){c.scrollLeft = cleft;}else if(cright > sright){c.scrollLeft = cright-c.clientWidth;}}return cellEl ? Ext.fly(cellEl).getXY() : [c.scrollLeft, Ext.fly(rowEl).getY()];},insertRows : function(dm, firstRow, lastRow, isUpdate){if(!isUpdate && firstRow === 0 && lastRow == dm.getCount()-1){this.refresh();}else{if(!isUpdate){this.fireEvent("beforerowsinserted", this, firstRow, lastRow);}var html = this.renderRows(firstRow, lastRow);var before = this.getRow(firstRow);if(before){Ext.DomHelper.insertHtml('beforeBegin', before, html);}else{Ext.DomHelper.insertHtml('beforeEnd', this.mainBody.dom, html);}if(!isUpdate){this.fireEvent("rowsinserted", this, firstRow, lastRow);this.processRows(firstRow);}}},deleteRows : function(dm, firstRow, lastRow){if(dm.getRowCount()<1){this.refresh();}else{this.fireEvent("beforerowsdeleted", this, firstRow, lastRow);this.removeRows(firstRow, lastRow);this.processRows(firstRow);this.fireEvent("rowsdeleted", this, firstRow, lastRow);}},getColumnStyle : function(col, isHeader){var style = !isHeader ? (this.cm.config[col].css || '') : '';style += 'width:'+this.getColumnWidth(col)+';';if(this.cm.isHidden(col)){style += 'display:none;';}var align = this.cm.config[col].align;if(align){style += 'text-align:'+align+';';}return style;},getColumnWidth : function(col){var w = this.cm.getColumnWidth(col);if(typeof w == 'number'){return (Ext.isBorderBox ? w : (w-this.borderWidth > 0 ? w-this.borderWidth:0)) + 'px';}return w;},getTotalWidth : function(){return this.cm.getTotalWidth()+'px';},fitColumns : function(preventRefresh, onlyExpand, omitColumn){var cm = this.cm, leftOver, dist, i;var tw = cm.getTotalWidth(false);var aw = this.grid.getGridEl().getWidth(true)-this.scrollOffset;if(aw < 20){ return;}var extra = aw - tw;if(extra === 0){return false;}var vc = cm.getColumnCount(true);var ac = vc-(typeof omitColumn == 'number' ? 1 : 0);if(ac === 0){ac = 1;omitColumn = undefined;}var colCount = cm.getColumnCount();var cols = [];var extraCol = 0;var width = 0;var w;for (i = 0; i < colCount; i++){if(!cm.isHidden(i) && !cm.isFixed(i) && i !== omitColumn){w = cm.getColumnWidth(i);cols.push(i);extraCol = i;cols.push(w);width += w;}}var frac = (aw - cm.getTotalWidth())/width;while (cols.length){w = cols.pop();i = cols.pop();cm.setColumnWidth(i, Math.max(this.grid.minColumnWidth, Math.floor(w + w*frac)), true);}if((tw = cm.getTotalWidth(false)) > aw){var adjustCol = ac != vc ? omitColumn : extraCol;cm.setColumnWidth(adjustCol, Math.max(1,cm.getColumnWidth(adjustCol)- (tw-aw)), true);}if(preventRefresh !== true){this.updateAllColumnWidths();}return true;},autoExpand : function(preventUpdate){var g = this.grid, cm = this.cm;if(!this.userResized && g.autoExpandColumn){var tw = cm.getTotalWidth(false);var aw = this.grid.getGridEl().getWidth(true)-this.scrollOffset;if(tw != aw){var ci = cm.getIndexById(g.autoExpandColumn);var currentWidth = cm.getColumnWidth(ci);var cw = Math.min(Math.max(((aw-tw)+currentWidth), g.autoExpandMin), g.autoExpandMax);if(cw != currentWidth){cm.setColumnWidth(ci, cw, true);if(preventUpdate !== true){this.updateColumnWidth(ci, cw);}}}}},getColumnData : function(){var cs = [], cm = this.cm, colCount = cm.getColumnCount();for(var i = 0; i < colCount; i++){var name = cm.getDataIndex(i);cs[i] = {name : (typeof name == 'undefined' ? this.ds.fields.get(i).name : name),renderer : cm.getRenderer(i),id : cm.getColumnId(i),style : this.getColumnStyle(i)};}return cs;},renderRows : function(startRow, endRow){var g = this.grid, cm = g.colModel, ds = g.store, stripe = g.stripeRows;var colCount = cm.getColumnCount();if(ds.getCount() < 1){return "";}var cs = this.getColumnData();startRow = startRow || 0;endRow = typeof endRow == "undefined"? ds.getCount()-1 : endRow;var rs = ds.getRange(startRow, endRow);return this.doRender(cs, rs, ds, startRow, colCount, stripe);},renderBody : function(){var markup = this.renderRows();return this.templates.body.apply({rows: markup});},refreshRow : function(record){var ds = this.ds, index;if(typeof record == 'number'){index = record;record = ds.getAt(index);}else{index = ds.indexOf(record);}var cls = [];this.insertRows(ds, index, index, true);this.getRow(index).rowIndex = index;this.onRemove(ds, record, index+1, true);this.fireEvent("rowupdated", this, index, record);},refresh : function(headersToo){this.fireEvent("beforerefresh", this);this.grid.stopEditing(true);var result = this.renderBody();this.mainBody.update(result);if(headersToo === 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('<div class="x-grid-empty">' + this.emptyText + '</div>');}},updateHeaderSortState : function(){var state = this.ds.getSortState();if(!state){return;}if(!this.sortState || (this.sortState.field != state.field || this.sortState.direction != state.direction)){this.grid.fireEvent('sortchange', this.grid, state);}this.sortState = state;var sortColumn = this.cm.findColumnIndex(state.field);if(sortColumn != -1){var sortDir = state.direction;this.updateSortIcon(sortColumn, sortDir);}},destroy : function(){if(this.colMenu){this.colMenu.removeAll();Ext.menu.MenuMgr.unregister(this.colMenu);this.colMenu.getEl().remove();delete this.colMenu;}if(this.hmenu){this.hmenu.removeAll();Ext.menu.MenuMgr.unregister(this.hmenu);this.hmenu.getEl().remove();delete this.hmenu;}if(this.grid.enableColumnMove){var dds = Ext.dd.DDM.ids['gridHeader' + this.grid.getGridEl().id];if(dds){for(var dd in dds){if(!dds[dd].config.isTarget && dds[dd].dragElId){var elid = dds[dd].dragElId;dds[dd].unreg();Ext.get(elid).remove();} else if(dds[dd].config.isTarget){dds[dd].proxyTop.remove();dds[dd].proxyBottom.remove();dds[dd].unreg();}if(Ext.dd.DDM.locationCache[dd]){delete Ext.dd.DDM.locationCache[dd];}}delete Ext.dd.DDM.ids['gridHeader' + this.grid.getGridEl().id];}}Ext.destroy(this.resizeMarker, this.resizeProxy);this.initData(null, null);Ext.EventManager.removeResizeListener(this.onWindowResize, this);},onDenyColumnHide : function(){},render : function(){var cm = this.cm;var colCount = cm.getColumnCount();if(this.autoFill){this.fitColumns(true, true);}else if(this.forceFit){this.fitColumns(true, false);}else if(this.grid.autoExpandColumn){this.autoExpand(true);}this.renderUI();},initData : function(ds, cm){if(this.ds){this.ds.un("load", this.onLoad, this);this.ds.un("datachanged", this.onDataChange, this);this.ds.un("add", this.onAdd, this);this.ds.un("remove", this.onRemove, this);this.ds.un("update", this.onUpdate, this);this.ds.un("clear", this.onClear, this);}if(ds){ds.on("load", this.onLoad, this);ds.on("datachanged", this.onDataChange, this);ds.on("add", this.onAdd, this);ds.on("remove", this.onRemove, this);ds.on("update", this.onUpdate, this);ds.on("clear", this.onClear, this);}this.ds = ds;if(this.cm){this.cm.un("configchange", this.onColConfigChange, this);this.cm.un("widthchange", this.onColWidthChange, this);this.cm.un("headerchange", this.onHeaderChange, this);this.cm.un("hiddenchange", this.onHiddenChange, this);this.cm.un("columnmoved", this.onColumnMove, this);this.cm.un("columnlockchange", this.onColumnLock, this);}if(cm){cm.on("configchange", this.onColConfigChange, this);cm.on("widthchange", this.onColWidthChange, this);cm.on("headerchange", this.onHeaderChange, this);cm.on("hiddenchange", this.onHiddenChange, this);cm.on("columnmoved", this.onColumnMove, this);cm.on("columnlockchange", this.onColumnLock, this);}this.cm = cm;},onDataChange : function(){this.refresh();this.updateHeaderSortState();},onClear : function(){this.refresh();},onUpdate : function(ds, record){this.refreshRow(record);},onAdd : function(ds, records, index){this.insertRows(ds, index, index + (records.length-1));},onRemove : function(ds, record, index, isUpdate){if(isUpdate !== true){this.fireEvent("beforerowremoved", this, index, record);}this.removeRow(index);if(isUpdate !== true){this.processRows(index);this.applyEmptyText();this.fireEvent("rowremoved", this, index, record);}},onLoad : function(){this.scrollToTop();},onColWidthChange : function(cm, col, width){this.updateColumnWidth(col, width);},onHeaderChange : function(cm, col, text){this.updateHeaders();},onHiddenChange : function(cm, col, hidden){this.updateColumnHidden(col, hidden);},onColumnMove : function(cm, oldIndex, newIndex){this.indexMap = null;var s = this.getScrollState();this.refresh(true);this.restoreScroll(s);this.afterMove(newIndex);},onColConfigChange : function(){delete this.lastViewWidth;this.indexMap = null;this.refresh(true);},initUI : function(grid){grid.on("headerclick", this.onHeaderClick, this);if(grid.trackMouseOver){grid.on("mouseover", this.onRowOver, this);grid.on("mouseout", this.onRowOut, this);}},initEvents : function(){},onHeaderClick : function(g, index){if(this.headersDisabled || !this.cm.isSortable(index)){return;}g.stopEditing(true);g.store.sort(this.cm.getDataIndex(index));},onRowOver : function(e, t){var row;if((row = this.findRowIndex(t)) !== false){this.addRowClass(row, "x-grid3-row-over");}},onRowOut : function(e, t){var row;if((row = this.findRowIndex(t)) !== false && row !== this.findRowIndex(e.getRelatedTarget())){this.removeRowClass(row, "x-grid3-row-over");}},handleWheel : function(e){e.stopPropagation();},onRowSelect : function(row){this.addRowClass(row, "x-grid3-row-selected");},onRowDeselect : function(row){this.removeRowClass(row, "x-grid3-row-selected");},onCellSelect : function(row, col){var cell = this.getCell(row, col);if(cell){this.fly(cell).addClass("x-grid3-cell-selected");}},onCellDeselect : function(row, col){var cell = this.getCell(row, col);if(cell){this.fly(cell).removeClass("x-grid3-cell-selected");}},onColumnSplitterMoved : function(i, w){this.userResized = true;var cm = this.grid.colModel;cm.setColumnWidth(i, w, true);if(this.forceFit){this.fitColumns(true, false, i);this.updateAllColumnWidths();}else{this.updateColumnWidth(i, w);}this.grid.fireEvent("columnresize", i, w);},handleHdMenuClick : function(item){var index = this.hdCtxIndex;var cm = this.cm, ds = this.ds;switch(item.id){case "asc":ds.sort(cm.getDataIndex(index), "ASC");break;case "desc":ds.sort(cm.getDataIndex(index), "DESC");break;default:index = cm.getIndexById(item.id.substr(4));if(index != -1){if(item.checked && cm.getColumnsBy(this.isHideableColumn, this).length <= 1){this.onDenyColumnHide();return false;}cm.setHidden(index, item.checked);}}return true;},isHideableColumn : function(c){return !c.hidden && !c.fixed;},beforeColMenuShow : function(){var cm = this.cm, colCount = cm.getColumnCount();this.colMenu.removeAll();for(var i = 0; i < colCount; i++){if(cm.config[i].fixed !== true && cm.config[i].hideable !== false){this.colMenu.add(new Ext.menu.CheckItem({id: "col-"+cm.getColumnId(i),text: cm.getColumnHeader(i),checked: !cm.isHidden(i),hideOnClick:false,disabled: cm.config[i].hideable === false}));}}},handleHdDown : function(e, t){if(Ext.fly(t).hasClass('x-grid3-hd-btn')){e.stopEvent();var hd = this.findHeaderCell(t);Ext.fly(hd).addClass('x-grid3-hd-menu-open');var index = this.getCellIndex(hd);this.hdCtxIndex = index;var ms = this.hmenu.items, cm = this.cm;ms.get("asc").setDisabled(!cm.isSortable(index));ms.get("desc").setDisabled(!cm.isSortable(index));this.hmenu.on("hide", function(){Ext.fly(hd).removeClass('x-grid3-hd-menu-open');}, this, {single:true});this.hmenu.show(t, "tl-bl?");}},handleHdOver : function(e, t){var hd = this.findHeaderCell(t);if(hd && !this.headersDisabled){this.activeHd = hd;this.activeHdIndex = this.getCellIndex(hd);var fly = this.fly(hd);this.activeHdRegion = fly.getRegion();if(!this.cm.isMenuDisabled(this.activeHdIndex)){fly.addClass("x-grid3-hd-over");this.activeHdBtn = fly.child('.x-grid3-hd-btn');if(this.activeHdBtn){this.activeHdBtn.dom.style.height = (hd.firstChild.offsetHeight-1)+'px';}}}},handleHdMove : function(e, t){if(this.activeHd && !this.headersDisabled){var hw = this.splitHandleWidth || 5;var r = this.activeHdRegion;var x = e.getPageX();var ss = this.activeHd.style;if(x - r.left <= hw && this.cm.isResizable(this.activeHdIndex-1)){ss.cursor = Ext.isAir ? 'move' : Ext.isSafari ? 'e-resize' : 'col-resize'; }else if(r.right - x <= (!this.activeHdBtn ? hw : 2) && this.cm.isResizable(this.activeHdIndex)){ss.cursor = Ext.isAir ? 'move' : Ext.isSafari ? 'w-resize' : 'col-resize';}else{ss.cursor = '';}}},handleHdOut : function(e, t){var hd = this.findHeaderCell(t);if(hd && (!Ext.isIE || !e.within(hd, true))){this.activeHd = null;this.fly(hd).removeClass("x-grid3-hd-over");hd.style.cursor = '';}},hasRows : function(){var fc = this.mainBody.dom.firstChild;return fc && fc.className != 'x-grid-empty';},bind : function(d, c){this.initData(d, c);}});Ext.grid.GridView.SplitDragZone = function(grid, hd){this.grid = grid;this.view = grid.getView();this.marker = this.view.resizeMarker;this.proxy = this.view.resizeProxy;Ext.grid.GridView.SplitDragZone.superclass.constructor.call(this, hd,"gridSplitters" + this.grid.getGridEl().id, {dragElId : Ext.id(this.proxy.dom), resizeFrame:false});this.scroll = false;this.hw = this.view.splitHandleWidth || 5;};Ext.extend(Ext.grid.GridView.SplitDragZone, Ext.dd.DDProxy, {b4StartDrag : function(x, y){this.view.headersDisabled = true;var h = this.view.mainWrap.getHeight();this.marker.setHeight(h);this.marker.show();this.marker.alignTo(this.view.getHeaderCell(this.cellIndex), 'tl-tl', [-2, 0]);this.proxy.setHeight(h);var w = this.cm.getColumnWidth(this.cellIndex);var minw = Math.max(w-this.grid.minColumnWidth, 0);this.resetConstraints();this.setXConstraint(minw, 1000);this.setYConstraint(0, 0);this.minX = x - minw;this.maxX = x + 1000;this.startPos = x;Ext.dd.DDProxy.prototype.b4StartDrag.call(this, x, y);},handleMouseDown : function(e){var t = this.view.findHeaderCell(e.getTarget());if(t){var xy = this.view.fly(t).getXY(), x = xy[0], y = xy[1];var exy = e.getXY(), ex = exy[0], ey = exy[1];var w = t.offsetWidth, adjust = false;if((ex - x) <= this.hw){adjust = -1;}else if((x+w) - ex <= this.hw){adjust = 0;}if(adjust !== false){this.cm = this.grid.colModel;var ci = this.view.getCellIndex(t);if(adjust == -1){if (ci + adjust < 0) {return;}while(this.cm.isHidden(ci+adjust)){--adjust;if(ci+adjust < 0){return;}}}this.cellIndex = ci+adjust;this.split = t.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(e);}}},endDrag : function(e){this.marker.hide();var v = this.view;var endX = Math.max(this.minX, e.getPageX());var diff = endX - this.startPos;v.onColumnSplitterMoved(this.cellIndex, this.cm.getColumnWidth(this.cellIndex)+diff);setTimeout(function(){v.headersDisabled = false;}, 50);},autoOffset : function(){this.setDelta(0,0);}});Ext.grid.GroupingView = Ext.extend(Ext.grid.GridView, {hideGroupedColumn:false,showGroupName:true,startCollapsed:false,enableGrouping:true,enableGroupingMenu:true,enableNoGroups:true,emptyGroupText : '(None)',ignoreAdd: false,groupTextTpl : '{text}',gidSeed : 1000,initTemplates : function(){Ext.grid.GroupingView.superclass.initTemplates.call(this);this.state = {};var sm = this.grid.getSelectionModel();sm.on(sm.selectRow ? 'beforerowselect' : 'beforecellselect',this.onBeforeRowSelect, this);if(!this.startGroup){this.startGroup = new Ext.XTemplate('<div id="{groupId}" class="x-grid-group {cls}">','<div id="{groupId}-hd" class="x-grid-group-hd" style="{style}"><div>', this.groupTextTpl ,'</div></div>','<div id="{groupId}-bd" class="x-grid-group-body">');}this.startGroup.compile();this.endGroup = '</div></div>';},findGroup : function(el){return Ext.fly(el).up('.x-grid-group', this.mainBody.dom);},getGroups : function(){return this.hasRows() ? this.mainBody.dom.childNodes : [];},onAdd : function(){if(this.enableGrouping && !this.ignoreAdd){var ss = this.getScrollState();this.refresh();this.restoreScroll(ss);}else if(!this.enableGrouping){Ext.grid.GroupingView.superclass.onAdd.apply(this, arguments);}},onRemove : function(ds, record, index, isUpdate){Ext.grid.GroupingView.superclass.onRemove.apply(this, arguments);var g = document.getElementById(record._groupId);if(g && g.childNodes[1].childNodes.length < 1){Ext.removeNode(g);}this.applyEmptyText();},refreshRow : function(record){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 field = this.getGroupField();var g = this.hmenu.items.get('groupBy');if(g){g.setDisabled(this.cm.config[this.hdCtxIndex].groupable === false);}var s = this.hmenu.items.get('showGroups');if(s){if (!!field){s.setDisabled(this.cm.config[this.hdCtxIndex].groupable === false)}s.setChecked(!!field);}},renderUI : function(){Ext.grid.GroupingView.superclass.renderUI.call(this);this.mainBody.on('mousedown', this.interceptMouse, this);if(this.enableGroupingMenu && this.hmenu){this.hmenu.add('-',{id:'groupBy',text: this.groupByText,handler: this.onGroupByClick,scope: this,iconCls:'x-group-by-icon'});if(this.enableNoGroups){this.hmenu.add({id:'showGroups',text: this.showGroupsText,checked: true,checkHandler: this.onShowGroupsClick,scope: this});}this.hmenu.on('beforeshow', this.beforeMenuShow, this);}},onGroupByClick : function(){this.grid.store.groupBy(this.cm.getDataIndex(this.hdCtxIndex));this.beforeMenuShow();},onShowGroupsClick : function(mi, checked){if(checked){this.onGroupByClick();}else{this.grid.store.clearGrouping();}},toggleGroup : function(group, expanded){this.grid.stopEditing(true);group = Ext.getDom(group);var gel = Ext.fly(group);expanded = expanded !== undefined ?expanded : gel.hasClass('x-grid-group-collapsed');this.state[gel.dom.id] = expanded;gel[expanded ? 'removeClass' : 'addClass']('x-grid-group-collapsed');},toggleAllGroups : function(expanded){var groups = this.getGroups();for(var i = 0, len = groups.length; i < len; i++){this.toggleGroup(groups[i], expanded);}},expandAllGroups : function(){this.toggleAllGroups(true);},collapseAllGroups : function(){this.toggleAllGroups(false);},interceptMouse : function(e){var hd = e.getTarget('.x-grid-group-hd', this.mainBody);if(hd){e.stopEvent();this.toggleGroup(hd.parentNode);}},getGroup : function(v, r, groupRenderer, rowIndex, colIndex, ds){var g = groupRenderer ? groupRenderer(v, {}, r, rowIndex, colIndex, ds) : String(v);if(g === ''){g = this.cm.config[colIndex].emptyGroupText || this.emptyGroupText;}return g;},getGroupField : function(){return this.grid.store.getGroupState();},renderRows : function(){var groupField = this.getGroupField();var eg = !!groupField;if(this.hideGroupedColumn) {var colIndex = this.cm.findColumnIndex(groupField);if(!eg && this.lastGroupField !== undefined) {this.mainBody.update('');this.cm.setHidden(this.cm.findColumnIndex(this.lastGroupField), false);delete this.lastGroupField;}else if (eg && this.lastGroupField === undefined) {this.lastGroupField = groupField;this.cm.setHidden(colIndex, true);}else if (eg && this.lastGroupField !== undefined && groupField !== this.lastGroupField) {this.mainBody.update('');var oldIndex = this.cm.findColumnIndex(this.lastGroupField);this.cm.setHidden(oldIndex, false);this.lastGroupField = groupField;this.cm.setHidden(colIndex, true);}}return Ext.grid.GroupingView.superclass.renderRows.apply(this, arguments);},doRender : function(cs, rs, ds, startRow, colCount, stripe){if(rs.length < 1){return '';}var groupField = this.getGroupField();var colIndex = this.cm.findColumnIndex(groupField);this.enableGrouping = !!groupField;if(!this.enableGrouping || this.isUpdating){return Ext.grid.GroupingView.superclass.doRender.apply(this, arguments);}var gstyle = 'width:'+this.getTotalWidth()+';';var gidPrefix = this.grid.getGridEl().id;var cfg = this.cm.config[colIndex];var groupRenderer = cfg.groupRenderer || cfg.renderer;var prefix = this.showGroupName ?(cfg.groupName || cfg.header)+': ' : '';var groups = [], curGroup, i, len, gid;for(i = 0, len = rs.length; i < len; i++){var rowIndex = startRow + i;var r = rs[i],gvalue = r.data[groupField],g = this.getGroup(gvalue, r, groupRenderer, rowIndex, colIndex, ds);if(!curGroup || curGroup.group != g){gid = gidPrefix + '-gp-' + groupField + '-' + Ext.util.Format.htmlEncode(g);var isCollapsed = typeof this.state[gid] !== 'undefined' ? !this.state[gid] : this.startCollapsed;var gcls = isCollapsed ? 'x-grid-group-collapsed' : '';curGroup = {group: g,gvalue: gvalue,text: prefix + g,groupId: gid,startRow: rowIndex,rs: [r],cls: gcls,style: gstyle};groups.push(curGroup);}else{curGroup.rs.push(r);}r._groupId = gid;}var buf = [];for(i = 0, len = groups.length; i < len; i++){var g = groups[i];this.doGroupStart(buf, g, cs, ds, colCount);buf[buf.length] = Ext.grid.GroupingView.superclass.doRender.call(this, cs, g.rs, ds, g.startRow, colCount, stripe);this.doGroupEnd(buf, g, cs, ds, colCount);}return buf.join('');},getGroupId : function(value){var gidPrefix = this.grid.getGridEl().id;var groupField = this.getGroupField();var colIndex = this.cm.findColumnIndex(groupField);var cfg = this.cm.config[colIndex];var groupRenderer = cfg.groupRenderer || cfg.renderer;var gtext = this.getGroup(value, {data:{}}, groupRenderer, 0, colIndex, this.ds);return gidPrefix + '-gp-' + groupField + '-' + Ext.util.Format.htmlEncode(value);},doGroupStart : function(buf, g, cs, ds, colCount){buf[buf.length] = this.startGroup.apply(g);},doGroupEnd : function(buf, g, cs, ds, colCount){buf[buf.length] = this.endGroup;},getRows : function(){if(!this.enableGrouping){return Ext.grid.GroupingView.superclass.getRows.call(this);}var r = [];var g, gs = this.getGroups();for(var i = 0, len = gs.length; i < len; i++){g = gs[i].childNodes[1].childNodes;for(var j = 0, jlen = g.length; j < jlen; j++){r[r.length] = g[j];}}return r;},updateGroupWidths : function(){if(!this.enableGrouping || !this.hasRows()){return;}var tw = Math.max(this.cm.getTotalWidth(), this.el.dom.offsetWidth-this.scrollOffset) +'px';var gs = this.getGroups();for(var i = 0, len = gs.length; i < len; i++){gs[i].firstChild.style.width = tw;}},onColumnWidthUpdated : function(col, w, tw){this.updateGroupWidths();},onAllColumnWidthsUpdated : function(ws, tw){this.updateGroupWidths();},onColumnHiddenUpdated : function(col, hidden, tw){this.updateGroupWidths();},onLayout : function(){this.updateGroupWidths();},onBeforeRowSelect : function(sm, rowIndex){if(!this.enableGrouping){return;}var row = this.getRow(rowIndex);if(row && !row.offsetParent){var g = this.findGroup(row);this.toggleGroup(g, true);}},groupByText: 'Group By This Field',showGroupsText: 'Show in Groups'});Ext.grid.GroupingView.GROUP_ID = 1000;Ext.grid.HeaderDragZone = function(grid, hd, hd2){this.grid = grid;this.view = grid.getView();this.ddGroup = "gridHeader" + this.grid.getGridEl().id;Ext.grid.HeaderDragZone.superclass.constructor.call(this, hd);if(hd2){this.setHandleElId(Ext.id(hd));this.setOuterHandleElId(Ext.id(hd2));}this.scroll = false;};Ext.extend(Ext.grid.HeaderDragZone, Ext.dd.DragZone, {maxDragWidth: 120,getDragData : function(e){var t = Ext.lib.Event.getTarget(e);var h = this.view.findHeaderCell(t);if(h){return {ddel: h.firstChild, header:h};}return false;},onInitDrag : function(e){this.view.headersDisabled = true;var clone = this.dragData.ddel.cloneNode(true);clone.id = Ext.id();clone.style.width = Math.min(this.dragData.header.offsetWidth,this.maxDragWidth) + "px";this.proxy.update(clone);return true;},afterValidDrop : function(){var v = this.view;setTimeout(function(){v.headersDisabled = false;}, 50);},afterInvalidDrop : function(){var v = this.view;setTimeout(function(){v.headersDisabled = false;}, 50);}});Ext.grid.HeaderDropZone = function(grid, hd, hd2){this.grid = grid;this.view = grid.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, grid.getGridEl().dom);};Ext.extend(Ext.grid.HeaderDropZone, Ext.dd.DropZone, {proxyOffsets : [-4, -9],fly: Ext.Element.fly,getTargetFromEvent : function(e){var t = Ext.lib.Event.getTarget(e);var cindex = this.view.findCellIndex(t);if(cindex !== false){return this.view.getHeaderCell(cindex);}},nextVisible : function(h){var v = this.view, cm = this.grid.colModel;h = h.nextSibling;while(h){if(!cm.isHidden(v.getCellIndex(h))){return h;}h = h.nextSibling;}return null;},prevVisible : function(h){var v = this.view, cm = this.grid.colModel;h = h.prevSibling;while(h){if(!cm.isHidden(v.getCellIndex(h))){return h;}h = h.prevSibling;}return null;},positionIndicator : function(h, n, e){var x = Ext.lib.Event.getPageX(e);var r = Ext.lib.Dom.getRegion(n.firstChild);var px, pt, py = r.top + this.proxyOffsets[1];if((r.right - x) <= (r.right-r.left)/2){px = r.right+this.view.borderWidth;pt = "after";}else{px = r.left;pt = "before";}var oldIndex = this.view.getCellIndex(h);var newIndex = this.view.getCellIndex(n);if(this.grid.colModel.isFixed(newIndex)){return false;}var locked = this.grid.colModel.isLocked(newIndex);if(pt == "after"){newIndex++;}if(oldIndex < newIndex){newIndex--;}if(oldIndex == newIndex && (locked == this.grid.colModel.isLocked(oldIndex))){return false;}px += this.proxyOffsets[0];this.proxyTop.setLeftTop(px, py);this.proxyTop.show();if(!this.bottomOffset){this.bottomOffset = this.view.mainHd.getHeight();}this.proxyBottom.setLeftTop(px, py+this.proxyTop.dom.offsetHeight+this.bottomOffset);this.proxyBottom.show();return pt;},onNodeEnter : function(n, dd, e, data){if(data.header != n){this.positionIndicator(data.header, n, e);}},onNodeOver : function(n, dd, e, data){var result = false;if(data.header != n){result = this.positionIndicator(data.header, n, e);}if(!result){this.proxyTop.hide();this.proxyBottom.hide();}return result ? this.dropAllowed : this.dropNotAllowed;},onNodeOut : function(n, dd, e, data){this.proxyTop.hide();this.proxyBottom.hide();},onNodeDrop : function(n, dd, e, data){var h = data.header;if(h != n){var cm = this.grid.colModel;var x = Ext.lib.Event.getPageX(e);var r = Ext.lib.Dom.getRegion(n.firstChild);var pt = (r.right - x) <= ((r.right-r.left)/2) ? "after" : "before";var oldIndex = this.view.getCellIndex(h);var newIndex = this.view.getCellIndex(n);var locked = cm.isLocked(newIndex);if(pt == "after"){newIndex++;}if(oldIndex < newIndex){newIndex--;}if(oldIndex == newIndex && (locked == cm.isLocked(oldIndex))){return false;}cm.setLocked(oldIndex, locked, true);cm.moveColumn(oldIndex, newIndex);this.grid.fireEvent("columnmove", oldIndex, newIndex);return true;}return false;}});Ext.grid.GridView.ColumnDragZone = function(grid, hd){Ext.grid.GridView.ColumnDragZone.superclass.constructor.call(this, grid, hd, null);this.proxy.el.addClass('x-grid3-col-dd');};Ext.extend(Ext.grid.GridView.ColumnDragZone, Ext.grid.HeaderDragZone, {handleMouseDown : function(e){},callHandleMouseDown : function(e){Ext.grid.GridView.ColumnDragZone.superclass.handleMouseDown.call(this, e);}});Ext.grid.SplitDragZone = function(grid, hd, hd2){this.grid = grid;this.view = grid.getView();this.proxy = this.view.resizeProxy;Ext.grid.SplitDragZone.superclass.constructor.call(this, hd,"gridSplitters" + this.grid.getGridEl().id, {dragElId : Ext.id(this.proxy.dom), resizeFrame:false});this.setHandleElId(Ext.id(hd));this.setOuterHandleElId(Ext.id(hd2));this.scroll = false;};Ext.extend(Ext.grid.SplitDragZone, Ext.dd.DDProxy, {fly: Ext.Element.fly,b4StartDrag : function(x, y){this.view.headersDisabled = true;this.proxy.setHeight(this.view.mainWrap.getHeight());var w = this.cm.getColumnWidth(this.cellIndex);var minw = Math.max(w-this.grid.minColumnWidth, 0);this.resetConstraints();this.setXConstraint(minw, 1000);this.setYConstraint(0, 0);this.minX = x - minw;this.maxX = x + 1000;this.startPos = x;Ext.dd.DDProxy.prototype.b4StartDrag.call(this, x, y);},handleMouseDown : function(e){ev = Ext.EventObject.setEvent(e);var t = this.fly(ev.getTarget());if(t.hasClass("x-grid-split")){this.cellIndex = this.view.getCellIndex(t.dom);this.split = t.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(e){this.view.headersDisabled = false;var endX = Math.max(this.minX, Ext.lib.Event.getPageX(e));var diff = endX - this.startPos;this.view.onColumnSplitterMoved(this.cellIndex, this.cm.getColumnWidth(this.cellIndex)+diff);},autoOffset : function(){this.setDelta(0,0);}});Ext.grid.GridDragZone = function(grid, config){this.view = grid.getView();Ext.grid.GridDragZone.superclass.constructor.call(this, this.view.mainBody.dom, config);if(this.view.lockedBody){this.setHandleElId(Ext.id(this.view.mainBody.dom));this.setOuterHandleElId(Ext.id(this.view.lockedBody.dom));}this.scroll = false;this.grid = grid;this.ddel = document.createElement('div');this.ddel.className = 'x-grid-dd-wrap';};Ext.extend(Ext.grid.GridDragZone, Ext.dd.DragZone, {ddGroup : "GridDD",getDragData : function(e){var t = Ext.lib.Event.getTarget(e);var rowIndex = this.view.findRowIndex(t);if(rowIndex !== false){var sm = this.grid.selModel;if(!sm.isSelected(rowIndex) || e.hasModifier()){sm.handleMouseDown(this.grid, rowIndex, e);}return {grid: this.grid, ddel: this.ddel, rowIndex: rowIndex, selections:sm.getSelections()};}return false;},onInitDrag : function(e){var data = this.dragData;this.ddel.innerHTML = this.grid.getDragDropText();this.proxy.update(this.ddel);},afterRepair : function(){this.dragging = false;},getRepairXY : function(e, data){return false;},onEndDrag : function(data, e){},onValidDrop : function(dd, e, id){this.hideProxy();},beforeInvalidDrop : function(e, id){}});Ext.grid.ColumnModel = function(config){this.defaultWidth = 100;this.defaultSortable = false;if(config.columns){Ext.apply(this, config);this.setConfig(config.columns, true);}else{this.setConfig(config, true);}this.addEvents("widthchange","headerchange","hiddenchange","columnmoved","columnlockchange","configchange");Ext.grid.ColumnModel.superclass.constructor.call(this);};Ext.extend(Ext.grid.ColumnModel, Ext.util.Observable, {getColumnId : function(index){return this.config[index].id;},setConfig : function(config, initial){if(!initial){delete this.totalWidth;for(var i = 0, len = this.config.length; i < len; i++){var c = this.config[i];if(c.editor){c.editor.destroy();}}}this.config = config;this.lookup = {};for(var i = 0, len = config.length; i < len; i++){var c = config[i];if(typeof c.renderer == "string"){c.renderer = Ext.util.Format[c.renderer];}if(typeof c.id == "undefined"){c.id = i;}if(c.editor && c.editor.isFormField){c.editor = new Ext.grid.GridEditor(c.editor);}this.lookup[c.id] = c;}if(!initial){this.fireEvent('configchange', this);}},getColumnById : function(id){return this.lookup[id];},getIndexById : function(id){for(var i = 0, len = this.config.length; i < len; i++){if(this.config[i].id == id){return i;}}return -1;},moveColumn : function(oldIndex, newIndex){var c = this.config[oldIndex];this.config.splice(oldIndex, 1);this.config.splice(newIndex, 0, c);this.dataMap = null;this.fireEvent("columnmoved", this, oldIndex, newIndex);},isLocked : function(colIndex){return this.config[colIndex].locked === true;},setLocked : function(colIndex, value, suppressEvent){if(this.isLocked(colIndex) == value){return;}this.config[colIndex].locked = value;if(!suppressEvent){this.fireEvent("columnlockchange", this, colIndex, value);}},getTotalLockedWidth : function(){var totalWidth = 0;for(var i = 0; i < this.config.length; i++){if(this.isLocked(i) && !this.isHidden(i)){this.totalWidth += this.getColumnWidth(i);}}return totalWidth;},getLockedCount : function(){for(var i = 0, len = this.config.length; i < len; i++){if(!this.isLocked(i)){return i;}}},getColumnCount : function(visibleOnly){if(visibleOnly === true){var c = 0;for(var i = 0, len = this.config.length; i < len; i++){if(!this.isHidden(i)){c++;}}return c;}return this.config.length;},getColumnsBy : function(fn, scope){var r = [];for(var i = 0, len = this.config.length; i < len; i++){var c = this.config[i];if(fn.call(scope||this, c, i) === true){r[r.length] = c;}}return r;},isSortable : function(col){if(typeof this.config[col].sortable == "undefined"){return this.defaultSortable;}return this.config[col].sortable;},isMenuDisabled : function(col){return !!this.config[col].menuDisabled;},getRenderer : function(col){if(!this.config[col].renderer){return Ext.grid.ColumnModel.defaultRenderer;}return this.config[col].renderer;},setRenderer : function(col, fn){this.config[col].renderer = fn;},getColumnWidth : function(col){return this.config[col].width || this.defaultWidth;},setColumnWidth : function(col, width, suppressEvent){this.config[col].width = width;this.totalWidth = null;if(!suppressEvent){this.fireEvent("widthchange", this, col, width);}},getTotalWidth : function(includeHidden){if(!this.totalWidth){this.totalWidth = 0;for(var i = 0, len = this.config.length; i < len; i++){if(includeHidden || !this.isHidden(i)){this.totalWidth += this.getColumnWidth(i);}}}return this.totalWidth;},getColumnHeader : function(col){return this.config[col].header;},setColumnHeader : function(col, header){this.config[col].header = header;this.fireEvent("headerchange", this, col, header);},getColumnTooltip : function(col){return this.config[col].tooltip;},setColumnTooltip : function(col, tooltip){this.config[col].tooltip = tooltip;},getDataIndex : function(col){return this.config[col].dataIndex;},setDataIndex : function(col, dataIndex){this.config[col].dataIndex = dataIndex;},findColumnIndex : function(dataIndex){var c = this.config;for(var i = 0, len = c.length; i < len; i++){if(c[i].dataIndex == dataIndex){return i;}}return -1;},isCellEditable : function(colIndex, rowIndex){return (this.config[colIndex].editable || (typeof this.config[colIndex].editable == "undefined" && this.config[colIndex].editor)) ? true : false;},getCellEditor : function(colIndex, rowIndex){return this.config[colIndex].editor;},setEditable : function(col, editable){this.config[col].editable = editable;},isHidden : function(colIndex){return this.config[colIndex].hidden;},isFixed : function(colIndex){return this.config[colIndex].fixed;},isResizable : function(colIndex){return colIndex >= 0 && this.config[colIndex].resizable !== false && this.config[colIndex].fixed !== true;},setHidden : function(colIndex, hidden){var c = this.config[colIndex];if(c.hidden !== hidden){c.hidden = hidden;this.totalWidth = null;this.fireEvent("hiddenchange", this, colIndex, hidden);}},setEditor : function(col, editor){this.config[col].editor = editor;}});Ext.grid.ColumnModel.defaultRenderer = function(value){if(typeof value == "string" && value.length < 1){return " ";}return value;};Ext.grid.DefaultColumnModel = Ext.grid.ColumnModel;Ext.grid.AbstractSelectionModel = function(){this.locked = false;Ext.grid.AbstractSelectionModel.superclass.constructor.call(this);};Ext.extend(Ext.grid.AbstractSelectionModel, Ext.util.Observable, {init : function(grid){this.grid = grid;this.initEvents();},lock : function(){this.locked = true;},unlock : function(){this.locked = false;},isLocked : function(){return this.locked;}});Ext.grid.RowSelectionModel = function(config){Ext.apply(this, config);this.selections = new Ext.util.MixedCollection(false, function(o){return o.id;});this.last = false;this.lastActive = false;this.addEvents("selectionchange","beforerowselect","rowselect","rowdeselect");Ext.grid.RowSelectionModel.superclass.constructor.call(this);};Ext.extend(Ext.grid.RowSelectionModel, Ext.grid.AbstractSelectionModel, {singleSelect : false,initEvents : function(){if(!this.grid.enableDragDrop && !this.grid.enableDrag){this.grid.on("rowmousedown", this.handleMouseDown, this);}else{ this.grid.on("rowclick", function(grid, rowIndex, e) {if(e.button === 0 && !e.shiftKey && !e.ctrlKey) {this.selectRow(rowIndex, false);grid.view.focusRow(rowIndex);}}, this);}this.rowNav = new Ext.KeyNav(this.grid.getGridEl(), {"up" : function(e){if(!e.shiftKey){this.selectPrevious(e.shiftKey);}else if(this.last !== false && this.lastActive !== false){var last = this.last;this.selectRange(this.last, this.lastActive-1);this.grid.getView().focusRow(this.lastActive);if(last !== false){this.last = last;}}else{this.selectFirstRow();}},"down" : function(e){if(!e.shiftKey){this.selectNext(e.shiftKey);}else if(this.last !== false && this.lastActive !== false){var last = this.last;this.selectRange(this.last, this.lastActive+1);this.grid.getView().focusRow(this.lastActive);if(last !== false){this.last = last;}}else{this.selectFirstRow();}},scope: this});var view = this.grid.view;view.on("refresh", this.onRefresh, this);view.on("rowupdated", this.onRowUpdated, this);view.on("rowremoved", this.onRemove, this);},onRefresh : function(){var ds = this.grid.store, index;var s = this.getSelections();this.clearSelections(true);for(var i = 0, len = s.length; i < len; i++){var r = s[i];if((index = ds.indexOfId(r.id)) != -1){this.selectRow(index, true);}}if(s.length != this.selections.getCount()){this.fireEvent("selectionchange", this);}},onRemove : function(v, index, r){if(this.selections.remove(r) !== false){this.fireEvent('selectionchange', this);}},onRowUpdated : function(v, index, r){if(this.isSelected(r)){v.onRowSelect(index);}},selectRecords : function(records, keepExisting){if(!keepExisting){this.clearSelections();}var ds = this.grid.store;for(var i = 0, len = records.length; i < len; i++){this.selectRow(ds.indexOf(records[i]), true);}},getCount : function(){return this.selections.length;},selectFirstRow : function(){this.selectRow(0);},selectLastRow : function(keepExisting){this.selectRow(this.grid.store.getCount() - 1, keepExisting);},selectNext : function(keepExisting){if(this.hasNext()){this.selectRow(this.last+1, keepExisting);this.grid.getView().focusRow(this.last);return true;}return false;},selectPrevious : function(keepExisting){if(this.hasPrevious()){this.selectRow(this.last-1, keepExisting);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(fn, scope){var s = this.getSelections();for(var i = 0, len = s.length; i < len; i++){if(fn.call(scope || this, s[i], i) === false){return false;}}return true;},clearSelections : function(fast){if(this.locked) return;if(fast !== true){var ds = this.grid.store;var s = this.selections;s.each(function(r){this.deselectRow(ds.indexOfId(r.id));}, this);s.clear();}else{this.selections.clear();}this.last = false;},selectAll : function(){if(this.locked) return;this.selections.clear();for(var i = 0, len = this.grid.store.getCount(); i < len; i++){this.selectRow(i, true);}},hasSelection : function(){return this.selections.length > 0;},isSelected : function(index){var r = typeof index == "number" ? this.grid.store.getAt(index) : index;return (r && this.selections.key(r.id) ? true : false);},isIdSelected : function(id){return (this.selections.key(id) ? true : false);},handleMouseDown : function(g, rowIndex, e){if(e.button !== 0 || this.isLocked()){return;};var view = this.grid.getView();if(e.shiftKey && this.last !== false){var last = this.last;this.selectRange(last, rowIndex, e.ctrlKey);this.last = last; view.focusRow(rowIndex);}else{var isSelected = this.isSelected(rowIndex);if(e.ctrlKey && isSelected){this.deselectRow(rowIndex);}else if(!isSelected || this.getCount() > 1){this.selectRow(rowIndex, e.ctrlKey || e.shiftKey);view.focusRow(rowIndex);}}},selectRows : function(rows, keepExisting){if(!keepExisting){this.clearSelections();}for(var i = 0, len = rows.length; i < len; i++){this.selectRow(rows[i], true);}},selectRange : function(startRow, endRow, keepExisting){if(this.locked) return;if(!keepExisting){this.clearSelections();}if(startRow <= endRow){for(var i = startRow; i <= endRow; i++){this.selectRow(i, true);}}else{for(var i = startRow; i >= endRow; i--){this.selectRow(i, true);}}},deselectRange : function(startRow, endRow, preventViewNotify){if(this.locked) return;for(var i = startRow; i <= endRow; i++){this.deselectRow(i, preventViewNotify);}},selectRow : function(index, keepExisting, preventViewNotify){if(this.locked || (index < 0 || index >= this.grid.store.getCount())) return;var r = this.grid.store.getAt(index);if(r && this.fireEvent("beforerowselect", this, index, keepExisting, r) !== false){if(!keepExisting || this.singleSelect){this.clearSelections();}this.selections.add(r);this.last = this.lastActive = index;if(!preventViewNotify){this.grid.getView().onRowSelect(index);}this.fireEvent("rowselect", this, index, r);this.fireEvent("selectionchange", this);}},deselectRow : function(index, preventViewNotify){if(this.locked) return;if(this.last == index){this.last = false;}if(this.lastActive == index){this.lastActive = false;}var r = this.grid.store.getAt(index);if(r){this.selections.remove(r);if(!preventViewNotify){this.grid.getView().onRowDeselect(index);}this.fireEvent("rowdeselect", this, index, r);this.fireEvent("selectionchange", this);}},restoreLast : function(){if(this._last){this.last = this._last;}},acceptsNav : function(row, col, cm){return !cm.isHidden(col) && cm.isCellEditable(col, row);},onEditorKey : function(field, e){var k = e.getKey(), newCell, g = this.grid, ed = g.activeEditor;var shift = e.shiftKey;if(k == e.TAB){e.stopEvent();ed.completeEdit();if(shift){newCell = g.walkCells(ed.row, ed.col-1, -1, this.acceptsNav, this);}else{newCell = g.walkCells(ed.row, ed.col+1, 1, this.acceptsNav, this);}}else if(k == e.ENTER){e.stopEvent();ed.completeEdit();if(this.moveEditorOnEnter !== false){if(shift){newCell = g.walkCells(ed.row - 1, ed.col, -1, this.acceptsNav, this);}else{newCell = g.walkCells(ed.row + 1, ed.col, 1, this.acceptsNav, this);}}}else if(k == e.ESC){ed.cancelEdit();}if(newCell){g.startEditing(newCell[0], newCell[1]);}}});Ext.grid.CellSelectionModel = function(config){Ext.apply(this, config);this.selection = null;this.addEvents("beforecellselect","cellselect","selectionchange");Ext.grid.CellSelectionModel.superclass.constructor.call(this);};Ext.extend(Ext.grid.CellSelectionModel, Ext.grid.AbstractSelectionModel, {initEvents : function(){this.grid.on("cellmousedown", this.handleMouseDown, this);this.grid.getGridEl().on(Ext.isIE ? "keydown" : "keypress", this.handleKeyDown, this);var view = this.grid.view;view.on("refresh", this.onViewChange, this);view.on("rowupdated", this.onRowUpdated, this);view.on("beforerowremoved", this.clearSelections, this);view.on("beforerowsinserted", this.clearSelections, this);if(this.grid.isEditor){this.grid.on("beforeedit", this.beforeEdit, this);}},beforeEdit : function(e){this.select(e.row, e.column, false, true, e.record);},onRowUpdated : function(v, index, r){if(this.selection && this.selection.record == r){v.onCellSelect(index, this.selection.cell[1]);}},onViewChange : function(){this.clearSelections(true);},getSelectedCell : function(){return this.selection ? this.selection.cell : null;},clearSelections : function(preventNotify){var s = this.selection;if(s){if(preventNotify !== true){this.grid.view.onCellDeselect(s.cell[0], s.cell[1]);}this.selection = null;this.fireEvent("selectionchange", this, null);}},hasSelection : function(){return this.selection ? true : false;},handleMouseDown : function(g, row, cell, e){if(e.button !== 0 || this.isLocked()){return;};this.select(row, cell);},select : function(rowIndex, colIndex, preventViewNotify, preventFocus, r){if(this.fireEvent("beforecellselect", this, rowIndex, colIndex) !== false){this.clearSelections();r = r || this.grid.store.getAt(rowIndex);this.selection = {record : r,cell : [rowIndex, colIndex]};if(!preventViewNotify){var v = this.grid.getView();v.onCellSelect(rowIndex, colIndex);if(preventFocus !== true){v.focusCell(rowIndex, colIndex);}}this.fireEvent("cellselect", this, rowIndex, colIndex);this.fireEvent("selectionchange", this, this.selection);}},isSelectable : function(rowIndex, colIndex, cm){return !cm.isHidden(colIndex);},handleKeyDown : function(e){if(!e.isNavKeyPress()){return;}var g = this.grid, s = this.selection;if(!s){e.stopEvent();var cell = g.walkCells(0, 0, 1, this.isSelectable, this);if(cell){this.select(cell[0], cell[1]);}return;}var sm = this;var walk = function(row, col, step){return g.walkCells(row, col, step, sm.isSelectable, sm);};var k = e.getKey(), r = s.cell[0], c = s.cell[1];var newCell;switch(k){case e.TAB:if(e.shiftKey){newCell = walk(r, c-1, -1);}else{newCell = walk(r, c+1, 1);}break;case e.DOWN:newCell = walk(r+1, c, 1);break;case e.UP:newCell = walk(r-1, c, -1);break;case e.RIGHT:newCell = walk(r, c+1, 1);break;case e.LEFT:newCell = walk(r, c-1, -1);break;case e.ENTER:if(g.isEditor && !g.editing){g.startEditing(r, c);e.stopEvent();return;}break;};if(newCell){this.select(newCell[0], newCell[1]);e.stopEvent();}},acceptsNav : function(row, col, cm){return !cm.isHidden(col) && cm.isCellEditable(col, row);},onEditorKey : function(field, e){var k = e.getKey(), newCell, g = this.grid, ed = g.activeEditor;if(k == e.TAB){if(e.shiftKey){newCell = g.walkCells(ed.row, ed.col-1, -1, this.acceptsNav, this);}else{newCell = g.walkCells(ed.row, ed.col+1, 1, this.acceptsNav, this);}e.stopEvent();}else if(k == e.ENTER){ed.completeEdit();e.stopEvent();}else if(k == e.ESC){e.stopEvent();ed.cancelEdit();}if(newCell){g.startEditing(newCell[0], newCell[1]);}}});Ext.grid.EditorGridPanel = Ext.extend(Ext.grid.GridPanel, {clicksToEdit: 2,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.on("bodyscroll", this.stopEditing, this, [true]);if(this.clicksToEdit == 1){this.on("cellclick", this.onCellDblClick, this);}else {if(this.clicksToEdit == 'auto' && this.view.mainBody){this.view.mainBody.on("mousedown", this.onAutoEditClick, this);}this.on("celldblclick", this.onCellDblClick, this);}this.getGridEl().addClass("xedit-grid");},onCellDblClick : function(g, row, col){this.startEditing(row, col);},onAutoEditClick : function(e, t){if(e.button !== 0){return;}var row = this.view.findRowIndex(t);var col = this.view.findCellIndex(t);if(row !== false && col !== false){this.stopEditing();if(this.selModel.getSelectedCell){var sc = this.selModel.getSelectedCell();if(sc && sc.cell[0] === row && sc.cell[1] === col){this.startEditing(row, col);}}else{if(this.selModel.isSelected(row)){this.startEditing(row, col);}}}},onEditComplete : function(ed, value, startValue){this.editing = false;this.activeEditor = null;ed.un("specialkey", this.selModel.onEditorKey, this.selModel);var r = ed.record;var field = this.colModel.getDataIndex(ed.col);value = this.postEditValue(value, startValue, r, field);if(String(value) !== String(startValue)){var e = {grid: this,record: r,field: field,originalValue: startValue,value: value,row: ed.row,column: ed.col,cancel:false};if(this.fireEvent("validateedit", e) !== false && !e.cancel){r.set(field, e.value);delete e.cancel;this.fireEvent("afteredit", e);}}this.view.focusCell(ed.row, ed.col);},startEditing : function(row, col){this.stopEditing();if(this.colModel.isCellEditable(col, row)){this.view.ensureVisible(row, col, true);var r = this.store.getAt(row);var field = this.colModel.getDataIndex(col);var e = {grid: this,record: r,field: field,value: r.data[field],row: row,column: col,cancel:false};if(this.fireEvent("beforeedit", e) !== false && !e.cancel){this.editing = true;var ed = this.colModel.getCellEditor(col, row);if(!ed.rendered){ed.render(this.view.getEditorParent(ed));}(function(){ed.row = row;ed.col = col;ed.record = r;ed.on("complete", this.onEditComplete, this, {single: true});ed.on("specialkey", this.selModel.onEditorKey, this.selModel);this.activeEditor = ed;var v = this.preEditValue(r, field);ed.startEdit(this.view.getCell(row, col), v);}).defer(50, this);}}},preEditValue : function(r, field){return this.autoEncode && typeof value == 'string' ? Ext.util.Format.htmlDecode(r.data[field]) : r.data[field];},postEditValue : function(value, originalValue, r, field){return this.autoEncode && typeof value == 'string' ? Ext.util.Format.htmlEncode(value) : value;},stopEditing : function(cancel){if(this.activeEditor){this.activeEditor[cancel === true ? 'cancelEdit' : 'completeEdit']();}this.activeEditor = null;}});Ext.reg('editorgrid', Ext.grid.EditorGridPanel);Ext.grid.GridEditor = function(field, config){Ext.grid.GridEditor.superclass.constructor.call(this, field, config);field.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 = function(grid, source){this.grid = grid;this.store = new Ext.data.Store({recordType : Ext.grid.PropertyRecord});this.store.on('update', this.onUpdate, this);if(source){this.setSource(source);}Ext.grid.PropertyStore.superclass.constructor.call(this);};Ext.extend(Ext.grid.PropertyStore, Ext.util.Observable, {setSource : function(o){this.source = o;this.store.removeAll();var data = [];for(var k in o){if(this.isEditableValue(o[k])){data.push(new Ext.grid.PropertyRecord({name: k, value: o[k]}, k));}}this.store.loadRecords({records: data}, {}, true);},onUpdate : function(ds, record, type){if(type == Ext.data.Record.EDIT){var v = record.data['value'];var oldValue = record.modified['value'];if(this.grid.fireEvent('beforepropertychange', this.source, record.id, v, oldValue) !== false){this.source[record.id] = v;record.commit();this.grid.fireEvent('propertychange', this.source, record.id, v, oldValue);}else{record.reject();}}},getProperty : function(row){return this.store.getAt(row);},isEditableValue: function(val){if(Ext.isDate(val)){return true;}else if(typeof val == 'object' || typeof val == 'function'){return false;}return true;},setValue : function(prop, value){this.source[prop] = value;this.store.getById(prop).set('value', value);},getSource : function(){return this.source;}});Ext.grid.PropertyColumnModel = function(grid, store){this.grid = grid;var g = Ext.grid;g.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 = store;this.bselect = Ext.DomHelper.append(document.body, {tag: 'select', cls: 'x-grid-editor x-hide-display', children: [{tag: 'option', value: 'true', html: 'true'},{tag: 'option', value: 'false', html: 'false'}]});var f = Ext.form;var bfield = new f.Field({el:this.bselect,bselect : this.bselect,autoShow: true,getValue : function(){return this.bselect.value == 'true';}});this.editors = {'date' : new g.GridEditor(new f.DateField({selectOnFocus:true})),'string' : new g.GridEditor(new f.TextField({selectOnFocus:true})),'number' : new g.GridEditor(new f.NumberField({selectOnFocus:true, style:'text-align:left;'})),'boolean' : new g.GridEditor(bfield)};this.renderCellDelegate = this.renderCell.createDelegate(this);this.renderPropDelegate = this.renderProp.createDelegate(this);};Ext.extend(Ext.grid.PropertyColumnModel, Ext.grid.ColumnModel, {nameText : 'Name',valueText : 'Value',dateFormat : 'm/j/Y',renderDate : function(dateVal){return dateVal.dateFormat(this.dateFormat);},renderBool : function(bVal){return bVal ? 'true' : 'false';},isCellEditable : function(colIndex, rowIndex){return colIndex == 1;},getRenderer : function(col){return col == 1 ?this.renderCellDelegate : this.renderPropDelegate;},renderProp : function(v){return this.getPropertyName(v);},renderCell : function(val){var rv = val;if(Ext.isDate(val)){rv = this.renderDate(val);}else if(typeof val == 'boolean'){rv = this.renderBool(val);}return Ext.util.Format.htmlEncode(rv);},getPropertyName : function(name){var pn = this.grid.propertyNames;return pn && pn[name] ? pn[name] : name;},getCellEditor : function(colIndex, rowIndex){var p = this.store.getProperty(rowIndex);var n = p.data['name'], val = p.data['value'];if(this.grid.customEditors[n]){return this.grid.customEditors[n];}if(Ext.isDate(val)){return this.editors['date'];}else if(typeof val == 'number'){return this.editors['number'];}else if(typeof val == 'boolean'){return this.editors['boolean'];}else{return this.editors['string'];}}});Ext.grid.PropertyGrid = Ext.extend(Ext.grid.EditorGridPanel, {enableColumnMove:false,stripeRows:false,trackMouseOver: false,clicksToEdit:1,enableHdMenu : false,viewConfig : {forceFit:true},initComponent : function(){this.customEditors = this.customEditors || {};this.lastEditRow = null;var store = new Ext.grid.PropertyStore(this);this.propStore = store;var cm = new Ext.grid.PropertyColumnModel(this, store);store.store.sort('name', 'ASC');this.addEvents('beforepropertychange','propertychange');this.cm = cm;this.ds = store.store;Ext.grid.PropertyGrid.superclass.initComponent.call(this);this.selModel.on('beforecellselect', function(sm, rowIndex, colIndex){if(colIndex === 0){this.startEditing.defer(200, this, [rowIndex, 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(source){this.propStore.setSource(source);},getSource : function(){return this.propStore.getSource();}});Ext.grid.RowNumberer = function(config){Ext.apply(this, config);if(this.rowspan){this.renderer = this.renderer.createDelegate(this);}};Ext.grid.RowNumberer.prototype = {header: "",width: 23,sortable: false,fixed:true,menuDisabled:true,dataIndex: '',id: 'numberer',rowspan: undefined,renderer : function(v, p, record, rowIndex){if(this.rowspan){p.cellAttr = 'rowspan="'+this.rowspan+'"';}return rowIndex+1;}};Ext.grid.CheckboxSelectionModel = Ext.extend(Ext.grid.RowSelectionModel, {header: '<div class="x-grid3-hd-checker"> </div>',width: 20,sortable: false,menuDisabled:true,fixed:true,dataIndex: '',id: 'checker',initEvents : function(){Ext.grid.CheckboxSelectionModel.superclass.initEvents.call(this);this.grid.on('render', function(){var view = this.grid.getView();view.mainBody.on('mousedown', this.onMouseDown, this);Ext.fly(view.innerHd).on('mousedown', this.onHdMouseDown, this);}, this);},onMouseDown : function(e, t){if(e.button === 0 && t.className == 'x-grid3-row-checker'){e.stopEvent();var row = e.getTarget('.x-grid3-row');if(row){var index = row.rowIndex;if(this.isSelected(index)){this.deselectRow(index);}else{this.selectRow(index, true);}}}},onHdMouseDown : function(e, t){if(t.className == 'x-grid3-hd-checker'){e.stopEvent();var hd = Ext.fly(t.parentNode);var isChecked = hd.hasClass('x-grid3-hd-checker-on');if(isChecked){hd.removeClass('x-grid3-hd-checker-on');this.clearSelections();}else{hd.addClass('x-grid3-hd-checker-on');this.selectAll();}}},renderer : function(v, p, record){return '<div class="x-grid3-row-checker"> </div>';}});Ext.LoadMask = function(el, config){this.el = Ext.get(el);Ext.apply(this, config);if(this.store){this.store.on('beforeload', this.onBeforeLoad, this);this.store.on('load', this.onLoad, this);this.store.on('loadexception', this.onLoad, this);this.removeMask = Ext.value(this.removeMask, false);}else{var um = this.el.getUpdater();um.showLoadIndicator = false; um.on('beforeupdate', this.onBeforeLoad, this);um.on('update', this.onLoad, this);um.on('failure', this.onLoad, this);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('loadexception', this.onLoad, this);}else{var um = this.el.getUpdater();um.un('beforeupdate', this.onBeforeLoad, this);um.un('update', this.onLoad, this);um.un('failure', this.onLoad, this);}}};Ext.ProgressBar = Ext.extend(Ext.BoxComponent, {baseCls : 'x-progress',waitTimer : null,initComponent : function(){Ext.ProgressBar.superclass.initComponent.call(this);this.addEvents("update");},onRender : function(ct, position){Ext.ProgressBar.superclass.onRender.call(this, ct, position);var tpl = new Ext.Template('<div class="{cls}-wrap">','<div class="{cls}-inner">','<div class="{cls}-bar">','<div class="{cls}-text">','<div> </div>','</div>','</div>','<div class="{cls}-text {cls}-text-back">','<div> </div>','</div>','</div>','</div>');if(position){this.el = tpl.insertBefore(position, {cls: this.baseCls}, true);}else{this.el = tpl.append(ct, {cls: this.baseCls}, true);}if(this.id){this.el.dom.id = this.id;}var inner = this.el.dom.firstChild;this.progressBar = Ext.get(inner.firstChild);if(this.textEl){this.textEl = Ext.get(this.textEl);delete this.textTopEl;}else{this.textTopEl = Ext.get(this.progressBar.dom.firstChild);var textBackEl = Ext.get(inner.childNodes[1]);this.textTopEl.setStyle("z-index", 99).addClass('x-hidden');this.textEl = new Ext.CompositeElement([this.textTopEl.dom.firstChild, textBackEl.dom.firstChild]);this.textEl.setWidth(inner.offsetWidth);}if(this.value){this.updateProgress(this.value, this.text);}else{this.updateText(this.text);}this.setSize(this.width || 'auto', 'auto');this.progressBar.setHeight(inner.offsetHeight);},updateProgress : function(value, text){this.value = value || 0;if(text){this.updateText(text);}var w = Math.floor(value*this.el.dom.firstChild.offsetWidth);this.progressBar.setWidth(w);if(this.textTopEl){this.textTopEl.removeClass('x-hidden').setWidth(w);}this.fireEvent('update', this, value, text);return this;},wait : function(o){if(!this.waitTimer){var scope = this;o = o || {};this.waitTimer = Ext.TaskMgr.start({run: function(i){var inc = o.increment || 10;this.updateProgress(((((i+inc)%inc)+1)*(100/inc))*.01);},interval: o.interval || 1000,duration: o.duration,onStop: function(){if(o.fn){o.fn.apply(o.scope || this);}this.reset();},scope: scope});}return this;},isWaiting : function(){return this.waitTimer != null;},updateText : function(text){this.text = text || ' ';this.textEl.update(this.text);return this;},setSize : function(w, h){Ext.ProgressBar.superclass.setSize.call(this, w, h);if(this.textTopEl){var inner = this.el.dom.firstChild;this.textEl.setSize(inner.offsetWidth, inner.offsetHeight);}return this;},reset : function(hide){this.updateProgress(0);if(this.textTopEl){this.textTopEl.addClass('x-hidden');}if(this.waitTimer){this.waitTimer.onStop = null;Ext.TaskMgr.stop(this.waitTimer);this.waitTimer = null;}if(hide === true){this.hide();}return this;}});Ext.reg('progress', Ext.ProgressBar);Ext.debug = {};(function(){var cp;function createConsole(){var scriptPanel = new Ext.debug.ScriptsPanel();var logView = new Ext.debug.LogPanel();var tree = new Ext.debug.DomTree();var tabs = new Ext.TabPanel({activeTab: 0,border: false,tabPosition: 'bottom',items: [{title: 'Debug Console',layout:'border',items: [logView, scriptPanel]},{title: 'DOM Inspector',layout:'border',items: [tree]}]});cp = new Ext.Panel({id: 'x-debug-browser',title: 'Console',collapsible: true,animCollapse: false,style: 'position:absolute;left:0;bottom:0;',height:200,logView: logView,layout: 'fit',tools:[{id: 'close',handler: function(){cp.destroy();cp = null;Ext.EventManager.removeResizeListener(handleResize);}}],items: tabs});cp.render(document.body);cp.resizer = new Ext.Resizable(cp.el, {minHeight:50,handles: "n",pinned: true,transparent:true,resizeElement : function(){var box = this.proxy.getBox();this.proxy.hide();cp.setHeight(box.height);return box;}});function handleResize(){cp.setWidth(Ext.getBody().getViewSize().width);}Ext.EventManager.onWindowResize(handleResize);handleResize();}Ext.apply(Ext, {log : function(){if(!cp){createConsole();}cp.logView.log.apply(cp.logView, arguments);},logf : function(format, arg1, arg2, etc){Ext.log(String.format.apply(String, arguments));},dump : function(o){if(typeof o == 'string' || typeof o == 'number' || typeof o == 'undefined' || Ext.isDate(o)){Ext.log(o);}else if(!o){Ext.log("null");}else if(typeof o != "object"){Ext.log('Unknown return type');}else if(Ext.isArray(o)){Ext.log('['+o.join(',')+']');}else{var b = ["{\n"];for(var key in o){var to = typeof o[key];if(to != "function" && to != "object"){b.push(String.format(" {0}: {1},\n", key, o[key]));}}var s = b.join("");if(s.length > 3){s = s.substr(0, s.length-2);}Ext.log(s + "\n}");}},_timers : {},time : function(name){name = name || "def";Ext._timers[name] = new Date().getTime();},timeEnd : function(name, printResults){var t = new Date().getTime();name = name || "def";var v = String.format("{0} ms", t-Ext._timers[name]);Ext._timers[name] = new Date().getTime();if(printResults !== false){Ext.log('Timer ' + (name == "def" ? v : name + ": " + v));}return v;}});})();Ext.debug.ScriptsPanel = Ext.extend(Ext.Panel, {id:'x-debug-scripts',region: 'east',minWidth: 200,split: true,width: 350,border: false,layout:'anchor',style:'border-width:0 0 0 1px;',initComponent : function(){this.scriptField = new Ext.form.TextArea({anchor: '100% -26',style:'border-width:0;'});this.trapBox = new Ext.form.Checkbox({id: 'console-trap',boxLabel: 'Trap Errors',checked: true});this.toolbar = new Ext.Toolbar([{text: 'Run',scope: this,handler: this.evalScript},{text: 'Clear',scope: this,handler: this.clear},'->',this.trapBox,' ', ' ']);this.items = [this.toolbar, this.scriptField];Ext.debug.ScriptsPanel.superclass.initComponent.call(this);},evalScript : function(){var s = this.scriptField.getValue();if(this.trapBox.getValue()){try{var rt = eval(s);Ext.dump(rt === undefined? '(no return)' : rt);}catch(e){Ext.log(e.message || e.descript);}}else{var rt = eval(s);Ext.dump(rt === undefined? '(no return)' : rt);}},clear : function(){this.scriptField.setValue('');this.scriptField.focus();}});Ext.debug.LogPanel = Ext.extend(Ext.Panel, {autoScroll: true,region: 'center',border: false,style:'border-width:0 1px 0 0',log : function(){var markup = [ '<div style="padding:5px !important;border-bottom:1px solid #ccc;">',Ext.util.Format.htmlEncode(Array.prototype.join.call(arguments, ', ')).replace(/\n/g, '<br />').replace(/\s/g, ' '),'</div>'].join('');this.body.insertHtml('beforeend', markup);this.body.scrollTo('top', 100000);},clear : function(){this.body.update('');this.body.dom.scrollTop = 0;}});Ext.debug.DomTree = Ext.extend(Ext.tree.TreePanel, {enableDD:false ,lines:false,rootVisible:false,animate:false,hlColor:'ffff9c',autoScroll: true,region:'center',border:false,initComponent : function(){Ext.debug.DomTree.superclass.initComponent.call(this);var styles = false, hnode;var nonSpace = /^\s*$/;var html = Ext.util.Format.htmlEncode;var ellipsis = Ext.util.Format.ellipsis;var styleRe = /\s?([a-z\-]*)\:([^;]*)(?:[;\s\n\r]*)/gi;function findNode(n){if(!n || n.nodeType != 1 || n == document.body || n == document){return false;}var pn = [n], p = n;while((p = p.parentNode) && p.nodeType == 1 && p.tagName.toUpperCase() != 'HTML'){pn.unshift(p);}var cn = hnode;for(var i = 0, len = pn.length; i < len; i++){cn.expand();cn = cn.findChild('htmlNode', pn[i]);if(!cn){ return false;}}cn.select();var a = cn.ui.anchor;treeEl.dom.scrollTop = Math.max(0 ,a.offsetTop-10);cn.highlight();return true;}function nodeTitle(n){var s = n.tagName;if(n.id){s += '#'+n.id;}else if(n.className){s += '.'+n.className;}return s;}function onNodeSelect(t, n, last){return;if(last && last.unframe){last.unframe();}var props = {};if(n && n.htmlNode){if(frameEl.pressed){n.frame();}if(inspecting){return;}addStyle.enable();reload.setDisabled(n.leaf);var dom = n.htmlNode;stylePanel.setTitle(nodeTitle(dom));if(styles && !showAll.pressed){var s = dom.style ? dom.style.cssText : '';if(s){var m;while ((m = styleRe.exec(s)) != null){props[m[1].toLowerCase()] = m[2];}}}else if(styles){var cl = Ext.debug.cssList;var s = dom.style, fly = Ext.fly(dom);if(s){for(var i = 0, len = cl.length; i<len; i++){var st = cl[i];var v = s[st] || fly.getStyle(st);if(v != undefined && v !== null && v !== ''){props[st] = v;}}}}else{for(var a in dom){var v = dom[a];if((isNaN(a+10)) && v != undefined && v !== null && v !== '' && !(Ext.isGecko && a[0] == a[0].toUpperCase())){props[a] = v;}}}}else{if(inspecting){return;}addStyle.disable();reload.disabled();}stylesGrid.setSource(props);stylesGrid.treeNode = n;stylesGrid.view.fitColumns();}this.loader = new Ext.tree.TreeLoader();this.loader.load = function(n, cb){var isBody = n.htmlNode == document.body;var cn = n.htmlNode.childNodes;for(var i = 0, c; c = cn[i]; i++){if(isBody && c.id == 'x-debug-browser'){continue;}if(c.nodeType == 1){n.appendChild(new Ext.debug.HtmlNode(c));}else if(c.nodeType == 3 && !nonSpace.test(c.nodeValue)){n.appendChild(new Ext.tree.TreeNode({text:'<em>' + ellipsis(html(String(c.nodeValue)), 35) + '</em>',cls: 'x-tree-noicon'}));}}cb();};this.root = this.setRootNode(new Ext.tree.TreeNode('Ext'));hnode = this.root.appendChild(new Ext.debug.HtmlNode(document.getElementsByTagName('html')[0]));}});Ext.debug.HtmlNode = function(){var html = Ext.util.Format.htmlEncode;var ellipsis = Ext.util.Format.ellipsis;var nonSpace = /^\s*$/;var attrs = [{n: 'id', v: 'id'},{n: 'className', v: 'class'},{n: 'name', v: 'name'},{n: 'type', v: 'type'},{n: 'src', v: 'src'},{n: 'href', v: 'href'}];function hasChild(n){for(var i = 0, c; c = n.childNodes[i]; i++){if(c.nodeType == 1){return true;}}return false;}function renderNode(n, leaf){var tag = n.tagName.toLowerCase();var s = '<' + tag;for(var i = 0, len = attrs.length; i < len; i++){var a = attrs[i];var v = n[a.n];if(v && !nonSpace.test(v)){s += ' ' + a.v + '="<i>' + html(v) +'</i>"';}}var style = n.style ? n.style.cssText : '';if(style){s += ' style="<i>' + html(style.toLowerCase()) +'</i>"';}if(leaf && n.childNodes.length > 0){s+='><em>' + ellipsis(html(String(n.innerHTML)), 35) + '</em></'+tag+'>';}else if(leaf){s += ' />';}else{s += '>';}return s;}var HtmlNode = function(n){var leaf = !hasChild(n);this.htmlNode = n;this.tagName = n.tagName.toLowerCase();var attr = {text : renderNode(n, leaf),leaf : leaf,cls: 'x-tree-noicon'};HtmlNode.superclass.constructor.call(this, attr);this.attributes.htmlNode = n; if(!leaf){this.on('expand', this.onExpand, this);this.on('collapse', this.onCollapse, this);}};Ext.extend(HtmlNode, Ext.tree.AsyncTreeNode, {cls: 'x-tree-noicon',preventHScroll: true,refresh : function(highlight){var leaf = !hasChild(this.htmlNode);this.setText(renderNode(this.htmlNode, leaf));if(highlight){Ext.fly(this.ui.textNode).highlight();}},onExpand : function(){if(!this.closeNode && this.parentNode){this.closeNode = this.parentNode.insertBefore(new Ext.tree.TreeNode({text:'</' + this.tagName + '>',cls: 'x-tree-noicon'}), this.nextSibling);}else if(this.closeNode){this.closeNode.ui.show();}},onCollapse : function(){if(this.closeNode){this.closeNode.ui.hide();}},render : function(bulkRender){HtmlNode.superclass.render.call(this, bulkRender);},highlightNode : function(){},highlight : function(){},frame : function(){this.htmlNode.style.border = '1px solid #0000ff';},unframe : function(){this.htmlNode.style.border = '';}});return HtmlNode;}();