ext-base.js 49 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152
  1. /*
  2. * Ext JS Library 2.0.2 Copyright(c) 2006-2008, Ext JS, LLC. licensing@extjs.com
  3. *
  4. * http://extjs.com/license
  5. */
  6. Ext = {
  7. version : "2.0.2"
  8. };
  9. window["undefined"] = window["undefined"];
  10. Ext.apply = function(C, D, B) {
  11. if (B) {
  12. Ext.apply(C, B)
  13. }
  14. if (C && D && typeof D == "object") {
  15. for (var A in D) {
  16. C[A] = D[A]
  17. }
  18. }
  19. return C
  20. };
  21. (function() {
  22. var idSeed = 0;
  23. var ua = navigator.userAgent.toLowerCase();
  24. var isStrict = document.compatMode == "CSS1Compat", isOpera = ua
  25. .indexOf("opera") > -1, isSafari = (/webkit|khtml/).test(ua), isSafari3 = isSafari
  26. && ua.indexOf("webkit/5") != -1, isIE = !isOpera
  27. && ua.indexOf("msie") > -1, isIE7 = !isOpera
  28. && ua.indexOf("msie 7") > -1, isGecko = !isSafari
  29. && ua.indexOf("gecko") > -1, isBorderBox = isIE && !isStrict, isWindows = (ua
  30. .indexOf("windows") != -1 || ua.indexOf("win32") != -1), isMac = (ua
  31. .indexOf("macintosh") != -1 || ua.indexOf("mac os x") != -1), isAir = (ua
  32. .indexOf("adobeair") != -1), isLinux = (ua.indexOf("linux") != -1), isSecure = window.location.href
  33. .toLowerCase().indexOf("https") === 0;
  34. if (isIE && !isIE7) {
  35. try {
  36. document.execCommand("BackgroundImageCache", false, true)
  37. } catch (e) {
  38. }
  39. }
  40. Ext.apply(Ext, {
  41. isStrict : isStrict,
  42. isSecure : isSecure,
  43. isReady : false,
  44. enableGarbageCollector : true,
  45. enableListenerCollection : false,
  46. SSL_SECURE_URL : "javascript:false",
  47. BLANK_IMAGE_URL : "http:/" + "/extjs.com/s.gif",
  48. emptyFn : function() {
  49. },
  50. applyIf : function(o, c) {
  51. if (o && c) {
  52. for (var p in c) {
  53. if (typeof o[p] == "undefined") {
  54. o[p] = c[p]
  55. }
  56. }
  57. }
  58. return o
  59. },
  60. addBehaviors : function(o) {
  61. if (!Ext.isReady) {
  62. Ext.onReady(function() {
  63. Ext.addBehaviors(o)
  64. });
  65. return
  66. }
  67. var cache = {};
  68. for (var b in o) {
  69. var parts = b.split("@");
  70. if (parts[1]) {
  71. var s = parts[0];
  72. if (!cache[s]) {
  73. cache[s] = Ext.select(s)
  74. }
  75. cache[s].on(parts[1], o[b])
  76. }
  77. }
  78. cache = null
  79. },
  80. id : function(el, prefix) {
  81. prefix = prefix || "ext-gen";
  82. el = Ext.getDom(el);
  83. var id = prefix + (++idSeed);
  84. return el ? (el.id ? el.id : (el.id = id)) : id
  85. },
  86. extend : function() {
  87. var io = function(o) {
  88. for (var m in o) {
  89. this[m] = o[m]
  90. }
  91. };
  92. var oc = Object.prototype.constructor;
  93. return function(sb, sp, overrides) {
  94. if (typeof sp == "object") {
  95. overrides = sp;
  96. sp = sb;
  97. sb = overrides.constructor != oc
  98. ? overrides.constructor
  99. : function() {
  100. sp.apply(this, arguments)
  101. }
  102. }
  103. var F = function() {
  104. }, sbp, spp = sp.prototype;
  105. F.prototype = spp;
  106. sbp = sb.prototype = new F();
  107. sbp.constructor = sb;
  108. sb.superclass = spp;
  109. if (spp.constructor == oc) {
  110. spp.constructor = sp
  111. }
  112. sb.override = function(o) {
  113. Ext.override(sb, o)
  114. };
  115. sbp.override = io;
  116. Ext.override(sb, overrides);
  117. sb.extend = function(o) {
  118. Ext.extend(sb, o)
  119. };
  120. return sb
  121. }
  122. }(),
  123. override : function(origclass, overrides) {
  124. if (overrides) {
  125. var p = origclass.prototype;
  126. for (var method in overrides) {
  127. p[method] = overrides[method]
  128. }
  129. }
  130. },
  131. namespace : function() {
  132. var a = arguments, o = null, i, j, d, rt;
  133. for (i = 0; i < a.length; ++i) {
  134. d = a[i].split(".");
  135. rt = d[0];
  136. eval("if (typeof " + rt + " == \"undefined\"){" + rt
  137. + " = {};} o = " + rt + ";");
  138. for (j = 1; j < d.length; ++j) {
  139. o[d[j]] = o[d[j]] || {};
  140. o = o[d[j]]
  141. }
  142. }
  143. },
  144. urlEncode : function(o) {
  145. if (!o) {
  146. return ""
  147. }
  148. var buf = [];
  149. for (var key in o) {
  150. var ov = o[key], k = encodeURIComponent(key);
  151. var type = typeof ov;
  152. if (type == "undefined") {
  153. buf.push(k, "=&")
  154. } else {
  155. if (type != "function" && type != "object") {
  156. buf.push(k, "=", encodeURIComponent(ov), "&")
  157. } else {
  158. if (Ext.isArray(ov)) {
  159. if (ov.length) {
  160. for (var i = 0, len = ov.length; i < len; i++) {
  161. buf
  162. .push(
  163. k,
  164. "=",
  165. encodeURIComponent(ov[i] === undefined
  166. ? ""
  167. : ov[i]), "&")
  168. }
  169. } else {
  170. buf.push(k, "=&")
  171. }
  172. }
  173. }
  174. }
  175. }
  176. buf.pop();
  177. return buf.join("")
  178. },
  179. urlDecode : function(string, overwrite) {
  180. if (!string || !string.length) {
  181. return {}
  182. }
  183. var obj = {};
  184. var pairs = string.split("&");
  185. var pair, name, value;
  186. for (var i = 0, len = pairs.length; i < len; i++) {
  187. pair = pairs[i].split("=");
  188. name = decodeURIComponent(pair[0]);
  189. value = decodeURIComponent(pair[1]);
  190. if (overwrite !== true) {
  191. if (typeof obj[name] == "undefined") {
  192. obj[name] = value
  193. } else {
  194. if (typeof obj[name] == "string") {
  195. obj[name] = [obj[name]];
  196. obj[name].push(value)
  197. } else {
  198. obj[name].push(value)
  199. }
  200. }
  201. } else {
  202. obj[name] = value
  203. }
  204. }
  205. return obj
  206. },
  207. each : function(array, fn, scope) {
  208. if (typeof array.length == "undefined" || typeof array == "string") {
  209. array = [array]
  210. }
  211. for (var i = 0, len = array.length; i < len; i++) {
  212. if (fn.call(scope || array[i], array[i], i, array) === false) {
  213. return i
  214. }
  215. }
  216. },
  217. combine : function() {
  218. var as = arguments, l = as.length, r = [];
  219. for (var i = 0; i < l; i++) {
  220. var a = as[i];
  221. if (Ext.isArray(a)) {
  222. r = r.concat(a)
  223. } else {
  224. if (a.length !== undefined && !a.substr) {
  225. r = r.concat(Array.prototype.slice.call(a, 0))
  226. } else {
  227. r.push(a)
  228. }
  229. }
  230. }
  231. return r
  232. },
  233. escapeRe : function(s) {
  234. return s.replace(/([.*+?^${}()|[\]\/\\])/g, "\\$1")
  235. },
  236. callback : function(cb, scope, args, delay) {
  237. if (typeof cb == "function") {
  238. if (delay) {
  239. cb.defer(delay, scope, args || [])
  240. } else {
  241. cb.apply(scope, args || [])
  242. }
  243. }
  244. },
  245. getDom : function(el) {
  246. if (!el || !document) {
  247. return null
  248. }
  249. return el.dom ? el.dom : (typeof el == "string" ? document
  250. .getElementById(el) : el)
  251. },
  252. getDoc : function() {
  253. return Ext.get(document)
  254. },
  255. getBody : function() {
  256. return Ext.get(document.body || document.documentElement)
  257. },
  258. getCmp : function(id) {
  259. return Ext.ComponentMgr.get(id)
  260. },
  261. num : function(v, defaultValue) {
  262. if (typeof v != "number") {
  263. return defaultValue
  264. }
  265. return v
  266. },
  267. destroy : function() {
  268. for (var i = 0, a = arguments, len = a.length; i < len; i++) {
  269. var as = a[i];
  270. if (as) {
  271. if (typeof as.destroy == "function") {
  272. as.destroy()
  273. } else {
  274. if (as.dom) {
  275. as.removeAllListeners();
  276. as.remove()
  277. }
  278. }
  279. }
  280. }
  281. },
  282. removeNode : isIE ? function() {
  283. var d;
  284. return function(n) {
  285. if (n && n.tagName != "BODY") {
  286. d = d || document.createElement("div");
  287. d.appendChild(n);
  288. d.innerHTML = ""
  289. }
  290. }
  291. }() : function(n) {
  292. if (n && n.parentNode && n.tagName != "BODY") {
  293. n.parentNode.removeChild(n)
  294. }
  295. },
  296. type : function(o) {
  297. if (o === undefined || o === null) {
  298. return false
  299. }
  300. if (o.htmlElement) {
  301. return "element"
  302. }
  303. var t = typeof o;
  304. if (t == "object" && o.nodeName) {
  305. switch (o.nodeType) {
  306. case 1 :
  307. return "element";
  308. case 3 :
  309. return (/\S/).test(o.nodeValue)
  310. ? "textnode"
  311. : "whitespace"
  312. }
  313. }
  314. if (t == "object" || t == "function") {
  315. switch (o.constructor) {
  316. case Array :
  317. return "array";
  318. case RegExp :
  319. return "regexp"
  320. }
  321. if (typeof o.length == "number" && typeof o.item == "function") {
  322. return "nodelist"
  323. }
  324. }
  325. return t
  326. },
  327. isEmpty : function(v, allowBlank) {
  328. return v === null || v === undefined
  329. || (!allowBlank ? v === "" : false)
  330. },
  331. value : function(v, defaultValue, allowBlank) {
  332. return Ext.isEmpty(v, allowBlank) ? defaultValue : v
  333. },
  334. isArray : function(v) {
  335. return v && typeof v.pop == "function"
  336. },
  337. isDate : function(v) {
  338. return v && typeof v.getFullYear == "function"
  339. },
  340. isOpera : isOpera,
  341. isSafari : isSafari,
  342. isSafari3 : isSafari3,
  343. isSafari2 : isSafari && !isSafari3,
  344. isIE : isIE,
  345. isIE6 : isIE && !isIE7,
  346. isIE7 : isIE7,
  347. isGecko : isGecko,
  348. isBorderBox : isBorderBox,
  349. isLinux : isLinux,
  350. isWindows : isWindows,
  351. isMac : isMac,
  352. isAir : isAir,
  353. useShims : ((isIE && !isIE7) || (isGecko && isMac))
  354. });
  355. Ext.ns = Ext.namespace
  356. })();
  357. Ext.ns("Ext", "Ext.util", "Ext.grid", "Ext.dd", "Ext.tree", "Ext.data",
  358. "Ext.form", "Ext.menu", "Ext.state", "Ext.lib", "Ext.layout",
  359. "Ext.app", "Ext.ux");
  360. Ext.apply(Function.prototype, {
  361. createCallback : function() {
  362. var A = arguments;
  363. var B = this;
  364. return function() {
  365. return B.apply(window, A)
  366. }
  367. },
  368. createDelegate : function(C, B, A) {
  369. var D = this;
  370. return function() {
  371. var F = B || arguments;
  372. if (A === true) {
  373. F = Array.prototype.slice.call(arguments, 0);
  374. F = F.concat(B)
  375. } else {
  376. if (typeof A == "number") {
  377. F = Array.prototype.slice.call(arguments, 0);
  378. var E = [A, 0].concat(B);
  379. Array.prototype.splice.apply(F, E)
  380. }
  381. }
  382. return D.apply(C || window, F)
  383. }
  384. },
  385. defer : function(C, E, B, A) {
  386. var D = this.createDelegate(E, B, A);
  387. if (C) {
  388. return setTimeout(D, C)
  389. }
  390. D();
  391. return 0
  392. },
  393. createSequence : function(B, A) {
  394. if (typeof B != "function") {
  395. return this
  396. }
  397. var C = this;
  398. return function() {
  399. var D = C.apply(this || window, arguments);
  400. B.apply(A || this || window, arguments);
  401. return D
  402. }
  403. },
  404. createInterceptor : function(B, A) {
  405. if (typeof B != "function") {
  406. return this
  407. }
  408. var C = this;
  409. return function() {
  410. B.target = this;
  411. B.method = C;
  412. if (B.apply(A || this || window, arguments) === false) {
  413. return
  414. }
  415. return C.apply(this || window, arguments)
  416. }
  417. }
  418. });
  419. Ext.applyIf(String, {
  420. escape : function(A) {
  421. return A.replace(/('|\\)/g, "\\$1")
  422. },
  423. leftPad : function(D, B, C) {
  424. var A = new String(D);
  425. if (!C) {
  426. C = " "
  427. }
  428. while (A.length < B) {
  429. A = C + A
  430. }
  431. return A.toString()
  432. },
  433. format : function(B) {
  434. var A = Array.prototype.slice.call(arguments, 1);
  435. return B.replace(/\{(\d+)\}/g, function(C, D) {
  436. return A[D]
  437. })
  438. }
  439. });
  440. String.prototype.toggle = function(B, A) {
  441. return this == B ? A : B
  442. };
  443. String.prototype.trim = function() {
  444. var A = /^\s+|\s+$/g;
  445. return function() {
  446. return this.replace(A, "")
  447. }
  448. }();
  449. Ext.applyIf(Number.prototype, {
  450. constrain : function(B, A) {
  451. return Math.min(Math.max(this, B), A)
  452. }
  453. });
  454. Ext.applyIf(Array.prototype, {
  455. indexOf : function(C) {
  456. for (var B = 0, A = this.length; B < A; B++) {
  457. if (this[B] == C) {
  458. return B
  459. }
  460. }
  461. return -1
  462. },
  463. remove : function(B) {
  464. var A = this.indexOf(B);
  465. if (A != -1) {
  466. this.splice(A, 1)
  467. }
  468. return this
  469. }
  470. });
  471. Date.prototype.getElapsed = function(A) {
  472. return Math.abs((A || new Date()).getTime() - this.getTime())
  473. };
  474. (function() {
  475. var B;
  476. Ext.lib.Dom = {
  477. getViewWidth : function(E) {
  478. return E ? this.getDocumentWidth() : this.getViewportWidth()
  479. },
  480. getViewHeight : function(E) {
  481. return E ? this.getDocumentHeight() : this.getViewportHeight()
  482. },
  483. getDocumentHeight : function() {
  484. var E = (document.compatMode != "CSS1Compat")
  485. ? document.body.scrollHeight
  486. : document.documentElement.scrollHeight;
  487. return Math.max(E, this.getViewportHeight())
  488. },
  489. getDocumentWidth : function() {
  490. var E = (document.compatMode != "CSS1Compat")
  491. ? document.body.scrollWidth
  492. : document.documentElement.scrollWidth;
  493. return Math.max(E, this.getViewportWidth())
  494. },
  495. getViewportHeight : function() {
  496. if (Ext.isIE) {
  497. return Ext.isStrict
  498. ? document.documentElement.clientHeight
  499. : document.body.clientHeight
  500. } else {
  501. return self.innerHeight
  502. }
  503. },
  504. getViewportWidth : function() {
  505. if (Ext.isIE) {
  506. return Ext.isStrict
  507. ? document.documentElement.clientWidth
  508. : document.body.clientWidth
  509. } else {
  510. return self.innerWidth
  511. }
  512. },
  513. isAncestor : function(F, G) {
  514. F = Ext.getDom(F);
  515. G = Ext.getDom(G);
  516. if (!F || !G) {
  517. return false
  518. }
  519. if (F.contains && !Ext.isSafari) {
  520. return F.contains(G)
  521. } else {
  522. if (F.compareDocumentPosition) {
  523. return !!(F.compareDocumentPosition(G) & 16)
  524. } else {
  525. var E = G.parentNode;
  526. while (E) {
  527. if (E == F) {
  528. return true
  529. } else {
  530. if (!E.tagName || E.tagName.toUpperCase() == "HTML") {
  531. return false
  532. }
  533. }
  534. E = E.parentNode
  535. }
  536. return false
  537. }
  538. }
  539. },
  540. getRegion : function(E) {
  541. return Ext.lib.Region.getRegion(E)
  542. },
  543. getY : function(E) {
  544. return this.getXY(E)[1]
  545. },
  546. getX : function(E) {
  547. return this.getXY(E)[0]
  548. },
  549. getXY : function(G) {
  550. var F, K, M, N, J = (document.body || document.documentElement);
  551. G = Ext.getDom(G);
  552. if (G == J) {
  553. return [0, 0]
  554. }
  555. if (G.getBoundingClientRect) {
  556. M = G.getBoundingClientRect();
  557. N = C(document).getScroll();
  558. return [M.left + N.left, M.top + N.top]
  559. }
  560. var O = 0, L = 0;
  561. F = G;
  562. var E = C(G).getStyle("position") == "absolute";
  563. while (F) {
  564. O += F.offsetLeft;
  565. L += F.offsetTop;
  566. if (!E && C(F).getStyle("position") == "absolute") {
  567. E = true
  568. }
  569. if (Ext.isGecko) {
  570. K = C(F);
  571. var P = parseInt(K.getStyle("borderTopWidth"), 10) || 0;
  572. var H = parseInt(K.getStyle("borderLeftWidth"), 10) || 0;
  573. O += H;
  574. L += P;
  575. if (F != G && K.getStyle("overflow") != "visible") {
  576. O += H;
  577. L += P
  578. }
  579. }
  580. F = F.offsetParent
  581. }
  582. if (Ext.isSafari && E) {
  583. O -= J.offsetLeft;
  584. L -= J.offsetTop
  585. }
  586. if (Ext.isGecko && !E) {
  587. var I = C(J);
  588. O += parseInt(I.getStyle("borderLeftWidth"), 10) || 0;
  589. L += parseInt(I.getStyle("borderTopWidth"), 10) || 0
  590. }
  591. F = G.parentNode;
  592. while (F && F != J) {
  593. if (!Ext.isOpera
  594. || (F.tagName != "TR" && C(F).getStyle("display") != "inline")) {
  595. O -= F.scrollLeft;
  596. L -= F.scrollTop
  597. }
  598. F = F.parentNode
  599. }
  600. return [O, L]
  601. },
  602. setXY : function(E, F) {
  603. E = Ext.fly(E, "_setXY");
  604. E.position();
  605. var G = E.translatePoints(F);
  606. if (F[0] !== false) {
  607. E.dom.style.left = G.left + "px"
  608. }
  609. if (F[1] !== false) {
  610. E.dom.style.top = G.top + "px"
  611. }
  612. },
  613. setX : function(F, E) {
  614. this.setXY(F, [E, false])
  615. },
  616. setY : function(E, F) {
  617. this.setXY(E, [false, F])
  618. }
  619. };
  620. Ext.lib.Event = function() {
  621. var F = false;
  622. var G = [];
  623. var K = [];
  624. var I = 0;
  625. var H = [];
  626. var E = 0;
  627. var J = null;
  628. return {
  629. POLL_RETRYS : 200,
  630. POLL_INTERVAL : 20,
  631. EL : 0,
  632. TYPE : 1,
  633. FN : 2,
  634. WFN : 3,
  635. OBJ : 3,
  636. ADJ_SCOPE : 4,
  637. _interval : null,
  638. startInterval : function() {
  639. if (!this._interval) {
  640. var L = this;
  641. var M = function() {
  642. L._tryPreloadAttach()
  643. };
  644. this._interval = setInterval(M, this.POLL_INTERVAL)
  645. }
  646. },
  647. onAvailable : function(N, L, O, M) {
  648. H.push({
  649. id : N,
  650. fn : L,
  651. obj : O,
  652. override : M,
  653. checkReady : false
  654. });
  655. I = this.POLL_RETRYS;
  656. this.startInterval()
  657. },
  658. addListener : function(Q, M, P) {
  659. Q = Ext.getDom(Q);
  660. if (!Q || !P) {
  661. return false
  662. }
  663. if ("unload" == M) {
  664. K[K.length] = [Q, M, P];
  665. return true
  666. }
  667. var O = function(R) {
  668. return typeof Ext != "undefined" ? P(Ext.lib.Event
  669. .getEvent(R)) : false
  670. };
  671. var L = [Q, M, P, O];
  672. var N = G.length;
  673. G[N] = L;
  674. this.doAdd(Q, M, O, false);
  675. return true
  676. },
  677. removeListener : function(S, O, R) {
  678. var Q, N;
  679. S = Ext.getDom(S);
  680. if (!R) {
  681. return this.purgeElement(S, false, O)
  682. }
  683. if ("unload" == O) {
  684. for (Q = 0, N = K.length; Q < N; Q++) {
  685. var M = K[Q];
  686. if (M && M[0] == S && M[1] == O && M[2] == R) {
  687. K.splice(Q, 1);
  688. return true
  689. }
  690. }
  691. return false
  692. }
  693. var L = null;
  694. var P = arguments[3];
  695. if ("undefined" == typeof P) {
  696. P = this._getCacheIndex(S, O, R)
  697. }
  698. if (P >= 0) {
  699. L = G[P]
  700. }
  701. if (!S || !L) {
  702. return false
  703. }
  704. this.doRemove(S, O, L[this.WFN], false);
  705. delete G[P][this.WFN];
  706. delete G[P][this.FN];
  707. G.splice(P, 1);
  708. return true
  709. },
  710. getTarget : function(N, M) {
  711. N = N.browserEvent || N;
  712. var L = N.target || N.srcElement;
  713. return this.resolveTextNode(L)
  714. },
  715. resolveTextNode : function(L) {
  716. if (Ext.isSafari && L && 3 == L.nodeType) {
  717. return L.parentNode
  718. } else {
  719. return L
  720. }
  721. },
  722. getPageX : function(M) {
  723. M = M.browserEvent || M;
  724. var L = M.pageX;
  725. if (!L && 0 !== L) {
  726. L = M.clientX || 0;
  727. if (Ext.isIE) {
  728. L += this.getScroll()[1]
  729. }
  730. }
  731. return L
  732. },
  733. getPageY : function(L) {
  734. L = L.browserEvent || L;
  735. var M = L.pageY;
  736. if (!M && 0 !== M) {
  737. M = L.clientY || 0;
  738. if (Ext.isIE) {
  739. M += this.getScroll()[0]
  740. }
  741. }
  742. return M
  743. },
  744. getXY : function(L) {
  745. L = L.browserEvent || L;
  746. return [this.getPageX(L), this.getPageY(L)]
  747. },
  748. getRelatedTarget : function(M) {
  749. M = M.browserEvent || M;
  750. var L = M.relatedTarget;
  751. if (!L) {
  752. if (M.type == "mouseout") {
  753. L = M.toElement
  754. } else {
  755. if (M.type == "mouseover") {
  756. L = M.fromElement
  757. }
  758. }
  759. }
  760. return this.resolveTextNode(L)
  761. },
  762. getTime : function(N) {
  763. N = N.browserEvent || N;
  764. if (!N.time) {
  765. var M = new Date().getTime();
  766. try {
  767. N.time = M
  768. } catch (L) {
  769. this.lastError = L;
  770. return M
  771. }
  772. }
  773. return N.time
  774. },
  775. stopEvent : function(L) {
  776. this.stopPropagation(L);
  777. this.preventDefault(L)
  778. },
  779. stopPropagation : function(L) {
  780. L = L.browserEvent || L;
  781. if (L.stopPropagation) {
  782. L.stopPropagation()
  783. } else {
  784. L.cancelBubble = true
  785. }
  786. },
  787. preventDefault : function(L) {
  788. L = L.browserEvent || L;
  789. if (L.preventDefault) {
  790. L.preventDefault()
  791. } else {
  792. L.returnValue = false
  793. }
  794. },
  795. getEvent : function(M) {
  796. var L = M || window.event;
  797. if (!L) {
  798. var N = this.getEvent.caller;
  799. while (N) {
  800. L = N.arguments[0];
  801. if (L && Event == L.constructor) {
  802. break
  803. }
  804. N = N.caller
  805. }
  806. }
  807. return L
  808. },
  809. getCharCode : function(L) {
  810. L = L.browserEvent || L;
  811. return L.charCode || L.keyCode || 0
  812. },
  813. _getCacheIndex : function(Q, N, P) {
  814. for (var O = 0, M = G.length; O < M; ++O) {
  815. var L = G[O];
  816. if (L && L[this.FN] == P && L[this.EL] == Q
  817. && L[this.TYPE] == N) {
  818. return O
  819. }
  820. }
  821. return -1
  822. },
  823. elCache : {},
  824. getEl : function(L) {
  825. return document.getElementById(L)
  826. },
  827. clearCache : function() {
  828. },
  829. _load : function(M) {
  830. F = true;
  831. var L = Ext.lib.Event;
  832. if (Ext.isIE) {
  833. L.doRemove(window, "load", L._load)
  834. }
  835. },
  836. _tryPreloadAttach : function() {
  837. if (this.locked) {
  838. return false
  839. }
  840. this.locked = true;
  841. var R = !F;
  842. if (!R) {
  843. R = (I > 0)
  844. }
  845. var Q = [];
  846. for (var M = 0, L = H.length; M < L; ++M) {
  847. var P = H[M];
  848. if (P) {
  849. var O = this.getEl(P.id);
  850. if (O) {
  851. if (!P.checkReady || F || O.nextSibling
  852. || (document && document.body)) {
  853. var N = O;
  854. if (P.override) {
  855. if (P.override === true) {
  856. N = P.obj
  857. } else {
  858. N = P.override
  859. }
  860. }
  861. P.fn.call(N, P.obj);
  862. H[M] = null
  863. }
  864. } else {
  865. Q.push(P)
  866. }
  867. }
  868. }
  869. I = (Q.length === 0) ? 0 : I - 1;
  870. if (R) {
  871. this.startInterval()
  872. } else {
  873. clearInterval(this._interval);
  874. this._interval = null
  875. }
  876. this.locked = false;
  877. return true
  878. },
  879. purgeElement : function(P, Q, N) {
  880. var R = this.getListeners(P, N);
  881. if (R) {
  882. for (var O = 0, L = R.length; O < L; ++O) {
  883. var M = R[O];
  884. this.removeListener(P, M.type, M.fn)
  885. }
  886. }
  887. if (Q && P && P.childNodes) {
  888. for (O = 0, L = P.childNodes.length; O < L; ++O) {
  889. this.purgeElement(P.childNodes[O], Q, N)
  890. }
  891. }
  892. },
  893. getListeners : function(M, R) {
  894. var P = [], L;
  895. if (!R) {
  896. L = [G, K]
  897. } else {
  898. if (R == "unload") {
  899. L = [K]
  900. } else {
  901. L = [G]
  902. }
  903. }
  904. for (var O = 0; O < L.length; ++O) {
  905. var T = L[O];
  906. if (T && T.length > 0) {
  907. for (var Q = 0, S = T.length; Q < S; ++Q) {
  908. var N = T[Q];
  909. if (N && N[this.EL] === M
  910. && (!R || R === N[this.TYPE])) {
  911. P.push({
  912. type : N[this.TYPE],
  913. fn : N[this.FN],
  914. obj : N[this.OBJ],
  915. adjust : N[this.ADJ_SCOPE],
  916. index : Q
  917. })
  918. }
  919. }
  920. }
  921. }
  922. return (P.length) ? P : null
  923. },
  924. _unload : function(S) {
  925. var R = Ext.lib.Event, P, O, M, L, N;
  926. for (P = 0, L = K.length; P < L; ++P) {
  927. M = K[P];
  928. if (M) {
  929. var Q = window;
  930. if (M[R.ADJ_SCOPE]) {
  931. if (M[R.ADJ_SCOPE] === true) {
  932. Q = M[R.OBJ]
  933. } else {
  934. Q = M[R.ADJ_SCOPE]
  935. }
  936. }
  937. M[R.FN].call(Q, R.getEvent(S), M[R.OBJ]);
  938. K[P] = null;
  939. M = null;
  940. Q = null
  941. }
  942. }
  943. K = null;
  944. if (G && G.length > 0) {
  945. O = G.length;
  946. while (O) {
  947. N = O - 1;
  948. M = G[N];
  949. if (M) {
  950. R.removeListener(M[R.EL], M[R.TYPE], M[R.FN], N)
  951. }
  952. O = O - 1
  953. }
  954. M = null;
  955. R.clearCache()
  956. }
  957. R.doRemove(window, "unload", R._unload)
  958. },
  959. getScroll : function() {
  960. var L = document.documentElement, M = document.body;
  961. if (L && (L.scrollTop || L.scrollLeft)) {
  962. return [L.scrollTop, L.scrollLeft]
  963. } else {
  964. if (M) {
  965. return [M.scrollTop, M.scrollLeft]
  966. } else {
  967. return [0, 0]
  968. }
  969. }
  970. },
  971. doAdd : function() {
  972. if (window.addEventListener) {
  973. return function(O, M, N, L) {
  974. O.addEventListener(M, N, (L))
  975. }
  976. } else {
  977. if (window.attachEvent) {
  978. return function(O, M, N, L) {
  979. O.attachEvent("on" + M, N)
  980. }
  981. } else {
  982. return function() {
  983. }
  984. }
  985. }
  986. }(),
  987. doRemove : function() {
  988. if (window.removeEventListener) {
  989. return function(O, M, N, L) {
  990. O.removeEventListener(M, N, (L))
  991. }
  992. } else {
  993. if (window.detachEvent) {
  994. return function(N, L, M) {
  995. N.detachEvent("on" + L, M)
  996. }
  997. } else {
  998. return function() {
  999. }
  1000. }
  1001. }
  1002. }()
  1003. }
  1004. }();
  1005. var D = Ext.lib.Event;
  1006. D.on = D.addListener;
  1007. D.un = D.removeListener;
  1008. if (document && document.body) {
  1009. D._load()
  1010. } else {
  1011. D.doAdd(window, "load", D._load)
  1012. }
  1013. D.doAdd(window, "unload", D._unload);
  1014. D._tryPreloadAttach();
  1015. Ext.lib.Ajax = {
  1016. request : function(K, I, E, J, F) {
  1017. if (F) {
  1018. var G = F.headers;
  1019. if (G) {
  1020. for (var H in G) {
  1021. if (G.hasOwnProperty(H)) {
  1022. this.initHeader(H, G[H], false)
  1023. }
  1024. }
  1025. }
  1026. if (F.xmlData) {
  1027. this.initHeader("Content-Type", "text/xml", false);
  1028. K = "POST";
  1029. J = F.xmlData
  1030. } else {
  1031. if (F.jsonData) {
  1032. this.initHeader("Content-Type", "text/javascript",
  1033. false);
  1034. K = "POST";
  1035. J = typeof F.jsonData == "object" ? Ext
  1036. .encode(F.jsonData) : F.jsonData
  1037. }
  1038. }
  1039. }
  1040. return this.asyncRequest(K, I, E, J)
  1041. },
  1042. serializeForm : function(F) {
  1043. if (typeof F == "string") {
  1044. F = (document.getElementById(F) || document.forms[F])
  1045. }
  1046. var G, E, H, J, K = "", M = false;
  1047. for (var L = 0; L < F.elements.length; L++) {
  1048. G = F.elements[L];
  1049. J = F.elements[L].disabled;
  1050. E = F.elements[L].name;
  1051. H = F.elements[L].value;
  1052. if (!J && E) {
  1053. switch (G.type) {
  1054. case "select-one" :
  1055. case "select-multiple" :
  1056. for (var I = 0; I < G.options.length; I++) {
  1057. if (G.options[I].selected) {
  1058. if (Ext.isIE) {
  1059. K += encodeURIComponent(E)
  1060. + "="
  1061. + encodeURIComponent(G.options[I].attributes["value"].specified
  1062. ? G.options[I].value
  1063. : G.options[I].text)
  1064. + "&"
  1065. } else {
  1066. K += encodeURIComponent(E)
  1067. + "="
  1068. + encodeURIComponent(G.options[I]
  1069. .hasAttribute("value")
  1070. ? G.options[I].value
  1071. : G.options[I].text)
  1072. + "&"
  1073. }
  1074. }
  1075. }
  1076. break;
  1077. case "radio" :
  1078. case "checkbox" :
  1079. if (G.checked) {
  1080. K += encodeURIComponent(E) + "="
  1081. + encodeURIComponent(H) + "&"
  1082. }
  1083. break;
  1084. case "file" :
  1085. case undefined :
  1086. case "reset" :
  1087. case "button" :
  1088. break;
  1089. case "submit" :
  1090. if (M == false) {
  1091. K += encodeURIComponent(E) + "="
  1092. + encodeURIComponent(H) + "&";
  1093. M = true
  1094. }
  1095. break;
  1096. default :
  1097. K += encodeURIComponent(E) + "="
  1098. + encodeURIComponent(H) + "&";
  1099. break
  1100. }
  1101. }
  1102. }
  1103. K = K.substr(0, K.length - 1);
  1104. return K
  1105. },
  1106. headers : {},
  1107. hasHeaders : false,
  1108. useDefaultHeader : true,
  1109. defaultPostHeader : "application/x-www-form-urlencoded",
  1110. useDefaultXhrHeader : true,
  1111. defaultXhrHeader : "XMLHttpRequest",
  1112. hasDefaultHeaders : true,
  1113. defaultHeaders : {},
  1114. poll : {},
  1115. timeout : {},
  1116. pollInterval : 50,
  1117. transactionId : 0,
  1118. setProgId : function(E) {
  1119. this.activeX.unshift(E)
  1120. },
  1121. setDefaultPostHeader : function(E) {
  1122. this.useDefaultHeader = E
  1123. },
  1124. setDefaultXhrHeader : function(E) {
  1125. this.useDefaultXhrHeader = E
  1126. },
  1127. setPollingInterval : function(E) {
  1128. if (typeof E == "number" && isFinite(E)) {
  1129. this.pollInterval = E
  1130. }
  1131. },
  1132. createXhrObject : function(I) {
  1133. var H, E;
  1134. try {
  1135. E = new XMLHttpRequest();
  1136. H = {
  1137. conn : E,
  1138. tId : I
  1139. }
  1140. } catch (G) {
  1141. for (var F = 0; F < this.activeX.length; ++F) {
  1142. try {
  1143. E = new ActiveXObject(this.activeX[F]);
  1144. H = {
  1145. conn : E,
  1146. tId : I
  1147. };
  1148. break
  1149. } catch (G) {
  1150. }
  1151. }
  1152. } finally {
  1153. return H
  1154. }
  1155. },
  1156. getConnectionObject : function() {
  1157. var F;
  1158. var G = this.transactionId;
  1159. try {
  1160. F = this.createXhrObject(G);
  1161. if (F) {
  1162. this.transactionId++
  1163. }
  1164. } catch (E) {
  1165. } finally {
  1166. return F
  1167. }
  1168. },
  1169. asyncRequest : function(I, F, H, E) {
  1170. var G = this.getConnectionObject();
  1171. if (!G) {
  1172. return null
  1173. } else {
  1174. G.conn.open(I, F, true);
  1175. if (this.useDefaultXhrHeader) {
  1176. if (!this.defaultHeaders["X-Requested-With"]) {
  1177. this.initHeader("X-Requested-With",
  1178. this.defaultXhrHeader, true)
  1179. }
  1180. }
  1181. if (E && this.useDefaultHeader) {
  1182. this.initHeader("Content-Type", this.defaultPostHeader)
  1183. }
  1184. if (this.hasDefaultHeaders || this.hasHeaders) {
  1185. this.setHeader(G)
  1186. }
  1187. this.handleReadyState(G, H);
  1188. G.conn.send(E || null);
  1189. return G
  1190. }
  1191. },
  1192. handleReadyState : function(F, G) {
  1193. var E = this;
  1194. if (G && G.timeout) {
  1195. this.timeout[F.tId] = window.setTimeout(function() {
  1196. E.abort(F, G, true)
  1197. }, G.timeout)
  1198. }
  1199. this.poll[F.tId] = window.setInterval(function() {
  1200. if (F.conn && F.conn.readyState == 4) {
  1201. window.clearInterval(E.poll[F.tId]);
  1202. delete E.poll[F.tId];
  1203. if (G && G.timeout) {
  1204. window.clearTimeout(E.timeout[F.tId]);
  1205. delete E.timeout[F.tId]
  1206. }
  1207. E.handleTransactionResponse(F, G)
  1208. }
  1209. }, this.pollInterval)
  1210. },
  1211. handleTransactionResponse : function(I, J, E) {
  1212. if (!J) {
  1213. this.releaseObject(I);
  1214. return
  1215. }
  1216. var G, F;
  1217. try {
  1218. if (I.conn.status !== undefined && I.conn.status != 0) {
  1219. G = I.conn.status
  1220. } else {
  1221. G = 13030
  1222. }
  1223. } catch (H) {
  1224. G = 13030
  1225. }
  1226. if (G >= 200 && G < 300) {
  1227. F = this.createResponseObject(I, J.argument);
  1228. if (J.success) {
  1229. if (!J.scope) {
  1230. J.success(F)
  1231. } else {
  1232. J.success.apply(J.scope, [F])
  1233. }
  1234. }
  1235. } else {
  1236. switch (G) {
  1237. case 12002 :
  1238. case 12029 :
  1239. case 12030 :
  1240. case 12031 :
  1241. case 12152 :
  1242. case 13030 :
  1243. F = this.createExceptionObject(I.tId, J.argument, (E
  1244. ? E
  1245. : false));
  1246. if (J.failure) {
  1247. if (!J.scope) {
  1248. J.failure(F)
  1249. } else {
  1250. J.failure.apply(J.scope, [F])
  1251. }
  1252. }
  1253. break;
  1254. default :
  1255. F = this.createResponseObject(I, J.argument);
  1256. if (J.failure) {
  1257. if (!J.scope) {
  1258. J.failure(F)
  1259. } else {
  1260. J.failure.apply(J.scope, [F])
  1261. }
  1262. }
  1263. }
  1264. }
  1265. this.releaseObject(I);
  1266. F = null
  1267. },
  1268. createResponseObject : function(E, K) {
  1269. var H = {};
  1270. var M = {};
  1271. try {
  1272. var G = E.conn.getAllResponseHeaders();
  1273. var J = G.split("\n");
  1274. for (var I = 0; I < J.length; I++) {
  1275. var F = J[I].indexOf(":");
  1276. if (F != -1) {
  1277. M[J[I].substring(0, F)] = J[I].substring(F + 2)
  1278. }
  1279. }
  1280. } catch (L) {
  1281. }
  1282. H.tId = E.tId;
  1283. H.status = E.conn.status;
  1284. H.statusText = E.conn.statusText;
  1285. H.getResponseHeader = M;
  1286. H.getAllResponseHeaders = G;
  1287. H.responseText = E.conn.responseText;
  1288. H.responseXML = E.conn.responseXML;
  1289. if (typeof K !== undefined) {
  1290. H.argument = K
  1291. }
  1292. return H
  1293. },
  1294. createExceptionObject : function(L, H, E) {
  1295. var J = 0;
  1296. var K = "communication failure";
  1297. var G = -1;
  1298. var F = "transaction aborted";
  1299. var I = {};
  1300. I.tId = L;
  1301. if (E) {
  1302. I.status = G;
  1303. I.statusText = F
  1304. } else {
  1305. I.status = J;
  1306. I.statusText = K
  1307. }
  1308. if (H) {
  1309. I.argument = H
  1310. }
  1311. return I
  1312. },
  1313. initHeader : function(E, H, G) {
  1314. var F = (G) ? this.defaultHeaders : this.headers;
  1315. if (F[E] === undefined) {
  1316. F[E] = H
  1317. } else {
  1318. F[E] = H + "," + F[E]
  1319. }
  1320. if (G) {
  1321. this.hasDefaultHeaders = true
  1322. } else {
  1323. this.hasHeaders = true
  1324. }
  1325. },
  1326. setHeader : function(E) {
  1327. if (this.hasDefaultHeaders) {
  1328. for (var F in this.defaultHeaders) {
  1329. if (this.defaultHeaders.hasOwnProperty(F)) {
  1330. E.conn.setRequestHeader(F, this.defaultHeaders[F])
  1331. }
  1332. }
  1333. }
  1334. if (this.hasHeaders) {
  1335. for (var F in this.headers) {
  1336. if (this.headers.hasOwnProperty(F)) {
  1337. E.conn.setRequestHeader(F, this.headers[F])
  1338. }
  1339. }
  1340. this.headers = {};
  1341. this.hasHeaders = false
  1342. }
  1343. },
  1344. resetDefaultHeaders : function() {
  1345. delete this.defaultHeaders;
  1346. this.defaultHeaders = {};
  1347. this.hasDefaultHeaders = false
  1348. },
  1349. abort : function(F, G, E) {
  1350. if (this.isCallInProgress(F)) {
  1351. F.conn.abort();
  1352. window.clearInterval(this.poll[F.tId]);
  1353. delete this.poll[F.tId];
  1354. if (E) {
  1355. delete this.timeout[F.tId]
  1356. }
  1357. this.handleTransactionResponse(F, G, true);
  1358. return true
  1359. } else {
  1360. return false
  1361. }
  1362. },
  1363. isCallInProgress : function(E) {
  1364. if (E.conn) {
  1365. return E.conn.readyState != 4 && E.conn.readyState != 0
  1366. } else {
  1367. return false
  1368. }
  1369. },
  1370. releaseObject : function(E) {
  1371. E.conn = null;
  1372. E = null
  1373. },
  1374. activeX : ["MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"]
  1375. };
  1376. Ext.lib.Region = function(G, H, E, F) {
  1377. this.top = G;
  1378. this[1] = G;
  1379. this.right = H;
  1380. this.bottom = E;
  1381. this.left = F;
  1382. this[0] = F
  1383. };
  1384. Ext.lib.Region.prototype = {
  1385. contains : function(E) {
  1386. return (E.left >= this.left && E.right <= this.right
  1387. && E.top >= this.top && E.bottom <= this.bottom)
  1388. },
  1389. getArea : function() {
  1390. return ((this.bottom - this.top) * (this.right - this.left))
  1391. },
  1392. intersect : function(I) {
  1393. var G = Math.max(this.top, I.top);
  1394. var H = Math.min(this.right, I.right);
  1395. var E = Math.min(this.bottom, I.bottom);
  1396. var F = Math.max(this.left, I.left);
  1397. if (E >= G && H >= F) {
  1398. return new Ext.lib.Region(G, H, E, F)
  1399. } else {
  1400. return null
  1401. }
  1402. },
  1403. union : function(I) {
  1404. var G = Math.min(this.top, I.top);
  1405. var H = Math.max(this.right, I.right);
  1406. var E = Math.max(this.bottom, I.bottom);
  1407. var F = Math.min(this.left, I.left);
  1408. return new Ext.lib.Region(G, H, E, F)
  1409. },
  1410. constrainTo : function(E) {
  1411. this.top = this.top.constrain(E.top, E.bottom);
  1412. this.bottom = this.bottom.constrain(E.top, E.bottom);
  1413. this.left = this.left.constrain(E.left, E.right);
  1414. this.right = this.right.constrain(E.left, E.right);
  1415. return this
  1416. },
  1417. adjust : function(G, F, E, H) {
  1418. this.top += G;
  1419. this.left += F;
  1420. this.right += H;
  1421. this.bottom += E;
  1422. return this
  1423. }
  1424. };
  1425. Ext.lib.Region.getRegion = function(H) {
  1426. var J = Ext.lib.Dom.getXY(H);
  1427. var G = J[1];
  1428. var I = J[0] + H.offsetWidth;
  1429. var E = J[1] + H.offsetHeight;
  1430. var F = J[0];
  1431. return new Ext.lib.Region(G, I, E, F)
  1432. };
  1433. Ext.lib.Point = function(E, F) {
  1434. if (Ext.isArray(E)) {
  1435. F = E[1];
  1436. E = E[0]
  1437. }
  1438. this.x = this.right = this.left = this[0] = E;
  1439. this.y = this.top = this.bottom = this[1] = F
  1440. };
  1441. Ext.lib.Point.prototype = new Ext.lib.Region();
  1442. Ext.lib.Anim = {
  1443. scroll : function(H, F, I, J, E, G) {
  1444. return this.run(H, F, I, J, E, G, Ext.lib.Scroll)
  1445. },
  1446. motion : function(H, F, I, J, E, G) {
  1447. return this.run(H, F, I, J, E, G, Ext.lib.Motion)
  1448. },
  1449. color : function(H, F, I, J, E, G) {
  1450. return this.run(H, F, I, J, E, G, Ext.lib.ColorAnim)
  1451. },
  1452. run : function(I, F, K, L, E, H, G) {
  1453. G = G || Ext.lib.AnimBase;
  1454. if (typeof L == "string") {
  1455. L = Ext.lib.Easing[L]
  1456. }
  1457. var J = new G(I, F, K, L);
  1458. J.animateX(function() {
  1459. Ext.callback(E, H)
  1460. });
  1461. return J
  1462. }
  1463. };
  1464. function C(E) {
  1465. if (!B) {
  1466. B = new Ext.Element.Flyweight()
  1467. }
  1468. B.dom = E;
  1469. return B
  1470. }
  1471. if (Ext.isIE) {
  1472. function A() {
  1473. var E = Function.prototype;
  1474. delete E.createSequence;
  1475. delete E.defer;
  1476. delete E.createDelegate;
  1477. delete E.createCallback;
  1478. delete E.createInterceptor;
  1479. window.detachEvent("onunload", A)
  1480. }
  1481. window.attachEvent("onunload", A)
  1482. }
  1483. Ext.lib.AnimBase = function(F, E, G, H) {
  1484. if (F) {
  1485. this.init(F, E, G, H)
  1486. }
  1487. };
  1488. Ext.lib.AnimBase.prototype = {
  1489. toString : function() {
  1490. var E = this.getEl();
  1491. var F = E.id || E.tagName;
  1492. return ("Anim " + F)
  1493. },
  1494. patterns : {
  1495. noNegatives : /width|height|opacity|padding/i,
  1496. offsetAttribute : /^((width|height)|(top|left))$/,
  1497. defaultUnit : /width|height|top$|bottom$|left$|right$/i,
  1498. offsetUnit : /\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i
  1499. },
  1500. doMethod : function(E, G, F) {
  1501. return this.method(this.currentFrame, G, F - G, this.totalFrames)
  1502. },
  1503. setAttribute : function(E, G, F) {
  1504. if (this.patterns.noNegatives.test(E)) {
  1505. G = (G > 0) ? G : 0
  1506. }
  1507. Ext.fly(this.getEl(), "_anim").setStyle(E, G + F)
  1508. },
  1509. getAttribute : function(E) {
  1510. var G = this.getEl();
  1511. var I = C(G).getStyle(E);
  1512. if (I !== "auto" && !this.patterns.offsetUnit.test(I)) {
  1513. return parseFloat(I)
  1514. }
  1515. var F = this.patterns.offsetAttribute.exec(E) || [];
  1516. var J = !!(F[3]);
  1517. var H = !!(F[2]);
  1518. if (H || (C(G).getStyle("position") == "absolute" && J)) {
  1519. I = G["offset" + F[0].charAt(0).toUpperCase() + F[0].substr(1)]
  1520. } else {
  1521. I = 0
  1522. }
  1523. return I
  1524. },
  1525. getDefaultUnit : function(E) {
  1526. if (this.patterns.defaultUnit.test(E)) {
  1527. return "px"
  1528. }
  1529. return ""
  1530. },
  1531. animateX : function(G, E) {
  1532. var F = function() {
  1533. this.onComplete.removeListener(F);
  1534. if (typeof G == "function") {
  1535. G.call(E || this, this)
  1536. }
  1537. };
  1538. this.onComplete.addListener(F, this);
  1539. this.animate()
  1540. },
  1541. setRuntimeAttribute : function(F) {
  1542. var K;
  1543. var G;
  1544. var H = this.attributes;
  1545. this.runtimeAttributes[F] = {};
  1546. var J = function(L) {
  1547. return (typeof L !== "undefined")
  1548. };
  1549. if (!J(H[F]["to"]) && !J(H[F]["by"])) {
  1550. return false
  1551. }
  1552. K = (J(H[F]["from"])) ? H[F]["from"] : this.getAttribute(F);
  1553. if (J(H[F]["to"])) {
  1554. G = H[F]["to"]
  1555. } else {
  1556. if (J(H[F]["by"])) {
  1557. if (K.constructor == Array) {
  1558. G = [];
  1559. for (var I = 0, E = K.length; I < E; ++I) {
  1560. G[I] = K[I] + H[F]["by"][I]
  1561. }
  1562. } else {
  1563. G = K + H[F]["by"]
  1564. }
  1565. }
  1566. }
  1567. this.runtimeAttributes[F].start = K;
  1568. this.runtimeAttributes[F].end = G;
  1569. this.runtimeAttributes[F].unit = (J(H[F].unit))
  1570. ? H[F]["unit"]
  1571. : this.getDefaultUnit(F)
  1572. },
  1573. init : function(G, L, K, E) {
  1574. var F = false;
  1575. var H = null;
  1576. var J = 0;
  1577. G = Ext.getDom(G);
  1578. this.attributes = L || {};
  1579. this.duration = K || 1;
  1580. this.method = E || Ext.lib.Easing.easeNone;
  1581. this.useSeconds = true;
  1582. this.currentFrame = 0;
  1583. this.totalFrames = Ext.lib.AnimMgr.fps;
  1584. this.getEl = function() {
  1585. return G
  1586. };
  1587. this.isAnimated = function() {
  1588. return F
  1589. };
  1590. this.getStartTime = function() {
  1591. return H
  1592. };
  1593. this.runtimeAttributes = {};
  1594. this.animate = function() {
  1595. if (this.isAnimated()) {
  1596. return false
  1597. }
  1598. this.currentFrame = 0;
  1599. this.totalFrames = (this.useSeconds)
  1600. ? Math.ceil(Ext.lib.AnimMgr.fps * this.duration)
  1601. : this.duration;
  1602. Ext.lib.AnimMgr.registerElement(this)
  1603. };
  1604. this.stop = function(O) {
  1605. if (O) {
  1606. this.currentFrame = this.totalFrames;
  1607. this._onTween.fire()
  1608. }
  1609. Ext.lib.AnimMgr.stop(this)
  1610. };
  1611. var N = function() {
  1612. this.onStart.fire();
  1613. this.runtimeAttributes = {};
  1614. for (var O in this.attributes) {
  1615. this.setRuntimeAttribute(O)
  1616. }
  1617. F = true;
  1618. J = 0;
  1619. H = new Date()
  1620. };
  1621. var M = function() {
  1622. var Q = {
  1623. duration : new Date() - this.getStartTime(),
  1624. currentFrame : this.currentFrame
  1625. };
  1626. Q.toString = function() {
  1627. return ("duration: " + Q.duration + ", currentFrame: " + Q.currentFrame)
  1628. };
  1629. this.onTween.fire(Q);
  1630. var P = this.runtimeAttributes;
  1631. for (var O in P) {
  1632. this.setAttribute(O,
  1633. this.doMethod(O, P[O].start, P[O].end), P[O].unit)
  1634. }
  1635. J += 1
  1636. };
  1637. var I = function() {
  1638. var O = (new Date() - H) / 1000;
  1639. var P = {
  1640. duration : O,
  1641. frames : J,
  1642. fps : J / O
  1643. };
  1644. P.toString = function() {
  1645. return ("duration: " + P.duration + ", frames: " + P.frames
  1646. + ", fps: " + P.fps)
  1647. };
  1648. F = false;
  1649. J = 0;
  1650. this.onComplete.fire(P)
  1651. };
  1652. this._onStart = new Ext.util.Event(this);
  1653. this.onStart = new Ext.util.Event(this);
  1654. this.onTween = new Ext.util.Event(this);
  1655. this._onTween = new Ext.util.Event(this);
  1656. this.onComplete = new Ext.util.Event(this);
  1657. this._onComplete = new Ext.util.Event(this);
  1658. this._onStart.addListener(N);
  1659. this._onTween.addListener(M);
  1660. this._onComplete.addListener(I)
  1661. }
  1662. };
  1663. Ext.lib.AnimMgr = new function() {
  1664. var G = null;
  1665. var F = [];
  1666. var E = 0;
  1667. this.fps = 1000;
  1668. this.delay = 1;
  1669. this.registerElement = function(J) {
  1670. F[F.length] = J;
  1671. E += 1;
  1672. J._onStart.fire();
  1673. this.start()
  1674. };
  1675. this.unRegister = function(K, J) {
  1676. K._onComplete.fire();
  1677. J = J || I(K);
  1678. if (J != -1) {
  1679. F.splice(J, 1)
  1680. }
  1681. E -= 1;
  1682. if (E <= 0) {
  1683. this.stop()
  1684. }
  1685. };
  1686. this.start = function() {
  1687. if (G === null) {
  1688. G = setInterval(this.run, this.delay)
  1689. }
  1690. };
  1691. this.stop = function(L) {
  1692. if (!L) {
  1693. clearInterval(G);
  1694. for (var K = 0, J = F.length; K < J; ++K) {
  1695. if (F[0].isAnimated()) {
  1696. this.unRegister(F[0], 0)
  1697. }
  1698. }
  1699. F = [];
  1700. G = null;
  1701. E = 0
  1702. } else {
  1703. this.unRegister(L)
  1704. }
  1705. };
  1706. this.run = function() {
  1707. for (var L = 0, J = F.length; L < J; ++L) {
  1708. var K = F[L];
  1709. if (!K || !K.isAnimated()) {
  1710. continue
  1711. }
  1712. if (K.currentFrame < K.totalFrames || K.totalFrames === null) {
  1713. K.currentFrame += 1;
  1714. if (K.useSeconds) {
  1715. H(K)
  1716. }
  1717. K._onTween.fire()
  1718. } else {
  1719. Ext.lib.AnimMgr.stop(K, L)
  1720. }
  1721. }
  1722. };
  1723. var I = function(L) {
  1724. for (var K = 0, J = F.length; K < J; ++K) {
  1725. if (F[K] == L) {
  1726. return K
  1727. }
  1728. }
  1729. return -1
  1730. };
  1731. var H = function(K) {
  1732. var N = K.totalFrames;
  1733. var M = K.currentFrame;
  1734. var L = (K.currentFrame * K.duration * 1000 / K.totalFrames);
  1735. var J = (new Date() - K.getStartTime());
  1736. var O = 0;
  1737. if (J < K.duration * 1000) {
  1738. O = Math.round((J / L - 1) * K.currentFrame)
  1739. } else {
  1740. O = N - (M + 1)
  1741. }
  1742. if (O > 0 && isFinite(O)) {
  1743. if (K.currentFrame + O >= N) {
  1744. O = N - (M + 1)
  1745. }
  1746. K.currentFrame += O
  1747. }
  1748. }
  1749. };
  1750. Ext.lib.Bezier = new function() {
  1751. this.getPosition = function(I, H) {
  1752. var J = I.length;
  1753. var G = [];
  1754. for (var F = 0; F < J; ++F) {
  1755. G[F] = [I[F][0], I[F][1]]
  1756. }
  1757. for (var E = 1; E < J; ++E) {
  1758. for (F = 0; F < J - E; ++F) {
  1759. G[F][0] = (1 - H) * G[F][0] + H * G[parseInt(F + 1, 10)][0];
  1760. G[F][1] = (1 - H) * G[F][1] + H * G[parseInt(F + 1, 10)][1]
  1761. }
  1762. }
  1763. return [G[0][0], G[0][1]]
  1764. }
  1765. };
  1766. (function() {
  1767. Ext.lib.ColorAnim = function(I, H, J, K) {
  1768. Ext.lib.ColorAnim.superclass.constructor.call(this, I, H, J, K)
  1769. };
  1770. Ext.extend(Ext.lib.ColorAnim, Ext.lib.AnimBase);
  1771. var F = Ext.lib;
  1772. var G = F.ColorAnim.superclass;
  1773. var E = F.ColorAnim.prototype;
  1774. E.toString = function() {
  1775. var H = this.getEl();
  1776. var I = H.id || H.tagName;
  1777. return ("ColorAnim " + I)
  1778. };
  1779. E.patterns.color = /color$/i;
  1780. E.patterns.rgb = /^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i;
  1781. E.patterns.hex = /^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i;
  1782. E.patterns.hex3 = /^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i;
  1783. E.patterns.transparent = /^transparent|rgba\(0, 0, 0, 0\)$/;
  1784. E.parseColor = function(H) {
  1785. if (H.length == 3) {
  1786. return H
  1787. }
  1788. var I = this.patterns.hex.exec(H);
  1789. if (I && I.length == 4) {
  1790. return [parseInt(I[1], 16), parseInt(I[2], 16),
  1791. parseInt(I[3], 16)]
  1792. }
  1793. I = this.patterns.rgb.exec(H);
  1794. if (I && I.length == 4) {
  1795. return [parseInt(I[1], 10), parseInt(I[2], 10),
  1796. parseInt(I[3], 10)]
  1797. }
  1798. I = this.patterns.hex3.exec(H);
  1799. if (I && I.length == 4) {
  1800. return [parseInt(I[1] + I[1], 16), parseInt(I[2] + I[2], 16),
  1801. parseInt(I[3] + I[3], 16)]
  1802. }
  1803. return null
  1804. };
  1805. E.getAttribute = function(H) {
  1806. var J = this.getEl();
  1807. if (this.patterns.color.test(H)) {
  1808. var K = C(J).getStyle(H);
  1809. if (this.patterns.transparent.test(K)) {
  1810. var I = J.parentNode;
  1811. K = C(I).getStyle(H);
  1812. while (I && this.patterns.transparent.test(K)) {
  1813. I = I.parentNode;
  1814. K = C(I).getStyle(H);
  1815. if (I.tagName.toUpperCase() == "HTML") {
  1816. K = "#fff"
  1817. }
  1818. }
  1819. }
  1820. } else {
  1821. K = G.getAttribute.call(this, H)
  1822. }
  1823. return K
  1824. };
  1825. E.doMethod = function(I, M, J) {
  1826. var L;
  1827. if (this.patterns.color.test(I)) {
  1828. L = [];
  1829. for (var K = 0, H = M.length; K < H; ++K) {
  1830. L[K] = G.doMethod.call(this, I, M[K], J[K])
  1831. }
  1832. L = "rgb(" + Math.floor(L[0]) + "," + Math.floor(L[1]) + ","
  1833. + Math.floor(L[2]) + ")"
  1834. } else {
  1835. L = G.doMethod.call(this, I, M, J)
  1836. }
  1837. return L
  1838. };
  1839. E.setRuntimeAttribute = function(I) {
  1840. G.setRuntimeAttribute.call(this, I);
  1841. if (this.patterns.color.test(I)) {
  1842. var K = this.attributes;
  1843. var M = this.parseColor(this.runtimeAttributes[I].start);
  1844. var J = this.parseColor(this.runtimeAttributes[I].end);
  1845. if (typeof K[I]["to"] === "undefined"
  1846. && typeof K[I]["by"] !== "undefined") {
  1847. J = this.parseColor(K[I].by);
  1848. for (var L = 0, H = M.length; L < H; ++L) {
  1849. J[L] = M[L] + J[L]
  1850. }
  1851. }
  1852. this.runtimeAttributes[I].start = M;
  1853. this.runtimeAttributes[I].end = J
  1854. }
  1855. }
  1856. })();
  1857. Ext.lib.Easing = {
  1858. easeNone : function(F, E, H, G) {
  1859. return H * F / G + E
  1860. },
  1861. easeIn : function(F, E, H, G) {
  1862. return H * (F /= G) * F + E
  1863. },
  1864. easeOut : function(F, E, H, G) {
  1865. return -H * (F /= G) * (F - 2) + E
  1866. },
  1867. easeBoth : function(F, E, H, G) {
  1868. if ((F /= G / 2) < 1) {
  1869. return H / 2 * F * F + E
  1870. }
  1871. return -H / 2 * ((--F) * (F - 2) - 1) + E
  1872. },
  1873. easeInStrong : function(F, E, H, G) {
  1874. return H * (F /= G) * F * F * F + E
  1875. },
  1876. easeOutStrong : function(F, E, H, G) {
  1877. return -H * ((F = F / G - 1) * F * F * F - 1) + E
  1878. },
  1879. easeBothStrong : function(F, E, H, G) {
  1880. if ((F /= G / 2) < 1) {
  1881. return H / 2 * F * F * F * F + E
  1882. }
  1883. return -H / 2 * ((F -= 2) * F * F * F - 2) + E
  1884. },
  1885. elasticIn : function(G, E, K, J, F, I) {
  1886. if (G == 0) {
  1887. return E
  1888. }
  1889. if ((G /= J) == 1) {
  1890. return E + K
  1891. }
  1892. if (!I) {
  1893. I = J * 0.3
  1894. }
  1895. if (!F || F < Math.abs(K)) {
  1896. F = K;
  1897. var H = I / 4
  1898. } else {
  1899. var H = I / (2 * Math.PI) * Math.asin(K / F)
  1900. }
  1901. return -(F * Math.pow(2, 10 * (G -= 1)) * Math.sin((G * J - H)
  1902. * (2 * Math.PI) / I))
  1903. + E
  1904. },
  1905. elasticOut : function(G, E, K, J, F, I) {
  1906. if (G == 0) {
  1907. return E
  1908. }
  1909. if ((G /= J) == 1) {
  1910. return E + K
  1911. }
  1912. if (!I) {
  1913. I = J * 0.3
  1914. }
  1915. if (!F || F < Math.abs(K)) {
  1916. F = K;
  1917. var H = I / 4
  1918. } else {
  1919. var H = I / (2 * Math.PI) * Math.asin(K / F)
  1920. }
  1921. return F * Math.pow(2, -10 * G)
  1922. * Math.sin((G * J - H) * (2 * Math.PI) / I) + K + E
  1923. },
  1924. elasticBoth : function(G, E, K, J, F, I) {
  1925. if (G == 0) {
  1926. return E
  1927. }
  1928. if ((G /= J / 2) == 2) {
  1929. return E + K
  1930. }
  1931. if (!I) {
  1932. I = J * (0.3 * 1.5)
  1933. }
  1934. if (!F || F < Math.abs(K)) {
  1935. F = K;
  1936. var H = I / 4
  1937. } else {
  1938. var H = I / (2 * Math.PI) * Math.asin(K / F)
  1939. }
  1940. if (G < 1) {
  1941. return -0.5
  1942. * (F * Math.pow(2, 10 * (G -= 1)) * Math
  1943. .sin((G * J - H) * (2 * Math.PI) / I)) + E
  1944. }
  1945. return F * Math.pow(2, -10 * (G -= 1))
  1946. * Math.sin((G * J - H) * (2 * Math.PI) / I) * 0.5 + K + E
  1947. },
  1948. backIn : function(F, E, I, H, G) {
  1949. if (typeof G == "undefined") {
  1950. G = 1.70158
  1951. }
  1952. return I * (F /= H) * F * ((G + 1) * F - G) + E
  1953. },
  1954. backOut : function(F, E, I, H, G) {
  1955. if (typeof G == "undefined") {
  1956. G = 1.70158
  1957. }
  1958. return I * ((F = F / H - 1) * F * ((G + 1) * F + G) + 1) + E
  1959. },
  1960. backBoth : function(F, E, I, H, G) {
  1961. if (typeof G == "undefined") {
  1962. G = 1.70158
  1963. }
  1964. if ((F /= H / 2) < 1) {
  1965. return I / 2 * (F * F * (((G *= (1.525)) + 1) * F - G)) + E
  1966. }
  1967. return I / 2 * ((F -= 2) * F * (((G *= (1.525)) + 1) * F + G) + 2)
  1968. + E
  1969. },
  1970. bounceIn : function(F, E, H, G) {
  1971. return H - Ext.lib.Easing.bounceOut(G - F, 0, H, G) + E
  1972. },
  1973. bounceOut : function(F, E, H, G) {
  1974. if ((F /= G) < (1 / 2.75)) {
  1975. return H * (7.5625 * F * F) + E
  1976. } else {
  1977. if (F < (2 / 2.75)) {
  1978. return H * (7.5625 * (F -= (1.5 / 2.75)) * F + 0.75) + E
  1979. } else {
  1980. if (F < (2.5 / 2.75)) {
  1981. return H * (7.5625 * (F -= (2.25 / 2.75)) * F + 0.9375)
  1982. + E
  1983. }
  1984. }
  1985. }
  1986. return H * (7.5625 * (F -= (2.625 / 2.75)) * F + 0.984375) + E
  1987. },
  1988. bounceBoth : function(F, E, H, G) {
  1989. if (F < G / 2) {
  1990. return Ext.lib.Easing.bounceIn(F * 2, 0, H, G) * 0.5 + E
  1991. }
  1992. return Ext.lib.Easing.bounceOut(F * 2 - G, 0, H, G) * 0.5 + H * 0.5
  1993. + E
  1994. }
  1995. };
  1996. (function() {
  1997. Ext.lib.Motion = function(K, J, L, M) {
  1998. if (K) {
  1999. Ext.lib.Motion.superclass.constructor.call(this, K, J, L, M)
  2000. }
  2001. };
  2002. Ext.extend(Ext.lib.Motion, Ext.lib.ColorAnim);
  2003. var H = Ext.lib;
  2004. var I = H.Motion.superclass;
  2005. var F = H.Motion.prototype;
  2006. F.toString = function() {
  2007. var J = this.getEl();
  2008. var K = J.id || J.tagName;
  2009. return ("Motion " + K)
  2010. };
  2011. F.patterns.points = /^points$/i;
  2012. F.setAttribute = function(J, L, K) {
  2013. if (this.patterns.points.test(J)) {
  2014. K = K || "px";
  2015. I.setAttribute.call(this, "left", L[0], K);
  2016. I.setAttribute.call(this, "top", L[1], K)
  2017. } else {
  2018. I.setAttribute.call(this, J, L, K)
  2019. }
  2020. };
  2021. F.getAttribute = function(J) {
  2022. if (this.patterns.points.test(J)) {
  2023. var K = [I.getAttribute.call(this, "left"),
  2024. I.getAttribute.call(this, "top")]
  2025. } else {
  2026. K = I.getAttribute.call(this, J)
  2027. }
  2028. return K
  2029. };
  2030. F.doMethod = function(J, N, K) {
  2031. var M = null;
  2032. if (this.patterns.points.test(J)) {
  2033. var L = this
  2034. .method(this.currentFrame, 0, 100, this.totalFrames)
  2035. / 100;
  2036. M = H.Bezier.getPosition(this.runtimeAttributes[J], L)
  2037. } else {
  2038. M = I.doMethod.call(this, J, N, K)
  2039. }
  2040. return M
  2041. };
  2042. F.setRuntimeAttribute = function(S) {
  2043. if (this.patterns.points.test(S)) {
  2044. var K = this.getEl();
  2045. var M = this.attributes;
  2046. var J;
  2047. var O = M["points"]["control"] || [];
  2048. var L;
  2049. var P, R;
  2050. if (O.length > 0 && !Ext.isArray(O[0])) {
  2051. O = [O]
  2052. } else {
  2053. var N = [];
  2054. for (P = 0, R = O.length; P < R; ++P) {
  2055. N[P] = O[P]
  2056. }
  2057. O = N
  2058. }
  2059. Ext.fly(K).position();
  2060. if (G(M["points"]["from"])) {
  2061. Ext.lib.Dom.setXY(K, M["points"]["from"])
  2062. } else {
  2063. Ext.lib.Dom.setXY(K, Ext.lib.Dom.getXY(K))
  2064. }
  2065. J = this.getAttribute("points");
  2066. if (G(M["points"]["to"])) {
  2067. L = E.call(this, M["points"]["to"], J);
  2068. var Q = Ext.lib.Dom.getXY(this.getEl());
  2069. for (P = 0, R = O.length; P < R; ++P) {
  2070. O[P] = E.call(this, O[P], J)
  2071. }
  2072. } else {
  2073. if (G(M["points"]["by"])) {
  2074. L = [J[0] + M["points"]["by"][0],
  2075. J[1] + M["points"]["by"][1]];
  2076. for (P = 0, R = O.length; P < R; ++P) {
  2077. O[P] = [J[0] + O[P][0], J[1] + O[P][1]]
  2078. }
  2079. }
  2080. }
  2081. this.runtimeAttributes[S] = [J];
  2082. if (O.length > 0) {
  2083. this.runtimeAttributes[S] = this.runtimeAttributes[S]
  2084. .concat(O)
  2085. }
  2086. this.runtimeAttributes[S][this.runtimeAttributes[S].length] = L
  2087. } else {
  2088. I.setRuntimeAttribute.call(this, S)
  2089. }
  2090. };
  2091. var E = function(J, L) {
  2092. var K = Ext.lib.Dom.getXY(this.getEl());
  2093. J = [J[0] - K[0] + L[0], J[1] - K[1] + L[1]];
  2094. return J
  2095. };
  2096. var G = function(J) {
  2097. return (typeof J !== "undefined")
  2098. }
  2099. })();
  2100. (function() {
  2101. Ext.lib.Scroll = function(I, H, J, K) {
  2102. if (I) {
  2103. Ext.lib.Scroll.superclass.constructor.call(this, I, H, J, K)
  2104. }
  2105. };
  2106. Ext.extend(Ext.lib.Scroll, Ext.lib.ColorAnim);
  2107. var F = Ext.lib;
  2108. var G = F.Scroll.superclass;
  2109. var E = F.Scroll.prototype;
  2110. E.toString = function() {
  2111. var H = this.getEl();
  2112. var I = H.id || H.tagName;
  2113. return ("Scroll " + I)
  2114. };
  2115. E.doMethod = function(H, K, I) {
  2116. var J = null;
  2117. if (H == "scroll") {
  2118. J = [
  2119. this.method(this.currentFrame, K[0], I[0] - K[0],
  2120. this.totalFrames),
  2121. this.method(this.currentFrame, K[1], I[1] - K[1],
  2122. this.totalFrames)]
  2123. } else {
  2124. J = G.doMethod.call(this, H, K, I)
  2125. }
  2126. return J
  2127. };
  2128. E.getAttribute = function(H) {
  2129. var J = null;
  2130. var I = this.getEl();
  2131. if (H == "scroll") {
  2132. J = [I.scrollLeft, I.scrollTop]
  2133. } else {
  2134. J = G.getAttribute.call(this, H)
  2135. }
  2136. return J
  2137. };
  2138. E.setAttribute = function(H, K, J) {
  2139. var I = this.getEl();
  2140. if (H == "scroll") {
  2141. I.scrollLeft = K[0];
  2142. I.scrollTop = K[1]
  2143. } else {
  2144. G.setAttribute.call(this, H, K, J)
  2145. }
  2146. }
  2147. })()
  2148. })();