rsence-pre 2.1.0.1.pre

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 (313) hide show
  1. data/.yardopts +10 -0
  2. data/INSTALL.rdoc +330 -0
  3. data/LICENSE.txt +622 -0
  4. data/README.rdoc +98 -0
  5. data/VERSION +1 -0
  6. data/bin/rsence +25 -0
  7. data/bin/rsence-pre +25 -0
  8. data/conf/default_conf.yaml +346 -0
  9. data/conf/default_strings.yaml +76 -0
  10. data/conf/rsence_command_strings.yaml +444 -0
  11. data/docs/ExampleGuiPlugin.rdoc +193 -0
  12. data/docs/JavascriptBundles.rdoc +0 -0
  13. data/docs/PluginBundleInfo.rdoc +173 -0
  14. data/docs/PluginBundles.rdoc +96 -0
  15. data/docs/Values.rdoc +163 -0
  16. data/js/comm/autosync/autosync.js +17 -0
  17. data/js/comm/autosync/js.inc +0 -0
  18. data/js/comm/comm.js +203 -0
  19. data/js/comm/js.inc +0 -0
  20. data/js/comm/jsloader/js.inc +0 -0
  21. data/js/comm/jsloader/jsloader.js +112 -0
  22. data/js/comm/queue/js.inc +0 -0
  23. data/js/comm/queue/queue.js +184 -0
  24. data/js/comm/session/js.inc +0 -0
  25. data/js/comm/session/session.js +52 -0
  26. data/js/comm/sessionwatcher/js.inc +0 -0
  27. data/js/comm/sessionwatcher/sessionwatcher.js +44 -0
  28. data/js/comm/transporter/js.inc +0 -0
  29. data/js/comm/transporter/transporter.js +261 -0
  30. data/js/comm/urlresponder/js.inc +0 -0
  31. data/js/comm/urlresponder/urlresponder.js +149 -0
  32. data/js/comm/values/js.inc +0 -0
  33. data/js/comm/values/values.js +433 -0
  34. data/js/controls/button/button.js +72 -0
  35. data/js/controls/button/js.inc +0 -0
  36. data/js/controls/button/themes/bright/button.css +89 -0
  37. data/js/controls/button/themes/bright/button.html +7 -0
  38. data/js/controls/button/themes/bright/button_parts1-ie6.gif +0 -0
  39. data/js/controls/button/themes/bright/button_parts1.png +0 -0
  40. data/js/controls/button/themes/default/button.css +89 -0
  41. data/js/controls/button/themes/default/button.html +7 -0
  42. data/js/controls/button/themes/default/button_parts1-ie6.gif +0 -0
  43. data/js/controls/button/themes/default/button_parts1.png +0 -0
  44. data/js/controls/checkbox/checkbox.js +49 -0
  45. data/js/controls/checkbox/js.inc +0 -0
  46. data/js/controls/checkbox/themes/default/checkbox.css +69 -0
  47. data/js/controls/checkbox/themes/default/checkbox.html +5 -0
  48. data/js/controls/checkbox/themes/default/checkbox_parts1-ie6.gif +0 -0
  49. data/js/controls/checkbox/themes/default/checkbox_parts1.png +0 -0
  50. data/js/controls/dialogs/alert_sheet/alert_sheet.js +63 -0
  51. data/js/controls/dialogs/alert_sheet/js.inc +0 -0
  52. data/js/controls/dialogs/confirm_sheet/confirm_sheet.js +37 -0
  53. data/js/controls/dialogs/confirm_sheet/js.inc +0 -0
  54. data/js/controls/dialogs/sheet/js.inc +0 -0
  55. data/js/controls/dialogs/sheet/sheet.js +84 -0
  56. data/js/controls/dialogs/sheet/themes/default/sheet.css +64 -0
  57. data/js/controls/dialogs/sheet/themes/default/sheet.html +14 -0
  58. data/js/controls/dialogs/sheet/themes/default/sheet_bg-ie6.gif +0 -0
  59. data/js/controls/dialogs/sheet/themes/default/sheet_bg.png +0 -0
  60. data/js/controls/dialogs/sheet/themes/default/sheet_dim-ie6.gif +0 -0
  61. data/js/controls/dialogs/sheet/themes/default/sheet_dim.png +0 -0
  62. data/js/controls/dialogs/sheet/themes/default/sheet_parts1-ie6.gif +0 -0
  63. data/js/controls/dialogs/sheet/themes/default/sheet_parts1.png +0 -0
  64. data/js/controls/dialogs/sheet/themes/default/sheet_parts2-ie6.gif +0 -0
  65. data/js/controls/dialogs/sheet/themes/default/sheet_parts2.png +0 -0
  66. data/js/controls/dialogs/sheet/themes/default/sheet_warning-ie6.gif +0 -0
  67. data/js/controls/dialogs/sheet/themes/default/sheet_warning.png +0 -0
  68. data/js/controls/imageview/imageview.js +109 -0
  69. data/js/controls/imageview/js.inc +0 -0
  70. data/js/controls/imageview/themes/default/blank.gif +0 -0
  71. data/js/controls/passwordcontrol/js.inc +0 -0
  72. data/js/controls/passwordcontrol/passwordcontrol.js +23 -0
  73. data/js/controls/passwordcontrol/themes/default/passwordcontrol.css +0 -0
  74. data/js/controls/passwordcontrol/themes/default/passwordcontrol.html +18 -0
  75. data/js/controls/progress/progressbar/js.inc +0 -0
  76. data/js/controls/progress/progressbar/progressbar.js +40 -0
  77. data/js/controls/progress/progressbar/themes/default/progressbar.css +16 -0
  78. data/js/controls/progress/progressbar/themes/default/progressbar.html +2 -0
  79. data/js/controls/progress/progressindicator/js.inc +0 -0
  80. data/js/controls/progress/progressindicator/progressindicator.js +44 -0
  81. data/js/controls/radiobutton/js.inc +0 -0
  82. data/js/controls/radiobutton/radiobutton.js +43 -0
  83. data/js/controls/radiobutton/themes/default/radiobutton.css +69 -0
  84. data/js/controls/radiobutton/themes/default/radiobutton.html +5 -0
  85. data/js/controls/radiobutton/themes/default/radiobutton_parts1-ie6.gif +0 -0
  86. data/js/controls/radiobutton/themes/default/radiobutton_parts1.png +0 -0
  87. data/js/controls/sliders/slider/js.inc +0 -0
  88. data/js/controls/sliders/slider/slider.js +357 -0
  89. data/js/controls/sliders/slider/themes/default/hslider_tracks-ie6.gif +0 -0
  90. data/js/controls/sliders/slider/themes/default/hslider_tracks.png +0 -0
  91. data/js/controls/sliders/slider/themes/default/slider.css +108 -0
  92. data/js/controls/sliders/slider/themes/default/slider.html +5 -0
  93. data/js/controls/sliders/slider/themes/default/slider_thumbs-ie6.gif +0 -0
  94. data/js/controls/sliders/slider/themes/default/slider_thumbs.png +0 -0
  95. data/js/controls/sliders/vslider/js.inc +0 -0
  96. data/js/controls/sliders/vslider/themes/default/vslider.css +52 -0
  97. data/js/controls/sliders/vslider/themes/default/vslider.html +5 -0
  98. data/js/controls/sliders/vslider/themes/default/vslider_tracks-ie6.gif +0 -0
  99. data/js/controls/sliders/vslider/themes/default/vslider_tracks.png +0 -0
  100. data/js/controls/sliders/vslider/vslider.js +41 -0
  101. data/js/controls/stepper/js.inc +0 -0
  102. data/js/controls/stepper/stepper.js +213 -0
  103. data/js/controls/stepper/themes/default/stepper-ie6.gif +0 -0
  104. data/js/controls/stepper/themes/default/stepper.css +14 -0
  105. data/js/controls/stepper/themes/default/stepper.html +2 -0
  106. data/js/controls/stepper/themes/default/stepper.png +0 -0
  107. data/js/controls/stringview/js.inc +0 -0
  108. data/js/controls/stringview/stringview.js +49 -0
  109. data/js/controls/stringview/themes/default/stringview.css +8 -0
  110. data/js/controls/stringview/themes/default/stringview.html +1 -0
  111. data/js/controls/tab/js.inc +0 -0
  112. data/js/controls/tab/tab.js +280 -0
  113. data/js/controls/tab/themes/bright/tab.css +76 -0
  114. data/js/controls/tab/themes/bright/tab.html +6 -0
  115. data/js/controls/tab/themes/bright/tab_bg_color-ie6.gif +0 -0
  116. data/js/controls/tab/themes/bright/tab_bg_color.png +0 -0
  117. data/js/controls/tab/themes/bright/tab_border_pattern-ie6.gif +0 -0
  118. data/js/controls/tab/themes/bright/tab_border_pattern.png +0 -0
  119. data/js/controls/tab/themes/bright/tab_parts1-ie6.gif +0 -0
  120. data/js/controls/tab/themes/bright/tab_parts1.png +0 -0
  121. data/js/controls/tab/themes/default/tab.css +77 -0
  122. data/js/controls/tab/themes/default/tab.html +6 -0
  123. data/js/controls/tab/themes/default/tab_bg_color-ie6.gif +0 -0
  124. data/js/controls/tab/themes/default/tab_bg_color.png +0 -0
  125. data/js/controls/tab/themes/default/tab_border_pattern-ie6.gif +0 -0
  126. data/js/controls/tab/themes/default/tab_border_pattern.png +0 -0
  127. data/js/controls/tab/themes/default/tab_parts1-ie6.gif +0 -0
  128. data/js/controls/tab/themes/default/tab_parts1.png +0 -0
  129. data/js/controls/textarea/js.inc +0 -0
  130. data/js/controls/textarea/textarea.js +24 -0
  131. data/js/controls/textarea/themes/default/textarea.css +21 -0
  132. data/js/controls/textarea/themes/default/textarea.html +18 -0
  133. data/js/controls/textcontrol/js.inc +0 -0
  134. data/js/controls/textcontrol/textcontrol.js +374 -0
  135. data/js/controls/textcontrol/themes/default/textcontrol.css +107 -0
  136. data/js/controls/textcontrol/themes/default/textcontrol.html +18 -0
  137. data/js/controls/textcontrol/themes/default/textcontrol_parts1-ie6.gif +0 -0
  138. data/js/controls/textcontrol/themes/default/textcontrol_parts1.png +0 -0
  139. data/js/controls/textcontrol/themes/default/textcontrol_parts2-ie6.gif +0 -0
  140. data/js/controls/textcontrol/themes/default/textcontrol_parts2.png +0 -0
  141. data/js/controls/textcontrol/themes/default/textcontrol_parts3-ie6.gif +0 -0
  142. data/js/controls/textcontrol/themes/default/textcontrol_parts3.png +0 -0
  143. data/js/controls/uploader/js.inc +0 -0
  144. data/js/controls/uploader/themes/default/upload_progress.gif +0 -0
  145. data/js/controls/uploader/themes/default/uploader.css +108 -0
  146. data/js/controls/uploader/themes/default/uploader.html +27 -0
  147. data/js/controls/uploader/uploader.js +154 -0
  148. data/js/controls/validatorview/js.inc +0 -0
  149. data/js/controls/validatorview/themes/default/validator-ie6.gif +0 -0
  150. data/js/controls/validatorview/themes/default/validator.png +0 -0
  151. data/js/controls/validatorview/themes/default/validatorview.css +0 -0
  152. data/js/controls/validatorview/themes/default/validatorview.html +0 -0
  153. data/js/controls/validatorview/validatorview.js +62 -0
  154. data/js/controls/window/js.inc +0 -0
  155. data/js/controls/window/themes/default/window.css +219 -0
  156. data/js/controls/window/themes/default/window.html +17 -0
  157. data/js/controls/window/themes/default/window_bg_active-ie6.gif +0 -0
  158. data/js/controls/window/themes/default/window_bg_active.png +0 -0
  159. data/js/controls/window/themes/default/window_bg_inactive-ie6.gif +0 -0
  160. data/js/controls/window/themes/default/window_bg_inactive.png +0 -0
  161. data/js/controls/window/themes/default/window_buttons-ie6.gif +0 -0
  162. data/js/controls/window/themes/default/window_buttons.png +0 -0
  163. data/js/controls/window/themes/default/window_parts1-ie6.gif +0 -0
  164. data/js/controls/window/themes/default/window_parts1.png +0 -0
  165. data/js/controls/window/themes/default/window_parts2-ie6.gif +0 -0
  166. data/js/controls/window/themes/default/window_parts2.png +0 -0
  167. data/js/controls/window/window.js +286 -0
  168. data/js/core/class/class.js +318 -0
  169. data/js/core/class/js.inc +0 -0
  170. data/js/core/elem/elem.js +1383 -0
  171. data/js/core/elem/js.inc +0 -0
  172. data/js/core/event/event.js +153 -0
  173. data/js/core/event/js.inc +0 -0
  174. data/js/core/iefix/ie_css_element.htc +5 -0
  175. data/js/core/iefix/ie_css_style.htc +5 -0
  176. data/js/core/iefix/iefix.js +359 -0
  177. data/js/core/iefix/js.inc +0 -0
  178. data/js/core/rsence_ns/js.inc +0 -0
  179. data/js/core/rsence_ns/rsence_ns.js +21 -0
  180. data/js/datetime/calendar/calendar.js +198 -0
  181. data/js/datetime/calendar/js.inc +0 -0
  182. data/js/datetime/calendar/themes/default/calendar.css +108 -0
  183. data/js/datetime/calendar/themes/default/calendar.html +9 -0
  184. data/js/datetime/calendar/themes/default/calendar_arrows-ie6.gif +0 -0
  185. data/js/datetime/calendar/themes/default/calendar_arrows.png +0 -0
  186. data/js/datetime/datetimevalue/datetimevalue.js +247 -0
  187. data/js/datetime/datetimevalue/js.inc +0 -0
  188. data/js/datetime/timesheet/js.inc +0 -0
  189. data/js/datetime/timesheet/themes/default/timesheet.css +30 -0
  190. data/js/datetime/timesheet/themes/default/timesheet.html +2 -0
  191. data/js/datetime/timesheet/timesheet.js +183 -0
  192. data/js/datetime/timesheet_item/js.inc +0 -0
  193. data/js/datetime/timesheet_item/themes/default/timesheet_item.css +42 -0
  194. data/js/datetime/timesheet_item/themes/default/timesheet_item.html +8 -0
  195. data/js/datetime/timesheet_item/timesheet_item.js +248 -0
  196. data/js/datetime/timesheet_item_edit/js.inc +0 -0
  197. data/js/datetime/timesheet_item_edit/timesheet_item_edit.js +274 -0
  198. data/js/foundation/application/application.js +208 -0
  199. data/js/foundation/application/js.inc +0 -0
  200. data/js/foundation/control/control.js +339 -0
  201. data/js/foundation/control/controldefaults/controldefaults.js +56 -0
  202. data/js/foundation/control/controldefaults/js.inc +0 -0
  203. data/js/foundation/control/dummyvalue/dummyvalue.js +51 -0
  204. data/js/foundation/control/dummyvalue/js.inc +0 -0
  205. data/js/foundation/control/dyncontrol/dyncontrol.js +500 -0
  206. data/js/foundation/control/dyncontrol/js.inc +0 -0
  207. data/js/foundation/control/dyncontrol/themes/default/dyncontrol.css +0 -0
  208. data/js/foundation/control/dyncontrol/themes/default/dyncontrol.html +0 -0
  209. data/js/foundation/control/eventresponder/eventresponder.js +750 -0
  210. data/js/foundation/control/eventresponder/js.inc +0 -0
  211. data/js/foundation/control/js.inc +0 -0
  212. data/js/foundation/control/valuematrix/js.inc +0 -0
  213. data/js/foundation/control/valuematrix/valuematrix.js +135 -0
  214. data/js/foundation/control/valueresponder/js.inc +0 -0
  215. data/js/foundation/control/valueresponder/valueresponder.js +79 -0
  216. data/js/foundation/eventmanager/eventmanager.js +991 -0
  217. data/js/foundation/eventmanager/js.inc +0 -0
  218. data/js/foundation/geom/point/js.inc +0 -0
  219. data/js/foundation/geom/point/point.js +202 -0
  220. data/js/foundation/geom/rect/js.inc +0 -0
  221. data/js/foundation/geom/rect/rect.js +651 -0
  222. data/js/foundation/json_renderer/js.inc +0 -0
  223. data/js/foundation/json_renderer/json_renderer.js +246 -0
  224. data/js/foundation/system/js.inc +0 -0
  225. data/js/foundation/system/system.js +381 -0
  226. data/js/foundation/thememanager/js.inc +0 -0
  227. data/js/foundation/thememanager/thememanager.js +393 -0
  228. data/js/foundation/value/js.inc +0 -0
  229. data/js/foundation/value/value.js +183 -0
  230. data/js/foundation/view/js.inc +0 -0
  231. data/js/foundation/view/markupview/js.inc +0 -0
  232. data/js/foundation/view/markupview/markupview.js +114 -0
  233. data/js/foundation/view/morphanimation/js.inc +0 -0
  234. data/js/foundation/view/morphanimation/morphanimation.js +237 -0
  235. data/js/foundation/view/view.js +1812 -0
  236. data/js/foundation/view/viewdefaults/js.inc +0 -0
  237. data/js/foundation/view/viewdefaults/viewdefaults.js +26 -0
  238. data/js/lists/checkboxlist/checkboxlist.js +171 -0
  239. data/js/lists/checkboxlist/js.inc +0 -0
  240. data/js/lists/listitems/js.inc +0 -0
  241. data/js/lists/listitems/listitems.js +88 -0
  242. data/js/lists/propertylist/js.inc +0 -0
  243. data/js/lists/propertylist/propertylist.js +326 -0
  244. data/js/lists/radiobuttonlist/js.inc +0 -0
  245. data/js/lists/radiobuttonlist/radiobuttonlist.js +116 -0
  246. data/js/util/reloadapp/js.inc +0 -0
  247. data/js/util/reloadapp/reloadapp.js +152 -0
  248. data/js/util/reloadapp/themes/default/reloadapp_warning-ie6.gif +0 -0
  249. data/js/util/reloadapp/themes/default/reloadapp_warning.png +0 -0
  250. data/js/util/sha/js.inc +0 -0
  251. data/js/util/sha/sha.js +426 -0
  252. data/js/views/centerview/centerview.js +75 -0
  253. data/js/views/centerview/js.inc +0 -0
  254. data/js/views/inlineview/inlineview.js +15 -0
  255. data/js/views/inlineview/js.inc +0 -0
  256. data/js/views/scrollview/js.inc +0 -0
  257. data/js/views/scrollview/scrollview.js +40 -0
  258. data/lib/conf/argv.rb +850 -0
  259. data/lib/conf/default.rb +219 -0
  260. data/lib/daemon/daemon.rb +387 -0
  261. data/lib/daemon/sigcomm.rb +64 -0
  262. data/lib/http/broker.rb +150 -0
  263. data/lib/http/rackup.rb +91 -0
  264. data/lib/http/request.rb +66 -0
  265. data/lib/http/response.rb +65 -0
  266. data/lib/plugins/dependencies.rb +285 -0
  267. data/lib/plugins/gui_plugin.rb +160 -0
  268. data/lib/plugins/guiparser.rb +123 -0
  269. data/lib/plugins/plugin.rb +438 -0
  270. data/lib/plugins/plugin_base.rb +162 -0
  271. data/lib/plugins/plugin_plugins.rb +81 -0
  272. data/lib/plugins/plugin_sqlite_db.rb +98 -0
  273. data/lib/plugins/pluginmanager.rb +635 -0
  274. data/lib/plugins/plugins.rb +169 -0
  275. data/lib/plugins/servlet.rb +108 -0
  276. data/lib/rsence.rb +32 -0
  277. data/lib/session/msg.rb +327 -0
  278. data/lib/session/sessionmanager.rb +522 -0
  279. data/lib/session/sessionstorage.rb +340 -0
  280. data/lib/transporter/transporter.rb +263 -0
  281. data/lib/util/gzstring.rb +9 -0
  282. data/lib/util/ruby19_fixes.rb +18 -0
  283. data/lib/values/hvalue.rb +378 -0
  284. data/lib/values/valuemanager.rb +172 -0
  285. data/plugins/client_pkg/client_pkg.rb +157 -0
  286. data/plugins/client_pkg/info.yaml +25 -0
  287. data/plugins/client_pkg/lib/client_pkg_build.rb +561 -0
  288. data/plugins/client_pkg/lib/client_pkg_cache.rb +50 -0
  289. data/plugins/client_pkg/lib/client_pkg_serve.rb +218 -0
  290. data/plugins/index_html/img/loading.gif +0 -0
  291. data/plugins/index_html/img/riassence.gif +0 -0
  292. data/plugins/index_html/index_html.rb +120 -0
  293. data/plugins/index_html/info.yaml +18 -0
  294. data/plugins/index_html/tmpl/index.html +15 -0
  295. data/plugins/main/info.yaml +18 -0
  296. data/plugins/main/js/main.js +84 -0
  297. data/plugins/main/main.rb +255 -0
  298. data/plugins/main/values.yaml +8 -0
  299. data/plugins/ticket/info.yaml +21 -0
  300. data/plugins/ticket/lib/common.rb +392 -0
  301. data/plugins/ticket/lib/favicon.rb +39 -0
  302. data/plugins/ticket/lib/file.rb +58 -0
  303. data/plugins/ticket/lib/img.rb +50 -0
  304. data/plugins/ticket/lib/objblob.rb +66 -0
  305. data/plugins/ticket/lib/rsrc.rb +34 -0
  306. data/plugins/ticket/lib/upload.rb +236 -0
  307. data/plugins/ticket/ticket.rb +333 -0
  308. data/setup/welcome/gui/welcome.yaml +92 -0
  309. data/setup/welcome/info.yaml +13 -0
  310. data/setup/welcome/text/welcome.html +9 -0
  311. data/setup/welcome/values.yaml +9 -0
  312. data/setup/welcome/welcome.rb +54 -0
  313. metadata +407 -0
