redmine_dhtmlx 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (405) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/app/assets/dhtmlx/gantt/dhtmlxgantt.css +9 -0
  4. data/app/assets/dhtmlx/gantt/dhtmlxgantt.js +312 -0
  5. data/app/assets/dhtmlx/gantt/ext/dhtmlxgantt_csp.js +14 -0
  6. data/app/assets/dhtmlx/gantt/ext/dhtmlxgantt_fullscreen.js +14 -0
  7. data/app/assets/dhtmlx/gantt/ext/dhtmlxgantt_marker.js +13 -0
  8. data/app/assets/dhtmlx/gantt/ext/dhtmlxgantt_multiselect.js +17 -0
  9. data/app/assets/dhtmlx/gantt/ext/dhtmlxgantt_quick_info.js +18 -0
  10. data/app/assets/dhtmlx/gantt/ext/dhtmlxgantt_tooltip.js +15 -0
  11. data/app/assets/dhtmlx/gantt/locale/locale.js +11 -0
  12. data/app/assets/dhtmlx/gantt/locale/locale_ar.js +12 -0
  13. data/app/assets/dhtmlx/gantt/locale/locale_be.js +12 -0
  14. data/app/assets/dhtmlx/gantt/locale/locale_ca.js +12 -0
  15. data/app/assets/dhtmlx/gantt/locale/locale_cn.js +11 -0
  16. data/app/assets/dhtmlx/gantt/locale/locale_cs.js +12 -0
  17. data/app/assets/dhtmlx/gantt/locale/locale_da.js +12 -0
  18. data/app/assets/dhtmlx/gantt/locale/locale_de.js +12 -0
  19. data/app/assets/dhtmlx/gantt/locale/locale_el.js +12 -0
  20. data/app/assets/dhtmlx/gantt/locale/locale_es.js +12 -0
  21. data/app/assets/dhtmlx/gantt/locale/locale_fi.js +12 -0
  22. data/app/assets/dhtmlx/gantt/locale/locale_fr.js +12 -0
  23. data/app/assets/dhtmlx/gantt/locale/locale_he.js +11 -0
  24. data/app/assets/dhtmlx/gantt/locale/locale_hu.js +12 -0
  25. data/app/assets/dhtmlx/gantt/locale/locale_id.js +12 -0
  26. data/app/assets/dhtmlx/gantt/locale/locale_it.js +12 -0
  27. data/app/assets/dhtmlx/gantt/locale/locale_jp.js +11 -0
  28. data/app/assets/dhtmlx/gantt/locale/locale_kr.js +11 -0
  29. data/app/assets/dhtmlx/gantt/locale/locale_nb.js +12 -0
  30. data/app/assets/dhtmlx/gantt/locale/locale_nl.js +12 -0
  31. data/app/assets/dhtmlx/gantt/locale/locale_no.js +12 -0
  32. data/app/assets/dhtmlx/gantt/locale/locale_pl.js +12 -0
  33. data/app/assets/dhtmlx/gantt/locale/locale_pt.js +12 -0
  34. data/app/assets/dhtmlx/gantt/locale/locale_ro.js +12 -0
  35. data/app/assets/dhtmlx/gantt/locale/locale_ru.js +12 -0
  36. data/app/assets/dhtmlx/gantt/locale/locale_si.js +12 -0
  37. data/app/assets/dhtmlx/gantt/locale/locale_sk.js +12 -0
  38. data/app/assets/dhtmlx/gantt/locale/locale_sv.js +12 -0
  39. data/app/assets/dhtmlx/gantt/locale/locale_tr.js +12 -0
  40. data/app/assets/dhtmlx/gantt/locale/locale_ua.js +12 -0
  41. data/app/assets/dhtmlx/gantt/skins/dhtmlxgantt_broadway.css +9 -0
  42. data/app/assets/dhtmlx/gantt/skins/dhtmlxgantt_meadow.css +9 -0
  43. data/app/assets/dhtmlx/gantt/skins/dhtmlxgantt_skyblue.css +9 -0
  44. data/app/assets/dhtmlx/gantt/skins/dhtmlxgantt_terrace.css +9 -0
  45. data/app/assets/dhtmlx/scheduler/dhtmlxscheduler.css +9 -0
  46. data/app/assets/dhtmlx/scheduler/dhtmlxscheduler.js +318 -0
  47. data/app/assets/dhtmlx/scheduler/dhtmlxscheduler_classic.css +9 -0
  48. data/app/assets/dhtmlx/scheduler/dhtmlxscheduler_flat.css +9 -0
  49. data/app/assets/dhtmlx/scheduler/dhtmlxscheduler_glossy.css +9 -0
  50. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_active_links.js +12 -0
  51. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_agenda_view.js +17 -0
  52. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_all_timed.js +18 -0
  53. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_collision.js +15 -0
  54. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_container_autoresize.js +20 -0
  55. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_cookie.js +13 -0
  56. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_editors.js +18 -0
  57. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_expand.js +13 -0
  58. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_html_templates.js +10 -0
  59. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_key_nav.js +15 -0
  60. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_layer.js +37 -0
  61. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_limit.js +50 -0
  62. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_map_view.js +40 -0
  63. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_minical.js +37 -0
  64. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_monthheight.js +11 -0
  65. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_multiselect.js +13 -0
  66. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_multisource.js +10 -0
  67. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_mvc.js +15 -0
  68. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_offline.js +16 -0
  69. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_outerdrag.js +13 -0
  70. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_pdf.js +32 -0
  71. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_quick_info.js +21 -0
  72. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_readonly.js +16 -0
  73. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_recurring.js +59 -0
  74. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_serialize.js +15 -0
  75. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_tooltip.js +21 -0
  76. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_url.js +12 -0
  77. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_wp.js +10 -0
  78. data/app/assets/dhtmlx/scheduler/ext/dhtmlxscheduler_year_view.js +31 -0
  79. data/app/assets/dhtmlx/scheduler/imgs/but_repeat.gif +0 -0
  80. data/app/assets/dhtmlx/scheduler/imgs/buttons.png +0 -0
  81. data/app/assets/dhtmlx/scheduler/imgs/calendar.gif +0 -0
  82. data/app/assets/dhtmlx/scheduler/imgs/clock_big.gif +0 -0
  83. data/app/assets/dhtmlx/scheduler/imgs/clock_small.gif +0 -0
  84. data/app/assets/dhtmlx/scheduler/imgs/collapse_expand_icon.gif +0 -0
  85. data/app/assets/dhtmlx/scheduler/imgs/controls.gif +0 -0
  86. data/app/assets/dhtmlx/scheduler/imgs/databg.png +0 -0
  87. data/app/assets/dhtmlx/scheduler/imgs/databg_now.png +0 -0
  88. data/app/assets/dhtmlx/scheduler/imgs/export_ical.png +0 -0
  89. data/app/assets/dhtmlx/scheduler/imgs/export_pdf.png +0 -0
  90. data/app/assets/dhtmlx/scheduler/imgs/icon.png +0 -0
  91. data/app/assets/dhtmlx/scheduler/imgs/images.png +0 -0
  92. data/app/assets/dhtmlx/scheduler/imgs/loading.gif +0 -0
  93. data/app/assets/dhtmlx/scheduler/imgs/resize_dots.png +0 -0
  94. data/app/assets/dhtmlx/scheduler/imgs_dhx_terrace/arrow_left.png +0 -0
  95. data/app/assets/dhtmlx/scheduler/imgs_dhx_terrace/arrow_right.png +0 -0
  96. data/app/assets/dhtmlx/scheduler/imgs_dhx_terrace/but_repeat.gif +0 -0
  97. data/app/assets/dhtmlx/scheduler/imgs_dhx_terrace/calendar.gif +0 -0
  98. data/app/assets/dhtmlx/scheduler/imgs_dhx_terrace/clock_big.gif +0 -0
  99. data/app/assets/dhtmlx/scheduler/imgs_dhx_terrace/clock_small.gif +0 -0
  100. data/app/assets/dhtmlx/scheduler/imgs_dhx_terrace/close_icon.png +0 -0
  101. data/app/assets/dhtmlx/scheduler/imgs_dhx_terrace/collapse_expand_icon.gif +0 -0
  102. data/app/assets/dhtmlx/scheduler/imgs_dhx_terrace/controls.png +0 -0
  103. data/app/assets/dhtmlx/scheduler/imgs_dhx_terrace/databg.png +0 -0
  104. data/app/assets/dhtmlx/scheduler/imgs_dhx_terrace/databg_now.png +0 -0
  105. data/app/assets/dhtmlx/scheduler/imgs_dhx_terrace/export_ical.png +0 -0
  106. data/app/assets/dhtmlx/scheduler/imgs_dhx_terrace/export_pdf.png +0 -0
  107. data/app/assets/dhtmlx/scheduler/imgs_dhx_terrace/resize_dots.png +0 -0
  108. data/app/assets/dhtmlx/scheduler/imgs_dhx_terrace/resizing.png +0 -0
  109. data/app/assets/dhtmlx/scheduler/imgs_flat/agenda_bg.gif +0 -0
  110. data/app/assets/dhtmlx/scheduler/imgs_flat/arrow_left.png +0 -0
  111. data/app/assets/dhtmlx/scheduler/imgs_flat/arrow_right.png +0 -0
  112. data/app/assets/dhtmlx/scheduler/imgs_flat/but_repeat.gif +0 -0
  113. data/app/assets/dhtmlx/scheduler/imgs_flat/calendar.gif +0 -0
  114. data/app/assets/dhtmlx/scheduler/imgs_flat/clock.png +0 -0
  115. data/app/assets/dhtmlx/scheduler/imgs_flat/clock_big.gif +0 -0
  116. data/app/assets/dhtmlx/scheduler/imgs_flat/clock_small.gif +0 -0
  117. data/app/assets/dhtmlx/scheduler/imgs_flat/close_icon.png +0 -0
  118. data/app/assets/dhtmlx/scheduler/imgs_flat/collapse_expand_icon.gif +0 -0
  119. data/app/assets/dhtmlx/scheduler/imgs_flat/controls.png +0 -0
  120. data/app/assets/dhtmlx/scheduler/imgs_flat/databg.png +0 -0
  121. data/app/assets/dhtmlx/scheduler/imgs_flat/databg_now.png +0 -0
  122. data/app/assets/dhtmlx/scheduler/imgs_flat/export_ical.png +0 -0
  123. data/app/assets/dhtmlx/scheduler/imgs_flat/export_pdf.png +0 -0
  124. data/app/assets/dhtmlx/scheduler/imgs_flat/resize_dots.png +0 -0
  125. data/app/assets/dhtmlx/scheduler/imgs_flat/resizing.png +0 -0
  126. data/app/assets/dhtmlx/scheduler/imgs_glossy/blue_tab.png +0 -0
  127. data/app/assets/dhtmlx/scheduler/imgs_glossy/blue_tab_wide.png +0 -0
  128. data/app/assets/dhtmlx/scheduler/imgs_glossy/but_repeat.gif +0 -0
  129. data/app/assets/dhtmlx/scheduler/imgs_glossy/buttons.gif +0 -0
  130. data/app/assets/dhtmlx/scheduler/imgs_glossy/calendar.gif +0 -0
  131. data/app/assets/dhtmlx/scheduler/imgs_glossy/clock_big.png +0 -0
  132. data/app/assets/dhtmlx/scheduler/imgs_glossy/clock_small.png +0 -0
  133. data/app/assets/dhtmlx/scheduler/imgs_glossy/collapse_expand_icon.gif +0 -0
  134. data/app/assets/dhtmlx/scheduler/imgs_glossy/controlls5.png +0 -0
  135. data/app/assets/dhtmlx/scheduler/imgs_glossy/databg.png +0 -0
  136. data/app/assets/dhtmlx/scheduler/imgs_glossy/databg_now.png +0 -0
  137. data/app/assets/dhtmlx/scheduler/imgs_glossy/event-bg.png +0 -0
  138. data/app/assets/dhtmlx/scheduler/imgs_glossy/export_ical.png +0 -0
  139. data/app/assets/dhtmlx/scheduler/imgs_glossy/export_pdf.png +0 -0
  140. data/app/assets/dhtmlx/scheduler/imgs_glossy/icon.png +0 -0
  141. data/app/assets/dhtmlx/scheduler/imgs_glossy/left-separator.png +0 -0
  142. data/app/assets/dhtmlx/scheduler/imgs_glossy/left-time-bg.png +0 -0
  143. data/app/assets/dhtmlx/scheduler/imgs_glossy/lightbox.png +0 -0
  144. data/app/assets/dhtmlx/scheduler/imgs_glossy/loading.gif +0 -0
  145. data/app/assets/dhtmlx/scheduler/imgs_glossy/move.png +0 -0
  146. data/app/assets/dhtmlx/scheduler/imgs_glossy/multi-days-bg.png +0 -0
  147. data/app/assets/dhtmlx/scheduler/imgs_glossy/second-top-days-bg.png +0 -0
  148. data/app/assets/dhtmlx/scheduler/imgs_glossy/top-days-bg.png +0 -0
  149. data/app/assets/dhtmlx/scheduler/imgs_glossy/top-separator.gif +0 -0
  150. data/app/assets/dhtmlx/scheduler/imgs_glossy/white_tab.png +0 -0
  151. data/app/assets/dhtmlx/scheduler/imgs_glossy/white_tab_wide.png +0 -0
  152. data/app/assets/dhtmlx/scheduler/locale/locale_ar.js +12 -0
  153. data/app/assets/dhtmlx/scheduler/locale/locale_be.js +12 -0
  154. data/app/assets/dhtmlx/scheduler/locale/locale_ca.js +12 -0
  155. data/app/assets/dhtmlx/scheduler/locale/locale_cn.js +12 -0
  156. data/app/assets/dhtmlx/scheduler/locale/locale_cs.js +12 -0
  157. data/app/assets/dhtmlx/scheduler/locale/locale_da.js +12 -0
  158. data/app/assets/dhtmlx/scheduler/locale/locale_de.js +12 -0
  159. data/app/assets/dhtmlx/scheduler/locale/locale_el.js +12 -0
  160. data/app/assets/dhtmlx/scheduler/locale/locale_en.js +12 -0
  161. data/app/assets/dhtmlx/scheduler/locale/locale_es.js +12 -0
  162. data/app/assets/dhtmlx/scheduler/locale/locale_fi.js +12 -0
  163. data/app/assets/dhtmlx/scheduler/locale/locale_fr.js +12 -0
  164. data/app/assets/dhtmlx/scheduler/locale/locale_he.js +12 -0
  165. data/app/assets/dhtmlx/scheduler/locale/locale_hu.js +12 -0
  166. data/app/assets/dhtmlx/scheduler/locale/locale_id.js +12 -0
  167. data/app/assets/dhtmlx/scheduler/locale/locale_it.js +12 -0
  168. data/app/assets/dhtmlx/scheduler/locale/locale_jp.js +11 -0
  169. data/app/assets/dhtmlx/scheduler/locale/locale_nb.js +12 -0
  170. data/app/assets/dhtmlx/scheduler/locale/locale_nl.js +12 -0
  171. data/app/assets/dhtmlx/scheduler/locale/locale_no.js +12 -0
  172. data/app/assets/dhtmlx/scheduler/locale/locale_pl.js +12 -0
  173. data/app/assets/dhtmlx/scheduler/locale/locale_pt.js +12 -0
  174. data/app/assets/dhtmlx/scheduler/locale/locale_ro.js +12 -0
  175. data/app/assets/dhtmlx/scheduler/locale/locale_ru.js +12 -0
  176. data/app/assets/dhtmlx/scheduler/locale/locale_si.js +12 -0
  177. data/app/assets/dhtmlx/scheduler/locale/locale_sk.js +12 -0
  178. data/app/assets/dhtmlx/scheduler/locale/locale_sv.js +12 -0
  179. data/app/assets/dhtmlx/scheduler/locale/locale_tr.js +12 -0
  180. data/app/assets/dhtmlx/scheduler/locale/locale_ua.js +12 -0
  181. data/app/assets/dhtmlx/scheduler/locale/recurring/locale_recurring_be.js +11 -0
  182. data/app/assets/dhtmlx/scheduler/locale/recurring/locale_recurring_cn.js +11 -0
  183. data/app/assets/dhtmlx/scheduler/locale/recurring/locale_recurring_cs.js +11 -0
  184. data/app/assets/dhtmlx/scheduler/locale/recurring/locale_recurring_da.js +11 -0
  185. data/app/assets/dhtmlx/scheduler/locale/recurring/locale_recurring_de.js +11 -0
  186. data/app/assets/dhtmlx/scheduler/locale/recurring/locale_recurring_el.js +11 -0
  187. data/app/assets/dhtmlx/scheduler/locale/recurring/locale_recurring_en.js +11 -0
  188. data/app/assets/dhtmlx/scheduler/locale/recurring/locale_recurring_es.js +11 -0
  189. data/app/assets/dhtmlx/scheduler/locale/recurring/locale_recurring_fi.js +11 -0
  190. data/app/assets/dhtmlx/scheduler/locale/recurring/locale_recurring_fr.js +11 -0
  191. data/app/assets/dhtmlx/scheduler/locale/recurring/locale_recurring_it.js +11 -0
  192. data/app/assets/dhtmlx/scheduler/locale/recurring/locale_recurring_nb.js +11 -0
  193. data/app/assets/dhtmlx/scheduler/locale/recurring/locale_recurring_nl.js +11 -0
  194. data/app/assets/dhtmlx/scheduler/locale/recurring/locale_recurring_pl.js +11 -0
  195. data/app/assets/dhtmlx/scheduler/locale/recurring/locale_recurring_pt.js +11 -0
  196. data/app/assets/dhtmlx/scheduler/locale/recurring/locale_recurring_ro.js +11 -0
  197. data/app/assets/dhtmlx/scheduler/locale/recurring/locale_recurring_ru.js +11 -0
  198. data/app/assets/dhtmlx/scheduler/locale/recurring/locale_recurring_sk.js +11 -0
  199. data/app/assets/dhtmlx/scheduler/locale/recurring/locale_recurring_sv.js +11 -0
  200. data/app/assets/dhtmlx/scheduler/locale/recurring/locale_recurring_ua.js +11 -0
  201. data/app/assets/dhtmlx/scheduler/locale/recurring/repeat_template_be.html +57 -0
  202. data/app/assets/dhtmlx/scheduler/locale/recurring/repeat_template_cn.html +57 -0
  203. data/app/assets/dhtmlx/scheduler/locale/recurring/repeat_template_de.html +60 -0
  204. data/app/assets/dhtmlx/scheduler/locale/recurring/repeat_template_el.html +57 -0
  205. data/app/assets/dhtmlx/scheduler/locale/recurring/repeat_template_en.html +57 -0
  206. data/app/assets/dhtmlx/scheduler/locale/recurring/repeat_template_es.html +57 -0
  207. data/app/assets/dhtmlx/scheduler/locale/recurring/repeat_template_fr.html +57 -0
  208. data/app/assets/dhtmlx/scheduler/locale/recurring/repeat_template_it.html +57 -0
  209. data/app/assets/dhtmlx/scheduler/locale/recurring/repeat_template_nl.html +65 -0
  210. data/app/assets/dhtmlx/scheduler/locale/recurring/repeat_template_ro.html +57 -0
  211. data/app/assets/dhtmlx/scheduler/locale/recurring/repeat_template_ru.html +57 -0
  212. data/app/assets/dhtmlx/scheduler/locale/recurring/repeat_template_sk.html +57 -0
  213. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/License_gpl_2.0.txt +0 -0
  214. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/dhtmlx.css +0 -0
  215. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/dhtmlx.js +0 -0
  216. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/dhtmlx_deprecated.js +0 -0
  217. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/ext/dhxupload.xap +0 -0
  218. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/ext/swfobject.js +0 -0
  219. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/ext/uploader.swf +0 -0
  220. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxacc_skyblue/dhxacc_btns.gif +0 -0
  221. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxacc_skyblue/dhxacc_cell_progress.gif +0 -0
  222. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxcalendar_skyblue/dhxcalendar_arrow_left.gif +0 -0
  223. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxcalendar_skyblue/dhxcalendar_arrow_right.gif +0 -0
  224. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxcalendar_skyblue/dhxcalendar_clock.gif +0 -0
  225. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxcalendar_skyblue/dhxcalendar_mark.gif +0 -0
  226. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxcalendar_skyblue/dhxcalendar_selector_bottom.gif +0 -0
  227. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxcalendar_skyblue/dhxcalendar_selector_top.gif +0 -0
  228. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxcarousel_skyblue/dhxcarousel_cell_progress.gif +0 -0
  229. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxcombo_skyblue/dhxcombo_arrow_down.gif +0 -0
  230. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxcombo_skyblue/dhxcombo_arrow_down_dis.gif +0 -0
  231. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxcombo_skyblue/dhxcombo_chbx.gif +0 -0
  232. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxcp_skyblue/dhxcp_colors.png +0 -0
  233. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxcp_skyblue/dhxcp_icon_save.png +0 -0
  234. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxdataview_skyblue/dnd_selector.png +0 -0
  235. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxdataview_skyblue/dnd_selector_cells.png +0 -0
  236. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxdataview_skyblue/dnd_selector_lines.png +0 -0
  237. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxdataview_skyblue/marker.png +0 -0
  238. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxeditor_skyblue/align_center.gif +0 -0
  239. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxeditor_skyblue/align_justify.gif +0 -0
  240. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxeditor_skyblue/align_left.gif +0 -0
  241. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxeditor_skyblue/align_right.gif +0 -0
  242. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxeditor_skyblue/bold.gif +0 -0
  243. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxeditor_skyblue/buttons.gif +0 -0
  244. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxeditor_skyblue/clear.gif +0 -0
  245. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxeditor_skyblue/h1.gif +0 -0
  246. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxeditor_skyblue/h2.gif +0 -0
  247. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxeditor_skyblue/h3.gif +0 -0
  248. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxeditor_skyblue/h4.gif +0 -0
  249. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxeditor_skyblue/indent_dec.gif +0 -0
  250. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxeditor_skyblue/indent_inc.gif +0 -0
  251. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxeditor_skyblue/italic.gif +0 -0
  252. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxeditor_skyblue/list_bullet.gif +0 -0
  253. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxeditor_skyblue/list_number.gif +0 -0
  254. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxeditor_skyblue/script_sub.gif +0 -0
  255. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxeditor_skyblue/script_super.gif +0 -0
  256. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxeditor_skyblue/strike.gif +0 -0
  257. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxeditor_skyblue/underline.gif +0 -0
  258. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxform_skyblue/dhxform_chbxrd.gif +0 -0
  259. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxform_skyblue/dhxform_image_uploading.gif +0 -0
  260. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxform_skyblue/dhxform_upload_buttons.gif +0 -0
  261. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxform_skyblue/dhxform_upload_uploading.gif +0 -0
  262. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/ar_left.gif +0 -0
  263. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/ar_left_abs.gif +0 -0
  264. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/ar_left_abs_dis.gif +0 -0
  265. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/ar_left_dis.gif +0 -0
  266. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/ar_right.gif +0 -0
  267. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/ar_right_abs.gif +0 -0
  268. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/ar_right_abs_dis.gif +0 -0
  269. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/ar_right_dis.gif +0 -0
  270. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/blank.gif +0 -0
  271. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/combo_select_dhx_skyblue.gif +0 -0
  272. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/dyn_.gif +0 -0
  273. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/dyn_down.gif +0 -0
  274. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/dyn_up.gif +0 -0
  275. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/imageloaderror.gif +0 -0
  276. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/item_chk0.gif +0 -0
  277. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/item_chk0_dis.gif +0 -0
  278. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/item_chk1.gif +0 -0
  279. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/item_chk1_dis.gif +0 -0
  280. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/minus.gif +0 -0
  281. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/paging_page.gif +0 -0
  282. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/paging_pages.gif +0 -0
  283. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/paging_rows.gif +0 -0
  284. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/plus.gif +0 -0
  285. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/radio_chk0.gif +0 -0
  286. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/radio_chk0_dis.gif +0 -0
  287. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/radio_chk1.gif +0 -0
  288. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/radio_chk1_dis.gif +0 -0
  289. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/sort_asc.gif +0 -0
  290. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/sort_desc.gif +0 -0
  291. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/tree/blank.gif +0 -0
  292. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/tree/folder.gif +0 -0
  293. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/tree/leaf.gif +0 -0
  294. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/tree/line.gif +0 -0
  295. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/tree/line1.gif +0 -0
  296. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/tree/line2.gif +0 -0
  297. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/tree/line3.gif +0 -0
  298. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/tree/line4.gif +0 -0
  299. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/tree/minus.gif +0 -0
  300. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/tree/minus1.gif +0 -0
  301. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/tree/minus2.gif +0 -0
  302. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/tree/minus3.gif +0 -0
  303. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/tree/minus4.gif +0 -0
  304. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/tree/minus5.gif +0 -0
  305. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/tree/plus.gif +0 -0
  306. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/tree/plus1.gif +0 -0
  307. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/tree/plus2.gif +0 -0
  308. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/tree/plus3.gif +0 -0
  309. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/tree/plus4.gif +0 -0
  310. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxgrid_skyblue/tree/plus5.gif +0 -0
  311. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxlayout_skyblue/dhxlayout_cell_btns.gif +0 -0
  312. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxlayout_skyblue/dhxlayout_cell_progress.gif +0 -0
  313. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxlayout_skyblue/dhxlayout_sep_h.gif +0 -0
  314. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxlayout_skyblue/dhxlayout_sep_v.gif +0 -0
  315. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxmenu_skyblue/dhxmenu_arrow_down.gif +0 -0
  316. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxmenu_skyblue/dhxmenu_arrow_down_dis.gif +0 -0
  317. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxmenu_skyblue/dhxmenu_arrow_up.gif +0 -0
  318. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxmenu_skyblue/dhxmenu_arrow_up_dis.gif +0 -0
  319. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxmenu_skyblue/dhxmenu_chrd.gif +0 -0
  320. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxmenu_skyblue/dhxmenu_loader.gif +0 -0
  321. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxmenu_skyblue/dhxmenu_subar.gif +0 -0
  322. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxpopup_skyblue/dhxpopup_arrow_bottom.gif +0 -0
  323. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxpopup_skyblue/dhxpopup_arrow_left.gif +0 -0
  324. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxpopup_skyblue/dhxpopup_arrow_right.gif +0 -0
  325. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxpopup_skyblue/dhxpopup_arrow_top.gif +0 -0
  326. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxribbon_skyblue/dhxribbon_arrow.gif +0 -0
  327. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxribbon_skyblue/dhxribbon_checked.gif +0 -0
  328. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxribbon_skyblue/dhxribbon_checked_dis.gif +0 -0
  329. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxsidebar_skyblue/dhxsidebar_arrow_down.gif +0 -0
  330. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxsidebar_skyblue/dhxsidebar_arrow_up.gif +0 -0
  331. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxsidebar_skyblue/dhxsidebar_cell_progress.gif +0 -0
  332. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxsidebar_skyblue/dhxsidebar_side_icon.gif +0 -0
  333. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtabbar_skyblue/dhxtabbar_arrows.gif +0 -0
  334. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtabbar_skyblue/dhxtabbar_button_close.gif +0 -0
  335. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtabbar_skyblue/dhxtabbar_cell_progress.gif +0 -0
  336. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtoolbar_skyblue/dhxtoolbar_arrow.gif +0 -0
  337. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtoolbar_skyblue/dhxtoolbar_arrow_dis.gif +0 -0
  338. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/blank.gif +0 -0
  339. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/but_cut.gif +0 -0
  340. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/folderClosed.gif +0 -0
  341. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/folderOpen.gif +0 -0
  342. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/iconCheckAll.gif +0 -0
  343. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/iconCheckDis.gif +0 -0
  344. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/iconCheckGray.gif +0 -0
  345. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/iconUncheckAll.gif +0 -0
  346. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/iconUncheckDis.gif +0 -0
  347. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/leaf.gif +0 -0
  348. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/line.gif +0 -0
  349. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/line1.gif +0 -0
  350. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/line1_rtl.gif +0 -0
  351. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/line2.gif +0 -0
  352. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/line2_rtl.gif +0 -0
  353. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/line3.gif +0 -0
  354. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/line3_rtl.gif +0 -0
  355. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/line4.gif +0 -0
  356. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/line4_rtl.gif +0 -0
  357. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/lock.gif +0 -0
  358. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/minus.gif +0 -0
  359. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/minus1.gif +0 -0
  360. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/minus2.gif +0 -0
  361. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/minus2_rtl.gif +0 -0
  362. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/minus3.gif +0 -0
  363. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/minus3_rtl.gif +0 -0
  364. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/minus4.gif +0 -0
  365. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/minus4_rtl.gif +0 -0
  366. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/minus5.gif +0 -0
  367. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/minus5_rtl.gif +0 -0
  368. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/plus.gif +0 -0
  369. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/plus1.gif +0 -0
  370. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/plus2.gif +0 -0
  371. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/plus2_rtl.gif +0 -0
  372. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/plus3.gif +0 -0
  373. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/plus3_rtl.gif +0 -0
  374. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/plus4.gif +0 -0
  375. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/plus4_rtl.gif +0 -0
  376. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/plus5.gif +0 -0
  377. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/plus5_rtl.gif +0 -0
  378. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/radio_off.gif +0 -0
  379. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxtree_skyblue/radio_on.gif +0 -0
  380. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxwins_skyblue/dhxwins_buttons.gif +0 -0
  381. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxwins_skyblue/dhxwins_icon.gif +0 -0
  382. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/imgs/dhxwins_skyblue/dhxwins_progress.gif +0 -0
  383. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/readme.txt +0 -0
  384. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/thirdparty/excanvas/AUTHORS +0 -0
  385. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/thirdparty/excanvas/COPYING +0 -0
  386. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/thirdparty/excanvas/README +0 -0
  387. data/app/assets/{dhtmlx_suite → dhtmlx/suite}/thirdparty/excanvas/excanvas.js +0 -0
  388. data/app/assets/dhtmlx/vault/dhtmlxvault.css +9 -0
  389. data/app/assets/dhtmlx/vault/dhtmlxvault.js +9 -0
  390. data/app/assets/dhtmlx/vault/dhtmlxvault_deprecated.js +9 -0
  391. data/app/assets/dhtmlx/vault/dhxvault.swf +0 -0
  392. data/app/assets/dhtmlx/vault/dhxvault.xap +0 -0
  393. data/app/assets/dhtmlx/vault/imgs/dhxvault_skyblue/dhxvault_buttons.gif +0 -0
  394. data/app/assets/dhtmlx/vault/imgs/dhxvault_skyblue/dhxvault_icons.gif +0 -0
  395. data/app/assets/dhtmlx/vault/imgs/dhxvault_skyblue/dhxvault_loader.gif +0 -0
  396. data/app/assets/dhtmlx/vault/imgs/dhxvault_skyblue/dhxvault_progress.gif +0 -0
  397. data/app/assets/dhtmlx/vault/imgs/dhxvault_skyblue/icons_licence.txt +2 -0
  398. data/app/assets/dhtmlx/vault/swfobject.js +777 -0
  399. data/app/controllers/dhtmlx_examples_controller.rb +7 -0
  400. data/app/helpers/redmine_dhtmlx/application_helper.rb +64 -3
  401. data/app/views/dhtmlx_examples/index.html.erb +1 -0
  402. data/config/routes.rb +5 -0
  403. data/lib/redmine_dhtmlx/engine.rb +6 -10
  404. data/lib/redmine_dhtmlx/version.rb +1 -1
  405. metadata +401 -177
