Created
December 22, 2014 09:15
-
-
Save toddhalfpenny/a42132501bb169635738 to your computer and use it in GitHub Desktop.
Un-uglified VFRemote.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* This code is for Internal Salesforce use only, and subject to change without notice. | |
* Customers shouldn't reference this file in any web pages. | |
*/ | |
window.undefined = window.undefined; | |
VFExt3 = { | |
version: "3.2.2", | |
versionDetail: { | |
major: 3, | |
minor: 2, | |
patch: 2 | |
}, | |
apply: function(d, e, c) { | |
c && VFExt3.apply(d, c); | |
if (d && e && "object" == typeof e) | |
for (var b in e) d[b] = e[b]; | |
return d | |
} | |
}; | |
(function() { | |
var d = 0, | |
e = Object.prototype.toString, | |
c = navigator.userAgent.toLowerCase(), | |
b = function(a) { | |
return a.test(c) | |
}, | |
a = document, | |
h = "CSS1Compat" == a.compatMode, | |
k = b(/opera/), | |
g = b(/\bchrome\b/), | |
q = b(/webkit/), | |
f = !g && b(/safari/), | |
m = f && b(/applewebkit\/4/), | |
l = f && b(/version\/3/), | |
n = f && b(/version\/4/), | |
p = !k && b(/msie/), | |
s = p && b(/msie 7/), | |
t = p && b(/msie 8/), | |
v = p && !s && !t, | |
r = !q && b(/gecko/), | |
u = r && b(/rv:1\.8/), | |
x = r && b(/rv:1\.9/), | |
y = p && !h, | |
B = b(/windows|win32/), | |
z = b(/macintosh|mac os x/), | |
A = b(/adobeair/), | |
b = b(/linux/), | |
w = /^https/i.test(window.location.protocol); | |
if (v) try { | |
a.execCommand("BackgroundImageCache", !1, !0) | |
} catch (C) {} | |
VFExt3.apply(VFExt3, { | |
SSL_SECURE_URL: w && p ? 'javascript:""' : "about:blank", | |
isStrict: h, | |
isSecure: w, | |
isReady: !1, | |
enableGarbageCollector: !0, | |
enableListenerCollection: !1, | |
enableNestedListenerRemoval: !1, | |
USE_NATIVE_JSON: !1, | |
applyIf: function(a, b) { | |
if (a) | |
for (var f in b) VFExt3.isDefined(a[f]) || (a[f] = b[f]); | |
return a | |
}, | |
id: function(a, b) { | |
a = VFExt3.getDom(a, !0) || {}; | |
a.id || (a.id = (b || "ext-gen") + ++d); | |
return a.id | |
}, | |
extend: function() { | |
var a = function(a) { | |
for (var b in a) this[b] = | |
a[b] | |
}, | |
b = Object.prototype.constructor; | |
return function(f, c, d) { | |
"object" == typeof c && (d = c, c = f, f = d.constructor != b ? d.constructor : function() { | |
c.apply(this, arguments) | |
}); | |
var g = function() {}, | |
m = c.prototype; | |
g.prototype = m; | |
g = f.prototype = new g; | |
g.constructor = f; | |
f.superclass = m; | |
m.constructor == b && (m.constructor = c); | |
f.override = function(a) { | |
VFExt3.override(f, a) | |
}; | |
g.superclass = g.supr = function() { | |
return m | |
}; | |
g.override = a; | |
VFExt3.override(f, d); | |
f.extend = function(a) { | |
return VFExt3.extend(f, a) | |
}; | |
return f | |
} | |
}(), | |
override: function(a, b) { | |
if (b) { | |
var f = | |
a.prototype; | |
VFExt3.apply(f, b); | |
VFExt3.isIE && b.hasOwnProperty("toString") && (f.toString = b.toString) | |
} | |
}, | |
namespace: function() { | |
var a, b; | |
VFExt3.each(arguments, function(f) { | |
b = f.split("."); | |
a = window[b[0]] = window[b[0]] || {}; | |
VFExt3.each(b.slice(1), function(b) { | |
a = a[b] = a[b] || {} | |
}) | |
}); | |
return a | |
}, | |
urlEncode: function(a, b) { | |
var f, c = [], | |
d = encodeURIComponent; | |
VFExt3.iterate(a, function(a, b) { | |
f = VFExt3.isEmpty(b); | |
VFExt3.each(f ? a : b, function(b) { | |
c.push("\x26", d(a), "\x3d", !VFExt3.isEmpty(b) && (b != a || !f) ? VFExt3.isDate(b) ? VFExt3.encode(b).replace(/"/g, | |
"") : d(b) : "") | |
}) | |
}); | |
b || (c.shift(), b = ""); | |
return b + c.join("") | |
}, | |
urlDecode: function(a, b) { | |
if (VFExt3.isEmpty(a)) return {}; | |
var f = {}, | |
c = a.split("\x26"), | |
d = decodeURIComponent, | |
g, m; | |
VFExt3.each(c, function(a) { | |
a = a.split("\x3d"); | |
g = d(a[0]); | |
m = d(a[1]); | |
f[g] = b || !f[g] ? m : [].concat(f[g]).concat(m) | |
}); | |
return f | |
}, | |
urlAppend: function(a, b) { | |
return !VFExt3.isEmpty(b) ? a + (-1 === a.indexOf("?") ? "?" : "\x26") + b : a | |
}, | |
toArray: function() { | |
return p ? function(a, b, f, c) { | |
c = []; | |
for (var d = 0, g = a.length; d < g; d++) c.push(a[d]); | |
return c.slice(b || 0, f || c.length) | |
} : function(a, | |
b, f) { | |
return Array.prototype.slice.call(a, b || 0, f || a.length) | |
} | |
}(), | |
isIterable: function(a) { | |
return VFExt3.isArray(a) || a.callee || /NodeList|HTMLCollection/.test(e.call(a)) ? !0 : ("undefined" != typeof a.nextNode || a.item) && VFExt3.isNumber(a.length) | |
}, | |
each: function(a, b, f) { | |
if (!VFExt3.isEmpty(a, !0)) { | |
if (!VFExt3.isIterable(a) || VFExt3.isPrimitive(a)) a = [a]; | |
for (var c = 0, d = a.length; c < d; c++) | |
if (!1 === b.call(f || a[c], a[c], c, a)) return c | |
} | |
}, | |
iterate: function(a, b, f) { | |
if (!VFExt3.isEmpty(a)) | |
if (VFExt3.isIterable(a)) VFExt3.each(a, b, f); | |
else if ("object" == typeof a) | |
for (var c in a) | |
if (a.hasOwnProperty(c) && !1 === b.call(f || a, c, a[c], a)) break | |
}, | |
getDom: function(b, f) { | |
if (!b || !a) return null; | |
if (b.dom) return b.dom; | |
if ("string" == typeof b) { | |
var c = a.getElementById(b); | |
return c && (p && f) && b != c.getAttribute("id") ? null : c | |
} | |
return b | |
}, | |
getBody: function() { | |
return VFExt3.get(a.body || a.documentElement) | |
}, | |
getHead: function() { | |
var b; | |
return function() { | |
void 0 == b && (b = VFExt3.get(a.getElementsByTagName("head")[0])); | |
return b | |
} | |
}(), | |
removeNode: p && !t ? function() { | |
var b; | |
return function(f) { | |
f && | |
"BODY" != f.tagName && (VFExt3.enableNestedListenerRemoval ? VFExt3.EventManager.purgeElement(f, !0) : VFExt3.EventManager.removeAll(f), b = b || a.createElement("div"), b.appendChild(f), b.innerHTML = "", delete VFExt3.elCache[f.id]) | |
} | |
}() : function(a) { | |
a && (a.parentNode && "BODY" != a.tagName) && (VFExt3.enableNestedListenerRemoval ? VFExt3.EventManager.purgeElement(a, !0) : VFExt3.EventManager.removeAll(a), a.parentNode.removeChild(a), delete VFExt3.elCache[a.id]) | |
}, | |
isEmpty: function(a, b) { | |
return null === a || void 0 === a || VFExt3.isArray(a) && | |
!a.length || (!b ? "" === a : !1) | |
}, | |
isArray: function(a) { | |
return "[object Array]" === e.apply(a) | |
}, | |
isDate: function(a) { | |
return "[object Date]" === e.apply(a) | |
}, | |
isObject: function(a) { | |
return !!a && "[object Object]" === Object.prototype.toString.call(a) | |
}, | |
isPrimitive: function(a) { | |
return VFExt3.isString(a) || VFExt3.isNumber(a) || VFExt3.isBoolean(a) | |
}, | |
isFunction: function(a) { | |
return "[object Function]" === e.apply(a) | |
}, | |
isNumber: function(a) { | |
return "number" === typeof a && isFinite(a) | |
}, | |
isString: function(a) { | |
return "string" === typeof a | |
}, | |
isBoolean: function(a) { | |
return "boolean" === | |
typeof a | |
}, | |
isElement: function(a) { | |
return a ? !!a.tagName : !1 | |
}, | |
isDefined: function(a) { | |
return "undefined" !== typeof a | |
}, | |
isOpera: k, | |
isWebKit: q, | |
isChrome: g, | |
isSafari: f, | |
isSafari3: l, | |
isSafari4: n, | |
isSafari2: m, | |
isIE: p, | |
isIE6: v, | |
isIE7: s, | |
isIE8: t, | |
isGecko: r, | |
isGecko2: u, | |
isGecko3: x, | |
isBorderBox: y, | |
isLinux: b, | |
isWindows: B, | |
isMac: z, | |
isAir: A, | |
IE: { | |
addEvent: function(a, b, f, c) { | |
a.attachEvent ? a.attachEvent(b, f) : a.addEventListener && a.addEventListener(b, f, c) | |
}, | |
removeEvent: function(a, b, f, c) { | |
a.detachEvent ? a.detachEvent(b, f) : a.removeEventListener && a.removeEventListener(b, | |
f, c) | |
} | |
} | |
}); | |
VFExt3.ns = VFExt3.namespace | |
})(); | |
VFExt3.ns("VFExt3.util", "VFExt3.lib", "VFExt3.data"); | |
VFExt3.elCache = {}; | |
VFExt3.apply(Function.prototype, { | |
createInterceptor: function(d, e) { | |
var c = this; | |
return !VFExt3.isFunction(d) ? this : function() { | |
var b = arguments; | |
d.target = this; | |
d.method = c; | |
return !1 !== d.apply(e || this || window, b) ? c.apply(this || window, b) : null | |
} | |
}, | |
createCallback: function() { | |
var d = arguments, | |
e = this; | |
return function() { | |
return e.apply(window, d) | |
} | |
}, | |
createDelegate: function(d, e, c) { | |
var b = this; | |
return function() { | |
var a = e || arguments; | |
if (!0 === c) a = Array.prototype.slice.call(arguments, 0), a = a.concat(e); | |
else if (VFExt3.isNumber(c)) { | |
var a = | |
Array.prototype.slice.call(arguments, 0), | |
h = [c, 0].concat(e); | |
Array.prototype.splice.apply(a, h) | |
} | |
return b.apply(d || window, a) | |
} | |
}, | |
defer: function(d, e, c, b) { | |
e = this.createDelegate(e, c, b); | |
if (0 < d) return setTimeout(e, d); | |
e(); | |
return 0 | |
} | |
}); | |
VFExt3.applyIf(String, { | |
format: function(d) { | |
var e = VFExt3.toArray(arguments, 1); | |
return d.replace(/\{(\d+)\}/g, function(c, b) { | |
return e[b] | |
}) | |
} | |
}); | |
VFExt3.applyIf(Array.prototype, { | |
indexOf: function(d, e) { | |
var c = this.length; | |
e = e || 0; | |
for (e += 0 > e ? c : 0; e < c; ++e) | |
if (this[e] === d) return e; | |
return -1 | |
}, | |
remove: function(d) { | |
d = this.indexOf(d); - 1 != d && this.splice(d, 1); | |
return this | |
} | |
}); | |
VFExt3.ns("VFExt3.grid", "VFExt3.list", "VFExt3.dd", "VFExt3.tree", "VFExt3.form", "VFExt3.menu", "VFExt3.state", "VFExt3.layout", "VFExt3.app", "VFExt3.ux", "VFExt3.chart", "VFExt3.direct"); | |
VFExt3.apply(VFExt3, function() { | |
var d = VFExt3, | |
e = null; | |
return { | |
emptyFn: function() {}, | |
BLANK_IMAGE_URL: VFExt3.isIE6 || VFExt3.isIE7 || VFExt3.isAir ? "http://www.extjs.com/s.gif" : "data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw\x3d\x3d", | |
extendX: function(c, b) { | |
return VFExt3.extend(c, b(c.prototype)) | |
}, | |
getDoc: function() { | |
return VFExt3.get(document) | |
}, | |
num: function(c, b) { | |
c = Number(VFExt3.isEmpty(c) || VFExt3.isArray(c) || "boolean" == typeof c || "string" == typeof c && 0 == c.trim().length ? NaN : c); | |
return isNaN(c) ? | |
b : c | |
}, | |
value: function(c, b, a) { | |
return VFExt3.isEmpty(c, a) ? b : c | |
}, | |
escapeRe: function(c) { | |
return c.replace(/([-.*+?^${}()|[\]\/\\])/g, "\\$1") | |
}, | |
sequence: function(c, b, a, d) { | |
c[b] = c[b].createSequence(a, d) | |
}, | |
addBehaviors: function(c) { | |
if (VFExt3.isReady) { | |
var b = {}, | |
a, d, e; | |
for (d in c) | |
if ((a = d.split("@"))[1]) e = a[0], b[e] || (b[e] = VFExt3.select(e)), b[e].on(a[1], c[d]); | |
b = null | |
} else VFExt3.onReady(function() { | |
VFExt3.addBehaviors(c) | |
}) | |
}, | |
getScrollBarWidth: function(c) { | |
if (!VFExt3.isReady) return 0; | |
if (!0 === c || null === e) { | |
c = VFExt3.getBody().createChild('\x3cdiv class\x3d"x-hide-offsets" style\x3d"width:100px;height:50px;overflow:hidden;"\x3e\x3cdiv style\x3d"height:200px;"\x3e\x3c/div\x3e\x3c/div\x3e'); | |
var b = c.child("div", !0), | |
a = b.offsetWidth; | |
c.setStyle("overflow", VFExt3.isWebKit || VFExt3.isGecko ? "auto" : "scroll"); | |
b = b.offsetWidth; | |
c.remove(); | |
e = a - b + 2 | |
} | |
return e | |
}, | |
combine: function() { | |
for (var c = arguments, b = c.length, a = [], d = 0; d < b; d++) { | |
var e = c[d]; | |
VFExt3.isArray(e) ? a = a.concat(e) : void 0 !== e.length && !e.substr ? a = a.concat(Array.prototype.slice.call(e, 0)) : a.push(e) | |
} | |
return a | |
}, | |
copyTo: function(c, b, a) { | |
"string" == typeof a && (a = a.split(/[,;\s]/)); | |
VFExt3.each(a, function(a) { | |
b.hasOwnProperty(a) && (c[a] = b[a]) | |
}, this); | |
return c | |
}, | |
destroy: function() { | |
VFExt3.each(arguments, function(c) { | |
c && (VFExt3.isArray(c) ? this.destroy.apply(this, c) : "function" == typeof c.destroy ? c.destroy() : c.dom && c.remove()) | |
}, this) | |
}, | |
destroyMembers: function(c, b, a, d) { | |
for (var e = 1, g = arguments, q = g.length; e < q; e++) VFExt3.destroy(c[g[e]]), delete c[g[e]] | |
}, | |
clean: function(c) { | |
var b = []; | |
VFExt3.each(c, function(a) { | |
a && b.push(a) | |
}); | |
return b | |
}, | |
unique: function(c) { | |
var b = [], | |
a = {}; | |
VFExt3.each(c, function(c) { | |
a[c] || b.push(c); | |
a[c] = !0 | |
}); | |
return b | |
}, | |
flatten: function(c) { | |
function b(c) { | |
VFExt3.each(c, | |
function(c) { | |
VFExt3.isArray(c) ? b(c) : a.push(c) | |
}); | |
return a | |
} | |
var a = []; | |
return b(c) | |
}, | |
min: function(c, b) { | |
var a = c[0]; | |
b = b || function(a, b) { | |
return a < b ? -1 : 1 | |
}; | |
VFExt3.each(c, function(c) { | |
a = -1 == b(a, c) ? a : c | |
}); | |
return a | |
}, | |
max: function(c, b) { | |
var a = c[0]; | |
b = b || function(a, b) { | |
return a > b ? 1 : -1 | |
}; | |
VFExt3.each(c, function(c) { | |
a = 1 == b(a, c) ? a : c | |
}); | |
return a | |
}, | |
mean: function(c) { | |
return 0 < c.length ? VFExt3.sum(c) / c.length : void 0 | |
}, | |
sum: function(c) { | |
var b = 0; | |
VFExt3.each(c, function(a) { | |
b += a | |
}); | |
return b | |
}, | |
partition: function(c, b) { | |
var a = [ | |
[], | |
[] | |
]; | |
VFExt3.each(c, | |
function(c, d, g) { | |
a[b && b(c, d, g) || !b && c ? 0 : 1].push(c) | |
}); | |
return a | |
}, | |
invoke: function(c, b) { | |
var a = [], | |
d = Array.prototype.slice.call(arguments, 2); | |
VFExt3.each(c, function(c, g) { | |
c && "function" == typeof c[b] ? a.push(c[b].apply(c, d)) : a.push(void 0) | |
}); | |
return a | |
}, | |
pluck: function(c, b) { | |
var a = []; | |
VFExt3.each(c, function(c) { | |
a.push(c[b]) | |
}); | |
return a | |
}, | |
zip: function() { | |
for (var c = VFExt3.partition(arguments, function(a) { | |
return "function" != typeof a | |
}), b = c[0], c = c[1][0], a = VFExt3.max(VFExt3.pluck(b, "length")), d = [], e = 0; e < a; e++) | |
if (d[e] = [], c) d[e] = | |
c.apply(c, VFExt3.pluck(b, e)); | |
else | |
for (var g = 0, q = b.length; g < q; g++) d[e].push(b[g][e]); | |
return d | |
}, | |
getCmp: function(c) { | |
return VFExt3.ComponentMgr.get(c) | |
}, | |
useShims: d.isIE6 || d.isMac && d.isGecko2, | |
type: function(c) { | |
if (void 0 === c || null === c) return !1; | |
if (c.htmlElement) return "element"; | |
var b = typeof c; | |
if ("object" == b && c.nodeName) switch (c.nodeType) { | |
case 1: | |
return "element"; | |
case 3: | |
return /\S/.test(c.nodeValue) ? "textnode" : "whitespace" | |
} | |
if ("object" == b || "function" == b) { | |
switch (c.constructor) { | |
case Array: | |
return "array"; | |
case RegExp: | |
return "regexp"; | |
case Date: | |
return "date" | |
} | |
if ("number" == typeof c.length && "function" == typeof c.item) return "nodelist" | |
} | |
return b | |
}, | |
intercept: function(c, b, a, d) { | |
c[b] = c[b].createInterceptor(a, d) | |
}, | |
callback: function(c, b, a, d) { | |
"function" == typeof c && (d ? c.defer(d, b, a || []) : c.apply(b, a || [])) | |
} | |
} | |
}()); | |
VFExt3.apply(Function.prototype, { | |
createSequence: function(d, e) { | |
var c = this; | |
return "function" != typeof d ? this : function() { | |
var b = c.apply(this || window, arguments); | |
d.apply(e || this || window, arguments); | |
return b | |
} | |
} | |
}); | |
VFExt3.applyIf(String, { | |
escape: function(d) { | |
return d.replace(/('|\\)/g, "\\$1") | |
}, | |
leftPad: function(d, e, c) { | |
d = String(d); | |
for (c || (c = " "); d.length < e;) d = c + d; | |
return d | |
} | |
}); | |
String.prototype.toggle = function(d, e) { | |
return this == d ? e : d | |
}; | |
String.prototype.trim = function() { | |
var d = /^\s+|\s+$/g; | |
return function() { | |
return this.replace(d, "") | |
} | |
}(); | |
Date.prototype.getElapsed = function(d) { | |
return Math.abs((d || new Date).getTime() - this.getTime()) | |
}; | |
VFExt3.applyIf(Number.prototype, { | |
constrain: function(d, e) { | |
return Math.min(Math.max(this, d), e) | |
} | |
}); | |
(function() { | |
VFExt3.lib.Event = function() { | |
function d(a) { | |
var b; | |
a: { | |
b = a.currentTarget; | |
a = u.getRelatedTarget(a); | |
if (b && b.firstChild) | |
for (; a;) { | |
if (a === b) { | |
b = !0; | |
break a | |
}(a = a.parentNode) && 1 != a.nodeType && (a = null) | |
} | |
b = !1 | |
} | |
return !b | |
} | |
function c() { | |
var a = !1, | |
c = [], | |
d, e, l, k = !h || 0 < g; | |
if (!m) { | |
m = !0; | |
for (a = 0; a < q.length; ++a) | |
if ((e = q[a]) && (d = n.getElementById(e.id))) !e.checkReady || h || d.nextSibling || n && n.body ? (d = (l = e.override) ? !0 === l ? e.obj : l : d, e.fn.call(d, e.obj), q.remove(e), --a) : c.push(e); | |
g = 0 === c.length ? 0 : g - 1; | |
k ? b() : (clearInterval(f), f = | |
null); | |
a = !(m = !1) | |
} | |
return a | |
} | |
function b() { | |
f || (f = setInterval(function() { | |
c() | |
}, p)) | |
} | |
function a(a, b) { | |
a = a.browserEvent || a; | |
var f = a["page" + b]; | |
if (!f && 0 !== f && (f = a["client" + b] || 0, VFExt3.isIE)) var c = n.documentElement, | |
d = n.body, | |
f = f + (c && (c[t] || c[s]) ? [c[s], c[t]] : d ? [d[s], d[t]] : [0, 0])["X" == b ? 0 : 1]; | |
return f | |
} | |
var h = !1, | |
k = {}, | |
g = 0, | |
q = [], | |
f, m = !1, | |
l = window, | |
n = document, | |
p = 20, | |
s = "scrollLeft", | |
t = "scrollTop", | |
v = function() { | |
return l.addEventListener ? function(a, b, f, c) { | |
"mouseenter" == b ? (f = f.createInterceptor(d), a.addEventListener("mouseover", f, | |
c)) : "mouseleave" == b ? (f = f.createInterceptor(d), a.addEventListener("mouseout", f, c)) : a.addEventListener(b, f, c); | |
return f | |
} : l.attachEvent ? function(a, b, f, c) { | |
a.attachEvent("on" + b, f); | |
return f | |
} : function() {} | |
}(), | |
r = function() { | |
return l.removeEventListener ? function(a, b, f, c) { | |
"mouseenter" == b ? b = "mouseover" : "mouseleave" == b && (b = "mouseout"); | |
a.removeEventListener(b, f, c) | |
} : l.detachEvent ? function(a, b, f) { | |
a.detachEvent("on" + b, f) | |
} : function() {} | |
}(), | |
u = { | |
extAdapter: !0, | |
onAvailable: function(a, f, c, d) { | |
q.push({ | |
id: a, | |
fn: f, | |
obj: c, | |
override: d, | |
checkReady: !1 | |
}); | |
g = 200; | |
b() | |
}, | |
addListener: function(a, b, f) { | |
return (a = VFExt3.getDom(a)) && f ? "unload" == b ? (void 0 === k[a.id] && (k[a.id] = []), k[a.id].push([b, f]), f) : v(a, b, f, !1) : !1 | |
}, | |
removeListener: function(a, b, f) { | |
a = VFExt3.getDom(a); | |
var c, d, g, m; | |
if (a && f) | |
if ("unload" == b) { | |
if (void 0 !== (m = k[a.id])) { | |
c = 0; | |
for (d = m.length; c < d; c++)(g = m[c]) && (g[0] == b && g[1] == f) && k[a.id].splice(c, 1) | |
} | |
} else r(a, b, f, !1) | |
}, | |
getTarget: function(a) { | |
a = a.browserEvent || a; | |
return this.resolveTextNode(a.target || a.srcElement) | |
}, | |
resolveTextNode: VFExt3.isGecko ? | |
function(a) { | |
if (a) { | |
var b = HTMLElement.prototype.toString.call(a); | |
if (!("[xpconnect wrapped native prototype]" == b || "[object XULElement]" == b)) return 3 == a.nodeType ? a.parentNode : a | |
} | |
} : function(a) { | |
return a && 3 == a.nodeType ? a.parentNode : a | |
}, | |
getRelatedTarget: function(a) { | |
a = a.browserEvent || a; | |
return this.resolveTextNode(a.relatedTarget || (/(mouseout|mouseleave)/.test(a.type) ? a.toElement : /(mouseover|mouseenter)/.test(a.type) ? a.fromElement : null)) | |
}, | |
getPageX: function(b) { | |
return a(b, "X") | |
}, | |
getPageY: function(b) { | |
return a(b, | |
"Y") | |
}, | |
getXY: function(a) { | |
return [this.getPageX(a), this.getPageY(a)] | |
}, | |
stopEvent: function(a) { | |
this.stopPropagation(a); | |
this.preventDefault(a) | |
}, | |
stopPropagation: function(a) { | |
a = a.browserEvent || a; | |
a.stopPropagation ? a.stopPropagation() : a.cancelBubble = !0 | |
}, | |
preventDefault: function(a) { | |
a = a.browserEvent || a; | |
a.preventDefault ? a.preventDefault() : a.returnValue = !1 | |
}, | |
getEvent: function(a) { | |
a = a || l.event; | |
if (!a) | |
for (var b = this.getEvent.caller; b && !((a = b.arguments[0]) && Event == a.constructor);) b = b.caller; | |
return a | |
}, | |
getCharCode: function(a) { | |
a = | |
a.browserEvent || a; | |
return a.charCode || a.keyCode || 0 | |
}, | |
getListeners: function(a, b) { | |
VFExt3.EventManager.getListeners(a, b) | |
}, | |
purgeElement: function(a, b, f) { | |
VFExt3.EventManager.purgeElement(a, b, f) | |
}, | |
_load: function(a) { | |
h = !0; | |
VFExt3.isIE && !0 !== a && r(l, "load", arguments.callee) | |
}, | |
_unload: function(a) { | |
var b = VFExt3.lib.Event, | |
f, c, d, g, m, e; | |
for (g in k) { | |
d = k[g]; | |
f = 0; | |
for (m = d.length; f < m; f++) | |
if (c = d[f]) try { | |
e = c[3] ? !0 === c[3] ? c[2] : c[3] : l, c[1].call(e, b.getEvent(a), c[2]) | |
} catch (q) {} | |
} | |
VFExt3.EventManager._unload(); | |
r(l, "unload", b._unload) | |
} | |
}; | |
u.on = u.addListener; | |
u.un = u.removeListener; | |
n && n.body ? u._load(!0) : v(l, "load", u._load); | |
v(l, "unload", u._unload); | |
c(); | |
return u | |
}(); | |
VFExt3.lib.Ajax = function() { | |
function d(a) { | |
function b(a, f) { | |
for (c in f) f.hasOwnProperty(c) && a.setRequestHeader(c, f[c]) | |
} | |
a = a.conn; | |
var c; | |
g.defaultHeaders && b(a, g.defaultHeaders); | |
g.headers && (b(a, g.headers), delete g.headers) | |
} | |
function c(a, b) { | |
(g.headers = g.headers || {})[a] = b | |
} | |
function b(a, b) { | |
var c = {}, | |
d, g = a.conn, | |
e, h, k = 1223 == g.status; | |
try { | |
d = a.conn.getAllResponseHeaders(), VFExt3.each(d.replace(/\r\n/g, | |
"\n").split("\n"), function(a) { | |
e = a.indexOf(":"); | |
0 <= e && (h = a.substr(0, e).toLowerCase(), " " == a.charAt(e + 1) && ++e, c[h] = a.substr(e + 1)) | |
}) | |
} catch (v) {} | |
return { | |
tId: a.tId, | |
status: k ? 204 : g.status, | |
statusText: k ? "No Content" : g.statusText, | |
getResponseHeader: function(a) { | |
return c[a.toLowerCase()] | |
}, | |
getAllResponseHeaders: function() { | |
return d | |
}, | |
responseText: g.responseText, | |
responseXML: g.responseXML, | |
argument: b | |
} | |
} | |
function a(a, f, c, d) { | |
if (f) { | |
var e; | |
try { | |
e = void 0 !== a.conn.status && 0 != a.conn.status ? a.conn.status : 13030 | |
} catch (h) { | |
e = 13030 | |
} | |
if (200 <= | |
e && 300 > e || VFExt3.isIE && 1223 == e) d = b(a, f.argument), f.success && (f.scope ? f.success.apply(f.scope, [d]) : f.success(d)); | |
else switch (e) { | |
case 12002: | |
case 12029: | |
case 12030: | |
case 12031: | |
case 12152: | |
case 13030: | |
e = (c = c ? c : !1) ? "transaction aborted" : "communication failure"; | |
d && (e += ": timeout"); | |
d = { | |
tId: a.tId, | |
status: c ? -1 : 0, | |
statusText: e, | |
isAbort: c, | |
isTimeout: d, | |
argument: f.argument | |
}; | |
f.failure && (f.scope ? f.failure.apply(f.scope, [d]) : f.failure(d)); | |
break; | |
default: | |
d = b(a, f.argument), f.failure && (f.scope ? f.failure.apply(f.scope, [d]) : f.failure(d)) | |
} | |
} | |
a.tId && | |
(g.conn[a.tId] = null); | |
a.conn = null | |
} | |
function h(b, c) { | |
c = c || {}; | |
var d = b.conn, | |
e = b.tId, | |
h = g.poll, | |
k = c.timeout || null; | |
k && (g.conn[e] = d, g.timeout[e] = setTimeout(function() { | |
g.abort(b, c, !0) | |
}, k)); | |
h[e] = setInterval(function() { | |
d && 4 == d.readyState && (clearInterval(h[e]), h[e] = null, k && (clearTimeout(g.timeout[e]), g.timeout[e] = null), a(b, c)) | |
}, g.pollInterval) | |
} | |
var k = ["MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"], | |
g = { | |
request: function(a, b, m, l, n) { | |
if (n) { | |
var p = n.xmlData, | |
s = n.jsonData; | |
VFExt3.applyIf(this, n); | |
if (p || s) { | |
l = this.headers; | |
if (!l || !l["Content-Type"]) c("Content-Type", p ? "text/xml" : "application/json"); | |
l = p || (!VFExt3.isPrimitive(s) ? VFExt3.encode(s) : s) | |
} | |
} | |
a = a || n.method || "POST"; | |
a: { | |
var t; | |
try { | |
var v; | |
b: { | |
var r = g.transactionId, | |
u; | |
try { | |
u = new XMLHttpRequest | |
} catch (x) { | |
for (n = 0; n < k.length; ++n) try { | |
u = new ActiveXObject(k[n]); | |
break | |
} catch (y) {} | |
} finally { | |
v = { | |
conn: u, | |
tId: r | |
}; | |
break b | |
} | |
}(t = v) && g.transactionId++ | |
} catch (B) {} finally { | |
break a | |
} | |
} | |
if (t = t || null) t.conn.open(a, b, !0), g.useDefaultXhrHeader && c("X-Requested-With", g.defaultXhrHeader), l && (g.useDefaultHeader && | |
(!g.headers || !g.headers["Content-Type"])) && c("Content-Type", g.defaultPostHeader), (g.defaultHeaders || g.headers) && d(t), h(t, m), t.conn.send(l || null); | |
return t | |
}, | |
serializeForm: function(a) { | |
a = a.elements || (document.forms[a] || VFExt3.getDom(a)).elements; | |
var b = !1, | |
c = encodeURIComponent, | |
d, g = "", | |
e; | |
VFExt3.each(a, function(a) { | |
d = a.name; | |
e = a.type; | |
if (!a.disabled && d) | |
if (/select-(one|multiple)/i.test(e)) VFExt3.each(a.options, function(a) { | |
a.selected && (g += String.format("{0}\x3d{1}\x26", c(d), c((a.hasAttribute ? a.hasAttribute("value") : | |
null !== a.getAttribute("value")) ? a.value : a.text))) | |
}); | |
else if (!/file|undefined|reset|button/i.test(e) && (!/radio|checkbox/i.test(e) || a.checked) && !("submit" == e && b)) g += c(d) + "\x3d" + c(a.value) + "\x26", b = /submit/i.test(e) | |
}); | |
return g.substr(0, g.length - 1) | |
}, | |
useDefaultHeader: !0, | |
defaultPostHeader: "application/x-www-form-urlencoded; charset\x3dUTF-8", | |
useDefaultXhrHeader: !0, | |
defaultXhrHeader: "XMLHttpRequest", | |
poll: {}, | |
timeout: {}, | |
conn: {}, | |
pollInterval: 50, | |
transactionId: 0, | |
abort: function(b, c, d) { | |
var e = b.tId, | |
h = !1; | |
this.isCallInProgress(b) && | |
(b.conn.abort(), clearInterval(this.poll[e]), this.poll[e] = null, clearTimeout(g.timeout[e]), this.timeout[e] = null, a(b, c, h = !0, d)); | |
return h | |
}, | |
isCallInProgress: function(a) { | |
return a.conn && !{ | |
0: !0, | |
4: !0 | |
}[a.conn.readyState] | |
} | |
}; | |
return g | |
}(); | |
if (VFExt3.isIE) { | |
var d = function() { | |
var e = Function.prototype; | |
delete e.createSequence; | |
delete e.defer; | |
delete e.createDelegate; | |
delete e.createCallback; | |
delete e.createInterceptor; | |
VFExt3.IE.removeEvent(window, "onunload", d) | |
}; | |
VFExt3.IE.addEvent(window, "onunload", d) | |
} | |
})(); | |
(function() { | |
function d(a, b, c) { | |
return function() { | |
b.target == arguments[0] && a.apply(c, Array.prototype.slice.call(arguments, 0)) | |
} | |
} | |
function e(b, c, f, d) { | |
f.task = new a.DelayedTask; | |
return function() { | |
f.task.delay(c.buffer, b, d, Array.prototype.slice.call(arguments, 0)) | |
} | |
} | |
function c(a, b, c, d) { | |
return function() { | |
b.removeListener(c, d); | |
return a.apply(d, arguments) | |
} | |
} | |
function b(b, c, f, d) { | |
return function() { | |
var e = new a.DelayedTask; | |
f.tasks || (f.tasks = []); | |
f.tasks.push(e); | |
e.delay(c.delay || 10, b, d, Array.prototype.slice.call(arguments, | |
0)) | |
} | |
} | |
var a = VFExt3.util, | |
h = VFExt3.each; | |
a.Observable = function() { | |
var a = this.events; | |
this.listeners && (this.on(this.listeners), delete this.listeners); | |
this.events = a || {} | |
}; | |
a.Observable.prototype = { | |
filterOptRe: /^(?:scope|delay|buffer|single)$/, | |
fireEvent: function() { | |
var a = Array.prototype.slice.call(arguments, 0), | |
b = a[0].toLowerCase(), | |
c = !0, | |
d = this.events[b], | |
e; | |
if (!0 === this.eventsSuspended)(e = this.eventQueue) && e.push(a); | |
else if ("object" == typeof d) | |
if (d.bubble) { | |
if (!1 === d.fire.apply(d, a.slice(1))) return !1; | |
if ((d = this.getBubbleTarget && | |
this.getBubbleTarget()) && d.enableBubble) return c = d.events[b], (!c || "object" != typeof c || !c.bubble) && d.enableBubble(b), d.fireEvent.apply(d, a) | |
} else a.shift(), c = d.fire.apply(d, a); | |
return c | |
}, | |
addListener: function(b, c, d, e) { | |
var h; | |
if ("object" == typeof b) | |
for (h in e = b, e) b = e[h], this.filterOptRe.test(h) || this.addListener(h, b.fn || b, b.scope || e.scope, b.fn ? b : e); | |
else b = b.toLowerCase(), h = this.events[b] || !0, "boolean" == typeof h && (this.events[b] = h = new a.Event(this, b)), h.addListener(c, d, "object" == typeof e ? e : {}) | |
}, | |
removeListener: function(a, | |
b, c) { | |
a = this.events[a.toLowerCase()]; | |
"object" == typeof a && a.removeListener(b, c) | |
}, | |
purgeListeners: function() { | |
var a = this.events, | |
b, c; | |
for (c in a) b = a[c], "object" == typeof b && b.clearListeners() | |
}, | |
addEvents: function(a) { | |
this.events = this.events || {}; | |
if ("string" == typeof a) | |
for (var b = arguments, c = b.length; c--;) this.events[b[c]] = this.events[b[c]] || !0; | |
else VFExt3.applyIf(this.events, a) | |
}, | |
hasListener: function(a) { | |
a = this.events[a.toLowerCase()]; | |
return "object" == typeof a && 0 < a.listeners.length | |
}, | |
suspendEvents: function(a) { | |
this.eventsSuspended = !0; | |
a && !this.eventQueue && (this.eventQueue = []) | |
}, | |
resumeEvents: function() { | |
var a = this, | |
b = a.eventQueue || []; | |
a.eventsSuspended = !1; | |
delete a.eventQueue; | |
h(b, function(b) { | |
a.fireEvent.apply(a, b) | |
}) | |
} | |
}; | |
var k = a.Observable.prototype; | |
k.on = k.addListener; | |
k.un = k.removeListener; | |
a.Observable.releaseCapture = function(a) { | |
a.fireEvent = k.fireEvent | |
}; | |
a.Event = function(a, b) { | |
this.name = b; | |
this.obj = a; | |
this.listeners = [] | |
}; | |
a.Event.prototype = { | |
addListener: function(a, b, c) { | |
b = b || this.obj; | |
this.isListening(a, b) || (a = this.createListener(a, b, c), this.firing && | |
(this.listeners = this.listeners.slice(0)), this.listeners.push(a)) | |
}, | |
createListener: function(a, h, f) { | |
f = f || {}; | |
h = h || this.obj; | |
var m = { | |
fn: a, | |
scope: h, | |
options: f | |
}, | |
l = a; | |
f.target && (l = d(l, f, h)); | |
f.delay && (l = b(l, f, m, h)); | |
f.single && (l = c(l, this, a, h)); | |
f.buffer && (l = e(l, f, m, h)); | |
m.fireFn = l; | |
return m | |
}, | |
findListener: function(a, b) { | |
var c = this.listeners, | |
d = c.length, | |
e; | |
for (b = b || this.obj; d--;) | |
if ((e = c[d]) && e.fn == a && e.scope == b) return d; | |
return -1 | |
}, | |
isListening: function(a, b) { | |
return -1 != this.findListener(a, b) | |
}, | |
removeListener: function(a, b) { | |
var c, | |
d, e; | |
d = !1; | |
if (-1 != (c = this.findListener(a, b))) { | |
this.firing && (this.listeners = this.listeners.slice(0)); | |
d = this.listeners[c]; | |
d.task && (d.task.cancel(), delete d.task); | |
if (e = d.tasks && d.tasks.length) { | |
for (; e--;) d.tasks[e].cancel(); | |
delete d.tasks | |
} | |
this.listeners.splice(c, 1); | |
d = !0 | |
} | |
return d | |
}, | |
clearListeners: function() { | |
for (var a = this.listeners, b = a.length; b--;) this.removeListener(a[b].fn, a[b].scope) | |
}, | |
fire: function() { | |
var a = this.listeners, | |
b = a.length, | |
c = 0, | |
d; | |
if (0 < b) { | |
this.firing = !0; | |
for (var e = Array.prototype.slice.call(arguments, | |
0); c < b; c++) | |
if ((d = a[c]) && !1 === d.fireFn.apply(d.scope || this.obj || window, e)) return this.firing = !1 | |
} | |
this.firing = !1; | |
return !0 | |
} | |
} | |
})(); | |
VFExt3.EventManager = function() { | |
function d(a) { | |
var b = !1, | |
c = 0, | |
d = z.length, | |
f = b = !1, | |
e; | |
if (a) { | |
if (a.getElementById || a.navigator) { | |
for (; c < d; ++c) | |
if (e = z[c], e.el === a) { | |
b = e.id; | |
break | |
} | |
b || (b = VFExt3.id(a), z.push({ | |
id: b, | |
el: a | |
}), f = !0) | |
} else b = VFExt3.id(a); | |
VFExt3.elCache[b] || (VFExt3.Element.addToCache(new VFExt3.Element(a), b), f && (VFExt3.elCache[b].skipGC = !0)) | |
} | |
return b | |
} | |
function e(a, b, c, f, e, h) { | |
a = VFExt3.getDom(a); | |
var g = d(a), | |
g = VFExt3.elCache[g].events, | |
m; | |
m = v.on(a, b, e); | |
g[b] = g[b] || []; | |
g[b].push([c, e, h, m, f]); | |
if (a.addEventListener && "mousewheel" == | |
b) { | |
var k = ["DOMMouseScroll", e, !1]; | |
a.addEventListener.apply(a, k); | |
VFExt3.EventManager.addListener(u, "unload", function() { | |
a.removeEventListener.apply(a, k) | |
}) | |
} | |
a == r && "mousedown" == b && VFExt3.EventManager.stoppedMouseDownEvent.addListener(e) | |
} | |
function c() { | |
if (window != top) return !1; | |
try { | |
r.documentElement.doScroll("left") | |
} catch (a) { | |
return !1 | |
} | |
k(); | |
return !0 | |
} | |
function b(a) { | |
if (VFExt3.isIE && c()) return !0; | |
if (r.readyState == y) return k(), !0; | |
s || (p = setTimeout(arguments.callee, 2)); | |
return !1 | |
} | |
function a(a) { | |
A || (A = VFExt3.query("style, link[rel\x3dstylesheet]")); | |
if (A.length == r.styleSheets.length) return k(), !0; | |
s || (p = setTimeout(arguments.callee, 2)); | |
return !1 | |
} | |
function h(b) { | |
r.removeEventListener(x, arguments.callee, !1); | |
a() | |
} | |
function k(a) { | |
s || (s = !0, p && clearTimeout(p), t && r.removeEventListener(x, k, !1), VFExt3.isIE && b.bindIE && VFExt3.IE.removeEvent(r, "onreadystatechange", b), v.un(u, "load", arguments.callee)); | |
n && !VFExt3.isReady && (VFExt3.isReady = !0, n.fire(), n.listeners = []) | |
} | |
function g(a, b) { | |
return function() { | |
var c = VFExt3.toArray(arguments); | |
b.target == VFExt3.EventObject.setEvent(c[0]).target && | |
a.apply(this, c) | |
} | |
} | |
function q(a, b, c) { | |
return function(d) { | |
c.delay(b.buffer, a, null, [new VFExt3.EventObjectImpl(d)]) | |
} | |
} | |
function f(a, b, c, d, f) { | |
return function(e) { | |
VFExt3.EventManager.removeListener(b, c, d, f); | |
a(e) | |
} | |
} | |
function m(a, b, c) { | |
return function(d) { | |
var f = new VFExt3.util.DelayedTask(a); | |
c.tasks || (c.tasks = []); | |
c.tasks.push(f); | |
f.delay(b.delay || 10, a, null, [new VFExt3.EventObjectImpl(d)]) | |
} | |
} | |
function l(a, b, c, d, h) { | |
function k(a) { | |
if (VFExt3) { | |
a = VFExt3.EventObject.setEvent(a); | |
var b; | |
if (l.delegate) { | |
if (!(b = a.getTarget(l.delegate, | |
n))) return | |
} else b = a.target; | |
l.stopEvent && a.stopEvent(); | |
l.preventDefault && a.preventDefault(); | |
l.stopPropagation && a.stopPropagation(); | |
l.normalized && (a = a.browserEvent); | |
d.call(h || n, a, b, l) | |
} | |
} | |
var l = !c || "boolean" == typeof c ? {} : c, | |
n = VFExt3.getDom(a), | |
p; | |
d = d || l.fn; | |
h = h || l.scope; | |
if (!n) throw 'Error listening for "' + b + '". Element "' + a + "\" doesn't exist."; | |
l.target && (k = g(k, l)); | |
l.delay && (k = m(k, l, d)); | |
l.single && (k = f(k, n, b, d, h)); | |
l.buffer && (p = new VFExt3.util.DelayedTask(k), k = q(k, l, p)); | |
e(n, b, d, p, k, h); | |
return k | |
} | |
var n, p, s = !1, | |
t = | |
VFExt3.isGecko || VFExt3.isWebKit || VFExt3.isSafari, | |
v = VFExt3.lib.Event, | |
r = document, | |
u = window, | |
x = "DOMContentLoaded", | |
y = "complete", | |
B = /^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/, | |
z = [], | |
A, w = { | |
addListener: function(a, b, c, d, f) { | |
if ("object" == typeof b) | |
for (var e in b) c = b[e], B.test(e) || (VFExt3.isFunction(c) ? l(a, e, b, c, b.scope) : l(a, e, c)); | |
else l(a, b, f, c, d) | |
}, | |
removeListener: function(a, b, c, f) { | |
a = VFExt3.getDom(a); | |
var e = d(a), | |
h = a && VFExt3.elCache[e].events[b] || [], | |
g, m, k; | |
g = 0; | |
for (m = h.length; g < m; g++) | |
if (VFExt3.isArray(k = h[g]) && k[0] == c && (!f || k[2] == f)) { | |
k[4] && k[4].cancel(); | |
if (f = c.tasks && c.tasks.length) { | |
for (; f--;) c.tasks[f].cancel(); | |
delete c.tasks | |
} | |
c = k[1]; | |
v.un(a, b, v.extAdapter ? k[3] : c); | |
c && (a.addEventListener && "mousewheel" == b) && a.removeEventListener("DOMMouseScroll", c, !1); | |
c && (a == r && "mousedown" == b) && VFExt3.EventManager.stoppedMouseDownEvent.removeListener(c); | |
h.splice(g, 1); | |
0 === h.length && delete VFExt3.elCache[e].events[b]; | |
for (f in VFExt3.elCache[e].events) return !1; | |
VFExt3.elCache[e].events = {}; | |
return !1 | |
} | |
}, | |
removeAll: function(a) { | |
a = VFExt3.getDom(a); | |
var b = d(a), | |
c = (VFExt3.elCache[b] || {}).events || {}, | |
f, e, h, g, m, k, l; | |
for (g in c) | |
if (c.hasOwnProperty(g)) { | |
f = c[g]; | |
e = 0; | |
for (h = f.length; e < h; e++) { | |
m = f[e]; | |
m[4] && m[4].cancel(); | |
if (m[0].tasks && (k = m[0].tasks.length)) { | |
for (; k--;) m[0].tasks[k].cancel(); | |
delete m.tasks | |
} | |
l = m[1]; | |
v.un(a, g, v.extAdapter ? m[3] : l); | |
a.addEventListener && (l && "mousewheel" == g) && a.removeEventListener("DOMMouseScroll", l, !1); | |
l && (a == r && "mousedown" == g) && VFExt3.EventManager.stoppedMouseDownEvent.removeListener(l) | |
} | |
} | |
VFExt3.elCache[b] && | |
(VFExt3.elCache[b].events = {}) | |
}, | |
getListeners: function(a, b) { | |
a = VFExt3.getDom(a); | |
var c = d(a); | |
return (c = (VFExt3.elCache[c] || {}).events || {}) && c[b] ? c[b] : null | |
}, | |
purgeElement: function(a, b, c) { | |
a = VFExt3.getDom(a); | |
var f = d(a), | |
f = (VFExt3.elCache[f] || {}).events || {}, | |
e, g; | |
if (c) { | |
if (f && f.hasOwnProperty(c)) { | |
e = f[c]; | |
f = 0; | |
for (g = e.length; f < g; f++) VFExt3.EventManager.removeListener(a, c, e[f][0]) | |
} | |
} else VFExt3.EventManager.removeAll(a); | |
if (b && a && a.childNodes) { | |
f = 0; | |
for (g = a.childNodes.length; f < g; f++) VFExt3.EventManager.purgeElement(a.childNodes[f], | |
b, c) | |
} | |
}, | |
_unload: function() { | |
for (var a in VFExt3.elCache) VFExt3.EventManager.removeAll(a); | |
delete VFExt3.elCache; | |
delete VFExt3.Element._flyweights; | |
var b, c, d = VFExt3.lib.Ajax; | |
"object" == typeof d.conn ? b = d.conn : b = {}; | |
for (c in b)(a = b[c]) && d.abort({ | |
conn: a, | |
tId: c | |
}) | |
}, | |
onDocumentReady: function(c, d, f) { | |
VFExt3.isReady ? (n || (n = new VFExt3.util.Event), n.addListener(c, d, f), n.fire(), n.listeners = []) : (n || (n || (n = new VFExt3.util.Event), t && r.addEventListener(x, k, !1), VFExt3.isIE ? b() || (b.bindIE = !0, VFExt3.IE.addEvent(r, "onreadystatechange", | |
b)) : VFExt3.isOpera ? r.readyState == y && a() || r.addEventListener(x, h, !1) : VFExt3.isWebKit && b(), v.on(u, "load", k)), f = f || {}, f.delay = f.delay || 1, n.addListener(c, d, f)) | |
}, | |
fireDocReady: k | |
}; | |
w.on = w.addListener; | |
w.un = w.removeListener; | |
w.stoppedMouseDownEvent = new VFExt3.util.Event; | |
return w | |
}(); | |
VFExt3.onReady = VFExt3.EventManager.onDocumentReady; | |
(function() { | |
var d = function() { | |
var d = document.body || document.getElementsByTagName("body")[0]; | |
if (!d) return !1; | |
var c = [" ", VFExt3.isIE ? "ext-ie " + (VFExt3.isIE6 ? "ext-ie6" : VFExt3.isIE7 ? "ext-ie7" : "ext-ie8") : VFExt3.isGecko ? "ext-gecko " + (VFExt3.isGecko2 ? "ext-gecko2" : "ext-gecko3") : VFExt3.isOpera ? "ext-opera" : VFExt3.isWebKit ? "ext-webkit" : ""]; | |
VFExt3.isSafari ? c.push("ext-safari " + (VFExt3.isSafari2 ? "ext-safari2" : VFExt3.isSafari3 ? "ext-safari3" : "ext-safari4")) : VFExt3.isChrome && c.push("ext-chrome"); | |
VFExt3.isMac && c.push("ext-mac"); | |
VFExt3.isLinux && c.push("ext-linux"); | |
if (VFExt3.isStrict || VFExt3.isBorderBox) { | |
var b = d.parentNode; | |
b && (b.className += VFExt3.isStrict ? " ext-strict" : " ext-border-box") | |
} | |
d.className += c.join(" "); | |
return !0 | |
}; | |
if (!d()) VFExt3.onReady(d) | |
})(); | |
VFExt3.EventObject = function() { | |
var d = VFExt3.lib.Event, | |
e = /(dbl)?click/, | |
c = { | |
3: 13, | |
63234: 37, | |
63235: 39, | |
63232: 38, | |
63233: 40, | |
63276: 33, | |
63277: 34, | |
63272: 46, | |
63273: 36, | |
63275: 35 | |
}, | |
b = VFExt3.isIE ? { | |
1: 0, | |
4: 1, | |
2: 2 | |
} : VFExt3.isWebKit ? { | |
1: 0, | |
2: 1, | |
3: 2 | |
} : { | |
0: 0, | |
1: 1, | |
2: 2 | |
}; | |
VFExt3.EventObjectImpl = function(a) { | |
a && this.setEvent(a.browserEvent || a) | |
}; | |
VFExt3.EventObjectImpl.prototype = { | |
setEvent: function(a) { | |
if (a == this || a && a.browserEvent) return a; | |
(this.browserEvent = a) ? (this.button = a.button ? b[a.button] : a.which ? a.which - 1 : -1, e.test(a.type) && -1 == this.button && | |
(this.button = 0), this.type = a.type, this.shiftKey = a.shiftKey, this.ctrlKey = a.ctrlKey || a.metaKey || !1, this.altKey = a.altKey, this.keyCode = a.keyCode, this.charCode = a.charCode, this.target = d.getTarget(a), this.xy = d.getXY(a)) : (this.button = -1, this.altKey = this.ctrlKey = this.shiftKey = !1, this.charCode = this.keyCode = 0, this.target = null, this.xy = [0, 0]); | |
return this | |
}, | |
stopEvent: function() { | |
this.browserEvent && ("mousedown" == this.browserEvent.type && VFExt3.EventManager.stoppedMouseDownEvent.fire(this), d.stopEvent(this.browserEvent)) | |
}, | |
preventDefault: function() { | |
this.browserEvent && d.preventDefault(this.browserEvent) | |
}, | |
stopPropagation: function() { | |
this.browserEvent && ("mousedown" == this.browserEvent.type && VFExt3.EventManager.stoppedMouseDownEvent.fire(this), d.stopPropagation(this.browserEvent)) | |
}, | |
getCharCode: function() { | |
return this.charCode || this.keyCode | |
}, | |
getKey: function() { | |
return this.normalizeKey(this.keyCode || this.charCode) | |
}, | |
normalizeKey: function(a) { | |
return VFExt3.isSafari ? c[a] || a : a | |
}, | |
getPageX: function() { | |
return this.xy[0] | |
}, | |
getPageY: function() { | |
return this.xy[1] | |
}, | |
getXY: function() { | |
return this.xy | |
}, | |
getTarget: function(a, b, c) { | |
return a ? VFExt3.fly(this.target).findParent(a, b, c) : c ? VFExt3.get(this.target) : this.target | |
}, | |
getRelatedTarget: function() { | |
return this.browserEvent ? d.getRelatedTarget(this.browserEvent) : null | |
}, | |
getWheelDelta: function() { | |
var a = this.browserEvent, | |
b = 0; | |
a.wheelDelta ? b = a.wheelDelta / 120 : a.detail && (b = -a.detail / 3); | |
return b | |
}, | |
within: function(a, b, c) { | |
return a ? (b = this[b ? "getRelatedTarget" : "getTarget"]()) && ((c ? b == VFExt3.getDom(a) : !1) || VFExt3.fly(a).contains(b)) : | |
!1 | |
} | |
}; | |
return new VFExt3.EventObjectImpl | |
}(); | |
(function() { | |
var d = "requestcomplete", | |
e = "load", | |
c = window; | |
VFExt3.data.Connection = function(b) { | |
VFExt3.apply(this, b); | |
this.addEvents("beforerequest", d, "requestexception"); | |
VFExt3.data.Connection.superclass.constructor.call(this) | |
}; | |
VFExt3.extend(VFExt3.data.Connection, VFExt3.util.Observable, { | |
timeout: 3E4, | |
autoAbort: !1, | |
disableCaching: !0, | |
disableCachingParam: "_dc", | |
request: function(b) { | |
if (this.fireEvent("beforerequest", this, b)) { | |
b.el && (VFExt3.isEmpty(b.indicatorText) || (this.indicatorText = '\x3cdiv class\x3d"loading-indicator"\x3e' + | |
b.indicatorText + "\x3c/div\x3e"), this.indicatorText && (VFExt3.getDom(b.el).innerHTML = this.indicatorText), b.success = (VFExt3.isFunction(b.success) ? b.success : function() {}).createInterceptor(function(a) { | |
VFExt3.getDom(b.el).innerHTML = a.responseText | |
})); | |
var a = b.params, | |
d = b.url || this.url, | |
e, g = { | |
success: this.handleResponse, | |
failure: this.handleFailure, | |
scope: this, | |
argument: { | |
options: b | |
}, | |
timeout: b.timeout || this.timeout | |
}; | |
VFExt3.isFunction(a) && (a = a.call(b.scope || c, b)); | |
a = VFExt3.urlEncode(this.extraParams, VFExt3.isObject(a) ? | |
VFExt3.urlEncode(a) : a); | |
VFExt3.isFunction(d) && (d = d.call(b.scope || c, b)); | |
if (e = VFExt3.getDom(b.form)) { | |
d = d || e.action; | |
if (b.isUpload || /multipart\/form-data/i.test(e.getAttribute("enctype"))) return this.doFormUpload.call(this, b, a, d); | |
e = VFExt3.lib.Ajax.serializeForm(e); | |
a = a ? a + "\x26" + e : e | |
} | |
e = b.method || this.method || (a || b.xmlData || b.jsonData ? "POST" : "GET"); | |
if ("GET" === e && this.disableCaching && !1 !== b.disableCaching || !0 === b.disableCaching) d = VFExt3.urlAppend(d, (b.disableCachingParam || this.disableCachingParam) + "\x3d" + (new Date).getTime()); | |
b.headers = VFExt3.apply(b.headers || {}, this.defaultHeaders || {}); | |
(!0 === b.autoAbort || this.autoAbort) && this.abort(); | |
if (("GET" == e || b.xmlData || b.jsonData) && a) d = VFExt3.urlAppend(d, a), a = ""; | |
return this.transId = VFExt3.lib.Ajax.request(e, d, g, a, b) | |
} | |
return b.callback ? b.callback.apply(b.scope, [b, void 0, void 0]) : null | |
}, | |
isLoading: function(b) { | |
return b ? VFExt3.lib.Ajax.isCallInProgress(b) : !!this.transId | |
}, | |
abort: function(b) { | |
if (b || this.isLoading()) VFExt3.lib.Ajax.abort(b || this.transId) | |
}, | |
handleResponse: function(b) { | |
this.transId = !1; | |
var a = b.argument.options; | |
b.argument = a ? a.argument : null; | |
this.fireEvent(d, this, b, a); | |
a.success && a.success.call(a.scope, b, a); | |
a.callback && a.callback.call(a.scope, a, !0, b) | |
}, | |
handleFailure: function(b, a) { | |
this.transId = !1; | |
var c = b.argument.options; | |
b.argument = c ? c.argument : null; | |
this.fireEvent("requestexception", this, b, c, a); | |
c.failure && c.failure.call(c.scope, b, c); | |
c.callback && c.callback.call(c.scope, c, !1, b) | |
}, | |
doFormUpload: function(b, a, h) { | |
function k() { | |
function a(b, c, d) { | |
VFExt3.isFunction(b) && b.apply(c, d) | |
} | |
var m = { | |
responseText: "", | |
responseXML: null, | |
argument: b.argument | |
}, | |
h, l; | |
try { | |
if (h = f.contentWindow.document || f.contentDocument || c.frames[g].document) h.body && (/textarea/i.test((l = h.body.firstChild || {}).tagName) ? m.responseText = l.value : m.responseText = h.body.innerHTML), m.responseXML = h.XMLDocument || h | |
} catch (n) {} | |
VFExt3.EventManager.removeListener(f, e, k, this); | |
this.fireEvent(d, this, m, b); | |
a(b.success, b.scope, [m, b]); | |
a(b.callback, b.scope, [b, !0, m]); | |
this.debugUploads || setTimeout(function() { | |
VFExt3.removeNode(f) | |
}, 100) | |
} | |
var g = VFExt3.id(), | |
q = document, | |
f = q.createElement("iframe"), | |
m = VFExt3.getDom(b.form), | |
l = [], | |
n, p = { | |
target: m.target, | |
method: m.method, | |
encoding: m.encoding, | |
enctype: m.enctype, | |
action: m.action | |
}; | |
VFExt3.fly(f).set({ | |
id: g, | |
name: g, | |
cls: "x-hidden", | |
src: VFExt3.SSL_SECURE_URL | |
}); | |
q.body.appendChild(f); | |
VFExt3.isIE && (document.frames[g].name = g); | |
VFExt3.fly(m).set({ | |
target: g, | |
method: "POST", | |
enctype: "multipart/form-data", | |
encoding: "multipart/form-data", | |
action: h || p.action | |
}); | |
VFExt3.iterate(VFExt3.urlDecode(a, !1), function(a, b) { | |
n = q.createElement("input"); | |
VFExt3.fly(n).set({ | |
type: "hidden", | |
value: b, | |
name: a | |
}); | |
m.appendChild(n); | |
l.push(n) | |
}); | |
VFExt3.EventManager.on(f, e, k, this); | |
m.submit(); | |
VFExt3.fly(m).set(p); | |
VFExt3.each(l, function(a) { | |
VFExt3.removeNode(a) | |
}) | |
} | |
}) | |
})(); | |
VFExt3.Ajax = new VFExt3.data.Connection({ | |
autoAbort: !1, | |
serializeForm: function(d) { | |
return VFExt3.lib.Ajax.serializeForm(d) | |
} | |
}); | |
VFExt3.util.DelayedTask = function(d, e, c) { | |
var b = this, | |
a, h = function() { | |
clearInterval(a); | |
a = null; | |
d.apply(e, c || []) | |
}; | |
b.delay = function(k, g, q, f) { | |
b.cancel(); | |
d = g || d; | |
e = q || e; | |
c = f || c; | |
a = setInterval(h, k) | |
}; | |
b.cancel = function() { | |
a && (clearInterval(a), a = null) | |
} | |
}; | |
VFExt3.util.JSON = new function() { | |
var d = !!{}.hasOwnProperty, | |
e = function() { | |
var a = null; | |
return function() { | |
null === a && (a = VFExt3.USE_NATIVE_JSON && window.JSON && "[object JSON]" == JSON.toString()); | |
return a | |
} | |
}(), | |
c = function(a) { | |
return 10 > a ? "0" + a : a | |
}, | |
b = function(a) { | |
return eval("(" + a + ")") | |
}, | |
a = function(b) { | |
if (!VFExt3.isDefined(b) || null === b) return "null"; | |
if (VFExt3.isArray(b)) { | |
var c = ["["], | |
f, e, h = b.length, | |
n; | |
for (e = 0; e < h; e += 1) switch (n = b[e], typeof n) { | |
case "undefined": | |
case "function": | |
case "unknown": | |
break; | |
default: | |
f && c.push(","), c.push(null === | |
n ? "null" : VFExt3.util.JSON.encode(n)), f = !0 | |
} | |
c.push("]"); | |
return c.join("") | |
} | |
if (VFExt3.isDate(b)) return VFExt3.util.JSON.encodeDate(b); | |
if (VFExt3.isString(b)) return k(b); | |
if ("number" == typeof b) return isFinite(b) ? String(b) : "null"; | |
if (VFExt3.isBoolean(b)) return String(b); | |
f = ["{"]; | |
for (e in b) | |
if (!b.getElementsByTagName && (!d || b.hasOwnProperty(e))) switch (h = b[e], typeof h) { | |
case "undefined": | |
case "function": | |
case "unknown": | |
break; | |
default: | |
c && f.push(","), f.push(a(e), ":", null === h ? "null" : a(h)), c = !0 | |
} | |
f.push("}"); | |
return f.join("") | |
}, | |
h = { | |
"\b": "\\b", | |
"\t": "\\t", | |
"\n": "\\n", | |
"\f": "\\f", | |
"\r": "\\r", | |
'"': '\\"', | |
"\\": "\\\\" | |
}, | |
k = function(a) { | |
return /["\\\x00-\x1f]/.test(a) ? '"' + a.replace(/([\x00-\x1f\\"])/g, function(a, b) { | |
var c = h[b]; | |
if (c) return c; | |
c = b.charCodeAt(); | |
return "\\u00" + Math.floor(c / 16).toString(16) + (c % 16).toString(16) | |
}) + '"' : '"' + a + '"' | |
}; | |
this.encodeDate = function(a) { | |
return '"' + a.getFullYear() + "-" + c(a.getMonth() + 1) + "-" + c(a.getDate()) + "T" + c(a.getHours()) + ":" + c(a.getMinutes()) + ":" + c(a.getSeconds()) + '"' | |
}; | |
this.encode = function() { | |
var b; | |
return function(c) { | |
b || | |
(b = e() ? JSON.stringify : a); | |
return b(c) | |
} | |
}(); | |
this.decode = function() { | |
var a; | |
return function(c) { | |
a || (a = e() ? JSON.parse : b); | |
return a(c) | |
} | |
}() | |
}; | |
VFExt3.encode = VFExt3.util.JSON.encode; | |
VFExt3.decode = VFExt3.util.JSON.decode; | |
VFExt3.Direct = VFExt3.extend(VFExt3.util.Observable, { | |
exceptions: { | |
TRANSPORT: "xhr", | |
PARSE: "parse", | |
LOGIN: "login", | |
SERVER: "exception" | |
}, | |
constructor: function() { | |
this.addEvents("event", "exception"); | |
this.transactions = {}; | |
this.providers = {} | |
}, | |
addProvider: function(d) { | |
var e = arguments; | |
if (1 < e.length) | |
for (var c = 0, b = e.length; c < b; c++) this.addProvider(e[c]); | |
else return d.events || (d = new VFExt3.Direct.PROVIDERS[d.type](d)), d.id = d.id || VFExt3.id(), this.providers[d.id] = d, d.on("data", this.onProviderData, this), d.on("exception", | |
this.onProviderException, this), d.isConnected() || d.connect(), d | |
}, | |
getProvider: function(d) { | |
return this.providers[d] | |
}, | |
removeProvider: function(d) { | |
d = d.id ? d : this.providers[d]; | |
d.un("data", this.onProviderData, this); | |
d.un("exception", this.onProviderException, this); | |
delete this.providers[d.id]; | |
return d | |
}, | |
addTransaction: function(d) { | |
return this.transactions[d.tid] = d | |
}, | |
removeTransaction: function(d) { | |
delete this.transactions[d.tid || d]; | |
return d | |
}, | |
getTransaction: function(d) { | |
return this.transactions[d.tid || d] | |
}, | |
onProviderData: function(d, | |
e) { | |
if (VFExt3.isArray(e)) | |
for (var c = 0, b = e.length; c < b; c++) this.onProviderData(d, e[c]); | |
else e.name && "event" != e.name && "exception" != e.name ? this.fireEvent(e.name, e) : "exception" == e.type && this.fireEvent("exception", e), this.fireEvent("event", e, d) | |
}, | |
createEvent: function(d, e) { | |
return new VFExt3.Direct.eventTypes[d.type](VFExt3.apply(d, e)) | |
} | |
}); | |
VFExt3.Direct = new VFExt3.Direct; | |
VFExt3.Direct.TID = 1; | |
VFExt3.Direct.PROVIDERS = {}; | |
VFExt3.Direct.Transaction = function(d) { | |
VFExt3.apply(this, d); | |
this.tid = ++VFExt3.Direct.TID; | |
this.retryCount = 0 | |
}; | |
VFExt3.Direct.Transaction.prototype = { | |
send: function() { | |
this.provider.queueTransaction(this) | |
}, | |
retry: function() { | |
this.retryCount++; | |
this.send() | |
}, | |
getProvider: function() { | |
return this.provider | |
} | |
}; | |
VFExt3.Direct.Event = function(d) { | |
VFExt3.apply(this, d) | |
}; | |
VFExt3.Direct.Event.prototype = { | |
status: !0, | |
getData: function() { | |
return this.data | |
} | |
}; | |
VFExt3.Direct.RemotingEvent = VFExt3.extend(VFExt3.Direct.Event, { | |
type: "rpc", | |
getTransaction: function() { | |
return this.transaction || VFExt3.Direct.getTransaction(this.tid) | |
} | |
}); | |
VFExt3.Direct.ExceptionEvent = VFExt3.extend(VFExt3.Direct.RemotingEvent, { | |
status: !1, | |
type: "exception" | |
}); | |
VFExt3.Direct.eventTypes = { | |
rpc: VFExt3.Direct.RemotingEvent, | |
event: VFExt3.Direct.Event, | |
exception: VFExt3.Direct.ExceptionEvent | |
}; | |
VFExt3.direct.Provider = VFExt3.extend(VFExt3.util.Observable, { | |
priority: 1, | |
constructor: function(d) { | |
VFExt3.apply(this, d); | |
this.addEvents("connect", "disconnect", "data", "exception"); | |
VFExt3.direct.Provider.superclass.constructor.call(this, d) | |
}, | |
isConnected: function() { | |
return !1 | |
}, | |
connect: VFExt3.emptyFn, | |
disconnect: VFExt3.emptyFn | |
}); | |
VFExt3.direct.JsonProvider = VFExt3.extend(VFExt3.direct.Provider, { | |
parseResponse: function(d) { | |
return !VFExt3.isEmpty(d.responseText) ? "object" == typeof d.responseText ? d.responseText : VFExt3.decode(d.responseText) : null | |
}, | |
getEvents: function(d) { | |
var e = null; | |
try { | |
e = this.parseResponse(d) | |
} catch (c) { | |
return [new VFExt3.Direct.ExceptionEvent({ | |
data: c, | |
xhr: d, | |
code: VFExt3.Direct.exceptions.PARSE, | |
message: "Error parsing json response: \n\n '" + c.message + "'. Logged in?" | |
})] | |
} | |
d = []; | |
if (VFExt3.isArray(e)) | |
for (var b = 0, a = e.length; b < a; b++) d.push(VFExt3.Direct.createEvent(e[b])); | |
else d.push(VFExt3.Direct.createEvent(e)); | |
return d | |
} | |
}); | |
VFExt3.direct.RemotingProvider = VFExt3.extend(VFExt3.direct.JsonProvider, { | |
enableBuffer: 10, | |
maxRetries: 1, | |
timeout: void 0, | |
constructor: function(d) { | |
VFExt3.direct.RemotingProvider.superclass.constructor.call(this, d); | |
this.addEvents("beforecall", "call"); | |
this.namespace = VFExt3.isString(this.namespace) ? VFExt3.ns(this.namespace) : this.namespace || window; | |
this.transactions = {}; | |
this.callBuffer = [] | |
}, | |
initAPI: function() { | |
var d = this.actions, | |
e; | |
for (e in d) | |
for (var c = this.namespace[e] || (this.namespace[e] = {}), b = d[e], a = 0, h = b.length; a < | |
h; a++) { | |
var k = b[a]; | |
c[k.name] = this.createMethod(e, k) | |
} | |
}, | |
isConnected: function() { | |
return !!this.connected | |
}, | |
connect: function() { | |
if (this.url) this.initAPI(), this.connected = !0, this.fireEvent("connect", this); | |
else if (!this.url) throw "Error initializing RemotingProvider, no url configured."; | |
}, | |
disconnect: function() { | |
this.connected && (this.connected = !1, this.fireEvent("disconnect", this)) | |
}, | |
onData: function(d, e, c) { | |
if (e) { | |
c = this.getEvents(c); | |
e = 0; | |
for (var b = c.length; e < b; e++) { | |
var a = c[e]; | |
!a.tid && d.ts && (a.tid = d.ts.tid); | |
var h = this.getTransaction(a); | |
this.fireEvent("data", this, a); | |
h && (this.doCallback(h, a, !0), VFExt3.Direct.removeTransaction(h)) | |
} | |
} else { | |
d = [].concat(d.ts); | |
e = 0; | |
for (b = d.length; e < b; e++)(h = this.getTransaction(d[e])) && h.retryCount < this.maxRetries ? h.retry() : (a = new VFExt3.Direct.ExceptionEvent({ | |
data: a, | |
transaction: h, | |
code: VFExt3.Direct.exceptions.TRANSPORT, | |
message: "Unable to connect to the server" + (c && c.statusText ? " (" + c.statusText + ")" : "") + ".", | |
xhr: c | |
}), this.fireEvent("data", this, a), h && (this.doCallback(h, a, !1), VFExt3.Direct.removeTransaction(h))) | |
} | |
}, | |
getCallData: function(d) { | |
return { | |
action: d.action, | |
method: d.method, | |
data: d.data, | |
type: "rpc", | |
tid: d.tid | |
} | |
}, | |
doSend: function(d) { | |
var e = { | |
url: this.url, | |
callback: this.onData, | |
scope: this, | |
ts: d, | |
timeout: this.timeout | |
}, | |
c; | |
if (VFExt3.isArray(d)) { | |
c = []; | |
for (var b = 0, a = d.length; b < a; b++) c.push(this.getCallData(d[b])) | |
} else c = this.getCallData(d); | |
this.enableUrlEncode ? (d = {}, d[VFExt3.isString(this.enableUrlEncode) ? this.enableUrlEncode : "data"] = VFExt3.encode(c), e.params = d) : e.jsonData = c; | |
VFExt3.Ajax.request(e) | |
}, | |
combineAndSend: function() { | |
var d = | |
this.callBuffer.length; | |
0 < d && (this.doSend(1 == d ? this.callBuffer[0] : this.callBuffer), this.callBuffer = []) | |
}, | |
queueTransaction: function(d) { | |
d.form ? this.processForm(d) : (this.callBuffer.push(d), this.enableBuffer ? (this.callTask || (this.callTask = new VFExt3.util.DelayedTask(this.combineAndSend, this)), this.callTask.delay(VFExt3.isNumber(this.enableBuffer) ? this.enableBuffer : 10)) : this.combineAndSend()) | |
}, | |
doCall: function(d, e, c) { | |
var b = null, | |
a = c[e.len], | |
h = c[e.len + 1]; | |
0 !== e.len && (b = c.slice(0, e.len)); | |
d = new VFExt3.Direct.Transaction({ | |
provider: this, | |
args: c, | |
action: d, | |
method: e.name, | |
data: b, | |
cb: h && VFExt3.isFunction(a) ? a.createDelegate(h) : a | |
}); | |
!1 !== this.fireEvent("beforecall", this, d, e) && (VFExt3.Direct.addTransaction(d), this.queueTransaction(d), this.fireEvent("call", this, d, e)) | |
}, | |
doForm: function(d, e, c, b, a) { | |
a = new VFExt3.Direct.Transaction({ | |
provider: this, | |
action: d, | |
method: e.name, | |
args: [c, b, a], | |
cb: a && VFExt3.isFunction(b) ? b.createDelegate(a) : b, | |
isForm: !0 | |
}); | |
if (!1 !== this.fireEvent("beforecall", this, a, e)) { | |
VFExt3.Direct.addTransaction(a); | |
var h = "multipart/form-data" == | |
String(c.getAttribute("enctype")).toLowerCase(); | |
d = { | |
extTID: a.tid, | |
extAction: d, | |
extMethod: e.name, | |
extType: "rpc", | |
extUpload: String(h) | |
}; | |
VFExt3.apply(a, { | |
form: VFExt3.getDom(c), | |
isUpload: h, | |
params: b && VFExt3.isObject(b.params) ? VFExt3.apply(d, b.params) : d | |
}); | |
this.fireEvent("call", this, a, e); | |
this.processForm(a) | |
} | |
}, | |
processForm: function(d) { | |
VFExt3.Ajax.request({ | |
url: this.url, | |
params: d.params, | |
callback: this.onData, | |
scope: this, | |
form: d.form, | |
isUpload: d.isUpload, | |
ts: d | |
}) | |
}, | |
createMethod: function(d, e) { | |
var c; | |
c = e.formHandler ? function(b, | |
a, c) { | |
this.doForm(d, e, b, a, c) | |
}.createDelegate(this) : function() { | |
this.doCall(d, e, Array.prototype.slice.call(arguments, 0)) | |
}.createDelegate(this); | |
c.directCfg = { | |
action: d, | |
method: e | |
}; | |
return c | |
}, | |
getTransaction: function(d) { | |
return d && d.tid ? VFExt3.Direct.getTransaction(d.tid) : null | |
}, | |
doCallback: function(d, e) { | |
var c = e.status ? "success" : "failure"; | |
if (d && d.cb) { | |
var b = d.cb, | |
a = VFExt3.isDefined(e.result) ? e.result : e.data; | |
VFExt3.isFunction(b) ? b(a, e) : (VFExt3.callback(b[c], b.scope, [a, e]), VFExt3.callback(b.callback, b.scope, [a, e])) | |
} | |
} | |
}); | |
VFExt3.Direct.PROVIDERS.remoting = VFExt3.direct.RemotingProvider; | |
VFExt3.util.Format = function() { | |
var d = /^\s+|\s+$/g, | |
e = /<\/?[^>]+>/gi, | |
c = /(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)/ig, | |
b = /\r?\n/g; | |
return { | |
ellipsis: function(a, b, c) { | |
if (a && a.length > b) { | |
if (c) { | |
c = a.substr(0, b - 2); | |
var d = Math.max(c.lastIndexOf(" "), c.lastIndexOf("."), c.lastIndexOf("!"), c.lastIndexOf("?")); | |
return -1 == d || d < b - 15 ? a.substr(0, b - 3) + "..." : c.substr(0, d) + "..." | |
} | |
return a.substr(0, b - 3) + "..." | |
} | |
return a | |
}, | |
undef: function(a) { | |
return void 0 !== a ? a : "" | |
}, | |
defaultValue: function(a, b) { | |
return void 0 !== a && "" !== a ? a : b | |
}, | |
htmlEncode: function(a) { | |
return !a ? | |
a : String(a).replace(/&/g, "\x26amp;").replace(/>/g, "\x26gt;").replace(/</g, "\x26lt;").replace(/"/g, "\x26quot;") | |
}, | |
htmlDecode: function(a) { | |
return !a ? a : String(a).replace(/>/g, "\x3e").replace(/</g, "\x3c").replace(/"/g, '"').replace(/&/g, "\x26") | |
}, | |
trim: function(a) { | |
return String(a).replace(d, "") | |
}, | |
substr: function(a, b, c) { | |
return String(a).substr(b, c) | |
}, | |
lowercase: function(a) { | |
return String(a).toLowerCase() | |
}, | |
uppercase: function(a) { | |
return String(a).toUpperCase() | |
}, | |
capitalize: function(a) { | |
return !a ? a : a.charAt(0).toUpperCase() + | |
a.substr(1).toLowerCase() | |
}, | |
call: function(a, b) { | |
if (2 < arguments.length) { | |
var c = Array.prototype.slice.call(arguments, 2); | |
c.unshift(a); | |
return eval(b).apply(window, c) | |
} | |
return eval(b).call(window, a) | |
}, | |
usMoney: function(a) { | |
a = Math.round(100 * (a - 0)) / 100; | |
a = a == Math.floor(a) ? a + ".00" : 10 * a == Math.floor(10 * a) ? a + "0" : a; | |
a = String(a); | |
var b = a.split("."); | |
a = b[0]; | |
for (var b = b[1] ? "." + b[1] : ".00", c = /(\d+)(\d{3})/; c.test(a);) a = a.replace(c, "$1,$2"); | |
a += b; | |
return "-" == a.charAt(0) ? "-$" + a.substr(1) : "$" + a | |
}, | |
date: function(a, b) { | |
if (!a) return ""; | |
VFExt3.isDate(a) || (a = new Date(Date.parse(a))); | |
return a.dateFormat(b || "m/d/Y") | |
}, | |
dateRenderer: function(a) { | |
return function(b) { | |
return VFExt3.util.Format.date(b, a) | |
} | |
}, | |
stripTags: function(a) { | |
return !a ? a : String(a).replace(e, "") | |
}, | |
stripScripts: function(a) { | |
return !a ? a : String(a).replace(c, "") | |
}, | |
fileSize: function(a) { | |
return 1024 > a ? a + " bytes" : 1048576 > a ? Math.round(10 * a / 1024) / 10 + " KB" : Math.round(10 * a / 1048576) / 10 + " MB" | |
}, | |
math: function() { | |
var a = {}; | |
return function(b, c) { | |
a[c] || (a[c] = new Function("v", "return v " + c + ";")); | |
return a[c](b) | |
} | |
}(), | |
round: function(a, b) { | |
var c = Number(a); | |
"number" == typeof b && (b = Math.pow(10, b), c = Math.round(a * b) / b); | |
return c | |
}, | |
number: function(a, b) { | |
if (!b) return a; | |
a = VFExt3.num(a, NaN); | |
if (isNaN(a)) return ""; | |
var c = ",", | |
d = ".", | |
e = !1, | |
f = 0 > a; | |
a = Math.abs(a); | |
"/i" == b.substr(b.length - 2) && (b = b.substr(0, b.length - 2), e = !0, c = ".", d = ","); | |
var m = -1 != b.indexOf(c), | |
e = (e ? b.replace(/[^\d\,]/g, "") : b.replace(/[^\d\.]/g, "")).split(d); | |
if (1 < e.length) a = a.toFixed(e[1].length); | |
else { | |
if (2 < e.length) throw "NumberFormatException: invalid format, formats should have no more than 1 period: " + | |
b; | |
a = a.toFixed(0) | |
} | |
var l = a.toString(), | |
e = l.split("."); | |
if (m) { | |
for (var m = e[0], l = [], n = m.length, p = m.length % 3 || 3, s = 0; s < n; s += p) 0 != s && (p = 3), l[l.length] = m.substr(s, p); | |
l = l.join(c); | |
e[1] && (l += d + e[1]) | |
} else e[1] && (l = e[0] + d + e[1]); | |
return (f ? "-" : "") + b.replace(/[\d,?\.?]+/, l) | |
}, | |
numberRenderer: function(a) { | |
return function(b) { | |
return VFExt3.util.Format.number(b, a) | |
} | |
}, | |
plural: function(a, b, c) { | |
return a + " " + (1 == a ? b : c ? c : b + "s") | |
}, | |
nl2br: function(a) { | |
return VFExt3.isEmpty(a) ? "" : a.replace(b, "\x3cbr/\x3e") | |
} | |
} | |
}(); | |
(function() { | |
var d = document; | |
VFExt3.Element = function(a, b) { | |
var c = "string" == typeof a ? d.getElementById(a) : a, | |
e; | |
if (!c) return null; | |
e = c.id; | |
if (!b && e && VFExt3.elCache[e]) return VFExt3.elCache[e].el; | |
this.dom = c; | |
this.id = e || VFExt3.id(c) | |
}; | |
var e = VFExt3.DomHelper, | |
c = VFExt3.Element, | |
b = VFExt3.elCache; | |
c.prototype = { | |
set: function(a, b) { | |
var c = this.dom, | |
d, g; | |
b = !1 !== b && !!c.setAttribute; | |
for (d in a) a.hasOwnProperty(d) && (g = a[d], "style" == d ? e.applyStyles(c, g) : "cls" == d ? c.className = g : b ? c.setAttribute(d, g) : c[d] = g); | |
return this | |
}, | |
defaultUnit: "px", | |
is: function(a) { | |
return VFExt3.DomQuery.is(this.dom, a) | |
}, | |
focus: function(a, b) { | |
b = b || this.dom; | |
try { | |
Number(a) ? this.focus.defer(a, null, [null, b]) : b.focus() | |
} catch (c) {} | |
return this | |
}, | |
blur: function() { | |
try { | |
this.dom.blur() | |
} catch (a) {} | |
return this | |
}, | |
getValue: function(a) { | |
var b = this.dom.value; | |
return a ? parseInt(b, 10) : b | |
}, | |
addListener: function(a, b, c, d) { | |
VFExt3.EventManager.on(this.dom, a, b, c || this, d); | |
return this | |
}, | |
removeListener: function(a, b, c) { | |
VFExt3.EventManager.removeListener(this.dom, a, b, c || this); | |
return this | |
}, | |
removeAllListeners: function() { | |
VFExt3.EventManager.removeAll(this.dom); | |
return this | |
}, | |
purgeAllListeners: function() { | |
VFExt3.EventManager.purgeElement(this, !0); | |
return this | |
}, | |
addUnits: function(a) { | |
if ("" === a || "auto" == a || void 0 === a) a = a || ""; | |
else if (!isNaN(a) || !h.test(a)) a += this.defaultUnit || "px"; | |
return a | |
}, | |
load: function(a, b, c) { | |
VFExt3.Ajax.request(VFExt3.apply({ | |
params: b, | |
url: a.url || a, | |
callback: c, | |
el: this.dom, | |
indicatorText: a.indicatorText || "" | |
}, VFExt3.isObject(a) ? a : {})); | |
return this | |
}, | |
isBorderBox: function() { | |
return q[(this.dom.tagName || "").toLowerCase()] || VFExt3.isBorderBox | |
}, | |
remove: function() { | |
var a = | |
this.dom; | |
a && (delete this.dom, VFExt3.removeNode(a)) | |
}, | |
hover: function(a, b, c, d) { | |
this.on("mouseenter", a, c || this.dom, d); | |
this.on("mouseleave", b, c || this.dom, d); | |
return this | |
}, | |
contains: function(a) { | |
return !a ? !1 : VFExt3.lib.Dom.isAncestor(this.dom, a.dom ? a.dom : a) | |
}, | |
getAttributeNS: function(a, b) { | |
return this.getAttribute(b, a) | |
}, | |
getAttribute: VFExt3.isIE ? function(a, b) { | |
var c = this.dom; | |
return -1 == ["undefined", "unknown"].indexOf(typeof c[b + ":" + a]) ? c[b + ":" + a] : c[a] | |
} : function(a, b) { | |
var c = this.dom; | |
return c.getAttributeNS(b, a) || c.getAttribute(b + | |
":" + a) || c.getAttribute(a) || c[a] | |
}, | |
update: function(a) { | |
this.dom && (this.dom.innerHTML = a); | |
return this | |
} | |
}; | |
var a = c.prototype; | |
c.addMethods = function(b) { | |
VFExt3.apply(a, b) | |
}; | |
a.on = a.addListener; | |
a.un = a.removeListener; | |
a.autoBoxAdjust = !0; | |
var h = /\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i, | |
k; | |
c.get = function(a) { | |
var e, g; | |
if (!a) return null; | |
if ("string" == typeof a) { | |
if (!(g = d.getElementById(a))) return null; | |
b[a] && b[a].el ? (e = b[a].el, e.dom = g) : e = c.addToCache(new c(g)); | |
return e | |
} | |
if (a.tagName) { | |
if (!(e = a.id)) e = VFExt3.id(a); | |
b[e] && b[e].el ? (e = | |
b[e].el, e.dom = a) : e = c.addToCache(new c(a)); | |
return e | |
} | |
return a instanceof c ? (a != k && (a.dom = VFExt3.isIE && (void 0 == a.id || "" == a.id) ? a.dom : d.getElementById(a.id) || a.dom), a) : a.isComposite ? a : VFExt3.isArray(a) ? c.select(a) : a == d ? (k || (a = function() {}, a.prototype = c.prototype, k = new a, k.dom = d), k) : null | |
}; | |
c.addToCache = function(a, c) { | |
c = c || a.id; | |
b[c] = { | |
el: a, | |
data: {}, | |
events: {} | |
}; | |
return a | |
}; | |
c.data = function(a, d, e) { | |
a = c.get(a); | |
if (!a) return null; | |
var g = b[a.id].data; | |
return 2 == arguments.length ? g[d] : g[d] = e | |
}; | |
c.collectorThreadId = setInterval(function() { | |
if (VFExt3.enableGarbageCollector) { | |
var a, | |
e; | |
for (a in b) | |
if (e = b[a], !e.skipGC && (e = e.el, e = e.dom, !e || !e.parentNode || !e.offsetParent && !d.getElementById(a))) VFExt3.enableListenerCollection && VFExt3.EventManager.removeAll(e), delete b[a]; | |
if (VFExt3.isIE) { | |
e = {}; | |
for (a in b) e[a] = b[a]; | |
b = VFExt3.elCache = e | |
} | |
} else clearInterval(c.collectorThreadId) | |
}, 3E4); | |
var g = function() {}; | |
g.prototype = c.prototype; | |
c.Flyweight = function(a) { | |
this.dom = a | |
}; | |
c.Flyweight.prototype = new g; | |
c.Flyweight.prototype.isFlyweight = !0; | |
c._flyweights = {}; | |
c.fly = function(a, b) { | |
var d = null; | |
b = b || "_global"; | |
if (a = VFExt3.getDom(a))(c._flyweights[b] = c._flyweights[b] || new c.Flyweight).dom = a, d = c._flyweights[b]; | |
return d | |
}; | |
VFExt3.get = c.get; | |
VFExt3.fly = c.fly; | |
var q = VFExt3.isStrict ? { | |
select: 1 | |
} : { | |
input: 1, | |
select: 1, | |
textarea: 1 | |
}; | |
if (VFExt3.isIE || VFExt3.isGecko) q.button = 1 | |
})(); | |
VFExt3.ns("Visualforce.remoting"); | |
$VFRM = Visualforce.remoting; | |
$VFRM.Util = { | |
log: function(a, b) { | |
if (!("undefined" === typeof console || !console.groupCollapsed || !console.log || !console.groupEnd)) | |
if ("undefined" !== typeof b && null !== b) try { | |
console.groupCollapsed(a), console.log(b), console.groupEnd() | |
} catch (c) {} else try { | |
console.log(a) | |
} catch (d) {} | |
}, | |
warn: function(a) { | |
if ("undefined" !== typeof console && console.warn && a) try { | |
console.warn(a) | |
} catch (b) {} | |
}, | |
error: function(a, b) { | |
if ("undefined" !== typeof console && console.error && a) | |
if (b) try { | |
console.error(a, b) | |
} catch (c) {} else try { | |
console.error(a) | |
} catch (d) {} | |
}, | |
isArray: function(a) { | |
return a && a.constructor === Array | |
}, | |
isObject: function(a) { | |
return !!a && "[object Object]" === Object.prototype.toString.apply(a) | |
}, | |
isFunction: function(a) { | |
return a && "function" === typeof a | |
}, | |
isString: function(a) { | |
return "string" === typeof a | |
}, | |
isEmpty: function(a) { | |
return void 0 === a || null === a || this.isArray(a) && 0 === a.length || "" === a | |
}, | |
isNotEmpty: function(a) { | |
return !this.isEmpty(a) | |
}, | |
decode: function(a, b) { | |
var c = eval("(" + a + ")"); | |
return b ? this.resolveRefs(c) : c | |
}, | |
__resolveRefs: function(a, b, c) { | |
if (this.isArray(a)) { | |
for (var d = | |
c || [], g = 0; g < a.length; g++) d.push(this.__resolveRefs(a[g], b)); | |
return d | |
} | |
if (this.isObject(a)) { | |
d = a.serId; | |
if (void 0 !== d) return a = a.value, g = this.isArray(a) ? [] : {}, b[d] = g, this.__resolveRefs(a, b, g); | |
d = a.serRefId; | |
if (void 0 !== d) return b[d]; | |
d = c || {}; | |
for (g in a) d[g] = this.__resolveRefs(a[g], b); | |
return d | |
} | |
return a | |
}, | |
resolveRefs: function(a) { | |
return !this.isEmpty(a) ? this.__resolveRefs(a, {}) : a | |
}, | |
encode: function(a) { | |
return !this.isEmpty(a) ? JSON.stringify(a) : a | |
}, | |
escape: function(a) { | |
return !this.isEmpty(a) ? this.each(a, function(a) { | |
return escape(a) | |
}) : | |
a | |
}, | |
unescape: function(a) { | |
return !this.isEmpty(a) ? this.each(a, function(a) { | |
return unescape(a) | |
}) : a | |
}, | |
htmlEncode: function(a) { | |
return !this.isEmpty(a) ? this.each(a, function(a) { | |
return a && "string" === typeof a ? VFExt3.util.Format.htmlEncode(a) : a | |
}) : a | |
}, | |
each: function(a, b) { | |
if (this.isEmpty(a)) return a; | |
if (this.isArray(a)) { | |
for (var c = [], d = 0, g = a.length; d < g; d++) c.push(this.each(a[d], b)); | |
return c | |
} | |
if (this.isObject(a)) { | |
c = {}; | |
for (d in a) c[d] = this.each(a[d], b); | |
return c | |
} | |
return b(a) | |
}, | |
clone: function(a, b) { | |
if (null === a || "object" !== typeof a) return a; | |
if (a instanceof Object) { | |
var c = {}, | |
d; | |
for (d in a) b(d, a[d]) && (c[d] = this.clone(a[d], b)); | |
return c | |
} | |
this.error("Type " + typeof a + " not supported") | |
}, | |
newlineToBr: function(a) { | |
return a ? a.replace(/\n/g, "\x3cbr /\x3e") : a | |
}, | |
getObject: function(a, b) { | |
if (!a) return null; | |
b = b || window; | |
var c, d = a; | |
if (-1 < a.indexOf(".")) { | |
c = a.split("."); | |
for (var d = c.pop(), g = 0; g < c.length; g++) b = b[c[g]] | |
} | |
return b[d] | |
}, | |
isEmptyObject: function(a) { | |
for (var b in a) | |
if (Object.prototype.hasOwnProperty.call(a, b)) return !1; | |
return !0 | |
}, | |
get: function(a) { | |
if (a = RegExp("[?\x26]" + | |
encodeURIComponent(a) + "\x3d([^\x26]*)").exec(location.search)) return decodeURIComponent(a[1]) | |
} | |
}; | |
$VFRM.RemotingProviderImpl = VFExt3.extend(VFExt3.direct.RemotingProvider, { | |
constructor: function(a) { | |
function b(a, b) { | |
d.warn(g + a, b) | |
} | |
var c = this, | |
d = $VFRM.Util, | |
g = "Visualforce Remoting: "; | |
this.cmdParam = "__vfr__"; | |
if (!a.vf) throw g + "Visualforce configuration not provided"; | |
var k = a.vf, | |
n = k.dbg || k.tst || "yes" === d.get("__vfrmtdbg"); | |
this.id = k.vid; | |
this.pageUri = k.vn; | |
this.timestamp = k.tm; | |
this.ns = k.ns; | |
delete a.vf; | |
VFExt3.apply(a, { | |
type: "remoting", | |
maxRetries: 0, | |
url: window.location.protocol + "//" + window.location.host + "/" + a.service | |
}); | |
$VFRM.RemotingProviderImpl.superclass.constructor.call(this, a); | |
this.dump = function() { | |
var a = "Provider[" + this.id + (!d.isEmpty(this.ns) ? ", " + this.ns : "") + "] last updated at " + (new Date(this.timestamp)).toLocaleString(); | |
d.log(g + a, c.actions) | |
}; | |
this.reInit = function(a, b) { | |
var e, f; | |
if (c.actions) { | |
for (var g in c.actions) { | |
if (e = d.getObject(g)) { | |
f = c.actions[g].ms; | |
for (var m = 0, p = f.length; m < p; m++) e[f[m].name] && delete e[f[m].name] | |
} | |
d.isEmptyObject(e) && delete e | |
} | |
d.isEmptyObject(c.ns) && delete e; | |
a && c.initAPI() | |
} | |
b && d.isFunction(b) && | |
b(!0, this) | |
}; | |
this.initAPI = function() { | |
var a = c.actions, | |
l, e, f, h; | |
for (h in a) { | |
l = 1 === a[h].prm; | |
e = k.dev; | |
f = k.tst; | |
var m = k.ovrprm; | |
if (top !== self && l && (!e || top.document.location.pathname !== self.document.location.pathname) && !f && !m) a[h] = null, l = "Javascript proxies were not generated for controller " + h + ": may not use public remoted methods inside an iframe.", alert(l), b(l); | |
else { | |
f = h.indexOf("."); | |
l = a[h].ms; - 1 < f ? (e = h.substring(0, f), e = c.namespace[e] || (c.namespace[e] = {}), f = h.substring(f + 1), f = e[f] || (e[f] = {})) : f = c.namespace[h] || | |
(c.namespace[h] = {}); | |
for (var m = 0, p = l.length; m < p; m++) e = l[m], f[e.name] && !k.xhr ? d.error(g + ("Unable to create method '" + e.name + "': already exists on object '" + h + "'"), void 0) : f[e.name] = c.createMethod(h, e); | |
n && d.log(g + h, f) | |
} | |
} | |
}; | |
this.queueTransaction = function(a) { | |
if (a.form) this.processForm(a); | |
else { | |
if (a.args && d.isArray(a.args)) { | |
var b = a.args[a.args.length - 1]; | |
if (d.isObject(b) && !1 === b.buffer) { | |
this.doSend(a); | |
return | |
} | |
} | |
this.callBuffer.push(a); | |
this.enableBuffer ? (this.callTask || (this.callTask = new VFExt3.util.DelayedTask(this.combineAndSend, | |
this)), this.callTask.delay(VFExt3.isNumber(this.enableBuffer) ? this.enableBuffer : 10)) : this.combineAndSend() | |
} | |
}; | |
this.doCall = function(a, b, e) { | |
n && ("undefined" !== typeof console && console.time) && console.time("VF Remoting: " + b.name); | |
if (d.isFunction(e[b.len])) { | |
if (d.isObject(e[b.len + 1])) { | |
var c = e.pop(); | |
e.push(void 0); | |
e.push(c) | |
} | |
$VFRM.RemotingProviderImpl.superclass.doCall.call(this, a, b, e) | |
} else d.error(g + ("Parameter length does not match remote action parameters: expected " + b.len + " parameters, got "), void 0) | |
}; | |
this.isRemotingTx = | |
function(b) { | |
return b && b.scope.service == a.service | |
}; | |
this.setTimeout = function(a) { | |
var b; | |
a.ts && a.ts.args && (b = a.ts.args[a.ts.args.length - 1], d.isObject(b) && b.timeout && (a.timeout = b.timeout)); | |
a.timeout = a.timeout || $VFRM.timeout || VFExt3.Ajax.timeout; | |
12E4 < a.timeout && (a.timeout = 12E4) | |
}; | |
this.refresh = function(a) { | |
var c = {}, | |
e; | |
for (e in this.actions) | |
if (this.actions[e].ms) | |
for (var f = 0, h = this.actions[e].ms.length; f < h; f++) c[e + "." + this.actions[e].ms[f].name] = this.actions[e].ms[f]; | |
a = { | |
url: this.url, | |
success: function(a) { | |
return function(c) { | |
var e, | |
l = VFExt3.decode(c.responseText), | |
f, h = !0; | |
if (l.actions) | |
if (f = VFExt3.decode(l.actions), !f || !d.isObject(f)) d.error(g + "Unable to refresh actions: actions result not found or not an object", void 0); | |
else { | |
for (var k in f) | |
if (e = k.substring(0, k.lastIndexOf(".")), c = this.actions[e], !c || !c.ms) b("Unable to refresh action '" + k + "', controller '" + e + "' not found"), h = !1; | |
else { | |
e = 0; | |
for (var q = c.ms.length; e < q; e++) | |
if (c.ms[e].name === k.substring(k.lastIndexOf(".") + 1)) { | |
c.ms[e].csrf = f[k]; | |
n && d.log(g + ("Refreshed action '" + k + "'"), void 0); | |
break | |
} | |
} | |
h && (l.tm && l.tm > this.timestamp) && (this.timestamp = l.tm); | |
a && d.isFunction(a) && a(!0, this) | |
} else d.error(g + "Unable to refresh actions: actions result not found", void 0) | |
} | |
}(a), | |
failure: function(a) { | |
return function(b) { | |
d.error(g + ("Unable to refresh actions: " + (b ? b.statusText : "unknown")), void 0); | |
a && d.isFunction(a) && a(!1, b) | |
} | |
}(a), | |
scope: this, | |
timeout: this.timeout, | |
jsonData: c, | |
params: this.cmdParam + "\x3d2" | |
}; | |
VFExt3.Ajax.request(a) | |
}; | |
this.getCallData = function(a) { | |
var b = $VFRM.RemotingProviderImpl.superclass.getCallData.call(this, | |
a) || {}; | |
b.ctx = a.ctx; | |
return b | |
}; | |
this.addListener("beforecall", function(a, c, e) { | |
d.isEmpty(c) ? b("Context not applied") : (c.ctx = { | |
csrf: e.csrf, | |
vid: k.vid, | |
ns: e.ns, | |
ver: e.ver | |
}, d.isEmpty(c.ctx.csrf) && b("Context incomplete - CSRF not provided", c.ctx), d.isEmpty(c.ctx.vid) && b("Context incomplete - Visualforce id not provided", c.ctx), ("undefined" === typeof c.ctx.ns || null === c.ctx.ns) && b("Context incomplete - namespace not provided", c.ctx), d.isEmpty(c.ctx.ver) && b("Context incomplete - version not provided", c.ctx), n && d.log(g + | |
"Added context to transaction request", c)) | |
}); | |
this.addListener("data", function(a, b) { | |
if (!d.isEmpty(a) && !d.isEmpty(b)) { | |
"undefined" === typeof b.result && (b.result = null); | |
var e = b.getTransaction(), | |
f = !d.isEmpty(e) && !d.isEmpty(e.args) && d.isObject(e.args[e.args.length - 1]) ? e.args[e.args.length - 1] : null; | |
n && c.fireEvent("beforedata", this, b); | |
if (d.isEmpty(f) || d.isEmpty(f.escape) || !0 === f.escape) b.result = d.htmlEncode(b.result); | |
!0 === b.ref && (b.result = d.resolveRefs(b.result)); | |
n && d.log(g + "Response result", b.result); | |
n && ("undefined" !== | |
typeof console && console.timeEnd) && console.timeEnd("VF Remoting: " + b.method); | |
if (!d.isEmpty(e) && d.isFunction(e.cb)) { | |
var h = e.cb; | |
e.cb = function(a, b) { | |
b = $VFRM.Util.clone(b, function(a, b) { | |
return !("function" === typeof b || $VFRM.Util.isObject(b) && "provider" == a) | |
}); | |
h(a, b) | |
} | |
} | |
} | |
}) | |
} | |
}); | |
VFExt3.Direct.on("exception", function(a) { | |
a.vfTx && a.where && "" !== a.where ? $VFRM.Util.error("Visualforce Remoting Exception: " + a.message, a.where) : $VFRM.Util.error("Visualforce Remoting Exception: " + a.message, a) | |
}); | |
VFExt3.Ajax.on("beforerequest", function(a, b) { | |
$VFRM.last.isRemotingTx(b) && (b.headers || (b.headers = {}), $VFRM.Util.isNotEmpty($VFRM.oauthAccessToken) && $VFRM.Util.isString($VFRM.oauthAccessToken) && (b.headers.Authorization = "OAuth " + $VFRM.oauthAccessToken), b.headers["X-User-Agent"] = "Visualforce-Remoting", $VFRM.last.setTimeout(b)) | |
}, this); | |
$VFRM.ProviderManager = VFExt3.extend(VFExt3.util.Observable, { | |
constructor: function(a) { | |
this.addEvents("beforeadd", "afteradd"); | |
$VFRM.ProviderManager.superclass.constructor.call(this, a) | |
}, | |
providers: {}, | |
add: function(a) { | |
!1 !== this.fireEvent("beforeadd", a) && (VFExt3.Direct.addProvider(a), this.providers[a.id] = a, $VFRM.last = a, this.fireEvent("afteradd", a)) | |
}, | |
get: function(a) { | |
return this.providers[a] | |
}, | |
on: function(a, b) { | |
if (this.events[a]) $VFRM.ProviderManager.superclass.on.call(this, a, b); | |
else | |
for (var c in this.providers) this.providers[c].on(a, | |
b) | |
}, | |
getController: function(a) { | |
if (!a || !$VFRM.Util.isString(a)) return null; | |
var b = $VFRM.Util.getObject(a); | |
if (!b) | |
for (var c in this.providers) b && $VFRM.Util.warn("Multiple remoting controllers found for '" + a + "'"), this.providers[c].ns && (b = $VFRM.Util.getObject(this.providers[c].ns + "." + a)); | |
(!b || !$VFRM.Util.isObject(b)) && $VFRM.Util.warn("Controller not found for '" + a + "'"); | |
return b | |
}, | |
getAction: function(a) { | |
if (!a || !$VFRM.Util.isString(a) || -1 == a.indexOf(".")) return null; | |
var b = this.getController(a.substring(0, a.lastIndexOf("."))), | |
c; | |
b && (c = b[a.substring(a.lastIndexOf(".") + 1)], (!c || !$VFRM.Util.isFunction(c)) && $VFRM.Util.warn("Action function not found for '" + a + "'")); | |
return c | |
}, | |
invokeAction: function() { | |
(null === arguments || 0 === arguments.length) && $VFRM.Util.error("Unable to invoke action '" + a + "': action and action parameters not provided", null); | |
var a = Array.prototype.shift.call(arguments), | |
b = this.getAction(a); | |
b && $VFRM.Util.isFunction(b) ? b.apply(this, arguments) : $VFRM.Util.error("Unable to invoke action '" + a + "': no controller and/or function found", | |
null) | |
} | |
}); | |
$VFRM.Manager = new $VFRM.ProviderManager; | |
//# sourceMappingURL=/javascript/1418723033000/sfdc/source/VFRemote.js.map |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment