From f446f399259fb0403e79b3d99523c38e1cbc7cae Mon Sep 17 00:00:00 2001 From: Alan Knowles Date: Wed, 28 Jul 2010 14:42:17 +0800 Subject: [PATCH] roojs-core.js --- roojs-core.js | 11331 ------------------------------------------------ 1 file changed, 11331 deletions(-) diff --git a/roojs-core.js b/roojs-core.js index 8db28ef9c7..e69de29bb2 100644 --- a/roojs-core.js +++ b/roojs-core.js @@ -1,11331 +0,0 @@ - - - - - - - - -window["undefined"] = window["undefined"]; - - - -var Roo = {}; - - - - -Roo.apply = function(o, c, A){ - if(A){ - - Roo.apply(o, A); - } - if(o && c && typeof c == 'object'){ - for(var p in c){ - o[p] = c[p]; - } - } - return o; -}; - - -(function(){ - var B = 0; - var ua = navigator.userAgent.toLowerCase(); - - var C = document.compatMode == "CSS1Compat", - D = ua.indexOf("opera") > -1, - E = (/webkit|khtml/).test(ua), - F = ua.indexOf("msie") > -1, - G = ua.indexOf("msie 7") > -1, - H = !E && ua.indexOf("gecko") > -1, - I = F && !C, - J = (ua.indexOf("windows") != -1 || ua.indexOf("win32") != -1), - K = (ua.indexOf("macintosh") != -1 || ua.indexOf("mac os x") != -1), - L = (ua.indexOf("linux") != -1), - M = window.location.href.toLowerCase().indexOf("https") === 0; - - - if(F && !G){ - try{ - document.execCommand("BackgroundImageCache", false, true); - }catch(e){} - } - - - Roo.apply(Roo, { - - - isStrict : C, - - - isSecure : M, - - - isReady : false, - - - - debug: false, - - - - enableGarbageCollector : true, - - - - enableListenerCollection:false, - - - - SSL_SECURE_URL : "javascript:false", - - - - BLANK_IMAGE_URL : "http:/"+"/localhost/s.gif", - - emptyFn : function(){}, - - - - applyIf : function(o, c){ - if(o && c){ - for(var p in c){ - if(typeof o[p] == "undefined"){ o[p] = c[p]; } - } - } - return o; - }, - - - - addBehaviors : function(o){ - if(!Roo.isReady){ - Roo.onReady(function(){ - Roo.addBehaviors(o); - }); - return; - } - var N = {}; - for(var b in o){ - var parts = b.split('@'); - if(parts[1]){ - var s = parts[0]; - if(!N[s]){ - N[s] = Roo.select(s); - } - - N[s].on(parts[1], o[b]); - } - } - - N = null; - }, - - - - id : function(el, O){ - O = O || "roo-gen"; - el = Roo.getDom(el); - var id = O + (++B); - return el ? (el.id ? el.id : (el.id = id)) : id; - }, - - - - - extend : function(){ - - var io = function(o){ - for(var m in o){ - this[m] = o[m]; - } - }; - return function(sb, sp, P){ - if(typeof sp == 'object'){ - P = sp; - sp = sb; - sb = function(){sp.apply(this, arguments);}; - } - var F = function(){}, sbp, spp = sp.prototype; - F.prototype = spp; - sbp = sb.prototype = new F(); - sbp.constructor=sb; - sb.superclass=spp; - - if(spp.constructor == Object.prototype.constructor){ - spp.constructor=sp; - - } - - - sb.override = function(o){ - Roo.override(sb, o); - }; - sbp.override = io; - Roo.override(sb, P); - return sb; - }; - }(), - - - - override : function(P, Q){ - if(Q){ - var p = P.prototype; - for(var method in Q){ - p[method] = Q[method]; - } - } - }, - - - namespace : function(){ - var a=arguments, o=null, i, j, d, rt; - for (i=0; i>> 0; - if (typeof B != "function") - throw new TypeError(); - - var D = new Array(C); - var E = arguments[1]; - for (var i = 0; i < C; i++) - { - if (i in this) - D[i] = B.call(E, this[i], i, this); - } - - return D; - } - -}); - - - - - - - - - - - - - - - - -Date.prototype.getElapsed = function(A) { - return Math.abs((A || new Date()).getTime()-this.getTime()); -}; - - - - -Date.parseFunctions = {count:0}; - -Date.parseRegexes = []; - -Date.formatFunctions = {count:0}; - - -Date.prototype.dateFormat = function(B) { - if (Date.formatFunctions[B] == null) { - Date.createNewFormat(B); - } - var C = Date.formatFunctions[B]; - return this[C](); -}; - - - - -Date.prototype.format = Date.prototype.dateFormat; - - -Date.createNewFormat = function(D) { - var E = "format" + Date.formatFunctions.count++; - Date.formatFunctions[D] = E; - var F = "Date.prototype." + E + " = function(){return "; - var G = false; - var ch = ''; - for (var i = 0; i < D.length; ++i) { - ch = D.charAt(i); - if (!G && ch == "\\") { - G = true; - } - else if (G) { - G = false; - F += "'" + String.escape(ch) + "' + "; - } - else { - F += Date.getFormatCode(ch); - } - } - - - eval(F.substring(0, F.length - 3) + ";}"); -}; - - -Date.getFormatCode = function(H) { - switch (H) { - case "d": - return "String.leftPad(this.getDate(), 2, '0') + "; - case "D": - return "Date.dayNames[this.getDay()].substring(0, 3) + "; - case "j": - return "this.getDate() + "; - case "l": - return "Date.dayNames[this.getDay()] + "; - case "S": - return "this.getSuffix() + "; - case "w": - return "this.getDay() + "; - case "z": - return "this.getDayOfYear() + "; - case "W": - return "this.getWeekOfYear() + "; - case "F": - return "Date.monthNames[this.getMonth()] + "; - case "m": - return "String.leftPad(this.getMonth() + 1, 2, '0') + "; - case "M": - return "Date.monthNames[this.getMonth()].substring(0, 3) + "; - case "n": - return "(this.getMonth() + 1) + "; - case "t": - return "this.getDaysInMonth() + "; - case "L": - return "(this.isLeapYear() ? 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 "O": - return "this.getGMTOffset() + "; - case "T": - return "this.getTimezone() + "; - case "Z": - return "(this.getTimezoneOffset() * -60) + "; - default: - return "'" + String.escape(H) + "' + "; - } -}; - - - -Date.parseDate = function(I, J) { - if (Date.parseFunctions[J] == null) { - Date.createParser(J); - } - var K = Date.parseFunctions[J]; - return Date[K](I); -}; - - -Date.createParser = function(L) { - var M = "parse" + Date.parseFunctions.count++; - var N = Date.parseRegexes.length; - var O = 1; - Date.parseFunctions[L] = M; - - var P = "Date." + M + " = function(input){\n" - + "var y = -1, m = -1, d = -1, h = -1, i = -1, s = -1, o, z, v;\n" - + "var d = new Date();\n" - + "y = d.getFullYear();\n" - + "m = d.getMonth();\n" - + "d = d.getDate();\n" - + "var results = input.match(Date.parseRegexes[" + N + "]);\n" - + "if (results && results.length > 0) {"; - var Q = ""; - - var R = false; - var ch = ''; - for (var i = 0; i < L.length; ++i) { - ch = L.charAt(i); - if (!R && ch == "\\") { - R = true; - } - else if (R) { - R = false; - Q += String.escape(ch); - } - else { - var obj = Date.formatCodeToRegex(ch, O); - O += obj.g; - Q += obj.s; - if (obj.g && obj.c) { - P += obj.c; - } - } - } - - - P += "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[N] = new RegExp("^" + Q + "$"); - - - eval(P); -}; - - -Date.formatCodeToRegex = function(S, T) { - switch (S) { - case "D": - return {g:0, - c:null, - s:"(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)"}; - case "j": - return {g:1, - c:"d = parseInt(results[" + T + "], 10);\n", - s:"(\\d{1,2})"}; - case "d": - return {g:1, - c:"d = parseInt(results[" + T + "], 10);\n", - s:"(\\d{2})"}; - case "l": - return {g:0, - c:null, - s:"(?:" + Date.dayNames.join("|") + ")"}; - case "S": - return {g:0, - c:null, - s:"(?:st|nd|rd|th)"}; - case "w": - return {g:0, - c:null, - s:"\\d"}; - 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.monthNumbers[results[" + T + "].substring(0, 3)], 10);\n", - s:"(" + Date.monthNames.join("|") + ")"}; - case "M": - return {g:1, - c:"m = parseInt(Date.monthNumbers[results[" + T + "]], 10);\n", - s:"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"}; - case "n": - return {g:1, - c:"m = parseInt(results[" + T + "], 10) - 1;\n", - s:"(\\d{1,2})"}; - case "m": - return {g:1, - c:"m = parseInt(results[" + T + "], 10) - 1;\n", - s:"(\\d{2})"}; - case "t": - return {g:0, - c:null, - s:"\\d{1,2}"}; - case "L": - return {g:0, - c:null, - s:"(?:1|0)"}; - case "Y": - return {g:1, - c:"y = parseInt(results[" + T + "], 10);\n", - s:"(\\d{4})"}; - case "y": - return {g:1, - c:"var ty = parseInt(results[" + T + "], 10);\n" - + "y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n", - s:"(\\d{1,2})"}; - case "a": - return {g:1, - c:"if (results[" + T + "] == '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[" + T + "] == '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[" + T + "], 10);\n", - s:"(\\d{1,2})"}; - case "h": - case "H": - return {g:1, - c:"h = parseInt(results[" + T + "], 10);\n", - s:"(\\d{2})"}; - case "i": - return {g:1, - c:"i = parseInt(results[" + T + "], 10);\n", - s:"(\\d{2})"}; - case "s": - return {g:1, - c:"s = parseInt(results[" + T + "], 10);\n", - s:"(\\d{2})"}; - case "O": - return {g:1, - c:[ - "o = results[", T, "];\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 "T": - return {g:0, - c:null, - s:"[A-Z]{1,4}"}; - case "Z": - return {g:1, - c:"z = results[" + T + "];\n" - + "z = (-43200 <= z*1 && z*1 <= 50400)? z : null;\n", - s:"([+\-]?\\d{1,5})"}; - default: - return {g:0, - c:null, - s:String.escape(S)}; - } -}; - - - -Date.prototype.getTimezone = function() { - return this.toString().replace(/^.*? ([A-Z]{1,4})[\-+][0-9]{4} .*$/, "$1"); -}; - - - -Date.prototype.getGMTOffset = function() { - return (this.getTimezoneOffset() > 0 ? "-" : "+") - + String.leftPad(Math.abs(Math.floor(this.getTimezoneOffset() / 60)), 2, "0") - + String.leftPad(this.getTimezoneOffset() % 60, 2, "0"); -}; - - - -Date.prototype.getDayOfYear = function() { - var U = 0; - Date.daysInMonth[1] = this.isLeapYear() ? 29 : 28; - for (var i = 0; i < this.getMonth(); ++i) { - U += Date.daysInMonth[i]; - } - return U + this.getDate() - 1; -}; - - - -Date.prototype.getWeekOfYear = function() { - - var V = this.getDayOfYear() + (4 - this.getDay()); - - var W = new Date(this.getFullYear(), 0, 1); - var X = (7 - W.getDay() + 4); - return String.leftPad(((V - X) / 7) + 1, 2, "0"); -}; - - - -Date.prototype.isLeapYear = function() { - var Y = this.getFullYear(); - return ((Y & 3) == 0 && (Y % 100 || (Y % 400 == 0 && Y))); -}; - - - -Date.prototype.getFirstDayOfMonth = function() { - var Z = (this.getDay() - (this.getDate() - 1)) % 7; - return (Z < 0) ? (Z + 7) : Z; -}; - - - -Date.prototype.getLastDayOfMonth = function() { - var a = (this.getDay() + (Date.daysInMonth[this.getMonth()] - this.getDate())) % 7; - return (a < 0) ? (a + 7) : a; -}; - - - - -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.dayNames = - ["Sunday", - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday"]; - - -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.prototype.clone = function() { - return new Date(this.getTime()); -}; - - - -Date.prototype.clearTime = function(b){ - if(b){ - return this.clone().clearTime(); - } - - this.setHours(0); - this.setMinutes(0); - this.setSeconds(0); - this.setMilliseconds(0); - return this; -}; - - - -if(Roo.isSafari){ - Date.brokenSetMonth = Date.prototype.setMonth; - Date.prototype.setMonth = function(c){ - if(c <= -1){ - var n = Math.ceil(-c); - 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(e, f){ - var d = this.clone(); - if (!e || f === 0) return d; - switch(e.toLowerCase()){ - case Date.MILLI: - d.setMilliseconds(this.getMilliseconds() + f); - break; - case Date.SECOND: - d.setSeconds(this.getSeconds() + f); - break; - case Date.MINUTE: - d.setMinutes(this.getMinutes() + f); - break; - case Date.HOUR: - d.setHours(this.getHours() + f); - break; - case Date.DAY: - d.setDate(this.getDate() + f); - break; - case Date.MONTH: - var a = this.getDate(); - if(a > 28){ - a = Math.min(a, this.getFirstDateOfMonth().add('mo', f).getLastDateOfMonth().getDate()); - } - - d.setDate(a); - d.setMonth(this.getMonth() + f); - break; - case Date.YEAR: - d.setFullYear(this.getFullYear() + f); - break; - } - return d; -}; - - - -Roo.lib.Dom = { - getViewWidth : function(A) { - return A ? this.getDocumentWidth() : this.getViewportWidth(); - }, - - getViewHeight : function(B) { - return B ? this.getDocumentHeight() : this.getViewportHeight(); - }, - - getDocumentHeight: function() { - var C = (document.compatMode != "CSS1Compat") ? document.body.scrollHeight : document.documentElement.scrollHeight; - return Math.max(C, this.getViewportHeight()); - }, - - getDocumentWidth: function() { - var D = (document.compatMode != "CSS1Compat") ? document.body.scrollWidth : document.documentElement.scrollWidth; - return Math.max(D, this.getViewportWidth()); - }, - - getViewportHeight: function() { - var E = self.innerHeight; - var F = document.compatMode; - - if ((F || Roo.isIE) && !Roo.isOpera) { - E = (F == "CSS1Compat") ? - document.documentElement.clientHeight : - document.body.clientHeight; - } - - return E; - }, - - getViewportWidth: function() { - var G = self.innerWidth; - var H = document.compatMode; - - if (H || Roo.isIE) { - G = (H == "CSS1Compat") ? - document.documentElement.clientWidth : - document.body.clientWidth; - } - return G; - }, - - isAncestor : function(p, c) { - p = Roo.getDom(p); - c = Roo.getDom(c); - if (!p || !c) { - return false; - } - - if (p.contains && !Roo.isSafari) { - return p.contains(c); - } else if (p.compareDocumentPosition) { - return !!(p.compareDocumentPosition(c) & 16); - } else { - var parent = c.parentNode; - while (parent) { - if (parent == p) { - return true; - } - else if (!parent.tagName || parent.tagName.toUpperCase() == "HTML") { - return false; - } - - parent = parent.parentNode; - } - return false; - } - }, - - getRegion : function(el) { - return Roo.lib.Region.getRegion(el); - }, - - getY : function(el) { - return this.getXY(el)[1]; - }, - - getX : function(el) { - return this.getXY(el)[0]; - }, - - getXY : function(el) { - var p, pe, b, I, bd = document.body; - el = Roo.getDom(el); - var J = Roo.lib.AnimBase.fly; - if (el.getBoundingClientRect) { - b = el.getBoundingClientRect(); - I = J(document).getScroll(); - return [b.left + I.left, b.top + I.top]; - } - var x = 0, y = 0; - - p = el; - - var K = J(el).getStyle("position") == "absolute"; - - while (p) { - - x += p.offsetLeft; - y += p.offsetTop; - - if (!K && J(p).getStyle("position") == "absolute") { - K = true; - } - - if (Roo.isGecko) { - pe = J(p); - - var bt = parseInt(pe.getStyle("borderTopWidth"), 10) || 0; - var bl = parseInt(pe.getStyle("borderLeftWidth"), 10) || 0; - - - x += bl; - y += bt; - - - if (p != el && pe.getStyle('overflow') != 'visible') { - x += bl; - y += bt; - } - } - - p = p.offsetParent; - } - - if (Roo.isSafari && K) { - x -= bd.offsetLeft; - y -= bd.offsetTop; - } - - if (Roo.isGecko && !K) { - var dbd = J(bd); - x += parseInt(dbd.getStyle("borderLeftWidth"), 10) || 0; - y += parseInt(dbd.getStyle("borderTopWidth"), 10) || 0; - } - - - p = el.parentNode; - while (p && p != bd) { - if (!Roo.isOpera || (p.tagName != 'TR' && J(p).getStyle("display") != "inline")) { - x -= p.scrollLeft; - y -= p.scrollTop; - } - - p = p.parentNode; - } - return [x, y]; - }, - - - - - setXY : function(el, xy) { - el = Roo.fly(el, '_setXY'); - el.position(); - var L = el.translatePoints(xy); - if (xy[0] !== false) { - el.dom.style.left = L.left + "px"; - } - if (xy[1] !== false) { - el.dom.style.top = L.top + "px"; - } - }, - - setX : function(el, x) { - this.setXY(el, [x, false]); - }, - - setY : function(el, y) { - this.setXY(el, [false, y]); - } -}; - - - - -Roo.lib.Event = function() { - var A = false; - var B = []; - var C = []; - var D = 0; - var E = []; - var F = 0; - var G = null; - - return { - POLL_RETRYS: 200, - POLL_INTERVAL: 20, - EL: 0, - TYPE: 1, - FN: 2, - WFN: 3, - OBJ: 3, - ADJ_SCOPE: 4, - _interval: null, - - startInterval: function() { - if (!this._interval) { - var self = this; - var callback = function() { - self._tryPreloadAttach(); - }; - this._interval = setInterval(callback, this.POLL_INTERVAL); - - } - }, - - onAvailable: function(h, k, m, n) { - E.push({ id: h, - fn: k, - obj: m, - override: n, - checkReady: false }); - - D = this.POLL_RETRYS; - this.startInterval(); - }, - - - addListener: function(el, o, fn) { - el = Roo.getDom(el); - if (!el || !fn) { - return false; - } - - if ("unload" == o) { - C[C.length] = - [el, o, fn]; - return true; - } - - var p = function(e) { - return fn(Roo.lib.Event.getEvent(e)); - }; - - var li = [el, o, fn, p]; - - var q = B.length; - B[q] = li; - - this.doAdd(el, o, p, false); - return true; - - }, - - - removeListener: function(el, r, fn) { - var i, s; - - el = Roo.getDom(el); - - if(!fn) { - return this.purgeElement(el, false, r); - } - - - if ("unload" == r) { - - for (i = 0,s = C.length; i < s; i++) { - var li = C[i]; - if (li && - li[0] == el && - li[1] == r && - li[2] == fn) { - C.splice(i, 1); - return true; - } - } - - return false; - } - - var u = null; - - - var v = arguments[3]; - - if ("undefined" == typeof v) { - v = this._getCacheIndex(el, r, fn); - } - - if (v >= 0) { - u = B[v]; - } - - if (!el || !u) { - return false; - } - - - this.doRemove(el, r, u[this.WFN], false); - - delete B[v][this.WFN]; - delete B[v][this.FN]; - B.splice(v, 1); - - return true; - - }, - - - getTarget: function(ev, w) { - ev = ev.browserEvent || ev; - var t = ev.target || ev.srcElement; - return this.resolveTextNode(t); - }, - - - resolveTextNode: function(z) { - if (Roo.isSafari && z && 3 == z.nodeType) { - return z.parentNode; - } else { - return z; - } - }, - - - getPageX: function(ev) { - ev = ev.browserEvent || ev; - var x = ev.pageX; - if (!x && 0 !== x) { - x = ev.clientX || 0; - - if (Roo.isIE) { - x += this.getScroll()[1]; - } - } - - return x; - }, - - - getPageY: function(ev) { - ev = ev.browserEvent || ev; - var y = ev.pageY; - if (!y && 0 !== y) { - y = ev.clientY || 0; - - if (Roo.isIE) { - y += this.getScroll()[0]; - } - } - - - return y; - }, - - - getXY: function(ev) { - ev = ev.browserEvent || ev; - return [this.getPageX(ev), this.getPageY(ev)]; - }, - - - getRelatedTarget: function(ev) { - ev = ev.browserEvent || ev; - var t = ev.relatedTarget; - if (!t) { - if (ev.type == "mouseout") { - t = ev.toElement; - } else if (ev.type == "mouseover") { - t = ev.fromElement; - } - } - - return this.resolveTextNode(t); - }, - - - getTime: function(ev) { - ev = ev.browserEvent || ev; - if (!ev.time) { - var t = new Date().getTime(); - try { - ev.time = t; - } catch(ex) { - this.lastError = ex; - return t; - } - } - - return ev.time; - }, - - - stopEvent: function(ev) { - this.stopPropagation(ev); - this.preventDefault(ev); - }, - - - stopPropagation: function(ev) { - ev = ev.browserEvent || ev; - if (ev.stopPropagation) { - ev.stopPropagation(); - } else { - ev.cancelBubble = true; - } - }, - - - preventDefault: function(ev) { - ev = ev.browserEvent || ev; - if(ev.preventDefault) { - ev.preventDefault(); - } else { - ev.returnValue = false; - } - }, - - - getEvent: function(e) { - var ev = e || window.event; - if (!ev) { - var c = this.getEvent.caller; - while (c) { - ev = c.arguments[0]; - if (ev && Event == ev.constructor) { - break; - } - - c = c.caller; - } - } - return ev; - }, - - - getCharCode: function(ev) { - ev = ev.browserEvent || ev; - return ev.charCode || ev.keyCode || 0; - }, - - - _getCacheIndex: function(el, AA, fn) { - for (var i = 0,s = B.length; i < s; ++i) { - var li = B[i]; - if (li && - li[this.FN] == fn && - li[this.EL] == el && - li[this.TYPE] == AA) { - return i; - } - } - - return -1; - }, - - - elCache: {}, - - - getEl: function(id) { - return document.getElementById(id); - }, - - - clearCache: function() { - }, - - - _load: function(e) { - A = true; - var EU = Roo.lib.Event; - - - if (Roo.isIE) { - EU.doRemove(window, "load", EU._load); - } - }, - - - _tryPreloadAttach: function() { - - if (this.locked) { - return false; - } - - - this.locked = true; - - - var AB = !A; - if (!AB) { - AB = (D > 0); - } - - - var AC = []; - for (var i = 0,s = E.length; i < s; ++i) { - var item = E[i]; - if (item) { - var el = this.getEl(item.id); - - if (el) { - if (!item.checkReady || - A || - el.nextSibling || - (document && document.body)) { - - var scope = el; - if (item.override) { - if (item.override === true) { - scope = item.obj; - } else { - scope = item.override; - } - } - - item.fn.call(scope, item.obj); - E[i] = null; - } - } else { - AC.push(item); - } - } - } - - - D = (AC.length === 0) ? 0 : D - 1; - - if (AB) { - - this.startInterval(); - } else { - clearInterval(this._interval); - this._interval = null; - } - - - this.locked = false; - - return true; - - }, - - - purgeElement: function(el, AD, AE) { - var AF = this.getListeners(el, AE); - if (AF) { - for (var i = 0,s = AF.length; i < s; ++i) { - var l = AF[i]; - this.removeListener(el, l.type, l.fn); - } - } - - if (AD && el && el.childNodes) { - for (i = 0,s = el.childNodes.length; i < s; ++i) { - this.purgeElement(el.childNodes[i], AD, AE); - } - } - }, - - - getListeners: function(el, AG) { - var AH = [], AI; - if (!AG) { - AI = [B, C]; - } else if (AG == "unload") { - AI = [C]; - } else { - AI = [B]; - } - - for (var j = 0; j < AI.length; ++j) { - var searchList = AI[j]; - if (searchList && searchList.length > 0) { - for (var i = 0,s = searchList.length; i < s; ++i) { - var l = searchList[i]; - if (l && l[this.EL] === el && - (!AG || AG === l[this.TYPE])) { - AH.push({ - type: l[this.TYPE], - fn: l[this.FN], - obj: l[this.OBJ], - adjust: l[this.ADJ_SCOPE], - index: i - }); - } - } - } - } - - return (AH.length) ? AH : null; - }, - - - _unload: function(e) { - - var EU = Roo.lib.Event, i, j, l, AJ, AK; - - for (i = 0,AJ = C.length; i < AJ; ++i) { - l = C[i]; - if (l) { - var scope = window; - if (l[EU.ADJ_SCOPE]) { - if (l[EU.ADJ_SCOPE] === true) { - scope = l[EU.OBJ]; - } else { - scope = l[EU.ADJ_SCOPE]; - } - } - - l[EU.FN].call(scope, EU.getEvent(e), l[EU.OBJ]); - C[i] = null; - l = null; - scope = null; - } - } - - - C = null; - - if (B && B.length > 0) { - j = B.length; - while (j) { - AK = j - 1; - l = B[AK]; - if (l) { - EU.removeListener(l[EU.EL], l[EU.TYPE], - l[EU.FN], AK); - } - - j = j - 1; - } - - l = null; - - EU.clearCache(); - } - - - EU.doRemove(window, "unload", EU._unload); - - }, - - - getScroll: function() { - var dd = document.documentElement, db = document.body; - if (dd && (dd.scrollTop || dd.scrollLeft)) { - return [dd.scrollTop, dd.scrollLeft]; - } else if (db) { - return [db.scrollTop, db.scrollLeft]; - } else { - return [0, 0]; - } - }, - - - doAdd: function () { - if (window.addEventListener) { - return function(el, AL, fn, AM) { - el.addEventListener(AL, fn, (AM)); - }; - } else if (window.attachEvent) { - return function(el, AL, fn, AM) { - el.attachEvent("on" + AL, fn); - }; - } else { - return function() { - }; - } - }(), - - - doRemove: function() { - if (window.removeEventListener) { - return function (el, AL, fn, AM) { - el.removeEventListener(AL, fn, (AM)); - }; - } else if (window.detachEvent) { - return function (el, AL, fn) { - el.detachEvent("on" + AL, fn); - }; - } else { - return function() { - }; - } - }() - }; - -}(); -(function() { - - var E = Roo.lib.Event; - E.on = E.addListener; - E.un = E.removeListener; - - if (document && document.body) { - E._load(); - } else { - E.doAdd(window, "load", E._load); - } - - E.doAdd(window, "unload", E._unload); - E._tryPreloadAttach(); -})(); - - - - - -(function() { - - Roo.lib.Ajax = { - request : function(A, B, cb, C, D) { - if(D){ - var hs = D.headers; - if(hs){ - for(var h in hs){ - if(hs.hasOwnProperty(h)){ - this.initHeader(h, hs[h], false); - } - } - } - if(D.xmlData){ - this.initHeader('Content-Type', 'text/xml', false); - A = 'POST'; - C = D.xmlData; - } - } - - return this.asyncRequest(A, B, cb, C); - }, - - serializeForm : function(E) { - if(typeof E == 'string') { - E = (document.getElementById(E) || document.forms[E]); - } - - var el, F, G, H, I = '', J = false; - for (var i = 0; i < E.elements.length; i++) { - el = E.elements[i]; - H = E.elements[i].disabled; - F = E.elements[i].name; - G = E.elements[i].value; - - if (!H && F){ - switch (el.type) - { - case 'select-one': - case 'select-multiple': - for (var j = 0; j < el.options.length; j++) { - if (el.options[j].selected) { - if (Roo.isIE) { - I += encodeURIComponent(F) + '=' + encodeURIComponent(el.options[j].attributes['value'].specified ? el.options[j].value : el.options[j].text) + '&'; - } - else { - I += encodeURIComponent(F) + '=' + encodeURIComponent(el.options[j].hasAttribute('value') ? el.options[j].value : el.options[j].text) + '&'; - } - } - } - break; - case 'radio': - case 'checkbox': - if (el.checked) { - I += encodeURIComponent(F) + '=' + encodeURIComponent(G) + '&'; - } - break; - case 'file': - - case undefined: - - case 'reset': - - case 'button': - - break; - case 'submit': - if(J == false) { - I += encodeURIComponent(F) + '=' + encodeURIComponent(G) + '&'; - J = true; - } - break; - default: - I += encodeURIComponent(F) + '=' + encodeURIComponent(G) + '&'; - break; - } - } - } - - I = I.substr(0, I.length - 1); - return I; - }, - - headers:{}, - - hasHeaders:false, - - useDefaultHeader:true, - - defaultPostHeader:'application/x-www-form-urlencoded', - - useDefaultXhrHeader:true, - - defaultXhrHeader:'XMLHttpRequest', - - hasDefaultHeaders:true, - - defaultHeaders:{}, - - poll:{}, - - timeout:{}, - - pollInterval:50, - - transactionId:0, - - setProgId:function(id) - { - this.activeX.unshift(id); - }, - - setDefaultPostHeader:function(b) - { - this.useDefaultHeader = b; - }, - - setDefaultXhrHeader:function(b) - { - this.useDefaultXhrHeader = b; - }, - - setPollingInterval:function(i) - { - if (typeof i == 'number' && isFinite(i)) { - this.pollInterval = i; - } - }, - - createXhrObject:function(K) - { - var L,M; - try - { - - M = new XMLHttpRequest(); - - L = { conn:M, tId:K }; - } - catch(e) - { - for (var i = 0; i < this.activeX.length; ++i) { - try - { - - http = new ActiveXObject(this.activeX[i]); - - obj = { conn:http, tId:transactionId }; - break; - } - catch(e) { - } - } - } - finally - { - return L; - } - }, - - getConnectionObject:function() - { - var o; - var N = this.transactionId; - - try - { - o = this.createXhrObject(N); - if (o) { - this.transactionId++; - } - } - catch(e) { - } - finally - { - return o; - } - }, - - asyncRequest:function(O, P, Q, R) - { - var o = this.getConnectionObject(); - - if (!o) { - return null; - } - else { - o.conn.open(O, P, true); - - if (this.useDefaultXhrHeader) { - if (!this.defaultHeaders['X-Requested-With']) { - this.initHeader('X-Requested-With', this.defaultXhrHeader, true); - } - } - - if(R && this.useDefaultHeader){ - this.initHeader('Content-Type', this.defaultPostHeader); - } - - if (this.hasDefaultHeaders || this.hasHeaders) { - this.setHeader(o); - } - - - this.handleReadyState(o, Q); - o.conn.send(R || null); - - return o; - } - }, - - handleReadyState:function(o, S) - { - var T = this; - - if (S && S.timeout) { - this.timeout[o.tId] = window.setTimeout(function() { - T.abort(o, S, true); - }, S.timeout); - } - - - this.poll[o.tId] = window.setInterval( - function() { - if (o.conn && o.conn.readyState == 4) { - window.clearInterval(T.poll[o.tId]); - delete T.poll[o.tId]; - - if(S && S.timeout) { - window.clearTimeout(T.timeout[o.tId]); - delete T.timeout[o.tId]; - } - - - T.handleTransactionResponse(o, S); - } - } - , this.pollInterval); - }, - - handleTransactionResponse:function(o, U, V) - { - - if (!U) { - this.releaseObject(o); - return; - } - - var W, X; - - try - { - if (o.conn.status !== undefined && o.conn.status != 0) { - W = o.conn.status; - } - else { - W = 13030; - } - } - catch(e) { - - - httpStatus = 13030; - } - - if (W >= 200 && W < 300) { - X = this.createResponseObject(o, U.argument); - if (U.success) { - if (!U.scope) { - U.success(X); - } - else { - - - U.success.apply(U.scope, [X]); - } - } - } - else { - switch (W) { - - case 12002: - case 12029: - case 12030: - case 12031: - case 12152: - case 13030: - X = this.createExceptionObject(o.tId, U.argument, (V ? V : false)); - if (U.failure) { - if (!U.scope) { - U.failure(X); - } - else { - U.failure.apply(U.scope, [X]); - } - } - break; - default: - X = this.createResponseObject(o, U.argument); - if (U.failure) { - if (!U.scope) { - U.failure(X); - } - else { - U.failure.apply(U.scope, [X]); - } - } - } - } - - - this.releaseObject(o); - X = null; - }, - - createResponseObject:function(o, Y) - { - var Z = {}; - var a = {}; - - try - { - var headerStr = o.conn.getAllResponseHeaders(); - var header = headerStr.split('\n'); - for (var i = 0; i < header.length; i++) { - var delimitPos = header[i].indexOf(':'); - if (delimitPos != -1) { - a[header[i].substring(0, delimitPos)] = header[i].substring(delimitPos + 2); - } - } - } - catch(e) { - } - - - Z.tId = o.tId; - Z.status = o.conn.status; - Z.statusText = o.conn.statusText; - Z.getResponseHeader = a; - Z.getAllResponseHeaders = headerStr; - Z.responseText = o.conn.responseText; - Z.responseXML = o.conn.responseXML; - - if (typeof Y !== undefined) { - Z.argument = Y; - } - - return Z; - }, - - createExceptionObject:function(c, d, f) - { - var g = 0; - var k = 'communication failure'; - var l = -1; - var m = 'transaction aborted'; - - var n = {}; - - n.tId = c; - if (f) { - n.status = l; - n.statusText = m; - } - else { - n.status = g; - n.statusText = k; - } - - if (d) { - n.argument = d; - } - - return n; - }, - - initHeader:function(p, q, r) - { - var s = (r) ? this.defaultHeaders : this.headers; - - if (s[p] === undefined) { - s[p] = q; - } - else { - - - s[p] = q + "," + s[p]; - } - - if (r) { - this.hasDefaultHeaders = true; - } - else { - this.hasHeaders = true; - } - }, - - - setHeader:function(o) - { - if (this.hasDefaultHeaders) { - for (var prop in this.defaultHeaders) { - if (this.defaultHeaders.hasOwnProperty(prop)) { - o.conn.setRequestHeader(prop, this.defaultHeaders[prop]); - } - } - } - - if (this.hasHeaders) { - for (var prop in this.headers) { - if (this.headers.hasOwnProperty(prop)) { - o.conn.setRequestHeader(prop, this.headers[prop]); - } - } - - this.headers = {}; - this.hasHeaders = false; - } - }, - - resetDefaultHeaders:function() { - delete this.defaultHeaders; - this.defaultHeaders = {}; - this.hasDefaultHeaders = false; - }, - - abort:function(o, t, u) - { - if(this.isCallInProgress(o)) { - o.conn.abort(); - window.clearInterval(this.poll[o.tId]); - delete this.poll[o.tId]; - if (u) { - delete this.timeout[o.tId]; - } - - - this.handleTransactionResponse(o, t, true); - - return true; - } - else { - return false; - } - }, - - - isCallInProgress:function(o) - { - if (o && o.conn) { - return o.conn.readyState != 4 && o.conn.readyState != 0; - } - else { - - return false; - } - }, - - - releaseObject:function(o) - { - - o.conn = null; - - o = null; - }, - - activeX:[ - 'MSXML2.XMLHTTP.3.0', - 'MSXML2.XMLHTTP', - 'Microsoft.XMLHTTP' - ] - - - }; -})(); - - - -Roo.lib.Region = function(t, r, b, l) { - this.top = t; - this[1] = t; - this.right = r; - this.bottom = b; - this.left = l; - this[0] = l; -}; - - -Roo.lib.Region.prototype = { - contains : function(A) { - return ( A.left >= this.left && - A.right <= this.right && - A.top >= this.top && - A.bottom <= this.bottom ); - - }, - - getArea : function() { - return ( (this.bottom - this.top) * (this.right - this.left) ); - }, - - intersect : function(B) { - var t = Math.max(this.top, B.top); - var r = Math.min(this.right, B.right); - var b = Math.min(this.bottom, B.bottom); - var l = Math.max(this.left, B.left); - - if (b >= t && r >= l) { - return new Roo.lib.Region(t, r, b, l); - } else { - return null; - } - }, - union : function(C) { - var t = Math.min(this.top, C.top); - var r = Math.max(this.right, C.right); - var b = Math.max(this.bottom, C.bottom); - var l = Math.min(this.left, C.left); - - return new Roo.lib.Region(t, r, b, l); - }, - - adjust : function(t, l, b, r) { - this.top += t; - this.left += l; - this.right += r; - this.bottom += b; - return this; - } -}; - -Roo.lib.Region.getRegion = function(el) { - var p = Roo.lib.Dom.getXY(el); - - var t = p[1]; - var r = p[0] + el.offsetWidth; - var b = p[1] + el.offsetHeight; - var l = p[0]; - - return new Roo.lib.Region(t, r, b, l); -}; - - - - - - -Roo.lib.Point = function(x, y) { - if (x instanceof Array) { - y = x[1]; - x = x[0]; - } - - this.x = this.right = this.left = this[0] = x; - this.y = this.top = this.bottom = this[1] = y; -}; - -Roo.lib.Point.prototype = new Roo.lib.Region(); - - - - -(function() { - - Roo.lib.Anim = { - scroll : function(el, A, B, C, cb, D) { - this.run(el, A, B, C, cb, D, Roo.lib.Scroll); - }, - - motion : function(el, E, F, G, cb, H) { - this.run(el, E, F, G, cb, H, Roo.lib.Motion); - }, - - color : function(el, I, J, K, cb, L) { - this.run(el, I, J, K, cb, L, Roo.lib.ColorAnim); - }, - - run : function(el, M, N, O, cb, P, Q) { - Q = Q || Roo.lib.AnimBase; - if (typeof O == "string") { - O = Roo.lib.Easing[O]; - } - var R = new Q(el, M, N, O); - R.animateX(function() { - Roo.callback(cb, P); - }); - return R; - } - }; -})(); - - - -(function() { - var A; - - function B(el) { - if (!A) { - A = new Roo.Element.Flyweight(); - } - - A.dom = el; - return A; - } - - - - - - - Roo.lib.AnimBase = function(el, C, D, E) { - if (el) { - this.init(el, C, D, E); - } - }; - - Roo.lib.AnimBase.fly = B; - - - - Roo.lib.AnimBase.prototype = { - - toString: function() { - var el = this.getEl(); - var id = el.id || el.tagName; - return ("Anim " + id); - }, - - patterns: { - noNegatives: /width|height|opacity|padding/i, - offsetAttribute: /^((width|height)|(top|left))$/, - defaultUnit: /width|height|top$|bottom$|left$|right$/i, - offsetUnit: /\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i - }, - - - doMethod: function(C, D, E) { - return this.method(this.currentFrame, D, E - D, this.totalFrames); - }, - - - setAttribute: function(F, G, H) { - if (this.patterns.noNegatives.test(F)) { - G = (G > 0) ? G : 0; - } - - - Roo.fly(this.getEl(), '_anim').setStyle(F, G + H); - }, - - - getAttribute: function(I) { - var el = this.getEl(); - var J = B(el).getStyle(I); - - if (J !== 'auto' && !this.patterns.offsetUnit.test(J)) { - return parseFloat(J); - } - - var a = this.patterns.offsetAttribute.exec(I) || []; - var K = !!( a[3] ); - var L = !!( a[2] ); - - - if (L || (B(el).getStyle('position') == 'absolute' && K)) { - J = el['offset' + a[0].charAt(0).toUpperCase() + a[0].substr(1)]; - } else { - J = 0; - } - - return J; - }, - - - getDefaultUnit: function(M) { - if (this.patterns.defaultUnit.test(M)) { - return 'px'; - } - - return ''; - }, - - animateX : function(N, O) { - var f = function() { - this.onComplete.removeListener(f); - if (typeof N == "function") { - N.call(O || this, this); - } - }; - this.onComplete.addListener(f, this); - this.animate(); - }, - - - setRuntimeAttribute: function(P) { - var Q; - var R; - var S = this.attributes; - - this.runtimeAttributes[P] = {}; - - var T = function(U) { - return (typeof U !== 'undefined'); - }; - - if (!T(S[P]['to']) && !T(S[P]['by'])) { - return false; - } - - - Q = ( T(S[P]['from']) ) ? S[P]['from'] : this.getAttribute(P); - - - if (T(S[P]['to'])) { - R = S[P]['to']; - } else if (T(S[P]['by'])) { - if (Q.constructor == Array) { - R = []; - for (var i = 0, len = Q.length; i < len; ++i) { - R[i] = Q[i] + S[P]['by'][i]; - } - } else { - R = Q + S[P]['by']; - } - } - - - this.runtimeAttributes[P].start = Q; - this.runtimeAttributes[P].end = R; - - - this.runtimeAttributes[P].unit = ( T(S[P].unit) ) ? S[P]['unit'] : this.getDefaultUnit(P); - }, - - - init: function(el, U, V, W) { - - var X = false; - - - var Y = null; - - - var Z = 0; - - - el = Roo.getDom(el); - - - this.attributes = U || {}; - - - this.duration = V || 1; - - - this.method = W || Roo.lib.Easing.easeNone; - - - this.useSeconds = true; - - - this.currentFrame = 0; - - - this.totalFrames = Roo.lib.AnimMgr.fps; - - - this.getEl = function() { - return el; - }; - - - this.isAnimated = function() { - return X; - }; - - - this.getStartTime = function() { - return Y; - }; - - this.runtimeAttributes = {}; - - - this.animate = function() { - if (this.isAnimated()) { - return false; - } - - - this.currentFrame = 0; - - this.totalFrames = ( this.useSeconds ) ? Math.ceil(Roo.lib.AnimMgr.fps * this.duration) : this.duration; - - Roo.lib.AnimMgr.registerElement(this); - }; - - - this.stop = function(e) { - if (e) { - this.currentFrame = this.totalFrames; - this._onTween.fire(); - } - - Roo.lib.AnimMgr.stop(this); - }; - - var b = function() { - this.onStart.fire(); - - this.runtimeAttributes = {}; - for (var P in this.attributes) { - this.setRuntimeAttribute(P); - } - - - X = true; - Z = 0; - Y = new Date(); - }; - - - var c = function() { - var e = { - duration: new Date() - this.getStartTime(), - currentFrame: this.currentFrame - }; - - e.toString = function() { - return ( - 'duration: ' + e.duration + - ', currentFrame: ' + e.currentFrame - ); - }; - - this.onTween.fire(e); - - var g = this.runtimeAttributes; - - for (var P in g) { - this.setAttribute(P, this.doMethod(P, g[P].start, g[P].end), g[P].unit); - } - - - Z += 1; - }; - - var d = function() { - var e = (new Date() - Y) / 1000 ; - - var g = { - duration: e, - frames: Z, - fps: Z / e - }; - - g.toString = function() { - return ( - 'duration: ' + g.duration + - ', frames: ' + g.frames + - ', fps: ' + g.fps - ); - }; - - X = false; - Z = 0; - this.onComplete.fire(g); - }; - - - this._onStart = new Roo.util.Event(this); - this.onStart = new Roo.util.Event(this); - this.onTween = new Roo.util.Event(this); - this._onTween = new Roo.util.Event(this); - this.onComplete = new Roo.util.Event(this); - this._onComplete = new Roo.util.Event(this); - this._onStart.addListener(b); - this._onTween.addListener(c); - this._onComplete.addListener(d); - } - }; -})(); - - - - -Roo.lib.AnimMgr = new function() { - - var A = null; - - - var B = []; - - - var C = 0; - - - this.fps = 1000; - - - this.delay = 1; - - - this.registerElement = function(F) { - B[B.length] = F; - C += 1; - F._onStart.fire(); - this.start(); - }; - - - this.unRegister = function(F, G) { - F._onComplete.fire(); - G = G || D(F); - if (G != -1) { - B.splice(G, 1); - } - - - C -= 1; - if (C <= 0) { - this.stop(); - } - }; - - - this.start = function() { - if (A === null) { - A = setInterval(this.run, this.delay); - } - }; - - - this.stop = function(F) { - if (!F) { - clearInterval(A); - - for (var i = 0, len = B.length; i < len; ++i) { - if (B[0].isAnimated()) { - this.unRegister(B[0], 0); - } - } - - - B = []; - A = null; - C = 0; - } - else { - this.unRegister(F); - } - }; - - - this.run = function() { - for (var i = 0, len = B.length; i < len; ++i) { - var tween = B[i]; - if (!tween || !tween.isAnimated()) { - continue; - } - - if (tween.currentFrame < tween.totalFrames || tween.totalFrames === null) - { - tween.currentFrame += 1; - - if (tween.useSeconds) { - E(tween); - } - - tween._onTween.fire(); - } - else { - Roo.lib.AnimMgr.stop(tween, i); - } - } - }; - - var D = function(F) { - for (var i = 0, len = B.length; i < len; ++i) { - if (B[i] == F) { - return i; - } - } - return -1; - }; - - - var E = function(F) { - var G = F.totalFrames; - var H = F.currentFrame; - var I = (F.currentFrame * F.duration * 1000 / F.totalFrames); - var J = (new Date() - F.getStartTime()); - var K = 0; - - if (J < F.duration * 1000) { - K = Math.round((J / I - 1) * F.currentFrame); - } else { - K = G - (H + 1); - } - if (K > 0 && isFinite(K)) { - if (F.currentFrame + K >= G) { - K = G - (H + 1); - } - - - F.currentFrame += K; - } - }; - }; - - -Roo.lib.Bezier = new function() { - - this.getPosition = function(A, t) { - var n = A.length; - var B = []; - - for (var i = 0; i < n; ++i) { - B[i] = [A[i][0], A[i][1]]; - } - - for (var j = 1; j < n; ++j) { - for (i = 0; i < n - j; ++i) { - B[i][0] = (1 - t) * B[i][0] + t * B[parseInt(i + 1, 10)][0]; - B[i][1] = (1 - t) * B[i][1] + t * B[parseInt(i + 1, 10)][1]; - } - } - - return [ B[0][0], B[0][1] ]; - - }; - }; - - -(function() { - - Roo.lib.ColorAnim = function(el, D, E, F) { - Roo.lib.ColorAnim.superclass.constructor.call(this, el, D, E, F); - }; - - Roo.extend(Roo.lib.ColorAnim, Roo.lib.AnimBase); - - var A = Roo.lib.AnimBase.fly; - var Y = Roo.lib; - var B = Y.ColorAnim.superclass; - var C = Y.ColorAnim.prototype; - - C.toString = function() { - var el = this.getEl(); - var id = el.id || el.tagName; - return ("ColorAnim " + id); - }; - - C.patterns.color = /color$/i; - C.patterns.rgb = /^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i; - C.patterns.hex = /^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i; - C.patterns.hex3 = /^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i; - C.patterns.transparent = /^transparent|rgba\(0, 0, 0, 0\)$/; - - - C.parseColor = function(s) { - if (s.length == 3) { - return s; - } - - var c = this.patterns.hex.exec(s); - if (c && c.length == 4) { - return [ parseInt(c[1], 16), parseInt(c[2], 16), parseInt(c[3], 16) ]; - } - - - c = this.patterns.rgb.exec(s); - if (c && c.length == 4) { - return [ parseInt(c[1], 10), parseInt(c[2], 10), parseInt(c[3], 10) ]; - } - - - c = this.patterns.hex3.exec(s); - if (c && c.length == 4) { - return [ parseInt(c[1] + c[1], 16), parseInt(c[2] + c[2], 16), parseInt(c[3] + c[3], 16) ]; - } - - return null; - }; - - C.getAttribute = function(D) { - var el = this.getEl(); - if (this.patterns.color.test(D)) { - var val = A(el).getStyle(D); - - if (this.patterns.transparent.test(val)) { - var parent = el.parentNode; - val = A(parent).getStyle(D); - - while (parent && this.patterns.transparent.test(val)) { - parent = parent.parentNode; - val = A(parent).getStyle(D); - if (parent.tagName.toUpperCase() == 'HTML') { - val = '#fff'; - } - } - } - } else { - val = B.getAttribute.call(this, D); - } - - return val; - }; - C.getAttribute = function(D) { - var el = this.getEl(); - if (this.patterns.color.test(D)) { - var val = A(el).getStyle(D); - - if (this.patterns.transparent.test(val)) { - var parent = el.parentNode; - val = A(parent).getStyle(D); - - while (parent && this.patterns.transparent.test(val)) { - parent = parent.parentNode; - val = A(parent).getStyle(D); - if (parent.tagName.toUpperCase() == 'HTML') { - val = '#fff'; - } - } - } - } else { - val = B.getAttribute.call(this, D); - } - - return val; - }; - - C.doMethod = function(D, E, F) { - var G; - - if (this.patterns.color.test(D)) { - G = []; - for (var i = 0, len = E.length; i < len; ++i) { - G[i] = B.doMethod.call(this, D, E[i], F[i]); - } - - - G = 'rgb(' + Math.floor(G[0]) + ',' + Math.floor(G[1]) + ',' + Math.floor(G[2]) + ')'; - } - else { - G = B.doMethod.call(this, D, E, F); - } - - return G; - }; - - C.setRuntimeAttribute = function(D) { - B.setRuntimeAttribute.call(this, D); - - if (this.patterns.color.test(D)) { - var attributes = this.attributes; - var start = this.parseColor(this.runtimeAttributes[D].start); - var end = this.parseColor(this.runtimeAttributes[D].end); - - if (typeof attributes[D]['to'] === 'undefined' && typeof attributes[D]['by'] !== 'undefined') { - end = this.parseColor(attributes[D].by); - - for (var i = 0, len = start.length; i < len; ++i) { - end[i] = start[i] + end[i]; - } - } - - - this.runtimeAttributes[D].start = start; - this.runtimeAttributes[D].end = end; - } - }; -})(); - - - - -Roo.lib.Easing = { - - - easeNone: function (t, b, c, d) { - return c * t / d + b; - }, - - - easeIn: function (t, b, c, d) { - return c * (t /= d) * t + b; - }, - - - easeOut: function (t, b, c, d) { - return -c * (t /= d) * (t - 2) + b; - }, - - - easeBoth: function (t, b, c, d) { - if ((t /= d / 2) < 1) { - return c / 2 * t * t + b; - } - - return -c / 2 * ((--t) * (t - 2) - 1) + b; - }, - - - easeInStrong: function (t, b, c, d) { - return c * (t /= d) * t * t * t + b; - }, - - - easeOutStrong: function (t, b, c, d) { - return -c * ((t = t / d - 1) * t * t * t - 1) + b; - }, - - - easeBothStrong: function (t, b, c, d) { - if ((t /= d / 2) < 1) { - return c / 2 * t * t * t * t + b; - } - - return -c / 2 * ((t -= 2) * t * t * t - 2) + b; - }, - - - - elasticIn: function (t, b, c, d, a, p) { - if (t == 0) { - return b; - } - if ((t /= d) == 1) { - return b + c; - } - if (!p) { - p = d * .3; - } - - if (!a || a < Math.abs(c)) { - a = c; - var s = p / 4; - } - else { - var s = p / (2 * Math.PI) * Math.asin(c / a); - } - - return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b; - }, - - - elasticOut: function (t, b, c, d, a, p) { - if (t == 0) { - return b; - } - if ((t /= d) == 1) { - return b + c; - } - if (!p) { - p = d * .3; - } - - if (!a || a < Math.abs(c)) { - a = c; - var s = p / 4; - } - else { - var s = p / (2 * Math.PI) * Math.asin(c / a); - } - - return a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b; - }, - - - elasticBoth: function (t, b, c, d, a, p) { - if (t == 0) { - return b; - } - - if ((t /= d / 2) == 2) { - return b + c; - } - - if (!p) { - p = d * (.3 * 1.5); - } - - if (!a || a < Math.abs(c)) { - a = c; - var s = p / 4; - } - else { - var s = p / (2 * Math.PI) * Math.asin(c / a); - } - - if (t < 1) { - return -.5 * (a * Math.pow(2, 10 * (t -= 1)) * - Math.sin((t * d - s) * (2 * Math.PI) / p)) + b; - } - return a * Math.pow(2, -10 * (t -= 1)) * - Math.sin((t * d - s) * (2 * Math.PI) / p) * .5 + c + b; - }, - - - - backIn: function (t, b, c, d, s) { - if (typeof s == 'undefined') { - s = 1.70158; - } - return c * (t /= d) * t * ((s + 1) * t - s) + b; - }, - - - backOut: function (t, b, c, d, s) { - if (typeof s == 'undefined') { - s = 1.70158; - } - return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b; - }, - - - backBoth: function (t, b, c, d, s) { - if (typeof s == 'undefined') { - s = 1.70158; - } - - if ((t /= d / 2 ) < 1) { - return c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b; - } - return c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b; - }, - - - bounceIn: function (t, b, c, d) { - return c - Roo.lib.Easing.bounceOut(d - t, 0, c, d) + b; - }, - - - bounceOut: function (t, b, c, d) { - if ((t /= d) < (1 / 2.75)) { - return c * (7.5625 * t * t) + b; - } else if (t < (2 / 2.75)) { - return c * (7.5625 * (t -= (1.5 / 2.75)) * t + .75) + b; - } else if (t < (2.5 / 2.75)) { - return c * (7.5625 * (t -= (2.25 / 2.75)) * t + .9375) + b; - } - return c * (7.5625 * (t -= (2.625 / 2.75)) * t + .984375) + b; - }, - - - bounceBoth: function (t, b, c, d) { - if (t < d / 2) { - return Roo.lib.Easing.bounceIn(t * 2, 0, c, d) * .5 + b; - } - return Roo.lib.Easing.bounceOut(t * 2 - d, 0, c, d) * .5 + c * .5 + b; - } -}; - - - (function() { - Roo.lib.Motion = function(el, E, F, G) { - if (el) { - Roo.lib.Motion.superclass.constructor.call(this, el, E, F, G); - } - }; - - Roo.extend(Roo.lib.Motion, Roo.lib.ColorAnim); - - - var Y = Roo.lib; - var A = Y.Motion.superclass; - var B = Y.Motion.prototype; - - B.toString = function() { - var el = this.getEl(); - var id = el.id || el.tagName; - return ("Motion " + id); - }; - - B.patterns.points = /^points$/i; - - B.setAttribute = function(E, F, G) { - if (this.patterns.points.test(E)) { - G = G || 'px'; - A.setAttribute.call(this, 'left', F[0], G); - A.setAttribute.call(this, 'top', F[1], G); - } else { - A.setAttribute.call(this, E, F, G); - } - }; - - B.getAttribute = function(E) { - if (this.patterns.points.test(E)) { - var val = [ - A.getAttribute.call(this, 'left'), - A.getAttribute.call(this, 'top') - ]; - } else { - val = A.getAttribute.call(this, E); - } - - return val; - }; - - B.doMethod = function(E, F, G) { - var H = null; - - if (this.patterns.points.test(E)) { - var t = this.method(this.currentFrame, 0, 100, this.totalFrames) / 100; - H = Y.Bezier.getPosition(this.runtimeAttributes[E], t); - } else { - H = A.doMethod.call(this, E, F, G); - } - return H; - }; - - B.setRuntimeAttribute = function(E) { - if (this.patterns.points.test(E)) { - var el = this.getEl(); - var attributes = this.attributes; - var start; - var control = attributes['points']['control'] || []; - var end; - var i, len; - - if (control.length > 0 && !(control[0] instanceof Array)) { - control = [control]; - } else { - var tmp = []; - for (i = 0,len = control.length; i < len; ++i) { - tmp[i] = control[i]; - } - - control = tmp; - } - - - Roo.fly(el).position(); - - if (D(attributes['points']['from'])) { - Roo.lib.Dom.setXY(el, attributes['points']['from']); - } - else { - Roo.lib.Dom.setXY(el, Roo.lib.Dom.getXY(el)); - } - - - start = this.getAttribute('points'); - - - if (D(attributes['points']['to'])) { - end = C.call(this, attributes['points']['to'], start); - - var pageXY = Roo.lib.Dom.getXY(this.getEl()); - for (i = 0,len = control.length; i < len; ++i) { - control[i] = C.call(this, control[i], start); - } - - - } else if (D(attributes['points']['by'])) { - end = [ start[0] + attributes['points']['by'][0], start[1] + attributes['points']['by'][1] ]; - - for (i = 0,len = control.length; i < len; ++i) { - control[i] = [ start[0] + control[i][0], start[1] + control[i][1] ]; - } - } - - - this.runtimeAttributes[E] = [start]; - - if (control.length > 0) { - this.runtimeAttributes[E] = this.runtimeAttributes[E].concat(control); - } - - - this.runtimeAttributes[E][this.runtimeAttributes[E].length] = end; - } - else { - A.setRuntimeAttribute.call(this, E); - } - }; - - var C = function(E, F) { - var G = Roo.lib.Dom.getXY(this.getEl()); - E = [ E[0] - G[0] + F[0], E[1] - G[1] + F[1] ]; - - return E; - }; - - var D = function(E) { - return (typeof E !== 'undefined'); - }; - })(); - - - - (function() { - Roo.lib.Scroll = function(el, C, D, E) { - if (el) { - Roo.lib.Scroll.superclass.constructor.call(this, el, C, D, E); - } - }; - - Roo.extend(Roo.lib.Scroll, Roo.lib.ColorAnim); - - - var Y = Roo.lib; - var A = Y.Scroll.superclass; - var B = Y.Scroll.prototype; - - B.toString = function() { - var el = this.getEl(); - var id = el.id || el.tagName; - return ("Scroll " + id); - }; - - B.doMethod = function(C, D, E) { - var F = null; - - if (C == 'scroll') { - F = [ - this.method(this.currentFrame, D[0], E[0] - D[0], this.totalFrames), - this.method(this.currentFrame, D[1], E[1] - D[1], this.totalFrames) - ]; - - } else { - F = A.doMethod.call(this, C, D, E); - } - return F; - }; - - B.getAttribute = function(C) { - var D = null; - var el = this.getEl(); - - if (C == 'scroll') { - D = [ el.scrollLeft, el.scrollTop ]; - } else { - D = A.getAttribute.call(this, C); - } - - return D; - }; - - B.setAttribute = function(C, D, E) { - var el = this.getEl(); - - if (C == 'scroll') { - el.scrollLeft = D[0]; - el.scrollTop = D[1]; - } else { - A.setAttribute.call(this, C, D, E); - } - }; - })(); - - - - - - - -Roo.DomHelper = function(){ - var A = null; - var B = /^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i; - var C = /^table|tbody|tr|td$/i; - var D = {}; - - - - var E = function(o){ - if(typeof o == 'string'){ - return o; - } - var 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(B.test(o.tag)){ - b += "/>"; - }else { - b += ">"; - var cn = o.children || o.cn; - if(cn){ - - if((cn instanceof Array) || (Roo.isSafari && typeof(cn.join) == "function")){ - for(var i = 0, len = cn.length; i < len; i++) { - b += E(cn[i], b); - } - }else { - b += E(cn, b); - } - } - if(o.html){ - b += o.html; - } - - b += ""; - } - return b; - }; - - - - - var F = function(o, M){ - - - var ns = false; - if (o.ns && o.ns != 'html') { - - if (o.xmlns && typeof(D[o.ns]) == 'undefined') { - D[o.ns] = o.xmlns; - ns = o.xmlns; - } - if (typeof(D[o.ns]) == 'undefined') { - console.log("Trying to create namespace element " + o.ns + ", however no xmlns was sent to builder previously"); - } - - ns = D[o.ns]; - } - - - if (typeof(o) == 'string') { - return M.appendChild(document.createTextNode(o)); - } - - o.tag = o.tag || div; - if (o.ns && Roo.isIE) { - ns = false; - o.tag = o.ns + ':' + o.tag; - - } - var el = ns ? document.createElementNS( ns, o.tag||'div') : document.createElement(o.tag||'div'); - var N = el.setAttribute ? true : false; - for(var attr in o){ - - if(attr == "tag" || attr == "ns" ||attr == "xmlns" ||attr == "children" || attr == "cn" || attr == "html" || - attr == "style" || typeof o[attr] == "function") continue; - - if(attr=="cls" && Roo.isIE){ - el.className = o["cls"]; - }else { - if(N) el.setAttribute(attr=="cls" ? 'class' : attr, o[attr]); - else el[attr] = o[attr]; - } - } - - Roo.DomHelper.applyStyles(el, o.style); - var cn = o.children || o.cn; - if(cn){ - - if((cn instanceof Array) || (Roo.isSafari && typeof(cn.join) == "function")){ - for(var i = 0, len = cn.length; i < len; i++) { - F(cn[i], el); - } - }else { - F(cn, el); - } - } - if(o.html){ - el.innerHTML = o.html; - } - if(M){ - M.appendChild(el); - } - return el; - }; - - var G = function(M, s, h, e){ - A.innerHTML = [s, h, e].join(''); - var i = -1, el = A; - while(++i < M){ - el = el.firstChild; - } - return el; - }; - - - var ts = '', - te = '
', - H = ts+'', - I = ''+te, - J = H + '', - K = ''+I; - - - - var L = function(M, N, el, O){ - if(!A){ - A = document.createElement('div'); - } - var P; - var Q = null; - if(M == 'td'){ - if(N == 'afterbegin' || N == 'beforeend'){ - return; - } - if(N == 'beforebegin'){ - Q = el; - el = el.parentNode; - } else { - Q = el.nextSibling; - el = el.parentNode; - } - - P = G(4, J, O, K); - } - else if(M == 'tr'){ - if(N == 'beforebegin'){ - Q = el; - el = el.parentNode; - P = G(3, H, O, I); - } else if(N == 'afterend'){ - Q = el.nextSibling; - el = el.parentNode; - P = G(3, H, O, I); - } else { - if(N == 'afterbegin'){ - Q = el.firstChild; - } - - P = G(4, J, O, K); - } - } else if(M == 'tbody'){ - if(N == 'beforebegin'){ - Q = el; - el = el.parentNode; - P = G(2, ts, O, te); - } else if(N == 'afterend'){ - Q = el.nextSibling; - el = el.parentNode; - P = G(2, ts, O, te); - } else { - if(N == 'afterbegin'){ - Q = el.firstChild; - } - - P = G(3, H, O, I); - } - } else { - if(N == 'beforebegin' || N == 'afterend'){ - return; - } - if(N == 'afterbegin'){ - Q = el.firstChild; - } - - P = G(2, ts, O, te); - } - - el.insertBefore(P, Q); - return P; - }; - - return { - - - useDom : false, - - - - markup : function(o){ - return E(o); - }, - - - - applyStyles : function(el, c){ - if(c){ - el = Roo.fly(el); - if(typeof c == "string"){ - var re = /\s?([a-z\-]*)\:\s?([^;]*);?/gi; - var matches; - while ((matches = re.exec(c)) != null){ - el.setStyle(matches[1], matches[2]); - } - }else if (typeof c == "object"){ - for (var style in c){ - el.setStyle(style, c[style]); - } - }else if (typeof c == "function"){ - Roo.DomHelper.applyStyles(el, c.call()); - } - } - }, - - - - insertHtml : function(d, el, e){ - d = d.toLowerCase(); - if(el.insertAdjacentHTML){ - if(C.test(el.tagName)){ - var rs; - if(rs = L(el.tagName.toLowerCase(), d, el, e)){ - return rs; - } - } - switch(d){ - case "beforebegin": - el.insertAdjacentHTML('BeforeBegin', e); - return el.previousSibling; - case "afterbegin": - el.insertAdjacentHTML('AfterBegin', e); - return el.firstChild; - case "beforeend": - el.insertAdjacentHTML('BeforeEnd', e); - return el.lastChild; - case "afterend": - el.insertAdjacentHTML('AfterEnd', e); - return el.nextSibling; - } - throw 'Illegal insertion point -> "' + d + '"'; - } - var f = el.ownerDocument.createRange(); - var g; - switch(d){ - case "beforebegin": - f.setStartBefore(el); - g = f.createContextualFragment(e); - el.parentNode.insertBefore(g, el); - return el.previousSibling; - case "afterbegin": - if(el.firstChild){ - f.setStartBefore(el.firstChild); - g = f.createContextualFragment(e); - el.insertBefore(g, el.firstChild); - return el.firstChild; - }else { - el.innerHTML = e; - return el.firstChild; - } - case "beforeend": - if(el.lastChild){ - f.setStartAfter(el.lastChild); - g = f.createContextualFragment(e); - el.appendChild(g); - return el.lastChild; - }else { - el.innerHTML = e; - return el.lastChild; - } - case "afterend": - f.setStartAfter(el); - g = f.createContextualFragment(e); - el.parentNode.insertBefore(g, el.nextSibling); - return el.nextSibling; - } - throw 'Illegal insertion point -> "' + d + '"'; - }, - - - - insertBefore : function(el, o, h){ - return this.doInsert(el, o, h, "beforeBegin"); - }, - - - - insertAfter : function(el, o, j){ - return this.doInsert(el, o, j, "afterEnd", "nextSibling"); - }, - - - - insertFirst : function(el, o, k){ - return this.doInsert(el, o, k, "afterBegin"); - }, - - - doInsert : function(el, o, l, m, n){ - el = Roo.getDom(el); - var p; - if(this.useDom || o.ns){ - p = F(o, null); - el.parentNode.insertBefore(p, n ? el[n] : el); - }else { - var e = E(o); - p = this.insertHtml(m, el, e); - } - return l ? Roo.get(p, true) : p; - }, - - - - append : function(el, o, q){ - el = Roo.getDom(el); - var r; - if(this.useDom || o.ns){ - r = F(o, null); - el.appendChild(r); - }else { - var e = E(o); - r = this.insertHtml("beforeEnd", el, e); - } - return q ? Roo.get(r, true) : r; - }, - - - - overwrite : function(el, o, t){ - el = Roo.getDom(el); - if (o.ns) { - - while (el.childNodes.length) { - el.removeChild(el.firstChild); - } - - F(o, el); - } else { - el.innerHTML = E(o); - } - - return t ? Roo.get(el.firstChild, true) : el.firstChild; - }, - - - - createTemplate : function(o){ - var u = E(o); - return new Roo.Template(u); - } - }; -}(); - - - - - - -Roo.Template = function(A){ - - if(A instanceof Array){ - A = A.join(""); - }else if(arguments.length > 1){ - A = Array.prototype.join.call(arguments, ""); - } - - - if (typeof(A) == 'object') { - Roo.apply(this,A) - } else { - - this.html = A; - } - - -}; -Roo.Template.prototype = { - - - - html : '', - - - applyTemplate : function(values){ - try { - - if(this.compiled){ - return this.compiled(values); - } - var useF = this.disableFormats !== true; - var fm = Roo.util.Format, tpl = this; - var fn = function(m, E, F, G){ - if(F && useF){ - if(F.substr(0, 5) == "this."){ - return tpl.call(F.substr(5), values[E], values); - }else { - if(G){ - - - - var re = /^\s*['"](.*)["']\s*$/; - G = G.split(','); - for(var i = 0, len = G.length; i < len; i++){ - G[i] = G[i].replace(re, "$1"); - } - - G = [values[E]].concat(G); - }else { - G = [values[E]]; - } - return fm[F].apply(fm, G); - } - }else { - return values[E] !== undefined ? values[E] : ""; - } - }; - return this.html.replace(this.re, fn); - } catch (e) { - Roo.log(e); - throw e; - } - - }, - - - - set : function(B, C){ - this.html = B; - this.compiled = null; - if(C){ - this.compile(); - } - return this; - }, - - - - disableFormats : false, - - - - re : /\{([\w-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g, - - - - compile : function(){ - var fm = Roo.util.Format; - var D = this.disableFormats !== true; - var E = Roo.isGecko ? "+" : ","; - var fn = function(m, G, H, I){ - if(H && D){ - I = I ? ',' + I : ""; - if(H.substr(0, 5) != "this."){ - H = "fm." + H + '('; - }else { - H = 'this.call("'+ H.substr(5) + '", '; - I = ", values"; - } - }else { - I= ''; H = "(values['" + G + "'] == undefined ? '' : "; - } - return "'"+ E + H + "values['" + G + "']" + I + ")"+E+"'"; - }; - var F; - - if(Roo.isGecko){ - F = "this.compiled = function(values){ return '" + - this.html.replace(/\\/g, '\\\\').replace(/(\r\n|\n)/g, '\\n').replace(/'/g, "\\'").replace(this.re, fn) + - "';};"; - }else { - F = ["this.compiled = function(values){ return ['"]; - F.push(this.html.replace(/\\/g, '\\\\').replace(/(\r\n|\n)/g, '\\n').replace(/'/g, "\\'").replace(this.re, fn)); - F.push("'].join('');};"); - F = F.join(''); - } - - - eval(F); - return this; - }, - - - call : function(G, H, I){ - return this[G](H, I); - }, - - - - insertFirst: function(el, J, K){ - return this.doInsert('afterBegin', el, J, K); - }, - - - - insertBefore: function(el, L, M){ - return this.doInsert('beforeBegin', el, L, M); - }, - - - - insertAfter : function(el, N, O){ - return this.doInsert('afterEnd', el, N, O); - }, - - - - append : function(el, P, Q){ - return this.doInsert('beforeEnd', el, P, Q); - }, - - doInsert : function(R, el, S, T){ - el = Roo.getDom(el); - var U = Roo.DomHelper.insertHtml(R, el, this.applyTemplate(S)); - return T ? Roo.get(U, true) : U; - }, - - - - overwrite : function(el, V, W){ - el = Roo.getDom(el); - el.innerHTML = this.applyTemplate(V); - return W ? Roo.get(el.firstChild, true) : el.firstChild; - } -}; - - -Roo.Template.prototype.apply = Roo.Template.prototype.applyTemplate; - - -Roo.DomHelper.Template = Roo.Template; - - - -Roo.Template.from = function(el){ - el = Roo.getDom(el); - return new Roo.Template(el.value || el.innerHTML); -}; - - - - - - - - -Roo.DomQuery = function(){ - var A = {}, simpleCache = {}, valueCache = {}; - var B = /\S/; - var C = /^\s+|\s+$/g; - var D = /\{(\d+)\}/g; - var E = /^(\s?[\/>+~]\s?|\s|$)/; - var F = /^(#)?([\w-\*]+)/; - var G = /(\d*)n\+?(\d*)/, H = /\D/; - - function I(p, T){ - var i = 0; - var n = p.firstChild; - while(n){ - if(n.nodeType == 1){ - if(++i == T){ - return n; - } - } - - n = n.nextSibling; - } - return null; - }; - - function J(n){ - while((n = n.nextSibling) && n.nodeType != 1); - return n; - }; - - function K(n){ - while((n = n.previousSibling) && n.nodeType != 1); - return n; - }; - - function L(d){ - var n = d.firstChild, ni = -1; - while(n){ - var nx = n.nextSibling; - if(n.nodeType == 3 && !B.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, T){ - if(!n.tagName && typeof n.length != "undefined"){ - n = n[0]; - } - if(!n){ - return null; - } - if(T == "for"){ - return n.htmlFor; - } - if(T == "class" || T == "className"){ - return n.className; - } - return n.getAttribute(T) || n[T]; - - }; - - function getNodes(ns, T, U){ - var V = [], ri = -1, cs; - if(!ns){ - return V; - } - - U = U || "*"; - if(typeof ns.getElementsByTagName != "undefined"){ - ns = [ns]; - } - if(!T){ - for(var i = 0, ni; ni = ns[i]; i++){ - cs = ni.getElementsByTagName(U); - for(var j = 0, ci; ci = cs[j]; j++){ - V[++ri] = ci; - } - } - }else if(T == "/" || T == ">"){ - var utag = U.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 == U || U == '*'){ - V[++ri] = cj; - } - } - } - }else if(T == "+"){ - var utag = U.toUpperCase(); - for(var i = 0, n; n = ns[i]; i++){ - while((n = n.nextSibling) && n.nodeType != 1); - if(n && (n.nodeName == utag || n.nodeName == U || U == '*')){ - V[++ri] = n; - } - } - }else if(T == "~"){ - for(var i = 0, n; n = ns[i]; i++){ - while((n = n.nextSibling) && (n.nodeType != 1 || (U == '*' || n.tagName.toLowerCase()!=U))); - if(n){ - V[++ri] = n; - } - } - } - return V; - }; - - function M(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, T){ - if(cs.tagName || cs == document){ - cs = [cs]; - } - if(!T){ - return cs; - } - var r = [], ri = -1; - T = T.toLowerCase(); - for(var i = 0, ci; ci = cs[i]; i++){ - if(ci.nodeType == 1 && ci.tagName.toLowerCase()==T){ - r[++ri] = ci; - } - } - return r; - }; - - function N(cs, T, 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, T, U, op, V){ - var r = [], ri = -1, st = V=="{"; - var f = Roo.DomQuery.operators[op]; - for(var i = 0, ci; ci = cs[i]; i++){ - var a; - if(st){ - a = Roo.DomQuery.getStyle(ci, T); - } - else if(T == "class" || T == "className"){ - a = ci.className; - }else if(T == "for"){ - a = ci.htmlFor; - }else if(T == "href"){ - a = ci.getAttribute("href", 2); - }else { - a = ci.getAttribute(T); - } - if((f && f(a, U)) || (!f && a)){ - r[++ri] = ci; - } - } - return r; - }; - - function byPseudo(cs, T, U){ - return Roo.DomQuery.pseudos[T](cs, U); - }; - - - - - var O = window.ActiveXObject ? true : false; - - - - - - - var batch = 30803; - - var P = 30803; - - function Q(cs){ - var d = ++P; - 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 T = cs.length, c, i, r = cs, cj, ri = -1; - if(!T || typeof cs.nodeType != "undefined" || T == 1){ - return cs; - } - if(O && typeof cs[0].selectSingleNode != "undefined"){ - return Q(cs); - } - var d = ++P; - 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 R(c1, c2){ - var d = ++P; - 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 S(c1, c2){ - var T = c1.length; - if(!T){ - return c2; - } - if(O && c1[0].selectSingleNode){ - return R(c1, c2); - } - var d = ++P; - for(var i = 0; i < T; 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, T, U, id){ - if(ns == U){ - var d = U.ownerDocument || U; - return d.getElementById(id); - } - - ns = getNodes(ns, T, "*"); - return N(ns, null, id); - } - - return { - getStyle : function(el, AA){ - return Roo.fly(el).getStyle(AA); - }, - - - compile : function(AB, AC){ - AC = AC || "select"; - - var fn = ["var f = function(root){\n var mode; ++batch; var n = root || document;\n"]; - var q = AB, mode, lq; - var tk = Roo.DomQuery.matchers; - var AD = tk.length; - var mm; - - - var AE = q.match(E); - if(AE && AE[1]){ - fn[fn.length] = 'mode="'+AE[1].replace(C, "")+'";'; - q = q.replace(AE[1], ""); - } - - while(AB.substr(0, 1)=="/"){ - AB = AB.substr(1); - } - - while(q && lq != q){ - lq = q; - var tm = q.match(F); - if(AC == "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(E))){ - var matched = false; - for(var j = 0; j < AD; j++){ - var t = tk[j]; - var m = q.match(t.re); - if(m){ - fn[fn.length] = t.select.replace(D, 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(C, "")+'";'; - q = q.replace(mm[1], ""); - } - } - - fn[fn.length] = "return nodup(n);\n}"; - - - - eval(fn.join("")); - return f; - }, - - - - select : function(AF, AG, AH){ - if(!AG || AG == document){ - AG = document; - } - if(typeof AG == "string"){ - AG = document.getElementById(AG); - } - var AI = AF.split(","); - var AJ = []; - for(var i = 0, len = AI.length; i < len; i++){ - var p = AI[i].replace(C, ""); - if(!A[p]){ - A[p] = Roo.DomQuery.compile(p); - if(!A[p]){ - throw p + " is not a valid selector"; - } - } - var z = A[p](AG); - if(z && z != document){ - AJ = AJ.concat(z); - } - } - if(AI.length > 1){ - return nodup(AJ); - } - return AJ; - }, - - - - selectNode : function(AK, AL){ - return Roo.DomQuery.select(AK, AL)[0]; - }, - - - - selectValue : function(AM, AN, AO){ - AM = AM.replace(C, ""); - if(!valueCache[AM]){ - valueCache[AM] = Roo.DomQuery.compile(AM, "select"); - } - var n = valueCache[AM](AN); - n = n[0] ? n[0] : n; - var v = (n && n.firstChild ? n.firstChild.nodeValue : null); - return ((v === null||v === undefined||v==='') ? AO : v); - }, - - - - selectNumber : function(AP, AQ, AR){ - var v = Roo.DomQuery.selectValue(AP, AQ, AR || 0); - return parseFloat(v); - }, - - - - is : function(el, ss){ - if(typeof el == "string"){ - el = document.getElementById(el); - } - var AS = (el instanceof Array); - var AT = Roo.DomQuery.filter(AS ? el : [el], ss); - return AS ? (AT.length == el.length) : (AT.length > 0); - }, - - - - filter : function(AU, ss, AV){ - ss = ss.replace(C, ""); - if(!simpleCache[ss]){ - simpleCache[ss] = Roo.DomQuery.compile(ss, "simple"); - } - var AW = simpleCache[ss](AU); - return AV ? S(AW, AU) : AW; - }, - - - - 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 = G.exec(a == "even" && "2n" || a == "odd" && "2n+1" || !H.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(!K(ci) && !J(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 Roo.DomQuery.filter(c, ss, true); - }, - - "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 = Roo.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 = Roo.DomQuery.is; - var r = [], ri = -1; - for(var i = 0, ci; ci = c[i]; i++){ - var n = J(ci); - if(n && is(n, ss)){ - r[++ri] = ci; - } - } - return r; - }, - - "prev" : function(c, ss){ - var is = Roo.DomQuery.is; - var r = [], ri = -1; - for(var i = 0, ci; ci = c[i]; i++){ - var n = K(ci); - if(n && is(n, ss)){ - r[++ri] = ci; - } - } - return r; - } - } - }; -}(); - - - -Roo.query = Roo.DomQuery.select; - - - - - - - -Roo.util.Observable = function(A){ - - A = A|| {}; - this.addEvents(A.events || {}); - if (A.events) { - delete A.events; - } - - - Roo.apply(this, A); - - if(this.listeners){ - this.on(this.listeners); - delete this.listeners; - } -}; -Roo.util.Observable.prototype = { - - - - - - - fireEvent : function(){ - var ce = this.events[arguments[0].toLowerCase()]; - if(typeof ce == "object"){ - return ce.fire.apply(ce, Array.prototype.slice.call(arguments, 1)); - }else { - return true; - } - }, - - - filterOptRe : /^(?:scope|delay|buffer|single)$/, - - - - addListener : function(B, fn, C, o){ - if(typeof B == "object"){ - o = B; - 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; - B = B.toLowerCase(); - var ce = this.events[B] || true; - if(typeof ce == "boolean"){ - ce = new Roo.util.Event(this, B); - this.events[B] = ce; - } - - ce.addListener(fn, C, o); - }, - - - - removeListener : function(D, fn, E){ - var ce = this.events[D.toLowerCase()]; - if(typeof ce == "object"){ - ce.removeListener(fn, E); - } - }, - - - - purgeListeners : function(){ - for(var evt in this.events){ - if(typeof this.events[evt] == "object"){ - this.events[evt].clearListeners(); - } - } - }, - - relayEvents : function(o, F){ - var G = function(H){ - return function(){ - return this.fireEvent.apply(this, Roo.combine(H, Array.prototype.slice.call(arguments, 0))); - }; - }; - for(var i = 0, len = F.length; i < len; i++){ - var ename = F[i]; - if(!this.events[ename]){ this.events[ename] = true; }; - o.on(ename, G(ename), this); - } - }, - - - - addEvents : function(o){ - if(!this.events){ - this.events = {}; - } - - Roo.applyIf(this.events, o); - }, - - - - hasListener : function(H){ - var e = this.events[H]; - return typeof e == "object" && e.listeners.length > 0; - } -}; - - -Roo.util.Observable.prototype.on = Roo.util.Observable.prototype.addListener; - - -Roo.util.Observable.prototype.un = Roo.util.Observable.prototype.removeListener; - - - -Roo.util.Observable.capture = function(o, fn, I){ - o.fireEvent = o.fireEvent.createInterceptor(fn, I); -}; - - - -Roo.util.Observable.releaseCapture = function(o){ - o.fireEvent = Roo.util.Observable.prototype.fireEvent; -}; - -(function(){ - - var J = function(h, o, M){ - var N = new Roo.util.DelayedTask(); - return function(){ - N.delay(o.buffer, h, M, Array.prototype.slice.call(arguments, 0)); - }; - }; - - var K = function(h, e, fn, M){ - return function(){ - e.removeListener(fn, M); - return h.apply(M, arguments); - }; - }; - - var L = function(h, o, M){ - return function(){ - var N = Array.prototype.slice.call(arguments, 0); - setTimeout(function(){ - h.apply(M, N); - }, o.delay || 10); - }; - }; - - Roo.util.Event = function(M, N){ - this.name = N; - this.obj = M; - this.listeners = []; - }; - - Roo.util.Event.prototype = { - addListener : function(fn, M, N){ - var o = N || {}; - M = M || this.obj; - if(!this.isListening(fn, M)){ - var l = {fn: fn, scope: M, options: o}; - var h = fn; - if(o.delay){ - h = L(h, o, M); - } - if(o.single){ - h = K(h, this, fn, M); - } - if(o.buffer){ - h = J(h, o, M); - } - - l.fireFn = h; - if(!this.firing){ - this.listeners.push(l); - }else { - this.listeners = this.listeners.slice(0); - this.listeners.push(l); - } - } - }, - - findListener : function(fn, O){ - O = O || 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 == O){ - return i; - } - } - return -1; - }, - - isListening : function(fn, P){ - return this.findListener(fn, P) != -1; - }, - - removeListener : function(fn, Q){ - var R; - if((R = this.findListener(fn, Q)) != -1){ - if(!this.firing){ - this.listeners.splice(R, 1); - }else { - this.listeners = this.listeners.slice(0); - this.listeners.splice(R, 1); - } - return true; - } - return false; - }, - - clearListeners : function(){ - this.listeners = []; - }, - - fire : function(){ - var ls = this.listeners, S, T = ls.length; - if(T > 0){ - this.firing = true; - var args = Array.prototype.slice.call(arguments, 0); - for(var i = 0; i < T; 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; - } - }; -})(); - - - - - -Roo.EventManager = function(){ - var A, B, C = false; - var F, G, H, I; - var E = Roo.lib.Event; - var D = Roo.lib.Dom; - - - var J = function(){ - if(!C){ - C = true; - Roo.isReady = true; - if(B){ - clearInterval(B); - } - if(Roo.isGecko || Roo.isOpera) { - document.removeEventListener("DOMContentLoaded", J, false); - } - if(Roo.isIE){ - var defer = document.getElementById("ie-deferred-loader"); - if(defer){ - defer.onreadystatechange = null; - defer.parentNode.removeChild(defer); - } - } - if(A){ - A.fire(); - A.clearListeners(); - } - } - }; - - var K = function(){ - A = new Roo.util.Event(); - if(Roo.isGecko || Roo.isOpera) { - document.addEventListener("DOMContentLoaded", J, false); - }else if(Roo.isIE){ - document.write(""); - var defer = document.getElementById("ie-deferred-loader"); - defer.onreadystatechange = function(){ - if(this.readyState == "complete"){ - J(); - } - }; - }else if(Roo.isSafari){ - B = setInterval(function(){ - var rs = document.readyState; - if(rs == "complete") { - J(); - } - }, 10); - } - - - E.on(window, "load", J); - }; - - var L = function(h, o){ - var S = new Roo.util.DelayedTask(h); - return function(e){ - - e = new Roo.EventObjectImpl(e); - S.delay(o.buffer, h, null, [e]); - }; - }; - - var M = function(h, el, S, fn){ - return function(e){ - Roo.EventManager.removeListener(el, S, fn); - h(e); - }; - }; - - var N = function(h, o){ - return function(e){ - - e = new Roo.EventObjectImpl(e); - setTimeout(function(){ - h(e); - }, o.delay || 10); - }; - }; - - var O = function(S, T, U, fn, V){ - var o = (!U || typeof U == "boolean") ? {} : U; - fn = fn || o.fn; V = V || o.scope; - var el = Roo.getDom(S); - if(!el){ - throw "Error listening for \"" + T + '\". Element "' + S + '" doesn\'t exist.'; - } - var h = function(e){ - e = Roo.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(V || el, e, t, o); - }; - if(o.delay){ - h = N(h, o); - } - if(o.single){ - h = M(h, el, T, fn); - } - if(o.buffer){ - h = L(h, o); - } - - fn._handlers = fn._handlers || []; - fn._handlers.push([Roo.id(el), T, h]); - - E.on(el, T, h); - if(T == "mousewheel" && el.addEventListener){ - el.addEventListener("DOMMouseScroll", h, false); - E.on(window, 'unload', function(){ - el.removeEventListener("DOMMouseScroll", h, false); - }); - } - if(T == "mousedown" && el == document){ - Roo.EventManager.stoppedMouseDownEvent.addListener(h); - } - return h; - }; - - var P = function(el, S, fn){ - var id = Roo.id(el), T = fn._handlers, hd = fn; - if(T){ - for(var i = 0, len = T.length; i < len; i++){ - var h = T[i]; - if(h[0] == id && h[1] == S){ - hd = h[2]; - T.splice(i, 1); - break; - } - } - } - - E.un(el, S, hd); - el = Roo.getDom(el); - if(S == "mousewheel" && el.addEventListener){ - el.removeEventListener("DOMMouseScroll", hd, false); - } - if(S == "mousedown" && el == document){ - Roo.EventManager.stoppedMouseDownEvent.removeListener(hd); - } - }; - - var Q = /^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/; - - var R = { - - - - - - - - - wrap : function(fn, S, T){ - return function(e){ - Roo.EventObject.setEvent(e); - fn.call(T ? S || window : window, Roo.EventObject, S); - }; - }, - - - - addListener : function(U, V, fn, W, X){ - if(typeof V == "object"){ - var o = V; - for(var e in o){ - if(Q.test(e)){ - continue; - } - if(typeof o[e] == "function"){ - - O(U, e, o, o[e], o.scope); - }else { - - O(U, e, o[e]); - } - } - return; - } - return O(U, V, X, fn, W); - }, - - - - removeListener : function(Y, Z, fn){ - return P(Y, Z, fn); - }, - - - - onDocumentReady : function(fn, a, b){ - if(C){ - A.addListener(fn, a, b); - A.fire(); - A.clearListeners(); - return; - } - if(!A){ - K(); - } - - A.addListener(fn, a, b); - }, - - - - onWindowResize : function(fn, c, d){ - if(!F){ - F = new Roo.util.Event(); - G = new Roo.util.DelayedTask(function(){ - F.fire(D.getViewWidth(), D.getViewHeight()); - }); - E.on(window, "resize", function(){ - if(Roo.isIE){ - G.delay(50); - }else { - F.fire(D.getViewWidth(), D.getViewHeight()); - } - }); - } - - F.addListener(fn, c, d); - }, - - - - onTextResize : function(fn, f, g){ - if(!H){ - H = new Roo.util.Event(); - var textEl = new Roo.Element(document.createElement('div')); - textEl.dom.className = 'x-text-resize'; - textEl.dom.innerHTML = 'X'; - textEl.appendTo(document.body); - I = textEl.dom.offsetHeight; - setInterval(function(){ - if(textEl.dom.offsetHeight != I){ - H.fire(I, I = textEl.dom.offsetHeight); - } - }, this.textResizeInterval); - } - - H.addListener(fn, f, g); - }, - - - - removeResizeListener : function(fn, j){ - if(F){ - F.removeListener(fn, j); - } - }, - - - fireResize : function(){ - if(F){ - F.fire(D.getViewWidth(), D.getViewHeight()); - } - }, - - - ieDeferSrc : false, - - - textResizeInterval : 50 - }; - - - - - - - R.on = R.addListener; - R.un = R.removeListener; - - R.stoppedMouseDownEvent = new Roo.util.Event(); - return R; -}(); - - -Roo.onReady = Roo.EventManager.onDocumentReady; - -Roo.onReady(function(){ - var bd = Roo.get(document.body); - if(!bd){ return; } - - var S = [ - Roo.isIE ? "roo-ie" - : Roo.isGecko ? "roo-gecko" - : Roo.isOpera ? "roo-opera" - : Roo.isSafari ? "roo-safari" : ""]; - - if(Roo.isMac){ - S.push("roo-mac"); - } - if(Roo.isLinux){ - S.push("roo-linux"); - } - if(Roo.isBorderBox){ - S.push('roo-border-box'); - } - if(Roo.isStrict){ - var p = bd.dom.parentNode; - if(p){ - p.className += ' roo-strict'; - } - } - - bd.addClass(S.join(' ')); -}); - - - -Roo.EventObject = function(){ - - var E = Roo.lib.Event; - - - var T = { - 63234 : 37, - 63235 : 39, - 63232 : 38, - 63233 : 40, - 63276 : 33, - 63277 : 34, - 63272 : 46, - 63273 : 36, - 63275 : 35 - }; - - - var U = Roo.isIE ? {1:0,4:1,2:2} : - (Roo.isSafari ? {1:0,2:1,3:2} : {0:0,1:1,2:2}); - - Roo.EventObjectImpl = function(e){ - if(e){ - this.setEvent(e.browserEvent || e); - } - }; - Roo.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 ? U[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.type == 'keyup' || e.type == 'keydown') ? 0 : 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'){ - Roo.EventManager.stoppedMouseDownEvent.fire(this); - } - - E.stopEvent(this.browserEvent); - } - }, - - - - preventDefault : function(){ - if(this.browserEvent){ - E.preventDefault(this.browserEvent); - } - }, - - - - isNavKeyPress : function(){ - var k = this.keyCode; - k = Roo.isSafari ? (T[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.type == 'mousedown'){ - Roo.EventManager.stoppedMouseDownEvent.fire(this); - } - - E.stopPropagation(this.browserEvent); - } - }, - - - - getCharCode : function(){ - return this.charCode || this.keyCode; - }, - - - - getKey : function(){ - var k = this.keyCode || this.charCode; - return Roo.isSafari ? (T[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(V, W, X){ - return V ? Roo.fly(this.target).findParent(V, W, X) : this.target; - }, - - - getRelatedTarget : function(){ - if(this.browserEvent){ - return E.getRelatedTarget(this.browserEvent); - } - return null; - }, - - - - getWheelDelta : function(){ - var e = this.browserEvent; - var Y = 0; - if(e.wheelDelta){ - - Y = e.wheelDelta/120; - }else if(e.detail){ - - Y = -e.detail/3; - } - return Y; - }, - - - - hasModifier : function(){ - return !!((this.ctrlKey || this.altKey) || this.shiftKey); - }, - - - - within : function(el, Z){ - var t = this[Z ? "getRelatedTarget" : "getTarget"](); - return t && Roo.fly(el).contains(t); - }, - - getPoint : function(){ - return new Roo.lib.Point(this.xy[0], this.xy[1]); - } - }; - - return new Roo.EventObjectImpl(); -}(); - - - - - - - - -(function(){ - var D = Roo.lib.Dom; - var E = Roo.lib.Event; - var A = Roo.lib.Anim; - - - var B = {}; - var C = /(-[a-z])/gi; - var F = function(m, a){ return a.charAt(1).toUpperCase(); }; - var G = document.defaultView; - - - - Roo.Element = function(J, K){ - var L = typeof J == "string" ? - document.getElementById(J) : J; - if(!L){ - return null; - } - var id = L.id; - if(K !== true && id && Roo.Element.cache[id]){ - return Roo.Element.cache[id]; - } - - - - - this.dom = L; - - - - this.id = id || Roo.id(L); - }; - - var El = Roo.Element; - - El.prototype = { - - - originalDisplay : "", - - visibilityMode : 1, - - - defaultUnit : "px", - - - setVisibilityMode : function(J){ - this.visibilityMode = J; - return this; - }, - - - enableDisplayMode : function(K){ - this.setVisibilityMode(El.DISPLAY); - if(typeof K != "undefined") this.originalDisplay = K; - return this; - }, - - - - findParent : function(L, M, N){ - var p = this.dom, b = document.body, O = 0, dq = Roo.DomQuery, P; - M = M || 50; - if(typeof M != "number"){ - P = Roo.getDom(M); - M = 10; - } - while(p && p.nodeType == 1 && O < M && p != b && p != P){ - if(dq.is(p, L)){ - return N ? Roo.get(p) : p; - } - - O++; - p = p.parentNode; - } - return null; - }, - - - - - findParentNode : function(Q, R, S){ - var p = Roo.fly(this.dom.parentNode, '_internal'); - return p ? p.findParent(Q, R, S) : null; - }, - - - - up : function(T, U){ - return this.findParentNode(T, U, true); - }, - - - - - - is : function(V){ - return Roo.DomQuery.is(this.dom, V); - }, - - - - animate : function(W, X, Y, Z, c){ - this.anim(W, {duration: X, callback: Y, easing: Z}, c); - return this; - }, - - - - anim : function(e, g, h, j, k, cb){ - h = h || 'run'; - g = g || {}; - var l = Roo.lib.Anim[h]( - this.dom, e, - (g.duration || j) || .35, - (g.easing || k) || 'easeOut', - function(){ - Roo.callback(cb, this); - Roo.callback(g.callback, g.scope || this, [this, g]); - }, - this - ); - g.anim = l; - return l; - }, - - - 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(o){ - if(this.isCleaned && o !== 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; - }, - - - calcOffsetsTo : function(el){ - el = Roo.get(el); - var d = el.dom; - var q = false; - if(el.getStyle('position') == 'static'){ - el.position('relative'); - q = true; - } - var x = 0, y =0; - var op = this.dom; - while(op && op != d && op.tagName != 'HTML'){ - x+= op.offsetLeft; - y+= op.offsetTop; - op = op.offsetParent; - } - if(q){ - el.position('static'); - } - return [x, y]; - }, - - - - scrollIntoView : function(u, v){ - var c = Roo.getDom(u) || document.body; - var el = this.dom; - - var o = this.calcOffsetsTo(c), - l = o[0], - t = o[1], - 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(t < ct){ - c.scrollTop = t; - }else if(b > cb){ - c.scrollTop = b-ch; - } - - if(v !== false){ - if(l < cl){ - c.scrollLeft = l; - }else if(r > cr){ - c.scrollLeft = r-c.clientWidth; - } - } - return this; - }, - - - scrollChildIntoView : function(w, z){ - Roo.fly(w, '_scrollChildIntoView').scrollIntoView(this, z); - }, - - - - autoHeight : function(AA, AB, AC, AD){ - var AE = this.getHeight(); - this.clip(); - this.setHeight(1); - setTimeout(function(){ - var AG = parseInt(this.dom.scrollHeight, 10); - if(!AA){ - this.setHeight(AG); - this.unclip(); - if(typeof AC == "function"){ - AC(); - } - }else { - this.setHeight(AE); - this.setHeight(AG, AA, AB, function(){ - this.unclip(); - if(typeof AC == "function") AC(); - }.createDelegate(this), AD); - } - }.createDelegate(this), 0); - return this; - }, - - - - contains : function(el){ - if(!el){return false;} - return D.isAncestor(this.dom, el.dom ? el.dom : el); - }, - - - - isVisible : function(AF) { - var AG = !(this.getStyle("visibility") == "hidden" || this.getStyle("display") == "none"); - if(AF !== true || !AG){ - return AG; - } - var p = this.dom.parentNode; - while(p && p.tagName.toLowerCase() != "body"){ - if(!Roo.fly(p, '_isVisible').isVisible()){ - return false; - } - - p = p.parentNode; - } - return true; - }, - - - - select : function(AH, AI){ - return El.select(AH, AI, this.dom); - }, - - - - query : function(AJ, AK){ - return Roo.DomQuery.select(AJ, this.dom); - }, - - - - child : function(AL, AM){ - var n = Roo.DomQuery.selectNode(AL, this.dom); - return AM ? n : Roo.get(n); - }, - - - - down : function(AN, AO){ - var n = Roo.DomQuery.selectNode(" > " + AN, this.dom); - return AO ? n : Roo.get(n); - }, - - - - initDD : function(AP, AQ, AR){ - var dd = new Roo.dd.DD(Roo.id(this.dom), AP, AQ); - return Roo.apply(dd, AR); - }, - - - - initDDProxy : function(AS, AT, AU){ - var dd = new Roo.dd.DDProxy(Roo.id(this.dom), AS, AT); - return Roo.apply(dd, AU); - }, - - - - initDDTarget : function(AV, AW, AX){ - var dd = new Roo.dd.DDTarget(Roo.id(this.dom), AV, AW); - return Roo.apply(dd, AX); - }, - - - - setVisible : function(AY, AZ){ - if(!AZ || !A){ - if(this.visibilityMode == El.DISPLAY){ - this.setDisplayed(AY); - }else { - this.fixDisplay(); - this.dom.style.visibility = AY ? "visible" : "hidden"; - } - }else { - - var dom = this.dom; - var J = this.visibilityMode; - if(AY){ - this.setOpacity(.01); - this.setVisible(true); - } - - this.anim({opacity: { to: (AY?1:0) }}, - this.preanim(arguments, 1), - null, .35, 'easeIn', function(){ - if(!AY){ - if(J == El.DISPLAY){ - dom.style.display = "none"; - }else { - dom.style.visibility = "hidden"; - } - - Roo.get(dom).setOpacity(1); - } - }); - } - return this; - }, - - - - isDisplayed : function() { - return this.getStyle("display") != "none"; - }, - - - - toggle : function(Aa){ - this.setVisible(!this.isVisible(), this.preanim(arguments, 0)); - return this; - }, - - - - setDisplayed : function(Ab) { - if(typeof Ab == "boolean"){ - Ab = Ab ? this.originalDisplay : "none"; - } - - this.setStyle("display", Ab); - return this; - }, - - - - focus : function() { - try{ - this.dom.focus(); - }catch(e){} - return this; - }, - - - - blur : function() { - try{ - this.dom.blur(); - }catch(e){} - return this; - }, - - - - addClass : function(Ac){ - if(Ac instanceof Array){ - for(var i = 0, len = Ac.length; i < len; i++) { - this.addClass(Ac[i]); - } - }else { - if(Ac && !this.hasClass(Ac)){ - this.dom.className = this.dom.className + " " + Ac; - } - } - return this; - }, - - - - radioClass : function(Ad){ - var Ae = this.dom.parentNode.childNodes; - for(var i = 0; i < Ae.length; i++) { - var s = Ae[i]; - if(s.nodeType == 1){ - Roo.get(s).removeClass(Ad); - } - } - - this.addClass(Ad); - return this; - }, - - - - removeClass : function(Af){ - if(!Af || !this.dom.className){ - return this; - } - if(Af instanceof Array){ - for(var i = 0, len = Af.length; i < len; i++) { - this.removeClass(Af[i]); - } - }else { - if(this.hasClass(Af)){ - var re = this.classReCache[Af]; - if (!re) { - re = new RegExp('(?:^|\\s+)' + Af + '(?:\\s+|$)', "g"); - this.classReCache[Af] = re; - } - - this.dom.className = - this.dom.className.replace(re, " "); - } - } - return this; - }, - - - classReCache: {}, - - - - toggleClass : function(Ag){ - if(this.hasClass(Ag)){ - this.removeClass(Ag); - }else { - this.addClass(Ag); - } - return this; - }, - - - - hasClass : function(Ah){ - return Ah && (' '+this.dom.className+' ').indexOf(' '+Ah+' ') != -1; - }, - - - - replaceClass : function(Ai, Aj){ - this.removeClass(Ai); - this.addClass(Aj); - return this; - }, - - - - getStyles : function(){ - var a = arguments, Ak = a.length, r = {}; - for(var i = 0; i < Ak; i++){ - r[a[i]] = this.getStyle(a[i]); - } - return r; - }, - - - - getStyle : function(){ - return G && G.getComputedStyle ? - function(Al){ - var el = this.dom, v, cs, Am; - if(Al == 'float'){ - Al = "cssFloat"; - } - if(el.style && (v = el.style[Al])){ - return v; - } - if(cs = G.getComputedStyle(el, "")){ - if(!(Am = B[Al])){ - Am = B[Al] = Al.replace(C, F); - } - return cs[Am]; - } - return null; - } : - function(Al){ - var el = this.dom, v, cs, Am; - if(Al == '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(Al == 'float'){ - Al = "styleFloat"; - } - if(!(Am = B[Al])){ - Am = B[Al] = Al.replace(C, F); - } - if(v = el.style[Am]){ - return v; - } - if(cs = el.currentStyle){ - return cs[Am]; - } - return null; - }; - }(), - - - - setStyle : function(Al, Am){ - if(typeof Al == "string"){ - - if (Al == 'float') { - this.setStyle(Roo.isIE ? 'styleFloat' : 'cssFloat', Am); - return this; - } - - var camel; - if(!(camel = B[Al])){ - camel = B[Al] = Al.replace(C, F); - } - - if(camel == 'opacity') { - this.setOpacity(Am); - }else { - this.dom.style[camel] = Am; - } - }else { - for(var style in Al){ - if(typeof Al[style] != "function"){ - this.setStyle(style, Al[style]); - } - } - } - return this; - }, - - - - applyStyles : function(An){ - Roo.DomHelper.applyStyles(this.dom, An); - return this; - }, - - - - getX : function(){ - return D.getX(this.dom); - }, - - - - getY : function(){ - return D.getY(this.dom); - }, - - - - getXY : function(){ - return D.getXY(this.dom); - }, - - - - setX : function(x, Ao){ - if(!Ao || !A){ - D.setX(this.dom, x); - }else { - this.setXY([x, this.getY()], this.preanim(arguments, 1)); - } - return this; - }, - - - - setY : function(y, Ap){ - if(!Ap || !A){ - D.setY(this.dom, y); - }else { - this.setXY([this.getX(), y], this.preanim(arguments, 1)); - } - return this; - }, - - - - setLeft : function(Aq){ - this.setStyle("left", this.addUnits(Aq)); - return this; - }, - - - - setTop : function(Ar){ - this.setStyle("top", this.addUnits(Ar)); - return this; - }, - - - - setRight : function(As){ - this.setStyle("right", this.addUnits(As)); - return this; - }, - - - - setBottom : function(At){ - this.setStyle("bottom", this.addUnits(At)); - return this; - }, - - - - setXY : function(Au, Av){ - if(!Av || !A){ - D.setXY(this.dom, Au); - }else { - this.anim({points: {to: Au}}, this.preanim(arguments, 1), 'motion'); - } - return this; - }, - - - - setLocation : function(x, y, Aw){ - this.setXY([x, y], this.preanim(arguments, 2)); - return this; - }, - - - - moveTo : function(x, y, Ax){ - this.setXY([x, y], this.preanim(arguments, 2)); - return this; - }, - - - - getRegion : function(){ - return D.getRegion(this.dom); - }, - - - - getHeight : function(Ay){ - var h = this.dom.offsetHeight || 0; - return Ay !== true ? h : h-this.getBorderWidth("tb")-this.getPadding("tb"); - }, - - - - getWidth : function(Az){ - var w = this.dom.offsetWidth || 0; - return Az !== true ? w : w-this.getBorderWidth("lr")-this.getPadding("lr"); - }, - - - - 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(A0){ - return {width: this.getWidth(A0), height: this.getHeight(A0)}; - }, - - - - getViewSize : function(){ - var d = this.dom, A1 = document, aw = 0, ah = 0; - if(d == A1 || d == A1.body){ - return {width : D.getViewWidth(), height: D.getViewHeight()}; - }else { - return { - width : d.clientWidth, - height: d.clientHeight - }; - } - }, - - - - getValue : function(A2){ - return A2 ? parseInt(this.dom.value, 10) : this.dom.value; - }, - - - adjustWidth : function(A3){ - if(typeof A3 == "number"){ - if(this.autoBoxAdjust && !this.isBorderBox()){ - A3 -= (this.getBorderWidth("lr") + this.getPadding("lr")); - } - if(A3 < 0){ - A3 = 0; - } - } - return A3; - }, - - - adjustHeight : function(A4){ - if(typeof A4 == "number"){ - if(this.autoBoxAdjust && !this.isBorderBox()){ - A4 -= (this.getBorderWidth("tb") + this.getPadding("tb")); - } - if(A4 < 0){ - A4 = 0; - } - } - return A4; - }, - - - - setWidth : function(A5, A6){ - A5 = this.adjustWidth(A5); - if(!A6 || !A){ - this.dom.style.width = this.addUnits(A5); - }else { - this.anim({width: {to: A5}}, this.preanim(arguments, 1)); - } - return this; - }, - - - - setHeight : function(A7, A8){ - A7 = this.adjustHeight(A7); - if(!A8 || !A){ - this.dom.style.height = this.addUnits(A7); - }else { - this.anim({height: {to: A7}}, this.preanim(arguments, 1)); - } - return this; - }, - - - - setSize : function(A9, BA, BB){ - if(typeof A9 == "object"){ - BA = A9.height; A9 = A9.width; - } - - A9 = this.adjustWidth(A9); BA = this.adjustHeight(BA); - if(!BB || !A){ - this.dom.style.width = this.addUnits(A9); - this.dom.style.height = this.addUnits(BA); - }else { - this.anim({width: {to: A9}, height: {to: BA}}, this.preanim(arguments, 2)); - } - return this; - }, - - - - setBounds : function(x, y, BC, BD, BE){ - if(!BE || !A){ - this.setSize(BC, BD); - this.setLocation(x, y); - }else { - BC = this.adjustWidth(BC); BD = this.adjustHeight(BD); - this.anim({points: {to: [x, y]}, width: {to: BC}, height: {to: BD}}, - this.preanim(arguments, 4), 'motion'); - } - return this; - }, - - - - setRegion : function(BF, BG){ - this.setBounds(BF.left, BF.top, BF.right-BF.left, BF.bottom-BF.top, this.preanim(arguments, 1)); - return this; - }, - - - - addListener : function(BH, fn, BI, BJ){ - Roo.EventManager.on(this.dom, BH, fn, BI || this, BJ); - }, - - - - removeListener : function(BK, fn){ - Roo.EventManager.removeListener(this.dom, BK, fn); - return this; - }, - - - - removeAllListeners : function(){ - E.purgeElement(this.dom); - return this; - }, - - relayEvent : function(BL, BM){ - this.on(BL, function(e){ - BM.fireEvent(BL, e); - }); - }, - - - - setOpacity : function(BN, BO){ - if(!BO || !A){ - var s = this.dom.style; - if(Roo.isIE){ - s.zoom = 1; - s.filter = (s.filter || '').replace(/alpha\([^\)]*\)/gi,"") + - (BN == 1 ? "" : "alpha(opacity=" + BN * 100 + ")"); - }else { - s.opacity = BN; - } - }else { - this.anim({opacity: {to: BN}}, this.preanim(arguments, 1), null, .35, 'easeIn'); - } - return this; - }, - - - - getLeft : function(BP){ - if(!BP){ - return this.getX(); - }else { - return parseInt(this.getStyle("left"), 10) || 0; - } - }, - - - - getRight : function(BQ){ - if(!BQ){ - return this.getX() + this.getWidth(); - }else { - return (this.getLeft(true) + this.getWidth()) || 0; - } - }, - - - - getTop : function(BR) { - if(!BR){ - return this.getY(); - }else { - return parseInt(this.getStyle("top"), 10) || 0; - } - }, - - - - getBottom : function(BS){ - if(!BS){ - return this.getY() + this.getHeight(); - }else { - return (this.getTop(true) + this.getHeight()) || 0; - } - }, - - - - position : function(BT, BU, x, y){ - if(!BT){ - if(this.getStyle('position') == 'static'){ - this.setStyle('position', 'relative'); - } - }else { - this.setStyle("position", BT); - } - if(BU){ - this.setStyle("z-index", BU); - } - 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(BV){ - BV = BV ||''; - this.setStyle({ - "left": BV, - "right": BV, - "top": BV, - "bottom": BV, - "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(BW){ - return this.addStyles(BW, El.borders); - }, - - - - getPadding : function(BX){ - return this.addStyles(BX, 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"); - } - } - }, - - - - setLeftTop : function(BY, BZ){ - this.dom.style.left = this.addUnits(BY); - this.dom.style.top = this.addUnits(BZ); - return this; - }, - - - - move : function(Ba, Bb, Bc){ - var xy = this.getXY(); - Ba = Ba.toLowerCase(); - switch(Ba){ - case "l": - case "left": - this.moveTo(xy[0]-Bb, xy[1], this.preanim(arguments, 2)); - break; - case "r": - case "right": - this.moveTo(xy[0]+Bb, xy[1], this.preanim(arguments, 2)); - break; - case "t": - case "top": - case "up": - this.moveTo(xy[0], xy[1]-Bb, this.preanim(arguments, 2)); - break; - case "b": - case "bottom": - case "down": - this.moveTo(xy[0], xy[1]+Bb, 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(Bd, Be, 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((Bd || "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(Be === 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 = Roo.get(el); - var d = this.dom; - if(!el.dom){ - throw "Element.alignTo with an element that doesn't exist"; - } - 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 A1 = document; - var scrollX = (A1.documentElement.scrollLeft || A1.body.scrollLeft || 0)+5; - var scrollY = (A1.documentElement.scrollTop || A1.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, Bf, Bg, Bh){ - el = Roo.get(el); - Bg = Bg ? Roo.applyIf(Bg, os) : os; - - var vw, vh, vx = 0, vy = 0; - if(el.dom == document.body || el.dom == document){ - vw = Roo.lib.Dom.getViewWidth(); - vh = Roo.lib.Dom.getViewHeight(); - }else { - vw = el.dom.clientWidth; - vh = el.dom.clientHeight; - if(!Bf){ - var vxy = el.getXY(); - vx = vxy[0]; - vy = vxy[1]; - } - } - - var s = el.getScroll(); - - vx += Bg.left + s.left; - vy += Bg.top + s.top; - - vw -= Bg.right; - vh -= Bg.bottom; - - var vr = vx+vw; - var vb = vy+vh; - - var xy = Bh || (!Bf ? 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 Bi = false; - - - if((x + w) > vr){ - x = vr - w; - Bi = true; - } - if((y + h) > vb){ - y = vb - h; - Bi = true; - } - - if(x < vx){ - x = vx; - Bi = true; - } - if(y < vy){ - y = vy; - Bi = true; - } - return Bi ? [x, y] : false; - }; - }(), - - - adjustForConstraints : function(xy, Bf, Bg){ - return this.getConstrainToXY(Bf || document, false, Bg, xy) || xy; - }, - - - - alignTo : function(Bh, Bi, Bj, Bk){ - var xy = this.getAlignToXY(Bh, Bi, Bj); - this.setXY(xy, this.preanim(arguments, 3)); - return this; - }, - - - - anchorTo : function(el, Bl, Bm, Bn, Bo, Bp){ - var Bq = function(){ - this.alignTo(el, Bl, Bm, Bn); - Roo.callback(Bp, this); - }; - Roo.EventManager.onWindowResize(Bq, this); - var tm = typeof Bo; - if(tm != 'undefined'){ - Roo.EventManager.on(window, 'scroll', Bq, this, - {buffer: tm == 'number' ? Bo : 50}); - } - - Bq.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(Br){ - this.setVisible(false, this.preanim(arguments, 0)); - return this; - }, - - - - show : function(Bs){ - this.setVisible(true, this.preanim(arguments, 0)); - return this; - }, - - - - addUnits : function(Bt){ - return Roo.Element.addUnits(Bt, this.defaultUnit); - }, - - - - beginMeasure : function(){ - var el = this.dom; - if(el.offsetWidth || el.offsetHeight){ - return this; - } - var Bu = []; - var p = this.dom, b = document.body; - while((!el.offsetWidth && !el.offsetHeight) && p && p.tagName && p != b){ - var pe = Roo.get(p); - if(pe.getStyle('display') == 'none'){ - Bu.push({el: p, visibility: pe.getStyle("visibility")}); - p.style.visibility = "hidden"; - p.style.display = "block"; - } - - p = p.parentNode; - } - - this._measureChanged = Bu; - return this; - - }, - - - - endMeasure : function(){ - var Bv = this._measureChanged; - if(Bv){ - for(var i = 0, Ak = Bv.length; i < Ak; i++) { - var r = Bv[i]; - r.el.style.visibility = r.visibility; - r.el.style.display = "none"; - } - - this._measureChanged = null; - } - return this; - }, - - - - update : function(Bw, Bx, By){ - if(typeof Bw == "undefined"){ - Bw = ""; - } - if(Bx !== true){ - this.dom.innerHTML = Bw; - if(typeof By == "function"){ - By(); - } - return this; - } - var id = Roo.id(); - var Bz = this.dom; - - Bw += ''; - - E.onAvailable(id, function(){ - var hd = document.getElementsByTagName("head")[0]; - var re = /(?:]*)?>)((\n|\r|.)*?)(?:<\/script>)/ig; - var B0 = /\ssrc=([\'\"])(.*?)\1/i; - var B1 = /\stype=([\'\"])(.*?)\1/i; - - var B2; - while(B2 = re.exec(Bw)){ - var attrs = B2[1]; - var srcMatch = attrs ? attrs.match(B0) : false; - if(srcMatch && srcMatch[2]){ - var s = document.createElement("script"); - s.src = srcMatch[2]; - var typeMatch = attrs.match(B1); - if(typeMatch && typeMatch[2]){ - s.type = typeMatch[2]; - } - - hd.appendChild(s); - }else if(B2[2] && B2[2].length > 0){ - if(window.execScript) { - window.execScript(B2[2]); - } else { - - - window.eval(B2[2]); - } - } - } - var el = document.getElementById(id); - if(el){el.parentNode.removeChild(el);} - if(typeof By == "function"){ - By(); - } - }); - Bz.innerHTML = Bw.replace(/(?:)((\n|\r|.)*?)(?:<\/script>)/ig, ""); - return this; - }, - - - - load : function(){ - var um = this.getUpdateManager(); - um.update.apply(um, arguments); - return this; - }, - - - - getUpdateManager : function(){ - if(!this.updateManager){ - this.updateManager = new Roo.UpdateManager(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(B0){ - this.alignTo(B0 || document, 'c-c'); - return this; - }, - - - - isBorderBox : function(){ - return I[this.dom.tagName.toLowerCase()] || Roo.isBorderBox; - }, - - - - getBox : function(B1, B2){ - var xy; - if(!B2){ - xy = this.getXY(); - }else { - var BY = parseInt(this.getStyle("left"), 10) || 0; - var BZ = parseInt(this.getStyle("top"), 10) || 0; - xy = [BY, BZ]; - } - var el = this.dom, w = el.offsetWidth, h = el.offsetHeight, bx; - if(!B1){ - 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(B3, B4){ - return B4 && Roo.isBorderBox ? 0 : (this.getPadding(B3) + this.getBorderWidth(B3)); - }, - - - - setBox : function(B5, B6, B7){ - var w = B5.width, h = B5.height; - if((B6 && !this.autoBoxAdjust) && !this.isBorderBox()){ - w -= (this.getBorderWidth("lr") + this.getPadding("lr")); - h -= (this.getBorderWidth("tb") + this.getPadding("tb")); - } - - this.setBounds(B5.x, B5.y, w, h, this.preanim(arguments, 2)); - return this; - }, - - - - repaint : function(){ - var B8 = this.dom; - this.addClass("x-repaint"); - setTimeout(function(){ - Roo.get(B8).removeClass("x-repaint"); - }, 1); - return this; - }, - - - - getMargins : function(B9){ - if(!B9){ - 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(B9, El.margins); - } - }, - - - addStyles : function(CA, CB){ - var CC = 0, v, w; - for(var i = 0, Ak = CA.length; i < Ak; i++){ - v = this.getStyle(CB[CA.charAt(i)]); - if(v){ - w = parseInt(v, 10); - if(w){ CC += w; } - } - } - return CC; - }, - - - - createProxy : function(CD, CE, CF){ - if(CE){ - CE = Roo.getDom(CE); - }else { - CE = document.body; - } - - CD = typeof CD == "object" ? - CD : {tag : "div", cls: CD}; - var CG = Roo.DomHelper.append(CE, CD, true); - if(CF){ - CG.setBox(this.getBox()); - } - return CG; - }, - - - - mask : function(CH, CI){ - if(this.getStyle("position") == "static"){ - this.setStyle("position", "relative"); - } - if(!this._mask){ - this._mask = Roo.DomHelper.append(this.dom, {cls:"roo-el-mask"}, true); - } - - this.addClass("x-masked"); - this._mask.setDisplayed(true); - if(typeof CH == 'string'){ - if(!this._maskMsg){ - this._maskMsg = Roo.DomHelper.append(this.dom, {cls:"roo-el-mask-msg", cn:{tag:'div'}}, true); - } - var mm = this._maskMsg; - mm.dom.className = CI ? "roo-el-mask-msg " + CI : "roo-el-mask-msg"; - mm.dom.firstChild.innerHTML = CH; - mm.setDisplayed(true); - mm.center(this); - } - if(Roo.isIE && !(Roo.isIE7 && Roo.isStrict) && this.getStyle('height') == 'auto'){ - this._mask.setHeight(this.getHeight()); - } - return this._mask; - }, - - - - unmask : function(CJ){ - if(this._mask){ - if(CJ === true){ - this._mask.remove(); - delete this._mask; - if(this._maskMsg){ - this._maskMsg.remove(); - delete this._maskMsg; - } - }else { - this._mask.setDisplayed(false); - if(this._maskMsg){ - this._maskMsg.setDisplayed(false); - } - } - } - - this.removeClass("x-masked"); - }, - - - - isMasked : function(){ - return this._mask && this._mask.isVisible(); - }, - - - - createShim : function(){ - var el = document.createElement('iframe'); - el.frameBorder = 'no'; - el.className = 'roo-shim'; - if(Roo.isIE && Roo.isSecure){ - el.src = Roo.SSL_SECURE_URL; - } - var CK = Roo.get(this.dom.parentNode.insertBefore(el, this.dom)); - CK.autoBoxAdjust = false; - return CK; - }, - - - - remove : function(){ - if(this.dom.parentNode){ - this.dom.parentNode.removeChild(this.dom); - } - delete El.cache[this.dom.id]; - }, - - - - addClassOnOver : function(CL, CM){ - this.on("mouseover", function(){ - Roo.fly(this, '_internal').addClass(CL); - }, this.dom); - var CN = function(e){ - if(CM !== true || !e.within(this, true)){ - Roo.fly(this, '_internal').removeClass(CL); - } - }; - this.on("mouseout", CN, this.dom); - return this; - }, - - - - addClassOnFocus : function(CO){ - this.on("focus", function(){ - Roo.fly(this, '_internal').addClass(CO); - }, this.dom); - this.on("blur", function(){ - Roo.fly(this, '_internal').removeClass(CO); - }, this.dom); - return this; - }, - - - addClassOnClick : function(CP){ - var CQ = this.dom; - this.on("mousedown", function(){ - Roo.fly(CQ, '_internal').addClass(CP); - var d = Roo.get(document); - var fn = function(){ - Roo.fly(CQ, '_internal').removeClass(CP); - d.removeListener("mouseup", fn); - }; - d.on("mouseup", fn); - }); - return this; - }, - - - - swallowEvent : function(CR, CS){ - var fn = function(e){ - e.stopPropagation(); - if(CS){ - e.preventDefault(); - } - }; - if(CR instanceof Array){ - for(var i = 0, Ak = CR.length; i < Ak; i++){ - this.on(CR[i], fn); - } - return this; - } - - this.on(CR, fn); - return this; - }, - - - - fitToParentDelegate : Roo.emptyFn, - - - - fitToParent : function(CT, CU) { - Roo.EventManager.removeResizeListener(this.fitToParentDelegate); - this.fitToParentDelegate = Roo.emptyFn; - if (CT === true && !this.dom.parentNode) { - return; - } - var p = Roo.get(CU || this.dom.parentNode); - this.setSize(p.getComputedWidth() - p.getFrameWidth('lr'), p.getComputedHeight() - p.getFrameWidth('tb')); - if (CT === true) { - this.fitToParentDelegate = this.fitToParent.createDelegate(this, [true, CU]); - Roo.EventManager.onWindowResize(this.fitToParentDelegate); - } - return this; - }, - - - - getNextSibling : function(){ - var n = this.dom.nextSibling; - while(n && n.nodeType != 1){ - n = n.nextSibling; - } - return n; - }, - - - - getPrevSibling : function(){ - var n = this.dom.previousSibling; - while(n && n.nodeType != 1){ - n = n.previousSibling; - } - return n; - }, - - - - - appendChild: function(el){ - el = Roo.get(el); - el.appendTo(this); - return this; - }, - - - - createChild: function(CV, CW, CX){ - CV = CV || {tag:'div'}; - if(CW){ - return Roo.DomHelper.insertBefore(CW, CV, CX !== true); - } - return Roo.DomHelper[!this.dom.firstChild ? 'overwrite' : 'append'](this.dom, CV, CX !== true); - }, - - - - appendTo: function(el){ - el = Roo.getDom(el); - el.appendChild(this.dom); - return this; - }, - - - - insertBefore: function(el){ - el = Roo.getDom(el); - el.parentNode.insertBefore(this.dom, el); - return this; - }, - - - - insertAfter: function(el){ - el = Roo.getDom(el); - el.parentNode.insertBefore(this.dom, el.nextSibling); - return this; - }, - - - - insertFirst: function(el, CY){ - el = el || {}; - if(typeof el == 'object' && !el.nodeType){ - return this.createChild(el, this.dom.firstChild, CY); - }else { - el = Roo.getDom(el); - this.dom.insertBefore(el, this.dom.firstChild); - return !CY ? Roo.get(el) : el; - } - }, - - - - insertSibling: function(el, CZ, Ca){ - CZ = CZ ? CZ.toLowerCase() : 'before'; - el = el || {}; - var rt, Cb = CZ == 'before' ? this.dom : this.dom.nextSibling; - - if(typeof el == 'object' && !el.nodeType){ - if(CZ == 'after' && !this.dom.nextSibling){ - rt = Roo.DomHelper.append(this.dom.parentNode, el, !Ca); - }else { - rt = Roo.DomHelper[CZ == 'after' ? 'insertAfter' : 'insertBefore'](this.dom, el, !Ca); - } - - }else { - rt = this.dom.parentNode.insertBefore(Roo.getDom(el), - CZ == 'before' ? this.dom : this.dom.nextSibling); - if(!Ca){ - rt = Roo.get(rt); - } - } - return rt; - }, - - - - wrap: function(Cc, Cd){ - if(!Cc){ - Cc = {tag: "div"}; - } - var Ce = Roo.DomHelper.insertBefore(this.dom, Cc, !Cd); - Ce.dom ? Ce.dom.appendChild(this.dom) : Ce.appendChild(this.dom); - return Ce; - }, - - - - replace: function(el){ - el = Roo.get(el); - this.insertBefore(el); - el.remove(); - return this; - }, - - - - insertHtml : function(Cf, Cg, Ch){ - var el = Roo.DomHelper.insertHtml(Cf, this.dom, Cg); - return Ch ? Roo.get(el) : el; - }, - - - - set : function(o, Ci){ - var el = this.dom; - Ci = typeof Ci == 'undefined' ? (el.setAttribute ? true : false) : Ci; - for(var attr in o){ - if(attr == "style" || typeof o[attr] == "function") continue; - if(attr=="cls"){ - el.className = o["cls"]; - }else { - if(Ci) el.setAttribute(attr, o[attr]); - else el[attr] = o[attr]; - } - } - if(o.style){ - Roo.DomHelper.applyStyles(el, o.style); - } - return this; - }, - - - - addKeyListener : function(Cj, fn, Ck){ - var Cl; - if(typeof Cj != "object" || Cj instanceof Array){ - Cl = { - key: Cj, - fn: fn, - scope: Ck - }; - }else { - Cl = { - key : Cj.key, - shift : Cj.shift, - ctrl : Cj.ctrl, - alt : Cj.alt, - fn: fn, - scope: Ck - }; - } - return new Roo.KeyMap(this, Cl); - }, - - - - addKeyMap : function(Cm){ - return new Roo.KeyMap(this, Cm); - }, - - - - isScrollable : function(){ - var Cn = this.dom; - return Cn.scrollHeight > Cn.clientHeight || Cn.scrollWidth > Cn.clientWidth; - }, - - - - - scrollTo : function(Co, Cp, Cq){ - var Cr = Co.toLowerCase() == "left" ? "scrollLeft" : "scrollTop"; - if(!Cq || !A){ - this.dom[Cr] = Cp; - }else { - var to = Cr == "scrollLeft" ? [Cp, this.dom.scrollTop] : [this.dom.scrollLeft, Cp]; - this.anim({scroll: {"to": to}}, this.preanim(arguments, 2), 'scroll'); - } - return this; - }, - - - - scroll : function(Cs, Ct, Cu){ - 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; - Cs = Cs.toLowerCase(); - var Cv = false; - var a = this.preanim(arguments, 2); - switch(Cs){ - case "l": - case "left": - if(w - l > cw){ - var v = Math.min(l + Ct, w-cw); - this.scrollTo("left", v, a); - Cv = true; - } - break; - case "r": - case "right": - if(l > 0){ - var v = Math.max(l - Ct, 0); - this.scrollTo("left", v, a); - Cv = true; - } - break; - case "t": - case "top": - case "up": - if(t > 0){ - var v = Math.max(t - Ct, 0); - this.scrollTo("top", v, a); - Cv = true; - } - break; - case "b": - case "bottom": - case "down": - if(h - t > ch){ - var v = Math.min(t + Ct, h-ch); - this.scrollTo("top", v, a); - Cv = true; - } - break; - } - return Cv; - }, - - - - translatePoints : function(x, y){ - if(typeof x == 'object' || x instanceof Array){ - 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, Cw = document; - if(d == Cw || d == Cw.body){ - var l = window.pageXOffset || Cw.documentElement.scrollLeft || Cw.body.scrollLeft || 0; - var t = window.pageYOffset || Cw.documentElement.scrollTop || Cw.body.scrollTop || 0; - return {left: l, top: t}; - }else { - return {left: d.scrollLeft, top: d.scrollTop}; - } - }, - - - - getColor : function(Cx, Cy, Cz){ - var v = this.getStyle(Cx); - if(!v || v == "transparent" || v == "inherit") { - return Cy; - } - var C0 = typeof Cz == "undefined" ? "#" : Cz; - 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]).toString(16); - if(h < 16){ - h = "0" + h; - } - - C0 += h; - } - } else { - if(v.substr(0, 1) == "#"){ - if(v.length == 4) { - for(var i = 1; i < 4; i++){ - var c = v.charAt(i); - C0 += c + c; - } - }else if(v.length == 7){ - C0 += v.substr(1); - } - } - } - return (C0.length > 5 ? C0.toLowerCase() : Cy); - }, - - - - boxWrap : function(C1){ - C1 = C1 || 'x-box'; - var el = Roo.get(this.insertHtml('beforeBegin', String.format('
'+El.boxMarkup+'
', C1))); - el.child('.'+C1+'-mc').dom.appendChild(this.dom); - return el; - }, - - - - getAttributeNS : Roo.isIE ? function(ns, C2){ - var d = this.dom; - var C3 = typeof d[ns+":"+C2]; - if(C3 != 'undefined' && C3 != 'unknown'){ - return d[ns+":"+C2]; - } - return d[C2]; - } : function(ns, C4){ - var d = this.dom; - return d.getAttributeNS(ns, C4) || d.getAttribute(ns+":"+C4) || d.getAttribute(C4) || d[C4]; - } - }; - - var ep = El.prototype; - - - - ep.on = ep.addListener; - - ep.mon = ep.addListener; - - - - ep.un = ep.removeListener; - - - - ep.autoBoxAdjust = true; - - - El.unitPattern = /\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i; - - - El.addUnits = function(v, J){ - if(v === "" || v == "auto"){ - return v; - } - if(v === undefined){ - return ''; - } - if(typeof v == "number" || !El.unitPattern.test(v)){ - return v + (J || 'px'); - } - return v; - }; - - - El.boxMarkup = '
'; - - - 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 H; - - - - El.get = function(el){ - var ex, J, id; - if(!el){ return null; } - if(typeof el == "string"){ - if(!(J = document.getElementById(el))){ - return null; - } - if(ex = El.cache[el]){ - ex.dom = J; - }else { - ex = El.cache[el] = new El(J); - } - return ex; - }else if(el.tagName){ - if(!(id = el.id)){ - id = Roo.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 != H){ - el.dom = document.getElementById(el.id) || el.dom; - - El.cache[el.id] = el; - } - return el; - }else if(el.isComposite){ - return el; - }else if(el instanceof Array){ - return El.select(el); - }else if(el == document){ - - if(!H){ - var f = function(){}; - f.prototype = El.prototype; - H = new f(); - H.dom = document; - } - return H; - } - 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(!Roo.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 && Roo.enableListenerCollection){ - E.purgeElement(d); - } - } - } - } - - El.collectorThreadId = setInterval(El.garbageCollect, 30000); - - - - El.Flyweight = function(J){ - this.dom = J; - }; - El.Flyweight.prototype = El.prototype; - - El._flyweights = {}; - - - El.fly = function(el, J){ - J = J || '_global'; - el = Roo.getDom(el); - if(!el){ - return null; - } - if(!El._flyweights[J]){ - El._flyweights[J] = new El.Flyweight(); - } - - El._flyweights[J].dom = el; - return El._flyweights[J]; - }; - - - - Roo.get = El.get; - - - Roo.fly = El.fly; - - - var I = Roo.isStrict ? { - select:1 - } : { - input:1, select:1, textarea:1 - }; - if(Roo.isIE || Roo.isGecko){ - I['button'] = 1; - } - - - - Roo.EventManager.on(window, 'unload', function(){ - delete El.cache; - delete El._flyweights; - }); -})(); - - - - -if(Roo.DomQuery){ - Roo.Element.selectorFunction = Roo.DomQuery.select; -} - - -Roo.Element.select = function(J, K, L){ - var M; - if(typeof J == "string"){ - M = Roo.Element.selectorFunction(J, L); - }else if(J.length !== undefined){ - M = J; - }else { - throw "Invalid selector"; - } - if(K === true){ - return new Roo.CompositeElement(M); - }else { - return new Roo.CompositeElementLite(M); - } -}; - - -Roo.select = Roo.Element.select; - - - - - - - - - - - - - - - - - - - - - -Roo.enableFx = true; - - - -Roo.Fx = { - - - slideIn : function(A, o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - - A = A || "t"; - - - this.fixDisplay(); - - - var r = this.getFxRestore(); - var b = this.getBox(); - - this.setSize(b); - - - var B = this.fxWrap(r.pos, o, "hidden"); - - var st = this.dom.style; - st.visibility = "visible"; - st.position = "absolute"; - - - var C = function(){ - el.fxUnwrap(B, 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(A.toLowerCase()){ - case "t": - B.setSize(b.width, 0); - st.left = st.bottom = "0"; - a = {height: bh}; - break; - case "l": - B.setSize(0, b.height); - st.right = st.top = "0"; - a = {width: bw}; - break; - case "r": - B.setSize(0, b.height); - B.setX(b.right); - st.left = st.top = "0"; - a = {width: bw, points: pt}; - break; - case "b": - B.setSize(b.width, 0); - B.setY(b.bottom); - st.left = st.top = "0"; - a = {height: bh, points: pt}; - break; - case "tl": - B.setSize(0, 0); - st.right = st.bottom = "0"; - a = {width: bw, height: bh}; - break; - case "bl": - B.setSize(0, 0); - B.setY(b.y+b.height); - st.right = st.top = "0"; - a = {width: bw, height: bh, points: pt}; - break; - case "br": - B.setSize(0, 0); - B.setXY([b.right, b.bottom]); - st.left = st.top = "0"; - a = {width: bw, height: bh, points: pt}; - break; - case "tr": - B.setSize(0, 0); - B.setX(b.x+b.width); - st.left = st.bottom = "0"; - a = {width: bw, height: bh, points: pt}; - break; - } - - this.dom.style.visibility = "visible"; - B.show(); - - arguments.callee.anim = B.fxanim(a, - o, - 'motion', - .5, - 'easeOut', C); - }); - return this; - }, - - - - slideOut : function(B, o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - - B = B || "t"; - - - var r = this.getFxRestore(); - - var b = this.getBox(); - - this.setSize(b); - - - var C = this.fxWrap(r.pos, o, "visible"); - - var st = this.dom.style; - st.visibility = "visible"; - st.position = "absolute"; - - C.setSize(b); - - var D = function(){ - if(o.useDisplay){ - el.setDisplayed(false); - }else { - el.hide(); - } - - - el.fxUnwrap(C, r.pos, o); - - st.width = r.width; - st.height = r.height; - - el.afterFx(o); - }; - - var a, E = {to: 0}; - switch(B.toLowerCase()){ - case "t": - st.left = st.bottom = "0"; - a = {height: E}; - break; - case "l": - st.right = st.top = "0"; - a = {width: E}; - break; - case "r": - st.left = st.top = "0"; - a = {width: E, points: {to:[b.right, b.y]}}; - break; - case "b": - st.left = st.top = "0"; - a = {height: E, points: {to:[b.x, b.bottom]}}; - break; - case "tl": - st.right = st.bottom = "0"; - a = {width: E, height: E}; - break; - case "bl": - st.right = st.top = "0"; - a = {width: E, height: E, points: {to:[b.x, b.bottom]}}; - break; - case "br": - st.left = st.top = "0"; - a = {width: E, height: E, points: {to:[b.x+b.width, b.bottom]}}; - break; - case "tr": - st.left = st.bottom = "0"; - a = {width: E, height: E, points: {to:[b.right, b.y]}}; - break; - } - - - arguments.callee.anim = C.fxanim(a, - o, - 'motion', - .5, - "easeOut", D); - }); - 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 C = 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 D = this.getWidth(); - var E = this.getHeight(); - - arguments.callee.anim = this.fxanim({ - width : {to: this.adjustWidth(D * 2)}, - height : {to: this.adjustHeight(E * 2)}, - points : {by: [-(D * .5), -(E * .5)]}, - opacity : {to: 0}, - fontSize: {to:200, unit: "%"} - }, - o, - 'motion', - .5, - "easeOut", C); - }); - 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 C = 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', C); - }).defer(100, this); - }); - }); - return this; - }, - - - - highlight : function(C, o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - C = C || "ffff9c"; - attr = o.attr || "backgroundColor"; - - this.clearOpacity(); - this.show(); - - var D = this.getColor(attr); - var E = this.dom.style[attr]; - endColor = (o.endColor || D) || "ffffff"; - - var F = function(){ - el.dom.style[attr] = E; - el.afterFx(o); - }; - - var a = {}; - a[attr] = {from: C, to: endColor}; - arguments.callee.anim = this.fxanim(a, - o, - 'color', - 1, - 'easeIn', F); - }); - return this; - }, - - - - frame : function(D, E, o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - D = D || "#C3DAF9"; - if(D.length == 6){ - D = "#" + D; - } - - E = E || 1; - duration = o.duration || 1; - this.show(); - - var b = this.getBox(); - var F = function(){ - var G = this.createProxy({ - - style:{ - visbility:"hidden", - position:"absolute", - "z-index":"35000", - border:"0px solid " + D - } - }); - var H = Roo.isBorderBox ? 2 : 1; - G.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*H))}, - width:{from:b.width, to:(b.width + (20*H))} - }, duration, function(){ - G.remove(); - }); - if(--E > 0){ - F.defer((duration/2)*1000, this); - }else { - el.afterFx(o); - } - }; - F.call(this); - }); - return this; - }, - - - - pause : function(F){ - var el = this.getFxEl(); - var o = {}; - - el.queueFx(o, function(){ - setTimeout(function(){ - el.afterFx(o); - }, F * 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 == Roo.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(Roo.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(G, o){ - var el = this.getFxEl(); - o = o || {}; - - el.queueFx(o, function(){ - G = G || "b"; - - - var r = this.getFxRestore(); - var w = this.getWidth(), - h = this.getHeight(); - - var st = this.dom.style; - - var H = 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(G.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", H); - }); - return this; - }, - - - - syncFx : function(){ - this.fxDefaults = Roo.apply(this.fxDefaults || {}, { - block : false, - concurrent : true, - stopFx : false - }); - return this; - }, - - - - sequenceFx : function(){ - this.fxDefaults = Roo.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()){ - Roo.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(H, o, I){ - var J; - if(!o.wrap || !(J = Roo.get(o.wrap))){ - var wrapXY; - if(o.fixPosition){ - wrapXY = this.getXY(); - } - var div = document.createElement("div"); - div.style.visibility = I; - J = Roo.get(this.dom.parentNode.insertBefore(div, this.dom)); - J.setPositioning(H); - if(J.getStyle("position") == "static"){ - J.position("relative"); - } - - this.clearPositioning('auto'); - J.clip(); - J.dom.appendChild(this.dom); - if(wrapXY){ - J.setXY(wrapXY); - } - } - return J; - }, - - - - fxUnwrap : function(K, L, o){ - this.clearPositioning(); - this.setPositioning(L); - if(!o.wrap){ - K.dom.parentNode.insertBefore(this.dom, K.dom); - K.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(); - } - - Roo.callback(o.callback, o.scope, [this]); - if(!o.concurrent){ - this.fxQueue.shift(); - this.nextFx(); - } - }, - - - - getFxEl : function(){ - return Roo.get(this.dom); - }, - - - - fxanim : function(M, N, O, P, Q, cb){ - O = O || 'run'; - N = N || {}; - var R = Roo.lib.Anim[O]( - this.dom, M, - (N.duration || P) || .35, - (N.easing || Q) || 'easeOut', - function(){ - Roo.callback(cb, this); - }, - this - ); - N.anim = R; - return R; - } -}; - - -Roo.Fx.resize = Roo.Fx.scale; - - - -Roo.apply(Roo.Element.prototype, Roo.Fx); - - - - - - -Roo.CompositeElement = function(A){ - this.elements = []; - this.addElements(A); -}; -Roo.CompositeElement.prototype = { - isComposite: true, - addElements : function(B){ - if(!B) return this; - if(typeof B == "string"){ - B = Roo.Element.selectorFunction(B); - } - var C = this.elements; - var D = C.length-1; - for(var i = 0, len = B.length; i < len; i++) { - C[++D] = Roo.get(B[i]); - } - return this; - }, - - - - fill : function(E){ - this.elements = []; - this.add(E); - return this; - }, - - - - filter : function(F){ - var G = []; - this.each(function(el){ - if(el.is(F)){ - G[G.length] = el.dom; - } - }); - this.fill(G); - return this; - }, - - invoke : function(fn, H){ - var I = this.elements; - for(var i = 0, len = I.length; i < len; i++) { - Roo.Element.prototype[fn].apply(I[i], H); - } - return this; - }, - - - add : function(J){ - if(typeof J == "string"){ - this.addElements(Roo.Element.selectorFunction(J)); - }else if(J.length !== undefined){ - this.addElements(J); - }else { - this.addElements([J]); - } - return this; - }, - - - each : function(fn, K){ - var L = this.elements; - for(var i = 0, len = L.length; i < len; i++){ - if(fn.call(K || L[i], L[i], this, i) === false) { - break; - } - } - return this; - }, - - - - item : function(M){ - return this.elements[M] || 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(Roo.get(el)); - }, - - - - - removeElement : function(el, N){ - if(el instanceof Array){ - for(var i = 0, len = el.length; i < len; i++){ - this.removeElement(el[i]); - } - return this; - } - var O = typeof el == 'number' ? el : this.indexOf(el); - if(O !== -1){ - if(N){ - var d = this.elements[O]; - if(d.dom){ - d.remove(); - }else { - d.parentNode.removeChild(d); - } - } - - this.elements.splice(O, 1); - } - return this; - }, - - - - replaceElement : function(el, P, Q){ - var R = typeof el == 'number' ? el : this.indexOf(el); - if(R !== -1){ - if(Q){ - this.elements[R].replaceWith(P); - }else { - this.elements.splice(R, 1, Roo.get(P)) - } - } - return this; - }, - - - - clear : function(){ - this.elements = []; - } -}; -(function(){ - Roo.CompositeElement.createCall = function(S, T){ - if(!S[T]){ - S[T] = function(){ - return this.invoke(T, arguments); - }; - } - }; - for(var fnName in Roo.Element.prototype){ - if(typeof Roo.Element.prototype[fnName] == "function"){ - Roo.CompositeElement.createCall(Roo.CompositeElement.prototype, fnName); - } - }; -})(); - - - - - - -Roo.CompositeElementLite = function(A){ - Roo.CompositeElementLite.superclass.constructor.call(this, A); - this.el = new Roo.Element.Flyweight(); -}; -Roo.extend(Roo.CompositeElementLite, Roo.CompositeElement, { - addElements : function(B){ - if(B){ - if(B instanceof Array){ - this.elements = this.elements.concat(B); - }else { - var yels = this.elements; - var index = yels.length-1; - for(var i = 0, len = B.length; i < len; i++) { - yels[++index] = B[i]; - } - } - } - return this; - }, - invoke : function(fn, C){ - var D = this.elements; - var el = this.el; - for(var i = 0, len = D.length; i < len; i++) { - el.dom = D[i]; - Roo.Element.prototype[fn].apply(el, C); - } - return this; - }, - - - item : function(E){ - if(!this.elements[E]){ - return null; - } - - this.el.dom = this.elements[E]; - return this.el; - }, - - - addListener : function(F, G, H, I){ - var J = this.elements; - for(var i = 0, len = J.length; i < len; i++) { - Roo.EventManager.on(J[i], F, G, H || J[i], I); - } - return this; - }, - - - - each : function(fn, K){ - var L = this.elements; - var el = this.el; - for(var i = 0, len = L.length; i < len; i++){ - el.dom = L[i]; - if(fn.call(K || el, el, this, i) === false){ - break; - } - } - return this; - }, - - indexOf : function(el){ - return this.elements.indexOf(Roo.getDom(el)); - }, - - replaceElement : function(el, M, N){ - var O = typeof el == 'number' ? el : this.indexOf(el); - if(O !== -1){ - M = Roo.getDom(M); - if(N){ - var d = this.elements[O]; - d.parentNode.insertBefore(M, d); - d.parentNode.removeChild(d); - } - - this.elements.splice(O, 1, M); - } - return this; - } -}); -Roo.CompositeElementLite.prototype.on = Roo.CompositeElementLite.prototype.addListener; - - - - - - - - - -Roo.data.Connection = function(A){ - Roo.apply(this, A); - this.addEvents({ - - - "beforerequest" : true, - - - "requestcomplete" : true, - - - "requestexception" : true - }); - Roo.data.Connection.superclass.constructor.call(this); -}; - -Roo.extend(Roo.data.Connection, Roo.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 = Roo.urlEncode(o.params); - } - if(this.extraParams){ - var extras = Roo.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 = Roo.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 = Roo.lib.Ajax.serializeForm(form); - p = p ? (p + '&' + f) : f; - } - - var hs = o.headers; - if(this.defaultHeaders){ - hs = Roo.apply(hs || {}, this.defaultHeaders); - if(!o.headers){ - o.headers = hs; - } - } - - var cb = { - success: this.handleResponse, - failure: this.handleFailure, - scope: this, - argument: {options: 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){ - url += (url.indexOf('?') != -1 ? '&' : '?') + p; - p = ''; - } - - this.transId = Roo.lib.Ajax.request(method, url, cb, p, o); - return this.transId; - }else { - Roo.callback(o.callback, o.scope, [o, null, null]); - return null; - } - }, - - - - isLoading : function(B){ - if(B){ - return Roo.lib.Ajax.isCallInProgress(B); - }else { - return this.transId ? true : false; - } - }, - - - - abort : function(C){ - if(C || this.isLoading()){ - Roo.lib.Ajax.abort(C || this.transId); - } - }, - - - handleResponse : function(D){ - this.transId = false; - var E = D.argument.options; - D.argument = E ? E.argument : null; - this.fireEvent("requestcomplete", this, D, E); - Roo.callback(E.success, E.scope, [D, E]); - Roo.callback(E.callback, E.scope, [E, true, D]); - }, - - - handleFailure : function(F, e){ - this.transId = false; - var G = F.argument.options; - F.argument = G ? G.argument : null; - this.fireEvent("requestexception", this, F, G, e); - Roo.callback(G.failure, G.scope, [F, G]); - Roo.callback(G.callback, G.scope, [G, false, F]); - }, - - - doFormUpload : function(o, ps, H){ - var id = Roo.id(); - var I = document.createElement('iframe'); - I.id = id; - I.name = id; - I.className = 'x-hidden'; - if(Roo.isIE){ - I.src = Roo.SSL_SECURE_URL; - } - - document.body.appendChild(I); - - if(Roo.isIE){ - document.frames[id].name = id; - } - - var J = Roo.getDom(o.form); - J.target = id; - J.method = 'POST'; - J.enctype = J.encoding = 'multipart/form-data'; - if(H){ - J.action = H; - } - - var K, hd; - if(ps){ - K = []; - ps = Roo.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]; - J.appendChild(hd); - K.push(hd); - } - } - } - - function cb(){ - var r = { - responseText : '', - responseXML : null - }; - - r.argument = o ? o.argument : null; - - try { - var doc; - if(Roo.isIE){ - doc = I.contentWindow.document; - }else { - doc = (I.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) { - - } - - - Roo.EventManager.removeListener(I, 'load', cb, this); - - this.fireEvent("requestcomplete", this, r, o); - Roo.callback(o.success, o.scope, [r, o]); - Roo.callback(o.callback, o.scope, [o, true, r]); - - setTimeout(function(){document.body.removeChild(I);}, 100); - } - - - Roo.EventManager.on(I, 'load', cb, this); - J.submit(); - - if(K){ - for(var i = 0, len = K.length; i < len; i++){ - J.removeChild(K[i]); - } - } - } -}); - - - -Roo.Ajax = new Roo.data.Connection({ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - autoAbort : false, - - - - serializeForm : function(L){ - return Roo.lib.Ajax.serializeForm(L); - } -}); - - - - - -Roo.Ajax = new Roo.data.Connection({ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - autoAbort : false, - - - - serializeForm : function(A){ - return Roo.lib.Ajax.serializeForm(A); - } -}); - - - - - - -Roo.UpdateManager = function(el, A){ - el = Roo.get(el); - if(!A && el.updateManager){ - return el.updateManager; - } - - - - this.el = el; - - - this.defaultUrl = null; - - this.addEvents({ - - - "beforeupdate": true, - - - "update": true, - - - "failure": true - }); - var d = Roo.UpdateManager.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); - - - this.successDelegate = this.processSuccess.createDelegate(this); - - - this.failureDelegate = this.processFailure.createDelegate(this); - - if(!this.renderer){ - - - this.renderer = new Roo.UpdateManager.BasicRenderer(); - } - - - Roo.UpdateManager.superclass.constructor.call(this); -}; - -Roo.extend(Roo.UpdateManager, Roo.util.Observable, { - - - getEl : function(){ - return this.el; - }, - - - update : function(B, C, D, E){ - if(this.fireEvent("beforeupdate", this.el, B, C) !== false){ - var method = this.method, cfg; - if(typeof B == "object"){ - cfg = B; - B = cfg.url; - C = C || cfg.params; - D = D || cfg.callback; - E = E || cfg.discardUrl; - if(D && cfg.scope){ - D = D.createDelegate(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 = '
'+cfg.text+"
";}; - if(typeof cfg.scripts != "undefined"){this.loadScripts = cfg.scripts;}; - if(typeof cfg.timeout != "undefined"){this.timeout = cfg.timeout;}; - } - - this.showLoading(); - if(!E){ - this.defaultUrl = B; - } - if(typeof B == "function"){ - B = B.call(this); - } - - - method = method || (C ? "POST" : "GET"); - if(method == "GET"){ - B = this.prepareUrl(B); - } - - var o = Roo.apply(cfg ||{}, { - url : B, - params: C, - success: this.successDelegate, - failure: this.failureDelegate, - callback: undefined, - timeout: (this.timeout*1000), - argument: {"url": B, "form": null, "callback": D, "params": C} - }); - - this.transaction = Roo.Ajax.request(o); - } - }, - - - - formUpdate : function(F, G, H, I){ - if(this.fireEvent("beforeupdate", this.el, F, G) !== false){ - if(typeof G == "function"){ - G = G.call(this); - } - - F = Roo.getDom(F); - this.transaction = Roo.Ajax.request({ - form: F, - url:G, - success: this.successDelegate, - failure: this.failureDelegate, - timeout: (this.timeout*1000), - argument: {"url": G, "form": F, "callback": I, "reset": H} - }); - this.showLoading.defer(1, this); - } - }, - - - - refresh : function(J){ - if(this.defaultUrl == null){ - return; - } - - this.update(this.defaultUrl, null, J, true); - }, - - - - startAutoRefresh : function(K, L, M, N, O){ - if(O){ - this.update(L || this.defaultUrl, M, N, true); - } - if(this.autoRefreshProcId){ - clearInterval(this.autoRefreshProcId); - } - - this.autoRefreshProcId = setInterval(this.update.createDelegate(this, [L || this.defaultUrl, M, N, true]), K*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(P){ - if(this.disableCaching){ - var append = "_dc=" + (new Date().getTime()); - if(P.indexOf("?") !== -1){ - P += "&" + append; - }else { - P += "?" + append; - } - } - return P; - }, - - - - processSuccess : function(Q){ - this.transaction = null; - if(Q.argument.form && Q.argument.reset){ - try{ - Q.argument.form.reset(); - }catch(e){} - } - if(this.loadScripts){ - this.renderer.render(this.el, Q, this, - this.updateComplete.createDelegate(this, [Q])); - }else { - this.renderer.render(this.el, Q, this); - this.updateComplete(Q); - } - }, - - updateComplete : function(R){ - this.fireEvent("update", this.el, R); - if(typeof R.argument.callback == "function"){ - R.argument.callback(this.el, true, R); - } - }, - - - - processFailure : function(S){ - this.transaction = null; - this.fireEvent("failure", this.el, S); - if(typeof S.argument.callback == "function"){ - S.argument.callback(this.el, false, S); - } - }, - - - - setRenderer : function(T){ - this.renderer = T; - }, - - getRenderer : function(){ - return this.renderer; - }, - - - - setDefaultUrl : function(U){ - this.defaultUrl = U; - }, - - - - abort : function(){ - if(this.transaction){ - Roo.Ajax.abort(this.transaction); - } - }, - - - - isUpdating : function(){ - if(this.transaction){ - return Roo.Ajax.isLoading(this.transaction); - } - return false; - } -}); - - - - Roo.UpdateManager.defaults = { - - - timeout : 30, - - - - loadScripts : false, - - - - sslBlankUrl : (Roo.SSL_SECURE_URL || "javascript:false"), - - - disableCaching : false, - - - showLoadIndicator : true, - - - indicatorText : '
Loading...
' - }; - - - -Roo.UpdateManager.updateElement = function(el, V, W, X){ - var um = Roo.get(el, true).getUpdateManager(); - Roo.apply(um, X); - um.update(V, W, X ? X.callback : null); -}; - -Roo.UpdateManager.update = Roo.UpdateManager.updateElement; - - -Roo.UpdateManager.BasicRenderer = function(){}; - -Roo.UpdateManager.BasicRenderer.prototype = { - - - render : function(el, Y, Z, a){ - el.update(Y.responseText, Z.loadScripts, a); - } -}; - - - - - - -Roo.util.DelayedTask = function(fn, A, B){ - var id = null, d, t; - - var C = function(){ - var D = new Date().getTime(); - if(D - t >= d){ - clearInterval(id); - id = null; - fn.apply(A, B || []); - } - }; - - - this.delay = function(D, E, F, G){ - if(id && D != d){ - this.cancel(); - } - - d = D; - t = new Date().getTime(); - fn = E || fn; - A = F || A; - B = G || B; - if(!id){ - id = setInterval(C, d); - } - }; - - - - this.cancel = function(){ - if(id){ - clearInterval(id); - id = null; - } - }; -}; - - - - -Roo.util.TaskRunner = function(A){ - A = A || 10; - var B = [], C = []; - var id = 0; - var D = false; - - var E = function(){ - D = false; - clearInterval(id); - id = 0; - }; - - var F = function(){ - if(!D){ - D = true; - id = setInterval(H, A); - } - }; - - var G = function(I){ - C.push(I); - if(I.onStop){ - I.onStop(); - } - }; - - var H = function(){ - if(C.length > 0){ - for(var i = 0, len = C.length; i < len; i++){ - B.remove(C[i]); - } - - C = []; - if(B.length < 1){ - E(); - return; - } - } - var I = new Date().getTime(); - for(var i = 0, len = B.length; i < len; ++i){ - var t = B[i]; - var itime = I - t.taskRunTime; - if(t.interval <= itime){ - var rt = t.run.apply(t.scope || t, t.args || [++t.taskRunCount]); - t.taskRunTime = I; - if(rt === false || t.taskRunCount === t.repeat){ - G(t); - return; - } - } - if(t.duration && t.duration <= (I - t.taskStartTime)){ - G(t); - } - } - }; - - - - this.start = function(I){ - B.push(I); - I.taskStartTime = new Date().getTime(); - I.taskRunTime = 0; - I.taskRunCount = 0; - F(); - return I; - }; - - this.stop = function(I){ - G(I); - return I; - }; - - this.stopAll = function(){ - E(); - for(var i = 0, len = B.length; i < len; i++){ - if(B[i].onStop){ - B[i].onStop(); - } - } - - B = []; - C = []; - }; -}; - -Roo.TaskMgr = new Roo.util.TaskRunner(); - - - - - - -Roo.util.MixedCollection = function(A, B){ - this.items = []; - this.map = {}; - this.keys = []; - this.length = 0; - this.addEvents({ - - - "clear" : true, - - - "add" : true, - - - "replace" : true, - - - "remove" : true, - "sort" : true - }); - this.allowFunctions = A === true; - if(B){ - this.getKey = B; - } - - Roo.util.MixedCollection.superclass.constructor.call(this); -}; - -Roo.extend(Roo.util.MixedCollection, Roo.util.Observable, { - allowFunctions : false, - - - - add : function(C, o){ - if(arguments.length == 1){ - o = arguments[0]; - C = this.getKey(o); - } - if(typeof C == "undefined" || C === null){ - this.length++; - this.items.push(o); - this.keys.push(null); - }else { - var old = this.map[C]; - if(old){ - return this.replace(C, o); - } - - this.length++; - this.items.push(o); - this.map[C] = o; - this.keys.push(C); - } - - this.fireEvent("add", this.length-1, o, C); - return o; - }, - - - - getKey : function(o){ - return o.id; - }, - - - - replace : function(D, o){ - if(arguments.length == 1){ - o = arguments[0]; - D = this.getKey(o); - } - var E = this.item(D); - if(typeof D == "undefined" || D === null || typeof E == "undefined"){ - return this.add(D, o); - } - var F = this.indexOfKey(D); - this.items[F] = o; - this.map[D] = o; - this.fireEvent("replace", D, E, o); - return o; - }, - - - - addAll : function(G){ - if(arguments.length > 1 || G instanceof Array){ - var args = arguments.length > 1 ? arguments : G; - for(var i = 0, len = args.length; i < len; i++){ - this.add(args[i]); - } - }else { - for(var D in G){ - if(this.allowFunctions || typeof G[D] != "function"){ - this.add(D, G[D]); - } - } - } - }, - - - - each : function(fn, H){ - var I = [].concat(this.items); - for(var i = 0, len = I.length; i < len; i++){ - if(fn.call(H || I[i], I[i], i, len) === false){ - break; - } - } - }, - - - - eachKey : function(fn, J){ - for(var i = 0, len = this.keys.length; i < len; i++){ - fn.call(J || window, this.keys[i], this.items[i], i, len); - } - }, - - - - find : function(fn, K){ - for(var i = 0, len = this.items.length; i < len; i++){ - if(fn.call(K || window, this.items[i], this.keys[i])){ - return this.items[i]; - } - } - return null; - }, - - - - insert : function(L, M, o){ - if(arguments.length == 2){ - o = arguments[1]; - M = this.getKey(o); - } - if(L >= this.length){ - return this.add(M, o); - } - - this.length++; - this.items.splice(L, 0, o); - if(typeof M != "undefined" && M != null){ - this.map[M] = o; - } - - this.keys.splice(L, 0, M); - this.fireEvent("add", L, o, M); - return o; - }, - - - - remove : function(o){ - return this.removeAt(this.indexOf(o)); - }, - - - - removeAt : function(N){ - if(N < this.length && N >= 0){ - this.length--; - var o = this.items[N]; - this.items.splice(N, 1); - var M = this.keys[N]; - if(typeof M != "undefined"){ - delete this.map[M]; - } - - this.keys.splice(N, 1); - this.fireEvent("remove", o, M); - } - }, - - - - removeKey : function(O){ - return this.removeAt(this.indexOfKey(O)); - }, - - - - getCount : function(){ - return this.length; - }, - - - - indexOf : function(o){ - if(!this.items.indexOf){ - for(var i = 0, len = this.items.length; i < len; i++){ - if(this.items[i] == o) return i; - } - return -1; - }else { - return this.items.indexOf(o); - } - }, - - - - indexOfKey : function(P){ - if(!this.keys.indexOf){ - for(var i = 0, len = this.keys.length; i < len; i++){ - if(this.keys[i] == P) return i; - } - return -1; - }else { - return this.keys.indexOf(P); - } - }, - - - - item : function(Q){ - var R = typeof this.map[Q] != "undefined" ? this.map[Q] : this.items[Q]; - return typeof R != 'function' || this.allowFunctions ? R : null; - }, - - - - itemAt : function(S){ - return this.items[S]; - }, - - - - key : function(T){ - return this.map[T]; - }, - - - - contains : function(o){ - return this.indexOf(o) != -1; - }, - - - - containsKey : function(U){ - return typeof this.map[U] != "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(V, W, fn){ - var X = String(W).toUpperCase() == "DESC" ? -1 : 1; - fn = fn || function(a, b){ - return a-b; - }; - var c = [], k = this.keys, Y = this.items; - for(var i = 0, len = Y.length; i < len; i++){ - c[c.length] = {key: k[i], value: Y[i], index: i}; - } - - c.sort(function(a, b){ - var v = fn(a[V], b[V]) * X; - if(v == 0){ - v = (a.index < b.index ? -1 : 1); - } - return v; - }); - for(var i = 0, len = c.length; i < len; i++){ - Y[i] = c[i].value; - k[i] = c[i].key; - } - - this.fireEvent("sort", this); - }, - - - - sort : function(Z, fn){ - this._sort("value", Z, fn); - }, - - - - keySort : function(a, fn){ - this._sort("key", a, fn || function(a, b){ - return String(a).toUpperCase()-String(b).toUpperCase(); - }); - }, - - - - getRange : function(b, d){ - var e = this.items; - if(e.length < 1){ - return []; - } - - b = b || 0; - d = Math.min(typeof d == "undefined" ? this.length-1 : d, this.length-1); - var r = []; - if(b <= d){ - for(var i = b; i <= d; i++) { - r[r.length] = e[i]; - } - }else { - for(var i = b; i >= d; i--) { - r[r.length] = e[i]; - } - } - return r; - }, - - - - filter : function(f, g){ - if(!g.exec){ - g = String(g); - if(g.length == 0){ - return this.clone(); - } - - g = new RegExp("^" + Roo.escapeRe(g), "i"); - } - return this.filterBy(function(o){ - return o && g.test(o[f]); - }); - }, - - - - filterBy : function(fn, h){ - var r = new Roo.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(h||this, it[i], k[i])){ - r.add(k[i], it[i]); - } - } - return r; - }, - - - - clone : function(){ - var r = new Roo.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; - } -}); - - -Roo.util.MixedCollection.prototype.get = Roo.util.MixedCollection.prototype.item; - - - - -Roo.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" : Roo.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(o instanceof Array){ - return encodeArray(o); - }else if(o instanceof Date){ - 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 + ')'); - }; -})(); - - -Roo.encode = Roo.util.JSON.encode; - - -Roo.decode = Roo.util.JSON.decode; - - - - - - -Roo.util.Format = function(){ - var A = /^\s+|\s+$/g; - return { - - - ellipsis : function(R, S){ - if(R && R.length > S){ - return R.substr(0, S-3)+"..."; - } - return R; - }, - - - - undef : function(T){ - return typeof T != "undefined" ? T : ""; - }, - - - - htmlEncode : function(U){ - return !U ? U : String(U).replace(/&/g, "&").replace(/>/g, ">").replace(/").replace(/</g, "<").replace(/"/g, '"'); - }, - - - - trim : function(W){ - return String(W).replace(A, ""); - }, - - - - substr : function(X, Y, Z){ - return String(X).substr(Y, Z); - }, - - - - lowercase : function(a){ - return String(a).toLowerCase(); - }, - - - - uppercase : function(b){ - return String(b).toUpperCase(); - }, - - - - capitalize : function(c){ - return !c ? c : c.charAt(0).toUpperCase() + c.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 d = ps[0]; - var e = ps[1] ? '.'+ ps[1] : '.00'; - var r = /(\d+)(\d{3})/; - while (r.test(d)) { - d = d.replace(r, '$1' + ',' + '$2'); - } - return "$" + d + e ; - }, - - - - date : function(v, f){ - if(!v){ - return ""; - } - if(!(v instanceof Date)){ - v = new Date(Date.parse(v)); - } - return v.dateFormat(f || "m/d/Y"); - }, - - - - dateRenderer : function(g){ - return function(v){ - return Roo.util.Format.date(v, g); - }; - }, - - - stripTagsRE : /<\/?[^>]+>/gi, - - - - stripTags : function(v){ - return !v ? v : String(v).replace(this.stripTagsRE, ""); - } - }; -}(); - - - - - - - - -Roo.MasterTemplate = function(){ - Roo.MasterTemplate.superclass.constructor.apply(this, arguments); - this.originalHtml = this.html; - var st = {}; - var m, re = this.subTemplateRe; - re.lastIndex = 0; - var A = 0; - while(m = re.exec(this.html)){ - var name = m[1], content = m[2]; - st[A] = { - name: name, - index: A, - buffer: [], - tpl : new Roo.Template(content) - }; - if(name){ - st[name] = st[A]; - } - - st[A].tpl.compile(); - st[A].tpl.call = this.call.createDelegate(this); - A++; - } - - this.subCount = A; - this.subs = st; -}; -Roo.extend(Roo.MasterTemplate, Roo.Template, { - - - subTemplateRe : /((?:.|\n)*?)<\/tpl>/gi, - - - - add : function(B, C){ - if(arguments.length == 1){ - C = arguments[0]; - B = 0; - } - var s = this.subs[B]; - s.buffer[s.buffer.length] = s.tpl.apply(C); - return this; - }, - - - - fill : function(D, E, F){ - var a = arguments; - if(a.length == 1 || (a.length == 2 && typeof a[1] == "boolean")){ - E = a[0]; - D = 0; - F = a[1]; - } - if(F){ - this.reset(); - } - for(var i = 0, len = E.length; i < len; i++){ - this.add(D, E[i]); - } - return this; - }, - - - - reset : function(){ - var s = this.subs; - for(var i = 0; i < this.subCount; i++){ - s[i].buffer = []; - } - return this; - }, - - applyTemplate : function(G){ - var s = this.subs; - var H = -1; - this.html = this.originalHtml.replace(this.subTemplateRe, function(m, I){ - return s[++H].buffer.join(""); - }); - return Roo.MasterTemplate.superclass.applyTemplate.call(this, G); - }, - - apply : function(){ - return this.applyTemplate.apply(this, arguments); - }, - - compile : function(){return this;} -}); - - - -Roo.MasterTemplate.prototype.addAll = Roo.MasterTemplate.prototype.fill; - - -Roo.MasterTemplate.from = function(el, I){ - el = Roo.getDom(el); - return new Roo.MasterTemplate(el.value || el.innerHTML, I || ''); -}; - - - - - - -Roo.util.CSS = function(){ - var A = null; - var B = document; - - var C = /(-[a-z])/gi; - var D = function(m, a){ return a.charAt(1).toUpperCase(); }; - - return { - - - createStyleSheet : function(P, id){ - var ss; - var Q = B.getElementsByTagName("head")[0]; - var R = B.createElement("style"); - R.setAttribute("type", "text/css"); - if(id){ - R.setAttribute("id", id); - } - if (typeof(P) != 'string') { - - - - - var cssTextNew = []; - for(var n in P) { - var citems = []; - for(var k in P[n]) { - citems.push( k + ' : ' +P[n][k] + ';' ); - } - - cssTextNew.push( n + ' { ' + citems.join(' ') + '} '); - - } - - P = cssTextNew.join("\n"); - - } - - - if(Roo.isIE){ - Q.appendChild(R); - ss = R.styleSheet; - ss.cssText = P; - }else { - try{ - R.appendChild(B.createTextNode(P)); - }catch(e){ - R.cssText = P; - } - - Q.appendChild(R); - ss = R.styleSheet ? R.styleSheet : (R.sheet || B.styleSheets[B.styleSheets.length-1]); - } - - this.cacheStyleSheet(ss); - return ss; - }, - - - - removeStyleSheet : function(id){ - var S = B.getElementById(id); - if(S){ - S.parentNode.removeChild(S); - } - }, - - - - swapStyleSheet : function(id, T){ - this.removeStyleSheet(id); - var ss = B.createElement("link"); - ss.setAttribute("rel", "stylesheet"); - ss.setAttribute("type", "text/css"); - ss.setAttribute("id", id); - ss.setAttribute("href", T); - B.getElementsByTagName("head")[0].appendChild(ss); - }, - - - - refreshCache : function(){ - return this.getRules(true); - }, - - - cacheStyleSheet : function(ss){ - if(!R){ - R = {}; - } - try{ - var ssRules = ss.cssRules || ss.rules; - for(var j = ssRules.length-1; j >= 0; --j){ - R[ssRules[j].selectorText] = ssRules[j]; - } - }catch(e){} - }, - - - - getRules : function(U){ - if(R == null || U){ - R = {}; - var ds = B.styleSheets; - for(var i =0, len = ds.length; i < len; i++){ - try{ - this.cacheStyleSheet(ds[i]); - }catch(e){} - } - } - return R; - }, - - - - getRule : function(V, W){ - var rs = this.getRules(W); - if(!(V instanceof Array)){ - return rs[V]; - } - for(var i = 0; i < V.length; i++){ - if(rs[V[i]]){ - return rs[V[i]]; - } - } - return null; - }, - - - - - updateRule : function(X, Y, Z){ - if(!(X instanceof Array)){ - var rule = this.getRule(X); - if(rule){ - rule.style[Y.replace(C, D)] = Z; - return true; - } - }else { - for(var i = 0; i < X.length; i++){ - if(this.updateRule(X[i], Y, Z)){ - return true; - } - } - } - return false; - } - }; -}(); - - - - - - - -Roo.util.ClickRepeater = function(el, A) -{ - this.el = Roo.get(el); - this.el.unselectable(); - - Roo.apply(this, A); - - this.addEvents({ - - - "mousedown" : true, - - - "click" : true, - - - "mouseup" : true - }); - - 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); - } - - - Roo.util.ClickRepeater.superclass.constructor.call(this); -}; - -Roo.extend(Roo.util.ClickRepeater, Roo.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(); - - Roo.get(document).on("mouseup", this.handleMouseUp, this); - this.el.on("mouseout", this.handleMouseOut, this); - - this.fireEvent("mousedown", this); - this.fireEvent("click", this); - - this.timer = this.click.defer(this.delay || this.interval, this); - }, - - - click : function(){ - this.fireEvent("click", this); - this.timer = this.click.defer(this.getInterval(), this); - }, - - - getInterval: function(){ - if(!this.accelerate){ - return this.interval; - } - var B = this.mousedownTime.getElapsed(); - if(B < 500){ - return 400; - }else if(B < 1700){ - return 320; - }else if(B < 2600){ - return 250; - }else if(B < 3500){ - return 180; - }else if(B < 4400){ - return 140; - }else if(B < 5300){ - return 80; - }else if(B < 6200){ - return 50; - }else { - return 10; - } - }, - - - 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); - Roo.get(document).un("mouseup", this.handleMouseUp); - this.el.removeClass(this.pressClass); - this.fireEvent("mouseup", this); - } -}); - - - - - - -Roo.KeyNav = function(el, A){ - this.el = Roo.get(el); - Roo.apply(this, A); - if(!this.disabled){ - this.disabled = true; - this.enable(); - } -}; - -Roo.KeyNav.prototype = { - - - disabled : false, - - - defaultEventAction: "stopEvent", - - - forceKeyDown : false, - - - prepareEvent : function(e){ - var k = e.getKey(); - var h = this.keyToHandler[k]; - - - - if(Roo.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, B){ - 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 || Roo.isIE || Roo.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 || Roo.isIE || Roo.isAir){ - this.el.un("keydown", this.relay); - }else { - this.el.un("keydown", this.prepareEvent); - this.el.un("keypress", this.relay); - } - - this.disabled = true; - } - } -}; - - - - - - -Roo.KeyMap = function(el, A, B){ - this.el = Roo.get(el); - this.eventName = B || "keydown"; - this.bindings = []; - if(A){ - this.addBinding(A); - } - - this.enable(); -}; - -Roo.KeyMap.prototype = { - - - stopEvent : false, - - - - addBinding : function(C){ - if(C instanceof Array){ - for(var i = 0, len = C.length; i < len; i++){ - this.addBinding(C[i]); - } - return; - } - var D = C.key, - E = C.shift, - F = C.ctrl, - G = C.alt, - fn = C.fn, - H = C.scope; - if(typeof D == "string"){ - var ks = []; - var keyString = D.toUpperCase(); - for(var j = 0, len = keyString.length; j < len; j++){ - ks.push(keyString.charCodeAt(j)); - } - - D = ks; - } - var I = D instanceof Array; - var J = function(e){ - if((!E || e.shiftKey) && (!F || e.ctrlKey) && (!G || e.altKey)){ - var k = e.getKey(); - if(I){ - for(var i = 0, len = D.length; i < len; i++){ - if(D[i] == k){ - if(this.stopEvent){ - e.stopEvent(); - } - - fn.call(H || window, k, e); - return; - } - } - }else { - if(k == D){ - if(this.stopEvent){ - e.stopEvent(); - } - - fn.call(H || window, k, e); - } - } - } - }; - this.bindings.push(J); - }, - - - - on : function(K, fn, L){ - var M, N, O, P; - if(typeof K == "object" && !(K instanceof Array)){ - M = K.key; - N = K.shift; - O = K.ctrl; - P = K.alt; - }else { - M = K; - } - - this.addBinding({ - key: M, - shift: N, - ctrl: O, - alt: P, - fn: fn, - scope: L - }) - }, - - - 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; - } - } -}; - - - - - - -Roo.util.TextMetrics = function(){ - var A; - return { - - - measure : function(el, E, F){ - if(!A){ - A = Roo.util.TextMetrics.Instance(el, F); - } - - A.bind(el); - A.setFixedWidth(F || 'auto'); - return A.getSize(E); - }, - - - - createInstance : function(el, G){ - return Roo.util.TextMetrics.Instance(el, G); - } - }; -}(); - - - -Roo.util.TextMetrics.Instance = function(B, C){ - var ml = new Roo.Element(document.createElement('div')); - document.body.appendChild(ml.dom); - ml.position('absolute'); - ml.setLeftTop(-1000, -1000); - ml.hide(); - - if(C){ - ml.setWidth(C); - } - - var D = { - - - getSize : function(E){ - ml.update(E); - var s = ml.getSize(); - ml.update(''); - return s; - }, - - - - bind : function(el){ - ml.setStyle( - Roo.fly(el).getStyles('font-size','font-style', 'font-weight', 'font-family','line-height') - ); - }, - - - - setFixedWidth : function(F){ - ml.setWidth(F); - }, - - - - getWidth : function(G){ - ml.dom.style.width = 'auto'; - return this.getSize(G).width; - }, - - - - getHeight : function(H){ - return this.getSize(H).height; - } - }; - - D.bind(B); - - return D; -}; - - -Roo.Element.measureText = Roo.util.TextMetrics.measure; - - - - - -Roo.state.Provider = function(){ - - - this.addEvents({ - "statechange": true - }); - this.state = {}; - Roo.state.Provider.superclass.constructor.call(this); -}; -Roo.extend(Roo.state.Provider, Roo.util.Observable, { - - - get : function(A, B){ - return typeof this.state[A] == "undefined" ? - B : this.state[A]; - }, - - - - clear : function(C){ - delete this.state[C]; - this.fireEvent("statechange", this, C, null); - }, - - - - set : function(D, E){ - this.state[D] = E; - this.fireEvent("statechange", this, D, E); - }, - - - - decodeValue : function(F){ - var re = /^(a|n|d|b|s|o)\:(.*)$/; - var G = re.exec(unescape(F)); - if(!G || !G[1]) return; - var H = G[1]; - var v = G[2]; - switch(H){ - 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 I; - if(typeof v == "number"){ - I = "n:" + v; - }else if(typeof v == "boolean"){ - I = "b:" + (v ? "1" : "0"); - }else if(v instanceof Date){ - I = "d:" + v.toGMTString(); - }else if(v instanceof Array){ - var flat = ""; - for(var i = 0, len = v.length; i < len; i++){ - flat += this.encodeValue(v[i]); - if(i != len-1) flat += "^"; - } - - I = "a:" + flat; - }else if(typeof v == "object"){ - var flat = ""; - for(var key in v){ - if(typeof v[key] != "function"){ - flat += key + "=" + this.encodeValue(v[key]) + "^"; - } - } - - I = "o:" + flat.substring(0, flat.length-1); - }else { - I = "s:" + v; - } - return escape(I); - } -}); - - - - - - -Roo.state.Manager = function(){ - var A = new Roo.state.Provider(); - - return { - - - setProvider : function(H){ - A = H; - }, - - - - get : function(I, J){ - return A.get(I, J); - }, - - - - set : function(K, L){ - A.set(K, L); - }, - - - - clear : function(M){ - A.clear(M); - }, - - - - getProvider : function(){ - return A; - } - }; -}(); - - - - - -Roo.state.CookieProvider = function(A){ - Roo.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; - Roo.apply(this, A); - this.state = this.readCookies(); -}; - -Roo.extend(Roo.state.CookieProvider, Roo.state.Provider, { - - set : function(B, C){ - if(typeof C == "undefined" || C === null){ - this.clear(B); - return; - } - - this.setCookie(B, C); - Roo.state.CookieProvider.superclass.set.call(this, B, C); - }, - - - clear : function(D){ - this.clearCookie(D); - Roo.state.CookieProvider.superclass.clear.call(this, D); - }, - - - readCookies : function(){ - var E = {}; - var c = document.cookie + ";"; - var re = /\s?(.*?)=(.*?);/g; - var F; - while((F = re.exec(c)) != null){ - var D = F[1]; - var C = F[2]; - if(D && D.substring(0,3) == "ys-"){ - E[D.substr(3)] = this.decodeValue(C); - } - } - return E; - }, - - - setCookie : function(G, H){ - document.cookie = "ys-"+ G + "=" + this.encodeValue(H) + - ((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(I){ - document.cookie = "ys-" + I + "=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" : ""); - } -}); -- 2.39.2