lpmp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (636) hide show
  1. data/LICENSE +3 -0
  2. data/README +3 -0
  3. data/Rakefile +45 -0
  4. data/bin/lpmp +107 -0
  5. data/config/help.yaml +1 -0
  6. data/config/hosts.yaml +2 -0
  7. data/config/log.yaml +1 -0
  8. data/config/memcache.yaml +5 -0
  9. data/erb/index.erb +62 -0
  10. data/lib/bg_pull/caichen.rb +199 -0
  11. data/lib/bg_pull/lpmp.rb +45 -0
  12. data/lib/exception.rb +8 -0
  13. data/lib/lpmp.rb +53 -0
  14. data/lib/pull/lpmp.rb +355 -0
  15. data/lib/remote_lmp.rb +129 -0
  16. data/lib/utils.rb +14 -0
  17. data/lib/xq_push/caichen.rb +174 -0
  18. data/lib/xq_push/lpmp.rb +96 -0
  19. data/log/lpmp1st.log +1 -0
  20. data/public/css/ext-portal.css +40 -0
  21. data/public/css/lpmp.css +6 -0
  22. data/public/designer/caichen.epj +1 -0
  23. data/public/designer/hostmonitor.epj +1 -0
  24. data/public/ext-3.0.0/INCLUDE_ORDER.txt +35 -0
  25. data/public/ext-3.0.0/adapter/ext/ext-base-debug.js +3589 -0
  26. data/public/ext-3.0.0/adapter/ext/ext-base.js +7 -0
  27. data/public/ext-3.0.0/adapter/jquery/ext-jquery-adapter-debug.js +2292 -0
  28. data/public/ext-3.0.0/adapter/jquery/ext-jquery-adapter.js +7 -0
  29. data/public/ext-3.0.0/adapter/prototype/ext-prototype-adapter-debug.js +2346 -0
  30. data/public/ext-3.0.0/adapter/prototype/ext-prototype-adapter.js +7 -0
  31. data/public/ext-3.0.0/adapter/yui/ext-yui-adapter-debug.js +2136 -0
  32. data/public/ext-3.0.0/adapter/yui/ext-yui-adapter.js +7 -0
  33. data/public/ext-3.0.0/ext-all-debug.js +65610 -0
  34. data/public/ext-3.0.0/ext-all.js +11 -0
  35. data/public/ext-3.0.0/license.txt +42 -0
  36. data/public/ext-3.0.0/pkgs/cmp-foundation-debug.js +11287 -0
  37. data/public/ext-3.0.0/pkgs/cmp-foundation.js +7 -0
  38. data/public/ext-3.0.0/pkgs/data-foundation-debug.js +3853 -0
  39. data/public/ext-3.0.0/pkgs/data-foundation.js +7 -0
  40. data/public/ext-3.0.0/pkgs/data-grouping-debug.js +139 -0
  41. data/public/ext-3.0.0/pkgs/data-grouping.js +7 -0
  42. data/public/ext-3.0.0/pkgs/data-json-debug.js +582 -0
  43. data/public/ext-3.0.0/pkgs/data-json.js +7 -0
  44. data/public/ext-3.0.0/pkgs/data-list-views-debug.js +1278 -0
  45. data/public/ext-3.0.0/pkgs/data-list-views.js +7 -0
  46. data/public/ext-3.0.0/pkgs/data-xml-debug.js +234 -0
  47. data/public/ext-3.0.0/pkgs/data-xml.js +7 -0
  48. data/public/ext-3.0.0/pkgs/direct-debug.js +1121 -0
  49. data/public/ext-3.0.0/pkgs/direct.js +7 -0
  50. data/public/ext-3.0.0/pkgs/ext-dd-debug.js +4567 -0
  51. data/public/ext-3.0.0/pkgs/ext-dd.js +7 -0
  52. data/public/ext-3.0.0/pkgs/ext-foundation-debug.js +13417 -0
  53. data/public/ext-3.0.0/pkgs/ext-foundation.js +7 -0
  54. data/public/ext-3.0.0/pkgs/pkg-buttons-debug.js +1060 -0
  55. data/public/ext-3.0.0/pkgs/pkg-buttons.js +7 -0
  56. data/public/ext-3.0.0/pkgs/pkg-charts-debug.js +1621 -0
  57. data/public/ext-3.0.0/pkgs/pkg-charts.js +10 -0
  58. data/public/ext-3.0.0/pkgs/pkg-forms-debug.js +7661 -0
  59. data/public/ext-3.0.0/pkgs/pkg-forms.js +7 -0
  60. data/public/ext-3.0.0/pkgs/pkg-grid-editor-debug.js +560 -0
  61. data/public/ext-3.0.0/pkgs/pkg-grid-editor.js +7 -0
  62. data/public/ext-3.0.0/pkgs/pkg-grid-foundation-debug.js +4765 -0
  63. data/public/ext-3.0.0/pkgs/pkg-grid-foundation.js +7 -0
  64. data/public/ext-3.0.0/pkgs/pkg-grid-grouping-debug.js +517 -0
  65. data/public/ext-3.0.0/pkgs/pkg-grid-grouping.js +7 -0
  66. data/public/ext-3.0.0/pkgs/pkg-grid-property-debug.js +370 -0
  67. data/public/ext-3.0.0/pkgs/pkg-grid-property.js +7 -0
  68. data/public/ext-3.0.0/pkgs/pkg-history-debug.js +203 -0
  69. data/public/ext-3.0.0/pkgs/pkg-history.js +7 -0
  70. data/public/ext-3.0.0/pkgs/pkg-menu-debug.js +1628 -0
  71. data/public/ext-3.0.0/pkgs/pkg-menu.js +7 -0
  72. data/public/ext-3.0.0/pkgs/pkg-tabs-debug.js +1100 -0
  73. data/public/ext-3.0.0/pkgs/pkg-tabs.js +7 -0
  74. data/public/ext-3.0.0/pkgs/pkg-tips-debug.js +994 -0
  75. data/public/ext-3.0.0/pkgs/pkg-tips.js +7 -0
  76. data/public/ext-3.0.0/pkgs/pkg-toolbars-debug.js +1374 -0
  77. data/public/ext-3.0.0/pkgs/pkg-toolbars.js +7 -0
  78. data/public/ext-3.0.0/pkgs/pkg-tree-debug.js +4522 -0
  79. data/public/ext-3.0.0/pkgs/pkg-tree.js +7 -0
  80. data/public/ext-3.0.0/pkgs/resizable-debug.js +760 -0
  81. data/public/ext-3.0.0/pkgs/resizable.js +7 -0
  82. data/public/ext-3.0.0/pkgs/state-debug.js +274 -0
  83. data/public/ext-3.0.0/pkgs/state.js +7 -0
  84. data/public/ext-3.0.0/pkgs/window-debug.js +1888 -0
  85. data/public/ext-3.0.0/pkgs/window.js +7 -0
  86. data/public/ext-3.0.0/resources/charts.swf +0 -0
  87. data/public/ext-3.0.0/resources/css/README.txt +3 -0
  88. data/public/ext-3.0.0/resources/css/ext-all-notheme.css +5345 -0
  89. data/public/ext-3.0.0/resources/css/ext-all.css +6990 -0
  90. data/public/ext-3.0.0/resources/css/reset-min.css +7 -0
  91. data/public/ext-3.0.0/resources/css/structure/borders.css +54 -0
  92. data/public/ext-3.0.0/resources/css/structure/box.css +80 -0
  93. data/public/ext-3.0.0/resources/css/structure/button.css +440 -0
  94. data/public/ext-3.0.0/resources/css/structure/combo.css +45 -0
  95. data/public/ext-3.0.0/resources/css/structure/core.css +326 -0
  96. data/public/ext-3.0.0/resources/css/structure/date-picker.css +265 -0
  97. data/public/ext-3.0.0/resources/css/structure/dd.css +61 -0
  98. data/public/ext-3.0.0/resources/css/structure/debug.css +26 -0
  99. data/public/ext-3.0.0/resources/css/structure/dialog.css +62 -0
  100. data/public/ext-3.0.0/resources/css/structure/editor.css +92 -0
  101. data/public/ext-3.0.0/resources/css/structure/form.css +562 -0
  102. data/public/ext-3.0.0/resources/css/structure/grid.css +552 -0
  103. data/public/ext-3.0.0/resources/css/structure/layout.css +296 -0
  104. data/public/ext-3.0.0/resources/css/structure/list-view.css +85 -0
  105. data/public/ext-3.0.0/resources/css/structure/menu.css +205 -0
  106. data/public/ext-3.0.0/resources/css/structure/panel-reset.css +130 -0
  107. data/public/ext-3.0.0/resources/css/structure/panel.css +468 -0
  108. data/public/ext-3.0.0/resources/css/structure/progress.css +42 -0
  109. data/public/ext-3.0.0/resources/css/structure/qtips.css +153 -0
  110. data/public/ext-3.0.0/resources/css/structure/reset.css +7 -0
  111. data/public/ext-3.0.0/resources/css/structure/resizable.css +149 -0
  112. data/public/ext-3.0.0/resources/css/structure/slider.css +103 -0
  113. data/public/ext-3.0.0/resources/css/structure/tabs.css +372 -0
  114. data/public/ext-3.0.0/resources/css/structure/toolbar.css +259 -0
  115. data/public/ext-3.0.0/resources/css/structure/tree.css +203 -0
  116. data/public/ext-3.0.0/resources/css/structure/window.css +222 -0
  117. data/public/ext-3.0.0/resources/css/visual/borders.css +25 -0
  118. data/public/ext-3.0.0/resources/css/visual/box.css +74 -0
  119. data/public/ext-3.0.0/resources/css/visual/button.css +94 -0
  120. data/public/ext-3.0.0/resources/css/visual/combo.css +43 -0
  121. data/public/ext-3.0.0/resources/css/visual/core.css +76 -0
  122. data/public/ext-3.0.0/resources/css/visual/date-picker.css +143 -0
  123. data/public/ext-3.0.0/resources/css/visual/dd.css +29 -0
  124. data/public/ext-3.0.0/resources/css/visual/debug.css +24 -0
  125. data/public/ext-3.0.0/resources/css/visual/dialog.css +34 -0
  126. data/public/ext-3.0.0/resources/css/visual/editor.css +13 -0
  127. data/public/ext-3.0.0/resources/css/visual/form.css +117 -0
  128. data/public/ext-3.0.0/resources/css/visual/grid.css +272 -0
  129. data/public/ext-3.0.0/resources/css/visual/layout.css +53 -0
  130. data/public/ext-3.0.0/resources/css/visual/list-view.css +37 -0
  131. data/public/ext-3.0.0/resources/css/visual/menu.css +82 -0
  132. data/public/ext-3.0.0/resources/css/visual/panel.css +87 -0
  133. data/public/ext-3.0.0/resources/css/visual/progress.css +32 -0
  134. data/public/ext-3.0.0/resources/css/visual/qtips.css +44 -0
  135. data/public/ext-3.0.0/resources/css/visual/resizable.css +43 -0
  136. data/public/ext-3.0.0/resources/css/visual/slider.css +21 -0
  137. data/public/ext-3.0.0/resources/css/visual/tabs.css +119 -0
  138. data/public/ext-3.0.0/resources/css/visual/toolbar.css +103 -0
  139. data/public/ext-3.0.0/resources/css/visual/tree.css +157 -0
  140. data/public/ext-3.0.0/resources/css/visual/window.css +86 -0
  141. data/public/ext-3.0.0/resources/css/xtheme-blue.css +1652 -0
  142. data/public/ext-3.0.0/resources/expressinstall.swf +0 -0
  143. data/public/ext-3.0.0/resources/images/default/box/corners-blue.gif +0 -0
  144. data/public/ext-3.0.0/resources/images/default/box/corners.gif +0 -0
  145. data/public/ext-3.0.0/resources/images/default/box/l-blue.gif +0 -0
  146. data/public/ext-3.0.0/resources/images/default/box/l.gif +0 -0
  147. data/public/ext-3.0.0/resources/images/default/box/r-blue.gif +0 -0
  148. data/public/ext-3.0.0/resources/images/default/box/r.gif +0 -0
  149. data/public/ext-3.0.0/resources/images/default/box/tb-blue.gif +0 -0
  150. data/public/ext-3.0.0/resources/images/default/box/tb.gif +0 -0
  151. data/public/ext-3.0.0/resources/images/default/button/arrow.gif +0 -0
  152. data/public/ext-3.0.0/resources/images/default/button/btn.gif +0 -0
  153. data/public/ext-3.0.0/resources/images/default/button/group-cs.gif +0 -0
  154. data/public/ext-3.0.0/resources/images/default/button/group-lr.gif +0 -0
  155. data/public/ext-3.0.0/resources/images/default/button/group-tb.gif +0 -0
  156. data/public/ext-3.0.0/resources/images/default/button/s-arrow-b-noline.gif +0 -0
  157. data/public/ext-3.0.0/resources/images/default/button/s-arrow-b.gif +0 -0
  158. data/public/ext-3.0.0/resources/images/default/button/s-arrow-bo.gif +0 -0
  159. data/public/ext-3.0.0/resources/images/default/button/s-arrow-noline.gif +0 -0
  160. data/public/ext-3.0.0/resources/images/default/button/s-arrow-o.gif +0 -0
  161. data/public/ext-3.0.0/resources/images/default/button/s-arrow.gif +0 -0
  162. data/public/ext-3.0.0/resources/images/default/dd/drop-add.gif +0 -0
  163. data/public/ext-3.0.0/resources/images/default/dd/drop-no.gif +0 -0
  164. data/public/ext-3.0.0/resources/images/default/dd/drop-yes.gif +0 -0
  165. data/public/ext-3.0.0/resources/images/default/editor/tb-sprite.gif +0 -0
  166. data/public/ext-3.0.0/resources/images/default/form/checkbox.gif +0 -0
  167. data/public/ext-3.0.0/resources/images/default/form/clear-trigger.gif +0 -0
  168. data/public/ext-3.0.0/resources/images/default/form/clear-trigger.psd +0 -0
  169. data/public/ext-3.0.0/resources/images/default/form/date-trigger.gif +0 -0
  170. data/public/ext-3.0.0/resources/images/default/form/date-trigger.psd +0 -0
  171. data/public/ext-3.0.0/resources/images/default/form/error-tip-corners.gif +0 -0
  172. data/public/ext-3.0.0/resources/images/default/form/exclamation.gif +0 -0
  173. data/public/ext-3.0.0/resources/images/default/form/radio.gif +0 -0
  174. data/public/ext-3.0.0/resources/images/default/form/search-trigger.gif +0 -0
  175. data/public/ext-3.0.0/resources/images/default/form/search-trigger.psd +0 -0
  176. data/public/ext-3.0.0/resources/images/default/form/text-bg.gif +0 -0
  177. data/public/ext-3.0.0/resources/images/default/form/trigger-tpl.gif +0 -0
  178. data/public/ext-3.0.0/resources/images/default/form/trigger.gif +0 -0
  179. data/public/ext-3.0.0/resources/images/default/form/trigger.psd +0 -0
  180. data/public/ext-3.0.0/resources/images/default/gradient-bg.gif +0 -0
  181. data/public/ext-3.0.0/resources/images/default/grid/arrow-left-white.gif +0 -0
  182. data/public/ext-3.0.0/resources/images/default/grid/arrow-right-white.gif +0 -0
  183. data/public/ext-3.0.0/resources/images/default/grid/col-move-bottom.gif +0 -0
  184. data/public/ext-3.0.0/resources/images/default/grid/col-move-top.gif +0 -0
  185. data/public/ext-3.0.0/resources/images/default/grid/columns.gif +0 -0
  186. data/public/ext-3.0.0/resources/images/default/grid/dirty.gif +0 -0
  187. data/public/ext-3.0.0/resources/images/default/grid/done.gif +0 -0
  188. data/public/ext-3.0.0/resources/images/default/grid/drop-no.gif +0 -0
  189. data/public/ext-3.0.0/resources/images/default/grid/drop-yes.gif +0 -0
  190. data/public/ext-3.0.0/resources/images/default/grid/footer-bg.gif +0 -0
  191. data/public/ext-3.0.0/resources/images/default/grid/grid-blue-hd.gif +0 -0
  192. data/public/ext-3.0.0/resources/images/default/grid/grid-blue-split.gif +0 -0
  193. data/public/ext-3.0.0/resources/images/default/grid/grid-hrow.gif +0 -0
  194. data/public/ext-3.0.0/resources/images/default/grid/grid-loading.gif +0 -0
  195. data/public/ext-3.0.0/resources/images/default/grid/grid-split.gif +0 -0
  196. data/public/ext-3.0.0/resources/images/default/grid/grid-vista-hd.gif +0 -0
  197. data/public/ext-3.0.0/resources/images/default/grid/grid3-hd-btn.gif +0 -0
  198. data/public/ext-3.0.0/resources/images/default/grid/grid3-hrow-over.gif +0 -0
  199. data/public/ext-3.0.0/resources/images/default/grid/grid3-hrow.gif +0 -0
  200. data/public/ext-3.0.0/resources/images/default/grid/grid3-special-col-bg.gif +0 -0
  201. data/public/ext-3.0.0/resources/images/default/grid/grid3-special-col-sel-bg.gif +0 -0
  202. data/public/ext-3.0.0/resources/images/default/grid/group-by.gif +0 -0
  203. data/public/ext-3.0.0/resources/images/default/grid/group-collapse.gif +0 -0
  204. data/public/ext-3.0.0/resources/images/default/grid/group-expand-sprite.gif +0 -0
  205. data/public/ext-3.0.0/resources/images/default/grid/group-expand.gif +0 -0
  206. data/public/ext-3.0.0/resources/images/default/grid/hd-pop.gif +0 -0
  207. data/public/ext-3.0.0/resources/images/default/grid/hmenu-asc.gif +0 -0
  208. data/public/ext-3.0.0/resources/images/default/grid/hmenu-desc.gif +0 -0
  209. data/public/ext-3.0.0/resources/images/default/grid/hmenu-lock.gif +0 -0
  210. data/public/ext-3.0.0/resources/images/default/grid/hmenu-lock.png +0 -0
  211. data/public/ext-3.0.0/resources/images/default/grid/hmenu-unlock.gif +0 -0
  212. data/public/ext-3.0.0/resources/images/default/grid/hmenu-unlock.png +0 -0
  213. data/public/ext-3.0.0/resources/images/default/grid/invalid_line.gif +0 -0
  214. data/public/ext-3.0.0/resources/images/default/grid/loading.gif +0 -0
  215. data/public/ext-3.0.0/resources/images/default/grid/mso-hd.gif +0 -0
  216. data/public/ext-3.0.0/resources/images/default/grid/nowait.gif +0 -0
  217. data/public/ext-3.0.0/resources/images/default/grid/page-first-disabled.gif +0 -0
  218. data/public/ext-3.0.0/resources/images/default/grid/page-first.gif +0 -0
  219. data/public/ext-3.0.0/resources/images/default/grid/page-last-disabled.gif +0 -0
  220. data/public/ext-3.0.0/resources/images/default/grid/page-last.gif +0 -0
  221. data/public/ext-3.0.0/resources/images/default/grid/page-next-disabled.gif +0 -0
  222. data/public/ext-3.0.0/resources/images/default/grid/page-next.gif +0 -0
  223. data/public/ext-3.0.0/resources/images/default/grid/page-prev-disabled.gif +0 -0
  224. data/public/ext-3.0.0/resources/images/default/grid/page-prev.gif +0 -0
  225. data/public/ext-3.0.0/resources/images/default/grid/pick-button.gif +0 -0
  226. data/public/ext-3.0.0/resources/images/default/grid/refresh.gif +0 -0
  227. data/public/ext-3.0.0/resources/images/default/grid/row-check-sprite.gif +0 -0
  228. data/public/ext-3.0.0/resources/images/default/grid/row-expand-sprite.gif +0 -0
  229. data/public/ext-3.0.0/resources/images/default/grid/row-over.gif +0 -0
  230. data/public/ext-3.0.0/resources/images/default/grid/row-sel.gif +0 -0
  231. data/public/ext-3.0.0/resources/images/default/grid/sort-hd.gif +0 -0
  232. data/public/ext-3.0.0/resources/images/default/grid/sort_asc.gif +0 -0
  233. data/public/ext-3.0.0/resources/images/default/grid/sort_desc.gif +0 -0
  234. data/public/ext-3.0.0/resources/images/default/grid/wait.gif +0 -0
  235. data/public/ext-3.0.0/resources/images/default/layout/collapse.gif +0 -0
  236. data/public/ext-3.0.0/resources/images/default/layout/expand.gif +0 -0
  237. data/public/ext-3.0.0/resources/images/default/layout/gradient-bg.gif +0 -0
  238. data/public/ext-3.0.0/resources/images/default/layout/mini-bottom.gif +0 -0
  239. data/public/ext-3.0.0/resources/images/default/layout/mini-left.gif +0 -0
  240. data/public/ext-3.0.0/resources/images/default/layout/mini-right.gif +0 -0
  241. data/public/ext-3.0.0/resources/images/default/layout/mini-top.gif +0 -0
  242. data/public/ext-3.0.0/resources/images/default/layout/ns-collapse.gif +0 -0
  243. data/public/ext-3.0.0/resources/images/default/layout/ns-expand.gif +0 -0
  244. data/public/ext-3.0.0/resources/images/default/layout/panel-close.gif +0 -0
  245. data/public/ext-3.0.0/resources/images/default/layout/panel-title-bg.gif +0 -0
  246. data/public/ext-3.0.0/resources/images/default/layout/panel-title-light-bg.gif +0 -0
  247. data/public/ext-3.0.0/resources/images/default/layout/stick.gif +0 -0
  248. data/public/ext-3.0.0/resources/images/default/layout/stuck.gif +0 -0
  249. data/public/ext-3.0.0/resources/images/default/layout/tab-close-on.gif +0 -0
  250. data/public/ext-3.0.0/resources/images/default/layout/tab-close.gif +0 -0
  251. data/public/ext-3.0.0/resources/images/default/menu/checked.gif +0 -0
  252. data/public/ext-3.0.0/resources/images/default/menu/group-checked.gif +0 -0
  253. data/public/ext-3.0.0/resources/images/default/menu/item-over.gif +0 -0
  254. data/public/ext-3.0.0/resources/images/default/menu/menu-parent.gif +0 -0
  255. data/public/ext-3.0.0/resources/images/default/menu/menu.gif +0 -0
  256. data/public/ext-3.0.0/resources/images/default/menu/unchecked.gif +0 -0
  257. data/public/ext-3.0.0/resources/images/default/panel/corners-sprite.gif +0 -0
  258. data/public/ext-3.0.0/resources/images/default/panel/left-right.gif +0 -0
  259. data/public/ext-3.0.0/resources/images/default/panel/light-hd.gif +0 -0
  260. data/public/ext-3.0.0/resources/images/default/panel/tool-sprite-tpl.gif +0 -0
  261. data/public/ext-3.0.0/resources/images/default/panel/tool-sprites.gif +0 -0
  262. data/public/ext-3.0.0/resources/images/default/panel/tools-sprites-trans.gif +0 -0
  263. data/public/ext-3.0.0/resources/images/default/panel/top-bottom.gif +0 -0
  264. data/public/ext-3.0.0/resources/images/default/panel/top-bottom.png +0 -0
  265. data/public/ext-3.0.0/resources/images/default/panel/white-corners-sprite.gif +0 -0
  266. data/public/ext-3.0.0/resources/images/default/panel/white-left-right.gif +0 -0
  267. data/public/ext-3.0.0/resources/images/default/panel/white-top-bottom.gif +0 -0
  268. data/public/ext-3.0.0/resources/images/default/progress/progress-bg.gif +0 -0
  269. data/public/ext-3.0.0/resources/images/default/qtip/bg.gif +0 -0
  270. data/public/ext-3.0.0/resources/images/default/qtip/close.gif +0 -0
  271. data/public/ext-3.0.0/resources/images/default/qtip/tip-anchor-sprite.gif +0 -0
  272. data/public/ext-3.0.0/resources/images/default/qtip/tip-sprite.gif +0 -0
  273. data/public/ext-3.0.0/resources/images/default/s.gif +0 -0
  274. data/public/ext-3.0.0/resources/images/default/shadow-c.png +0 -0
  275. data/public/ext-3.0.0/resources/images/default/shadow-lr.png +0 -0
  276. data/public/ext-3.0.0/resources/images/default/shadow.png +0 -0
  277. data/public/ext-3.0.0/resources/images/default/shared/blue-loading.gif +0 -0
  278. data/public/ext-3.0.0/resources/images/default/shared/calendar.gif +0 -0
  279. data/public/ext-3.0.0/resources/images/default/shared/glass-bg.gif +0 -0
  280. data/public/ext-3.0.0/resources/images/default/shared/hd-sprite.gif +0 -0
  281. data/public/ext-3.0.0/resources/images/default/shared/large-loading.gif +0 -0
  282. data/public/ext-3.0.0/resources/images/default/shared/left-btn.gif +0 -0
  283. data/public/ext-3.0.0/resources/images/default/shared/loading-balls.gif +0 -0
  284. data/public/ext-3.0.0/resources/images/default/shared/right-btn.gif +0 -0
  285. data/public/ext-3.0.0/resources/images/default/shared/warning.gif +0 -0
  286. data/public/ext-3.0.0/resources/images/default/sizer/e-handle-dark.gif +0 -0
  287. data/public/ext-3.0.0/resources/images/default/sizer/e-handle.gif +0 -0
  288. data/public/ext-3.0.0/resources/images/default/sizer/ne-handle-dark.gif +0 -0
  289. data/public/ext-3.0.0/resources/images/default/sizer/ne-handle.gif +0 -0
  290. data/public/ext-3.0.0/resources/images/default/sizer/nw-handle-dark.gif +0 -0
  291. data/public/ext-3.0.0/resources/images/default/sizer/nw-handle.gif +0 -0
  292. data/public/ext-3.0.0/resources/images/default/sizer/s-handle-dark.gif +0 -0
  293. data/public/ext-3.0.0/resources/images/default/sizer/s-handle.gif +0 -0
  294. data/public/ext-3.0.0/resources/images/default/sizer/se-handle-dark.gif +0 -0
  295. data/public/ext-3.0.0/resources/images/default/sizer/se-handle.gif +0 -0
  296. data/public/ext-3.0.0/resources/images/default/sizer/square.gif +0 -0
  297. data/public/ext-3.0.0/resources/images/default/sizer/sw-handle-dark.gif +0 -0
  298. data/public/ext-3.0.0/resources/images/default/sizer/sw-handle.gif +0 -0
  299. data/public/ext-3.0.0/resources/images/default/slider/slider-bg.png +0 -0
  300. data/public/ext-3.0.0/resources/images/default/slider/slider-thumb.png +0 -0
  301. data/public/ext-3.0.0/resources/images/default/slider/slider-v-bg.png +0 -0
  302. data/public/ext-3.0.0/resources/images/default/slider/slider-v-thumb.png +0 -0
  303. data/public/ext-3.0.0/resources/images/default/tabs/scroll-left.gif +0 -0
  304. data/public/ext-3.0.0/resources/images/default/tabs/scroll-right.gif +0 -0
  305. data/public/ext-3.0.0/resources/images/default/tabs/scroller-bg.gif +0 -0
  306. data/public/ext-3.0.0/resources/images/default/tabs/tab-btm-inactive-left-bg.gif +0 -0
  307. data/public/ext-3.0.0/resources/images/default/tabs/tab-btm-inactive-right-bg.gif +0 -0
  308. data/public/ext-3.0.0/resources/images/default/tabs/tab-btm-left-bg.gif +0 -0
  309. data/public/ext-3.0.0/resources/images/default/tabs/tab-btm-right-bg.gif +0 -0
  310. data/public/ext-3.0.0/resources/images/default/tabs/tab-close.gif +0 -0
  311. data/public/ext-3.0.0/resources/images/default/tabs/tab-strip-bg.gif +0 -0
  312. data/public/ext-3.0.0/resources/images/default/tabs/tab-strip-bg.png +0 -0
  313. data/public/ext-3.0.0/resources/images/default/tabs/tab-strip-btm-bg.gif +0 -0
  314. data/public/ext-3.0.0/resources/images/default/tabs/tabs-sprite.gif +0 -0
  315. data/public/ext-3.0.0/resources/images/default/toolbar/bg.gif +0 -0
  316. data/public/ext-3.0.0/resources/images/default/toolbar/btn-arrow-light.gif +0 -0
  317. data/public/ext-3.0.0/resources/images/default/toolbar/btn-arrow.gif +0 -0
  318. data/public/ext-3.0.0/resources/images/default/toolbar/btn-over-bg.gif +0 -0
  319. data/public/ext-3.0.0/resources/images/default/toolbar/gray-bg.gif +0 -0
  320. data/public/ext-3.0.0/resources/images/default/toolbar/more.gif +0 -0
  321. data/public/ext-3.0.0/resources/images/default/toolbar/tb-bg.gif +0 -0
  322. data/public/ext-3.0.0/resources/images/default/toolbar/tb-btn-sprite.gif +0 -0
  323. data/public/ext-3.0.0/resources/images/default/toolbar/tb-xl-btn-sprite.gif +0 -0
  324. data/public/ext-3.0.0/resources/images/default/toolbar/tb-xl-sep.gif +0 -0
  325. data/public/ext-3.0.0/resources/images/default/tree/arrows.gif +0 -0
  326. data/public/ext-3.0.0/resources/images/default/tree/drop-add.gif +0 -0
  327. data/public/ext-3.0.0/resources/images/default/tree/drop-between.gif +0 -0
  328. data/public/ext-3.0.0/resources/images/default/tree/drop-no.gif +0 -0
  329. data/public/ext-3.0.0/resources/images/default/tree/drop-over.gif +0 -0
  330. data/public/ext-3.0.0/resources/images/default/tree/drop-under.gif +0 -0
  331. data/public/ext-3.0.0/resources/images/default/tree/drop-yes.gif +0 -0
  332. data/public/ext-3.0.0/resources/images/default/tree/elbow-end-minus-nl.gif +0 -0
  333. data/public/ext-3.0.0/resources/images/default/tree/elbow-end-minus.gif +0 -0
  334. data/public/ext-3.0.0/resources/images/default/tree/elbow-end-plus-nl.gif +0 -0
  335. data/public/ext-3.0.0/resources/images/default/tree/elbow-end-plus.gif +0 -0
  336. data/public/ext-3.0.0/resources/images/default/tree/elbow-end.gif +0 -0
  337. data/public/ext-3.0.0/resources/images/default/tree/elbow-line.gif +0 -0
  338. data/public/ext-3.0.0/resources/images/default/tree/elbow-minus-nl.gif +0 -0
  339. data/public/ext-3.0.0/resources/images/default/tree/elbow-minus.gif +0 -0
  340. data/public/ext-3.0.0/resources/images/default/tree/elbow-plus-nl.gif +0 -0
  341. data/public/ext-3.0.0/resources/images/default/tree/elbow-plus.gif +0 -0
  342. data/public/ext-3.0.0/resources/images/default/tree/elbow.gif +0 -0
  343. data/public/ext-3.0.0/resources/images/default/tree/folder-open.gif +0 -0
  344. data/public/ext-3.0.0/resources/images/default/tree/folder.gif +0 -0
  345. data/public/ext-3.0.0/resources/images/default/tree/leaf.gif +0 -0
  346. data/public/ext-3.0.0/resources/images/default/tree/loading.gif +0 -0
  347. data/public/ext-3.0.0/resources/images/default/tree/s.gif +0 -0
  348. data/public/ext-3.0.0/resources/images/default/window/icon-error.gif +0 -0
  349. data/public/ext-3.0.0/resources/images/default/window/icon-info.gif +0 -0
  350. data/public/ext-3.0.0/resources/images/default/window/icon-question.gif +0 -0
  351. data/public/ext-3.0.0/resources/images/default/window/icon-warning.gif +0 -0
  352. data/public/ext-3.0.0/resources/images/default/window/left-corners.png +0 -0
  353. data/public/ext-3.0.0/resources/images/default/window/left-corners.psd +0 -0
  354. data/public/ext-3.0.0/resources/images/default/window/left-right.png +0 -0
  355. data/public/ext-3.0.0/resources/images/default/window/left-right.psd +0 -0
  356. data/public/ext-3.0.0/resources/images/default/window/right-corners.png +0 -0
  357. data/public/ext-3.0.0/resources/images/default/window/right-corners.psd +0 -0
  358. data/public/ext-3.0.0/resources/images/default/window/top-bottom.png +0 -0
  359. data/public/ext-3.0.0/resources/images/default/window/top-bottom.psd +0 -0
  360. data/public/ext-3.0.0/resources/images/icon/chart.gif +0 -0
  361. data/public/ext-3.0.0/src/adapter/core/ext-base-ajax.js +371 -0
  362. data/public/ext-3.0.0/src/adapter/core/ext-base-anim-extra.js +301 -0
  363. data/public/ext-3.0.0/src/adapter/core/ext-base-anim.js +477 -0
  364. data/public/ext-3.0.0/src/adapter/core/ext-base-begin.js +18 -0
  365. data/public/ext-3.0.0/src/adapter/core/ext-base-dom.js +157 -0
  366. data/public/ext-3.0.0/src/adapter/core/ext-base-end.js +21 -0
  367. data/public/ext-3.0.0/src/adapter/core/ext-base-event.js +453 -0
  368. data/public/ext-3.0.0/src/adapter/core/ext-base-point.js +17 -0
  369. data/public/ext-3.0.0/src/adapter/core/ext-base-region.js +81 -0
  370. data/public/ext-3.0.0/src/adapter/ext-base-dom-more.js +9 -0
  371. data/public/ext-3.0.0/src/adapter/jquery-bridge.js +546 -0
  372. data/public/ext-3.0.0/src/adapter/prototype-bridge.js +600 -0
  373. data/public/ext-3.0.0/src/adapter/yui-bridge.js +390 -0
  374. data/public/ext-3.0.0/src/core/CompositeElement.js +136 -0
  375. data/public/ext-3.0.0/src/core/CompositeElementLite-more.js +102 -0
  376. data/public/ext-3.0.0/src/core/DomHelper-more.js +179 -0
  377. data/public/ext-3.0.0/src/core/Element-more.js +192 -0
  378. data/public/ext-3.0.0/src/core/Element.alignment.js +370 -0
  379. data/public/ext-3.0.0/src/core/Element.dd.js +46 -0
  380. data/public/ext-3.0.0/src/core/Element.fx-more.js +152 -0
  381. data/public/ext-3.0.0/src/core/Element.insertion-more.js +52 -0
  382. data/public/ext-3.0.0/src/core/Element.keys.js +48 -0
  383. data/public/ext-3.0.0/src/core/Element.legacy.js +42 -0
  384. data/public/ext-3.0.0/src/core/Element.position-more.js +165 -0
  385. data/public/ext-3.0.0/src/core/Element.scroll-more.js +110 -0
  386. data/public/ext-3.0.0/src/core/Element.style-more.js +318 -0
  387. data/public/ext-3.0.0/src/core/Error.js +81 -0
  388. data/public/ext-3.0.0/src/core/EventManager-more.js +334 -0
  389. data/public/ext-3.0.0/src/core/Ext-more.js +669 -0
  390. data/public/ext-3.0.0/src/core/Template-more.js +115 -0
  391. data/public/ext-3.0.0/src/core/core/CompositeElementLite.js +197 -0
  392. data/public/ext-3.0.0/src/core/core/DomHelper.js +378 -0
  393. data/public/ext-3.0.0/src/core/core/DomQuery.js +826 -0
  394. data/public/ext-3.0.0/src/core/core/Element.fx.js +324 -0
  395. data/public/ext-3.0.0/src/core/core/Element.insertion.js +147 -0
  396. data/public/ext-3.0.0/src/core/core/Element.js +945 -0
  397. data/public/ext-3.0.0/src/core/core/Element.position.js +303 -0
  398. data/public/ext-3.0.0/src/core/core/Element.scroll.js +58 -0
  399. data/public/ext-3.0.0/src/core/core/Element.style.js +439 -0
  400. data/public/ext-3.0.0/src/core/core/Element.traversal.js +176 -0
  401. data/public/ext-3.0.0/src/core/core/EventManager.js +623 -0
  402. data/public/ext-3.0.0/src/core/core/Ext.js +922 -0
  403. data/public/ext-3.0.0/src/core/core/Fx.js +1115 -0
  404. data/public/ext-3.0.0/src/core/core/Template.js +185 -0
  405. data/public/ext-3.0.0/src/data/Api.js +210 -0
  406. data/public/ext-3.0.0/src/data/ArrayReader.js +102 -0
  407. data/public/ext-3.0.0/src/data/ArrayStore.js +70 -0
  408. data/public/ext-3.0.0/src/data/DataField.js +249 -0
  409. data/public/ext-3.0.0/src/data/DataProxy.js +427 -0
  410. data/public/ext-3.0.0/src/data/DataReader.js +160 -0
  411. data/public/ext-3.0.0/src/data/DataWriter.js +201 -0
  412. data/public/ext-3.0.0/src/data/DirectProxy.js +141 -0
  413. data/public/ext-3.0.0/src/data/DirectStore.js +52 -0
  414. data/public/ext-3.0.0/src/data/GroupingStore.js +139 -0
  415. data/public/ext-3.0.0/src/data/HttpProxy.js +276 -0
  416. data/public/ext-3.0.0/src/data/JsonReader.js +311 -0
  417. data/public/ext-3.0.0/src/data/JsonStore.js +49 -0
  418. data/public/ext-3.0.0/src/data/JsonWriter.js +77 -0
  419. data/public/ext-3.0.0/src/data/MemoryProxy.js +69 -0
  420. data/public/ext-3.0.0/src/data/Record.js +400 -0
  421. data/public/ext-3.0.0/src/data/ScriptTagProxy.js +279 -0
  422. data/public/ext-3.0.0/src/data/SortTypes.js +91 -0
  423. data/public/ext-3.0.0/src/data/Store.js +1492 -0
  424. data/public/ext-3.0.0/src/data/StoreMgr.js +72 -0
  425. data/public/ext-3.0.0/src/data/Tree.js +785 -0
  426. data/public/ext-3.0.0/src/data/XmlReader.js +128 -0
  427. data/public/ext-3.0.0/src/data/XmlStore.js +75 -0
  428. data/public/ext-3.0.0/src/data/XmlWriter.js +45 -0
  429. data/public/ext-3.0.0/src/data/core/Connection.js +575 -0
  430. data/public/ext-3.0.0/src/dd/DDCore.js +2992 -0
  431. data/public/ext-3.0.0/src/dd/DragSource.js +365 -0
  432. data/public/ext-3.0.0/src/dd/DragTracker.js +217 -0
  433. data/public/ext-3.0.0/src/dd/DragZone.js +133 -0
  434. data/public/ext-3.0.0/src/dd/DropTarget.js +115 -0
  435. data/public/ext-3.0.0/src/dd/DropZone.js +262 -0
  436. data/public/ext-3.0.0/src/dd/Registry.js +127 -0
  437. data/public/ext-3.0.0/src/dd/ScrollManager.js +201 -0
  438. data/public/ext-3.0.0/src/dd/StatusProxy.js +171 -0
  439. data/public/ext-3.0.0/src/debug.js +906 -0
  440. data/public/ext-3.0.0/src/direct/Direct.js +235 -0
  441. data/public/ext-3.0.0/src/direct/Event.js +34 -0
  442. data/public/ext-3.0.0/src/direct/JsonProvider.js +45 -0
  443. data/public/ext-3.0.0/src/direct/PollingProvider.js +151 -0
  444. data/public/ext-3.0.0/src/direct/Provider.js +110 -0
  445. data/public/ext-3.0.0/src/direct/RemotingProvider.js +373 -0
  446. data/public/ext-3.0.0/src/direct/Transaction.js +32 -0
  447. data/public/ext-3.0.0/src/locale/ext-lang-af.js +184 -0
  448. data/public/ext-3.0.0/src/locale/ext-lang-bg.js +278 -0
  449. data/public/ext-3.0.0/src/locale/ext-lang-ca.js +315 -0
  450. data/public/ext-3.0.0/src/locale/ext-lang-cs.js +293 -0
  451. data/public/ext-3.0.0/src/locale/ext-lang-da.js +296 -0
  452. data/public/ext-3.0.0/src/locale/ext-lang-de.js +326 -0
  453. data/public/ext-3.0.0/src/locale/ext-lang-el_GR.js +309 -0
  454. data/public/ext-3.0.0/src/locale/ext-lang-en.js +335 -0
  455. data/public/ext-3.0.0/src/locale/ext-lang-en_GB.js +315 -0
  456. data/public/ext-3.0.0/src/locale/ext-lang-es.js +318 -0
  457. data/public/ext-3.0.0/src/locale/ext-lang-fa.js +272 -0
  458. data/public/ext-3.0.0/src/locale/ext-lang-fi.js +302 -0
  459. data/public/ext-3.0.0/src/locale/ext-lang-fr.js +335 -0
  460. data/public/ext-3.0.0/src/locale/ext-lang-fr_CA.js +218 -0
  461. data/public/ext-3.0.0/src/locale/ext-lang-gr.js +175 -0
  462. data/public/ext-3.0.0/src/locale/ext-lang-he.js +292 -0
  463. data/public/ext-3.0.0/src/locale/ext-lang-hr.js +295 -0
  464. data/public/ext-3.0.0/src/locale/ext-lang-hu.js +296 -0
  465. data/public/ext-3.0.0/src/locale/ext-lang-id.js +302 -0
  466. data/public/ext-3.0.0/src/locale/ext-lang-it.js +295 -0
  467. data/public/ext-3.0.0/src/locale/ext-lang-ja.js +318 -0
  468. data/public/ext-3.0.0/src/locale/ext-lang-ko.js +267 -0
  469. data/public/ext-3.0.0/src/locale/ext-lang-lt.js +333 -0
  470. data/public/ext-3.0.0/src/locale/ext-lang-lv.js +176 -0
  471. data/public/ext-3.0.0/src/locale/ext-lang-mk.js +176 -0
  472. data/public/ext-3.0.0/src/locale/ext-lang-nl.js +323 -0
  473. data/public/ext-3.0.0/src/locale/ext-lang-no_NB.js +294 -0
  474. data/public/ext-3.0.0/src/locale/ext-lang-no_NN.js +294 -0
  475. data/public/ext-3.0.0/src/locale/ext-lang-pl.js +304 -0
  476. data/public/ext-3.0.0/src/locale/ext-lang-pt.js +260 -0
  477. data/public/ext-3.0.0/src/locale/ext-lang-pt_BR.js +302 -0
  478. data/public/ext-3.0.0/src/locale/ext-lang-pt_PT.js +298 -0
  479. data/public/ext-3.0.0/src/locale/ext-lang-ro.js +295 -0
  480. data/public/ext-3.0.0/src/locale/ext-lang-ru.js +319 -0
  481. data/public/ext-3.0.0/src/locale/ext-lang-sk.js +182 -0
  482. data/public/ext-3.0.0/src/locale/ext-lang-sl.js +176 -0
  483. data/public/ext-3.0.0/src/locale/ext-lang-sr.js +179 -0
  484. data/public/ext-3.0.0/src/locale/ext-lang-sr_RS.js +178 -0
  485. data/public/ext-3.0.0/src/locale/ext-lang-sv_SE.js +178 -0
  486. data/public/ext-3.0.0/src/locale/ext-lang-th.js +294 -0
  487. data/public/ext-3.0.0/src/locale/ext-lang-tr.js +306 -0
  488. data/public/ext-3.0.0/src/locale/ext-lang-ukr.js +258 -0
  489. data/public/ext-3.0.0/src/locale/ext-lang-vn.js +181 -0
  490. data/public/ext-3.0.0/src/locale/ext-lang-zh_CN.js +174 -0
  491. data/public/ext-3.0.0/src/locale/ext-lang-zh_TW.js +178 -0
  492. data/public/ext-3.0.0/src/state/CookieProvider.js +91 -0
  493. data/public/ext-3.0.0/src/state/Provider.js +127 -0
  494. data/public/ext-3.0.0/src/state/StateManager.js +69 -0
  495. data/public/ext-3.0.0/src/util/CSS.js +161 -0
  496. data/public/ext-3.0.0/src/util/ClickRepeater.js +200 -0
  497. data/public/ext-3.0.0/src/util/Cookies.js +96 -0
  498. data/public/ext-3.0.0/src/util/Date.js +1317 -0
  499. data/public/ext-3.0.0/src/util/Format.js +356 -0
  500. data/public/ext-3.0.0/src/util/History.js +203 -0
  501. data/public/ext-3.0.0/src/util/KeyMap.js +242 -0
  502. data/public/ext-3.0.0/src/util/KeyNav.js +161 -0
  503. data/public/ext-3.0.0/src/util/MixedCollection.js +576 -0
  504. data/public/ext-3.0.0/src/util/Observable-more.js +178 -0
  505. data/public/ext-3.0.0/src/util/TextMetrics.js +131 -0
  506. data/public/ext-3.0.0/src/util/UpdateManager.js +536 -0
  507. data/public/ext-3.0.0/src/util/XTemplate.js +379 -0
  508. data/public/ext-3.0.0/src/util/core/DelayedTask.js +68 -0
  509. data/public/ext-3.0.0/src/util/core/JSON.js +174 -0
  510. data/public/ext-3.0.0/src/util/core/Observable.js +483 -0
  511. data/public/ext-3.0.0/src/util/core/TaskMgr.js +174 -0
  512. data/public/ext-3.0.0/src/widgets/Action.js +252 -0
  513. data/public/ext-3.0.0/src/widgets/BoxComponent.js +519 -0
  514. data/public/ext-3.0.0/src/widgets/Button.js +762 -0
  515. data/public/ext-3.0.0/src/widgets/ButtonGroup.js +103 -0
  516. data/public/ext-3.0.0/src/widgets/ColorPalette.js +148 -0
  517. data/public/ext-3.0.0/src/widgets/Component.js +1540 -0
  518. data/public/ext-3.0.0/src/widgets/ComponentMgr.js +159 -0
  519. data/public/ext-3.0.0/src/widgets/Container.js +894 -0
  520. data/public/ext-3.0.0/src/widgets/CycleButton.js +188 -0
  521. data/public/ext-3.0.0/src/widgets/DataView.js +749 -0
  522. data/public/ext-3.0.0/src/widgets/DatePicker.js +771 -0
  523. data/public/ext-3.0.0/src/widgets/Editor.js +385 -0
  524. data/public/ext-3.0.0/src/widgets/Layer.js +466 -0
  525. data/public/ext-3.0.0/src/widgets/LoadMask.js +123 -0
  526. data/public/ext-3.0.0/src/widgets/MessageBox.js +626 -0
  527. data/public/ext-3.0.0/src/widgets/PagingToolbar.js +502 -0
  528. data/public/ext-3.0.0/src/widgets/Panel.js +1772 -0
  529. data/public/ext-3.0.0/src/widgets/PanelDD.js +154 -0
  530. data/public/ext-3.0.0/src/widgets/ProgressBar.js +289 -0
  531. data/public/ext-3.0.0/src/widgets/Resizable.js +760 -0
  532. data/public/ext-3.0.0/src/widgets/Shadow.js +192 -0
  533. data/public/ext-3.0.0/src/widgets/Slider.js +426 -0
  534. data/public/ext-3.0.0/src/widgets/SplitBar.js +436 -0
  535. data/public/ext-3.0.0/src/widgets/SplitButton.js +124 -0
  536. data/public/ext-3.0.0/src/widgets/TabPanel.js +1100 -0
  537. data/public/ext-3.0.0/src/widgets/Toolbar.js +781 -0
  538. data/public/ext-3.0.0/src/widgets/Viewport.js +124 -0
  539. data/public/ext-3.0.0/src/widgets/Window.js +941 -0
  540. data/public/ext-3.0.0/src/widgets/WindowManager.js +187 -0
  541. data/public/ext-3.0.0/src/widgets/chart/Chart.js +721 -0
  542. data/public/ext-3.0.0/src/widgets/chart/EventProxy.js +20 -0
  543. data/public/ext-3.0.0/src/widgets/chart/FlashComponent.js +117 -0
  544. data/public/ext-3.0.0/src/widgets/chart/swfobject.js +783 -0
  545. data/public/ext-3.0.0/src/widgets/form/Action.js +626 -0
  546. data/public/ext-3.0.0/src/widgets/form/BasicForm.js +735 -0
  547. data/public/ext-3.0.0/src/widgets/form/Checkbox.js +177 -0
  548. data/public/ext-3.0.0/src/widgets/form/CheckboxGroup.js +419 -0
  549. data/public/ext-3.0.0/src/widgets/form/Combo.js +1232 -0
  550. data/public/ext-3.0.0/src/widgets/form/DateField.js +389 -0
  551. data/public/ext-3.0.0/src/widgets/form/DisplayField.js +98 -0
  552. data/public/ext-3.0.0/src/widgets/form/Field.js +640 -0
  553. data/public/ext-3.0.0/src/widgets/form/FieldSet.js +305 -0
  554. data/public/ext-3.0.0/src/widgets/form/Form.js +335 -0
  555. data/public/ext-3.0.0/src/widgets/form/Hidden.js +39 -0
  556. data/public/ext-3.0.0/src/widgets/form/HtmlEditor.js +1179 -0
  557. data/public/ext-3.0.0/src/widgets/form/Label.js +64 -0
  558. data/public/ext-3.0.0/src/widgets/form/NumberField.js +139 -0
  559. data/public/ext-3.0.0/src/widgets/form/Radio.js +81 -0
  560. data/public/ext-3.0.0/src/widgets/form/RadioGroup.js +116 -0
  561. data/public/ext-3.0.0/src/widgets/form/TextArea.js +117 -0
  562. data/public/ext-3.0.0/src/widgets/form/TextField.js +491 -0
  563. data/public/ext-3.0.0/src/widgets/form/TimeField.js +146 -0
  564. data/public/ext-3.0.0/src/widgets/form/TriggerField.js +328 -0
  565. data/public/ext-3.0.0/src/widgets/form/VTypes.js +135 -0
  566. data/public/ext-3.0.0/src/widgets/grid/AbstractSelectionModel.js +57 -0
  567. data/public/ext-3.0.0/src/widgets/grid/CellSelectionModel.js +262 -0
  568. data/public/ext-3.0.0/src/widgets/grid/CheckboxSelectionModel.js +103 -0
  569. data/public/ext-3.0.0/src/widgets/grid/Column.js +406 -0
  570. data/public/ext-3.0.0/src/widgets/grid/ColumnDD.js +199 -0
  571. data/public/ext-3.0.0/src/widgets/grid/ColumnModel.js +592 -0
  572. data/public/ext-3.0.0/src/widgets/grid/ColumnSplitDD.js +62 -0
  573. data/public/ext-3.0.0/src/widgets/grid/EditorGrid.js +291 -0
  574. data/public/ext-3.0.0/src/widgets/grid/GridDD.js +95 -0
  575. data/public/ext-3.0.0/src/widgets/grid/GridEditor.js +21 -0
  576. data/public/ext-3.0.0/src/widgets/grid/GridPanel.js +952 -0
  577. data/public/ext-3.0.0/src/widgets/grid/GridView.js +1776 -0
  578. data/public/ext-3.0.0/src/widgets/grid/GroupingView.js +517 -0
  579. data/public/ext-3.0.0/src/widgets/grid/PropertyGrid.js +370 -0
  580. data/public/ext-3.0.0/src/widgets/grid/RowNumberer.js +61 -0
  581. data/public/ext-3.0.0/src/widgets/grid/RowSelectionModel.js +530 -0
  582. data/public/ext-3.0.0/src/widgets/layout/AbsoluteLayout.js +82 -0
  583. data/public/ext-3.0.0/src/widgets/layout/AccordionLayout.js +177 -0
  584. data/public/ext-3.0.0/src/widgets/layout/AnchorLayout.js +200 -0
  585. data/public/ext-3.0.0/src/widgets/layout/BorderLayout.js +1108 -0
  586. data/public/ext-3.0.0/src/widgets/layout/BoxLayout.js +417 -0
  587. data/public/ext-3.0.0/src/widgets/layout/CardLayout.js +127 -0
  588. data/public/ext-3.0.0/src/widgets/layout/ColumnLayout.js +130 -0
  589. data/public/ext-3.0.0/src/widgets/layout/ContainerLayout.js +215 -0
  590. data/public/ext-3.0.0/src/widgets/layout/FitLayout.js +48 -0
  591. data/public/ext-3.0.0/src/widgets/layout/FormLayout.js +266 -0
  592. data/public/ext-3.0.0/src/widgets/layout/TableLayout.js +194 -0
  593. data/public/ext-3.0.0/src/widgets/list/ColumnResizer.js +123 -0
  594. data/public/ext-3.0.0/src/widgets/list/ListView.js +357 -0
  595. data/public/ext-3.0.0/src/widgets/list/Sorter.js +70 -0
  596. data/public/ext-3.0.0/src/widgets/menu/BaseItem.js +160 -0
  597. data/public/ext-3.0.0/src/widgets/menu/CheckItem.js +114 -0
  598. data/public/ext-3.0.0/src/widgets/menu/ColorMenu.js +72 -0
  599. data/public/ext-3.0.0/src/widgets/menu/DateMenu.js +90 -0
  600. data/public/ext-3.0.0/src/widgets/menu/Item.js +211 -0
  601. data/public/ext-3.0.0/src/widgets/menu/Menu.js +733 -0
  602. data/public/ext-3.0.0/src/widgets/menu/MenuMgr.js +211 -0
  603. data/public/ext-3.0.0/src/widgets/menu/Separator.js +46 -0
  604. data/public/ext-3.0.0/src/widgets/menu/TextItem.js +46 -0
  605. data/public/ext-3.0.0/src/widgets/tips/QuickTip.js +207 -0
  606. data/public/ext-3.0.0/src/widgets/tips/QuickTips.js +159 -0
  607. data/public/ext-3.0.0/src/widgets/tips/Tip.js +157 -0
  608. data/public/ext-3.0.0/src/widgets/tips/ToolTip.js +492 -0
  609. data/public/ext-3.0.0/src/widgets/tree/AsyncTreeNode.js +114 -0
  610. data/public/ext-3.0.0/src/widgets/tree/TreeDragZone.js +82 -0
  611. data/public/ext-3.0.0/src/widgets/tree/TreeDropZone.js +321 -0
  612. data/public/ext-3.0.0/src/widgets/tree/TreeEditor.js +160 -0
  613. data/public/ext-3.0.0/src/widgets/tree/TreeEventModel.js +169 -0
  614. data/public/ext-3.0.0/src/widgets/tree/TreeFilter.js +114 -0
  615. data/public/ext-3.0.0/src/widgets/tree/TreeLoader.js +342 -0
  616. data/public/ext-3.0.0/src/widgets/tree/TreeNode.js +546 -0
  617. data/public/ext-3.0.0/src/widgets/tree/TreeNodeUI.js +633 -0
  618. data/public/ext-3.0.0/src/widgets/tree/TreePanel.js +918 -0
  619. data/public/ext-3.0.0/src/widgets/tree/TreeSelectionModel.js +315 -0
  620. data/public/ext-3.0.0/src/widgets/tree/TreeSorter.js +106 -0
  621. data/public/js/ext-portal.js +235 -0
  622. data/public/js/global.js +7 -0
  623. data/public/js/outerframe.js +47 -0
  624. data/public/js/portal.js +713 -0
  625. data/public/js/test_chart.js +152 -0
  626. data/test/config.rb +62 -0
  627. data/test/config/hosts.yaml +5 -0
  628. data/test/config/log.yaml +1 -0
  629. data/test/config/memcache.yaml +5 -0
  630. data/test/exception.rb +39 -0
  631. data/test/method_missing.rb +14 -0
  632. data/test/module.rb +39 -0
  633. data/test/remote_lmp.rb +126 -0
  634. data/test/sinatra.rb +29 -0
  635. data/test/sinatra_base.rb +16 -0
  636. metadata +690 -0
@@ -0,0 +1,176 @@
1
+ /*!
2
+ * Ext JS Library 3.0.0
3
+ * Copyright(c) 2006-2009 Ext JS, LLC
4
+ * licensing@extjs.com
5
+ * http://www.extjs.com/license
6
+ */
7
+ /**
8
+ * @class Ext.Element
9
+ */
10
+ Ext.Element.addMethods(function(){
11
+ var PARENTNODE = 'parentNode',
12
+ NEXTSIBLING = 'nextSibling',
13
+ PREVIOUSSIBLING = 'previousSibling',
14
+ DQ = Ext.DomQuery,
15
+ GET = Ext.get;
16
+
17
+ return {
18
+ /**
19
+ * Looks at this node and then at parent nodes for a match of the passed simple selector (e.g. div.some-class or span:first-child)
20
+ * @param {String} selector The simple selector to test
21
+ * @param {Number/Mixed} maxDepth (optional) The max depth to search as a number or element (defaults to 50 || document.body)
22
+ * @param {Boolean} returnEl (optional) True to return a Ext.Element object instead of DOM node
23
+ * @return {HTMLElement} The matching DOM node (or null if no match was found)
24
+ */
25
+ findParent : function(simpleSelector, maxDepth, returnEl){
26
+ var p = this.dom,
27
+ b = document.body,
28
+ depth = 0,
29
+ stopEl;
30
+ if(Ext.isGecko && Object.prototype.toString.call(p) == '[object XULElement]') {
31
+ return null;
32
+ }
33
+ maxDepth = maxDepth || 50;
34
+ if (isNaN(maxDepth)) {
35
+ stopEl = Ext.getDom(maxDepth);
36
+ maxDepth = Number.MAX_VALUE;
37
+ }
38
+ while(p && p.nodeType == 1 && depth < maxDepth && p != b && p != stopEl){
39
+ if(DQ.is(p, simpleSelector)){
40
+ return returnEl ? GET(p) : p;
41
+ }
42
+ depth++;
43
+ p = p.parentNode;
44
+ }
45
+ return null;
46
+ },
47
+
48
+ /**
49
+ * Looks at parent nodes for a match of the passed simple selector (e.g. div.some-class or span:first-child)
50
+ * @param {String} selector The simple selector to test
51
+ * @param {Number/Mixed} maxDepth (optional) The max depth to
52
+ search as a number or element (defaults to 10 || document.body)
53
+ * @param {Boolean} returnEl (optional) True to return a Ext.Element object instead of DOM node
54
+ * @return {HTMLElement} The matching DOM node (or null if no match was found)
55
+ */
56
+ findParentNode : function(simpleSelector, maxDepth, returnEl){
57
+ var p = Ext.fly(this.dom.parentNode, '_internal');
58
+ return p ? p.findParent(simpleSelector, maxDepth, returnEl) : null;
59
+ },
60
+
61
+ /**
62
+ * Walks up the dom looking for a parent node that matches the passed simple selector (e.g. div.some-class or span:first-child).
63
+ * This is a shortcut for findParentNode() that always returns an Ext.Element.
64
+ * @param {String} selector The simple selector to test
65
+ * @param {Number/Mixed} maxDepth (optional) The max depth to
66
+ search as a number or element (defaults to 10 || document.body)
67
+ * @return {Ext.Element} The matching DOM node (or null if no match was found)
68
+ */
69
+ up : function(simpleSelector, maxDepth){
70
+ return this.findParentNode(simpleSelector, maxDepth, true);
71
+ },
72
+
73
+ /**
74
+ * Creates a {@link Ext.CompositeElement} for child nodes based on the passed CSS selector (the selector should not contain an id).
75
+ * @param {String} selector The CSS selector
76
+ * @param {Boolean} unique (optional) True to create a unique Ext.Element for each child (defaults to false, which creates a single shared flyweight object)
77
+ * @return {CompositeElement/CompositeElementLite} The composite element
78
+ */
79
+ select : function(selector, unique){
80
+ return Ext.Element.select(selector, unique, this.dom);
81
+ },
82
+
83
+ /**
84
+ * Selects child nodes based on the passed CSS selector (the selector should not contain an id).
85
+ * @param {String} selector The CSS selector
86
+ * @return {Array} An array of the matched nodes
87
+ */
88
+ query : function(selector, unique){
89
+ return DQ.select(selector, this.dom);
90
+ },
91
+
92
+ /**
93
+ * Selects a single child at any depth below this element based on the passed CSS selector (the selector should not contain an id).
94
+ * @param {String} selector The CSS selector
95
+ * @param {Boolean} returnDom (optional) True to return the DOM node instead of Ext.Element (defaults to false)
96
+ * @return {HTMLElement/Ext.Element} The child Ext.Element (or DOM node if returnDom = true)
97
+ */
98
+ child : function(selector, returnDom){
99
+ var n = DQ.selectNode(selector, this.dom);
100
+ return returnDom ? n : GET(n);
101
+ },
102
+
103
+ /**
104
+ * Selects a single *direct* child based on the passed CSS selector (the selector should not contain an id).
105
+ * @param {String} selector The CSS selector
106
+ * @param {Boolean} returnDom (optional) True to return the DOM node instead of Ext.Element (defaults to false)
107
+ * @return {HTMLElement/Ext.Element} The child Ext.Element (or DOM node if returnDom = true)
108
+ */
109
+ down : function(selector, returnDom){
110
+ var n = DQ.selectNode(" > " + selector, this.dom);
111
+ return returnDom ? n : GET(n);
112
+ },
113
+
114
+ /**
115
+ * Gets the parent node for this element, optionally chaining up trying to match a selector
116
+ * @param {String} selector (optional) Find a parent node that matches the passed simple selector
117
+ * @param {Boolean} returnDom (optional) True to return a raw dom node instead of an Ext.Element
118
+ * @return {Ext.Element/HTMLElement} The parent node or null
119
+ */
120
+ parent : function(selector, returnDom){
121
+ return this.matchNode(PARENTNODE, PARENTNODE, selector, returnDom);
122
+ },
123
+
124
+ /**
125
+ * Gets the next sibling, skipping text nodes
126
+ * @param {String} selector (optional) Find the next sibling that matches the passed simple selector
127
+ * @param {Boolean} returnDom (optional) True to return a raw dom node instead of an Ext.Element
128
+ * @return {Ext.Element/HTMLElement} The next sibling or null
129
+ */
130
+ next : function(selector, returnDom){
131
+ return this.matchNode(NEXTSIBLING, NEXTSIBLING, selector, returnDom);
132
+ },
133
+
134
+ /**
135
+ * Gets the previous sibling, skipping text nodes
136
+ * @param {String} selector (optional) Find the previous sibling that matches the passed simple selector
137
+ * @param {Boolean} returnDom (optional) True to return a raw dom node instead of an Ext.Element
138
+ * @return {Ext.Element/HTMLElement} The previous sibling or null
139
+ */
140
+ prev : function(selector, returnDom){
141
+ return this.matchNode(PREVIOUSSIBLING, PREVIOUSSIBLING, selector, returnDom);
142
+ },
143
+
144
+
145
+ /**
146
+ * Gets the first child, skipping text nodes
147
+ * @param {String} selector (optional) Find the next sibling that matches the passed simple selector
148
+ * @param {Boolean} returnDom (optional) True to return a raw dom node instead of an Ext.Element
149
+ * @return {Ext.Element/HTMLElement} The first child or null
150
+ */
151
+ first : function(selector, returnDom){
152
+ return this.matchNode(NEXTSIBLING, 'firstChild', selector, returnDom);
153
+ },
154
+
155
+ /**
156
+ * Gets the last child, skipping text nodes
157
+ * @param {String} selector (optional) Find the previous sibling that matches the passed simple selector
158
+ * @param {Boolean} returnDom (optional) True to return a raw dom node instead of an Ext.Element
159
+ * @return {Ext.Element/HTMLElement} The last child or null
160
+ */
161
+ last : function(selector, returnDom){
162
+ return this.matchNode(PREVIOUSSIBLING, 'lastChild', selector, returnDom);
163
+ },
164
+
165
+ matchNode : function(dir, start, selector, returnDom){
166
+ var n = this.dom[start];
167
+ while(n){
168
+ if(n.nodeType == 1 && (!selector || DQ.is(n, selector))){
169
+ return !returnDom ? GET(n) : n;
170
+ }
171
+ n = n[dir];
172
+ }
173
+ return null;
174
+ }
175
+ }
176
+ }());
@@ -0,0 +1,623 @@
1
+ /*!
2
+ * Ext JS Library 3.0.0
3
+ * Copyright(c) 2006-2009 Ext JS, LLC
4
+ * licensing@extjs.com
5
+ * http://www.extjs.com/license
6
+ */
7
+ /**
8
+ * @class Ext.EventManager
9
+ * Registers event handlers that want to receive a normalized EventObject instead of the standard browser event and provides
10
+ * several useful events directly.
11
+ * See {@link Ext.EventObject} for more details on normalized event objects.
12
+ * @singleton
13
+ */
14
+ Ext.EventManager = function(){
15
+ var docReadyEvent,
16
+ docReadyProcId,
17
+ docReadyState = false,
18
+ E = Ext.lib.Event,
19
+ D = Ext.lib.Dom,
20
+ DOC = document,
21
+ WINDOW = window,
22
+ IEDEFERED = "ie-deferred-loader",
23
+ DOMCONTENTLOADED = "DOMContentLoaded",
24
+ elHash = {},
25
+ propRe = /^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/;
26
+
27
+ /// There is some jquery work around stuff here that isn't needed in Ext Core.
28
+ function addListener(el, ename, fn, wrap, scope){
29
+ var id = Ext.id(el),
30
+ es = elHash[id] = elHash[id] || {};
31
+
32
+ (es[ename] = es[ename] || []).push([fn, wrap, scope]);
33
+ E.on(el, ename, wrap);
34
+
35
+ // this is a workaround for jQuery and should somehow be removed from Ext Core in the future
36
+ // without breaking ExtJS.
37
+ if(ename == "mousewheel" && el.addEventListener){ // workaround for jQuery
38
+ var args = ["DOMMouseScroll", wrap, false];
39
+ el.addEventListener.apply(el, args);
40
+ E.on(window, 'unload', function(){
41
+ el.removeEventListener.apply(el, args);
42
+ });
43
+ }
44
+ if(ename == "mousedown" && el == document){ // fix stopped mousedowns on the document
45
+ Ext.EventManager.stoppedMouseDownEvent.addListener(wrap);
46
+ }
47
+ };
48
+
49
+ function fireDocReady(){
50
+ if(!docReadyState){
51
+ Ext.isReady = docReadyState = true;
52
+ if(docReadyProcId){
53
+ clearInterval(docReadyProcId);
54
+ }
55
+ if(Ext.isGecko || Ext.isOpera) {
56
+ DOC.removeEventListener(DOMCONTENTLOADED, fireDocReady, false);
57
+ }
58
+ if(Ext.isIE){
59
+ var defer = DOC.getElementById(IEDEFERED);
60
+ if(defer){
61
+ defer.onreadystatechange = null;
62
+ defer.parentNode.removeChild(defer);
63
+ }
64
+ }
65
+ if(docReadyEvent){
66
+ docReadyEvent.fire();
67
+ docReadyEvent.clearListeners();
68
+ }
69
+ }
70
+ };
71
+
72
+ function initDocReady(){
73
+ var COMPLETE = "complete";
74
+
75
+ docReadyEvent = new Ext.util.Event();
76
+ if (Ext.isGecko || Ext.isOpera) {
77
+ DOC.addEventListener(DOMCONTENTLOADED, fireDocReady, false);
78
+ } else if (Ext.isIE){
79
+ DOC.write("<s"+'cript id=' + IEDEFERED + ' defer="defer" src="/'+'/:"></s'+"cript>");
80
+ DOC.getElementById(IEDEFERED).onreadystatechange = function(){
81
+ if(this.readyState == COMPLETE){
82
+ fireDocReady();
83
+ }
84
+ };
85
+ } else if (Ext.isWebKit){
86
+ docReadyProcId = setInterval(function(){
87
+ if(DOC.readyState == COMPLETE) {
88
+ fireDocReady();
89
+ }
90
+ }, 10);
91
+ }
92
+ // no matter what, make sure it fires on load
93
+ E.on(WINDOW, "load", fireDocReady);
94
+ };
95
+
96
+ function createTargeted(h, o){
97
+ return function(){
98
+ var args = Ext.toArray(arguments);
99
+ if(o.target == Ext.EventObject.setEvent(args[0]).target){
100
+ h.apply(this, args);
101
+ }
102
+ };
103
+ };
104
+
105
+ function createBuffered(h, o){
106
+ var task = new Ext.util.DelayedTask(h);
107
+ return function(e){
108
+ // create new event object impl so new events don't wipe out properties
109
+ task.delay(o.buffer, h, null, [new Ext.EventObjectImpl(e)]);
110
+ };
111
+ };
112
+
113
+ function createSingle(h, el, ename, fn, scope){
114
+ return function(e){
115
+ Ext.EventManager.removeListener(el, ename, fn, scope);
116
+ h(e);
117
+ };
118
+ };
119
+
120
+ function createDelayed(h, o){
121
+ return function(e){
122
+ // create new event object impl so new events don't wipe out properties
123
+ e = new Ext.EventObjectImpl(e);
124
+ setTimeout(function(){
125
+ h(e);
126
+ }, o.delay || 10);
127
+ };
128
+ };
129
+
130
+ function listen(element, ename, opt, fn, scope){
131
+ var o = !Ext.isObject(opt) ? {} : opt,
132
+ el = Ext.getDom(element);
133
+
134
+ fn = fn || o.fn;
135
+ scope = scope || o.scope;
136
+
137
+ if(!el){
138
+ throw "Error listening for \"" + ename + '\". Element "' + element + '" doesn\'t exist.';
139
+ }
140
+ function h(e){
141
+ // prevent errors while unload occurring
142
+ if(!Ext){// !window[xname]){ ==> can't we do this?
143
+ return;
144
+ }
145
+ e = Ext.EventObject.setEvent(e);
146
+ var t;
147
+ if (o.delegate) {
148
+ if(!(t = e.getTarget(o.delegate, el))){
149
+ return;
150
+ }
151
+ } else {
152
+ t = e.target;
153
+ }
154
+ if (o.stopEvent) {
155
+ e.stopEvent();
156
+ }
157
+ if (o.preventDefault) {
158
+ e.preventDefault();
159
+ }
160
+ if (o.stopPropagation) {
161
+ e.stopPropagation();
162
+ }
163
+ if (o.normalized) {
164
+ e = e.browserEvent;
165
+ }
166
+
167
+ fn.call(scope || el, e, t, o);
168
+ };
169
+ if(o.target){
170
+ h = createTargeted(h, o);
171
+ }
172
+ if(o.delay){
173
+ h = createDelayed(h, o);
174
+ }
175
+ if(o.single){
176
+ h = createSingle(h, el, ename, fn, scope);
177
+ }
178
+ if(o.buffer){
179
+ h = createBuffered(h, o);
180
+ }
181
+
182
+ addListener(el, ename, fn, h, scope);
183
+ return h;
184
+ };
185
+
186
+ var pub = {
187
+ /**
188
+ * Appends an event handler to an element. The shorthand version {@link #on} is equivalent. Typically you will
189
+ * use {@link Ext.Element#addListener} directly on an Element in favor of calling this version.
190
+ * @param {String/HTMLElement} el The html element or id to assign the event handler to
191
+ * @param {String} eventName The type of event to listen for
192
+ * @param {Function} handler The handler function the event invokes This function is passed
193
+ * the following parameters:<ul>
194
+ * <li>evt : EventObject<div class="sub-desc">The {@link Ext.EventObject EventObject} describing the event.</div></li>
195
+ * <li>t : Element<div class="sub-desc">The {@link Ext.Element Element} which was the target of the event.
196
+ * Note that this may be filtered by using the <tt>delegate</tt> option.</div></li>
197
+ * <li>o : Object<div class="sub-desc">The options object from the addListener call.</div></li>
198
+ * </ul>
199
+ * @param {Object} scope (optional) The scope (<b><code>this</code></b> reference) in which the handler function is executed. <b>Defaults to the Element</b>.
200
+ * @param {Object} options (optional) An object containing handler configuration properties.
201
+ * This may contain any of the following properties:<ul>
202
+ * <li>scope : Object<div class="sub-desc">The scope (<b><code>this</code></b> reference) in which the handler function is executed. <b>Defaults to the Element</b>.</div></li>
203
+ * <li>delegate : String<div class="sub-desc">A simple selector to filter the target or look for a descendant of the target</div></li>
204
+ * <li>stopEvent : Boolean<div class="sub-desc">True to stop the event. That is stop propagation, and prevent the default action.</div></li>
205
+ * <li>preventDefault : Boolean<div class="sub-desc">True to prevent the default action</div></li>
206
+ * <li>stopPropagation : Boolean<div class="sub-desc">True to prevent event propagation</div></li>
207
+ * <li>normalized : Boolean<div class="sub-desc">False to pass a browser event to the handler function instead of an Ext.EventObject</div></li>
208
+ * <li>delay : Number<div class="sub-desc">The number of milliseconds to delay the invocation of the handler after te event fires.</div></li>
209
+ * <li>single : Boolean<div class="sub-desc">True to add a handler to handle just the next firing of the event, and then remove itself.</div></li>
210
+ * <li>buffer : Number<div class="sub-desc">Causes the handler to be scheduled to run in an {@link Ext.util.DelayedTask} delayed
211
+ * by the specified number of milliseconds. If the event fires again within that time, the original
212
+ * handler is <em>not</em> invoked, but the new handler is scheduled in its place.</div></li>
213
+ * <li>target : Element<div class="sub-desc">Only call the handler if the event was fired on the target Element, <i>not</i> if the event was bubbled up from a child node.</div></li>
214
+ * </ul><br>
215
+ * <p>See {@link Ext.Element#addListener} for examples of how to use these options.</p>
216
+ */
217
+ addListener : function(element, eventName, fn, scope, options){
218
+ if(Ext.isObject(eventName)){
219
+ var o = eventName, e, val;
220
+ for(e in o){
221
+ val = o[e];
222
+ if(!propRe.test(e)){
223
+ if(Ext.isFunction(val)){
224
+ // shared options
225
+ listen(element, e, o, val, o.scope);
226
+ }else{
227
+ // individual options
228
+ listen(element, e, val);
229
+ }
230
+ }
231
+ }
232
+ } else {
233
+ listen(element, eventName, options, fn, scope);
234
+ }
235
+ },
236
+
237
+ /**
238
+ * Removes an event handler from an element. The shorthand version {@link #un} is equivalent. Typically
239
+ * you will use {@link Ext.Element#removeListener} directly on an Element in favor of calling this version.
240
+ * @param {String/HTMLElement} el The id or html element from which to remove the event
241
+ * @param {String} eventName The type of event
242
+ * @param {Function} fn The handler function to remove
243
+ */
244
+ removeListener : function(element, eventName, fn, scope){
245
+ var el = Ext.getDom(element),
246
+ id = Ext.id(el),
247
+ wrap;
248
+
249
+ Ext.each((elHash[id] || {})[eventName], function (v,i,a) {
250
+ if (Ext.isArray(v) && v[0] == fn && (!scope || v[2] == scope)) {
251
+ E.un(el, eventName, wrap = v[1]);
252
+ a.splice(i,1);
253
+ return false;
254
+ }
255
+ });
256
+
257
+ // jQuery workaround that should be removed from Ext Core
258
+ if(eventName == "mousewheel" && el.addEventListener && wrap){
259
+ el.removeEventListener("DOMMouseScroll", wrap, false);
260
+ }
261
+
262
+ if(eventName == "mousedown" && el == DOC && wrap){ // fix stopped mousedowns on the document
263
+ Ext.EventManager.stoppedMouseDownEvent.removeListener(wrap);
264
+ }
265
+ },
266
+
267
+ /**
268
+ * Removes all event handers from an element. Typically you will use {@link Ext.Element#removeAllListeners}
269
+ * directly on an Element in favor of calling this version.
270
+ * @param {String/HTMLElement} el The id or html element from which to remove the event
271
+ */
272
+ removeAll : function(el){
273
+ var id = Ext.id(el = Ext.getDom(el)),
274
+ es = elHash[id],
275
+ ename;
276
+
277
+ for(ename in es){
278
+ if(es.hasOwnProperty(ename)){
279
+ Ext.each(es[ename], function(v) {
280
+ E.un(el, ename, v.wrap);
281
+ });
282
+ }
283
+ }
284
+ elHash[id] = null;
285
+ },
286
+
287
+ /**
288
+ * Fires when the document is ready (before onload and before images are loaded). Can be
289
+ * accessed shorthanded as Ext.onReady().
290
+ * @param {Function} fn The method the event invokes
291
+ * @param {Object} scope (optional) An object that becomes the scope of the handler
292
+ * @param {boolean} options (optional) An object containing standard {@link #addListener} options
293
+ */
294
+ onDocumentReady : function(fn, scope, options){
295
+ if(docReadyState){ // if it already fired
296
+ docReadyEvent.addListener(fn, scope, options);
297
+ docReadyEvent.fire();
298
+ docReadyEvent.clearListeners();
299
+ } else {
300
+ if(!docReadyEvent) initDocReady();
301
+ options = options || {};
302
+ options.delay = options.delay || 1;
303
+ docReadyEvent.addListener(fn, scope, options);
304
+ }
305
+ },
306
+
307
+ elHash : elHash
308
+ };
309
+ /**
310
+ * Appends an event handler to an element. Shorthand for {@link #addListener}.
311
+ * @param {String/HTMLElement} el The html element or id to assign the event handler to
312
+ * @param {String} eventName The type of event to listen for
313
+ * @param {Function} handler The handler function the event invokes
314
+ * @param {Object} scope (optional) The scope in which to execute the handler
315
+ * function (the handler function's "this" context)
316
+ * @param {Object} options (optional) An object containing standard {@link #addListener} options
317
+ * @member Ext.EventManager
318
+ * @method on
319
+ */
320
+ pub.on = pub.addListener;
321
+ /**
322
+ * Removes an event handler from an element. Shorthand for {@link #removeListener}.
323
+ * @param {String/HTMLElement} el The id or html element from which to remove the event
324
+ * @param {String} eventName The type of event
325
+ * @param {Function} fn The handler function to remove
326
+ * @return {Boolean} True if a listener was actually removed, else false
327
+ * @member Ext.EventManager
328
+ * @method un
329
+ */
330
+ pub.un = pub.removeListener;
331
+
332
+ pub.stoppedMouseDownEvent = new Ext.util.Event();
333
+ return pub;
334
+ }();
335
+ /**
336
+ * Fires when the document is ready (before onload and before images are loaded). Shorthand of {@link Ext.EventManager#onDocumentReady}.
337
+ * @param {Function} fn The method the event invokes
338
+ * @param {Object} scope An object that becomes the scope of the handler
339
+ * @param {boolean} options (optional) An object containing standard {@link #addListener} options
340
+ * @member Ext
341
+ * @method onReady
342
+ */
343
+ Ext.onReady = Ext.EventManager.onDocumentReady;
344
+
345
+
346
+ //Initialize doc classes
347
+ (function(){
348
+
349
+ var initExtCss = function(){
350
+ // find the body element
351
+ var bd = document.body || document.getElementsByTagName('body')[0];
352
+ if(!bd){ return false; }
353
+ var cls = [' ',
354
+ Ext.isIE ? "ext-ie " + (Ext.isIE6 ? 'ext-ie6' : (Ext.isIE7 ? 'ext-ie7' : 'ext-ie8'))
355
+ : Ext.isGecko ? "ext-gecko " + (Ext.isGecko2 ? 'ext-gecko2' : 'ext-gecko3')
356
+ : Ext.isOpera ? "ext-opera"
357
+ : Ext.isWebKit ? "ext-webkit" : ""];
358
+
359
+ if(Ext.isSafari){
360
+ cls.push("ext-safari " + (Ext.isSafari2 ? 'ext-safari2' : (Ext.isSafari3 ? 'ext-safari3' : 'ext-safari4')));
361
+ }else if(Ext.isChrome){
362
+ cls.push("ext-chrome");
363
+ }
364
+
365
+ if(Ext.isMac){
366
+ cls.push("ext-mac");
367
+ }
368
+ if(Ext.isLinux){
369
+ cls.push("ext-linux");
370
+ }
371
+
372
+ if(Ext.isStrict || Ext.isBorderBox){ // add to the parent to allow for selectors like ".ext-strict .ext-ie"
373
+ var p = bd.parentNode;
374
+ if(p){
375
+ p.className += Ext.isStrict ? ' ext-strict' : ' ext-border-box';
376
+ }
377
+ }
378
+ bd.className += cls.join(' ');
379
+ return true;
380
+ }
381
+
382
+ if(!initExtCss()){
383
+ Ext.onReady(initExtCss);
384
+ }
385
+ })();
386
+
387
+
388
+ /**
389
+ * @class Ext.EventObject
390
+ * Just as {@link Ext.Element} wraps around a native DOM node, Ext.EventObject
391
+ * wraps the browser's native event-object normalizing cross-browser differences,
392
+ * such as which mouse button is clicked, keys pressed, mechanisms to stop
393
+ * event-propagation along with a method to prevent default actions from taking place.
394
+ * <p>For example:</p>
395
+ * <pre><code>
396
+ function handleClick(e, t){ // e is not a standard event object, it is a Ext.EventObject
397
+ e.preventDefault();
398
+ var target = e.getTarget(); // same as t (the target HTMLElement)
399
+ ...
400
+ }
401
+ var myDiv = {@link Ext#get Ext.get}("myDiv"); // get reference to an {@link Ext.Element}
402
+ myDiv.on( // 'on' is shorthand for addListener
403
+ "click", // perform an action on click of myDiv
404
+ handleClick // reference to the action handler
405
+ );
406
+ // other methods to do the same:
407
+ Ext.EventManager.on("myDiv", 'click', handleClick);
408
+ Ext.EventManager.addListener("myDiv", 'click', handleClick);
409
+ </code></pre>
410
+ * @singleton
411
+ */
412
+ Ext.EventObject = function(){
413
+ var E = Ext.lib.Event,
414
+ // safari keypress events for special keys return bad keycodes
415
+ safariKeys = {
416
+ 3 : 13, // enter
417
+ 63234 : 37, // left
418
+ 63235 : 39, // right
419
+ 63232 : 38, // up
420
+ 63233 : 40, // down
421
+ 63276 : 33, // page up
422
+ 63277 : 34, // page down
423
+ 63272 : 46, // delete
424
+ 63273 : 36, // home
425
+ 63275 : 35 // end
426
+ },
427
+ // normalize button clicks
428
+ btnMap = Ext.isIE ? {1:0,4:1,2:2} :
429
+ (Ext.isWebKit ? {1:0,2:1,3:2} : {0:0,1:1,2:2});
430
+
431
+ Ext.EventObjectImpl = function(e){
432
+ if(e){
433
+ this.setEvent(e.browserEvent || e);
434
+ }
435
+ };
436
+
437
+ Ext.EventObjectImpl.prototype = {
438
+ /** @private */
439
+ setEvent : function(e){
440
+ var me = this;
441
+ if(e == me || (e && e.browserEvent)){ // already wrapped
442
+ return e;
443
+ }
444
+ me.browserEvent = e;
445
+ if(e){
446
+ // normalize buttons
447
+ me.button = e.button ? btnMap[e.button] : (e.which ? e.which - 1 : -1);
448
+ if(e.type == 'click' && me.button == -1){
449
+ me.button = 0;
450
+ }
451
+ me.type = e.type;
452
+ me.shiftKey = e.shiftKey;
453
+ // mac metaKey behaves like ctrlKey
454
+ me.ctrlKey = e.ctrlKey || e.metaKey || false;
455
+ me.altKey = e.altKey;
456
+ // in getKey these will be normalized for the mac
457
+ me.keyCode = e.keyCode;
458
+ me.charCode = e.charCode;
459
+ // cache the target for the delayed and or buffered events
460
+ me.target = E.getTarget(e);
461
+ // same for XY
462
+ me.xy = E.getXY(e);
463
+ }else{
464
+ me.button = -1;
465
+ me.shiftKey = false;
466
+ me.ctrlKey = false;
467
+ me.altKey = false;
468
+ me.keyCode = 0;
469
+ me.charCode = 0;
470
+ me.target = null;
471
+ me.xy = [0, 0];
472
+ }
473
+ return me;
474
+ },
475
+
476
+ /**
477
+ * Stop the event (preventDefault and stopPropagation)
478
+ */
479
+ stopEvent : function(){
480
+ var me = this;
481
+ if(me.browserEvent){
482
+ if(me.browserEvent.type == 'mousedown'){
483
+ Ext.EventManager.stoppedMouseDownEvent.fire(me);
484
+ }
485
+ E.stopEvent(me.browserEvent);
486
+ }
487
+ },
488
+
489
+ /**
490
+ * Prevents the browsers default handling of the event.
491
+ */
492
+ preventDefault : function(){
493
+ if(this.browserEvent){
494
+ E.preventDefault(this.browserEvent);
495
+ }
496
+ },
497
+
498
+ /**
499
+ * Cancels bubbling of the event.
500
+ */
501
+ stopPropagation : function(){
502
+ var me = this;
503
+ if(me.browserEvent){
504
+ if(me.browserEvent.type == 'mousedown'){
505
+ Ext.EventManager.stoppedMouseDownEvent.fire(me);
506
+ }
507
+ E.stopPropagation(me.browserEvent);
508
+ }
509
+ },
510
+
511
+ /**
512
+ * Gets the character code for the event.
513
+ * @return {Number}
514
+ */
515
+ getCharCode : function(){
516
+ return this.charCode || this.keyCode;
517
+ },
518
+
519
+ /**
520
+ * Returns a normalized keyCode for the event.
521
+ * @return {Number} The key code
522
+ */
523
+ getKey : function(){
524
+ return this.normalizeKey(this.keyCode || this.charCode)
525
+ },
526
+
527
+ // private
528
+ normalizeKey: function(k){
529
+ return Ext.isSafari ? (safariKeys[k] || k) : k;
530
+ },
531
+
532
+ /**
533
+ * Gets the x coordinate of the event.
534
+ * @return {Number}
535
+ */
536
+ getPageX : function(){
537
+ return this.xy[0];
538
+ },
539
+
540
+ /**
541
+ * Gets the y coordinate of the event.
542
+ * @return {Number}
543
+ */
544
+ getPageY : function(){
545
+ return this.xy[1];
546
+ },
547
+
548
+ /**
549
+ * Gets the page coordinates of the event.
550
+ * @return {Array} The xy values like [x, y]
551
+ */
552
+ getXY : function(){
553
+ return this.xy;
554
+ },
555
+
556
+ /**
557
+ * Gets the target for the event.
558
+ * @param {String} selector (optional) A simple selector to filter the target or look for an ancestor of the target
559
+ * @param {Number/Mixed} maxDepth (optional) The max depth to
560
+ search as a number or element (defaults to 10 || document.body)
561
+ * @param {Boolean} returnEl (optional) True to return a Ext.Element object instead of DOM node
562
+ * @return {HTMLelement}
563
+ */
564
+ getTarget : function(selector, maxDepth, returnEl){
565
+ return selector ? Ext.fly(this.target).findParent(selector, maxDepth, returnEl) : (returnEl ? Ext.get(this.target) : this.target);
566
+ },
567
+
568
+ /**
569
+ * Gets the related target.
570
+ * @return {HTMLElement}
571
+ */
572
+ getRelatedTarget : function(){
573
+ return this.browserEvent ? E.getRelatedTarget(this.browserEvent) : null;
574
+ },
575
+
576
+ /**
577
+ * Normalizes mouse wheel delta across browsers
578
+ * @return {Number} The delta
579
+ */
580
+ getWheelDelta : function(){
581
+ var e = this.browserEvent;
582
+ var delta = 0;
583
+ if(e.wheelDelta){ /* IE/Opera. */
584
+ delta = e.wheelDelta/120;
585
+ }else if(e.detail){ /* Mozilla case. */
586
+ delta = -e.detail/3;
587
+ }
588
+ return delta;
589
+ },
590
+
591
+ /**
592
+ * Returns true if the target of this event is a child of el. Unless the allowEl parameter is set, it will return false if if the target is el.
593
+ * Example usage:<pre><code>
594
+ // Handle click on any child of an element
595
+ Ext.getBody().on('click', function(e){
596
+ if(e.within('some-el')){
597
+ alert('Clicked on a child of some-el!');
598
+ }
599
+ });
600
+
601
+ // Handle click directly on an element, ignoring clicks on child nodes
602
+ Ext.getBody().on('click', function(e,t){
603
+ if((t.id == 'some-el') && !e.within(t, true)){
604
+ alert('Clicked directly on some-el!');
605
+ }
606
+ });
607
+ </code></pre>
608
+ * @param {Mixed} el The id, DOM element or Ext.Element to check
609
+ * @param {Boolean} related (optional) true to test if the related target is within el instead of the target
610
+ * @param {Boolean} allowEl {optional} true to also check if the passed element is the target or related target
611
+ * @return {Boolean}
612
+ */
613
+ within : function(el, related, allowEl){
614
+ if(el){
615
+ var t = this[related ? "getRelatedTarget" : "getTarget"]();
616
+ return t && ((allowEl ? (t == Ext.getDom(el)) : false) || Ext.fly(el).contains(t));
617
+ }
618
+ return false;
619
+ }
620
+ };
621
+
622
+ return new Ext.EventObjectImpl();
623
+ }();