File without changes
@@ -0,0 +1,153 @@
1
+ /* RSence
2
+ * Copyright 2007 Riassence Inc.
3
+ * http://riassence.com/
4
+ *
5
+ * You should have received a copy of the GNU General Public License along
6
+ * with this software package. If not, contact licensing@riassence.com
7
+ */
8
+
9
+
10
+ /*** = Description
11
+ ** Abstracts the DOM Event differences between browsers.
12
+ ***/
13
+ var//RSence.Core
14
+ Event = {
15
+
16
+ /** Returns the element of the event.
17
+ **/
18
+ element: function(e) {
19
+ return e.target || e.srcElement;
20
+ },
21
+
22
+ /** Returns the mouse cursor x -coordinate of the event.
23
+ **/
24
+ pointerX: function(e) {
25
+ return e.pageX || e.clientX + document.documentElement.scrollLeft;
26
+ },
27
+
28
+ /** Returns the mouse cursor y -coordinate of the event.
29
+ **/
30
+ pointerY: function(e) {
31
+ return e.pageY || e.clientY + document.documentElement.scrollTop;
32
+ },
33
+
34
+ /** Stops event propagation
35
+ **/
36
+ stop: function(e) {
37
+ if (e.preventDefault) {
38
+ e.preventDefault();
39
+ e.stopPropagation();
40
+ }
41
+ else {
42
+ e.returnValue = false;
43
+ e.cancelBubble = true;
44
+ }
45
+ },
46
+
47
+ /** Returns true if the left mouse butten was clicked.
48
+ **/
49
+ isLeftClick: function(e) {
50
+ // IE: left 1, middle 4, right 2
51
+ if (BROWSER_TYPE.ie) {
52
+ return (e.button === 1 || e.button === 3 || e.button === 5);
53
+ }
54
+ else {
55
+ return (e.button === 0);
56
+ }
57
+ },
58
+
59
+ /** List of event observers
60
+ **/
61
+ observers: false,
62
+
63
+ /* Implementation of observe */
64
+ _observeAndCache: function(_elem, _name, _function, _useCapture) {
65
+ if (!Event.observers) {
66
+ Event.observers = [];
67
+ }
68
+ if (_elem.addEventListener) {
69
+ this.observers.push([_elem, _name, _function, _useCapture]);
70
+ _elem.addEventListener(_name, _function, _useCapture);
71
+ }
72
+ else if (_elem.attachEvent) {
73
+ this.observers.push([_elem, _name, _function, _useCapture]);
74
+ _elem.attachEvent("on" + _name, _function);
75
+ }
76
+ },
77
+
78
+ /** Flushes the event observer cache.
79
+ **/
80
+ unloadCache: function() {
81
+ if (!Event.observers) {
82
+ return;
83
+ }
84
+ var i,
85
+ l = Event.observers.length;
86
+ for (i = 0; i < l; i++) {
87
+ try {
88
+ Event.stopObserving.apply(this, Event.observers[0]);
89
+ }
90
+ catch(e){}
91
+ }
92
+ Event.observers = false;
93
+ },
94
+
95
+ /** Starts observing the named event of the element and
96
+ * specifies a callback function.
97
+ **/
98
+ observe: function(_elem, _name, _function, _useCapture) {
99
+ _useCapture = _useCapture || false;
100
+ Event._observeAndCache(_elem, _name, _function, _useCapture);
101
+ },
102
+
103
+ /** Stops observing the named event of the element and
104
+ * removes the callback function.
105
+ **/
106
+ stopObserving: function(_elem, _name, _function, _useCapture) {
107
+ if (_elem === undefined) {
108
+ console.log('Warning Event.stopObserving of event name: "' + _name + '" called with an undefined elem!');
109
+ return;
110
+ }
111
+ _useCapture = _useCapture || false;
112
+ if (_elem['removeEventListener']) {
113
+ _elem.removeEventListener(_name, _function, _useCapture);
114
+ }
115
+ else if (detachEvent) {
116
+ _elem.detachEvent("on" + _name, _function);
117
+ }
118
+ var i = 0;
119
+ while (i < Event.observers.length) {
120
+ var eo = Event.observers[i];
121
+ if (eo && eo[0] === _elem && eo[1] === _name && eo[2] === _function && eo[3] === _useCapture) {
122
+ Event.observers[i] = null;
123
+ Event.observers.splice(i, 1);
124
+ }
125
+ else {
126
+ i++;
127
+ }
128
+ }
129
+ },
130
+
131
+ // List of ASCII "special characters":
132
+ KEY_BACKSPACE: 8,
133
+ KEY_TAB: 9,
134
+ KEY_RETURN: 13,
135
+ KEY_ESC: 27,
136
+ KEY_LEFT: 37,
137
+ KEY_UP: 38,
138
+ KEY_RIGHT: 39,
139
+ KEY_DOWN: 40,
140
+ KEY_DELETE: 46,
141
+ KEY_HOME: 36,
142
+ KEY_END: 35,
143
+ KEY_PAGEUP: 33,
144
+ KEY_PAGEDOWN: 34
145
+
146
+ };
147
+
148
+ // Activates the garbage collector of Internet Explorer
149
+ // when the document is unloaded:
150
+ if (BROWSER_TYPE.ie) {
151
+ Event.observe(window, "unload", Event.unloadCache, false);
152
+ }
153
+
File without changes
@@ -0,0 +1,5 @@
1
+ <PUBLIC:COMPONENT lightWeight="true">
2
+ <script type="text/javascript">
3
+ try{element.attachEvent("onpropertychange",iefix.htcElementEntry);}catch(e){window.status=e;}
4
+ </script>
5
+ </PUBLIC:COMPONENT>
@@ -0,0 +1,5 @@
1
+ <PUBLIC:COMPONENT lightWeight="true">
2
+ <script type="text/javascript">
3
+ element.attachEvent("onreadystatechange", iefix.htcStyleEntry);
4
+ </script>
5
+ </PUBLIC:COMPONENT>
@@ -0,0 +1,359 @@
1
+ /* RSence
2
+ * Copyright 2006 Riassence Inc.
3
+ * http://riassence.com/
4
+ *
5
+ * You should have received a copy of the GNU General Public License along
6
+ * with this software package. If not, contact licensing@riassence.com
7
+ */
8
+
9
+ // Injects htc stuff into IE
10
+ ie_htc_path = null;
11
+ function ie_early_fixes() {
12
+ try{
13
+ document.execCommand("BackgroundImageCache",false,true);
14
+ }
15
+ catch(e){}
16
+
17
+ var _script = document.scripts[document.scripts.length - 1],
18
+ _src = _script.src;
19
+
20
+ ie_htc_path = _src.substring(0, _src.lastIndexOf("/") + 1);
21
+
22
+ }
23
+ ie_early_fixes();
24
+
25
+ /***
26
+ **** iefix contains a collection of fixes for IE's bad behavior
27
+ ***/
28
+ iefix = {
29
+
30
+ // call this on resize, loaded events:
31
+ setWinSize: function(){
32
+ window.innerWidth=document.documentElement.clientWidth;
33
+ window.innerHeight=document.documentElement.clientHeight;
34
+ },
35
+
36
+ // checks if the element has the .hasLayout flag set:
37
+ _hasLayout: function(_element){
38
+ return _element.currentStyle.hasLayout;
39
+ },
40
+
41
+ // finds the next parent with fixed or absolute positioning:
42
+ // NOTICE: .init() makes ._layoutHeight() from this by replacing width with height
43
+ layoutWidth: function(_element) {
44
+ var _this=iefix,
45
+ _parent,
46
+ i=0,
47
+ // gets the parent from which the width is calculated
48
+ _layoutParent=_element.offsetParent;
49
+ while(_layoutParent&&!_this._hasLayout(_layoutParent)){
50
+ _layoutParent=_layoutParent.offsetParent;
51
+ }
52
+ if(!_layoutParent._resizewidthElements){
53
+ _layoutParent._resizewidthElements=[];
54
+ }
55
+ if(!_element._addedResizewidthFix){
56
+ _layoutParent._resizewidthElements.push(_element);
57
+ _parent=_layoutParent;
58
+ while(_parent.offsetParent){
59
+ _parent=_parent.offsetParent;
60
+ if(_parent._resizewidthElements){_parent._resizewidthElements.push(_element);}
61
+ if(_parent.style.position==="absolute"||_parent.style.position==="fixed"){break;}
62
+ }
63
+ _element._addedResizewidthFix=true;
64
+ }
65
+ if(!_layoutParent._resizewidth){
66
+ _layoutParent.attachEvent("onpropertychange", function(){
67
+ if(window.event.propertyName==="style.width"){
68
+ for (;i<_layoutParent._resizewidthElements.length;i++){
69
+ _this.resizeRight(_layoutParent._resizewidthElements[i]);
70
+ }
71
+ }
72
+ });
73
+ _layoutParent._resizewidth=true;
74
+ }
75
+ return (_layoutParent||document.documentElement).clientWidth;
76
+ },
77
+
78
+ // // calculates the border width of the _element:
79
+ // // NOTICE: .init() makes ._getBorderHeight() from this by replacing Width with Height
80
+ // getBorderWidth: function(_element){
81
+ // return _element.offsetWidth-_element.clientWidth;
82
+ // },
83
+
84
+ // calculates the actual value in pixels from _value:
85
+ getPixelValue: function(_element,_value) {
86
+ var _this=iefix,_style,_runtimeStyle;
87
+ if(_this._PIXEL.test(_value)){return parseInt(_value,10);}
88
+ // saves style in temp
89
+ _style=_element.style.left;
90
+ _runtimeStyle=_element.runtimeStyle.left;
91
+ _element.runtimeStyle.left=_element.currentStyle.left;
92
+ _this.resizing=true;
93
+ _element.style.left=_value||0;
94
+ // has pixel value
95
+ _value=_element.style.pixelLeft;
96
+ _element.style.left=_style;
97
+ _this.resizing=false;
98
+ _element.runtimeStyle.left=_runtimeStyle;
99
+ return _value;
100
+ },
101
+
102
+ // calculates pixel value from the value given (even percentages)
103
+ // NOTICE: .init() makes ._getPixelHeght() from this by replacing Width with Height
104
+ getPixelWidth: function(_element,_value){
105
+ var _this=iefix;
106
+ if(_this._PERCENT.test(_value)){return parseInt(parseFloat(_value)/100*_this.layoutWidth(_element),10);}
107
+ return _this.getPixelValue(_element, _value);
108
+ },
109
+
110
+ // // calculates padding width of the _element:
111
+ // // NOTICE: .init() makes .getPaddingHeight() from this by replacing Left/Right/Width with Top/Bottom/Height
112
+ // // NOTICE: .init() also makes ._getMarginWidth() and ._getMarginHeight from this.
113
+ // getPaddingWidth: function(_element) {
114
+ // var _this=iefix;
115
+ // return _this.getPixelWidth(_element,_element.currentStyle.paddingLeft)+_this.getPixelWidth(_element,_element.currentStyle.paddingRight);
116
+ // },
117
+
118
+ // calculates element's position from the right edge of the parent:
119
+ // NOTICE: .init() makes _resizeBottom() from this by replacing left/width with top/height
120
+ resizeRight: function(_element){
121
+ var _this=iefix,_left,_width;
122
+ //window.status = 'resizeRight';
123
+ if(_element.currentStyle===null){return;}
124
+ _left=parseInt(_element.currentStyle.left,10);
125
+ _width=_this.layoutWidth(_element)-parseInt(_element.currentStyle.right,10)-_left;
126
+ if(parseInt(_element.runtimeStyle.width,10)===_width){return;}
127
+ _element.runtimeStyle.width="";
128
+ if(_element.offsetWidth<_width){
129
+ // Disabled, because no-one uses quirks mode anymore, right?
130
+ // _width-=_this.getBorderWidth(_element)+_this.getPaddingWidth(_element);
131
+ if(_width<0){_width=0;}
132
+ _element.runtimeStyle.width=_width;
133
+ }
134
+ },
135
+
136
+ // (css-property) opacity fix:
137
+ fixOpacity: function(_element){
138
+ var _opacity=(parseFloat(_element.currentStyle.opacity)*100)||1,
139
+ _filter=_element.filters["DXImageTransform.Microsoft.Alpha"];
140
+ if(_filter){_filter.Opacity=_opacity;_filter.Enabled=true;}
141
+ else{_element.runtimeStyle.filter+="progid:DXImageTransform.Microsoft.Alpha(opacity="+_opacity+")";}
142
+ },
143
+
144
+ // png background image fix:
145
+ fixBackgroundImage: function(_element) {
146
+ //window.status='fixBackgroundImage: ';
147
+ var _this=iefix,_url,_filter;
148
+ _url=_element.currentStyle.backgroundImage.match(/url\(\s*['"]?([^'")]+)['"]?\s*\)/);
149
+ //window.status+=' url:'+_url;
150
+ //window.status+=' pngCheck:'+_this.pngCheck.test(_url);
151
+ if(!_url){return;}
152
+ else{_url=_url[1];}
153
+ _filter=_element.filters["DXImageTransform.Microsoft.AlphaImageLoader"];
154
+ if(_this.pngCheck.test(_url)){ // needs more work
155
+ // access before filter is set makes error
156
+ if(_filter){
157
+ _filter.sizingMethod="crop";
158
+ _filter.src=_url;
159
+ _filter.Enabled=true;
160
+ }
161
+ else{
162
+ _element.runtimeStyle.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+_url+"',sizingMethod='crop')";
163
+ }
164
+ _element.runtimeStyle.zoom="0";
165
+ _element.runtimeStyle.backgroundImage="none";
166
+ }
167
+ else if(_filter){
168
+ _filter.Enabled=false;
169
+ }
170
+ },
171
+
172
+ // png img opacity fix:
173
+ addFilter: function(_element,_image){
174
+ var _this=iefix,_filter,_tempUrl;
175
+ _filter=_element.filters["DXImageTransform.Microsoft.AlphaImageLoader"];
176
+ if(_filter){_filter.src=_element.src;_filter.Enabled=true;}
177
+ else{_element.runtimeStyle.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+_element.src+"',sizingMethod='scale')";}
178
+ _tempURL=_element.src;
179
+ _element.src=_this.blankGifPath;
180
+ _image.src=_tempURL;
181
+ },
182
+
183
+ // checks if image is png
184
+ fixImg: function(_element){
185
+ var _this=iefix,_image;
186
+ if(_this.pngCheck.test(_element.src)){ // needs more work
187
+ _image=new Image(_element.width,_element.height);
188
+ _image.onload=function(){_element.width=_image.width;_element.height=_image.height;_image=null;};
189
+ _this.addFilter(_element,_image);
190
+ }
191
+ },
192
+
193
+ _noStyleTagNames: ['PARAM','HTML'],
194
+ // applies fixes to the _element
195
+ inlineStyleChanged: function(_element){
196
+ var _this=iefix,
197
+ _currentStyle=_element.currentStyle;
198
+ if(_this._noStyleTagNames.indexOf(_element.tagName)!==-1){
199
+ return;
200
+ }
201
+ // check if element needs to be positioned from the right
202
+ try{
203
+ var _posMatch = (_currentStyle.position==="absolute"||_currentStyle.position==="fixed"),
204
+ _resizeWidth = _element._resizewidth,
205
+ _resizeHeight = _element._resizeheight,
206
+ _autoRight = _currentStyle.right==="auto",
207
+ _autoBottom = _currentStyle.bottom==="auto";
208
+ if(_resizeWidth||(_posMatch&&!_autoRight)){
209
+ _this.resizeRight(_element);
210
+ }
211
+ // check if element needs to be positioned from the bottom
212
+ if(_resizeHeight||(_posMatch&&!_autoBottom)){
213
+ _this.resizeBottom(_element);
214
+ if(parseInt(_element.height)>parseInt(_element.fontSize,10)){
215
+ // TODO: needs line height calculation here too for elements smaller than the line height or font size
216
+ _element.fontSize = _element.height;
217
+ _element.lineHeight = _element.height;
218
+ }
219
+ }
220
+
221
+ // check if opacity needs to be fixed:
222
+ if(_element.currentStyle.opacity){_this.fixOpacity(_element);}
223
+
224
+ } catch(e) {
225
+ console.log("iefix error! element:",_element);
226
+ }
227
+
228
+ // check if background image needs to be fixed:
229
+ //if(_element.currentStyle.backgroundImage){_this.fixBackgroundImage(_element);}
230
+
231
+ // check if png needs to be fixed:
232
+ //if(_element.tagName==="IMG"||(_element.tagName==="INPUT"&&_element.type==="image")){_this.fixImg(_element);}
233
+
234
+ // anti-click-through fix:
235
+ //else
236
+ if(_element.style.backgroundColor==='transparent'&&(_element.style.backgroundImage==='none'||!_element.style.backgroundImage)){
237
+ _element.style.backgroundImage="url("+ie_htc_path+"128.gif)"; // transparent gif, 128x128
238
+ }
239
+ },
240
+
241
+ _traverseCount: 0,
242
+ // traverses from the _element node from the bottom to fix right|bottom positioning
243
+ _traverseTree: function(_element){
244
+ var _this=iefix;
245
+ _this._traverseCount++;
246
+ // console.log( 'traversecount: '+_this._traverseCount );
247
+ _element=_element||document.documentElement;
248
+ while(_element){
249
+ if(_element.nodeType===1){
250
+ _this.inlineStyleChanged(_element);
251
+ }
252
+ var _next=_element.firstChild;
253
+ if(!_next){ _next=_element.nextSibling;}
254
+ while(!_next&&_element.parentNode) {
255
+ _element=_element.parentNode;
256
+ _next=_element.nextSibling;
257
+ }
258
+ _element=_next;
259
+ }
260
+ },
261
+
262
+ // triggers an htc style event to elements affected by the style.
263
+ stylesheet_refresh: function(_styleSheet){
264
+ _styleSheet.cssText += "";
265
+ },
266
+
267
+ // initial constructs
268
+ init: function() {
269
+ var _this = iefix;
270
+ _this._AUTO = /^(auto|0cm)$/;
271
+ _this._PIXEL = /^\d+(px)?$/i;
272
+ _this._PERCENT = /^\d+%$/;
273
+ _this.pngCheck = new RegExp(".png$", "i"); // needs more work
274
+ //this.pngCheck = new RegExp("((\.gif)|(\.jpg))$", "i"); // needs more work
275
+ // needed for png hack
276
+ _this.blankGifPath=ie_htc_path+"0.gif";
277
+ // eval("_this.getMarginWidth="+String(_this.getPaddingWidth).replace(/padding/g,"margin"));
278
+ // eval("_this.getPaddingHeight="+String(_this.getPaddingWidth).replace(/Width/g,"Height").replace(/Left/g,"Top").replace(/Right/g,"Bottom"));
279
+ // eval("_this.getMarginHeight="+String(_this.getPaddingHeight).replace(/padding/g,"margin"));
280
+ // eval("_this.getBorderHeight="+String(_this.getBorderWidth).replace(/Width/g,"Height"));
281
+ eval("_this.layoutHeight="+String(_this.layoutWidth).replace(/Width/g,"Height").replace(/width/g,"height").replace(/Right/g,"Bottom"));
282
+ eval("_this.getPixelHeight="+String(_this.getPixelWidth).replace(/Width/g,"Height"));
283
+ eval("_this.resizeBottom="+String(_this.resizeRight).replace(/Width/g,"Height").replace(/width/g,"height").replace(/left/g,"top").replace(/right/g,"bottom"));
284
+ _this.resizing = false;
285
+ },
286
+
287
+ // entry point from ie_css_style.htc
288
+ htcStyleEntry: function(){
289
+ //window.status = 'htcStyleEntry';
290
+ if(document.readyState==="complete"&&window.event.srcElement.readyState==="complete"){
291
+ iefix._traverseTree();
292
+ }
293
+ },
294
+
295
+ _traverseStyleProperties: ['width','height','left','top','right','bottom','display','position','visibility'],
296
+ //_traverseStyleProperties: ['right','bottom','width','height'],
297
+
298
+ //_elemEntryCount: 0,
299
+
300
+ // entry point from ie_css_element.htc
301
+ htcElementEntry: function(){
302
+ //iefix._elemEntryCount++;
303
+ //window.status="htcElementEntry: "+iefix._elemEntryCount;
304
+ var _element=window.event.srcElement, _propName=window.event.propertyName;
305
+ if (_propName==="style.opacity"){
306
+ //window.status = 'htcElementEntry: '+iefix._elemEntryCount+' opacity';
307
+ iefix.fixOpacity(_element);
308
+ }
309
+ else if((_propName==="src"&&_element.tagName==="IMG")||(_element.tagName==="INPUT"&&_element.type==="image")){
310
+ window.status = 'htcElementEntry: '+iefix._elemEntryCount+' img';
311
+ iefix.fixImg(_element);
312
+ }
313
+ //else if(_propName==='style.cssText'){
314
+ //window.status = 'htcElementEntry: '+iefix._elemEntryCount+' cssText';
315
+ //iefix._traverseTree();
316
+ //}
317
+ else if(_propName.substring(0,6)==='style.'){
318
+ if(iefix._traverseStyleProperties.indexOf(_propName.split('style.')[1])!==-1){
319
+ //window.status = 'htcElementEntry: '+iefix._elemEntryCount+' style';
320
+ iefix._traverseTree();
321
+ }
322
+
323
+ /*
324
+ else {
325
+ window.status+=window.event.propertyName+' ';
326
+ }*/
327
+
328
+ }
329
+ //iefix._traverseTree(); // really should have more checks, this impacts performance heavily!
330
+
331
+ }
332
+ };
333
+ iefix.init();
334
+
335
+
336
+ ie_complete=document.readyState==="complete";
337
+ ie_initialized=false;
338
+
339
+ ie_documentLoaded=function(){if(document.readyState==="complete"){iefix._traverseTree();}};
340
+ ie_fixes=function(){
341
+ if( !ie_initialized
342
+ ){
343
+ if(ie_complete){
344
+ //var _stylesheet=document.createStyleSheet();
345
+ //_stylesheet.cssText='style,link{behavior:url('+ie_htc_path+'ie_css_style.htc)}\n*{behavior:url('+ie_htc_path+'ie_css_element.htc)}';
346
+ ie_documentLoaded();
347
+ }
348
+ else{
349
+ //document.write('<style type="text/css">style,link{behavior:url('+ie_htc_path+'ie_css_style.htc)}\n*{behavior:url('+ie_htc_path+'ie_css_element.htc)}</style>');
350
+ document.onreadystatechange=ie_documentLoaded;
351
+ }
352
+ ie_initialized=true;
353
+ }
354
+ };
355
+ ie_fixes();
356
+ // window.onresize=function(){iefix.setWinSize();iefix._traverseTree();};
357
+
358
+
359
+
File without changes
File without changes
@@ -0,0 +1,21 @@
1
+ /* RSence
2
+ * Copyright 2010 Riassence Inc.
3
+ * http://riassence.com/
4
+ *
5
+ * You should have received a copy of the GNU General Public License along
6
+ * with this software package. If not, contact licensing@riassence.com
7
+ */
8
+
9
+ // RSence namespace, nothing here yet.
10
+ // However, a future version of client_pkg will pack var's assigned like..
11
+ // var//RSence
12
+ // ..into this namespace.
13
+ // Additional logic for handling the namespaces will however be required.
14
+ var RSence = {
15
+ serverConf: function(_clientPrefix,_helloUrl){
16
+ COMM.ClientPrefix=_clientPrefix;
17
+ COMM.Transporter.HelloUrl=_helloUrl;
18
+ HThemeManager.themePath=_clientPrefix+'/themes';
19
+ }
20
+ };
21
+