@@ -0,0 +1,9 @@
1
+ /*
2
+ Product Name: dhtmlxVault
3
+ Version: 2.4.1
4
+ Edition: Standard
5
+ License: content of this file is covered by GPL. Usage outside GPL terms is prohibited. To obtain Commercial or Enterprise license contact sales@dhtmlx.com
6
+ Copyright UAB Dinamenta http://www.dhtmlx.com
7
+ */
8
+
9
+ .dhx_vault_dhx_skyblue{position:relative;overflow:hidden;border:1px solid #a4bed4;background-color:#eaf2fb;}.dhx_vault_dhx_skyblue div.dhx_vault_controls{position:absolute;top:0;left:0;width:100%;height:37px;font-family:Tahoma,Helvetica;font-size:11px;color:black;overflow:hidden;z-index:1;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;}.dhx_vault_dhx_skyblue div.dhx_vault_controls div.dhx_vault_button{position:relative;float:left;display:inline;margin:5px 1px 0 1px;height:22px;line-height:21px;padding:2px 3px;border:1px solid #a4bed4;background-color:#f7f9fc;background:linear-gradient(#f7f9fc,#eaf2fb);background:-webkit-linear-gradient(#f7f9fc,#eaf2fb);filter:progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#f7f9fc,endColorStr=#eaf2fb) progid:DXImageTransform.Microsoft.Alpha(opacity=100);border-radius:2px;cursor:pointer;overflow:hidden;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;}.dhx_vault_dhx_skyblue div.dhx_vault_controls div.dhx_vault_button.dhx_vault_button_hover{background-color:#f3f7fd;background:linear-gradient(#f3f7fd,#e6f0fa);background:-webkit-linear-gradient(#f3f7fd,#e6f0fa);filter:progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#f3f7fd,endColorStr=#e6f0fa) progid:DXImageTransform.Microsoft.Alpha(opacity=100);}.dhx_vault_dhx_skyblue div.dhx_vault_controls div.dhx_vault_button.dhx_vault_button_pressed{background-color:#d9e9f7;background:linear-gradient(#d9e9f7,#d9e8f8);background:-webkit-linear-gradient(#d9e9f7,#d9e8f8);filter:progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#d9e9f7,endColorStr=#d9e8f8) progid:DXImageTransform.Microsoft.Alpha(opacity=100);box-shadow:0 0 5px rgba(127,127,127,0.15) inset;}.dhx_vault_dhx_skyblue div.dhx_vault_controls div.dhx_vault_button div.dhxvault_button_icon{float:left;position:relative;width:16px;height:16px;margin:3px 3px 0 3px;background-image:url("imgs/dhxvault_skyblue/dhxvault_buttons.gif");background-repeat:no-repeat;}.dhx_vault_dhx_skyblue div.dhx_vault_controls div.dhx_vault_button div.dhxvault_button_icon.dhx_vault_icon_browse{background-position:0 0;}.dhx_vault_dhx_skyblue div.dhx_vault_controls div.dhx_vault_button div.dhxvault_button_icon.dhx_vault_icon_upload{background-position:0 -16px;}.dhx_vault_dhx_skyblue div.dhx_vault_controls div.dhx_vault_button div.dhxvault_button_icon.dhx_vault_icon_cancel{background-position:0 -32px;}.dhx_vault_dhx_skyblue div.dhx_vault_controls div.dhx_vault_button div.dhxvault_button_icon.dhx_vault_icon_clear{background-position:0 -48px;}.dhx_vault_dhx_skyblue div.dhx_vault_controls div.dhx_vault_button div.dhxvault_button_text{float:left;height:18px;line-height:17px;margin:2px 4px;}.dhx_vault_dhx_skyblue div.dhx_vault_controls .dhx_vault_input{position:absolute;left:-1000px;top:0;visibility:hidden;}.dhx_vault_dhx_skyblue div.dhx_vault_controls div.dhx_vault_file_form_cont{position:absolute;width:100%;height:23px;right:0;top:0;cursor:pointer;overflow:hidden;}.dhx_vault_dhx_skyblue div.dhx_vault_controls div.dhx_vault_file_form_cont form.dhx_vault_file_form{position:absolute;top:0;right:0;cursor:pointer;}.dhx_vault_dhx_skyblue div.dhx_vault_controls div.dhx_vault_file_form_cont form.dhx_vault_file_form .dhx_vault_file_input{opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);cursor:pointer;outline:none;height:23px;}.dhx_vault_dhx_skyblue div.dhx_vault_files,.dhx_vault_dhx_skyblue div.dhx_vault_f_pr{position:absolute;overflow:auto;background-color:white;border:1px solid #a4bed4;font-family:Tahoma,Helvetica;font-size:11px;color:black;z-index:0;}.dhx_vault_dhx_skyblue div.dhx_vault_f_pr{background-image:url("imgs/dhxvault_skyblue/dhxvault_progress.gif");background-position:center center;background-repeat:no-repeat;opacity:.5;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file{position:relative;width:auto;height:45px;overflow:hidden;border-bottom:1px solid #edf5ff;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file.dhx_vault_file_added,.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file.dhx_vault_file_uploading{color:#666;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file.dhx_vault_file_uploaded{color:#30678a;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file.dhx_vault_file_fail{color:#e94a4a;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file.dhx_vault_file_size_exceeded div.dhx_vault_file_param.dhx_vault_file_progress{color:#e94a4a;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_param{position:relative;margin:3px 37px 0 50px;font-family:Tahoma,Helvetica;font-size:11px;color:inherit;overflow:hidden;white-space:nowrap;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_param.dhx_vault_file_name{margin-top:8px;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_param.dhx_vault_file_name div.dhx_vault_file_name_text{position:relative;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_param.dhx_vault_file_name div.dhx_vault_file_name_text a{font-family:Tahoma,Helvetica;font-size:11px;color:inherit;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_param.dhx_vault_file_name div.dhx_vault_file_name_text a:hover{color:#3d83b0;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_param.dhx_vault_file_delete{position:absolute;top:15px;right:11px;width:16px;height:16px;margin:0;background-image:url("imgs/dhxvault_skyblue/dhxvault_buttons.gif");background-position:0 -64px;background-repeat:no-repeat;cursor:pointer;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_icon{position:absolute;left:10px;top:7px;width:32px;height:32px;cursor:default;overflow:hidden;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_icon div.dhx_vault_all_icons{position:absolute;left:0;top:0;width:416px;height:32px;background-repeat:no-repeat;background-image:url("imgs/dhxvault_skyblue/dhxvault_icons.gif");cursor:default;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_icon.dhx_vault_icon_def div.dhx_vault_all_icons{left:0;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_icon.dhx_vault_icon_arch div.dhx_vault_all_icons{left:-32px;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_icon.dhx_vault_icon_audio div.dhx_vault_all_icons{left:-64px;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_icon.dhx_vault_icon_dmg div.dhx_vault_all_icons{left:-96px;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_icon.dhx_vault_icon_doc div.dhx_vault_all_icons{left:-128px;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_icon.dhx_vault_icon_exe div.dhx_vault_all_icons{left:-160px;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_icon.dhx_vault_icon_html div.dhx_vault_all_icons{left:-192px;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_icon.dhx_vault_icon_image div.dhx_vault_all_icons{left:-224px;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_icon.dhx_vault_icon_pdf div.dhx_vault_all_icons{left:-256px;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_icon.dhx_vault_icon_psd div.dhx_vault_all_icons{left:-288px;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_icon.dhx_vault_icon_text div.dhx_vault_all_icons{left:-320px;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_icon.dhx_vault_icon_video div.dhx_vault_all_icons{left:-352px;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_icon.dhx_vault_icon_xls div.dhx_vault_all_icons{left:-384px;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_param div.dhx_vault_progress{position:relative;width:110px;border:1px solid #a4bed4;margin-top:3px;margin-bottom:3px;font-family:Tahoma,Helvetica;font-size:7px;color:black;border-radius:2px;overflow:hidden;cursor:default;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_param div.dhx_vault_progress div.dhx_vault_progress_bg{height:6px;background-color:#e5f0fd;background:linear-gradient(#e5f0fd,#d3e6fe);background:-webkit-linear-gradient(#e5f0fd,#d3e6fe);filter:progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#e5f0fd,endColorStr=#d3e6fe) progid:DXImageTransform.Microsoft.Alpha(opacity=100);background-repeat:repeat-x;font-size:inherit;overflow:hidden;cursor:default;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_param span.progress_eta{position:absolute;top:-1px;left:120px;}.dhx_vault_dhx_skyblue div.dhx_vault_files div.dhx_vault_file_param.dhx_vault_file_uploading div.dhx_vault_progress div.dhx_vault_progress_loader{height:6px;background-color:white;background-image:url("imgs/dhxvault_skyblue/dhxvault_loader.gif");background-repeat:repeat-x;background-position:left center;overflow:hidden;cursor:default;}.dhx_vault_dhx_skyblue div.dhx_vault_flash_obj{position:absolute;left:0;top:0;width:100%;height:100%;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);}.dhx_vault_dhx_skyblue div.dhx_vault_dnd_box{position:absolute;left:0;top:0;width:100px;height:100px;border:2px dashed #c0c0c0;background-color:white;opacity:.75;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=75);overflow:hidden;z-index:1;}.dhx_vault_dhx_skyblue div.dhx_vault_dnd_box_text{font-size:16px;text-align:center;}.dhx_vault_dhx_skyblue div.dhx_vault_files.dhx_vault_dnd_box_over{overflow:hidden;}.dhx_vault_dhx_skyblue.dhx_vault_dis{background-color:#f7f7f7;}.dhx_vault_dhx_skyblue.dhx_vault_dis div.dhx_vault_controls div.dhx_vault_button{cursor:default;opacity:.5;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50);}.dhx_vault_dhx_skyblue.dhx_vault_dis div.dhx_vault_files div.dhx_vault_file{opacity:.5;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50);}.dhx_vault_dhx_skyblue.dhx_vault_dis div.dhx_vault_files div.dhx_vault_file_param.dhx_vault_file_delete{cursor:default;}.dhx_vault_dhx_skyblue.dhx_vault_dis div.dhx_vault_controls div.dhx_vault_file_form_cont{display:none;}.dhxvault_dframe{position:absolute;left:-100px;top:0;width:1px;height:1px;overflow:hidden;}div.dhxvault_skin_detect{position:absolute;display:block;visibility:hidden;left:-100px;top:0;width:10px;height:10px;margin:0;padding:0;border:none;overflow:hidden;}
@@ -0,0 +1,9 @@
1
+ /*
2
+ Product Name: dhtmlxVault
3
+ Version: 2.4.1
4
+ Edition: Standard
5
+ License: content of this file is covered by GPL. Usage outside GPL terms is prohibited. To obtain Commercial or Enterprise license contact sales@dhtmlx.com
6
+ Copyright UAB Dinamenta http://www.dhtmlx.com
7
+ */
8
+
9
+ if(typeof(window.dhx4)=="undefined"){window.dhx4={version:"4.5.1",skin:null,skinDetect:function(a){return{10:"dhx_skyblue",20:"dhx_web",30:"dhx_terrace"}[this.readFromCss(a+"_skin_detect")]||null},readFromCss:function(c,d){var b=document.createElement("DIV");b.className=c;if(document.body.firstChild!=null){document.body.insertBefore(b,document.body.firstChild)}else{document.body.appendChild(b)}var a=b[d||"offsetWidth"];b.parentNode.removeChild(b);b=null;return a},lastId:1,newId:function(){return this.lastId++},zim:{data:{},step:5,first:function(){return 100},last:function(){var c=this.first();for(var b in this.data){c=Math.max(c,this.data[b])}return c},reserve:function(a){this.data[a]=this.last()+this.step;return this.data[a]},clear:function(a){if(this.data[a]!=null){this.data[a]=null;delete this.data[a]}}},s2b:function(a){if(typeof(a)=="string"){a=a.toLowerCase()}return(a==true||a==1||a=="true"||a=="1"||a=="yes"||a=="y"||a=="on")},s2j:function(s){var obj=null;dhx4.temp=null;try{eval("dhx4.temp="+s)}catch(e){dhx4.temp=null}obj=dhx4.temp;dhx4.temp=null;return obj},absLeft:function(a){if(typeof(a)=="string"){a=document.getElementById(a)}return this.getOffset(a).left},absTop:function(a){if(typeof(a)=="string"){a=document.getElementById(a)}return this.getOffset(a).top},_aOfs:function(a){var c=0,b=0;while(a){c=c+parseInt(a.offsetTop);b=b+parseInt(a.offsetLeft);a=a.offsetParent}return{top:c,left:b}},_aOfsRect:function(d){var g=d.getBoundingClientRect();var h=document.body;var b=document.documentElement;var a=window.pageYOffset||b.scrollTop||h.scrollTop;var e=window.pageXOffset||b.scrollLeft||h.scrollLeft;var f=b.clientTop||h.clientTop||0;var i=b.clientLeft||h.clientLeft||0;var j=g.top+a-f;var c=g.left+e-i;return{top:Math.round(j),left:Math.round(c)}},getOffset:function(a){if(a.getBoundingClientRect){return this._aOfsRect(a)}else{return this._aOfs(a)}},_isObj:function(a){return(a!=null&&typeof(a)=="object"&&typeof(a.length)=="undefined")},_copyObj:function(d){if(this._isObj(d)){var c={};for(var b in d){if(typeof(d[b])=="object"&&d[b]!=null){c[b]=this._copyObj(d[b])}else{c[b]=d[b]}}}else{var c=[];for(var b=0;b<d.length;b++){if(typeof(d[b])=="object"&&d[b]!=null){c[b]=this._copyObj(d[b])}else{c[b]=d[b]}}}return c},screenDim:function(){var a=(navigator.userAgent.indexOf("MSIE")>=0);var b={};b.left=document.body.scrollLeft;b.right=b.left+(window.innerWidth||document.body.clientWidth);b.top=Math.max((a?document.documentElement:document.getElementsByTagName("html")[0]).scrollTop,document.body.scrollTop);b.bottom=b.top+(a?Math.max(document.documentElement.clientHeight||0,document.documentElement.offsetHeight||0):window.innerHeight);return b},selectTextRange:function(d,g,b){d=(typeof(d)=="string"?document.getElementById(d):d);var a=d.value.length;g=Math.max(Math.min(g,a),0);b=Math.min(b,a);if(d.setSelectionRange){try{d.setSelectionRange(g,b)}catch(f){}}else{if(d.createTextRange){var c=d.createTextRange();c.moveStart("character",g);c.moveEnd("character",b-a);try{c.select()}catch(f){}}}},transData:null,transDetect:function(){if(this.transData==null){this.transData={transProp:false,transEv:null};var c={MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd",OTransition:"oTransitionEnd",msTransition:"transitionend",transition:"transitionend"};for(var b in c){if(this.transData.transProp==false&&document.documentElement.style[b]!=null){this.transData.transProp=b;this.transData.transEv=c[b]}}c=null}return this.transData},_xmlNodeValue:function(a){var c="";for(var b=0;b<a.childNodes.length;b++){c+=(a.childNodes[b].nodeValue!=null?a.childNodes[b].nodeValue.toString().replace(/^[\n\r\s]{0,}/,"").replace(/[\n\r\s]{0,}$/,""):"")}return c}};window.dhx4.isIE=(navigator.userAgent.indexOf("MSIE")>=0||navigator.userAgent.indexOf("Trident")>=0);window.dhx4.isIE6=(window.XMLHttpRequest==null&&navigator.userAgent.indexOf("MSIE")>=0);window.dhx4.isIE7=(navigator.userAgent.indexOf("MSIE 7.0")>=0&&navigator.userAgent.indexOf("Trident")<0);window.dhx4.isIE8=(navigator.userAgent.indexOf("MSIE 8.0")>=0&&navigator.userAgent.indexOf("Trident")>=0);window.dhx4.isIE9=(navigator.userAgent.indexOf("MSIE 9.0")>=0&&navigator.userAgent.indexOf("Trident")>=0);window.dhx4.isIE10=(navigator.userAgent.indexOf("MSIE 10.0")>=0&&navigator.userAgent.indexOf("Trident")>=0&&window.navigator.pointerEnabled!=true);window.dhx4.isIE11=(navigator.userAgent.indexOf("Trident")>=0&&window.navigator.pointerEnabled==true);window.dhx4.isEdge=(navigator.userAgent.indexOf("Edge")>=0);window.dhx4.isOpera=(navigator.userAgent.indexOf("Opera")>=0);window.dhx4.isChrome=(navigator.userAgent.indexOf("Chrome")>=0)&&!window.dhx4.isEdge;window.dhx4.isKHTML=(navigator.userAgent.indexOf("Safari")>=0||navigator.userAgent.indexOf("Konqueror")>=0)&&!window.dhx4.isEdge;window.dhx4.isFF=(navigator.userAgent.indexOf("Firefox")>=0);window.dhx4.isIPad=(navigator.userAgent.search(/iPad/gi)>=0);window.dhx4.dnd={evs:{},p_en:((window.dhx4.isIE||window.dhx4.isEdge)&&(window.navigator.pointerEnabled||window.navigator.msPointerEnabled)),_mTouch:function(a){return(window.dhx4.isIE10&&a.pointerType==a.MSPOINTER_TYPE_MOUSE||window.dhx4.isIE11&&a.pointerType=="mouse"||window.dhx4.isEdge&&a.pointerType=="mouse")},_touchOn:function(a){if(a==null){a=document.body}a.style.touchAction=a.style.msTouchAction="";a=null},_touchOff:function(a){if(a==null){a=document.body}a.style.touchAction=a.style.msTouchAction="none";a=null}};if(window.navigator.pointerEnabled==true){window.dhx4.dnd.evs={start:"pointerdown",move:"pointermove",end:"pointerup"}}else{if(window.navigator.msPointerEnabled==true){window.dhx4.dnd.evs={start:"MSPointerDown",move:"MSPointerMove",end:"MSPointerUp"}}else{if(typeof(window.addEventListener)!="undefined"){window.dhx4.dnd.evs={start:"touchstart",move:"touchmove",end:"touchend"}}}}}if(typeof(window.dhx4.template)=="undefined"){window.dhx4.trim=function(a){return String(a).replace(/^\s{1,}/,"").replace(/\s{1,}$/,"")};window.dhx4.template=function(b,c,a){return b.replace(/#([a-z0-9_-]{1,})(\|([^#]*))?#/gi,function(){var g=arguments[1];var f=window.dhx4.trim(arguments[3]);var h=null;var e=[c[g]];if(f.length>0){f=f.split(":");var d=[];for(var i=0;i<f.length;i++){if(i>0&&d[d.length-1].match(/\\$/)!=null){d[d.length-1]=d[d.length-1].replace(/\\$/,"")+":"+f[i]}else{d.push(f[i])}}h=d[0];for(var i=1;i<d.length;i++){e.push(d[i])}}if(typeof(h)=="string"&&typeof(window.dhx4.template[h])=="function"){return window.dhx4.template[h].apply(window.dhx4.template,e)}if(g.length>0&&typeof(c[g])!="undefined"){if(a==true){return window.dhx4.trim(c[g])}return String(c[g])}return""})};window.dhx4.template.date=function(a,b){if(a!=null){if(a instanceof Date){return window.dhx4.date2str(a,b)}else{a=a.toString();if(a.match(/^\d*$/)!=null){return window.dhx4.date2str(new Date(parseInt(a)),b)}return a}}return""};window.dhx4.template.maxlength=function(b,a){return String(b).substr(0,a)};window.dhx4.template.number_format=function(d,e,c,a){var b=window.dhx4.template._parseFmt(e,c,a);if(b==false){return d}return window.dhx4.template._getFmtValue(d,b)};window.dhx4.template.lowercase=function(a){if(typeof(a)=="undefined"||a==null){a=""}return String(a).toLowerCase()};window.dhx4.template.uppercase=function(a){if(typeof(a)=="undefined"||a==null){a=""}return String(a).toUpperCase()};window.dhx4.template._parseFmt=function(h,c,a){var d=h.match(/^([^\.\,0-9]*)([0\.\,]*)([^\.\,0-9]*)/);if(d==null||d.length!=4){return false}var b={i_len:false,i_sep:(typeof(c)=="string"?c:","),d_len:false,d_sep:(typeof(a)=="string"?a:"."),s_bef:(typeof(d[1])=="string"?d[1]:""),s_aft:(typeof(d[3])=="string"?d[3]:"")};var g=d[2].split(".");if(g[1]!=null){b.d_len=g[1].length}var e=g[0].split(",");if(e.length>1){b.i_len=e[e.length-1].length}return b};window.dhx4.template._getFmtValue=function(value,fmt){var r=String(value).match(/^(-)?([0-9]{1,})(\.([0-9]{1,}))?$/);if(r!=null&&r.length==5){var v0="";if(r[1]!=null){v0+=r[1]}v0+=fmt.s_bef;if(fmt.i_len!==false){var i=0;var v1="";for(var q=r[2].length-1;q>=0;q--){v1=""+r[2].charAt(q)+v1;if(++i==fmt.i_len&&q>0){v1=fmt.i_sep+v1;i=0}}v0+=v1}else{v0+=r[2]}if(fmt.d_len!==false){if(r[4]==null){r[4]=""}while(r[4].length<fmt.d_len){r[4]+="0"}eval("dhx4.temp = new RegExp(/\\d{"+fmt.d_len+"}/);");var t1=(r[4]).match(dhx4.temp);if(t1!=null){v0+=fmt.d_sep+t1}dhx4.temp=t1=null}v0+=fmt.s_aft;return v0}return value}}if(typeof(window.dhx4.ajax)=="undefined"){window.dhx4.ajax={cache:false,method:"get",parse:function(a){if(typeof a!=="string"){return a}a=a.replace(/^[\s]+/,"");if(window.DOMParser&&!dhx4.isIE){var b=(new window.DOMParser()).parseFromString(a,"text/xml")}else{if(window.ActiveXObject!==window.undefined){var b=new window.ActiveXObject("Microsoft.XMLDOM");b.async="false";b.loadXML(a)}}return b},xmltop:function(a,d,c){if(typeof d.status=="undefined"||d.status<400){xml=(!d.responseXML)?dhx4.ajax.parse(d.responseText||d):(d.responseXML||d);if(xml&&xml.documentElement!==null){try{if(!xml.getElementsByTagName("parsererror").length){return xml.getElementsByTagName(a)[0]}}catch(b){}}}if(c!==-1){dhx4.callEvent("onLoadXMLError",["Incorrect XML",arguments[1],c])}return document.createElement("DIV")},xpath:function(c,a){if(!a.nodeName){a=a.responseXML||a}if(dhx4.isIE){try{return a.selectNodes(c)||[]}catch(f){return[]}}else{var d=[];var g;var b=(a.ownerDocument||a).evaluate(c,a,null,XPathResult.ANY_TYPE,null);while(g=b.iterateNext()){d.push(g)}return d}},query:function(a){dhx4.ajax._call((a.method||"GET"),a.url,a.data||"",(a.async||true),a.callback,null,a.headers)},get:function(a,b){return this._call("GET",a,null,true,b)},getSync:function(a){return this._call("GET",a,null,false)},put:function(b,a,c){return this._call("PUT",b,a,true,c)},del:function(b,a,c){return this._call("DELETE",b,a,true,c)},post:function(b,a,c){if(arguments.length==1){a=""}else{if(arguments.length==2&&(typeof(a)=="function"||typeof(window[a])=="function")){c=a;a=""}else{a=String(a)}}return this._call("POST",b,a,true,c)},postSync:function(b,a){a=(a==null?"":String(a));return this._call("POST",b,a,false)},getLong:function(a,b){this._call("GET",a,null,true,b,{url:a})},postLong:function(b,a,c){if(arguments.length==2&&(typeof(a)=="function"||typeof(window[a]))){c=a;a=""}this._call("POST",b,a,true,c,{url:b,postData:a})},_call:function(a,b,c,e,g,j,d){var i=(window.XMLHttpRequest&&!dhx4.isIE?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP"));var f=(navigator.userAgent.match(/AppleWebKit/)!=null&&navigator.userAgent.match(/Qt/)!=null&&navigator.userAgent.match(/Safari/)!=null);if(e==true){i.onreadystatechange=function(){if((i.readyState==4)||(f==true&&i.readyState==3)){if(i.status!=200||i.responseText==""){if(!dhx4.callEvent("onAjaxError",[{xmlDoc:i,filePath:b,async:e}])){return}}window.setTimeout(function(){if(typeof(g)=="function"){g.apply(window,[{xmlDoc:i,filePath:b,async:e}])}if(j!=null){if(typeof(j.postData)!="undefined"){dhx4.ajax.postLong(j.url,j.postData,g)}else{dhx4.ajax.getLong(j.url,g)}}g=null;i=null},1)}}}if(a=="GET"&&this.cache!=true){b+=(b.indexOf("?")>=0?"&":"?")+"dhxr"+new Date().getTime()+"=1"}i.open(a,b,e);if(d!=null){for(var h in d){i.setRequestHeader(h,d[h])}}else{if(a=="POST"||a=="PUT"||a=="DELETE"){i.setRequestHeader("Content-Type","application/x-www-form-urlencoded")}else{if(a=="GET"){c=null}}}i.setRequestHeader("X-Requested-With","XMLHttpRequest");i.send(c);if(e!=true){if((i.readyState==4)||(f==true&&i.readyState==3)){if(i.status!=200||i.responseText==""){dhx4.callEvent("onAjaxError",[{xmlDoc:i,filePath:b,async:e}])}}}return{xmlDoc:i,filePath:b,async:e}}}}if(typeof(window.dhx4._enableDataLoading)=="undefined"){window.dhx4._enableDataLoading=function(g,c,f,e,h){if(h=="clear"){for(var b in g._dhxdataload){g._dhxdataload[b]=null;delete g._dhxdataload[b]}g._loadData=null;g._dhxdataload=null;g.load=null;g.loadStruct=null;g=null;return}g._dhxdataload={initObj:c,xmlToJson:f,xmlRootTag:e,onBeforeXLS:null};g._loadData=function(n,o,q){if(arguments.length==2){q=o;o=null}var m=null;if(arguments.length==3){q=arguments[2]}if(typeof(n)=="string"){var l=n.replace(/^\s{1,}/,"").replace(/\s{1,}$/,"");var u=new RegExp("^<"+this._dhxdataload.xmlRootTag);if(u.test(l.replace(/^<\?xml[^\?]*\?>\s*/,""))){m=dhx4.ajax.parse(n);if(m!=null){m=this[this._dhxdataload.xmlToJson].apply(this,[m])}}if(m==null&&(l.match(/^[\s\S]*{[.\s\S]*}[\s\S]*$/)!=null||l.match(/^[\s\S]*\[[.\s\S]*\][\s\S]*$/)!=null)){m=dhx4.s2j(l)}if(m==null){this.callEvent("onXLS",[]);var j=[];if(typeof(this._dhxdataload.onBeforeXLS)=="function"){var l=this._dhxdataload.onBeforeXLS.apply(this,[n]);if(l!=null&&typeof(l)=="object"){if(l.url!=null){n=l.url}if(l.params!=null){for(var r in l.params){j.push(r+"="+encodeURIComponent(l.params[r]))}}}}var s=this;var i=function(a){var k=null;if((a.xmlDoc.getResponseHeader("Content-Type")||"").search(/xml/gi)>=0||(a.xmlDoc.responseText.replace(/^\s{1,}/,"")).match(/^</)!=null){k=s[s._dhxdataload.xmlToJson].apply(s,[a.xmlDoc.responseXML])}else{k=dhx4.s2j(a.xmlDoc.responseText)}if(k!=null){s[s._dhxdataload.initObj].apply(s,[k,n])}s.callEvent("onXLE",[]);if(q!=null){if(typeof(q)=="function"){q.apply(s,[])}else{if(typeof(window[q])=="function"){window[q].apply(s,[])}}}i=q=null;k=a=s=null};j=j.join("&")+(typeof(o)=="string"?"&"+o:"");if(dhx4.ajax.method=="post"){dhx4.ajax.post(n,j,i)}else{if(dhx4.ajax.method=="get"){dhx4.ajax.get(n+(j.length>0?(n.indexOf("?")>0?"&":"?")+j:""),i)}}return}}else{if(typeof(n.documentElement)=="object"||(typeof(n.tagName)!="undefined"&&typeof(n.getElementsByTagName)!="undefined"&&n.getElementsByTagName(this._dhxdataload.xmlRootTag).length>0)){m=this[this._dhxdataload.xmlToJson].apply(this,[n])}else{m=window.dhx4._copyObj(n)}}if(m!=null){this[this._dhxdataload.initObj].apply(this,[m])}if(q!=null){if(typeof(q)=="function"){q.apply(this,[])}else{if(typeof(window[q])=="function"){window[q].apply(this,[])}}q=null}};if(h!=null){var d={struct:"loadStruct",data:"load"};for(var b in h){if(h[b]==true){g[d[b]]=function(){return this._loadData.apply(this,arguments)}}}}g=null}}if(typeof(window.dhx4._eventable)=="undefined"){window.dhx4._eventable=function(a,b){if(b=="clear"){a.detachAllEvents();a.dhxevs=null;a.attachEvent=null;a.detachEvent=null;a.checkEvent=null;a.callEvent=null;a.detachAllEvents=null;a=null;return}a.dhxevs={data:{}};a.attachEvent=function(c,e){c=String(c).toLowerCase();if(!this.dhxevs.data[c]){this.dhxevs.data[c]={}}var d=window.dhx4.newId();this.dhxevs.data[c][d]=e;return d};a.detachEvent=function(f){for(var d in this.dhxevs.data){var e=0;for(var c in this.dhxevs.data[d]){if(c==f){this.dhxevs.data[d][c]=null;delete this.dhxevs.data[d][c]}else{e++}}if(e==0){this.dhxevs.data[d]=null;delete this.dhxevs.data[d]}}};a.checkEvent=function(c){c=String(c).toLowerCase();return(this.dhxevs.data[c]!=null)};a.callEvent=function(d,f){d=String(d).toLowerCase();if(this.dhxevs.data[d]==null){return true}var e=true;for(var c in this.dhxevs.data[d]){e=this.dhxevs.data[d][c].apply(this,f)&&e}return e};a.detachAllEvents=function(){for(var d in this.dhxevs.data){for(var c in this.dhxevs.data[d]){this.dhxevs.data[d][c]=null;delete this.dhxevs.data[d][c]}this.dhxevs.data[d]=null;delete this.dhxevs.data[d]}};a=null};dhx4._eventable(dhx4)}function dhtmlXVaultObject(j){var h=this;this.conf={version:"2.4.1",skin:(j.skin||window.dhx4.skin||(typeof(dhtmlx)!="undefined"?dhtmlx.skin:null)||window.dhx4.skinDetect("dhxvault")||"dhx_skyblue"),param_name:(typeof(j.paramName)!="undefined"?j.paramName:"file"),engine:null,list:"list_default",url:j.uploadUrl||"",download_url:(j.downloadUrl||""),multiple_files:(typeof(j.multiple)!="undefined"?j.multiple==true:true),swf_file:j.swfPath||"",swf_url:j.swfUrl||"",swf_logs:j.swfLogs||"no",sl_xap:j.slXap,sl_url:j.slUrl,sl_logs:j.slLogs,enabled:true,auto_start:(typeof(j.autoStart)!="undefined"?j.autoStart==true:true),auto_remove:(typeof(j.autoRemove)!="undefined"?j.autoRemove==true:false),files_added:0,uploaded_count:0,files_limit:(typeof(j.filesLimit)!="undefined"?j.filesLimit:0),max_file_size:parseInt(j.maxFileSize)||0,buttons:{upload:(typeof(j.buttonUpload)!="undefined"?(j.buttonUpload==true):false),clear:(typeof(j.buttonClear)!="undefined"?(j.buttonClear==true):true)},ofs:{dhx_skyblue:5,dhx_web:7,dhx_terrace:10,bootstrap:10},uploaded_state:{},uploaded_files:{},progress_mode:"percent",icon_def:"",icons:{}};this.list=new this[this.conf.list]();this.conf.icon_def=this.icon_def;for(var l in this.icons){for(var b=0;b<this.icons[l].length;b++){this.conf.icons[this.icons[l][b]]=l}}if(typeof(j.mode)=="string"&&typeof(this[j.mode])=="function"){this.conf.engine=j.mode}else{this.conf.engine="html4";var g=null;if(typeof(window.FormData)!="undefined"&&typeof(window.XMLHttpRequest)!="undefined"){g=new XMLHttpRequest();if(typeof(g.upload)=="undefined"){g=null}}if(g!=null){this.conf.engine="html5"}else{if(typeof(window.swfobject)!="undefined"||g===false){var g=swfobject.getFlashPlayerVersion();if(g.major>=10){this.conf.engine="flash"}}else{this.conf.sl_v=this.getSLVersion();if(this.conf.sl_v){this.conf.engine="sl"}}}g=null}var c=(typeof(j.parent)!="undefined"?j.parent:j.container);c=(typeof(c)=="string"?document.getElementById(c):c);j.parent=j.container=null;if(c._attach_mode==true){this.base=c}else{this.base=document.createElement("DIV");c.appendChild(this.base)}this.base.className+=" dhx_vault_"+this.conf.skin;if(c._no_border==true){this.base.style.border="0px solid white"}c=j=null;this.p_controls=document.createElement("DIV");this.p_controls.className="dhx_vault_controls";this.base.appendChild(this.p_controls);this.p_controls.onselectstart=function(a){a=a||event;if(a.preventDefault){a.preventDefault()}else{a.returnValue=false}return false};this.p_files=document.createElement("DIV");this.p_files.className="dhx_vault_files";this.base.appendChild(this.p_files);this.p_files.ondragstart=function(k){k=k||event;var a=k.target||k.srcElement;if(a.tagName!=null&&a.tagName.toLowerCase()=="a"){if(k.preventDefault){k.preventDefault()}else{k.returnValue=false}return false}};this._doOnFilesClick=function(m){m=m||event;var a=m.target||m.srcElement;var k=null;while(a!=h.p_files&&k==null){if(k==null&&a!=null&&a._action!=null){k=a._action}else{a=a.parentNode}}if(k==null){return}if(k.data=="delete_file"&&h.conf.enabled==true){h._removeFileFromQueue(k.id)}if(k.data=="download_file"&&h.conf.enabled==true){h._doDownloadFile(k.id)}k=null};if(typeof(window.addEventListener)=="function"){this.p_files.addEventListener("click",this._doOnFilesClick,false)}else{this.p_files.attachEvent("onclick",this._doOnFilesClick)}this.file_data={};this._initToolbar=function(){this.b_opts={browse:{str:"btnAdd",onclick:null},upload:{str:"btnUpload",onclick:function(){if(!h.conf.enabled){return}if(!h.conf.uploading){h._uploadStart()}}},cancel:{str:"btnCancel",onclick:function(){if(!h.conf.enabled){return}h._uploadStop();h._switchButton(false)}},clear:{str:"btnClean",onclick:function(){if(!h.conf.enabled){return}h.clear()},css:"float:right!important;"}};this.buttons={};for(var e in this.b_opts){var m=document.createElement("DIV");m.innerHTML="<div class='dhxvault_button_icon dhx_vault_icon_"+e+"'></div><div class='dhxvault_button_text'>"+this.strings[this.b_opts[e].str]+"</div>";if(this.b_opts[e].css!=null){m.style.cssText+=this.b_opts[e].css}m.className="dhx_vault_button";m._css=m.className;m._onclick=this.b_opts[e].onclick;m.onmouseover=function(){if(h.conf.enabled!=true){return}if(this._hover==true){return}this._hover=true;this.className=this._css+" dhx_vault_button"+this._css_p+"_hover"};m.onmouseout=function(){if(h.conf.enabled!=true){return}if(this._hover!=true){return}this._hover=false;this.className=this._css};m.onmousedown=function(){if(h.conf.enabled!=true){return}if(this._hover!=true){return}this._pressed=true;this.className=this._css+" dhx_vault_button"+this._css_p+"_pressed"};m.onmouseup=function(a){if(h.conf.enabled!=true){return}if(this._pressed!=true){return}this._pressed=false;this.className=this._css+(this._hover?" dhx_vault_button"+this._css_p+"_hover":"");if(this._onclick!=null){this._onclick()}};if(this.b_opts[e].tooltip){m.title=this.b_opts[e].tooltip}this.p_controls.appendChild(m);this.buttons[e]=m;m=null;if(e=="upload"||e=="clear"){this.buttons[e].style.display=(this.conf.buttons[e]==true?"":"none")}this.b_opts[e].onclick=null;this.b_opts[e]=null;delete this.b_opts[e]}this.b_opts=null;delete this.b_opts;this.buttons.cancel.style.display="none"};this._beforeAddFileToList=function(e,k,a){return(this.callEvent("onBeforeFileAdd",[{id:null,name:e,size:k,lastModifiedDate:a,serverName:null,uploaded:false,error:false}])===true)};this._addFileToList=function(r,k,m,q,e){var o=this.getFileExtension(k);var n=(o.length>0?(this.conf.icons[o.toLowerCase()]||this.conf.icon_def):this.conf.icon_def);var a=false;if(q=="added"&&typeof(m)=="number"&&m>0&&this.conf.max_file_size>0&&m>this.conf.max_file_size){q=this.file_data[r].state="size_exceeded";a=true}this.list.addFileItem(r,this.p_files);this.list.renderFileRecord(r,{name:k,icon:n,size:m,readableSize:this.readableSize(m||0),state:q,progress:e});if(q=="size_exceeded"){this.list.updateFileState(r,{state:q,str_size_exceeded:window.dhx4.template(this.strings.size_exceeded,{size:this.readableSize(this.conf.max_file_size)})})}this.callEvent("onFileAdd",[{id:r,name:k,size:m,lastModifiedDate:this.file_data[r].file.lastModifiedDate||null,serverName:null,uploaded:false,error:a}])};this._removeFileFromList=function(a){this.list.removeFileRecord(a);if(this.conf.uploaded_files[a]!=null){this.conf.uploaded_files[a]=null;delete this.conf.uploaded_files[a]}if(this.conf.uploaded_state[a]!=null){this.conf.uploaded_state[a]=null;delete this.conf.uploaded_state[a]}};this._updateFileInList=function(k,e,a){if(this.list.isFileItemExist(k)==false){return}if(e=="uploading"&&this.conf.progress_mode=="eta"&&this._etaStart!=null){this._etaStart(k)}this._updateProgress(k,e,a)};this._updateProgress=function(o,n,e){if(n=="added"){this.list.updateFileState(o,{state:n});if(this.conf.progress_mode=="eta"&&this._etaEnd!=null){this._etaEnd(o)}return}if(n=="fail"){this.list.updateFileState(o,{state:n,str_error:this.strings.error});if(this.conf.progress_mode=="eta"&&this._etaEnd!=null){this._etaEnd(o)}return}if(n=="uploaded"){if(this.conf.progress_mode=="eta"&&this._etaEnd!=null){this._etaEnd(o)}var m=this.strings.done;var a=(this.conf.engine!="html4"?{}:{name:this.file_data[o].name,size:this.file_data[o].size,readableSize:this.readableSize(this.file_data[o].size||0)});window.setTimeout(function(){if(h==null){return}h.list.updateFileState(o,{state:"uploaded",str_done:m});a.download=(h.conf.download_url.length>0);h.list.updateFileNameSize(o,a)},100);return}if(n=="uploading"){if((e<100&&this.conf.progress_type=="loader")||this.file_data[o].custom==true){this.list.updateFileState(o,{state:"uploading_html4"})}else{if(this.conf.progress_mode=="eta"){var k=(this._etaCheck!=null?this._etaCheck(o,e):null);this.list.updateFileState(o,{state:"uploading",progress:e,eta:(k==null?null:"eta: "+k)})}else{if(this.conf.progress_mode=="percent"){this.list.updateFileState(o,{state:"uploading",progress:e,eta:e+"%"})}}}}};this._removeFilesByState=function(k){for(var e in this.file_data){if(k===true||this.file_data[e].state==k){this._removeFileFromQueue(e)}}};this._switchButton=function(n){if(n==true){if(this.conf.buttons.upload==true){this.buttons.upload.style.display="none";this.buttons.cancel.style.display=""}}else{var k=this.conf.uploaded_count;var m=[];for(var e in this.conf.uploaded_state){m.push({id:e,name:this._fileName,size:(this.file_data[e]!=null?this.file_data[e].size:null),lastModifiedDate:(this.file_data[e]!=null?(this.file_data[e].file.lastModifiedDate||null):null),serverName:(this.conf.uploaded_files[e]?this.conf.uploaded_files[e].serverName:null),uploaded:this.conf.uploaded_state[e],error:!this.conf.uploaded_state[e]})}if(this.conf.buttons.upload==true){this.buttons.upload.style.display="";this.buttons.cancel.style.display="none"}this.conf.uploaded_count=0;this.conf.uploaded_state={};if(k>0){this.callEvent("onUploadComplete",[m])}}};this._uploadStart=function(){this._switchButton(true);if(!this.conf.uploading){for(var e in this.file_data){if(this.file_data[e].state=="fail"){this.file_data[e].state="added";this._updateFileInList(e,"added",0)}}}this.conf.uploading=true;var k=false;for(var e in this.file_data){if(!k&&[this.file_data[e].state]=="added"){k=true;this.file_data[e].state="uploading";this._updateFileInList(e,"uploading",0);this._doUploadFile(e)}}if(!k){this.conf.uploading=false;this._switchButton(false)}};this._onUploadSuccess=function(n,m,k,a){if(typeof(k)!="undefined"&&this.conf.engine=="flash"){var e=window.dhx4.s2j(k.data);if(e!=null&&e.state==true&&e.name!=null){m=e.name;if(e.extra!=null){a=e.extra}}else{this._onUploadFail(n,(e!=null&&e.extra!=null?e.extra:null));return}}this.conf.uploaded_count++;this.conf.uploaded_files[n]={realName:this.file_data[n].name,serverName:m};this.file_data[n].state="uploaded";this.conf.uploaded_state[n]=true;this._updateFileInList(n,"uploaded",100);this.callEvent("onUploadFile",[{id:n,name:this.file_data[n].name,size:this.file_data[n].size,lastModifiedDate:this.file_data[n].file.lastModifiedDate||null,serverName:m,uploaded:true,error:false},a]);if(this.conf.auto_remove){this._removeFileFromQueue(n)}if(this.conf.uploading){this._uploadStart()}};this._onUploadFail=function(e,a){this.file_data[e].state="fail";this._updateFileInList(e,"fail",0);this.conf.uploaded_state[e]=false;this.callEvent("onUploadFail",[{id:e,name:this.file_data[e].name,size:this.file_data[e].size,lastModifiedDate:this.file_data[e].file.lastModifiedDate||null,serverName:null,uploaded:false,error:true},a]);if(this.conf.uploading){this._uploadStart()}};this._onUploadAbort=function(a){this.conf.uploading=false;this.file_data[a].state="added";this._updateFileInList(a,"added",0);this.callEvent("onUploadCancel",[{id:a,name:this.file_data[a].name,size:this.file_data[a].size,lastModifiedDate:this.file_data[a].file.lastModifiedDate,serverName:null,uploaded:false,error:false}])};this.unload=function(){this.callEvent=function(){return true};if(typeof(window.addEventListener)=="function"){this.p_files.removeEventListener("click",this._doOnFilesClick,false)}else{this.p_files.detachEvent("onclick",this._doOnFilesClick)}this._removeFilesByState(true);this.conf.uploaded_files=null;this.file_data=null;this._unloadEngine();this.list.unload();this.list=null;this.icons=null;for(var e in this.buttons){this.buttons[e].onclick=null;this.buttons[e].onmouseover=null;this.buttons[e].onmouseout=null;this.buttons[e].onmousedown=null;this.buttons[e].onmouseup=null;this.buttons[e]._onclick=null;this.buttons[e].parentNode.removeChild(this.buttons[e]);this.buttons[e]=null;delete this.buttons[e]}this.buttons=null;this.p_controls.onselectstart=null;this.p_controls.parentNode.removeChild(this.p_controls);this.p_controls=null;this.p_files.ondragstart=null;this.p_files.parentNode.removeChild(this.p_files);this.p_files=null;window.dhx4._eventable(this,"clear");this.callEvent=null;for(var e in this.conf){this.conf[e]=null;delete this.conf[e]}this.conf=null;this.strings=null;for(var e in this){if(typeof(this[e])=="function"){this[e]=null}}if(this.base._attach_mode!=true){this.base.parentNode.removeChild(this.base)}this.base=null;h=e=null};var i=new this[this.conf.engine]();for(var l in i){this[l]=i[l];i[l]=null}l=i=p=null;this._initToolbar();this._initEngine();this.setSkin(this.conf.skin);window.dhx4._eventable(this);this.attachEvent("onFileAdd",function(){this.conf.files_added++});this.attachEvent("onBeforeFileAdd",function(){if(this.conf.files_limit==0){return true}return(this.conf.files_added<this.conf.files_limit)});if(window.dhx4.isIE7||navigator.userAgent.indexOf("MSIE 7.0")>=0){var f=this;window.setTimeout(function(){f.setSizes();f=null},1)}var d=function(e){var a=window.dhx4.s2j(e.xmlDoc.responseText);if(a!=null&&a.maxFileSize!=null&&h.conf.max_file_size==0){h.conf.max_file_size=(parseInt(a.maxFileSize)||0)}a=e=d=null};if(window.dhx4.ajax.method=="post"){window.dhx4.ajax.post(this.conf.url,"mode=conf",d)}else{window.dhx4.ajax.get(this.conf.url+(this.conf.url.indexOf("?")>0?"&":"?")+"mode=conf",d)}return this}dhtmlXVaultObject.prototype.readableSize=function(d){var c=false;var a=["b","Kb","Mb","Gb","Tb","Pb","Eb"];for(var e=0;e<a.length;e++){if(d>1024){d=d/1024}else{if(c===false){c=e}}}if(c===false){c=a.length-1}return Math.round(d*100)/100+" "+a[c]};dhtmlXVaultObject.prototype.icon_def="icon_def";dhtmlXVaultObject.prototype.icons={icon_image:["jpg","jpeg","gif","png","bmp","tiff","pcx","svg","ico"],icon_psd:["psd"],icon_video:["avi","mpg","mpeg","rm","move","mov","mkv","flv","f4v","mp4","3gp"],icon_audio:["wav","aiff","au","mp3","aac","wma","ogg","flac","ape","wv","m4a","mid","midi"],icon_arch:["rar","zip","tar","tgz","arj","gzip","bzip2","7z","ace","apk","deb"],icon_text:["txt","nfo","djvu","xml"],icon_html:["htm","html"],icon_doc:["doc","docx","rtf","odt"],icon_xls:["xls","xlsx"],icon_pdf:["pdf","ps"],icon_exe:["exe"],icon_dmg:["dmg"]};dhtmlXVaultObject.prototype.upload=function(){if(!this.conf.uploading){this._uploadStart()}};dhtmlXVaultObject.prototype.setAutoStart=function(a){this.conf.auto_start=(a==true)};dhtmlXVaultObject.prototype.setAutoRemove=function(a){this.conf.auto_remove=(a==true)};dhtmlXVaultObject.prototype.setURL=function(a){this.conf.url=a};dhtmlXVaultObject.prototype.setDownloadURL=function(c){this.conf.download_url=c||"";for(var b in this.conf.uploaded_files){this.list.updateFileNameSize(b,{download:(this.conf.download_url.length>0)})}};dhtmlXVaultObject.prototype._buildDownloadUrl=function(b){var a=null;if(this.conf.download_url.length>0&&this.conf.uploaded_files[b]!=null){var a=String(this.conf.download_url).replace(/\{serverName\}/g,encodeURIComponent(this.conf.uploaded_files[b].serverName));if(window.dhx4.ajax.cache!=true){a+=(a.indexOf("?")>=0?"&":"?")+"dhxr"+new Date().getTime()+"=1"}}return a};dhtmlXVaultObject.prototype._doDownloadFile=function(b){if(!this._dframe){this._dframe=document.createElement("IFRAME");this._dframe.className="dhxvault_dframe";this._dframe.border=this._dframe.frameBorder=0;this.conf.df_name=this._dframe.name="dhxvault_dframe_"+window.dhx4.newId();document.body.appendChild(this._dframe)}var a=document.createElement("FORM");a.method="POST";a.target=this.conf.df_name;a.action=this._buildDownloadUrl(b);document.body.appendChild(a);a.submit();window.setTimeout(function(){document.body.removeChild(a);a=null},1)};dhtmlXVaultObject.prototype.enable=function(){if(this.conf.enabled==true){return}this.conf.enabled=true;this.base.className=String(this.base.className).replace(/\s{0,}dhx_vault_dis/gi,"");if(this.conf.engine=="flash"){document.getElementById(this.conf.swf_obj_id).style.display=""}};dhtmlXVaultObject.prototype.disable=function(){if(this.conf.enabled!=true){return}this.conf.enabled=false;this.base.className+=" dhx_vault_dis";if(this.conf.engine=="flash"){document.getElementById(this.conf.swf_obj_id).style.display="none"}};dhtmlXVaultObject.prototype.setWidth=function(a){if(this.base._attach_mode==true){return}this.base.parentNode.style.width=a+"px";this.setSizes()};dhtmlXVaultObject.prototype.setHeight=function(a){if(this.base._attach_mode==true){return}this.base.parentNode.style.height=a+"px";this.setSizes()};dhtmlXVaultObject.prototype.setFilesLimit=function(a){this.conf.files_added=0;this.conf.files_limit=a};dhtmlXVaultObject.prototype.getStatus=function(){var c=0;for(var b in this.file_data){if(this.file_data[b].state!="uploaded"){return -1}c=1}return c};dhtmlXVaultObject.prototype.getData=function(){var c=[];for(var b in this.conf.uploaded_files){c.push({id:b,name:this.file_data[b].name,size:this.file_data[b].size,serverName:this.conf.uploaded_files[b].serverName,uploaded:true,error:false})}return c};dhtmlXVaultObject.prototype.clear=function(){if(this.callEvent("onBeforeClear",[])!==true){return}if(this.conf.uploading){this._uploadStop()}this._switchButton(false);this._removeFilesByState(true);this.callEvent("onClear",[])};dhtmlXVaultObject.prototype.setSkin=function(c){if(c!=this.conf.skin){this.base.className=String(this.base.className).replace(new RegExp("s{0,}dhx_vault_"+this.conf.skin)," dhx_vault_"+c);this.conf.skin=c}this._updateBttonsSkin();var b=this.conf.ofs[this.conf.skin];this.buttons.browse.style.marginLeft=b+"px";this.buttons.upload.style.marginLeft=(c=="dhx_terrace"?"-1px":b+"px");this.buttons.cancel.style.marginLeft=this.buttons.upload.style.marginLeft;this.buttons.clear.style.marginRight=b+"px";var a="";if(c=="dhx_terrace"){a=(this.conf.buttons.upload==true)?"0px":"3px"}this.buttons.browse.style.borderTopRightRadius=a;this.buttons.browse.style.borderBottomRightRadius=a;this.buttons.upload.style.borderTopLeftRadius=a;this.buttons.upload.style.borderBottomLeftRadius=a;this.buttons.cancel.style.borderTopLeftRadius=this.buttons.upload.style.borderTopLeftRadius;this.buttons.cancel.style.borderBottomLeftRadius=this.buttons.upload.style.borderBottomLeftRadius;this.setSizes()};dhtmlXVaultObject.prototype._updateBttonsSkin=function(){for(var b in this.buttons){var c="dhx_vault_button";var d="";if(this.buttonCss!=null&&this.buttonCss[this.conf.skin]!=null&&this.buttonCss[this.conf.skin][b]!=null){d=this.buttonCss[this.conf.skin][b];c+=d}this.buttons[b]._css=this.buttons[b].className=c;this.buttons[b]._css_p=d}};dhtmlXVaultObject.prototype.setSizes=function(){var a=this.base.offsetWidth-(this.base.clientWidth||this.base.scrollWidth);var b=this.base.offsetHeight-this.base.clientHeight;if(this.base._attach_mode!=true){this.base.style.width=Math.max(0,this.base.parentNode.clientWidth-a)+"px";this.base.style.height=Math.max(0,this.base.parentNode.clientHeight-b)+"px"}var c=this.conf.ofs[this.conf.skin];this.p_files.style.top=this.p_controls.offsetHeight+"px";this.p_files.style.left=c+"px";if(!this.conf.ofs_f){this.p_files.style.width="100px";this.p_files.style.height="100px";this.conf.ofs_f={w:this.p_files.offsetWidth-this.p_files.clientWidth,h:this.p_files.offsetHeight-this.p_files.clientHeight}}this.p_files.style.width=Math.max(this.base.clientWidth-c*2-this.conf.ofs_f.w,0)+"px";this.p_files.style.height=Math.max(this.base.clientHeight-this.p_controls.offsetHeight-c-this.conf.ofs_f.h,0)+"px";if(typeof(this.callEvent)=="function"){this.callEvent("_onSetSizes",[])}};dhtmlXVaultObject.prototype.getFileExtension=function(b){var c="";var a=String(b).match(/\.([^\.\s]*)$/i);if(a!=null){c=a[1]}return c};dhtmlXVaultObject.prototype.strings={done:"Done",error:"Error",size_exceeded:"Filesize exceeded (max #size#)",btnAdd:"Add files",btnUpload:"Upload",btnClean:"Clear all",btnCancel:"Cancel"};dhtmlXVaultObject.prototype.setStrings=function(e){for(var b in e){this.strings[b]=e[b]}for(var b in this.file_data){var d=this.file_data[b].state;if(d=="uploaded"||d=="fail"||d=="size_exceeded"){this.list.updateFileState(b,{state:d,str_error:this.strings.error,str_done:this.strings.done,str_size_exceeded:window.dhx4.template(this.strings.size_exceeded,{size:this.readableSize(this.conf.max_file_size)})})}if(d=="uploaded"){this.list.updateFileNameSize(b,{download:(this.conf.download_url.length>0)})}}var c={browse:"btnAdd",upload:"btnUpload",clear:"btnClean",cancel:"btnCancel"};for(var b in c){this.buttons[b].childNodes[1].innerHTML=this.strings[c[b]]}};dhtmlXVaultObject.prototype.setMaxFileSize=function(a){this.conf.max_file_size=(parseInt(a)||0)};dhtmlXVaultObject.prototype.getMaxFileSize=function(){return this.conf.max_file_size};dhtmlXVaultObject.prototype.html5=function(){};dhtmlXVaultObject.prototype.html5.prototype={_initEngine:function(){var c=this;this.buttons.browse.onclick=function(){if(c.conf.enabled){c.f.click()}};this.conf.progress_type="percentage";this.conf.dnd_enabled=true;var a=window.navigator.userAgent;var b=true;if(a.match(/Windows/gi)!=null&&a.match(/AppleWebKit/gi)!=null&&a.match(/Safari/gi)!=null){if(a.match(/Version\/5\.1\.5/gi)){this.conf.multiple_files=false}if(a.match(/Version\/5\.1[^\.\d{1,}]/gi)){this.conf.dnd_enabled=false}if(a.match(/Version\/5\.1\.1/gi)){this.conf.multiple_files=false;this.conf.dnd_enabled=false}if(a.match(/Version\/5\.1\.2/gi)){this.conf.dnd_enabled=false}if(a.match(/Version\/5\.1\.7/gi)){this.conf.multiple_files=false}}this._addFileInput();if(this.conf.dnd_enabled&&this._initDND!=null){this._initDND()}},_addFileInput:function(){if(this.f!=null){this.f.onchange=null;this.f.parentNode.removeChild(this.f);this.f=null}var a=this;this.f=document.createElement("INPUT");this.f.type="file";if(this.conf.multiple_files){this.f.multiple="1"}this.f.className="dhx_vault_input";this.p_controls.appendChild(this.f);this.f.onchange=function(){a._parseFilesInInput(this.files);if(window.dhx4.isOpera){a._addFileInput()}else{this.value=""}}},_doUploadFile:function(c){if(this.file_data[c].custom==true){this._cfUploadStart(c);return}var b=this;if(!this.loader){this.loader=new XMLHttpRequest();this.loader.upload.onprogress=function(d){if(b.file_data[this._idd].state=="uploading"){b._updateFileInList(this._idd,"uploading",Math.round(d.loaded*100/d.total))}};this.loader.onload=function(f){var d=window.dhx4.s2j(this.responseText);if(d!=null&&typeof(d)=="object"&&typeof(d.state)!="undefined"&&d.state==true){b._onUploadSuccess(this.upload._idd,d.name,null,d.extra)}else{b._onUploadFail(this.upload._idd,(d!=null&&d.extra!=null?d.extra:null))}d=null};this.loader.onerror=function(d){b._onUploadFail(this.upload._idd)};this.loader.onabort=function(d){b._onUploadAbort(this.upload._idd)}}this.loader.upload._idd=c;var a=new FormData();a.append("mode","html5");if(this.file_data[c].size==0&&(navigator.userAgent.indexOf("MSIE")>0||navigator.userAgent.indexOf("Trident")>0)){a.append("file_name",String(this.file_data[c].name));a.append("zero_size","1")}else{a.append(this.conf.param_name,this.file_data[c].file)}if(window.dhx4.ajax.cache!=true){a.append("dhxr"+new Date().getTime(),"")}this.loader.open("POST",this.conf.url,true);this.loader.setRequestHeader("X-Requested-With","XMLHttpRequest");this.loader.send(a)},_uploadStop:function(){if(!this.conf.uploading){return}if(this.cf_loader_id!=null){this._cfUploadStop()}else{if(this.loader!=null){this.loader.abort()}}},_parseFilesInInput:function(b){for(var a=0;a<b.length;a++){this._addFileToQueue(b[a])}},_addFileToQueue:function(a){if(!this._beforeAddFileToList(a.name,a.size,a.lastModifiedDate)){return}var b=(a._idd||window.dhx4.newId());this.file_data[b]={file:a,name:a.name,size:a.size,state:"added"};this._addFileToList(b,a.name,a.size,"added",0);if(this.conf.auto_start&&!this.conf.uploading){this._uploadStart(true)}},_removeFileFromQueue:function(e){if(!this.file_data[e]){return}var c=this.file_data[e].name;var d=(this.conf.uploaded_files!=null&&this.conf.uploaded_files[e]!=null?this.conf.uploaded_files[e].serverName:null);var b={id:Number(e),name:c,size:this.file_data[e].size,serverName:d,uploaded:(this.file_data[e].state=="uploaded"),error:(this.file_data[e].state=="fail")};if(this.callEvent("onBeforeFileRemove",[b])!==true){return}var a=false;if(this.cf_loader_id!=null||(this.conf.uploading&&this.loader!=null&&e==this.loader.upload._idd&&this.file_data[e].state=="uploading")){this._uploadStop();a=true}this.file_data[e].file=null;this.file_data[e].name=null;this.file_data[e].size=null;this.file_data[e].state=null;this.file_data[e]=null;delete this.file_data[e];this._removeFileFromList(e);this.callEvent("onFileRemove",[b]);if(a){this._uploadStart()}},_unloadEngine:function(){this.buttons.browse.onclick=null;if(this.conf.dnd_enabled&&this._unloadDND!=null){this._unloadDND()}this.f.onchange=null;this.f.parentNode.removeChild(this.f);this.f=null;if(this.loader){this.loader.upload.onprogress=null;this.loader.onload=null;this.loader.onerror=null;this.loader.onabort=null;this.loader.upload._idd=null;this.loader=null}this._initEngine=null;this._doUploadFile=null;this._uploadStop=null;this._parseFilesInInput=null;this._addFileToQueue=null;this._removeFileFromQueue=null;this._unloadEngine=null}};dhtmlXVaultObject.prototype.html4=function(){};dhtmlXVaultObject.prototype.html4.prototype={_initEngine:function(){this._addForm();this.conf.progress_type="loader";if(window.dhx4.isIE6||window.dhx4.isIE7){this.buttons.browse.style.filter=""}},_addForm:function(){var a=this;if(!this.k){this.k=document.createElement("DIV");this.k.className="dhx_vault_file_form_cont";this.buttons.browse.appendChild(this.k);this.conf.fr_name="dhx_vault_file_"+window.dhx4.newId();this.k.innerHTML='<iframe name="'+this.conf.fr_name+'" style="height:0px;width:0px;" frameBorder="0"></iframe>';this.fr=this.k.firstChild;if(window.navigator.userAgent.indexOf("MSIE")>=0){this.fr.onreadystatechange=function(){if(this.readyState=="complete"){a._onLoad()}}}else{this.fr.onload=function(){a._onLoad()}}}var b=document.createElement("DIV");b.innerHTML="<form method='POST' enctype='multipart/form-data' target='"+this.conf.fr_name+"' class='dhx_vault_file_form' name='dhx_vault_file_form_"+window.dhx4.newId()+"'><input type='hidden' name='mode' value='html4'><input type='hidden' name='uid' value=''><input type='file' name='"+this.conf.param_name+"' class='dhx_vault_file_input'></form>";this.k.appendChild(b);b.firstChild.lastChild.onchange=function(){var d=this.value.match(/[^\/\\]*$/)[0];this.previousSibling.value=this._idd=window.dhx4.newId();var c=null;var e=null;if(this.files!=null&&this.files[0]!=null){c=this.files[0].lastModifiedDate||null;e=this.files[0].size||null}if(!a._beforeAddFileToList(d,e,c)){return}a._addFileToQueue(this);this.onchange=null;this.parentNode.parentNode.style.display="none";a._addForm()};b=null},_onLoad:function(){if(this.conf.uploading&&this.fr._idd!=null){var a=window.dhx4.s2j(this.fr.contentWindow.document.body.innerHTML);if(a!=null){if(typeof(a.state)!="undefined"){if(a.state=="cancelled"){this._onUploadAbort(this.fr._idd);this.fr.contentWindow.document.body.innerHTML="";a=null;return}else{if(a.state==true){if(typeof(a.size)!="undefined"&&!isNaN(a.size)){this.file_data[this.fr._idd].size=a.size}this._onUploadSuccess(this.fr._idd,a.name,null,a.extra);a=null;return}}}}this._onUploadFail(this.fr._idd,(a!=null&&a.extra!=null?a.extra:null))}},_addFileToQueue:function(d){var b=d.value.match(/[^\\\/]*$/);if(b[0]!=null){b=b[0]}else{b=d.value}var a=null;var c=null;if(d.files!=null&&d.files[0]!=null){a=d.files[0].lastModifiedDate||null;c=d.files[0].size||null}this.file_data[d._idd]={file:{lastModifiedDate:a},name:b,size:c,form:d.parentNode,node:d.parentNode.parentNode,input:d,state:"added"};this._addFileToList(d._idd,b,(c||false),"added",0);if(this.conf.auto_start&&!this.conf.uploading){this._uploadStart(true)}},_removeFileFromQueue:function(e){var c=this.file_data[e].name;var d=(this.conf.uploaded_files!=null&&this.conf.uploaded_files[e]!=null?this.conf.uploaded_files[e].serverName:null);var b={id:Number(e),name:c,size:this.file_data[e].size||null,serverName:d,uploaded:(this.file_data[e].state=="uploaded"),error:(this.file_data[e].state=="fail")};if(this.callEvent("onBeforeFileRemove",[b])!==true){return}var a=false;if(this.file_data[e].custom==true){if(this.cf_loader_id!=null){this._uploadStop();a=true}}else{this.file_data[e].input.onchange=null;this.file_data[e].form.removeChild(this.file_data[e].input);this.file_data[e].node.removeChild(this.file_data[e].form);this.file_data[e].node.parentNode.removeChild(this.file_data[e].node);this.file_data[e].input=null;this.file_data[e].form=null;this.file_data[e].node=null}this.file_data[e].name=null;this.file_data[e].size=null;this.file_data[e].state=null;this.file_data[e]=null;delete this.file_data[e];this._removeFileFromList(e);this.callEvent("onFileRemove",[b]);if(a){this._uploadStart()}},_doUploadFile:function(a){if(this.file_data[a].custom==true){this._cfUploadStart(a)}else{this.fr._idd=a;this.file_data[a].form.action=this.conf.url;this.file_data[a].form.submit()}},_uploadStop:function(){if(!this.conf.uploading){return}if(this.cf_loader_id==null){this._onUploadAbort(this.fr._idd);this.fr.contentWindow.location.href=(this.conf.url)+(this.conf.url.indexOf("?")<0?"?":"&")+"mode=html4&action=cancel&dhxr"+new Date().getTime()}else{this._cfUploadStop()}},_unloadEngine:function(){if(this.k){this.conf.fr_name=null;this.fr.onreadystatechange=null;this.fr.onload=null;this.fr.parentNode.removeChild(this.fr);this.fr=null;this.k.firstChild.firstChild.lastChild.onchange=null;this.k.parentNode.removeChild(this.k);this.k=null}this._initEngine=null;this._addForm=null;this._onLoad=null;this._addFileToQueue=null;this._removeFileFromQueue=null;this._doUploadFile=null;this._uploadStop=null;this._unloadEngine=null}};dhtmlXVaultObject.prototype.flash=function(){};dhtmlXVaultObject.prototype.flash.prototype={_initEngine:function(){if(window.dhtmlXSWFObjectsPull==null){window.dhtmlXSWFObjectsPull={items:{},callEvent:function(e,c,d){return window.dhtmlXSWFObjectsPull.items[e].uploader[c].apply(window.dhtmlXSWFObjectsPull.items[e].uploader,d)}}}var b=(window.dhx4.isIE6||window.dhx4.isIE7||navigator.userAgent.indexOf("MSIE 7.0")>=0?"opaque":"transparent");wnome="transparent";this.conf.swf_obj_id="dhxVaultSWFObject_"+window.dhx4.newId();this.conf.swf_file=this.conf.swf_file+(this.conf.swf_file.indexOf("?")>=0?"&":"?")+"dhxr"+new Date().getTime();if(window.dhx4.isIE){this.buttons.browse.innerHTML+="<div style='position:absolute;width:100%;height:100%;background-color:white;opacity:0;filter:alpha(opacity=0);left:0px;top:0px;'></div>";if(window.dhx4.isIE6||window.dhx4.isIE7){this.buttons.browse.style.filter=""}}this.buttons.browse.innerHTML+="<div class='dhx_vault_flash_obj'><div id='"+this.conf.swf_obj_id+"'></div></div>";swfobject.embedSWF(this.conf.swf_file,this.conf.swf_obj_id,"100%","100%","9",null,{ID:this.conf.swf_obj_id,enableLogs:this.conf.swf_logs,paramName:this.conf.param_name,multiple:(this.conf.multiple_files?"Y":"")},{wmode:b});if((window.dhx4.isIE6||window.dhx4.isIE7)&&this.conf.skin=="dhx_skyblue"){if(this.base.parentNode!=null&&this.base.parentNode.parentNode!=null&&this.base.parentNode.parentNode.className!=null&&this.base.parentNode.parentNode.className=="dhx_cell_wins"){this.base.parentNode.parentNode.style.filter="none"}}var a=swfobject.getFlashPlayerVersion();this.conf.progress_type="percentage";window.dhtmlXSWFObjectsPull.items[this.conf.swf_obj_id]={id:this.conf.swf_obj_id,uploader:this}},_beforeAddFileToQueue:function(b,c,a){return(this.callEvent("onBeforeFileAdd",[{id:null,name:b,size:c,lastModifiedDate:a,serverName:null,uploaded:false,error:false}])===true?1:0)},_addFileToQueue:function(e,c,d,b){if(window.dhx4.isIE){var a=document.createElement("INPUT");a.type="TEXT";a.style.position="absolute";a.style.left="0px";a.style.top=window.dhx4.absTop(this.buttons.browse)+"px";a.style.width="10px";document.body.appendChild(a);a.focus();document.body.removeChild(a);a=null}this.file_data[e]={file:{lastModifiedDate:b},name:c,size:d,state:"added"};this._addFileToList(e,c,d,"added",0);if(this.conf.auto_start&&!this.conf.uploading){this._uploadStart(true)}},_removeFileFromQueue:function(e){if(!this.file_data[e]){return}var c=this.file_data[e].name;var d=(this.conf.uploaded_files!=null&&this.conf.uploaded_files[e]!=null?this.conf.uploaded_files[e].serverName:null);var b={id:Number(e),name:c,size:this.file_data[e].size,serverName:d,uploaded:(this.file_data[e].state=="uploaded"),error:(this.file_data[e].state=="fail")};if(this.callEvent("onBeforeFileRemove",[b])!==true){return}var a=false;if(this.conf.uploading&&this.file_data[e].state=="uploading"){this._uploadStop();a=true}swfobject.getObjectById(this.conf.swf_obj_id).removeFileById(e);this.file_data[e].name=null;this.file_data[e].size=null;this.file_data[e].state=null;this.file_data[e]=null;delete this.file_data[e];this._removeFileFromList(e);this.callEvent("onFileRemove",[b]);if(a){this._uploadStart()}},_doUploadFile:function(a){if(this.file_data[a].custom==true){this._cfUploadStart(a)}else{swfobject.getObjectById(this.conf.swf_obj_id).upload(a,this.conf.swf_url)}},_uploadStop:function(c){if(this.cf_loader_id!=null){this._cfUploadStop()}else{for(var b in this.file_data){if(this.file_data[b].state=="uploading"){swfobject.getObjectById(this.conf.swf_obj_id).uploadStop(b)}}}},_getId:function(){return window.dhx4.newId()},_unloadEngine:function(){if(window.dhtmlXSWFObjectsPull.items[this.conf.swf_obj_id]){window.dhtmlXSWFObjectsPull.items[this.conf.swf_obj_id].id=null;window.dhtmlXSWFObjectsPull.items[this.conf.swf_obj_id].uploader=null;window.dhtmlXSWFObjectsPull.items[this.conf.swf_obj_id]=null;delete window.dhtmlXSWFObjectsPull.items[this.conf.swf_obj_id]}this.conf.swf_obj_id=null;this._initEngine=null;this._addFileToQueue=null;this._removeFileFromQueue=null;this._doUploadFile=null;this._uploadStop=null;this._unloadEngine=null}};dhtmlXVaultObject.prototype.setSWFURL=function(a){this.conf.swf_url=a};dhtmlXVaultObject.prototype.sl=function(){};dhtmlXVaultObject.prototype.sl.prototype={_initEngine:function(){if(typeof(this.conf.sl_v)=="undefined"){this.conf.sl_v=this.getSLVersion()}if(!window.dhtmlXVaultSLObjects){window.dhtmlXVaultSLObjects={items:{},callEvent:function(c,a,b){window.dhtmlXVaultSLObjects.items[c].uploader[a].apply(window.dhtmlXVaultSLObjects.items[c].uploader,b)}}}this.conf.sl_obj_id="dhtmlXFileUploaderSLObject_"+window.dhx4.newId();if(this.conf.sl_v!=false){this.buttons.browse.innerHTML+='<div style="width:100%;height:100%;left:0px;top:0px;position:absolute;"><object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%" id="'+this.conf.sl_obj_id+'"><param name="source" value="'+this.conf.sl_xap+'"/><param name="background" value="Transparent"/><param name="windowless" value="true"/><param name="initParams" value="SLID='+this.conf.sl_obj_id+",LOGS="+this.conf.sl_logs+',GVAR=dhtmlXVaultSLObjects"/><param name="minRuntimeVersion" value="5.0"/></object></div>'}else{this.buttons.browse.style.cursor="wait";this.buttons.browse.title=""}this.conf.progress_type="percentage";window.dhtmlXVaultSLObjects.items[this.conf.sl_obj_id]={id:this.conf.sl_obj_id,uploader:this}},_addFileToQueue:function(c,a,b){this.file_data[c]={name:a,size:b,state:"added",file:{lastModifiedDate:null}};this._addFileToList(c,a,b,"added",0);if(this.conf.auto_start&&!this.conf.uploading){this._uploadStart(true)}},_removeFileFromQueue:function(b){if(!this.file_data[b]){return}var a=false;if(this.conf.uploading&&this.file_data[b].state=="uploading"){this._uploadStop();a=true}document.getElementById([this.conf.sl_obj_id]).Content.a.removeFileById(b);this.file_data[b].name=null;this.file_data[b].size=null;this.file_data[b].state=null;this.file_data[b].file=null;this.file_data[b]=null;delete this.file_data[b];this._removeFileFromList(b);if(a){this._uploadStart()}},_doUploadFile:function(b){var a=this.conf.sl_url.split("?");a=(a[1]!=null?"&"+a[1]:"");document.getElementById(this.conf.sl_obj_id).Content.a.upload(b,this.conf.sl_url,a+"&mode=sl&dhxr"+new Date().getTime())},_uploadStop:function(c){this.conf.uploading=false;for(var b in this.file_data){if(this.file_data[b].state=="uploading"){document.getElementById(this.conf.sl_obj_id).Content.a.uploadStop(b)}}},_unloadEngine:function(){if(window.dhtmlXVaultSLObjects.items[this.conf.sl_obj_id]){window.dhtmlXVaultSLObjects.items[this.conf.sl_obj_id].id=null;window.dhtmlXVaultSLObjects.items[this.conf.sl_obj_id].uploader=null;window.dhtmlXVaultSLObjects.items[this.conf.sl_obj_id]=null;delete window.dhtmlXVaultSLObjects.items[this.conf.sl_obj_id]}this.conf.sl_obj_id=null;this._initEngine=null;this._addFileToQueue=null;this._removeFileFromQueue=null;this._doUploadFile=null;this._uploadStop=null;this._unloadEngine=null}};dhtmlXVaultObject.prototype.setSLURL=function(a){this.conf.sl_url=a};dhtmlXVaultObject.prototype.getSLVersion=function(){var a=false;if(window.dhx4.isIE){try{var b=new ActiveXObject("AgControl.AgControl");if(b!=null){var f=4,d=0;while(b.isVersionSupported([f,d].join("."))){a=[f,d];if(++d>9){f++;d=0}}}b=null}catch(c){}}else{if(navigator.plugins["Silverlight Plug-In"]!=null){a=navigator.plugins["Silverlight Plug-In"].description.split(".")}}return a};dhtmlXVaultObject.prototype.list_default=function(){this.t={};this.n={};this.addFileItem=function(c,a){var b=document.createElement("DIV");b._idd=c;a.appendChild(b);this.t[c]=b;b=a=null};this.isFileItemExist=function(a){return(this.t[a]!=null)};this.renderFileRecord=function(c,b){var a=this.t[c];if(!a==null){return}a.className="dhx_vault_file dhx_vault_file_"+b.state;a.innerHTML="<div class='dhx_vault_file_param dhx_vault_file_name'>&nbsp;</div><div class='dhx_vault_file_param dhx_vault_file_progress'>&nbsp;</div><div class='dhx_vault_file_param dhx_vault_file_delete'>&nbsp;</div><div class='dhx_vault_file_icon dhx_vault_"+b.icon+"'><div class='dhx_vault_all_icons'></div></div>";a.childNodes[2]._action={id:c,data:"delete_file"};this.updateFileNameSize(c,b);a=null};this.removeFileRecord=function(b){var a=this.t[b];if(a==null){return}a._idd=null;a.childNodes[2]._action=null;a.parentNode.removeChild(a);a=null;this.n[b]=this.t[b]=null;delete this.t[b];delete this.n[b]};this.updateFileNameSize=function(f,d){var c=this.t[f];if(c==null){return}if(this.n[f]==null){this.n[f]={}}for(var b in {name:true,size:true,readableSize:true}){if(d[b]!=null){this.n[f][b]=d[b]}else{d[b]=this.n[f][b]}}var e=d.name+(!isNaN(d.size)&&d.size!==false?" ("+d.readableSize+")":"&nbsp;");if(d.download==true){e="<a href='javascript:void(0);'>"+e+"</a>"}c.childNodes[0].innerHTML="<div class='dhx_vault_file_name_text'>"+e+"</div>";c.childNodes[0].title=d.name+(!isNaN(d.size)&&d.size!==false?" ("+d.readableSize+")":"");if(d.download==true){c.childNodes[0].childNodes[0].childNodes[0]._action={id:f,data:"download_file"}}c=null};this.updateFileState=function(d,c){var b=this.t[d];if(b==null){return}var a=false;if(this.updateFileStateExtra!=null){a=this.updateFileStateExtra(d,c)}if(!a){if(c.state=="added"){b.className="dhx_vault_file dhx_vault_file_added";b.childNodes[1].className="dhx_vault_file_param dhx_vault_file_progress";b.childNodes[1].innerHTML="&nbsp;"}if(c.state=="fail"){b.className="dhx_vault_file dhx_vault_file_fail";b.childNodes[1].className="dhx_vault_file_param dhx_vault_file_progress";b.childNodes[1].innerHTML=c.str_error}if(c.state=="size_exceeded"){b.className="dhx_vault_file dhx_vault_file_size_exceeded";b.childNodes[1].className="dhx_vault_file_param dhx_vault_file_progress";b.childNodes[1].innerHTML=c.str_size_exceeded}if(c.state=="uploaded"){b.className="dhx_vault_file dhx_vault_file_uploaded";b.childNodes[1].className="dhx_vault_file_param dhx_vault_file_progress";b.childNodes[1].innerHTML=c.str_done}if(c.state=="uploading_html4"||c.state=="uploading"){b.className="dhx_vault_file dhx_vault_file_uploading";b.childNodes[1].className="dhx_vault_file_param dhx_vault_file_uploading";b.childNodes[1].innerHTML="<div class='dhx_vault_progress'><div class='dhx_vault_progress_loader'>&nbsp;</div></div>"}}b=null};this.updateStrings=function(){};this.unload=function(){this.t=null}};if(typeof(window.dhtmlXCellObject)!="undefined"&&typeof(dhtmlXCellObject.prototype.attachVault)=="undefined"){dhtmlXCellObject.prototype.attachVault=function(a){var b=document.createElement("DIV");b.style.position="relative";b.style.width="100%";b.style.height="100%";b.style.overflow="hidden";this._attachObject(b);b._attach_mode=true;b._no_border=true;if(typeof(window.dhtmlXWindowsCell)!="undefined"&&this instanceof dhtmlXWindowsCell){b._no_border=false}if(typeof(a)!="object"||a==null){a={}}a.parent=b;if(typeof(a.skin)=="undefined"){a.skin=this.conf.skin}this.dataType="vault";this.dataObj=new dhtmlXVaultObject(a);if(typeof(window.dhtmlXLayoutCell)!="undefined"&&this instanceof dhtmlXLayoutCell){this.layout._getMainInst().attachEvent("onExpand",function(d){for(var e=0;e<d.length;e++){var c=this.cells(d[e]);if(c.dataType=="vault"&&c.dataObj!=null){c.dataObj.setSizes()}c=null}})}a.parent=null;a=b=null;return this.dataObj}}dhtmlXVaultObject.prototype.buttonCss={bootstrap:{browse:"_browse",upload:"_upload",cancel:"_cancel",clear:"_clear"}};if(typeof(window.dhtmlXPopup)!="undefined"&&typeof(dhtmlXPopup.prototype.attachVault)=="undefined"){dhtmlXPopup.prototype.attachVault=function(c,a,b){return this._attachNode("vault",{width:c||350,height:a||200,conf:b||{}})};dhtmlXPopup.prototype._attach_init_vault=function(a){a.conf.parent=this._nodeId;document.getElementById(this._nodeId)._no_border=true;if(typeof(a.conf.skin)=="undefined"){a.conf.skin=this.conf.skin}this._nodeObj=new dhtmlXVaultObject(a.conf)}}dhtmlXVaultObject.prototype.load=function(a,b){if(this.conf.dataload_inited!=true){this.conf.dataload_inited=true;if(typeof(this.conf.dataload_progress)=="undefined"){this.conf.dataload_progress=true}this.attachEvent("onXLS",this._progressOn);this.attachEvent("onXLE",this._progressOff);window.dhx4._enableDataLoading(this,"_initObj","_xmlToObj","files",{data:true});this.load.apply(this,arguments)}};dhtmlXVaultObject.prototype.addFileRecord=function(b,a){if(a==null||{added:true,uploaded:true}[a]!=true){return}var c=window.dhx4.newId();if(typeof(b.name)=="undefined"||b.name==null){b.name="New File Record"}if(typeof(b.size)=="undefined"||b.size==null){b.size=false}this.file_data[c]={file:{}};this._addFileToList(c,b.name,b.size,a,0);if(a=="uploaded"){if(typeof(b.serverName)=="undefined"&&b.serverName==null){b.serverName=b.name}this.conf.uploaded_files[c]={realName:b.name,serverName:b.serverName};if(this.conf.download_url.length>0){this.list.updateFileNameSize(c,{download:true})}}this.file_data[c]={name:b.name,size:b.size,state:a,file:{},custom:true,fileData:b};this.list.updateFileState(c,{state:a,str_done:this.strings.done});if(this.conf.auto_start&&!this.conf.uploading){this._uploadStart(true)}};dhtmlXVaultObject.prototype._cfOnUpload=function(){if(this.cf_loader_id==null){return}var id=this.cf_loader_id;this.cf_loader_id=null;dhx4.temp=null;try{eval("dhx4.temp="+this.cf_loader.responseText)}catch(e){}var r=dhx4.temp;dhx4.temp=null;try{this.cf_loader.onreadystatechange=null;this.cf_loader=null}catch(e){}try{delete this.cf_loader.onreadystatechange;delete this.cf_loader}catch(e){}if(r!=null&&typeof(r)=="object"&&typeof(r.state)!="undefined"&&r.state==true){if(this.file_data[id].custom==true&&typeof(r.size)!="undefined"){this._cfUpdateSize(id,r.size)}this._onUploadSuccess(id,r.name,undefined,r.extra)}else{this._onUploadFail(id,(r!=null&&r.extra!=null?r.extra:null))}r=null};dhtmlXVaultObject.prototype._cfUpdateSize=function(d,c){this.file_data[d].size=c;var a={name:this.file_data[d].name,size:this.file_data[d].size,readableSize:this.readableSize(this.file_data[d].size||0)};var b=this;window.setTimeout(function(){b.list.updateFileNameSize(d,a);b=a=null},100)};dhtmlXVaultObject.prototype._cfUploadStart=function(e){var c=["mode=custom"];for(var b in this.file_data[e].fileData){c.push(encodeURIComponent(b)+"="+encodeURIComponent(this.file_data[e].fileData[b]))}c=c.join("&");var d=this;this.cf_loader=(window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP"));this.cf_loader.onreadystatechange=function(){if(d.cf_loader.readyState==4){if(d.cf_loader.status==200){d._cfOnUpload()}else{if(d.cf_loader.status==404){d._onUploadFail(d.cf_loader_id)}}d=null}};if(window.dhx4.ajax.cache!=true){c+=(c.length>0?"&":"")+"dhxr"+new Date().getTime()}this.cf_loader_id=e;this.cf_loader.open("POST",this.conf.url,true);this.cf_loader.setRequestHeader("Content-Type","application/x-www-form-urlencoded");this.cf_loader.setRequestHeader("X-Requested-With","XMLHttpRequest");this.cf_loader.send(c)};dhtmlXVaultObject.prototype._cfUploadStop=function(){var a=this.cf_loader_id;this.cf_loader_id=null;this.cf_loader.abort();this._onUploadAbort(a)};dhtmlXVaultObject.prototype._initObj=function(b){for(var a=0;a<b.length;a++){this.addFileRecord(b[a],"uploaded")}};dhtmlXVaultObject.prototype._xmlToObj=function(j){var h=[];if(!this.conf.xml_attrs){this.conf.xml_attrs={name:"name",size:"size",serverName:"serverName"}}var d=j.getElementsByTagName("files")[0];for(var g=0;g<d.childNodes.length;g++){if(d.childNodes[g].tagName!=null&&String(d.childNodes[g].tagName).toLowerCase()=="file"){var c=d.childNodes[g];var e={};for(var b in this.conf.xml_attrs){if(c.getAttribute(b)!=null){e[this.conf.xml_attrs[b]]=c.getAttribute(b)}}h.push(e);c=e=null}}return h};dhtmlXVaultObject.prototype._progressOn=function(){if(this.conf.dataload_progress==true){if(this.conf.progress_tm!=null){window.clearTimeout(this.conf.progress_tm)}if(this.p_progress==null){this.p_progress=document.createElement("DIV");this.p_progress.className="dhx_vault_f_pr";this.base.appendChild(this.p_progress);if(typeof(this.conf.progress_event)=="undefined"){this.conf.progress_event=this.attachEvent("_onSetSizes",this._progressAdjust)}this._progressAdjust()}}};dhtmlXVaultObject.prototype._progressOff=function(){var a=this;if(this.conf.progress_tm!=null){window.clearTimeout(this.conf.progress_tm)}this.conf.progress_tm=window.setTimeout(function(){if(a.p_progress!=null){a.p_progress.parentNode.removeChild(a.p_progress);a.p_progress=null}a=null},200)};dhtmlXVaultObject.prototype._progressAdjust=function(){if(this.p_progress!=null){this.p_progress.style.left=this.p_files.style.left;this.p_progress.style.top=this.p_files.style.top;this.p_progress.style.width=this.p_files.style.width;this.p_progress.style.height=this.p_files.style.height}};
@@ -0,0 +1,9 @@
1
+ /*
2
+ Product Name: dhtmlxVault
3
+ Version: 2.4.1
4
+ Edition: Standard
5
+ License: content of this file is covered by GPL. Usage outside GPL terms is prohibited. To obtain Commercial or Enterprise license contact sales@dhtmlx.com
6
+ Copyright UAB Dinamenta http://www.dhtmlx.com
7
+ */
8
+
9
+ dhtmlXVaultObject.prototype.setServerHandlers=function(a){this.conf.upload_url=a};dhtmlXVaultObject.prototype.setImagePath=function(a){};dhtmlXVaultObject.prototype.create=function(a){};dhtmlXVaultObject.prototype.onAddFile=function(a){this.attachEvent("onBeforeFileAdd",function(b,c){return a.apply(this,[b])})};dhtmlXVaultObject.prototype.onFileUploaded=function(a){this.attachEvent("onUploadFile",function(b){a.apply(this,[b])});this.attachEvent("onUploadFail",function(b){a.apply(this,[b])})};dhtmlXVaultObject.prototype.onUploadComplete=function(a){this.attachEvent("onUploadComplete",function(b){a.apply(this,b)})};dhtmlXVaultObject.prototype.setFormField=function(c,d){for(var b in {url:1,swf_url:1,sl_url:1}){this.conf[b]+=(String(this.conf[b]).indexOf("?")<0?"?":"&")+c+"="+encodeURIComponent(d)}};
@@ -0,0 +1,2 @@
1
+ These icons are licensed under a Creative Commons Attribution 3.0 License
2
+ http://fatcow.com/
@@ -0,0 +1,777 @@
1
+ /*! SWFObject v2.2 <http://code.google.com/p/swfobject/>
2
+ is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
3
+ */
4
+
5
+ var swfobject = function() {
6
+
7
+ var UNDEF = "undefined",
8
+ OBJECT = "object",
9
+ SHOCKWAVE_FLASH = "Shockwave Flash",
10
+ SHOCKWAVE_FLASH_AX = "ShockwaveFlash.ShockwaveFlash",
11
+ FLASH_MIME_TYPE = "application/x-shockwave-flash",
12
+ EXPRESS_INSTALL_ID = "SWFObjectExprInst",
13
+ ON_READY_STATE_CHANGE = "onreadystatechange",
14
+
15
+ win = window,
16
+ doc = document,
17
+ nav = navigator,
18
+
19
+ plugin = false,
20
+ domLoadFnArr = [main],
21
+ regObjArr = [],
22
+ objIdArr = [],
23
+ listenersArr = [],
24
+ storedAltContent,
25
+ storedAltContentId,
26
+ storedCallbackFn,
27
+ storedCallbackObj,
28
+ isDomLoaded = false,
29
+ isExpressInstallActive = false,
30
+ dynamicStylesheet,
31
+ dynamicStylesheetMedia,
32
+ autoHideShow = true,
33
+
34
+ /* Centralized function for browser feature detection
35
+ - User agent string detection is only used when no good alternative is possible
36
+ - Is executed directly for optimal performance
37
+ */
38
+ ua = function() {
39
+ var w3cdom = typeof doc.getElementById != UNDEF && typeof doc.getElementsByTagName != UNDEF && typeof doc.createElement != UNDEF,
40
+ u = nav.userAgent.toLowerCase(),
41
+ p = nav.platform.toLowerCase(),
42
+ windows = p ? /win/.test(p) : /win/.test(u),
43
+ mac = p ? /mac/.test(p) : /mac/.test(u),
44
+ webkit = /webkit/.test(u) ? parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, // returns either the webkit version or false if not webkit
45
+ ie = !+"\v1", // feature detection based on Andrea Giammarchi's solution: http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html
46
+ playerVersion = [0,0,0],
47
+ d = null;
48
+ if (typeof nav.plugins != UNDEF && typeof nav.plugins[SHOCKWAVE_FLASH] == OBJECT) {
49
+ d = nav.plugins[SHOCKWAVE_FLASH].description;
50
+ if (d && !(typeof nav.mimeTypes != UNDEF && nav.mimeTypes[FLASH_MIME_TYPE] && !nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)) { // navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin indicates whether plug-ins are enabled or disabled in Safari 3+
51
+ plugin = true;
52
+ ie = false; // cascaded feature detection for Internet Explorer
53
+ d = d.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
54
+ playerVersion[0] = parseInt(d.replace(/^(.*)\..*$/, "$1"), 10);
55
+ playerVersion[1] = parseInt(d.replace(/^.*\.(.*)\s.*$/, "$1"), 10);
56
+ playerVersion[2] = /[a-zA-Z]/.test(d) ? parseInt(d.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0;
57
+ }
58
+ }
59
+ else if (typeof win.ActiveXObject != UNDEF) {
60
+ try {
61
+ var a = new ActiveXObject(SHOCKWAVE_FLASH_AX);
62
+ if (a) { // a will return null when ActiveX is disabled
63
+ d = a.GetVariable("$version");
64
+ if (d) {
65
+ ie = true; // cascaded feature detection for Internet Explorer
66
+ d = d.split(" ")[1].split(",");
67
+ playerVersion = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
68
+ }
69
+ }
70
+ }
71
+ catch(e) {}
72
+ }
73
+ return { w3:w3cdom, pv:playerVersion, wk:webkit, ie:ie, win:windows, mac:mac };
74
+ }(),
75
+
76
+ /* Cross-browser onDomLoad
77
+ - Will fire an event as soon as the DOM of a web page is loaded
78
+ - Internet Explorer workaround based on Diego Perini's solution: http://javascript.nwbox.com/IEContentLoaded/
79
+ - Regular onload serves as fallback
80
+ */
81
+ onDomLoad = function() {
82
+ if (!ua.w3) { return; }
83
+ if ((typeof doc.readyState != UNDEF && doc.readyState == "complete") || (typeof doc.readyState == UNDEF && (doc.getElementsByTagName("body")[0] || doc.body))) { // function is fired after onload, e.g. when script is inserted dynamically
84
+ callDomLoadFunctions();
85
+ }
86
+ if (!isDomLoaded) {
87
+ if (typeof doc.addEventListener != UNDEF) {
88
+ doc.addEventListener("DOMContentLoaded", callDomLoadFunctions, false);
89
+ }
90
+ if (ua.ie && ua.win) {
91
+ doc.attachEvent(ON_READY_STATE_CHANGE, function() {
92
+ if (doc.readyState == "complete") {
93
+ doc.detachEvent(ON_READY_STATE_CHANGE, arguments.callee);
94
+ callDomLoadFunctions();
95
+ }
96
+ });
97
+ if (win == top) { // if not inside an iframe
98
+ (function(){
99
+ if (isDomLoaded) { return; }
100
+ try {
101
+ doc.documentElement.doScroll("left");
102
+ }
103
+ catch(e) {
104
+ setTimeout(arguments.callee, 0);
105
+ return;
106
+ }
107
+ callDomLoadFunctions();
108
+ })();
109
+ }
110
+ }
111
+ if (ua.wk) {
112
+ (function(){
113
+ if (isDomLoaded) { return; }
114
+ if (!/loaded|complete/.test(doc.readyState)) {
115
+ setTimeout(arguments.callee, 0);
116
+ return;
117
+ }
118
+ callDomLoadFunctions();
119
+ })();
120
+ }
121
+ addLoadEvent(callDomLoadFunctions);
122
+ }
123
+ }();
124
+
125
+ function callDomLoadFunctions() {
126
+ if (isDomLoaded) { return; }
127
+ try { // test if we can really add/remove elements to/from the DOM; we don't want to fire it too early
128
+ var t = doc.getElementsByTagName("body")[0].appendChild(createElement("span"));
129
+ t.parentNode.removeChild(t);
130
+ }
131
+ catch (e) { return; }
132
+ isDomLoaded = true;
133
+ var dl = domLoadFnArr.length;
134
+ for (var i = 0; i < dl; i++) {
135
+ domLoadFnArr[i]();
136
+ }
137
+ }
138
+
139
+ function addDomLoadEvent(fn) {
140
+ if (isDomLoaded) {
141
+ fn();
142
+ }
143
+ else {
144
+ domLoadFnArr[domLoadFnArr.length] = fn; // Array.push() is only available in IE5.5+
145
+ }
146
+ }
147
+
148
+ /* Cross-browser onload
149
+ - Based on James Edwards' solution: http://brothercake.com/site/resources/scripts/onload/
150
+ - Will fire an event as soon as a web page including all of its assets are loaded
151
+ */
152
+ function addLoadEvent(fn) {
153
+ if (typeof win.addEventListener != UNDEF) {
154
+ win.addEventListener("load", fn, false);
155
+ }
156
+ else if (typeof doc.addEventListener != UNDEF) {
157
+ doc.addEventListener("load", fn, false);
158
+ }
159
+ else if (typeof win.attachEvent != UNDEF) {
160
+ addListener(win, "onload", fn);
161
+ }
162
+ else if (typeof win.onload == "function") {
163
+ var fnOld = win.onload;
164
+ win.onload = function() {
165
+ fnOld();
166
+ fn();
167
+ };
168
+ }
169
+ else {
170
+ win.onload = fn;
171
+ }
172
+ }
173
+
174
+ /* Main function
175
+ - Will preferably execute onDomLoad, otherwise onload (as a fallback)
176
+ */
177
+ function main() {
178
+ if (plugin) {
179
+ testPlayerVersion();
180
+ }
181
+ else {
182
+ matchVersions();
183
+ }
184
+ }
185
+
186
+ /* Detect the Flash Player version for non-Internet Explorer browsers
187
+ - Detecting the plug-in version via the object element is more precise than using the plugins collection item's description:
188
+ a. Both release and build numbers can be detected
189
+ b. Avoid wrong descriptions by corrupt installers provided by Adobe
190
+ c. Avoid wrong descriptions by multiple Flash Player entries in the plugin Array, caused by incorrect browser imports
191
+ - Disadvantage of this method is that it depends on the availability of the DOM, while the plugins collection is immediately available
192
+ */
193
+ function testPlayerVersion() {
194
+ var b = doc.getElementsByTagName("body")[0];
195
+ var o = createElement(OBJECT);
196
+ o.setAttribute("type", FLASH_MIME_TYPE);
197
+ var t = b.appendChild(o);
198
+ if (t) {
199
+ var counter = 0;
200
+ (function(){
201
+ if (typeof t.GetVariable != UNDEF) {
202
+ var d = t.GetVariable("$version");
203
+ if (d) {
204
+ d = d.split(" ")[1].split(",");
205
+ ua.pv = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
206
+ }
207
+ }
208
+ else if (counter < 10) {
209
+ counter++;
210
+ setTimeout(arguments.callee, 10);
211
+ return;
212
+ }
213
+ b.removeChild(o);
214
+ t = null;
215
+ matchVersions();
216
+ })();
217
+ }
218
+ else {
219
+ matchVersions();
220
+ }
221
+ }
222
+
223
+ /* Perform Flash Player and SWF version matching; static publishing only
224
+ */
225
+ function matchVersions() {
226
+ var rl = regObjArr.length;
227
+ if (rl > 0) {
228
+ for (var i = 0; i < rl; i++) { // for each registered object element
229
+ var id = regObjArr[i].id;
230
+ var cb = regObjArr[i].callbackFn;
231
+ var cbObj = {success:false, id:id};
232
+ if (ua.pv[0] > 0) {
233
+ var obj = getElementById(id);
234
+ if (obj) {
235
+ if (hasPlayerVersion(regObjArr[i].swfVersion) && !(ua.wk && ua.wk < 312)) { // Flash Player version >= published SWF version: Houston, we have a match!
236
+ setVisibility(id, true);
237
+ if (cb) {
238
+ cbObj.success = true;
239
+ cbObj.ref = getObjectById(id);
240
+ cb(cbObj);
241
+ }
242
+ }
243
+ else if (regObjArr[i].expressInstall && canExpressInstall()) { // show the Adobe Express Install dialog if set by the web page author and if supported
244
+ var att = {};
245
+ att.data = regObjArr[i].expressInstall;
246
+ att.width = obj.getAttribute("width") || "0";
247
+ att.height = obj.getAttribute("height") || "0";
248
+ if (obj.getAttribute("class")) { att.styleclass = obj.getAttribute("class"); }
249
+ if (obj.getAttribute("align")) { att.align = obj.getAttribute("align"); }
250
+ // parse HTML object param element's name-value pairs
251
+ var par = {};
252
+ var p = obj.getElementsByTagName("param");
253
+ var pl = p.length;
254
+ for (var j = 0; j < pl; j++) {
255
+ if (p[j].getAttribute("name").toLowerCase() != "movie") {
256
+ par[p[j].getAttribute("name")] = p[j].getAttribute("value");
257
+ }
258
+ }
259
+ showExpressInstall(att, par, id, cb);
260
+ }
261
+ else { // Flash Player and SWF version mismatch or an older Webkit engine that ignores the HTML object element's nested param elements: display alternative content instead of SWF
262
+ displayAltContent(obj);
263
+ if (cb) { cb(cbObj); }
264
+ }
265
+ }
266
+ }
267
+ else { // if no Flash Player is installed or the fp version cannot be detected we let the HTML object element do its job (either show a SWF or alternative content)
268
+ setVisibility(id, true);
269
+ if (cb) {
270
+ var o = getObjectById(id); // test whether there is an HTML object element or not
271
+ if (o && typeof o.SetVariable != UNDEF) {
272
+ cbObj.success = true;
273
+ cbObj.ref = o;
274
+ }
275
+ cb(cbObj);
276
+ }
277
+ }
278
+ }
279
+ }
280
+ }
281
+
282
+ function getObjectById(objectIdStr) {
283
+ var r = null;
284
+ var o = getElementById(objectIdStr);
285
+ if (o && o.nodeName == "OBJECT") {
286
+ if (typeof o.SetVariable != UNDEF) {
287
+ r = o;
288
+ }
289
+ else {
290
+ var n = o.getElementsByTagName(OBJECT)[0];
291
+ if (n) {
292
+ r = n;
293
+ }
294
+ }
295
+ }
296
+ return r;
297
+ }
298
+
299
+ /* Requirements for Adobe Express Install
300
+ - only one instance can be active at a time
301
+ - fp 6.0.65 or higher
302
+ - Win/Mac OS only
303
+ - no Webkit engines older than version 312
304
+ */
305
+ function canExpressInstall() {
306
+ return !isExpressInstallActive && hasPlayerVersion("6.0.65") && (ua.win || ua.mac) && !(ua.wk && ua.wk < 312);
307
+ }
308
+
309
+ /* Show the Adobe Express Install dialog
310
+ - Reference: http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=6a253b75
311
+ */
312
+ function showExpressInstall(att, par, replaceElemIdStr, callbackFn) {
313
+ isExpressInstallActive = true;
314
+ storedCallbackFn = callbackFn || null;
315
+ storedCallbackObj = {success:false, id:replaceElemIdStr};
316
+ var obj = getElementById(replaceElemIdStr);
317
+ if (obj) {
318
+ if (obj.nodeName == "OBJECT") { // static publishing
319
+ storedAltContent = abstractAltContent(obj);
320
+ storedAltContentId = null;
321
+ }
322
+ else { // dynamic publishing
323
+ storedAltContent = obj;
324
+ storedAltContentId = replaceElemIdStr;
325
+ }
326
+ att.id = EXPRESS_INSTALL_ID;
327
+ if (typeof att.width == UNDEF || (!/%$/.test(att.width) && parseInt(att.width, 10) < 310)) { att.width = "310"; }
328
+ if (typeof att.height == UNDEF || (!/%$/.test(att.height) && parseInt(att.height, 10) < 137)) { att.height = "137"; }
329
+ doc.title = doc.title.slice(0, 47) + " - Flash Player Installation";
330
+ var pt = ua.ie && ua.win ? "ActiveX" : "PlugIn",
331
+ fv = "MMredirectURL=" + encodeURI(window.location).toString().replace(/&/g,"%26") + "&MMplayerType=" + pt + "&MMdoctitle=" + doc.title;
332
+ if (typeof par.flashvars != UNDEF) {
333
+ par.flashvars += "&" + fv;
334
+ }
335
+ else {
336
+ par.flashvars = fv;
337
+ }
338
+ // IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
339
+ // because you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
340
+ if (ua.ie && ua.win && obj.readyState != 4) {
341
+ var newObj = createElement("div");
342
+ replaceElemIdStr += "SWFObjectNew";
343
+ newObj.setAttribute("id", replaceElemIdStr);
344
+ obj.parentNode.insertBefore(newObj, obj); // insert placeholder div that will be replaced by the object element that loads expressinstall.swf
345
+ obj.style.display = "none";
346
+ (function(){
347
+ if (obj.readyState == 4) {
348
+ obj.parentNode.removeChild(obj);
349
+ }
350
+ else {
351
+ setTimeout(arguments.callee, 10);
352
+ }
353
+ })();
354
+ }
355
+ createSWF(att, par, replaceElemIdStr);
356
+ }
357
+ }
358
+
359
+ /* Functions to abstract and display alternative content
360
+ */
361
+ function displayAltContent(obj) {
362
+ if (ua.ie && ua.win && obj.readyState != 4) {
363
+ // IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
364
+ // because you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
365
+ var el = createElement("div");
366
+ obj.parentNode.insertBefore(el, obj); // insert placeholder div that will be replaced by the alternative content
367
+ el.parentNode.replaceChild(abstractAltContent(obj), el);
368
+ obj.style.display = "none";
369
+ (function(){
370
+ if (obj.readyState == 4) {
371
+ obj.parentNode.removeChild(obj);
372
+ }
373
+ else {
374
+ setTimeout(arguments.callee, 10);
375
+ }
376
+ })();
377
+ }
378
+ else {
379
+ obj.parentNode.replaceChild(abstractAltContent(obj), obj);
380
+ }
381
+ }
382
+
383
+ function abstractAltContent(obj) {
384
+ var ac = createElement("div");
385
+ if (ua.win && ua.ie) {
386
+ ac.innerHTML = obj.innerHTML;
387
+ }
388
+ else {
389
+ var nestedObj = obj.getElementsByTagName(OBJECT)[0];
390
+ if (nestedObj) {
391
+ var c = nestedObj.childNodes;
392
+ if (c) {
393
+ var cl = c.length;
394
+ for (var i = 0; i < cl; i++) {
395
+ if (!(c[i].nodeType == 1 && c[i].nodeName == "PARAM") && !(c[i].nodeType == 8)) {
396
+ ac.appendChild(c[i].cloneNode(true));
397
+ }
398
+ }
399
+ }
400
+ }
401
+ }
402
+ return ac;
403
+ }
404
+
405
+ /* Cross-browser dynamic SWF creation
406
+ */
407
+ function createSWF(attObj, parObj, id) {
408
+ var r, el = getElementById(id);
409
+ if (ua.wk && ua.wk < 312) { return r; }
410
+ if (el) {
411
+ if (typeof attObj.id == UNDEF) { // if no 'id' is defined for the object element, it will inherit the 'id' from the alternative content
412
+ attObj.id = id;
413
+ }
414
+ if (ua.ie && ua.win) { // Internet Explorer + the HTML object element + W3C DOM methods do not combine: fall back to outerHTML
415
+ var att = "";
416
+ for (var i in attObj) {
417
+ if (attObj[i] != Object.prototype[i]) { // filter out prototype additions from other potential libraries
418
+ if (i.toLowerCase() == "data") {
419
+ parObj.movie = attObj[i];
420
+ }
421
+ else if (i.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
422
+ att += ' class="' + attObj[i] + '"';
423
+ }
424
+ else if (i.toLowerCase() != "classid") {
425
+ att += ' ' + i + '="' + attObj[i] + '"';
426
+ }
427
+ }
428
+ }
429
+ var par = "";
430
+ for (var j in parObj) {
431
+ if (parObj[j] != Object.prototype[j]) { // filter out prototype additions from other potential libraries
432
+ par += '<param name="' + j + '" value="' + parObj[j] + '" />';
433
+ }
434
+ }
435
+ el.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + att + '>' + par + '</object>';
436
+ objIdArr[objIdArr.length] = attObj.id; // stored to fix object 'leaks' on unload (dynamic publishing only)
437
+ r = getElementById(attObj.id);
438
+ }
439
+ else { // well-behaving browsers
440
+ var o = createElement(OBJECT);
441
+ o.setAttribute("type", FLASH_MIME_TYPE);
442
+ for (var m in attObj) {
443
+ if (attObj[m] != Object.prototype[m]) { // filter out prototype additions from other potential libraries
444
+ if (m.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
445
+ o.setAttribute("class", attObj[m]);
446
+ }
447
+ else if (m.toLowerCase() != "classid") { // filter out IE specific attribute
448
+ o.setAttribute(m, attObj[m]);
449
+ }
450
+ }
451
+ }
452
+ for (var n in parObj) {
453
+ if (parObj[n] != Object.prototype[n] && n.toLowerCase() != "movie") { // filter out prototype additions from other potential libraries and IE specific param element
454
+ createObjParam(o, n, parObj[n]);
455
+ }
456
+ }
457
+ el.parentNode.replaceChild(o, el);
458
+ r = o;
459
+ }
460
+ }
461
+ return r;
462
+ }
463
+
464
+ function createObjParam(el, pName, pValue) {
465
+ var p = createElement("param");
466
+ p.setAttribute("name", pName);
467
+ p.setAttribute("value", pValue);
468
+ el.appendChild(p);
469
+ }
470
+
471
+ /* Cross-browser SWF removal
472
+ - Especially needed to safely and completely remove a SWF in Internet Explorer
473
+ */
474
+ function removeSWF(id) {
475
+ var obj = getElementById(id);
476
+ if (obj && obj.nodeName == "OBJECT") {
477
+ if (ua.ie && ua.win) {
478
+ obj.style.display = "none";
479
+ (function(){
480
+ if (obj.readyState == 4) {
481
+ removeObjectInIE(id);
482
+ }
483
+ else {
484
+ setTimeout(arguments.callee, 10);
485
+ }
486
+ })();
487
+ }
488
+ else {
489
+ obj.parentNode.removeChild(obj);
490
+ }
491
+ }
492
+ }
493
+
494
+ function removeObjectInIE(id) {
495
+ var obj = getElementById(id);
496
+ if (obj) {
497
+ for (var i in obj) {
498
+ if (typeof obj[i] == "function") {
499
+ obj[i] = null;
500
+ }
501
+ }
502
+ obj.parentNode.removeChild(obj);
503
+ }
504
+ }
505
+
506
+ /* Functions to optimize JavaScript compression
507
+ */
508
+ function getElementById(id) {
509
+ var el = null;
510
+ try {
511
+ el = doc.getElementById(id);
512
+ }
513
+ catch (e) {}
514
+ return el;
515
+ }
516
+
517
+ function createElement(el) {
518
+ return doc.createElement(el);
519
+ }
520
+
521
+ /* Updated attachEvent function for Internet Explorer
522
+ - Stores attachEvent information in an Array, so on unload the detachEvent functions can be called to avoid memory leaks
523
+ */
524
+ function addListener(target, eventType, fn) {
525
+ target.attachEvent(eventType, fn);
526
+ listenersArr[listenersArr.length] = [target, eventType, fn];
527
+ }
528
+
529
+ /* Flash Player and SWF content version matching
530
+ */
531
+ function hasPlayerVersion(rv) {
532
+ var pv = ua.pv, v = rv.split(".");
533
+ v[0] = parseInt(v[0], 10);
534
+ v[1] = parseInt(v[1], 10) || 0; // supports short notation, e.g. "9" instead of "9.0.0"
535
+ v[2] = parseInt(v[2], 10) || 0;
536
+ return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false;
537
+ }
538
+
539
+ /* Cross-browser dynamic CSS creation
540
+ - Based on Bobby van der Sluis' solution: http://www.bobbyvandersluis.com/articles/dynamicCSS.php
541
+ */
542
+ function createCSS(sel, decl, media, newStyle) {
543
+ if (ua.ie && ua.mac) { return; }
544
+ var h = doc.getElementsByTagName("head")[0];
545
+ if (!h) { return; } // to also support badly authored HTML pages that lack a head element
546
+ var m = (media && typeof media == "string") ? media : "screen";
547
+ if (newStyle) {
548
+ dynamicStylesheet = null;
549
+ dynamicStylesheetMedia = null;
550
+ }
551
+ if (!dynamicStylesheet || dynamicStylesheetMedia != m) {
552
+ // create dynamic stylesheet + get a global reference to it
553
+ var s = createElement("style");
554
+ s.setAttribute("type", "text/css");
555
+ s.setAttribute("media", m);
556
+ dynamicStylesheet = h.appendChild(s);
557
+ if (ua.ie && ua.win && typeof doc.styleSheets != UNDEF && doc.styleSheets.length > 0) {
558
+ dynamicStylesheet = doc.styleSheets[doc.styleSheets.length - 1];
559
+ }
560
+ dynamicStylesheetMedia = m;
561
+ }
562
+ // add style rule
563
+ if (ua.ie && ua.win) {
564
+ if (dynamicStylesheet && typeof dynamicStylesheet.addRule == OBJECT) {
565
+ dynamicStylesheet.addRule(sel, decl);
566
+ }
567
+ }
568
+ else {
569
+ if (dynamicStylesheet && typeof doc.createTextNode != UNDEF) {
570
+ dynamicStylesheet.appendChild(doc.createTextNode(sel + " {" + decl + "}"));
571
+ }
572
+ }
573
+ }
574
+
575
+ function setVisibility(id, isVisible) {
576
+ if (!autoHideShow) { return; }
577
+ var v = isVisible ? "visible" : "hidden";
578
+ if (isDomLoaded && getElementById(id)) {
579
+ getElementById(id).style.visibility = v;
580
+ }
581
+ else {
582
+ createCSS("#" + id, "visibility:" + v);
583
+ }
584
+ }
585
+
586
+ /* Filter to avoid XSS attacks
587
+ */
588
+ function urlEncodeIfNecessary(s) {
589
+ var regex = /[\\\"<>\.;]/;
590
+ var hasBadChars = regex.exec(s) != null;
591
+ return hasBadChars && typeof encodeURIComponent != UNDEF ? encodeURIComponent(s) : s;
592
+ }
593
+
594
+ /* Release memory to avoid memory leaks caused by closures, fix hanging audio/video threads and force open sockets/NetConnections to disconnect (Internet Explorer only)
595
+ */
596
+ var cleanup = function() {
597
+ if (ua.ie && ua.win) {
598
+ window.attachEvent("onunload", function() {
599
+ // remove listeners to avoid memory leaks
600
+ var ll = listenersArr.length;
601
+ for (var i = 0; i < ll; i++) {
602
+ listenersArr[i][0].detachEvent(listenersArr[i][1], listenersArr[i][2]);
603
+ }
604
+ // cleanup dynamically embedded objects to fix audio/video threads and force open sockets and NetConnections to disconnect
605
+ var il = objIdArr.length;
606
+ for (var j = 0; j < il; j++) {
607
+ removeSWF(objIdArr[j]);
608
+ }
609
+ // cleanup library's main closures to avoid memory leaks
610
+ for (var k in ua) {
611
+ ua[k] = null;
612
+ }
613
+ ua = null;
614
+ for (var l in swfobject) {
615
+ swfobject[l] = null;
616
+ }
617
+ swfobject = null;
618
+ });
619
+ }
620
+ }();
621
+
622
+ return {
623
+ /* Public API
624
+ - Reference: http://code.google.com/p/swfobject/wiki/documentation
625
+ */
626
+ registerObject: function(objectIdStr, swfVersionStr, xiSwfUrlStr, callbackFn) {
627
+ if (ua.w3 && objectIdStr && swfVersionStr) {
628
+ var regObj = {};
629
+ regObj.id = objectIdStr;
630
+ regObj.swfVersion = swfVersionStr;
631
+ regObj.expressInstall = xiSwfUrlStr;
632
+ regObj.callbackFn = callbackFn;
633
+ regObjArr[regObjArr.length] = regObj;
634
+ setVisibility(objectIdStr, false);
635
+ }
636
+ else if (callbackFn) {
637
+ callbackFn({success:false, id:objectIdStr});
638
+ }
639
+ },
640
+
641
+ getObjectById: function(objectIdStr) {
642
+ if (ua.w3) {
643
+ return getObjectById(objectIdStr);
644
+ }
645
+ },
646
+
647
+ embedSWF: function(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj, callbackFn) {
648
+ var callbackObj = {success:false, id:replaceElemIdStr};
649
+ if (ua.w3 && !(ua.wk && ua.wk < 312) && swfUrlStr && replaceElemIdStr && widthStr && heightStr && swfVersionStr) {
650
+ setVisibility(replaceElemIdStr, false);
651
+ addDomLoadEvent(function() {
652
+ widthStr += ""; // auto-convert to string
653
+ heightStr += "";
654
+ var att = {};
655
+ if (attObj && typeof attObj === OBJECT) {
656
+ for (var i in attObj) { // copy object to avoid the use of references, because web authors often reuse attObj for multiple SWFs
657
+ att[i] = attObj[i];
658
+ }
659
+ }
660
+ att.data = swfUrlStr;
661
+ att.width = widthStr;
662
+ att.height = heightStr;
663
+ var par = {};
664
+ if (parObj && typeof parObj === OBJECT) {
665
+ for (var j in parObj) { // copy object to avoid the use of references, because web authors often reuse parObj for multiple SWFs
666
+ par[j] = parObj[j];
667
+ }
668
+ }
669
+ if (flashvarsObj && typeof flashvarsObj === OBJECT) {
670
+ for (var k in flashvarsObj) { // copy object to avoid the use of references, because web authors often reuse flashvarsObj for multiple SWFs
671
+ if (typeof par.flashvars != UNDEF) {
672
+ par.flashvars += "&" + k + "=" + flashvarsObj[k];
673
+ }
674
+ else {
675
+ par.flashvars = k + "=" + flashvarsObj[k];
676
+ }
677
+ }
678
+ }
679
+ if (hasPlayerVersion(swfVersionStr)) { // create SWF
680
+ var obj = createSWF(att, par, replaceElemIdStr);
681
+ if (att.id == replaceElemIdStr) {
682
+ setVisibility(replaceElemIdStr, true);
683
+ }
684
+ callbackObj.success = true;
685
+ callbackObj.ref = obj;
686
+ }
687
+ else if (xiSwfUrlStr && canExpressInstall()) { // show Adobe Express Install
688
+ att.data = xiSwfUrlStr;
689
+ showExpressInstall(att, par, replaceElemIdStr, callbackFn);
690
+ return;
691
+ }
692
+ else { // show alternative content
693
+ setVisibility(replaceElemIdStr, true);
694
+ }
695
+ if (callbackFn) { callbackFn(callbackObj); }
696
+ });
697
+ }
698
+ else if (callbackFn) { callbackFn(callbackObj); }
699
+ },
700
+
701
+ switchOffAutoHideShow: function() {
702
+ autoHideShow = false;
703
+ },
704
+
705
+ ua: ua,
706
+
707
+ getFlashPlayerVersion: function() {
708
+ return { major:ua.pv[0], minor:ua.pv[1], release:ua.pv[2] };
709
+ },
710
+
711
+ hasFlashPlayerVersion: hasPlayerVersion,
712
+
713
+ createSWF: function(attObj, parObj, replaceElemIdStr) {
714
+ if (ua.w3) {
715
+ return createSWF(attObj, parObj, replaceElemIdStr);
716
+ }
717
+ else {
718
+ return undefined;
719
+ }
720
+ },
721
+
722
+ showExpressInstall: function(att, par, replaceElemIdStr, callbackFn) {
723
+ if (ua.w3 && canExpressInstall()) {
724
+ showExpressInstall(att, par, replaceElemIdStr, callbackFn);
725
+ }
726
+ },
727
+
728
+ removeSWF: function(objElemIdStr) {
729
+ if (ua.w3) {
730
+ removeSWF(objElemIdStr);
731
+ }
732
+ },
733
+
734
+ createCSS: function(selStr, declStr, mediaStr, newStyleBoolean) {
735
+ if (ua.w3) {
736
+ createCSS(selStr, declStr, mediaStr, newStyleBoolean);
737
+ }
738
+ },
739
+
740
+ addDomLoadEvent: addDomLoadEvent,
741
+
742
+ addLoadEvent: addLoadEvent,
743
+
744
+ getQueryParamValue: function(param) {
745
+ var q = doc.location.search || doc.location.hash;
746
+ if (q) {
747
+ if (/\?/.test(q)) { q = q.split("?")[1]; } // strip question mark
748
+ if (param == null) {
749
+ return urlEncodeIfNecessary(q);
750
+ }
751
+ var pairs = q.split("&");
752
+ for (var i = 0; i < pairs.length; i++) {
753
+ if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
754
+ return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=") + 1)));
755
+ }
756
+ }
757
+ }
758
+ return "";
759
+ },
760
+
761
+ // For internal usage only
762
+ expressInstallCallback: function() {
763
+ if (isExpressInstallActive) {
764
+ var obj = getElementById(EXPRESS_INSTALL_ID);
765
+ if (obj && storedAltContent) {
766
+ obj.parentNode.replaceChild(storedAltContent, obj);
767
+ if (storedAltContentId) {
768
+ setVisibility(storedAltContentId, true);
769
+ if (ua.ie && ua.win) { storedAltContent.style.display = "block"; }
770
+ }
771
+ if (storedCallbackFn) { storedCallbackFn(storedCallbackObj); }
772
+ }
773
+ isExpressInstallActive = false;
774
+ }
775
+ }
776
+ };
777
+ }();