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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 36f41aa1b66acf7b644da231cd4da4d5f64b3380
4
- data.tar.gz: 89044ffa5cb4464c73b4592ceffcd5761dd8fc62
3
+ metadata.gz: 59750c161739d3975a93324259c43551f947275e
4
+ data.tar.gz: b220b86c439dd7e403bdddbc58ccfe08286cab56
5
5
  SHA512:
6
- metadata.gz: f9512af66ace619be608f56fdf935e764a98694252f68d7f53bf36d05229da044c249c2cd457c11bbbf8b8227f431b9b2c83881394bf0bcce417bf0209dc8c66
7
- data.tar.gz: 88b28b5337baf919b168ffa8e9bee0021d583aceb7ae29a4c138d4d73e42a8cdc05e2aeb978bc96f70036fd92224d232e090ca5bfceb8389006ec9c06ee70dbc
6
+ metadata.gz: 97215d4b7600ffefd3d0f4d83d76393503f6239aab9dc764c67a0852dd1c3c1ed83679bc37116baa0d59c78e0faf1cf641aa9424557f1aa78948a902ac61fc64
7
+ data.tar.gz: cc73afc6e0baa3a9f4d437b4ddf63f082117429d3f6beae5af4e95a99aaf0eed995130c30b7c013cad0022311f666c6f9776410045d8e59634429c581f31eb37
data/.gitignore CHANGED
@@ -51,3 +51,4 @@ public/images/easy_images/*
51
51
  public/stylesheets/easy_theme_designer/*
52
52
  .gemtags
53
53
  .tags
54
+ navod.txt
@@ -0,0 +1,9 @@
1
+ /*
2
+ @license
3
+
4
+ dhtmlxGantt v.3.3.0 Stardard
5
+ This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
6
+
7
+ (c) Dinamenta, UAB.
8
+ */
9
+ .gridHoverStyle,.gridSelection,.timelineSelection{background-color:#fff3a1}.gantt_grid_scale .gantt_grid_head_cell{color:#a6a6a6;border-top:none!important;border-right:none!important}.gantt_grid_data .gantt_cell{border-right:none;color:#454545}.gantt_task_link .gantt_link_arrow_right{border-width:6px;margin-top:-3px}.gantt_task_link .gantt_link_arrow_left{border-width:6px;margin-left:-6px;margin-top:-3px}.gantt_task_link .gantt_link_arrow_down,.gantt_task_link .gantt_link_arrow_up{border-width:6px}.gantt_task_line .gantt_task_progress_drag{bottom:-4px;height:16px;margin-left:-8px;width:16px}.chartHeaderBg{background-color:#fff}.gantt_task .gantt_task_scale .gantt_scale_cell{color:#a6a6a6;border-right:1px solid #ebebeb}.gantt_row.gantt_project,.gantt_row.odd.gantt_project{background-color:#edffef}.gantt_task_row.gantt_project,.gantt_task_row.odd.gantt_project{background-color:#f5fff6}.gantt_task_line.gantt_project{background-color:#65c16f;border:1px solid #3c9445}.gantt_task_line.gantt_project .gantt_task_progress{background-color:#46ad51}.buttonBg{background:#fff}.gantt_cal_light .gantt_btn_set{margin:5px 10px}.gantt_btn_set.gantt_cancel_btn_set{background:#fff;color:#454545;border:1px solid #cecece}.gantt_btn_set.gantt_save_btn_set{background:#3db9d3;text-shadow:0 -1px 0 #248a9f;color:#fff}.gantt_btn_set.gantt_delete_btn_set{background:#ec8e00;text-shadow:0 -1px 0 #a60;color:#fff}.gantt_cal_light_wide{padding-left:0!important;padding-right:0!important}.gantt_cal_light_wide .gantt_cal_larea{border-left:none!important;border-right:none!important}.dhtmlx_popup_button.dhtmlx_ok_button{background:#3db9d3;text-shadow:0 -1px 0 #248a9f;color:#fff;font-weight:700;border-width:0}.dhtmlx_popup_button.dhtmlx_cancel_button{font-weight:700;color:#454544}.gantt_qi_big_icon.icon_edit{color:#454545;background:#fff}.gantt_qi_big_icon.icon_delete{text-shadow:0 -1px 0 #a60;background:#ec8e00;color:#fff;border-width:0}.gantt_container{font-family:Arial;font-size:13px;border:1px solid #cecece;position:relative;white-space:nowrap}.gantt_grid{border-right:1px solid #cecece}.gantt_task_scroll{overflow-x:scroll}.gantt_task{position:relative}.gantt_grid,.gantt_task{overflow-x:hidden;overflow-y:hidden;display:inline-block;vertical-align:top}.gantt_grid_scale,.gantt_task_scale{color:#6b6b6b;font-size:12px;border-bottom:1px solid #cecece;background-color:#fff}.gantt_scale_line{box-sizing:border-box;-moz-box-sizing:border-box;border-top:1px solid #cecece}.gantt_scale_line:first-child{border-top:none}.gantt_grid_head_cell{display:inline-block;vertical-align:top;border-right:1px solid #cecece;text-align:center;position:relative;cursor:default;height:100%;-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none;overflow:hidden}.gantt_scale_line{clear:both}.gantt_grid_data{width:100%;overflow:hidden}.gantt_row{position:relative;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_add,.gantt_grid_head_add{width:100%;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTQ3MjMyMENDNkI0MTFFMjk4MTI5QTg3MDhFNDVDQTkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTQ3MjMyMERDNkI0MTFFMjk4MTI5QTg3MDhFNDVDQTkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1NDcyMzIwQUM2QjQxMUUyOTgxMjlBODcwOEU0NUNBOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1NDcyMzIwQkM2QjQxMUUyOTgxMjlBODcwOEU0NUNBOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PshZT8UAAABbSURBVHjaYrTdeZmBEsCER+4wEP+H4sPkGGCDg020ARR7gb4GIAcYDKMDdPnDyAbYkGG5DVW9cIQMvUdBBAuUY4vDz8iAcZinA2zgCHqAYQMseAywJcYFAAEGAM+UFGuohFczAAAAAElFTkSuQmCC);background-position:center center;background-repeat:no-repeat;cursor:pointer;position:relative;-moz-opacity:.3;opacity:.3}.gantt_grid_head_cell.gantt_grid_head_add{-moz-opacity:.6;opacity:.6;top:0}.gantt_grid_head_cell.gantt_grid_head_add:hover{-moz-opacity:1;opacity:1}.gantt_grid_data .gantt_row.odd:hover,.gantt_grid_data .gantt_row:hover{background-color:#fff3a1}.gantt_grid_data .gantt_row.odd:hover .gantt_add,.gantt_grid_data .gantt_row:hover .gantt_add{-moz-opacity:1;opacity:1}.gantt_row,.gantt_task_row{border-bottom:1px solid #ebebeb;background-color:#fff}.gantt_row.odd,.gantt_task_row.odd{background-color:#fff}.gantt_cell,.gantt_grid_head_cell,.gantt_row,.gantt_scale_cell,.gantt_task_cell,.gantt_task_row{box-sizing:border-box;-moz-box-sizing:border-box}.gantt_grid_head_cell,.gantt_scale_cell{line-height:inherit}.gantt_grid_scale .gantt_grid_column_resize_wrap{cursor:col-resize;position:absolute;width:13px}.gantt_grid_column_resize_wrap .gantt_grid_column_resize{background-color:#cecece;height:100%;width:1px;margin:0 auto}.gantt_grid .gantt_grid_resize_wrap{cursor:col-resize;position:absolute;width:13px;z-index:1}.gantt_grid_resize_wrap .gantt_grid_resize{background-color:#cecece;width:1px;margin:0 auto}.gantt_drag_marker.gantt_grid_resize_area{background-color:rgba(231,231,231,.5);border-left:1px solid #cecece;border-right:1px solid #cecece;height:100%;width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.gantt_cell{display:inline-block;vertical-align:top;border-right:1px solid #ebebeb;padding-left:6px;padding-right:6px;height:100%;overflow:hidden;white-space:nowrap;font-size:13px}.gantt_grid_data .gantt_last_cell,.gantt_grid_scale .gantt_last_cell,.gantt_task_bg .gantt_last_cell,.gantt_task_scale .gantt_last_cell{border-right-width:0}.gantt_task_bg{overflow:hidden}.gantt_scale_cell{display:inline-block;white-space:nowrap;overflow:hidden;border-right:1px solid #cecece;text-align:center;height:100%}.gantt_task_cell{display:inline-block;height:100%;border-right:1px solid #ebebeb}.gantt_ver_scroll{width:0;background-color:transparent;height:1px;overflow-x:hidden;overflow-y:scroll;display:none;position:absolute;right:0}.gantt_ver_scroll>div{width:1px;height:1px}.gantt_hor_scroll{height:0;background-color:transparent;width:100%;clear:both;overflow-x:scroll;overflow-y:hidden;display:none}.gantt_hor_scroll>div{width:5000px;height:1px}.gantt_tree_indent{width:15px;height:100%;display:inline-block}.gantt_tree_content,.gantt_tree_icon{vertical-align:top}.gantt_tree_icon{width:28px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:center center}.gantt_tree_content{height:100%;display:inline-block}.gantt_tree_icon.gantt_open{background-image:url(data:image/gif;base64,R0lGODlhEgASALMJAMrKyt3d3ejp6d7f3+/v75aWlvf39////wAAAP///wAAAAAAAAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6M0I5RTczQjVDMDdBMTFFMTgxRjc4Mzk4M0Q3MjVFQzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6M0I5RTczQjZDMDdBMTFFMTgxRjc4Mzk4M0Q3MjVFQzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozQjlFNzNCM0MwN0ExMUUxODFGNzgzOTgzRDcyNUVDMCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozQjlFNzNCNEMwN0ExMUUxODFGNzgzOTgzRDcyNUVDMCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAkALAAAAAASABIAAARJMMlJq704661B+SAIXAVhnKhBFKSZnmuLImhslXPN3ibi+6pdBXc4IIpB2YkGE1IKAoL0ICUInJNCYMDtDgJYiScUGnHO6LQkAgA7);width:18px;cursor:pointer}.gantt_tree_icon.gantt_close{background-image:url(data:image/gif;base64,R0lGODlhEgASALMJAMrKyt3d3ejp6d7f3+/v75aWlvf39wAAAP///////wAAAAAAAAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzY0QzNGM0VDMDdBMTFFMUE3MDlCNUM2QjU1NDA5RjgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzY0QzNGM0ZDMDdBMTFFMUE3MDlCNUM2QjU1NDA5RjgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozNjRDM0YzQ0MwN0ExMUUxQTcwOUI1QzZCNTU0MDlGOCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozNjRDM0YzREMwN0ExMUUxQTcwOUI1QzZCNTU0MDlGOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAkALAAAAAASABIAAARDMMlJq704661B+SAIXAVhnKhBFKSZnmv7wqxVzmpd3Uff5zKEUAi0uV4xm4DAbBIEOkohMKhaB4HoxBMKjTjgsFgSAQA7);width:18px;cursor:pointer}.gantt_tree_icon.gantt_blank{width:18px}.gantt_tree_icon.gantt_folder_open{background-image:url(data:image/gif;base64,R0lGODlhEgASAJECAJeXl7Gvrf///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTdDRDM3QzVDMDZEMTFFMUJGMzhFMDhCN0RGRjBGQ0YiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTdDRDM3QzZDMDZEMTFFMUJGMzhFMDhCN0RGRjBGQ0YiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1N0NEMzdDM0MwNkQxMUUxQkYzOEUwOEI3REZGMEZDRiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1N0NEMzdDNEMwNkQxMUUxQkYzOEUwOEI3REZGMEZDRiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAIALAAAAAASABIAAAIzlI+pywcPm3mhWgkCsjBOvVkimElG9ZlCBlXd+2XjjLKg5GqoeZXqvsOQXK/ijUZTKVUFADs=)}.gantt_tree_icon.gantt_folder_closed{background-image:url(data:image/gif;base64,R0lGODlhEgASAJECAJeXl7Gvrf///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTAyMTU1RTNDMDZEMTFFMUJGNzZCRThBRkFCRjg4MTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTAyMTU1RTRDMDZEMTFFMUJGNzZCRThBRkFCRjg4MTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1MDIxNTVFMUMwNkQxMUUxQkY3NkJFOEFGQUJGODgxMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1MDIxNTVFMkMwNkQxMUUxQkY3NkJFOEFGQUJGODgxMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAIALAAAAAASABIAAAIwlI+pywcPm3mhWgkCsjBOvVkimElG9ZlCuYIY6TYs+6bmHDO4igfdD3GNhheV0VQAADs=)}.gantt_tree_icon.gantt_file{background-image:url(data:image/gif;base64,R0lGODlhEgASAJECAJeXl7Gvrf///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzkxQzI4RjZDMDZEMTFFMTgwRjhBQURDQzI3NDU3QUEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzkxQzI4RjdDMDZEMTFFMTgwRjhBQURDQzI3NDU3QUEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3OTFDMjhGNEMwNkQxMUUxODBGOEFBRENDMjc0NTdBQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3OTFDMjhGNUMwNkQxMUUxODBGOEFBRENDMjc0NTdBQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAIALAAAAAASABIAAAIylI+pwN16QJiUQiFThRlJm3RRFYSlR5qXMKmXaMDuuMoyOi8n/e6xn8NMHETgh5RaKQsAOw==)}.gantt_grid_head_cell .gantt_sort{position:absolute;right:5px;top:8px;width:7px;height:13px;background-repeat:no-repeat;background-position:center center}.gantt_grid_head_cell .gantt_sort.gantt_asc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR4nGNgQAKGxib/GbABkIS7b8B/DAUwCRiGK0CXwFBAb1DfP/U/LszwHwi2X7qFgUEArBtdAVwCBmAKMCSQFSDzAWXXaOHsXeqkAAAAAElFTkSuQmCC)}.gantt_grid_head_cell .gantt_sort.gantt_desc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR42mNgQAL1/VP/M2ADIIntF2/9x1AAlrh0C47hCmA60DFYwX88gIFGwNDY5D8uDFbg7hvwHx2jmIBTAlkB0e4BAEjlaNtBWJPnAAAAAElFTkSuQmCC)}.gantt_inserted,.gantt_updated{font-weight:700}.gantt_deleted{text-decoration:line-through}.gantt_invalid{background-color:FFE0E0}.gantt_error{color:red}.gantt_status{right:1px;padding:5px 10px;background:rgba(155,155,155,.1);position:absolute;top:1px;-webkit-transition:opacity .2s;transition:opacity .2s;opacity:0}.gantt_status.gantt_status_visible{opacity:1}#gantt_ajax_dots span{-webkit-transition:opacity .2s;transition:opacity .2s;background-repeat:no-repeat;opacity:0}#gantt_ajax_dots span.gantt_dot_visible{opacity:1}.dhtmlx_message_area{position:fixed;right:5px;width:250px;z-index:1000}.dhtmlx-info{min-width:120px;font-family:Arial;z-index:10000;margin:5px 5px 10px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}.dhtmlx-info.hidden{height:0;padding:0;border-width:0;margin:0;overflow:hidden}.dhtmlx_modal_box{overflow:hidden;display:inline-block;min-width:250px;width:250px;text-align:center;position:fixed;z-index:20000;box-shadow:3px 3px 3px rgba(0,0,0,.07);font-family:Arial;border-radius:6px;border:1px solid #cecece;background:#fff}.dhtmlx_popup_title{border-top-left-radius:6px;border-top-right-radius:6px;border-width:0}.dhtmlx_button,.dhtmlx_popup_button{border:1px solid #cecece;height:30px;line-height:30px;display:inline-block;margin:0 5px;border-radius:4px;background:#fff}.dhtmlx-info,.dhtmlx_button,.dhtmlx_popup_button{user-select:none;-webkit-user-select:none;-moz-user-select:-moz-none;cursor:pointer}.dhtmlx_popup_text{overflow:hidden}.dhtmlx_popup_controls{border-radius:6px;padding:10px}.dhtmlx_popup_button{min-width:100px}div.dhx_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=20);opacity:.2;position:fixed;z-index:19999;left:0;top:0;width:100%;height:100%;border:none;zoom:1}.dhtmlx-info img,.dhtmlx_modal_box img{float:left;margin-right:20px}.dhtmlx-alert-error,.dhtmlx-confirm-error{border:1px solid red}.dhtmlx_button input,.dhtmlx_popup_button div{border-radius:4px;font-size:14px;-moz-box-sizing:content-box;box-sizing:content-box;padding:0;margin:0;vertical-align:top}.dhtmlx_popup_title{color:#fff;text-shadow:1px 1px #000;height:40px;line-height:40px;font-size:20px}.dhtmlx_popup_text{margin:15px 15px 5px;font-size:14px;color:#000;min-height:30px;border-radius:6px}.dhtmlx-error,.dhtmlx-info{font-size:14px;color:#000;box-shadow:3px 3px 3px rgba(0,0,0,.07);padding:0;background-color:#FFF;border-radius:3px;border:1px solid #fff}.dhtmlx-info div{padding:5px 10px;background-color:#fff;border-radius:3px;border:1px solid #cecece}.dhtmlx-error{background-color:#d81b1b;border:1px solid #ff3c3c;box-shadow:3px 3px 3px rgba(0,0,0,.07)}.dhtmlx-error div{background-color:#d81b1b;border:1px solid #940000;color:#FFF}.gantt_data_area div,.gantt_grid div{-ms-touch-action:none;-webkit-tap-highlight-color:transparent}.gantt_data_area{position:relative;overflow-x:hidden;overflow-y:hidden;-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none}.gantt_links_area{position:absolute;left:0;top:0}.gantt_side_content,.gantt_task_content,.gantt_task_progress{line-height:inherit;overflow:hidden;height:100%}.gantt_task_content{font-size:12px;color:#fff;width:100%;top:0;position:absolute;white-space:nowrap;text-align:center}.gantt_task_progress{text-align:center;z-index:0;background:#299cb4}.gantt_task_line{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;position:absolute;-moz-box-sizing:border-box;box-sizing:border-box;background-color:#3db9d3;border:1px solid #2898b0;-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_task_line.gantt_drag_move div{cursor:move}.gantt_touch_move,.gantt_touch_progress .gantt_touch_resize{-moz-transform:scale(1.02,1.1);-o-transform:scale(1.02,1.1);-webkit-transform:scale(1.02,1.1);transform:scale(1.02,1.1);-moz-transform-origin:50%;-o-transform-origin:50%;-webkit-transform-origin:50%;transform-origin:50%}.gantt_touch_progress .gantt_task_progress_drag,.gantt_touch_resize .gantt_task_drag{-moz-transform:scaleY(1.3);-o-transform:scaleY(1.3);-webkit-transform:scaleY(1.3);transform:scaleY(1.3);-moz-transform-origin:50%;-o-transform-origin:50%;-webkit-transform-origin:50%;transform-origin:50%}.gantt_side_content{position:absolute;white-space:nowrap;color:#6e6e6e;bottom:7px;font-size:11px}.gantt_side_content.gantt_left{right:100%;padding-right:15px}.gantt_side_content.gantt_right{left:100%;padding-left:15px}.gantt_side_content.gantt_link_crossing{bottom:8.75px}.gantt_link_arrow,.gantt_task_link .gantt_line_wrapper{position:absolute;cursor:pointer}.gantt_line_wrapper div{background-color:#ffa011}.gantt_task_link:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #ffa011}.gantt_task_link div.gantt_link_arrow{background-color:transparent;border-style:solid;width:0;height:0}.gantt_link_control{position:absolute;width:13px;top:0}.gantt_link_control div{display:none;cursor:pointer;box-sizing:border-box;position:relative;top:50%;margin-top:-7.5px;vertical-align:middle;border:1px solid #929292;-webkit-border-radius:6.5px;-moz-border-radius:6.5px;border-radius:6.5px;height:13px;width:13px;background-color:#f0f0f0}.gantt_link_control div:hover{background-color:#fff}.gantt_link_control.task_left{left:-13px}.gantt_link_control.task_right{right:-13px}.gantt_link_target .gantt_link_control div,.gantt_task_line.gantt_selected .gantt_link_control div,.gantt_task_line:hover .gantt_link_control div{display:block}.gantt_link_source,.gantt_link_target{box-shadow:0 0 3px #3db9d3}.gantt_link_target.link_finish_allow,.gantt_link_target.link_start_allow{box-shadow:0 0 3px #ffbf5e}.gantt_link_target.link_finish_deny,.gantt_link_target.link_start_deny{box-shadow:0 0 3px #e87e7b}.link_finish_allow .gantt_link_control.task_right div,.link_start_allow .gantt_link_control.task_left div{background-color:#ffbf5e;border-color:#ffa011}.link_finish_deny .gantt_link_control.task_right div,.link_start_deny .gantt_link_control.task_left div{background-color:#e87e7b;border-color:#dd3e3a}.gantt_link_arrow_right{border-width:4px 0 4px 6px;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important;border-color:#ffa011;margin-top:-1px}.gantt_link_arrow_left{border-width:4px 6px 4px 0;margin-top:-1px;border-top-color:transparent!important;border-color:#ffa011;border-bottom-color:transparent!important;border-left-color:transparent!important}.gantt_link_arrow_up{border-width:0 4px 6px;border-color:#ffa011;border-top-color:transparent!important;border-right-color:transparent!important;border-left-color:transparent!important}.gantt_link_arrow_down{border-width:4px 6px 0 4px;border-color:#ffa011;border-right-color:transparent!important;border-bottom-color:transparent!important;border-left-color:transparent!important}.gantt_task_drag,.gantt_task_progress_drag{cursor:w-resize;height:100%;display:none;position:absolute}.gantt_task_line.gantt_selected .gantt_task_drag,.gantt_task_line.gantt_selected .gantt_task_progress_drag,.gantt_task_line:hover .gantt_task_drag,.gantt_task_line:hover .gantt_task_progress_drag{display:block}.gantt_task_drag{width:6px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAACCAYAAAB7Xa1eAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QYDDjkw3UJvAwAAABRJREFUCNdj/P//PwM2wASl/6PTAKrrBf4+lD8LAAAAAElFTkSuQmCC);z-index:1;top:0}.gantt_task_drag.task_left{left:0}.gantt_task_drag.task_right{right:0}.gantt_task_progress_drag{height:8px;width:8px;bottom:-4px;margin-left:-4px;background-position:bottom;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkY3Rjk0RUVDMkYzMTFFMkI1OThEQTA3ODU0OTkzMEEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkY3Rjk0RUZDMkYzMTFFMkI1OThEQTA3ODU0OTkzMEEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRjdGOTRFQ0MyRjMxMUUyQjU5OERBMDc4NTQ5OTMwQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRjdGOTRFREMyRjMxMUUyQjU5OERBMDc4NTQ5OTMwQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PobPBzIAAADkSURBVHjaYpk2bRoDDsAExL1QdjEQ/8OmiAWHZk4gXqymqhQM4ty6fU8OSMUA8XdiDBAB4k0a6iqWRga6EKcwMQXduHlnL5DpB8Rv0J2JDFSA+JiOtgZcMwiA2CAxkBxUDVYDLEAKgIpV9XQ0MZwFEgPJAZnHoWpRDAgC4n2W5saiQKfjClQGkBxQDciL+6B6wAbkA/EqJwdrTkUFOQZCAKQGpBbIXA3SCzJggo+XK7OEuBgDsQCkFqgHrBfsBT5eHgZSAUwP2IBfv36TbABMDygdtK1Zv6UESLORaAbIhG6AAAMAKN8wE24DXWcAAAAASUVORK5CYII=);background-repeat:no-repeat;z-index:2}.gantt_link_tooltip{box-shadow:3px 3px 3px #888;background-color:#fff;border-left:1px dotted #cecece;border-top:1px dotted #cecece;font-family:Tahoma;font-size:8pt;color:#444;padding:6px;line-height:20px}.gantt_link_direction{height:0;border:0 #ffa011;border-bottom-style:dashed;border-bottom-width:2px;transform-origin:0 0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;z-index:2;margin-left:1px;position:absolute}.gantt_grid_data .gantt_row.gantt_selected,.gantt_grid_data .gantt_row.odd.gantt_selected,.gantt_task_row.gantt_selected{background-color:#fff3a1}.gantt_task_row.gantt_selected .gantt_task_cell{border-right-color:#ffec6e}.gantt_task_line.gantt_selected{box-shadow:0 0 5px #299cb4}.gantt_task_line.gantt_project.gantt_selected{box-shadow:0 0 5px #46ad51}.gantt_task_line.gantt_milestone{visibility:hidden;background-color:#d33daf;border:0 solid #61164f;box-sizing:content-box;-moz-box-sizing:content-box}.gantt_task_line.gantt_milestone div{visibility:visible}.gantt_task_line.gantt_milestone .gantt_task_content{background:inherit;border:inherit;border-width:1px;border-radius:inherit;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.gantt_task_line.gantt_task_inline_color{border-color:#999}.gantt_task_line.gantt_task_inline_color .gantt_task_progress{background-color:#363636;opacity:.2}.gantt_task_line.gantt_task_inline_color.gantt_project.gantt_selected,.gantt_task_line.gantt_task_inline_color.gantt_selected{box-shadow:0 0 5px #999}.gantt_task_link.gantt_link_inline_color:hover .gantt_line_wrapper div{box-shadow:0 0 5px 0 #999}.gantt_critical_task{background-color:#e63030;border-color:#9d3a3a}.gantt_critical_task .gantt_task_progress{background-color:rgba(0,0,0,.4)}.gantt_critical_link .gantt_line_wrapper>div{background-color:#e63030}.gantt_critical_link .gantt_link_arrow{border-color:#e63030}.gantt_unselectable,.gantt_unselectable div{-webkit-user-select:none;-moz-user-select:none;-moz-user-select:-moz-none}.gantt_cal_light{-webkit-tap-highlight-color:transparent;background:#fff;border-radius:6px;font-family:Arial;border:1px solid #cecece;color:#6b6b6b;font-size:12px;position:absolute;z-index:10001;width:550px;height:250px;box-shadow:3px 3px 3px rgba(0,0,0,.07)}.gantt_cal_light select{font-family:Arial;border:1px solid #cecece;font-size:13px;padding:2px;margin:0}.gantt_cal_ltitle{padding:7px 10px;overflow:hidden;white-space:nowrap;-webkit-border-radius:6px 6px 0 0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;border-radius:6px 6px 0 0}.gantt_cal_ltitle span{white-space:nowrap}.gantt_cal_lsection{color:#727272;font-weight:700;padding:12px 0 5px 10px}.gantt_cal_lsection .gantt_fullday{float:right;margin-right:5px;font-size:12px;font-weight:400;line-height:20px;vertical-align:top;cursor:pointer}.gantt_cal_lsection{font-size:13px}.gantt_cal_ltext{padding:2px 10px;overflow:hidden}.gantt_cal_ltext textarea{overflow:auto;font-family:Arial;font-size:13px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #cecece;height:100%;width:100%;outline:0!important;resize:none}.gantt_time{font-weight:700}.gantt_cal_light .gantt_title{padding-left:10px}.gantt_cal_larea{border:1px solid #cecece;border-left:none;border-right:none;background-color:#fff;overflow:hidden;height:1px}.gantt_btn_set{margin:10px 7px 5px 10px;padding:5px 15px 5px 10px;float:left;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border-width:0;border-color:#cecece;border-style:solid;height:32px;font-weight:700;background:#fff;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.gantt_btn_set div{float:left;font-size:13px;height:22px;line-height:22px;background-repeat:no-repeat;vertical-align:middle}.gantt_save_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTk1OUU5RDFDMzA0MTFFMkExMUZBQTdDNDAzOUE5RjMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTk1OUU5RDJDMzA0MTFFMkExMUZBQTdDNDAzOUE5RjMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxOTU5RTlDRkMzMDQxMUUyQTExRkFBN0M0MDM5QTlGMyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxOTU5RTlEMEMzMDQxMUUyQTExRkFBN0M0MDM5QTlGMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjDroXYAAAEXSURBVHjaYvz//z8DJYCRUgPIAUxAbAnEHiAHMIBcQCwGaRYXF3e6evXqoffv39/dv38/CymaGSUkJBzv3LlzCsj///fv3wdAihkkIQnEvkAshU8zLy+v7a1bt06ANP/79+87kDIAy505cybq06dPr3p7ezuwGQLTfOPGjWP/ESAZLg8kPKBO+g01RBJNszWyZqC6uSgWgIg/f/4shxnS2dnZBjMEqNkSFGBImi8CKTYMA4BYCGjIczRDHC5dunQQSfN7IKWI4UUkjjdMMdCwnw8ePLjwHxV4Yw1gZA5Q47z/2EELzhhCE+ABGvIQWSeQvwcU38QaAML2wHj+C/X3MyAlijeB4ZBoBOIPQGxJKIVSnBsBAgwABddBclWfcZUAAAAASUVORK5CYII=);margin-top:2px;width:21px}.gantt_cancel_btn{margin-top:2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDkzMDA3MzlDMzA0MTFFMjg2QTVFMzFEQzgwRkJERDYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDkzMDA3M0FDMzA0MTFFMjg2QTVFMzFEQzgwRkJERDYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowOTMwMDczN0MzMDQxMUUyODZBNUUzMURDODBGQkRENiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowOTMwMDczOEMzMDQxMUUyODZBNUUzMURDODBGQkRENiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmYuYOUAAAEdSURBVHjaYvz//z8DJYAFXWDlypU8QKoIiD2A2AwqfAqIdwBxX3h4+Bdk9YzILgBqtgdS84FYEYeF94E4EWjIQZgAE5LmQCB1AKoZZKMPEAtAMYh9GSp3AKjWD8UFQAEhIPshEIOc3wHENUBb/qJ57SyQMoJyPwKxElDNO1gYFEE17wMKVmIJlzNQzeegrjaA6qmBecEbSvfh0GwMxGeBhoPoemQ9MAO0kEIbl2YTqPAFKK2IbMB3AjabYIkRZmQD7kNpMyI0G0PpO8gGbIUFJj7NQDk2INWIrIcJKfBAKcwJqvkcDs0TgFgXGo19KCkRmpDWQdWDEk0NUoCBoq0FqhkE/IEWbKJKUmZEz43QzFSKIzN1481M5ACAAAMAlfl/lCwRpagAAAAASUVORK5CYII=);width:20px}.gantt_delete_btn{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjFENzI3NUNDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjFENzI3NURDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyMUQ3Mjc1QUMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyMUQ3Mjc1QkMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmUD0gAAAABvSURBVHjaYvz//z8DIyMjAxYQicReji4J0ofKQNP8HwmgGQbXB8IsWGwDSSwDuioKjY9uBthVjFAXYHUGAQA2kYmBUoAUBpGk0LAwgBvwH+YX4mkwptgLowYMRgOITUyYKRFIN/wnDjQgJySAAAMApryKzL8wjfUAAAAASUVORK5CYII=);margin-top:2px;width:20px}.gantt_cal_cover{width:100%;height:100%;position:absolute;z-index:10000;top:0;left:0;background-color:#000;opacity:.1;filter:alpha(opacity=10)}.gantt_custom_button{padding:0 3px;font-family:Arial;font-size:13px;font-weight:400;margin-right:10px;margin-top:-5px;cursor:pointer;float:right;height:21px;width:90px;border:1px solid #CECECE;text-align:center;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.gantt_custom_button div{cursor:pointer;float:none;height:21px;line-height:21px;vertical-align:middle}.gantt_custom_button div:first-child{display:none}.gantt_cal_light_wide{width:580px;padding:2px 4px}.gantt_cal_light_wide .gantt_cal_larea{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #cecece}.gantt_cal_light_wide .gantt_cal_lsection{border:0;float:left;text-align:right;width:80px;height:20px;padding:5px 10px 0 0}.gantt_cal_light_wide .gantt_wrap_section{position:relative;padding:10px 0;overflow:hidden;border-bottom:1px solid #ebebeb}.gantt_cal_light_wide .gantt_section_time{overflow:hidden;padding-top:2px!important;padding-right:0;height:20px!important}.gantt_cal_light_wide .gantt_cal_ltext{padding-right:0}.gantt_cal_light_wide .gantt_cal_larea{padding:0 10px;width:100%}.gantt_cal_light_wide .gantt_section_time{background:0 0}.gantt_cal_light_wide .gantt_cal_checkbox label{padding-left:0}.gantt_cal_light_wide .gantt_cal_lsection .gantt_fullday{float:none;margin-right:0;font-weight:700;cursor:pointer}.gantt_cal_light_wide .gantt_custom_button{position:absolute;top:0;right:0;margin-top:2px}.gantt_cal_light_wide .gantt_repeat_right{margin-right:55px}.gantt_cal_light_wide.gantt_cal_light_full{width:738px}.gantt_cal_wide_checkbox input{margin-top:8px;margin-left:14px}.gantt_cal_light input{font-size:13px}.gantt_section_time{background-color:#fff;white-space:nowrap;padding:5px 10px;padding-top:2px!important}.gantt_section_time .gantt_time_selects{float:left;height:25px}.gantt_section_time .gantt_time_selects select{height:23px;padding:2px;border:1px solid #cecece}.gantt_duration{width:100px;height:23px;float:left;white-space:nowrap;margin-left:20px;line-height:23px}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc,.gantt_duration .gantt_duration_value{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;vertical-align:top;height:100%;border:1px solid #cecece}.gantt_duration .gantt_duration_value{width:40px;padding:3px 4px;border-left-width:0;border-right-width:0}.gantt_duration .gantt_duration_dec,.gantt_duration .gantt_duration_inc{width:20px;padding:1px 1px 3px;background:#fff}.gantt_duration .gantt_duration_dec{-moz-border-top-left-radius:4px;-moz-border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;border-top-left-radius:4px;border-bottom-left-radius:4px}.gantt_duration .gantt_duration_inc{margin-right:4px;-moz-border-top-right-radius:4px;-moz-border-bottom-right-radius:4px;-webkit-border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:4px}.gantt_cal_quick_info{border:1px solid #cecece;border-radius:6px;position:absolute;z-index:300;box-shadow:3px 3px 3px rgba(0,0,0,.07);background-color:#fff;width:300px;transition:left .5s ease,right .5s;-moz-transition:left .5s ease,right .5s;-webkit-transition:left .5s ease,right .5s;-o-transition:left .5s ease,right .5s}.gantt_no_animate{transition:none;-moz-transition:none;-webkit-transition:none;-o-transition:none}.gantt_cal_quick_info.gantt_qi_left .gantt_qi_big_icon{float:right}.gantt_cal_qi_title{-webkit-border-radius:6px 6px 0 0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;border-radius:6px 6px 0 0;padding:5px 0 8px 12px;color:#454545;background-color:#fff;border-bottom:1px solid #cecece}.gantt_cal_qi_tdate{font-size:14px;font-weight:700}.gantt_cal_qi_tcontent{font-size:13px}.gantt_cal_qi_content{padding:16px 8px;font-size:13px;color:#454545;overflow:hidden}.gantt_cal_qi_controls{-webkit-border-radius:0 0 6px 6px;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:6px;border-radius:0 0 6px 6px;padding-left:7px}.gantt_cal_qi_controls .gantt_menu_icon{margin-top:6px;background-repeat:no-repeat}.gantt_cal_qi_controls .gantt_menu_icon.icon_edit{width:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH3QYFCjI5ZQj5bAAAAFNJREFUOMvt0zEOACAIA0DkwTymH8bJTRTKZGJXyaWEKPKTCQAH4Ls37cItcDUzsxHNDLZNhCq7Gt1wh9ErV7EjyGAhyGLphlnsClWuS32rn0czAV+vNGrM/LBtAAAAAElFTkSuQmCC)}.gantt_cal_qi_controls .gantt_menu_icon.icon_delete{width:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjFENzI3NUNDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjFENzI3NURDMzA0MTFFMjhBNjJGQTc3MUIyQzYzNEYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyMUQ3Mjc1QUMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyMUQ3Mjc1QkMzMDQxMUUyOEE2MkZBNzcxQjJDNjM0RiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmUD0gAAAABvSURBVHjaYvz//z8DIyMjAxYQicReji4J0ofKQNP8HwmgGQbXB8IsWGwDSSwDuioKjY9uBthVjFAXYHUGAQA2kYmBUoAUBpGk0LAwgBvwH+YX4mkwptgLowYMRgOITUyYKRFIN/wnDjQgJySAAAMApryKzL8wjfUAAAAASUVORK5CYII=)}.gantt_qi_big_icon{font-size:13px;border-radius:4px;font-weight:700;background:#fff;margin:5px 9px 8px 0;min-width:60px;line-height:32px;vertical-align:middle;padding:0 10px 0 5px;cursor:pointer;border:1px solid #cecece}.gantt_cal_qi_controls div{float:left;height:32px;text-align:center;line-height:32px}.gantt_tooltip{box-shadow:3px 3px 3px rgba(0,0,0,.07);background-color:#fff;border-left:1px solid rgba(0,0,0,.07);border-top:1px solid rgba(0,0,0,.07);font-family:Arial;font-size:8pt;color:#454545;padding:10px;position:absolute;z-index:50}.gantt_marker{height:100%;width:2px;top:0;position:absolute;text-align:center;background-color:rgba(255,0,0,.4);-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.gantt_marker .gantt_marker_content{padding:5px;background:inherit;color:#fff;position:absolute;font-size:12px;line-height:12px;opacity:.8}.gantt_marker_area{position:absolute;top:0;left:0}.gantt_noselect{-moz-user-select:-moz-none;-webkit-user-select:none;-user-select:none}.gantt_drag_marker{position:absolute;font-family:Arial;font-size:13px}.gantt_drag_marker .gantt_tree_icon.gantt_blank,.gantt_drag_marker .gantt_tree_icon.gantt_close,.gantt_drag_marker .gantt_tree_icon.gantt_open,.gantt_drag_marker .gantt_tree_indent{display:none}.gantt_drag_marker,.gantt_drag_marker .gantt_row.odd{background-color:#fff}.gantt_drag_marker .gantt_row{border-left:1px solid #d2d2d2;border-top:1px solid #d2d2d2}.gantt_drag_marker .gantt_cell{border-color:#d2d2d2}.gantt_row.gantt_over,.gantt_task_row.gantt_over{background-color:#0070fe}.gantt_row.gantt_transparent .gantt_cell{opacity:.7}.gantt_task_row.gantt_transparent{background-color:#f8fdfd}.dhtmlx_popup_button.dhtmlx_delete_button{background:#3db9d3;text-shadow:0 -1px 0 #248a9f;color:#fff;font-weight:700;border-width:0}
@@ -0,0 +1,312 @@
1
+ /*
2
+ @license
3
+
4
+ dhtmlxGantt v.3.3.0 Stardard
5
+ This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
6
+
7
+ (c) Dinamenta, UAB.
8
+ */
9
+ function dhtmlxEvent(t,e,n){t.addEventListener?t.addEventListener(e,n,!1):t.attachEvent&&t.attachEvent("on"+e,n)}function dhtmlxDetachEvent(t,e,n){t.removeEventListener?t.removeEventListener(e,n,!1):t.detachEvent&&t.detachEvent("on"+e,n)}function dhtmlxDnD(t,e){e&&(this._settings=e),dhtmlxEventable(this),dhtmlxEvent(t,"mousedown",dhtmlx.bind(function(n){e.original_target={target:n.target||n.srcElement},this.dragStart(t,n)},this))}function dataProcessor(t){return this.serverProcessor=t,this.action_param="!nativeeditor_status",
10
+ this.object=null,this.updatedRows=[],this.autoUpdate=!0,this.updateMode="cell",this._tMode="GET",this._headers=null,this._payload=null,this.post_delim="_",this._waitMode=0,this._in_progress={},this._invalid={},this.mandatoryFields=[],this.messages=[],this.styles={updated:"font-weight:bold;",inserted:"font-weight:bold;",deleted:"text-decoration : line-through;",invalid:"background-color:FFE0E0;",invalid_cell:"border-bottom:2px solid red;",error:"color:red;",clear:"font-weight:normal;text-decoration:none;"
11
+ },this.enableUTFencoding(!0),dhx4._eventable(this),this}"undefined"==typeof window.dhx4&&(window.dhx4={version:"4.1.3",skin:null,skinDetect:function(t){return{10:"dhx_skyblue",20:"dhx_web",30:"dhx_terrace"}[this.readFromCss(t+"_skin_detect")]||null},readFromCss:function(t,e){var n=document.createElement("DIV");n.className=t,null!=document.body.firstChild?document.body.insertBefore(n,document.body.firstChild):document.body.appendChild(n);var a=n[e||"offsetWidth"];return n.parentNode.removeChild(n),
12
+ n=null,a},lastId:1,newId:function(){return this.lastId++},zim:{data:{},step:5,first:function(){return 100},last:function(){var t=this.first();for(var e in this.data)t=Math.max(t,this.data[e]);return t},reserve:function(t){return this.data[t]=this.last()+this.step,this.data[t]},clear:function(t){null!=this.data[t]&&(this.data[t]=null,delete this.data[t])}},s2b:function(t){return"string"==typeof t&&(t=t.toLowerCase()),1==t||1==t||"true"==t||"1"==t||"yes"==t||"y"==t},s2j:function(s){var obj=null;dhx4.temp=null;
13
+ try{eval("dhx4.temp="+s)}catch(e){dhx4.temp=null}return obj=dhx4.temp,dhx4.temp=null,obj},absLeft:function(t){return"string"==typeof t&&(t=document.getElementById(t)),this.getOffset(t).left},absTop:function(t){return"string"==typeof t&&(t=document.getElementById(t)),this.getOffset(t).top},_aOfs:function(t){for(var e=0,n=0;t;)e+=parseInt(t.offsetTop),n+=parseInt(t.offsetLeft),t=t.offsetParent;return{top:e,left:n}},_aOfsRect:function(t){var e=t.getBoundingClientRect(),n=document.body,a=document.documentElement,i=window.pageYOffset||a.scrollTop||n.scrollTop,s=window.pageXOffset||a.scrollLeft||n.scrollLeft,r=a.clientTop||n.clientTop||0,o=a.clientLeft||n.clientLeft||0,d=e.top+i-r,l=e.left+s-o;
14
+ return{top:Math.round(d),left:Math.round(l)}},getOffset:function(t){return t.getBoundingClientRect?this._aOfsRect(t):this._aOfs(t)},_isObj:function(t){return null!=t&&"object"==typeof t&&"undefined"==typeof t.length},_copyObj:function(t){if(this._isObj(t)){var e={};for(var n in t)"object"==typeof t[n]&&null!=t[n]?e[n]=this._copyObj(t[n]):e[n]=t[n]}else for(var e=[],n=0;n<t.length;n++)"object"==typeof t[n]&&null!=t[n]?e[n]=this._copyObj(t[n]):e[n]=t[n];return e},screenDim:function(){var t=navigator.userAgent.indexOf("MSIE")>=0,e={};
15
+ return e.left=document.body.scrollLeft,e.right=e.left+(window.innerWidth||document.body.clientWidth),e.top=Math.max((t?document.documentElement:document.getElementsByTagName("html")[0]).scrollTop,document.body.scrollTop),e.bottom=e.top+(t?Math.max(document.documentElement.clientHeight||0,document.documentElement.offsetHeight||0):window.innerHeight),e},selectTextRange:function(t,e,n){t="string"==typeof t?document.getElementById(t):t;var a=t.value.length;if(e=Math.max(Math.min(e,a),0),n=Math.min(n,a),
16
+ t.setSelectionRange)try{t.setSelectionRange(e,n)}catch(i){}else if(t.createTextRange){var s=t.createTextRange();s.moveStart("character",e),s.moveEnd("character",n-a);try{s.select()}catch(i){}}},transData:null,transDetect:function(){if(null==this.transData){this.transData={transProp:!1,transEv:null};var t={MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd",OTransition:"oTransitionEnd",msTransition:"transitionend",transition:"transitionend"};for(var e in t)0==this.transData.transProp&&null!=document.documentElement.style[e]&&(this.transData.transProp=e,
17
+ this.transData.transEv=t[e]);t=null}return this.transData},_xmlNodeValue:function(t){for(var e="",n=0;n<t.childNodes.length;n++)e+=null!=t.childNodes[n].nodeValue?t.childNodes[n].nodeValue.toString().replace(/^[\n\r\s]{0,}/,"").replace(/[\n\r\s]{0,}$/,""):"";return e}},window.dhx4.isIE=navigator.userAgent.indexOf("MSIE")>=0||navigator.userAgent.indexOf("Trident")>=0,window.dhx4.isIE6=null==window.XMLHttpRequest&&navigator.userAgent.indexOf("MSIE")>=0,window.dhx4.isIE7=navigator.userAgent.indexOf("MSIE 7.0")>=0&&navigator.userAgent.indexOf("Trident")<0,
18
+ window.dhx4.isIE8=navigator.userAgent.indexOf("MSIE 8.0")>=0&&navigator.userAgent.indexOf("Trident")>=0,window.dhx4.isOpera=navigator.userAgent.indexOf("Opera")>=0,window.dhx4.isChrome=navigator.userAgent.indexOf("Chrome")>=0,window.dhx4.isKHTML=navigator.userAgent.indexOf("Safari")>=0||navigator.userAgent.indexOf("Konqueror")>=0,window.dhx4.isFF=navigator.userAgent.indexOf("Firefox")>=0,window.dhx4.isIPad=navigator.userAgent.search(/iPad/gi)>=0),"undefined"==typeof window.dhx4.ajax&&(window.dhx4.ajax={
19
+ cache:!1,method:"get",parse:function(t){if("string"!=typeof t)return t;if(t=t.replace(/^[\s]+/,""),window.DOMParser&&!dhx4.isIE)var e=(new window.DOMParser).parseFromString(t,"text/xml");else if(window.ActiveXObject!==window.undefined){var e=new window.ActiveXObject("Microsoft.XMLDOM");e.async="false",e.loadXML(t)}return e},xmltop:function(t,e,n){if("undefined"==typeof e.status||e.status<400){var a=e.responseXML?e.responseXML||e:dhx4.ajax.parse(e.responseText||e);if(a&&null!==a.documentElement&&!a.getElementsByTagName("parsererror").length)return a.getElementsByTagName(t)[0];
20
+ }return-1!==n&&dhx4.callEvent("onLoadXMLError",["Incorrect XML",arguments[1],n]),document.createElement("DIV")},xpath:function(t,e){if(e.nodeName||(e=e.responseXML||e),dhx4.isIE)return e.selectNodes(t)||[];for(var n,a=[],i=(e.ownerDocument||e).evaluate(t,e,null,XPathResult.ANY_TYPE,null);n=i.iterateNext();)a.push(n);return a},query:function(t){dhx4.ajax._call(t.method||"GET",t.url,t.data||"",t.async||!0,t.callback,null,t.headers)},get:function(t,e){this._call("GET",t,null,!0,e)},getSync:function(t){
21
+ return this._call("GET",t,null,!1)},put:function(t,e,n){this._call("PUT",t,e,!0,n)},del:function(t,e,n){this._call("DELETE",t,e,!0,n)},post:function(t,e,n){1==arguments.length?e="":2!=arguments.length||"function"!=typeof e&&"function"!=typeof window[e]?e=String(e):(n=e,e=""),this._call("POST",t,e,!0,n)},postSync:function(t,e){return e=null==e?"":String(e),this._call("POST",t,e,!1)},getLong:function(t,e){this._call("GET",t,null,!0,e,{url:t})},postLong:function(t,e,n){2==arguments.length&&(n=e,e=""),
22
+ this._call("POST",t,e,!0,n,{url:t,postData:e})},_call:function(t,e,n,a,i,s,r){var o=window.XMLHttpRequest&&!dhx4.isIE?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP"),d=null!=navigator.userAgent.match(/AppleWebKit/)&&null!=navigator.userAgent.match(/Qt/)&&null!=navigator.userAgent.match(/Safari/);if(1==a&&(o.onreadystatechange=function(){if(4==o.readyState||1==d&&3==o.readyState){if((200!=o.status||""==o.responseText)&&!dhx4.callEvent("onAjaxError",[o]))return;window.setTimeout(function(){
23
+ "function"==typeof i&&i.apply(window,[{xmlDoc:o}]),null!=s&&("undefined"!=typeof s.postData?dhx4.ajax.postLong(s.url,s.postData,i):dhx4.ajax.getLong(s.url,i)),i=null,o=null},1)}}),"GET"==t&&1!=this.cache&&(e+=(e.indexOf("?")>=0?"&":"?")+"dhxr"+(new Date).getTime()+"=1"),o.open(t,e,a),r)for(var l in r)o.setRequestHeader(l,r[l]);else"POST"==t.toUpperCase()||"PUT"==t||"DELETE"==t?o.setRequestHeader("Content-Type","application/x-www-form-urlencoded"):"GET"==t&&(n=null);return o.setRequestHeader("X-Requested-With","XMLHttpRequest"),
24
+ o.send(n),a?void 0:{xmlDoc:o}}}),"undefined"==typeof window.dhx4._eventable&&(window.dhx4._eventable=function(t,e){return"clear"==e?(t.detachAllEvents(),t.dhxevs=null,t.attachEvent=null,t.detachEvent=null,t.checkEvent=null,t.callEvent=null,t.detachAllEvents=null,void(t=null)):(t.dhxevs={data:{}},t.attachEvent=function(t,e){t=String(t).toLowerCase(),this.dhxevs.data[t]||(this.dhxevs.data[t]={});var n=window.dhx4.newId();return this.dhxevs.data[t][n]=e,n},t.detachEvent=function(t){for(var e in this.dhxevs.data){
25
+ var n=0;for(var a in this.dhxevs.data[e])a==t?(this.dhxevs.data[e][a]=null,delete this.dhxevs.data[e][a]):n++;0==n&&(this.dhxevs.data[e]=null,delete this.dhxevs.data[e])}},t.checkEvent=function(t){return t=String(t).toLowerCase(),null!=this.dhxevs.data[t]},t.callEvent=function(t,e){if(t=String(t).toLowerCase(),null==this.dhxevs.data[t])return!0;var n=!0;for(var a in this.dhxevs.data[t])n=this.dhxevs.data[t][a].apply(this,e)&&n;return n},t.detachAllEvents=function(){for(var t in this.dhxevs.data){
26
+ for(var e in this.dhxevs.data[t])this.dhxevs.data[t][e]=null,delete this.dhxevs.data[t][e];this.dhxevs.data[t]=null,delete this.dhxevs.data[t]}},void(t=null))},dhx4._eventable(dhx4)),"undefined"==typeof window.dhtmlx&&(window.dhtmlx={extend:function(t,e){for(var n in e)t[n]||(t[n]=e[n]);return t},extend_api:function(t,e,n){var a=window[t];a&&(window[t]=function(t){if(t&&"object"==typeof t&&!t.tagName){var n=a.apply(this,e._init?e._init(t):arguments);for(var i in dhtmlx)e[i]&&this[e[i]](dhtmlx[i]);
27
+ for(var i in t)e[i]?this[e[i]](t[i]):0===i.indexOf("on")&&this.attachEvent(i,t[i])}else var n=a.apply(this,arguments);return e._patch&&e._patch(this),n||this},window[t].prototype=a.prototype,n&&dhtmlx.extend(window[t].prototype,n))},url:function(t){return-1!=t.indexOf("?")?"&":"?"}}),_isFF=!1,_isIE=!1,_isOpera=!1,_isKHTML=!1,_isMacOS=!1,_isChrome=!1,_FFrv=!1,_KHTMLrv=!1,_OperaRv=!1,-1!=navigator.userAgent.indexOf("Macintosh")&&(_isMacOS=!0),navigator.userAgent.toLowerCase().indexOf("chrome")>-1&&(_isChrome=!0),
28
+ -1!=navigator.userAgent.indexOf("Safari")||-1!=navigator.userAgent.indexOf("Konqueror")?(_KHTMLrv=parseFloat(navigator.userAgent.substr(navigator.userAgent.indexOf("Safari")+7,5)),_KHTMLrv>525?(_isFF=!0,_FFrv=1.9):_isKHTML=!0):-1!=navigator.userAgent.indexOf("Opera")?(_isOpera=!0,_OperaRv=parseFloat(navigator.userAgent.substr(navigator.userAgent.indexOf("Opera")+6,3))):-1!=navigator.appName.indexOf("Microsoft")?(_isIE=!0,(-1!=navigator.appVersion.indexOf("MSIE 8.0")||-1!=navigator.appVersion.indexOf("MSIE 9.0")||-1!=navigator.appVersion.indexOf("MSIE 10.0")||document.documentMode>7)&&"BackCompat"!=document.compatMode&&(_isIE=8)):"Netscape"==navigator.appName&&-1!=navigator.userAgent.indexOf("Trident")?_isIE=8:(_isFF=!0,
29
+ _FFrv=parseFloat(navigator.userAgent.split("rv:")[1])),"undefined"==typeof window.dhtmlxEvent,null==dhtmlxEvent.touchDelay&&(dhtmlxEvent.touchDelay=2e3),"undefined"==typeof dhtmlxEvent.initTouch&&(dhtmlxEvent.initTouch=function(){function t(){if(n){var t=document.createEvent("HTMLEvents");t.initEvent("dblclick",!0,!0),n.dispatchEvent(t),e=n=null}}var e,n,a,i;dhtmlxEvent(document.body,"touchstart",function(s){n=s.touches[0].target,a=s.touches[0].clientX,i=s.touches[0].clientY,e=window.setTimeout(t,dhtmlxEvent.touchDelay);
30
+ }),dhtmlxEvent(document.body,"touchmove",function(t){e&&(Math.abs(t.touches[0].clientX-a)>50||Math.abs(t.touches[0].clientY-i)>50)&&(window.clearTimeout(e),e=n=!1)}),dhtmlxEvent(document.body,"touchend",function(t){e&&(window.clearTimeout(e),e=n=!1)}),dhtmlxEvent.initTouch=function(){}}),window.dhtmlx||(window.dhtmlx={}),function(){function t(t,e){var a=t.callback;n(!1),t.box.parentNode.removeChild(t.box),c=t.box=null,a&&a(e)}function e(e){if(c){e=e||event;var n=e.which||event.keyCode;return dhtmlx.message.keyboard&&((13==n||32==n)&&t(c,!0),
31
+ 27==n&&t(c,!1)),e.preventDefault&&e.preventDefault(),!(e.cancelBubble=!0)}}function n(t){n.cover||(n.cover=document.createElement("DIV"),n.cover.onkeydown=e,n.cover.className="dhx_modal_cover",document.body.appendChild(n.cover));document.body.scrollHeight;n.cover.style.display=t?"inline-block":"none"}function a(t,e){var n="dhtmlx_"+t.toLowerCase().replace(/ /g,"_")+"_button";return"<div class='dhtmlx_popup_button "+n+"' result='"+e+"' ><div>"+t+"</div></div>"}function i(t){g.area||(g.area=document.createElement("DIV"),
32
+ g.area.className="dhtmlx_message_area",g.area.style[g.position]="5px",document.body.appendChild(g.area)),g.hide(t.id);var e=document.createElement("DIV");return e.innerHTML="<div>"+t.text+"</div>",e.className="dhtmlx-info dhtmlx-"+t.type,e.onclick=function(){g.hide(t.id),t=null},"bottom"==g.position&&g.area.firstChild?g.area.insertBefore(e,g.area.firstChild):g.area.appendChild(e),t.expire>0&&(g.timers[t.id]=window.setTimeout(function(){g.hide(t.id)},t.expire)),g.pull[t.id]=e,e=null,t.id}function s(e,n,i){
33
+ var s=document.createElement("DIV");s.className=" dhtmlx_modal_box dhtmlx-"+e.type,s.setAttribute("dhxbox",1);var r="";if(e.width&&(s.style.width=e.width),e.height&&(s.style.height=e.height),e.title&&(r+='<div class="dhtmlx_popup_title">'+e.title+"</div>"),r+='<div class="dhtmlx_popup_text"><span>'+(e.content?"":e.text)+'</span></div><div class="dhtmlx_popup_controls">',n&&(r+=a(e.ok||"OK",!0)),i&&(r+=a(e.cancel||"Cancel",!1)),e.buttons)for(var o=0;o<e.buttons.length;o++)r+=a(e.buttons[o],o);if(r+="</div>",
34
+ s.innerHTML=r,e.content){var d=e.content;"string"==typeof d&&(d=document.getElementById(d)),"none"==d.style.display&&(d.style.display=""),s.childNodes[e.title?1:0].appendChild(d)}return s.onclick=function(n){n=n||event;var a=n.target||n.srcElement;if(a.className||(a=a.parentNode),"dhtmlx_popup_button"==a.className.split(" ")[0]){var i=a.getAttribute("result");i="true"==i||("false"==i?!1:i),t(e,i)}},e.box=s,(n||i)&&(c=e),s}function r(t,a,i){var r=t.tagName?t:s(t,a,i);t.hidden||n(!0),document.body.appendChild(r);
35
+ var o=Math.abs(Math.floor(((window.innerWidth||document.documentElement.offsetWidth)-r.offsetWidth)/2)),d=Math.abs(Math.floor(((window.innerHeight||document.documentElement.offsetHeight)-r.offsetHeight)/2));return"top"==t.position?r.style.top="-3px":r.style.top=d+"px",r.style.left=o+"px",r.onkeydown=e,r.focus(),t.hidden&&dhtmlx.modalbox.hide(r),r}function o(t){return r(t,!0,!1)}function d(t){return r(t,!0,!0)}function l(t){return r(t)}function _(t,e,n){return"object"!=typeof t&&("function"==typeof e&&(n=e,
36
+ e=""),t={text:t,type:e,callback:n}),t}function h(t,e,n,a){return"object"!=typeof t&&(t={text:t,type:e,expire:n,id:a}),t.id=t.id||g.uid(),t.expire=t.expire||g.expire,t}var c=null;document.attachEvent?document.attachEvent("onkeydown",e):document.addEventListener("keydown",e,!0),dhtmlx.alert=function(){var t=_.apply(this,arguments);return t.type=t.type||"confirm",o(t)},dhtmlx.confirm=function(){var t=_.apply(this,arguments);return t.type=t.type||"alert",d(t)},dhtmlx.modalbox=function(){var t=_.apply(this,arguments);
37
+ return t.type=t.type||"alert",l(t)},dhtmlx.modalbox.hide=function(t){for(;t&&t.getAttribute&&!t.getAttribute("dhxbox");)t=t.parentNode;t&&(t.parentNode.removeChild(t),n(!1))};var g=dhtmlx.message=function(t,e,n,a){t=h.apply(this,arguments),t.type=t.type||"info";var s=t.type.split("-")[0];switch(s){case"alert":return o(t);case"confirm":return d(t);case"modalbox":return l(t);default:return i(t)}};g.seed=(new Date).valueOf(),g.uid=function(){return g.seed++},g.expire=4e3,g.keyboard=!0,g.position="top",
38
+ g.pull={},g.timers={},g.hideAll=function(){for(var t in g.pull)g.hide(t)},g.hide=function(t){var e=g.pull[t];e&&e.parentNode&&(window.setTimeout(function(){e.parentNode.removeChild(e),e=null},2e3),e.className+=" hidden",g.timers[t]&&window.clearTimeout(g.timers[t]),delete g.pull[t])}}(),gantt={version:"3.3.0"},dhtmlxEventable=function(obj){obj._silent_mode=!1,obj._silentStart=function(){this._silent_mode=!0},obj._silentEnd=function(){this._silent_mode=!1},obj.attachEvent=function(t,e,n){return t="ev_"+t.toLowerCase(),
39
+ this[t]||(this[t]=new this._eventCatcher(n||this)),t+":"+this[t].addEvent(e)},obj.callEvent=function(t,e){return this._silent_mode?!0:(t="ev_"+t.toLowerCase(),this[t]?this[t].apply(this,e):!0)},obj.checkEvent=function(t){return!!this["ev_"+t.toLowerCase()]},obj._eventCatcher=function(obj){var dhx_catch=[],z=function(){for(var t=!0,e=0;e<dhx_catch.length;e++)if(dhx_catch[e]){var n=dhx_catch[e].apply(obj,arguments);t=t&&n}return t};return z.addEvent=function(ev){return"function"!=typeof ev&&(ev=eval(ev)),
40
+ ev?dhx_catch.push(ev)-1:!1},z.removeEvent=function(t){dhx_catch[t]=null},z},obj.detachEvent=function(t){if(t){var e=t.split(":");this[e[0]].removeEvent(e[1])}},obj.detachAllEvents=function(){for(var t in this)0===t.indexOf("ev_")&&delete this[t]},obj=null},dhtmlx.copy=function(t){var e,n,a;if(t&&"object"==typeof t){for(a={},n=[Array,Date,Number,String,Boolean],e=0;e<n.length;e++)t instanceof n[e]&&(a=e?new n[e](t):new n[e]);for(e in t)Object.prototype.hasOwnProperty.apply(t,[e])&&(a[e]=dhtmlx.copy(t[e]));
41
+ }return a||t},dhtmlx.mixin=function(t,e,n){for(var a in e)(!t[a]||n)&&(t[a]=e[a]);return t},dhtmlx.defined=function(t){return"undefined"!=typeof t},dhtmlx.uid=function(){return this._seed||(this._seed=(new Date).valueOf()),this._seed++,this._seed},dhtmlx.bind=function(t,e){return t.bind?t.bind(e):function(){return t.apply(e,arguments)}},gantt._get_position=function(t){var e=0,n=0;if(t.getBoundingClientRect){var a=t.getBoundingClientRect(),i=document.body,s=document.documentElement,r=window.pageYOffset||s.scrollTop||i.scrollTop,o=window.pageXOffset||s.scrollLeft||i.scrollLeft,d=s.clientTop||i.clientTop||0,l=s.clientLeft||i.clientLeft||0;
42
+ return e=a.top+r-d,n=a.left+o-l,{y:Math.round(e),x:Math.round(n),width:t.offsetWidth,height:t.offsetHeight}}for(;t;)e+=parseInt(t.offsetTop,10),n+=parseInt(t.offsetLeft,10),t=t.offsetParent;return{y:e,x:n,width:t.offsetWidth,height:t.offsetHeight}},gantt._detectScrollSize=function(){var t=document.createElement("div");t.style.cssText="visibility:hidden;position:absolute;left:-1000px;width:100px;padding:0px;margin:0px;height:110px;min-height:100px;overflow-y:scroll;",document.body.appendChild(t);var e=t.offsetWidth-t.clientWidth;
43
+ return document.body.removeChild(t),e},window.dhtmlx&&(dhtmlx.attaches||(dhtmlx.attaches={}),dhtmlx.attaches.attachGantt=function(t,e,n){var a=document.createElement("DIV");a.id="gantt_"+dhtmlx.uid(),a.style.width="100%",a.style.height="100%",a.cmp="grid",n=n||window.gantt,document.body.appendChild(a),this.attachObject(a.id);var i=this.vs[this.av];i.grid=n,n.init(a.id,t,e),a.firstChild.style.border="none",i.gridId=a.id,i.gridObj=a;var s="_viewRestore";return this.vs[this[s]()].grid}),"undefined"!=typeof window.dhtmlXCellObject&&(dhtmlXCellObject.prototype.attachGantt=function(t,e,n){
44
+ var a=document.createElement("DIV");a.id="gantt_"+dhtmlx.uid(),a.style.width="100%",a.style.height="100%",a.cmp="grid",document.body.appendChild(a),this.attachObject(a.id),n=n||window.gantt,n.init(a.id,t,e),a.firstChild.style.border="none";return a=null,this.callEvent("_onContentAttach",[]),this.dataObj}),dhtmlxEventable(gantt),dhx4.ajax.cache=!0,gantt._click={},gantt._dbl_click={},gantt._context_menu={},gantt._on_click=function(t){t=t||window.event;var e=t.target||t.srcElement,n=gantt.locate(t),a=!0;
45
+ if(null!==n?a=!gantt.checkEvent("onTaskClick")||gantt.callEvent("onTaskClick",[n,t]):gantt.callEvent("onEmptyClick",[t]),a){var i=gantt._find_ev_handler(t,e,gantt._click,n);if(!i)return;n&&gantt.getTask(n)&&gantt.config.select_task&&gantt.selectTask(n)}},gantt._on_contextmenu=function(t){t=t||window.event;var e=t.target||t.srcElement,n=gantt.locate(e),a=gantt.locate(e,gantt.config.link_attribute),i=!gantt.checkEvent("onContextMenu")||gantt.callEvent("onContextMenu",[n,a,t]);return i||(t.preventDefault?t.preventDefault():t.returnValue=!1),
46
+ i},gantt._find_ev_handler=function(t,e,n,a){for(var i=!0;e;){var s=gantt._getClassName(e);if(s){s=s.split(" ");for(var r=0;r<s.length;r++)if(s[r]&&n[s[r]]){var o=n[s[r]].call(gantt,t,a,e);i=i&&!("undefined"!=typeof o&&o!==!0)}}e=e.parentNode}return i},gantt._on_dblclick=function(t){t=t||window.event;var e=t.target||t.srcElement,n=gantt.locate(t),a=!gantt.checkEvent("onTaskDblClick")||gantt.callEvent("onTaskDblClick",[n,t]);if(a){var i=gantt._find_ev_handler(t,e,gantt._dbl_click,n);if(!i)return;null!==n&&gantt.getTask(n)&&a&&gantt.config.details_on_dblclick&&gantt.showLightbox(n);
47
+ }},gantt._on_mousemove=function(t){if(gantt.checkEvent("onMouseMove")){var e=gantt.locate(t);gantt._last_move_event=t,gantt.callEvent("onMouseMove",[e,t])}},dhtmlxDnD.prototype={dragStart:function(t,e){this.config={obj:t,marker:null,started:!1,pos:this.getPosition(e),sensitivity:4},this._settings&&dhtmlx.mixin(this.config,this._settings,!0);var n=dhtmlx.bind(function(e){return this.dragMove(t,e)},this),a=(dhtmlx.bind(function(e){return this.dragScroll(t,e)},this),dhtmlx.bind(function(t){return dhtmlx.defined(this.config.updates_per_second)&&!gantt._checkTimeout(this,this.config.updates_per_second)?!0:n(t);
48
+ },this)),i=dhtmlx.bind(function(e){return dhtmlxDetachEvent(document.body,"mousemove",a),dhtmlxDetachEvent(document.body,"mouseup",i),this.dragEnd(t)},this);dhtmlxEvent(document.body,"mousemove",a),dhtmlxEvent(document.body,"mouseup",i),document.body.className+=" gantt_noselect"},dragMove:function(t,e){if(!this.config.marker&&!this.config.started){var n=this.getPosition(e),a=n.x-this.config.pos.x,i=n.y-this.config.pos.y,s=Math.sqrt(Math.pow(Math.abs(a),2)+Math.pow(Math.abs(i),2));if(s>this.config.sensitivity){
49
+ if(this.config.started=!0,this.config.ignore=!1,this.callEvent("onBeforeDragStart",[t,this.config.original_target])===!1)return this.config.ignore=!0,!0;var r=this.config.marker=document.createElement("div");r.className="gantt_drag_marker",r.innerHTML="Dragging object",document.body.appendChild(r),this.callEvent("onAfterDragStart",[t,this.config.original_target])}else this.config.ignore=!0}this.config.ignore||(e.pos=this.getPosition(e),this.config.marker.style.left=e.pos.x+"px",this.config.marker.style.top=e.pos.y+"px",
50
+ this.callEvent("onDragMove",[t,e]))},dragEnd:function(t){this.config.marker&&(this.config.marker.parentNode.removeChild(this.config.marker),this.config.marker=null,this.callEvent("onDragEnd",[])),document.body.className=document.body.className.replace(" gantt_noselect","")},getPosition:function(t){var e=0,n=0;return t=t||window.event,t.pageX||t.pageY?(e=t.pageX,n=t.pageY):(t.clientX||t.clientY)&&(e=t.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,n=t.clientY+document.body.scrollTop+document.documentElement.scrollTop),
51
+ {x:e,y:n}}},gantt._init_grid=function(){this._click.gantt_close=dhtmlx.bind(function(t,e,n){return this.close(e),!1},this),this._click.gantt_open=dhtmlx.bind(function(t,e,n){return this.open(e),!1},this),this._click.gantt_row=dhtmlx.bind(function(t,e,n){if(null!==e){var a=this.getTask(e);this.config.scroll_on_click&&this.showDate(a.start_date),this.callEvent("onTaskRowClick",[e,n])}},this),this._click.gantt_grid_head_cell=dhtmlx.bind(function(t,e,n){var a=n.getAttribute("column_id");if(this.callEvent("onGridHeaderClick",[a,t])){
52
+ if("add"==a)return void this._click.gantt_add(t,this.config.root_id);if(this.config.sort){for(var i,s=a,r=0;this.config.columns.length;r++)if(this.config.columns[r].name==a){i=this.config.columns[r];break}if(i&&void 0!==i.sort&&i.sort!==!0&&(s=i.sort,!s))return;var o=this._sort&&this._sort.direction&&this._sort.name==a?this._sort.direction:"desc";o="desc"==o?"asc":"desc",this._sort={name:a,direction:o},this.sort(s,"desc"==o)}}},this),!this.config.sort&&this.config.order_branch&&this._init_dnd(),this._click.gantt_add=dhtmlx.bind(function(t,e,n){
53
+ if(!this.config.readonly){var a={};return this.createTask(a,e?e:this.config.root_id),!1}},this),this._init_resize&&this._init_resize()},gantt._render_grid=function(){this._is_grid_visible()&&(this._calc_grid_width(),this._render_grid_header())},gantt._calc_grid_width=function(){for(var t=this.getGridColumns(),e=0,n=[],a=[],i=0;i<t.length;i++){var s=parseInt(t[i].width,10);window.isNaN(s)&&(s=50,n.push(i)),a[i]=s,e+=s}if(this.config.autofit||n.length){var r=this._get_grid_width()-e;r/(n.length>0?n.length:a.length>0?a.length:1);
54
+ if(n.length>0)for(var o=r/(n.length?n.length:1),i=0;i<n.length;i++){var d=n[i];a[d]+=o}else for(var o=r/(a.length?a.length:1),i=0;i<a.length;i++)a[i]+=o;for(var i=0;i<a.length;i++)t[i].width=a[i]}else this.config.grid_width=e},gantt._render_grid_header=function(){for(var t=this.getGridColumns(),e=[],n=0,a=this.locale.labels,i=this.config.scale_height-2,s=0;s<t.length;s++){var r=s==t.length-1,o=t[s];r&&this._get_grid_width()>n+o.width&&(o.width=this._get_grid_width()-n),n+=o.width;var d=this._sort&&o.name==this._sort.name?"<div class='gantt_sort gantt_"+this._sort.direction+"'></div>":"",l=["gantt_grid_head_cell","gantt_grid_head_"+o.name,r?"gantt_last_cell":"",this.templates.grid_header_class(o.name,o)].join(" "),_="width:"+(o.width-(r?1:0))+"px;",h=o.label||a["column_"+o.name];
55
+ h=h||"";var c="<div class='"+l+"' style='"+_+"' column_id='"+o.name+"'>"+h+d+"</div>";e.push(c)}this.$grid_scale.style.height=this.config.scale_height-1+"px",this.$grid_scale.style.lineHeight=i+"px",this.$grid_scale.style.width=n-1+"px",this.$grid_scale.innerHTML=e.join("")},gantt._render_grid_item=function(t){if(!gantt._is_grid_visible())return null;for(var e=this.getGridColumns(),n=[],a=0;a<e.length;a++){var i,s,r=a==e.length-1,o=e[a];"add"==o.name?s="<div class='gantt_add'></div>":(s=o.template?o.template(t):t[o.name],
56
+ s instanceof Date&&(s=this.templates.date_grid(s,t)),s="<div class='gantt_tree_content'>"+s+"</div>");var d="gantt_cell"+(r?" gantt_last_cell":""),l="";if(o.tree){for(var _=0;_<t.$level;_++)l+=this.templates.grid_indent(t);var h=this._has_children(t.id);h?(l+=this.templates.grid_open(t),l+=this.templates.grid_folder(t)):(l+=this.templates.grid_blank(t),l+=this.templates.grid_file(t))}var c="width:"+(o.width-(r?1:0))+"px;";dhtmlx.defined(o.align)&&(c+="text-align:"+o.align+";"),i="<div class='"+d+"' style='"+c+"'>"+l+s+"</div>",
57
+ n.push(i)}var d=t.$index%2===0?"":" odd";if(d+=t.$transparent?" gantt_transparent":"",d+=t.$dataprocessor_class?" "+t.$dataprocessor_class:"",this.templates.grid_row_class){var g=this.templates.grid_row_class.call(this,t.start_date,t.end_date,t);g&&(d+=" "+g)}this.getState().selected_task==t.id&&(d+=" gantt_selected");var u=document.createElement("div");return u.className="gantt_row"+d,u.style.height=this.config.row_height+"px",u.style.lineHeight=gantt.config.row_height+"px",u.setAttribute(this.config.task_attribute,t.id),
58
+ u.innerHTML=n.join(""),u},gantt.open=function(t){gantt._set_item_state(t,!0),this.callEvent("onTaskOpened",[t])},gantt.close=function(t){gantt._set_item_state(t,!1),this.callEvent("onTaskClosed",[t])},gantt._set_item_state=function(t,e){t&&this._pull[t]&&(this._pull[t].$open=e,gantt._refresh_on_toggle_element(t))},gantt._refresh_on_toggle_element=function(t){this.refreshData()},gantt._is_grid_visible=function(){return this.config.grid_width&&this.config.show_grid},gantt._get_grid_width=function(){
59
+ return this._is_grid_visible()?this._is_chart_visible()?this.config.grid_width:this._x:0},gantt.moveTask=function(t,e,n){var a=arguments[3];if(a){if(a===t)return;n=this.getParent(a),e=this.getTaskIndex(a)}if(t!=n){n=n||this.config.root_id;var i=this.getTask(t),s=this.getParent(i.id),r=(this.getChildren(this.getParent(i.id)),this.getChildren(n));if(-1==e&&(e=r.length+1),s==n){var o=this.getTaskIndex(t);if(o==e)return}if(this.callEvent("onBeforeTaskMove",[t,n,e])!==!1){this._replace_branch_child(s,t),
60
+ r=this.getChildren(n);var d=r[e];d?r=r.slice(0,e).concat([t]).concat(r.slice(e)):r.push(t),this.setParent(i,n),this._branches[n]=r,i.$level=this.calculateTaskLevel(i),1*e>0?a?i.$drop_target=(this.getTaskIndex(t)>this.getTaskIndex(a)?"next:":"")+a:i.$drop_target="next:"+gantt.getPrevSibling(t):r[1*e+1]?i.$drop_target=r[1*e+1]:i.$drop_target=n,this.callEvent("onAfterTaskMove",[t,n,e])&&this.refreshData()}}},gantt._init_dnd=function(){var t=new dhtmlxDnD(this.$grid_data,{updates_per_second:60});dhtmlx.defined(this.config.dnd_sensitivity)&&(t.config.sensitivity=this.config.dnd_sensitivity),
61
+ t.attachEvent("onBeforeDragStart",dhtmlx.bind(function(e,n){var a=this._locateHTML(n);if(!a)return!1;this.hideQuickInfo&&this._hideQuickInfo();var i=this.locate(n),s=gantt.getTask(i);return gantt._is_readonly(s)?!1:(t.config.initial_open_state=s.$open,this.callEvent("onRowDragStart",[i,n.target||n.srcElement,n])?void 0:!1)},this)),t.attachEvent("onAfterDragStart",dhtmlx.bind(function(e,n){var a=this._locateHTML(n);t.config.marker.innerHTML=a.outerHTML,t.config.id=this.locate(n);var i=this.getTask(t.config.id);
62
+ t.config.index=this.getTaskIndex(t.config.id),t.config.parent=i.parent,i.$open=!1,i.$transparent=!0,this.refreshData()},this)),t.lastTaskOfLevel=function(t){for(var e=gantt._order,n=gantt._pull,a=null,i=0,s=e.length;s>i;i++)n[e[i]].$level==t&&(a=n[e[i]]);return a?a.id:null},t._getGridPos=dhtmlx.bind(function(t){var e=this._get_position(this.$grid_data),n=e.x,a=t.pos.y-10;return a<e.y&&(a=e.y),a>e.y+this.$grid_data.offsetHeight-this.config.row_height&&(a=e.y+this.$grid_data.offsetHeight-this.config.row_height),
63
+ e.x=n,e.y=a,e},this),t.attachEvent("onDragMove",dhtmlx.bind(function(e,n){function a(t,e){return t.$level==e.$level||gantt.config.order_branch_free}var i=t.config,s=t._getGridPos(n);i.marker.style.left=s.x+10+"px",i.marker.style.top=s.y+"px",s=t._getGridPos(n);var r=(s.x,s.y),o=document.elementFromPoint(s.x-document.body.scrollLeft+1,r-document.body.scrollTop),d=this.locate(o),l=this.getTask(t.config.id);if(this.isTaskExists(d)||(d=t.lastTaskOfLevel(gantt.config.order_branch_free?l.$level:0),d==t.config.id&&(d=null)),
64
+ this.isTaskExists(d)){var _=gantt._get_position(o),h=this.getTask(d);if(_.y+o.offsetHeight/2<r){var c=this.getGlobalTaskIndex(h.id),g=this._pull[this._order[c+1]];if(g){if(g.id==l.id)return;h=g}else if(g=this._pull[this._order[c]],a(g,l)&&g.id!=l.id)return void this.moveTask(l.id,-1,this.getParent(g.id))}for(var c=this.getGlobalTaskIndex(h.id),u=this._pull[this._order[c-1]],f=1;(!u||u.id==h.id)&&c-f>=0;)u=this._pull[this._order[c-f]],f++;if(l.id==h.id)return;a(h,l)&&l.id!=h.id?this.moveTask(l.id,0,0,h.id):h.$level!=l.$level-1||gantt.getChildren(h.id).length?u&&a(u,l)&&l.id!=u.id&&this.moveTask(l.id,-1,this.getParent(u.id)):this.moveTask(l.id,0,h.id);
65
+ }return!0},this)),t.attachEvent("onDragEnd",dhtmlx.bind(function(){var e=this.getTask(t.config.id);this.callEvent("onBeforeRowDragEnd",[t.config.id,t.config.parent,t.config.index])===!1?(this.moveTask(t.config.id,t.config.index,t.config.parent),e.$drop_target=null):this.callEvent("onRowDragEnd",[t.config.id,e.$drop_target]),e.$transparent=!1,e.$open=t.config.initial_open_state,this.refreshData()},this))},gantt.getGridColumns=function(){return this.config.columns},gantt._has_children=function(t){return this.getChildren(t).length>0;
66
+ },gantt._scale_helpers={getSum:function(t,e,n){void 0===n&&(n=t.length-1),void 0===e&&(e=0);for(var a=0,i=e;n>=i;i++)a+=t[i];return a},setSumWidth:function(t,e,n,a){var i=e.width;void 0===a&&(a=i.length-1),void 0===n&&(n=0);var s=a-n+1;if(!(n>i.length-1||0>=s||a>i.length-1)){var r=this.getSum(i,n,a),o=t-r;this.adjustSize(o,i,n,a),this.adjustSize(-o,i,a+1),e.full_width=this.getSum(i)}},splitSize:function(t,e){for(var n=[],a=0;e>a;a++)n[a]=0;return this.adjustSize(t,n),n},adjustSize:function(t,e,n,a){
67
+ n||(n=0),void 0===a&&(a=e.length-1);for(var i=a-n+1,s=this.getSum(e,n,a),r=0,o=n;a>=o;o++){var d=Math.floor(t*(s?e[o]/s:1/i));s-=e[o],t-=d,i--,e[o]+=d,r+=d}e[e.length-1]+=t},sortScales:function(t){function e(t,e){var n=new Date(1970,0,1);return gantt.date.add(n,e,t)-n}t.sort(function(t,n){return e(t.unit,t.step)<e(n.unit,n.step)?1:e(t.unit,t.step)>e(n.unit,n.step)?-1:0})},primaryScale:function(){return gantt._init_template("date_scale"),{unit:gantt.config.scale_unit,step:gantt.config.step,template:gantt.templates.date_scale,
68
+ date:gantt.config.date_scale,css:gantt.templates.scale_cell_class}},prepareConfigs:function(t,e,n,a){for(var i=this.splitSize(a,t.length),s=n,r=[],o=t.length-1;o>=0;o--){var d=o==t.length-1,l=this.initScaleConfig(t[o]);d&&this.processIgnores(l),this.initColSizes(l,e,s,i[o]),this.limitVisibleRange(l),d&&(s=l.full_width),r.unshift(l)}for(var o=0;o<r.length-1;o++)this.alineScaleColumns(r[r.length-1],r[o]);for(var o=0;o<r.length;o++)this.setPosSettings(r[o]);return r},setPosSettings:function(t){for(var e=0,n=t.trace_x.length;n>e;e++)t.left.push((t.width[e-1]||0)+(t.left[e-1]||0));
69
+ },_ignore_time_config:function(t){return this.config.skip_off_time?!this.isWorkTime(t):!1},processIgnores:function(t){t.ignore_x={},t.display_count=t.count},initColSizes:function(t,e,n,a){var i=n;t.height=a;var s=void 0===t.display_count?t.count:t.display_count;s||(s=1),t.col_width=Math.floor(i/s),e&&t.col_width<e&&(t.col_width=e,i=t.col_width*s),t.width=[];for(var r=t.ignore_x||{},o=0;o<t.trace_x.length;o++)r[t.trace_x[o].valueOf()]||t.display_count==t.count?t.width[o]=0:t.width[o]=1;this.adjustSize(i-this.getSum(t.width),t.width),
70
+ t.full_width=this.getSum(t.width)},initScaleConfig:function(t){var e=dhtmlx.mixin({count:0,col_width:0,full_width:0,height:0,width:[],left:[],trace_x:[]},t);return this.eachColumn(t.unit,t.step,function(t){e.count++,e.trace_x.push(new Date(t))}),e},iterateScales:function(t,e,n,a,i){for(var s=e.trace_x,r=t.trace_x,o=n||0,d=a||r.length-1,l=0,_=1;_<s.length;_++)for(var h=o;d>=h;h++)+r[h]!=+s[_]||(i&&i.apply(this,[l,_,o,h]),o=h,l=_)},alineScaleColumns:function(t,e,n,a){this.iterateScales(t,e,n,a,function(n,a,i,s){
71
+ var r=this.getSum(t.width,i,s-1),o=this.getSum(e.width,n,a-1);o!=r&&this.setSumWidth(r,e,n,a-1)})},eachColumn:function(t,e,n){var a=new Date(gantt._min_date),i=new Date(gantt._max_date);gantt.date[t+"_start"]&&(a=gantt.date[t+"_start"](a));var s=new Date(a);for(+s>=+i&&(i=gantt.date.add(s,e,t));+i>+s;){n.call(this,new Date(s));var r=s.getTimezoneOffset();s=gantt.date.add(s,e,t),s=gantt._correct_dst_change(s,r,e,t),gantt.date[t+"_start"]&&(s=gantt.date[t+"_start"](s))}},limitVisibleRange:function(t){
72
+ var e=t.trace_x,n=0,a=t.width.length-1,i=0;if(+e[0]<+gantt._min_date&&n!=a){var s=Math.floor(t.width[0]*((e[1]-gantt._min_date)/(e[1]-e[0])));i+=t.width[0]-s,t.width[0]=s,e[0]=new Date(gantt._min_date)}var r=e.length-1,o=e[r],d=gantt.date.add(o,t.step,t.unit);if(+d>+gantt._max_date&&r>0){var s=t.width[r]-Math.floor(t.width[r]*((d-gantt._max_date)/(d-o)));i+=t.width[r]-s,t.width[r]=s}if(i){for(var l=this.getSum(t.width),_=0,h=0;h<t.width.length;h++){var c=Math.floor(i*(t.width[h]/l));t.width[h]+=c,
73
+ _+=c}this.adjustSize(i-_,t.width)}}},gantt._tasks_dnd={drag:null,_events:{before_start:{},before_finish:{},after_finish:{}},_handlers:{},init:function(){this.clear_drag_state();var t=gantt.config.drag_mode;this.set_actions();var e={before_start:"onBeforeTaskDrag",before_finish:"onBeforeTaskChanged",after_finish:"onAfterTaskDrag"};for(var n in this._events)for(var a in t)this._events[n][a]=e[n];this._handlers[t.move]=this._move,this._handlers[t.resize]=this._resize,this._handlers[t.progress]=this._resize_progress;
74
+ },set_actions:function(){var t=gantt.$task_data;dhtmlxEvent(t,"mousemove",dhtmlx.bind(function(t){this.on_mouse_move(t||event)},this)),dhtmlxEvent(t,"mousedown",dhtmlx.bind(function(t){this.on_mouse_down(t||event)},this)),dhtmlxEvent(t,"mouseup",dhtmlx.bind(function(t){this.on_mouse_up(t||event)},this))},clear_drag_state:function(){this.drag={id:null,mode:null,pos:null,start_x:null,start_y:null,obj:null,left:null}},_resize:function(t,e,n){var a=gantt.config,i=this._drag_task_coords(t,n);n.left?(t.start_date=gantt.dateFromPos(i.start+e),
75
+ t.start_date||(t.start_date=new Date(gantt.getState().min_date))):(t.end_date=gantt.dateFromPos(i.end+e),t.end_date||(t.end_date=new Date(gantt.getState().max_date))),t.end_date-t.start_date<a.min_duration&&(n.left?t.start_date=gantt.calculateEndDate(t.end_date,-1):t.end_date=gantt.calculateEndDate(t.start_date,1)),gantt._init_task_timing(t)},_resize_progress:function(t,e,n){var a=this._drag_task_coords(t,n),i=Math.max(0,n.pos.x-a.start);t.progress=Math.min(1,i/(a.end-a.start))},_move:function(t,e,n){
76
+ var a=this._drag_task_coords(t,n),i=gantt.dateFromPos(a.start+e),s=gantt.dateFromPos(a.end+e);i?s?(t.start_date=i,t.end_date=s):(t.end_date=new Date(gantt.getState().max_date),t.start_date=gantt.dateFromPos(gantt.posFromDate(t.end_date)-(a.end-a.start))):(t.start_date=new Date(gantt.getState().min_date),t.end_date=gantt.dateFromPos(gantt.posFromDate(t.start_date)+(a.end-a.start)))},_drag_task_coords:function(t,e){var n=e.obj_s_x=e.obj_s_x||gantt.posFromDate(t.start_date),a=e.obj_e_x=e.obj_e_x||gantt.posFromDate(t.end_date);
77
+ return{start:n,end:a}},on_mouse_move:function(t){this.drag.start_drag&&this._start_dnd(t);var e=this.drag;if(e.mode){if(!gantt._checkTimeout(this,40))return;this._update_on_move(t)}},_update_on_move:function(t){var e=this.drag;if(e.mode){var n=gantt._get_mouse_pos(t);if(e.pos&&e.pos.x==n.x)return;e.pos=n;var a=gantt.dateFromPos(n.x);if(!a||isNaN(a.getTime()))return;var i=n.x-e.start_x,s=gantt.getTask(e.id);if(this._handlers[e.mode]){var r=dhtmlx.mixin({},s),o=dhtmlx.mixin({},s);this._handlers[e.mode].apply(this,[o,i,e]),
78
+ dhtmlx.mixin(s,o,!0),gantt._update_parents(e.id,!0),gantt.callEvent("onTaskDrag",[s.id,e.mode,o,r,t]),dhtmlx.mixin(s,o,!0),gantt._update_parents(e.id),gantt.refreshTask(e.id)}}},on_mouse_down:function(t,e){if(2!=t.button){var n=gantt.locate(t),a=null;if(gantt.isTaskExists(n)&&(a=gantt.getTask(n)),!gantt._is_readonly(a)&&!this.drag.mode){this.clear_drag_state(),e=e||t.target||t.srcElement;var i=gantt._getClassName(e);if(!i||!this._get_drag_mode(i))return e.parentNode?this.on_mouse_down(t,e.parentNode):void 0;
79
+ var s=this._get_drag_mode(i);if(s)if(s.mode&&s.mode!=gantt.config.drag_mode.ignore&&gantt.config["drag_"+s.mode]){if(n=gantt.locate(e),a=dhtmlx.copy(gantt.getTask(n)||{}),gantt._is_readonly(a))return this.clear_drag_state(),!1;if(gantt._is_flex_task(a)&&s.mode!=gantt.config.drag_mode.progress)return void this.clear_drag_state();s.id=n;var r=gantt._get_mouse_pos(t);s.start_x=r.x,s.start_y=r.y,s.obj=a,this.drag.start_drag=s}else this.clear_drag_state();else if(gantt.checkEvent("onMouseDown")&&gantt.callEvent("onMouseDown",[i.split(" ")[0]])&&e.parentNode)return this.on_mouse_down(t,e.parentNode);
80
+ }}},_fix_dnd_scale_time:function(t,e){function n(t){gantt.isWorkTime(t.start_date)||(t.start_date=gantt.calculateEndDate(t.start_date,-1,gantt.config.duration_unit))}function a(t){gantt.isWorkTime(new Date(t.end_date-1))||(t.end_date=gantt.calculateEndDate(t.end_date,1,gantt.config.duration_unit))}var i=gantt._tasks.unit,s=gantt._tasks.step;gantt.config.round_dnd_dates||(i="minute",s=gantt.config.time_step),e.mode==gantt.config.drag_mode.resize?e.left?(t.start_date=gantt.roundDate({date:t.start_date,
81
+ unit:i,step:s}),n(t)):(t.end_date=gantt.roundDate({date:t.end_date,unit:i,step:s}),a(t)):e.mode==gantt.config.drag_mode.move&&(t.start_date=gantt.roundDate({date:t.start_date,unit:i,step:s}),n(t),t.end_date=gantt.calculateEndDate(t.start_date,t.duration,gantt.config.duration_unit))},_fix_working_times:function(t,e){var e=e||{mode:gantt.config.drag_mode.move};gantt.config.work_time&&gantt.config.correct_work_time&&(e.mode==gantt.config.drag_mode.resize?e.left?t.start_date=gantt.getClosestWorkTime({
82
+ date:t.start_date,dir:"future"}):t.end_date=gantt.getClosestWorkTime({date:t.end_date,dir:"past"}):e.mode==gantt.config.drag_mode.move&&gantt.correctTaskWorkTime(t))},on_mouse_up:function(t){var e=this.drag;if(e.mode&&e.id){var n=gantt.getTask(e.id);if(gantt.config.work_time&&gantt.config.correct_work_time&&this._fix_working_times(n,e),this._fix_dnd_scale_time(n,e),gantt._init_task_timing(n),this._fireEvent("before_finish",e.mode,[e.id,e.mode,dhtmlx.copy(e.obj),t])){var a=e.id;gantt._init_task_timing(n),
83
+ this._fireEvent("after_finish",e.mode,[a,e.mode,t]),this.clear_drag_state(),gantt.updateTask(n.id)}else e.obj._dhx_changed=!1,dhtmlx.mixin(n,e.obj,!0),gantt.updateTask(n.id)}this.clear_drag_state()},_get_drag_mode:function(t){var e=gantt.config.drag_mode,n=(t||"").split(" "),a=n[0],i={mode:null,left:null};switch(a){case"gantt_task_line":case"gantt_task_content":i.mode=e.move;break;case"gantt_task_drag":i.mode=e.resize,n[1]&&-1!==n[1].indexOf("left",n[1].length-"left".length)?i.left=!0:i.left=!1;break;
84
+ case"gantt_task_progress_drag":i.mode=e.progress;break;case"gantt_link_control":case"gantt_link_point":i.mode=e.ignore;break;default:i=null}return i},_start_dnd:function(t){var e=this.drag=this.drag.start_drag;delete e.start_drag;var n=gantt.config,a=e.id;n["drag_"+e.mode]&&gantt.callEvent("onBeforeDrag",[a,e.mode,t])&&this._fireEvent("before_start",e.mode,[a,e.mode,t])?delete e.start_drag:this.clear_drag_state()},_fireEvent:function(t,e,n){dhtmlx.assert(this._events[t],"Invalid stage:{"+t+"}");var a=this._events[t][e];
85
+ return dhtmlx.assert(a,"Unknown after drop mode:{"+e+"}"),dhtmlx.assert(n,"Invalid event arguments"),gantt.checkEvent(a)?gantt.callEvent(a,n):!0}},gantt.roundTaskDates=function(t){var e=gantt._tasks_dnd.drag;e||(e={mode:gantt.config.drag_mode.move}),gantt._tasks_dnd._fix_dnd_scale_time(t,e)},gantt._render_link=function(t){for(var e=this.getLink(t),n=gantt._get_link_renderers(),a=0;a<n.length;a++)n[a].render_item(e)},gantt._get_link_type=function(t,e){var n=null;return t&&e?n=gantt.config.links.start_to_start:!t&&e?n=gantt.config.links.finish_to_start:t||e?t&&!e&&(n=gantt.config.links.start_to_finish):n=gantt.config.links.finish_to_finish,
86
+ n},gantt.isLinkAllowed=function(t,e,n,a){var i=null;if(i="object"==typeof t?t:{source:t,target:e,type:this._get_link_type(n,a)},!i)return!1;if(!(i.source&&i.target&&i.type))return!1;if(i.source==i.target)return!1;var s=!0;return this.checkEvent("onLinkValidation")&&(s=this.callEvent("onLinkValidation",[i])),s},gantt._render_link_element=function(t){var e=this._path_builder.get_points(t),n=gantt._drawer,a=n.get_lines(e),i=document.createElement("div"),s="gantt_task_link";t.color&&(s+=" gantt_link_inline_color");
87
+ var r=this.templates.link_class?this.templates.link_class(t):"";r&&(s+=" "+r),this.config.highlight_critical_path&&this.isCriticalLink&&this.isCriticalLink(t)&&(s+=" gantt_critical_link"),i.className=s,i.setAttribute(gantt.config.link_attribute,t.id);for(var o=0;o<a.length;o++){o==a.length-1&&(a[o].size-=gantt.config.link_arrow_size);var d=n.render_line(a[o],a[o+1]);t.color&&(d.firstChild.style.backgroundColor=t.color),i.appendChild(d)}var l=a[a.length-1].direction,_=gantt._render_link_arrow(e[e.length-1],l);
88
+ return t.color&&(_.style.borderColor=t.color),i.appendChild(_),i},gantt._render_link_arrow=function(t,e){var n=document.createElement("div"),a=gantt._drawer,i=t.y,s=t.x,r=gantt.config.link_arrow_size,o=gantt.config.row_height,d="gantt_link_arrow gantt_link_arrow_"+e;switch(e){case a.dirs.right:i-=(r-o)/2,s-=r;break;case a.dirs.left:i-=(r-o)/2;break;case a.dirs.up:s-=r;break;case a.dirs.down:i+=2*r,s-=r}return n.style.cssText=["top:"+i+"px","left:"+s+"px"].join(";"),n.className=d,n},gantt._drawer={
89
+ current_pos:null,dirs:{left:"left",right:"right",up:"up",down:"down"},path:[],clear:function(){this.current_pos=null,this.path=[]},point:function(t){this.current_pos=dhtmlx.copy(t)},get_lines:function(t){this.clear(),this.point(t[0]);for(var e=1;e<t.length;e++)this.line_to(t[e]);return this.get_path()},line_to:function(t){var e=dhtmlx.copy(t),n=this.current_pos,a=this._get_line(n,e);this.path.push(a),this.current_pos=e},get_path:function(){return this.path},get_wrapper_sizes:function(t){var e,n=gantt.config.link_wrapper_width,a=(gantt.config.link_line_width,
90
+ t.y+(gantt.config.row_height-n)/2);switch(t.direction){case this.dirs.left:e={top:a,height:n,lineHeight:n,left:t.x-t.size-n/2,width:t.size+n};break;case this.dirs.right:e={top:a,lineHeight:n,height:n,left:t.x-n/2,width:t.size+n};break;case this.dirs.up:e={top:a-t.size,lineHeight:t.size+n,height:t.size+n,left:t.x-n/2,width:n};break;case this.dirs.down:e={top:a,lineHeight:t.size+2*n,height:t.size+2*n,left:t.x-n/2,width:n}}return e},get_line_sizes:function(t){var e,n=gantt.config.link_line_width,a=gantt.config.link_wrapper_width,i=t.size+n;
91
+ switch(t.direction){case this.dirs.left:case this.dirs.right:e={height:n,width:i,marginTop:(a-n)/2,marginLeft:(a-n)/2};break;case this.dirs.up:case this.dirs.down:e={height:i,width:n,marginTop:(a-n)/2,marginLeft:(a-n)/2}}return e},render_line:function(t){var e=this.get_wrapper_sizes(t),n=document.createElement("div");n.style.cssText=["top:"+e.top+"px","left:"+e.left+"px","height:"+e.height+"px","width:"+e.width+"px"].join(";"),n.className="gantt_line_wrapper";var a=this.get_line_sizes(t),i=document.createElement("div");
92
+ return i.style.cssText=["height:"+a.height+"px","width:"+a.width+"px","margin-top:"+a.marginTop+"px","margin-left:"+a.marginLeft+"px"].join(";"),i.className="gantt_link_line_"+t.direction,n.appendChild(i),n},_get_line:function(t,e){var n=this.get_direction(t,e),a={x:t.x,y:t.y,direction:this.get_direction(t,e)};return n==this.dirs.left||n==this.dirs.right?a.size=Math.abs(t.x-e.x):a.size=Math.abs(t.y-e.y),a},get_direction:function(t,e){var n=0;return n=e.x<t.x?this.dirs.left:e.x>t.x?this.dirs.right:e.y>t.y?this.dirs.down:this.dirs.up;
93
+ }},gantt._y_from_ind=function(t){return t*gantt.config.row_height},gantt._path_builder={path:[],clear:function(){this.path=[]},current:function(){return this.path[this.path.length-1]},point:function(t){return t?(this.path.push(dhtmlx.copy(t)),t):this.current()},point_to:function(t,e,n){n=n?{x:n.x,y:n.y}:dhtmlx.copy(this.point());var a=gantt._drawer.dirs;switch(t){case a.left:n.x-=e;break;case a.right:n.x+=e;break;case a.up:n.y-=e;break;case a.down:n.y+=e}return this.point(n)},get_points:function(t){
94
+ var e=this.get_endpoint(t),n=gantt.config,a=e.e_y-e.y,i=e.e_x-e.x,s=gantt._drawer.dirs;this.clear(),this.point({x:e.x,y:e.y});var r=2*n.link_arrow_size,o=e.e_x>e.x;if(t.type==gantt.config.links.start_to_start)this.point_to(s.left,r),o?(this.point_to(s.down,a),this.point_to(s.right,i)):(this.point_to(s.right,i),this.point_to(s.down,a)),this.point_to(s.right,r);else if(t.type==gantt.config.links.finish_to_start)if(o=e.e_x>e.x+2*r,this.point_to(s.right,r),o)i-=r,this.point_to(s.down,a),this.point_to(s.right,i);else{
95
+ i-=2*r;var d=a>0?1:-1;this.point_to(s.down,d*(n.row_height/2)),this.point_to(s.right,i),this.point_to(s.down,d*(Math.abs(a)-n.row_height/2)),this.point_to(s.right,r)}else if(t.type==gantt.config.links.finish_to_finish)this.point_to(s.right,r),o?(this.point_to(s.right,i),this.point_to(s.down,a)):(this.point_to(s.down,a),this.point_to(s.right,i)),this.point_to(s.left,r);else if(t.type==gantt.config.links.start_to_finish)if(o=e.e_x>e.x-2*r,this.point_to(s.left,r),o){i+=2*r;var d=a>0?1:-1;this.point_to(s.down,d*(n.row_height/2)),
96
+ this.point_to(s.right,i),this.point_to(s.down,d*(Math.abs(a)-n.row_height/2)),this.point_to(s.left,r)}else i+=r,this.point_to(s.down,a),this.point_to(s.right,i);return this.path},get_endpoint:function(t){var e=gantt.config.links,n=!1,a=!1;t.type==e.start_to_start?n=a=!0:t.type==e.finish_to_finish?n=a=!1:t.type==e.finish_to_start?(n=!1,a=!0):t.type==e.start_to_finish?(n=!0,a=!1):dhtmlx.assert(!1,"Invalid link type");var i=gantt._get_task_visible_pos(gantt._pull[t.source],n),s=gantt._get_task_visible_pos(gantt._pull[t.target],a);
97
+ return{x:i.x,e_x:s.x,y:i.y,e_y:s.y}}},gantt._init_links_dnd=function(){function t(t,e,n){var a=gantt._get_task_pos(t,!!e);return a.y+=gantt._get_task_height()/2,n=n||0,a.x+=(e?-1:1)*n,a}function e(t){var e=a(),n=["gantt_link_tooltip"];e.from&&e.to&&(gantt.isLinkAllowed(e.from,e.to,e.from_start,e.to_start)?n.push("gantt_allowed_link"):n.push("gantt_invalid_link"));var i=gantt.templates.drag_link_class(e.from,e.from_start,e.to,e.to_start);i&&n.push(i);var s="<div class='"+i+"'>"+gantt.templates.drag_link(e.from,e.from_start,e.to,e.to_start)+"</div>";
98
+ t.innerHTML=s}function n(t,e){t.style.left=e.x+5+"px",t.style.top=e.y+5+"px"}function a(){return{from:gantt._link_source_task,to:gantt._link_target_task,from_start:gantt._link_source_task_start,to_start:gantt._link_target_task_start}}function i(){gantt._link_source_task=gantt._link_source_task_start=gantt._link_target_task=null,gantt._link_target_task_start=!0}function s(t,e,n,i){var s=d(),l=a(),_=["gantt_link_direction"];gantt.templates.link_direction_class&&_.push(gantt.templates.link_direction_class(l.from,l.from_start,l.to,l.to_start));
99
+ var h=Math.sqrt(Math.pow(n-t,2)+Math.pow(i-e,2));if(h=Math.max(0,h-3)){s.className=_.join(" ");var c=(i-e)/(n-t),g=Math.atan(c);2==o(t,n,e,i)?g+=Math.PI:3==o(t,n,e,i)&&(g-=Math.PI);var u=Math.sin(g),f=Math.cos(g),p=Math.round(e),m=Math.round(t),v=["-webkit-transform: rotate("+g+"rad)","-moz-transform: rotate("+g+"rad)","-ms-transform: rotate("+g+"rad)","-o-transform: rotate("+g+"rad)","transform: rotate("+g+"rad)","width:"+Math.round(h)+"px"];if(-1!=window.navigator.userAgent.indexOf("MSIE 8.0")){
100
+ v.push('-ms-filter: "'+r(u,f)+'"');var k=Math.abs(Math.round(t-n)),x=Math.abs(Math.round(i-e));switch(o(t,n,e,i)){case 1:p-=x;break;case 2:m-=k,p-=x;break;case 3:m-=k}}v.push("top:"+p+"px"),v.push("left:"+m+"px"),s.style.cssText=v.join(";")}}function r(t,e){return"progid:DXImageTransform.Microsoft.Matrix(M11 = "+e+",M12 = -"+t+",M21 = "+t+",M22 = "+e+",SizingMethod = 'auto expand')"}function o(t,e,n,a){return e>=t?n>=a?1:4:n>=a?2:3}function d(){return _._direction||(_._direction=document.createElement("div"),
101
+ gantt.$task_links.appendChild(_._direction)),_._direction}function l(){_._direction&&(_._direction.parentNode&&_._direction.parentNode.removeChild(_._direction),_._direction=null)}var _=new dhtmlxDnD(this.$task_bars,{sensitivity:0,updates_per_second:60}),h="task_left",c="task_right",g="gantt_link_point",u="gantt_link_control";_.attachEvent("onBeforeDragStart",dhtmlx.bind(function(e,n){var a=n.target||n.srcElement;if(i(),gantt.getState().drag_id)return!1;if(gantt._locate_css(a,g)){gantt._locate_css(a,h)&&(gantt._link_source_task_start=!0);
102
+ var s=gantt._link_source_task=this.locate(n),r=gantt.getTask(s);if(gantt._is_readonly(r))return i(),!1;var o=0;return gantt._get_safe_type(r.type)==gantt.config.types.milestone&&(o=(gantt._get_visible_milestone_width()-gantt._get_milestone_width())/2),this._dir_start=t(r,!!gantt._link_source_task_start,o),!0}return!1},this)),_.attachEvent("onAfterDragStart",dhtmlx.bind(function(t,n){e(_.config.marker)},this)),_.attachEvent("onDragMove",dhtmlx.bind(function(a,i){var r=_.config,o=_.getPosition(i);n(r.marker,o);
103
+ var d=gantt._is_link_drop_area(i),l=gantt._link_target_task,h=gantt._link_landing,g=gantt._link_target_task_start,f=gantt.locate(i),p=!0;if(d&&(p=!gantt._locate_css(i,c),d=!!f),gantt._link_target_task=f,gantt._link_landing=d,gantt._link_target_task_start=p,d){var m=gantt.getTask(f),v=gantt._locate_css(i,u),k=0;v&&(k=Math.floor(v.offsetWidth/2)),this._dir_end=t(m,!!gantt._link_target_task_start,k)}else this._dir_end=gantt._get_mouse_pos(i);var x=!(h==d&&l==f&&g==p);return x&&(l&&gantt.refreshTask(l,!1),
104
+ f&&gantt.refreshTask(f,!1)),x&&e(r.marker),s(this._dir_start.x,this._dir_start.y,this._dir_end.x,this._dir_end.y),!0},this)),_.attachEvent("onDragEnd",dhtmlx.bind(function(){var t=a();if(t.from&&t.to&&t.from!=t.to){var e=gantt._get_link_type(t.from_start,t.to_start),n={source:t.from,target:t.to,type:e};n.type&&gantt.isLinkAllowed(n)&&gantt.addLink(n)}i(),t.from&&gantt.refreshTask(t.from,!1),t.to&&gantt.refreshTask(t.to,!1),l()},this)),gantt._is_link_drop_area=function(t){return!!gantt._locate_css(t,u);
105
+ }},gantt._get_link_state=function(){return{link_landing_area:this._link_landing,link_target_id:this._link_target_task,link_target_start:this._link_target_task_start,link_source_id:this._link_source_task,link_source_start:this._link_source_task_start}},gantt._init_tasks=function(){function t(t,e,n,a){for(var i=0;i<t.length;i++)t[i].change_id(e,n),t[i].render_item(a)}this._tasks={col_width:this.config.columnWidth,width:[],full_width:0,trace_x:[],rendered:{}},this._click.gantt_task_link=dhtmlx.bind(function(t,e){
106
+ var n=this.locate(t,gantt.config.link_attribute);n&&this.callEvent("onLinkClick",[n,t])},this),this._click.gantt_scale_cell=dhtmlx.bind(function(t,e){var n=gantt._get_mouse_pos(t),a=gantt.dateFromPos(n.x),i=Math.floor(gantt._day_index_by_date(a)),s=gantt._tasks.trace_x[i];gantt.callEvent("onScaleClick",[t,s])},this),this._dbl_click.gantt_task_link=dhtmlx.bind(function(t,e,n){var e=this.locate(t,gantt.config.link_attribute);this._delete_link_handler(e,t)},this),this._dbl_click.gantt_link_point=dhtmlx.bind(function(t,e,n){
107
+ var e=this.locate(t),a=this.getTask(e),i=null;return n.parentNode&&gantt._getClassName(n.parentNode)&&(i=gantt._getClassName(n.parentNode).indexOf("_left")>-1?a.$target[0]:a.$source[0]),i&&this._delete_link_handler(i,t),!1},this),this._tasks_dnd.init(),this._init_links_dnd(),this._link_layers.clear();var e=this.addLinkLayer({renderer:this._render_link_element,container:this.$task_links,filter:gantt._create_filter(["_filter_link","_is_chart_visible"])});this._linkRenderer=this._link_layers.getRenderer(e),
108
+ this._task_layers.clear();var n=this.addTaskLayer({renderer:this._render_task_element,container:this.$task_bars,filter:gantt._create_filter(["_filter_task","_is_chart_visible"])});this._taskRenderer=this._task_layers.getRenderer(n),this.addTaskLayer({renderer:this._render_grid_item,container:this.$grid_data,filter:gantt._create_filter(["_filter_task","_is_grid_visible"])}),this.addTaskLayer({renderer:this._render_bg_line,container:this.$task_bg,filter:gantt._create_filter(["_filter_task","_is_chart_visible","_is_std_background"])
109
+ }),this._onTaskIdChange&&this.detachEvent(this._onTaskIdChange),this._onTaskIdChange=this.attachEvent("onTaskIdChange",function(e,n){var a=this._get_task_renderers();t(a,e,n,this.getTask(n))}),this._onLinkIdChange&&this.detachEvent(this._onLinkIdChange),this._onLinkIdChange=this.attachEvent("onLinkIdChange",function(e,n){var a=this._get_link_renderers();t(a,e,n,this.getLink(n))})},gantt._create_filter=function(t){return t instanceof Array||(t=Array.prototype.slice.call(arguments,0)),function(e){for(var n=!0,a=0,i=t.length;i>a;a++){
110
+ var s=t[a];gantt[s]&&(n=n&&gantt[s].apply(gantt,[e.id,e])!==!1)}return n}},gantt._is_chart_visible=function(){return!!this.config.show_chart},gantt._filter_task=function(t,e){var n=null,a=null;return this.config.start_date&&this.config.end_date&&(n=this.config.start_date.valueOf(),a=this.config.end_date.valueOf(),+e.start_date>a||+e.end_date<+n)?!1:!0},gantt._filter_link=function(t,e){return this.config.show_links?!gantt.isTaskVisible(e.source)||!gantt.isTaskVisible(e.target)||gantt._isAllowedUnscheduledTask(gantt.getTask(e.source))||gantt._isAllowedUnscheduledTask(gantt.getTask(e.target))?!1:this.callEvent("onBeforeLinkDisplay",[t,e]):!1;
111
+ },gantt._is_std_background=function(){return!this.config.static_background},gantt._delete_link_handler=function(t,e){if(t&&this.callEvent("onLinkDblClick",[t,e])){var n=gantt.getLink(t);if(gantt._is_readonly(n))return;var a="",i=gantt.locale.labels.link+" "+this.templates.link_description(this.getLink(t))+" "+gantt.locale.labels.confirm_link_deleting;window.setTimeout(function(){gantt._dhtmlx_confirm(i,a,function(){gantt.deleteLink(t)})},gantt.config.touch?300:1)}},gantt.getTaskNode=function(t){return this._taskRenderer.rendered[t];
112
+ },gantt.getLinkNode=function(t){return this._linkRenderer.rendered[t]},gantt._get_tasks_data=function(){for(var t=[],e=0;e<this._order.length;e++){var n=this._pull[this._order[e]];n.$index=e,this.resetProjectDates(n),t.push(n)}return t},gantt._get_links_data=function(){var t=[];for(var e in this._lpull)t.push(this._lpull[e]);return t},gantt._render_data=function(){if(this.callEvent("onBeforeDataRender",[]),this._is_render_active()){this._sync_order(),this._update_layout_sizes(),this.config.static_background&&this._render_bg_canvas();
113
+ for(var t=this._get_tasks_data(),e=this._get_task_renderers(),n=0;n<e.length;n++)e[n].render_items(t);var a=gantt._get_links_data();e=this._get_link_renderers();for(var n=0;n<e.length;n++)e[n].render_items(a);this.callEvent("onDataRender",[])}},gantt._update_layout_sizes=function(){var t=this._tasks;t.bar_height=this._get_task_height(),this.$task_data.style.height=Math.max(this.$task.offsetHeight-this.config.scale_height,0)+"px",this.$task_bg.style.height="",this.$task_bg.style.backgroundImage="";
114
+ for(var e=this.$task_data.childNodes,n=0,a=e.length;a>n;n++){var i=e[n];this._is_layer(i)&&i.style&&(i.style.width=t.full_width+"px")}if(this._is_grid_visible()){for(var s=this.getGridColumns(),r=0,n=0;n<s.length;n++)r+=s[n].width;this.$grid_data.style.width=Math.max(r-1,0)+"px"}},gantt._scale_range_unit=function(){var t=this.config.scale_unit;if(this.config.scale_offset_minimal){var e=this._get_scales();t=e[e.length-1].unit}return t},gantt._init_tasks_range=function(){var t=this._scale_range_unit();
115
+ if(this.config.start_date&&this.config.end_date)return this._min_date=this.date[t+"_start"](new Date(this.config.start_date)),void(this._max_date=this.date[t+"_start"](new Date(this.config.end_date)));this._get_tasks_data();var e=this.getSubtaskDates();this._min_date=e.start_date,this._max_date=e.end_date,this._max_date&&this._max_date||(this._min_date=new Date,this._max_date=new Date(this._min_date)),this._min_date=this.date[t+"_start"](this._min_date),this._min_date=this.calculateEndDate(this.date[t+"_start"](this._min_date),-1,t),
116
+ this._max_date=this.date[t+"_start"](this._max_date),this._max_date=this.calculateEndDate(this._max_date,2,t)},gantt._prepare_scale_html=function(t){var e=[],n=null,a=null,i=null;(t.template||t.date)&&(a=t.template||this.date.date_to_str(t.date)),i=t.css||function(){},!t.css&&this.config.inherit_scale_class&&(i=gantt.templates.scale_cell_class);for(var s=0;s<t.count;s++){n=new Date(t.trace_x[s]);var r=a.call(this,n),o=t.width[s],d="",l="",_="";if(o){d="width:"+o+"px;",_="gantt_scale_cell"+(s==t.count-1?" gantt_last_cell":""),
117
+ l=i.call(this,n),l&&(_+=" "+l);var h="<div class='"+_+"' style='"+d+"'>"+r+"</div>";e.push(h)}}return e.join("")},gantt._get_scales=function(){var t=this._scale_helpers,e=[t.primaryScale()].concat(this.config.subscales);return t.sortScales(e),e},gantt._render_tasks_scales=function(){this._init_tasks_range(),this._scroll_resize(),this._set_sizes();var t="",e=0,n=0,a=0;if(this._is_chart_visible()){var i=this._scale_helpers,s=this._get_scales();a=this.config.scale_height-1;for(var r=this._get_resize_options(),o=r.x?Math.max(this.config.autosize_min_width,0):this.$task.offsetWidth,d=i.prepareConfigs(s,this.config.min_column_width,o,a),l=this._tasks=d[d.length-1],_=[],h=this.templates.scale_row_class,c=0;c<d.length;c++){
118
+ var g="gantt_scale_line",u=h(d[c]);u&&(g+=" "+u),_.push('<div class="'+g+'" style="height:'+d[c].height+"px;line-height:"+d[c].height+'px">'+this._prepare_scale_html(d[c])+"</div>")}t=_.join(""),e=l.full_width+this.$scroll_ver.offsetWidth+"px",n=l.full_width+"px",a+="px"}this._is_chart_visible()?this.$task.style.display="":this.$task.style.display="none",this.$task_scale.style.height=a,this.$task_data.style.width=this.$task_scale.style.width=e,this.$task_scale.innerHTML=t},gantt._render_bg_line=function(t){
119
+ var e=gantt._tasks,n=e.count,a=document.createElement("div");if(gantt.config.show_task_cells)for(var i=0;n>i;i++){var s=e.width[i],r="";if(s>0){var o=document.createElement("div");o.style.width=s+"px",r="gantt_task_cell"+(i==n-1?" gantt_last_cell":""),l=this.templates.task_cell_class(t,e.trace_x[i]),l&&(r+=" "+l),o.className=r,a.appendChild(o)}}var d=t.$index%2!==0,l=gantt.templates.task_row_class(t.start_date,t.end_date,t),_="gantt_task_row"+(d?" odd":"")+(l?" "+l:"");return this.getState().selected_task==t.id&&(_+=" gantt_selected"),
120
+ a.className=_,a.style.height=gantt.config.row_height+"px",a.setAttribute(this.config.task_attribute,t.id),a},gantt._render_bg_canvas=function(){},gantt._adjust_scales=function(){if(this.config.fit_tasks){var t=+this._min_date,e=+this._max_date;if(this._init_tasks_range(),+this._min_date!=t||+this._max_date!=e)return this.render(),this.callEvent("onScaleAdjusted",[]),!0}return!1},gantt.refreshTask=function(t,e){if(this._is_render_active()){var n=this._get_task_renderers(),a=this.getTask(t);if(a&&this.isTaskVisible(t)){
121
+ for(var i=0;i<n.length;i++)n[i].render_item(a);if(void 0!==e&&!e)return;for(var i=0;i<a.$source.length;i++)gantt.refreshLink(a.$source[i]);for(var i=0;i<a.$target.length;i++)gantt.refreshLink(a.$target[i])}else this._render_data()}},gantt.refreshLink=function(t){if(this._is_render_active())if(this.isLinkExists(t))this._render_link(t);else for(var e=this._get_link_renderers(),n=0;n<e.length;n++)e[n].remove_item(t)},gantt._combine_item_class=function(t,e,n){var a=[t];e&&a.push(e);var i=gantt.getState(),s=this.getTask(n);
122
+ this._get_safe_type(s.type)==this.config.types.milestone&&a.push("gantt_milestone"),this._get_safe_type(s.type)==this.config.types.project&&a.push("gantt_project"),this._is_flex_task(s)&&a.push("gantt_dependent_task"),this.config.select_task&&n==i.selected_task&&a.push("gantt_selected"),n==i.drag_id&&(a.push("gantt_drag_"+i.drag_mode),i.touch_drag&&a.push("gantt_touch_"+i.drag_mode));var r=gantt._get_link_state();if(r.link_source_id==n&&a.push("gantt_link_source"),r.link_target_id==n&&a.push("gantt_link_target"),
123
+ this.config.highlight_critical_path&&this.isCriticalTask&&this.isCriticalTask(s)&&a.push("gantt_critical_task"),r.link_landing_area&&r.link_target_id&&r.link_source_id&&r.link_target_id!=r.link_source_id){var o=r.link_source_id,d=r.link_source_start,l=r.link_target_start,_=gantt.isLinkAllowed(o,n,d,l),h="";h=_?l?"link_start_allow":"link_finish_allow":l?"link_start_deny":"link_finish_deny",a.push(h)}return a.join(" ")},gantt._render_pair=function(t,e,n,a){var i=gantt.getState();+n.end_date<=+i.max_date&&t.appendChild(a(e+" task_right")),
124
+ +n.start_date>=+i.min_date&&t.appendChild(a(e+" task_left"))},gantt._get_task_height=function(){var t=this.config.task_height;return"full"==t&&(t=this.config.row_height-5),t=Math.min(t,this.config.row_height),Math.max(t,0)},gantt._get_milestone_width=function(){return this._get_task_height()},gantt._get_visible_milestone_width=function(){var t=gantt._get_task_height();return Math.sqrt(2*t*t)},gantt.getTaskPosition=function(t,e,n){var a=this.posFromDate(e||t.start_date),i=this.posFromDate(n||t.end_date);
125
+ i=Math.max(a,i);var s=this.getTaskTop(t.id),r=this.config.task_height;return{left:a,top:s,height:r,width:Math.max(i-a,0)}},gantt._get_task_width=function(t,e,n){return Math.round(this._get_task_pos(t,!1).x-this._get_task_pos(t,!0).x)},gantt._is_readonly=function(t){return t&&t[this.config.editable_property]?!1:t&&t[this.config.readonly_property]||this.config.readonly},gantt._task_default_render=function(t){if(!this._isAllowedUnscheduledTask(t)){var e=this._get_task_pos(t),n=this.config,a=this._get_task_height(),i=Math.floor((this.config.row_height-a)/2);
126
+ this._get_safe_type(t.type)==n.types.milestone&&n.link_line_width>1&&(i+=1);var s=document.createElement("div"),r=gantt._get_task_width(t),o=this._get_safe_type(t.type);s.setAttribute(this.config.task_attribute,t.id),n.show_progress&&o!=this.config.types.milestone&&this._render_task_progress(t,s,r);var d=gantt._render_task_content(t,r);t.textColor&&(d.style.color=t.textColor),s.appendChild(d);var l=this._combine_item_class("gantt_task_line",this.templates.task_class(t.start_date,t.end_date,t),t.id);
127
+ (t.color||t.progressColor||t.textColor)&&(l+=" gantt_task_inline_color"),s.className=l;var _=["left:"+e.x+"px","top:"+(i+e.y)+"px","height:"+a+"px","line-height:"+a+"px","width:"+r+"px"];t.color&&_.push("background-color:"+t.color),t.textColor&&_.push("color:"+t.textColor),s.style.cssText=_.join(";");var h=this._render_leftside_content(t);return h&&s.appendChild(h),h=this._render_rightside_content(t),h&&s.appendChild(h),this._is_readonly(t)||(n.drag_resize&&!this._is_flex_task(t)&&o!=this.config.types.milestone&&gantt._render_pair(s,"gantt_task_drag",t,function(t){
128
+ var e=document.createElement("div");return e.className=t,e}),n.drag_links&&this.config.show_links&&gantt._render_pair(s,"gantt_link_control",t,function(t){var e=document.createElement("div");e.className=t,e.style.cssText=["height:"+a+"px","line-height:"+a+"px"].join(";");var n=document.createElement("div");return n.className="gantt_link_point",e.appendChild(n),e})),s}},gantt._render_task_element=function(t){var e=this.config.type_renderers,n=e[this._get_safe_type(t.type)],a=this._task_default_render;
129
+ return n||(n=a),n.call(this,t,dhtmlx.bind(a,this))},gantt._render_side_content=function(t,e,n){if(!e)return null;var a=e(t.start_date,t.end_date,t);if(!a)return null;var i=document.createElement("div");return i.className="gantt_side_content "+n,i.innerHTML=a,i},gantt._render_leftside_content=function(t){var e="gantt_left "+gantt._get_link_crossing_css(!0,t);return gantt._render_side_content(t,this.templates.leftside_text,e)},gantt._render_rightside_content=function(t){var e="gantt_right "+gantt._get_link_crossing_css(!1,t);
130
+ return gantt._render_side_content(t,this.templates.rightside_text,e)},gantt._get_conditions=function(t){return t?{$source:[gantt.config.links.start_to_start],$target:[gantt.config.links.start_to_start,gantt.config.links.finish_to_start]}:{$source:[gantt.config.links.finish_to_start,gantt.config.links.finish_to_finish],$target:[gantt.config.links.finish_to_finish]}},gantt._get_link_crossing_css=function(t,e){var n=gantt._get_conditions(t);for(var a in n)for(var i=e[a],s=0;s<i.length;s++)for(var r=gantt.getLink(i[s]),o=0;o<n[a].length;o++)if(r.type==n[a][o])return"gantt_link_crossing";
131
+ return""},gantt._render_task_content=function(t,e){var n=document.createElement("div");return this._get_safe_type(t.type)!=this.config.types.milestone&&(n.innerHTML=this.templates.task_text(t.start_date,t.end_date,t)),n.className="gantt_task_content",n},gantt._render_task_progress=function(t,e,n){var a=1*t.progress||0;n=Math.max(n-2,0);var i=document.createElement("div"),s=Math.round(n*a);if(s=Math.min(n,s),t.progressColor&&(i.style.backgroundColor=t.progressColor,i.style.opacity=1),i.style.width=s+"px",
132
+ i.className="gantt_task_progress",i.innerHTML=this.templates.progress_text(t.start_date,t.end_date,t),e.appendChild(i),this.config.drag_progress&&!gantt._is_readonly(t)){var r=document.createElement("div");r.style.left=s+"px",r.className="gantt_task_progress_drag",i.appendChild(r),e.appendChild(r)}},gantt._get_line=function(t){var e={second:1,minute:60,hour:3600,day:86400,week:604800,month:2592e3,year:31536e3};return e[t]||0},gantt.dateFromPos=function(t){var e=this._tasks;if(0>t||t>e.full_width||!e.full_width)return null;
133
+ var n=this._findBinary(this._tasks.left,t),a=this._tasks.left[n],i=e.width[n]||e.col_width,s=0;i&&(s=(t-a)/i);var r=0;s&&(r=gantt._get_coll_duration(e,e.trace_x[n]));var o=new Date(e.trace_x[n].valueOf()+Math.round(s*r));return o},gantt.posFromDate=function(t){var e=gantt._day_index_by_date(t);dhtmlx.assert(e>=0,"Invalid day index");var n=Math.floor(e),a=e%1,i=gantt._tasks.left[Math.min(n,gantt._tasks.width.length-1)];return n==gantt._tasks.width.length&&(i+=gantt._tasks.width[gantt._tasks.width.length-1]),
134
+ a&&(i+=n<gantt._tasks.width.length?gantt._tasks.width[n]*(a%1):1),i},gantt._day_index_by_date=function(t){var e=new Date(t).valueOf(),n=gantt._tasks.trace_x,a=gantt._tasks.ignore_x;if(e<=this._min_date)return 0;if(e>=this._max_date)return n.length;for(var i=gantt._findBinary(n,e),s=+gantt._tasks.trace_x[i];a[s];)s=gantt._tasks.trace_x[++i];return s?i+(t-n[i])/gantt._get_coll_duration(gantt._tasks,n[i]):0},gantt._findBinary=function(t,e){for(var n,a,i,s=0,r=t.length-1;r>=s;)if(n=Math.floor((s+r)/2),
135
+ a=+t[n],i=+t[n-1],e>a)s=n+1;else{if(!(a>e))return n;if(!isNaN(i)&&e>i)return n-1;r=n-1}return t.length-1},gantt._get_coll_duration=function(t,e){return gantt.date.add(e,t.step,t.unit)-e},gantt._get_x_pos=function(t,e){e=e!==!1;gantt.posFromDate(e?t.start_date:t.end_date)},gantt.getTaskTop=function(t){return this._y_from_ind(this.getGlobalTaskIndex(t))},gantt._get_task_coord=function(t,e,n){e=e!==!1,n=n||0;var a=this._get_safe_type(t.type)==this.config.types.milestone,i=null;i=e||a?t.start_date||this._default_task_date(t):t.end_date||this.calculateEndDate(this._default_task_date(t));
136
+ var s=this.posFromDate(i),r=this.getTaskTop(t.id);return a&&(e?s-=n:s+=n),{x:s,y:r}},gantt._get_task_pos=function(t,e){e=e!==!1;var n=gantt._get_milestone_width()/2;return this._get_task_coord(t,e,n)},gantt._get_task_visible_pos=function(t,e){e=e!==!1;var n=gantt._get_visible_milestone_width()/2;return this._get_task_coord(t,e,n)},gantt._correct_shift=function(t,e){return t-=6e4*(new Date(gantt._min_date).getTimezoneOffset()-new Date(t).getTimezoneOffset())*(e?-1:1)},gantt._get_mouse_pos=function(t){
137
+ if(t.pageX||t.pageY)var e={x:t.pageX,y:t.pageY};var n=_isIE?document.documentElement:document.body,e={x:t.clientX+n.scrollLeft-n.clientLeft,y:t.clientY+n.scrollTop-n.clientTop},a=gantt._get_position(gantt.$task_data);return e.x=e.x-a.x+gantt.$task_data.scrollLeft,e.y=e.y-a.y+gantt.$task_data.scrollTop,e},gantt._is_layer=function(t){return t&&t.hasAttribute&&t.hasAttribute(this.config.layer_attribute)},gantt._task_renderer=function(t,e,n,a){return this._task_area_pulls||(this._task_area_pulls={}),
138
+ this._task_area_renderers||(this._task_area_renderers={}),this._task_area_renderers[t]?this._task_area_renderers[t]:(e||dhtmlx.assert(!1,"Invalid renderer call"),n&&n.setAttribute(this.config.layer_attribute,!0),this._task_area_renderers[t]={render_item:function(i,s){var r=gantt._task_area_pulls[t];if(s=s||n,a&&!a(i))return void this.remove_item(i.id);var o=e.call(gantt,i);o&&(r[i.id]?this.replace_item(i.id,o):(r[i.id]=o,s.appendChild(o)))},clear:function(e){this.rendered=gantt._task_area_pulls[t]={},
139
+ e=e||n,e&&(e.innerHTML="")},render_items:function(t,e){e=e||n,this.clear(e);for(var a=document.createDocumentFragment(),i=0,s=t.length;s>i;i++)this.render_item(t[i],a);e.appendChild(a)},replace_item:function(t,e){var n=this.rendered[t];n&&n.parentNode&&n.parentNode.replaceChild(e,n),this.rendered[t]=e},remove_item:function(t){var e=this.rendered[t];e&&e.parentNode&&e.parentNode.removeChild(e),delete this.rendered[t]},change_id:function(t,e){this.rendered[e]=this.rendered[t],delete this.rendered[t];
140
+ },rendered:this._task_area_pulls[t],node:n,unload:function(){this.clear(),delete gantt._task_area_renderers[t],delete gantt._task_area_pulls[t]}},this._task_area_renderers[t])},gantt._clear_renderers=function(){for(var t in this._task_area_renderers)this._task_renderer(t).unload()},gantt.attachEvent("onGanttReady",function(){gantt._task_layers.add(),gantt._link_layers.add()}),gantt._layers={prepareConfig:function(t){"function"==typeof t&&(t={renderer:t});t.id=dhtmlx.uid();return t.container||(t.container=document.createElement("div")),
141
+ t},create:function(t,e){return{tempCollection:[],renderers:{},container:t,getRenderers:function(){var t=[];for(var e in this.renderers)t.push(this.renderers[e]);return t},getRenderer:function(t){return this.renderers[t]},add:function(t){if(t&&this.tempCollection.push(t),this.container())for(var n=this.container(),a=this.tempCollection,i=0;i<a.length;i++){var t=a[i],s=t.container,r=t.id,o=t.topmost;if(!s.parentNode)if(o)n.appendChild(s);else{var d=e?e():n.firstChild;d?n.insertBefore(s,d):n.appendChild(s);
142
+ }this.renderers[r]=gantt._task_renderer(r,t.renderer,s,t.filter),this.tempCollection.splice(i,1),i--}},remove:function(t){this.renderers[t].unload(),delete this.renderers[t]},clear:function(){for(var t in this.renderers)this.renderers[t].unload();this.renderers={}}}}},gantt._create_filter=function(t){return t instanceof Array||(t=Array.prototype.slice.call(arguments,0)),function(e){for(var n=!0,a=0,i=t.length;i>a;a++){var s=t[a];gantt[s]&&(n=n&&gantt[s].call(gantt,e.id,e)!==!1)}return n}},gantt._add_generic_layer=function(t,e){
143
+ return function(n){return void 0===n.filter&&(n.filter=gantt._create_filter(e)),n=gantt._layers.prepareConfig(n),t.add(n),n.id}},gantt._task_layers=gantt._layers.create(function(){return gantt.$task_data},function(){return gantt.$task_links}),gantt._link_layers=gantt._layers.create(function(){return gantt.$task_data}),gantt.addTaskLayer=gantt._add_generic_layer(gantt._task_layers,["_filter_task","_is_chart_visible"]),gantt.removeTaskLayer=function(t){gantt._task_layers.remove(t)},gantt.addLinkLayer=gantt._add_generic_layer(gantt._link_layers,["_filter_link","_is_chart_visible"]),
144
+ gantt.removeLinkLayer=function(t){gantt._link_layers.remove(t)},gantt._get_task_renderers=function(){return this._task_layers.getRenderers()},gantt._get_link_renderers=function(){return this._link_layers.getRenderers()},gantt._pull={},gantt._branches={},gantt._order=[],gantt._lpull={},gantt._order_full=[],gantt.load=function(t,e,n){this._load_url=t,dhtmlx.assert(arguments.length,"Invalid load arguments"),this.callEvent("onLoadStart",[]);var a="json",i=null;arguments.length>=3?(a=e,i=n):"string"==typeof arguments[1]?a=arguments[1]:"function"==typeof arguments[1]&&(i=arguments[1]),
145
+ this._load_type=a,dhx4.ajax.get(t,dhtmlx.bind(function(t){this.on_load(t,a),this.callEvent("onLoadEnd",[]),"function"==typeof i&&i.call(this)},this))},gantt.parse=function(t,e){this.on_load({xmlDoc:{responseText:t}},e)},gantt.serialize=function(t){return t=t||"json",this[t].serialize()},gantt.on_load=function(t,e){this.callEvent("onBeforeParse",[]),e||(e="json"),dhtmlx.assert(this[e],"Invalid data type:'"+e+"'");var n=t.xmlDoc.responseText,a=this[e].parse(n,t);this._process_loading(a)},gantt._process_loading=function(t){
146
+ t.collections&&this._load_collections(t.collections);for(var e,n=t.data,a=0;a<n.length;a++)e=n[a],this._init_task(e),this.callEvent("onTaskLoading",[e])&&(this._order_full.push(e.id),this._pull[e.id]=e);for(var a in this._pull)e=this._pull[a],this.setParent(e,this.getParent(e)||this.config.root_id);for(var a=0;a<this._order_full.length;a++)e=this._pull[this._order_full[a]],this._add_branch(e),e.$level=this.calculateTaskLevel(e);if(this._sync_order(),this._init_links(t.links||(t.collections?t.collections.links:[])),
147
+ this.callEvent("onParse",[]),this.render(),this.config.initial_scroll){var i=this._order[0]||this.config.root_id;i&&this.showTask(i)}},gantt._init_links=function(t){if(t)for(var e=0;e<t.length;e++)if(t[e]){var n=this._init_link(t[e]);this._lpull[n.id]=n}this._sync_links()},gantt._load_collections=function(t){var e=!1;for(var n in t)if(t.hasOwnProperty(n)){e=!0;var a=t[n],i=this.serverList[n];if(!i)continue;i.splice(0,i.length);for(var s=0;s<a.length;s++){var r=a[s],o=dhtmlx.copy(r);o.key=o.value;for(var d in r)if(r.hasOwnProperty(d)){
148
+ if("value"==d||"label"==d)continue;o[d]=r[d]}i.push(o)}}e&&this.callEvent("onOptionsLoad",[])},gantt._sync_order=function(t){this._order=[],this._sync_order_item({parent:this.config.root_id,$open:!0,$ignore:!0,id:this.config.root_id}),t||(this._scroll_resize(),this._set_sizes())},gantt.attachEvent("onBeforeTaskDisplay",function(t,e){return!e.$ignore}),gantt._sync_order_item=function(t){if(t.id&&this._filter_task(t.id,t)&&this.callEvent("onBeforeTaskDisplay",[t.id,t])&&this._order.push(t.id),t.$open){
149
+ var e=this.getChildren(t.id);if(e)for(var n=0;n<e.length;n++)this._sync_order_item(this._pull[e[n]])}},gantt.getTaskCount=function(){return this._order_full.length},gantt.getVisibleTaskCount=function(){return this._order.length},gantt.getTaskIndex=function(t){for(var e=this.getChildren(this.getParent(t)),n=0;n<e.length;n++)if(e[n]==t)return n;return-1},gantt.getGlobalTaskIndex=function(t){dhtmlx.assert(t,"Invalid argument");for(var e=this._order,n=0,a=e.length;a>n;n++)if(e[n]==t)return n;return-1;
150
+ },gantt._get_visible_order=gantt.getGlobalTaskIndex,gantt.eachTask=function(t,e,n){e=e||this.config.root_id,n=n||this;var a=this.getChildren(e);if(a)for(var i=0;i<a.length;i++){var s=this._pull[a[i]];t.call(n,s),this.hasChild(s.id)&&this.eachTask(t,s.id,n)}},gantt.json={parse:function(data){return dhtmlx.assert(data,"Invalid data"),"string"==typeof data&&(window.JSON?data=JSON.parse(data):(gantt._temp=eval("("+data+")"),data=gantt._temp||{},gantt._temp=null)),data.dhx_security&&(dhtmlx.security_key=data.dhx_security),
151
+ data},_copyLink:function(t){var e={};for(var n in t)e[n]=t[n];return e},_copyObject:function(t){var e={};for(var n in t)"$"!=n.charAt(0)&&(e[n]=t[n],e[n]instanceof Date&&(e[n]=gantt.templates.xml_format(e[n])));return e},serialize:function(){var t=[],e=[];gantt.eachTask(function(e){gantt.resetProjectDates(e),t.push(this._copyObject(e))},gantt.config.root_id,this);for(var n in gantt._lpull)e.push(this._copyLink(gantt._lpull[n]));return{data:t,links:e}}},gantt.xml={_xmlNodeToJSON:function(t,e){for(var n={},a=0;a<t.attributes.length;a++)n[t.attributes[a].name]=t.attributes[a].value;
152
+ if(!e){for(var a=0;a<t.childNodes.length;a++){var i=t.childNodes[a];1==i.nodeType&&(n[i.tagName]=i.firstChild?i.firstChild.nodeValue:"")}n.text||(n.text=t.firstChild?t.firstChild.nodeValue:"")}return n},_getCollections:function(t){for(var e={},n=dhx4.ajax.xpath("//coll_options",t),a=0;a<n.length;a++)for(var i=n[a].getAttribute("for"),s=e[i]=[],r=dhx4.ajax.xpath(".//item",n[a]),o=0;o<r.length;o++){for(var d=r[o],l=d.attributes,_={key:r[o].getAttribute("value"),label:r[o].getAttribute("label")},h=0;h<l.length;h++){
153
+ var c=l[h];"value"!=c.nodeName&&"label"!=c.nodeName&&(_[c.nodeName]=c.nodeValue)}s.push(_)}return e},_getXML:function(t,e,n){n=n||"data",e.getXMLTopNode||(e=dhx4.ajax.parse(e));var a=dhx4.ajax.xmltop(n,e.xmlDoc);if(a.tagName!=n)throw"Invalid XML data";var i=a.getAttribute("dhx_security");return i&&(dhtmlx.security_key=i),a},parse:function(t,e){e=this._getXML(t,e);for(var n={},a=n.data=[],i=dhx4.ajax.xpath("//task",e),s=0;s<i.length;s++)a[s]=this._xmlNodeToJSON(i[s]);return n.collections=this._getCollections(e),
154
+ n},_copyLink:function(t){return"<item id='"+t.id+"' source='"+t.source+"' target='"+t.target+"' type='"+t.type+"' />"},_copyObject:function(t){return"<task id='"+t.id+"' parent='"+(t.parent||"")+"' start_date='"+t.start_date+"' duration='"+t.duration+"' open='"+!!t.open+"' progress='"+t.progress+"' end_date='"+t.end_date+"'><![CDATA["+t.text+"]]></task>"},serialize:function(){for(var t=[],e=[],n=gantt.json.serialize(),a=0,i=n.data.length;i>a;a++)t.push(this._copyObject(n.data[a]));for(var a=0,i=n.links.length;i>a;a++)e.push(this._copyLink(n.links[a]));
155
+ return"<data>"+t.join("")+"<coll_options for='links'>"+e.join("")+"</coll_options></data>"}},gantt.oldxml={parse:function(t,e){e=gantt.xml._getXML(t,e,"projects");for(var n={collections:{links:[]}},a=n.data=[],i=dhx4.ajax.xpath("//task",e),s=0;s<i.length;s++){a[s]=gantt.xml._xmlNodeToJSON(i[s]);var r=i[s].parentNode;"project"==r.tagName?a[s].parent="project-"+r.getAttribute("id"):a[s].parent=r.parentNode.getAttribute("id")}i=dhx4.ajax.xpath("//project",e);for(var s=0;s<i.length;s++){var o=gantt.xml._xmlNodeToJSON(i[s],!0);
156
+ o.id="project-"+o.id,a.push(o)}for(var s=0;s<a.length;s++){var o=a[s];o.start_date=o.startdate||o.est,o.end_date=o.enddate,o.text=o.name,o.duration=o.duration/8,o.open=1,o.duration||o.end_date||(o.duration=1),o.predecessortasks&&n.collections.links.push({target:o.id,source:o.predecessortasks,type:gantt.config.links.finish_to_start})}return n},serialize:function(){dhtmlx.message("Serialization to 'old XML' is not implemented")}},gantt.serverList=function(t,e){return e?this.serverList[t]=e.slice(0):this.serverList[t]||(this.serverList[t]=[]),
157
+ this.serverList[t]},gantt._working_time_helper={units:["year","month","week","day","hour","minute"],hours:[8,17],dates:{0:!1,6:!1},_working_units_cache:{_cache:{},get:function(t,e){if(!t||!e)return-1;var n=this._cache,a=e.getTime(),i=-1;return n&&n[t]&&void 0!==n[t][a]&&(i=n[t][a]),i},put:function(t,e,n){if(!t||!e)return!1;var a=this._cache,i=e.getTime();return n=!!n,a?(a[t]||(a[t]={}),a[t][i]=n,!0):!1},clear:function(){this._cache={}}},_get_unit_order:function(t){for(var e=0,n=this.units.length;n>e;e++)if(this.units[e]==t)return e;
158
+ dhtmlx.assert(!1,"Incorrect duration unit")},_timestamp:function(t){var e=null;return t.day||0===t.day?e=t.day:t.date&&(e=gantt.date.date_part(new Date(t.date)).valueOf()),e},set_time:function(t){var e=void 0!==t.hours?t.hours:!0,n=this._timestamp(t);null!==n?this.dates[n]=e:this.hours=e,this._working_units_cache.clear()},unset_time:function(t){if(t){var e=this._timestamp(t);null!==e&&delete this.dates[e]}else this.hours=[];this._working_units_cache.clear()},is_working_unit:function(t,e,n){if(!gantt.config.work_time)return!0;
159
+ var a=this._working_units_cache.get(e,t);return-1==a&&(a=this._check_is_working_unit(t,e,n),this._working_units_cache.put(e,t,a)),a},_check_is_working_unit:function(t,e,n){return void 0===n&&(n=this._get_unit_order(e)),void 0===n?!1:n&&!this.is_working_unit(t,this.units[n-1],n-1)?!1:this["is_work_"+e]?this["is_work_"+e](t):!0},is_work_day:function(t){var e=this.get_working_hours(t);return e instanceof Array?e.length>0:!1},is_work_hour:function(t){for(var e=this.get_working_hours(t),n=t.getHours(),a=0;a<e.length;a+=2){
160
+ if(void 0===e[a+1])return e[a]==n;if(n>=e[a]&&n<e[a+1])return!0}return!1},get_working_hours:function(t){var e=this._timestamp({date:t}),n=!0;return void 0!==this.dates[e]?n=this.dates[e]:void 0!==this.dates[t.getDay()]&&(n=this.dates[t.getDay()]),n===!0?this.hours:n?n:[]},get_work_units_between:function(t,e,n,a){if(!n)return!1;for(var i=new Date(t),s=new Date(e),a=a||1,r=0;i.valueOf()<s.valueOf();)this.is_working_unit(i,n)&&r++,i=gantt.date.add(i,a,n);return r},is_work_units_between:function(t,e,n,a){
161
+ if(!n)return!1;for(var i=new Date(t),s=new Date(e),a=a||1;i.valueOf()<s.valueOf();){if(this.is_working_unit(i,n))return!0;i=gantt.date.add(i,a,n)}return!1},add_worktime:function(t,e,n,a){if(!n)return!1;var i=new Date(t),s=0,a=a||1,e=1*e;if(gantt.config.work_time){for(;e>s;){var r=gantt.date.add(i,a,n);this.is_working_unit(a>0?i:r,n)&&s++,i=r}return i}return gantt.date.add(i,a*e,n)},get_closest_worktime:function(t){if(this.is_working_unit(t.date,t.unit))return t.date;var e=t.unit,n=gantt.date[e+"_start"](t.date),a=new Date(n),i=new Date(n),s=!0,r=3e3,o=0,d="any"==t.dir||!t.dir,l=1;
162
+ for("past"==t.dir&&(l=-1);!this.is_working_unit(n,e);){d&&(n=s?a:i,l=-1*l);var _=n.getTimezoneOffset();if(n=gantt.date.add(n,l,e),n=gantt._correct_dst_change(n,_,l,e),gantt.date[e+"_start"]&&(n=gantt.date[e+"_start"](n)),d&&(s?a=n:i=n),s=!s,o++,o>r)return dhtmlx.assert(!1,"Invalid working time check"),!1}return(n==i||"past"==t.dir)&&(n=gantt.date.add(n,1,e)),n}},gantt.getTask=function(t){return dhtmlx.assert(t,"Invalid argument for gantt.getTask"),dhtmlx.assert(this._pull[t],"Task not found id="+t),
163
+ this._pull[t]},gantt.getTaskByTime=function(t,e){var n=this._pull,a=[];if(t||e){t=+t||-(1/0),e=+e||1/0;for(var i in n){var s=n[i];+s.start_date<e&&+s.end_date>t&&a.push(s)}}else for(var i in n)a.push(n[i]);return a},gantt.isTaskExists=function(t){return dhtmlx.defined(this._pull[t])},gantt.isUnscheduledTask=function(t){return!!t.unscheduled||!t.start_date},gantt._isAllowedUnscheduledTask=function(t){return t.unscheduled&&gantt.config.show_unscheduled},gantt.isTaskVisible=function(t){if(!this._pull[t])return!1;
164
+ var e=this._pull[t];if(!(+e.start_date<+this._max_date&&+e.end_date>+this._min_date||gantt._isAllowedUnscheduledTask(e)))return!1;for(var n=0,a=this._order.length;a>n;n++)if(this._order[n]==t)return!0;return!1},gantt.updateTask=function(t,e){return dhtmlx.defined(e)||(e=this.getTask(t)),this.callEvent("onBeforeTaskUpdate",[t,e])===!1?!1:(this._pull[e.id]=e,this._is_parent_sync(e)||this._resync_parent(e),this._isAllowedUnscheduledTask(e)&&(this._init_task(e),this._sync_links()),this._update_parents(e.id),
165
+ this.refreshTask(e.id),this.callEvent("onAfterTaskUpdate",[t,e]),this._sync_order(),void this._adjust_scales())},gantt._add_branch=function(t,e){var n=this.getParent(t);this.hasChild(n)||(this._branches[n]=[]);for(var a=this.getChildren(n),i=!1,s=0,r=a.length;r>s;s++)if(a[s]==t.id){i=!0;break}i||(1*e==e?a.splice(e,0,t.id):a.push(t.id)),this._sync_parent(t)},gantt._move_branch=function(t,e,n){this.setParent(t,n),this._sync_parent(t),this._replace_branch_child(e,t.id),this.isTaskExists(n)||n==this.config.root_id?this._add_branch(t):delete this._branches[t.id],
166
+ t.$level=this.calculateTaskLevel(t),this._sync_order()},gantt._resync_parent=function(t){this._move_branch(t,t.$rendered_parent,this.getParent(t))},gantt._sync_parent=function(t){t.$rendered_parent=this.getParent(t)},gantt._is_parent_sync=function(t){return t.$rendered_parent==this.getParent(t)},gantt._replace_branch_child=function(t,e,n){var a=this.getChildren(t);if(a){for(var i=[],s=0;s<a.length;s++)a[s]!=e?i.push(a[s]):n&&i.push(n);this._branches[t]=i}this._sync_order()},gantt.addTask=function(t,e,n){
167
+ return dhtmlx.defined(e)||(e=this.getParent(t)||0),this.isTaskExists(e)||(e=0),this.setParent(t,e),t=this._init_task(t),this.callEvent("onBeforeTaskAdd",[t.id,t])===!1?!1:(this._pull[t.id]=t,this._add_branch(t,n),this.refreshData(),this._adjust_scales(),this.callEvent("onAfterTaskAdd",[t.id,t]),t.id)},gantt._default_task_date=function(t,e){var n=e&&e!=this.config.root_id?this.getTask(e):!1,a="";if(n)a=n.start_date;else{var i=this._order[0];a=i?this.getTask(i).start_date?this.getTask(i).start_date:this.getTask(i).end_date?this.calculateEndDate(this.getTask(i).end_date,-this.config.duration_step):"":this.config.start_date||this.getState().min_date;
168
+ }return dhtmlx.assert(a,"Invalid dates"),new Date(a)},gantt._set_default_task_timing=function(t){t.start_date=t.start_date||gantt._default_task_date(t,this.getParent(t)),t.duration=t.duration||this.config.duration_step,t.end_date=t.end_date||this.calculateEndDate(t.start_date,t.duration)},gantt.createTask=function(t,e,n){if(t=t||{},t.id=dhtmlx.uid(),t.start_date||(t.start_date=gantt._default_task_date(t,e)),void 0===t.text&&(t.text=gantt.locale.labels.new_task),void 0===t.duration&&(t.duration=1),
169
+ e){this.setParent(t,e);var a=this.getTask(e);a.$open=!0}return this.callEvent("onTaskCreated",[t])?(this.config.details_on_create?(t.$new=!0,this._pull[t.id]=this._init_task(t),this._add_branch(t,n),t.$level=this.calculateTaskLevel(t),this.selectTask(t.id),this.refreshData(),this.showLightbox(t.id)):this.addTask(t,e,n)&&(this.showTask(t.id),this.selectTask(t.id)),t.id):null},gantt.deleteTask=function(t){return this._deleteTask(t)},gantt._getChildLinks=function(t){var e=this.getTask(t);if(!e)return[];
170
+ for(var n=e.$source.concat(e.$target),a=this.getChildren(e.id),i=0;i<a.length;i++)n=n.concat(this._getChildLinks(a[i]));for(var s={},i=0;i<n.length;i++)s[n[i]]=!0;n=[];for(var i in s)n.push(i);return n},gantt._getTaskTree=function(t){var e=this.getTask(t);if(!e)return[];for(var n=[],a=this.getChildren(e.id),i=0;i<a.length;i++)n.push(a[i]),n=n.concat(this._getTaskTree(a[i]));return n},gantt._deleteRelatedLinks=function(t,e){var n=this._dp&&!e,a="",i=n?"off"!=this._dp.updateMode:!1;n&&(a=this._dp.updateMode,
171
+ this._dp.setUpdateMode("off"));for(var s=0;s<t.length;s++)n&&(this._dp.setGanttMode("links"),this._dp.setUpdated(t[s],!0,"deleted")),this._deleteLink(t[s],!0);n&&(this._dp.setUpdateMode(a),i&&this._dp.sendAllData())},gantt._deleteRelatedTasks=function(t,e){var n=this._dp&&!e,a="";n&&(a=this._dp.updateMode,this._dp.setGanttMode("tasks"),this._dp.setUpdateMode("off"));for(var i=this._getTaskTree(t),s=0;s<i.length;s++){var r=i[s];this._unset_task(r),n&&this._dp.setUpdated(r,!0,"deleted")}n&&this._dp.setUpdateMode(a);
172
+ },gantt._unset_task=function(t){var e=this.getTask(t);this._update_flags(t,null),delete this._pull[t],this._move_branch(e,this.getParent(e),null)},gantt._deleteTask=function(t,e){var n=this.getTask(t);if(!e&&this.callEvent("onBeforeTaskDelete",[t,n])===!1)return!1;var a=gantt._getChildLinks(t);return this._deleteRelatedTasks(t,e),this._deleteRelatedLinks(a,e),this._unset_task(t),e||(this.callEvent("onAfterTaskDelete",[t,n]),this.refreshData()),!0},gantt.clearAll=function(){this._clear_data(),this.callEvent("onClear",[]),
173
+ this.refreshData()},gantt._clear_data=function(){this._pull={},this._branches={},this._order=[],this._order_full=[],this._lpull={},this._update_flags(),this.userdata={}},gantt._update_flags=function(t,e){void 0===t?(this._lightbox_id=this._selected_task=null,this._tasks_dnd.drag&&(this._tasks_dnd.drag.id=null)):(this._lightbox_id==t&&(this._lightbox_id=e),this._selected_task==t&&(this._selected_task=e),this._tasks_dnd.drag&&this._tasks_dnd.drag.id==t&&(this._tasks_dnd.drag.id=e))},gantt.changeTaskId=function(t,e){
174
+ var n=this._pull[e]=this._pull[t];this._pull[e].id=e,delete this._pull[t];for(var a in this._pull){var i=this._pull[a];this.getParent(i)==t&&this.setParent(i,e)}this._update_flags(t,e),this._replace_branch_child(this.getParent(n),t,e),this.callEvent("onTaskIdChange",[t,e])},gantt._get_duration_unit=function(){return 1e3*gantt._get_line(this.config.duration_unit)||this.config.duration_unit},gantt._get_safe_type=function(t){return"task"},gantt._get_type_name=function(t){for(var e in this.config.types)if(this.config.types[e]==t)return e;
175
+ return"task"},gantt.getWorkHours=function(t){return this._working_time_helper.get_working_hours(t)},gantt.setWorkTime=function(t){this._working_time_helper.set_time(t)},gantt.isWorkTime=function(t,e){var n=this._working_time_helper;return n.is_working_unit(t,e||this.config.duration_unit)},gantt.correctTaskWorkTime=function(t){gantt.config.work_time&&gantt.config.correct_work_time&&(gantt.isWorkTime(t.start_date)?gantt.isWorkTime(new Date(+t.end_date-1))||(t.end_date=gantt.calculateEndDate(t.start_date,t.duration)):(t.start_date=gantt.getClosestWorkTime({
176
+ date:t.start_date,dir:"future"}),t.end_date=gantt.calculateEndDate(t.start_date,t.duration)))},gantt.getClosestWorkTime=function(t){var e=this._working_time_helper;return t instanceof Date&&(t={date:t}),t.dir=t.dir||"any",t.unit=t.unit||this.config.duration_unit,e.get_closest_worktime(t)},gantt.calculateDuration=function(t,e){var n=this._working_time_helper;return n.get_work_units_between(t,e,this.config.duration_unit,this.config.duration_step)},gantt._hasDuration=function(t,e){var n=this._working_time_helper;
177
+ return n.is_work_units_between(t,e,this.config.duration_unit,this.config.duration_step)},gantt.calculateEndDate=function(t,e,n){var a=this._working_time_helper,i=e>=0?1:-1;return a.add_worktime(t,Math.abs(e),n||this.config.duration_unit,i*this.config.duration_step)},gantt._init_task=function(t){return dhtmlx.defined(t.id)||(t.id=dhtmlx.uid()),t.start_date&&(t.start_date=gantt.date.parseDate(t.start_date,"xml_date")),t.end_date&&(t.end_date=gantt.date.parseDate(t.end_date,"xml_date")),t.start_date?!t.end_date&&t.duration&&(t.end_date=this.calculateEndDate(t.start_date,t.duration)):t.end_date&&void 0!==t.duration&&(t.start_date=this.calculateEndDate(t.end_date,-t.duration)),
178
+ this._isAllowedUnscheduledTask(t)&&this._set_default_task_timing(t),gantt._init_task_timing(t),t.start_date&&t.end_date&&gantt.correctTaskWorkTime(t),t.$source=[],t.$target=[],void 0===t.parent&&this.setParent(t,this.config.root_id),dhtmlx.defined(t.$open)||(t.$open=dhtmlx.defined(t.open)?t.open:this.config.open_tree_initially),t.$level=this.calculateTaskLevel(t),t},gantt._init_task_timing=function(t){var e=this._get_safe_type(t.type);void 0===t.$rendered_type?t.$rendered_type=e:t.$rendered_type!=e&&(delete t.$no_end,
179
+ delete t.$no_start,t.$rendered_type=e),void 0!==t.$no_end&&void 0!==t.$no_start||e==this.config.types.milestone||(e==this.config.types.project?(t.$no_end=t.$no_start=!0,this._set_default_task_timing(t)):(t.$no_end=!(t.end_date||t.duration),t.$no_start=!t.start_date,this._isAllowedUnscheduledTask(t)&&(t.$no_end=t.$no_start=!1))),e==this.config.types.milestone&&(t.end_date=t.start_date),t.start_date&&t.end_date&&(t.duration=this.calculateDuration(t.start_date,t.end_date)),t.duration=t.duration||0},
180
+ gantt._is_flex_task=function(t){return!(!t.$no_end&&!t.$no_start)},gantt.resetProjectDates=function(t){if(t.$no_end||t.$no_start){var e=this.getSubtaskDates(t.id);this._assign_project_dates(t,e.start_date,e.end_date)}},gantt.getSubtaskDates=function(t){var e=null,n=null,a=void 0!==t?t:gantt.config.root_id;return this.eachTask(function(t){this._get_safe_type(t.type)==gantt.config.types.project||this.isUnscheduledTask(t)||(t.start_date&&!t.$no_start&&(!e||e>t.start_date.valueOf())&&(e=t.start_date.valueOf()),
181
+ t.end_date&&!t.$no_end&&(!n||n<t.end_date.valueOf())&&(n=t.end_date.valueOf()))},a),{start_date:e?new Date(e):null,end_date:n?new Date(n):null}},gantt._assign_project_dates=function(t,e,n){t.$no_start&&(e&&e!=1/0?t.start_date=new Date(e):t.start_date=this._default_task_date(t,this.getParent(t))),t.$no_end&&(n&&n!=-(1/0)?t.end_date=new Date(n):t.end_date=this.calculateEndDate(t.start_date,this.config.duration_step)),(t.$no_start||t.$no_end)&&this._init_task_timing(t)},gantt._update_parents=function(t,e){
182
+ if(t){for(var n=this.getTask(t),a=this.getParent(n);!n.$no_end&&!n.$no_start&&a&&this.isTaskExists(a);)n=this.getTask(a),a=this.getParent(n);(n.$no_start||n.$no_end)&&(gantt.resetProjectDates(n),e||this.refreshTask(n.id,!0)),a&&this.isTaskExists(a)&&this._update_parents(a,e)}},gantt.isChildOf=function(t,e){if(!this.isTaskExists(t))return!1;if(e===this.config.root_id)return this.isTaskExists(t);for(var n=this.getTask(t),a=this.getParent(t);n&&this.isTaskExists(a);){if(n=this.getTask(a),n&&n.id==e)return!0;
183
+ a=this.getParent(n)}return!1},gantt.roundDate=function(t){t instanceof Date&&(t={date:t,unit:gantt._tasks.unit,step:gantt._tasks.step});var e,n,a=t.date,i=t.step,s=t.unit;if(s==gantt._tasks.unit&&i==gantt._tasks.step&&+a>=+gantt._min_date&&+a<=+gantt._max_date){var r=Math.floor(gantt._day_index_by_date(a));n=new Date(gantt._tasks.trace_x[r]),e=new Date(n),gantt._tasks.trace_x[r+1]&&(e=new Date(gantt._tasks.trace_x[r+1]))}else{for(e=gantt.date[s+"_start"](new Date(this._min_date));+a>+e;){e=gantt.date[s+"_start"](gantt.date.add(e,i,s));
184
+ var o=e.getTimezoneOffset();e=gantt.date.add(e,i,s),e=gantt._correct_dst_change(e,o,e,s),gantt.date[s+"_start"]&&(e=gantt.date[s+"_start"](e))}n=gantt.date.add(e,-1*i,s)}return t.dir&&"future"==t.dir?e:t.dir&&"past"==t.dir?n:Math.abs(a-n)<Math.abs(e-a)?n:e},gantt.attachEvent("onBeforeTaskUpdate",function(t,e){return gantt._init_task_timing(e),!0}),gantt.attachEvent("onBeforeTaskAdd",function(t,e){return gantt._init_task_timing(e),!0}),gantt.calculateTaskLevel=function(t){for(var e=0;this.getParent(t)&&this.isTaskExists(this.getParent(t));)t=this.getTask(this.getParent(t)),
185
+ e++;return e},gantt.sort=function(t,e,n,a){var i=!a;this.isTaskExists(n)||(n=this.config.root_id),t||(t="order");var s="string"==typeof t?function(e,n){if(e[t]==n[t])return 0;var a=e[t]>n[t];return a?1:-1}:t;if(e){var r=s;s=function(t,e){return r(e,t)}}var o=this.getChildren(n);if(o){for(var d=[],l=o.length-1;l>=0;l--)d[l]=this._pull[o[l]];d.sort(s);for(var l=0;l<d.length;l++)o[l]=d[l].id,this.sort(t,e,o[l],!0)}i&&this.render()},gantt.getNext=function(t){for(var e=0;e<this._order.length-1;e++)if(this._order[e]==t)return this._order[e+1];
186
+ return null},gantt.getPrev=function(t){for(var e=1;e<this._order.length;e++)if(this._order[e]==t)return this._order[e-1];return null},gantt._get_parent_id=function(t){var e=this.config.root_id;return t&&(e=t.parent),e},gantt.getParent=function(t){var e=null;return t.id?e=t:this.isTaskExists(t)&&(e=gantt.getTask(t)),this._get_parent_id(e)},gantt.setParent=function(t,e){t.parent=e},gantt.getSiblings=function(t){if(!this.isTaskExists(t))return[];var e=this.getParent(t);return this.getChildren(e)},gantt.getNextSibling=function(t){
187
+ for(var e=this.getSiblings(t),n=0,a=e.length;a>n;n++)if(e[n]==t)return e[n+1]||null;return null},gantt.getPrevSibling=function(t){for(var e=this.getSiblings(t),n=0,a=e.length;a>n;n++)if(e[n]==t)return e[n-1]||null;return null},gantt._dp_init=function(t){t.setTransactionMode("POST",!0),t.serverProcessor+=(-1!=t.serverProcessor.indexOf("?")?"&":"?")+"editing=true",t._serverProcessor=t.serverProcessor,t.styles={updated:"gantt_updated",inserted:"gantt_inserted",deleted:"gantt_deleted",invalid:"gantt_invalid",
188
+ error:"gantt_error",clear:""},t._methods=["_row_style","setCellTextStyle","_change_id","_delete_task"],t.setGanttMode=function(e){var n=t.modes||{};t._ganttMode&&(n[t._ganttMode]={_in_progress:t._in_progress,_invalid:t._invalid,updatedRows:t.updatedRows});var a=n[e];a||(a=n[e]={_in_progress:{},_invalid:{},updatedRows:[]}),t._in_progress=a._in_progress,t._invalid=a._invalid,t.updatedRows=a.updatedRows,t.modes=n,t._ganttMode=e},this._sendTaskOrder=function(e,n){n.$drop_target&&(t.setGanttMode("tasks"),
189
+ this.getTask(e).target=n.$drop_target,t.setUpdated(e,!0,"order"),delete this.getTask(e).$drop_target)},this.attachEvent("onAfterTaskAdd",function(e,n){t.setGanttMode("tasks"),t.setUpdated(e,!0,"inserted")}),this.attachEvent("onAfterTaskUpdate",function(e,n){t.setGanttMode("tasks"),t.setUpdated(e,!0),gantt._sendTaskOrder(e,n)}),this.attachEvent("onAfterTaskDelete",function(e,n){t.setGanttMode("tasks"),t.setUpdated(e,!0,"deleted"),"off"==t.updateMode||t._tSend||t.sendAllData()}),this.attachEvent("onAfterLinkUpdate",function(e,n){
190
+ t.setGanttMode("links"),t.setUpdated(e,!0)}),this.attachEvent("onAfterLinkAdd",function(e,n){t.setGanttMode("links"),t.setUpdated(e,!0,"inserted")}),this.attachEvent("onAfterLinkDelete",function(e,n){t.setGanttMode("links"),t.setUpdated(e,!0,"deleted")}),this.attachEvent("onRowDragEnd",function(t,e){gantt._sendTaskOrder(t,gantt.getTask(t))}),t.attachEvent("onBeforeDataSending",function(){var t=this._serverProcessor;if("REST"==this._tMode){var e=this._ganttMode.substr(0,this._ganttMode.length-1);t=t.substring(0,t.indexOf("?")>-1?t.indexOf("?"):t.length),
191
+ this.serverProcessor=t+("/"==t.slice(-1)?"":"/")+e}else this.serverProcessor=t+window.dhtmlx.url(t)+"gantt_mode="+this._ganttMode;return!0}),this._init_dp_live_update_hooks(t);var e=t.afterUpdate;t.afterUpdate=function(){var n;n=3==arguments.length?arguments[1]:arguments[4];var a=t._ganttMode,i=n.filePath;a="REST"!=this._tMode?-1!=i.indexOf("gantt_mode=links")?"links":"tasks":i.indexOf("/link")>i.indexOf("/task")?"links":"tasks",t.setGanttMode(a);var s=e.apply(t,arguments);return t.setGanttMode(a),
192
+ s},t._getRowData=dhtmlx.bind(function(e,n){var a;a="tasks"==t._ganttMode?this.isTaskExists(e)?this.getTask(e):{id:e}:this.isLinkExists(e)?this.getLink(e):{id:e},a=dhtmlx.copy(a);var i={};for(var s in a)if("$"!=s.substr(0,1)){var r=a[s];r instanceof Date?i[s]=this.templates.xml_format(r):null===r?i[s]="":i[s]=r}return a.$no_start&&(a.start_date="",a.duration=""),a.$no_end&&(a.end_date="",a.duration=""),i[t.action_param]=this.getUserData(e,t.action_param),i},this),this._change_id=dhtmlx.bind(function(e,n){
193
+ "tasks"!=t._ganttMode?this.changeLinkId(e,n):this.changeTaskId(e,n)},this),this._row_style=function(e,n){if("tasks"==t._ganttMode&&gantt.isTaskExists(e)){var a=gantt.getTask(e);a.$dataprocessor_class=n,gantt.refreshTask(e)}},this._delete_task=function(t,e){},this._dp=t,gantt._patch_dhx4_ajax()},gantt._patch_dhx4_ajax=function(){var t=parseInt((dhx4.version||"").split(".").join(""),10);413>=t&&(window.dhx4.ajax._call=function(t,e,n,a,i,s,r){var o=window.XMLHttpRequest&&!dhx4.isIE?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP"),d=null!=navigator.userAgent.match(/AppleWebKit/)&&null!=navigator.userAgent.match(/Qt/)&&null!=navigator.userAgent.match(/Safari/);
194
+ if(1==a&&(o.onreadystatechange=function(){if(4==o.readyState||1==d&&3==o.readyState){if((200!=o.status||""==o.responseText)&&!dhx4.callEvent("onAjaxError",[o]))return;window.setTimeout(function(){"function"==typeof i&&i.apply(window,[{xmlDoc:o,filePath:e}]),null!=s&&("undefined"!=typeof s.postData?dhx4.ajax.postLong(s.url,s.postData,i):dhx4.ajax.getLong(s.url,i)),i=null,o=null},1)}}),"GET"==t&&1!=this.cache&&(e+=(e.indexOf("?")>=0?"&":"?")+"dhxr"+(new Date).getTime()+"=1"),o.open(t,e,a),r)for(var l in r)o.setRequestHeader(l,r[l]);else"POST"==t.toUpperCase()||"PUT"==t||"DELETE"==t?o.setRequestHeader("Content-Type","application/x-www-form-urlencoded"):"GET"==t&&(n=null);
195
+ return o.setRequestHeader("X-Requested-With","XMLHttpRequest"),o.send(n),a?void 0:{xmlDoc:o,filePath:e}}),gantt._patch_dhx4_ajax=function(){}},gantt.getUserData=function(t,e){return this.userdata||(this.userdata={}),this.userdata[t]&&this.userdata[t][e]?this.userdata[t][e]:""},gantt.setUserData=function(t,e,n){this.userdata||(this.userdata={}),this.userdata[t]||(this.userdata[t]={}),this.userdata[t][e]=n},gantt._init_link=function(t){return dhtmlx.defined(t.id)||(t.id=dhtmlx.uid()),t},gantt._sync_links=function(){
196
+ for(var t in this._pull)this._pull[t].$source=[],this._pull[t].$target=[];for(var t in this._lpull){var e=this._lpull[t];this._pull[e.source]&&this._pull[e.source].$source.push(t),this._pull[e.target]&&this._pull[e.target].$target.push(t)}},gantt.getLink=function(t){return dhtmlx.assert(this._lpull[t],"Link doesn't exist"),this._lpull[t]},gantt.getLinks=function(){var t=[];for(var e in gantt._lpull)t.push(gantt._lpull[e]);return t},gantt.isLinkExists=function(t){return dhtmlx.defined(this._lpull[t]);
197
+ },gantt.addLink=function(t){return t=this._init_link(t),this.callEvent("onBeforeLinkAdd",[t.id,t])===!1?!1:(this._lpull[t.id]=t,this._sync_links(),this._render_link(t.id),this.callEvent("onAfterLinkAdd",[t.id,t]),t.id)},gantt.updateLink=function(t,e){return dhtmlx.defined(e)||(e=this.getLink(t)),this.callEvent("onBeforeLinkUpdate",[t,e])===!1?!1:(this._lpull[t]=e,this._sync_links(),this._render_link(t),this.callEvent("onAfterLinkUpdate",[t,e]),!0)},gantt.deleteLink=function(t){return this._deleteLink(t);
198
+ },gantt._deleteLink=function(t,e){var n=this.getLink(t);return e||this.callEvent("onBeforeLinkDelete",[t,n])!==!1?(delete this._lpull[t],this._sync_links(),this.refreshLink(t),e||this.callEvent("onAfterLinkDelete",[t,n]),!0):!1},gantt.changeLinkId=function(t,e){this._lpull[e]=this._lpull[t],this._lpull[e].id=e,delete this._lpull[t],this._sync_links(),this.callEvent("onLinkIdChange",[t,e])},gantt.getChildren=function(t){return dhtmlx.defined(this._branches[t])?this._branches[t]:[]},gantt.hasChild=function(t){
199
+ return dhtmlx.defined(this._branches[t])&&this._branches[t].length},gantt.refreshData=function(){this._render_data()},gantt._configure=function(t,e,n){for(var a in e)("undefined"==typeof t[a]||n)&&(t[a]=e[a])},gantt._init_skin=function(){gantt._get_skin(!1),gantt._init_skin=function(){}},gantt._get_skin=function(t){if(!gantt.skin||t)for(var e=document.getElementsByTagName("link"),n=0;n<e.length;n++){var a=e[n].href.match("dhtmlxgantt_([a-z]+).css");if(a){gantt.skin=a[1];break}}gantt.skin||(gantt.skin="terrace");
200
+ var i=gantt.skins[gantt.skin];this._configure(gantt.config,i.config,t);var s=gantt.getGridColumns();s[1]&&"undefined"==typeof s[1].width&&(s[1].width=i._second_column_width),s[2]&&"undefined"==typeof s[2].width&&(s[2].width=i._third_column_width),i._lightbox_template&&(gantt._lightbox_template=i._lightbox_template),gantt.resetLightbox()},gantt.resetSkin=function(){this.skin="",this._get_skin(!0)},gantt.skins={},gantt._lightbox_methods={},gantt._lightbox_template="<div class='gantt_cal_ltitle'><span class='gantt_mark'>&nbsp;</span><span class='gantt_time'></span><span class='gantt_title'></span></div><div class='gantt_cal_larea'></div>",
201
+ gantt.showLightbox=function(t){if(t&&!gantt._is_readonly(this.getTask(t))&&this.callEvent("onBeforeLightbox",[t])){var e=this.getTask(t),n=this.getLightbox(this._get_safe_type(e.type));this._center_lightbox(n),this.showCover(),this._fill_lightbox(t,n),this.callEvent("onLightbox",[t])}},gantt._get_timepicker_step=function(){if(this.config.round_dnd_dates){var t=gantt._tasks,e=this._get_line(t.unit)*t.step/60;return(e>=1440||!this._is_chart_visible())&&(e=this.config.time_step),e}return this.config.time_step;
202
+ },gantt.getLabel=function(t,e){for(var n=this._get_typed_lightbox_config(),a=0;a<n.length;a++)if(n[a].map_to==t)for(var i=n[a].options,s=0;s<i.length;s++)if(i[s].key==e)return i[s].label;return""},gantt.updateCollection=function(t,e){e=e.slice(0);var n=gantt.serverList(t);return n?(n.splice(0,n.length),n.push.apply(n,e||[]),void gantt.resetLightbox()):!1},gantt.getLightboxType=function(){return this._get_safe_type(this._lightbox_type)},gantt.getLightbox=function(t){if(void 0===t&&(t=this.getLightboxType()),
203
+ !this._lightbox||this.getLightboxType()!=this._get_safe_type(t)){this._lightbox_type=this._get_safe_type(t);var e=document.createElement("DIV");e.className="gantt_cal_light";var n=this._is_lightbox_timepicker();(gantt.config.wide_form||n)&&(e.className+=" gantt_cal_light_wide"),n&&(gantt.config.wide_form=!0,e.className+=" gantt_cal_light_full"),e.style.visibility="hidden";for(var a=this._lightbox_template,i=this.config.buttons_left,s=0;s<i.length;s++){var r=this.config._migrate_buttons[i[s]]?this.config._migrate_buttons[i[s]]:i[s];
204
+ a+="<div class='gantt_btn_set gantt_left_btn_set "+r+"_set'><div dhx_button='1' class='"+r+"'></div><div>"+this.locale.labels[r]+"</div></div>"}i=this.config.buttons_right;for(var s=0;s<i.length;s++){var r=this.config._migrate_buttons[i[s]]?this.config._migrate_buttons[i[s]]:i[s];a+="<div class='gantt_btn_set gantt_right_btn_set "+r+"_set' style='float:right;'><div dhx_button='1' class='"+r+"'></div><div>"+this.locale.labels[r]+"</div></div>"}a+="</div>",e.innerHTML=a,gantt.config.drag_lightbox&&(e.firstChild.onmousedown=gantt._ready_to_dnd,
205
+ e.firstChild.onselectstart=function(){return!1},e.firstChild.style.cursor="pointer",gantt._init_dnd_events()),document.body.insertBefore(e,document.body.firstChild),this._lightbox=e;var o=this._get_typed_lightbox_config(t);a=this._render_sections(o);for(var d=e.getElementsByTagName("div"),s=0;s<d.length;s++){var l=d[s];if("gantt_cal_larea"==l.className){l.innerHTML=a;break}}this.resizeLightbox(),this._init_lightbox_events(this),e.style.display="none",e.style.visibility="visible"}return this._lightbox;
206
+ },gantt._render_sections=function(t){for(var e="",n=0;n<t.length;n++){var a=this.form_blocks[t[n].type];if(a){t[n].id="area_"+dhtmlx.uid();var i=t[n].hidden?" style='display:none'":"",s="";t[n].button&&(s="<div class='gantt_custom_button' index='"+n+"'><div class='gantt_custom_button_"+t[n].button+"'></div><div>"+this.locale.labels["button_"+t[n].button]+"</div></div>"),this.config.wide_form&&(e+="<div class='gantt_wrap_section' "+i+">"),e+="<div id='"+t[n].id+"' class='gantt_cal_lsection'>"+s+this.locale.labels["section_"+t[n].name]+"</div>"+a.render.call(this,t[n]),
207
+ e+="</div>"}}return e},gantt.resizeLightbox=function(){var t=this._lightbox;if(t){var e=t.childNodes[1];e.style.height="0px",e.style.height=e.scrollHeight+"px",t.style.height=e.scrollHeight+this.config.lightbox_additional_height+"px",e.style.height=e.scrollHeight+"px"}},gantt._center_lightbox=function(t){if(t){t.style.display="block";var e=window.pageYOffset||document.body.scrollTop||document.documentElement.scrollTop,n=window.pageXOffset||document.body.scrollLeft||document.documentElement.scrollLeft,a=window.innerHeight||document.documentElement.clientHeight;
208
+ e?t.style.top=Math.round(e+Math.max((a-t.offsetHeight)/2,0))+"px":t.style.top=Math.round(Math.max((a-t.offsetHeight)/2,0)+9)+"px",document.documentElement.scrollWidth>document.body.offsetWidth?t.style.left=Math.round(n+(document.body.offsetWidth-t.offsetWidth)/2)+"px":t.style.left=Math.round((document.body.offsetWidth-t.offsetWidth)/2)+"px"}},gantt.showCover=function(){if(!this._cover){this._cover=document.createElement("DIV"),this._cover.className="gantt_cal_cover";var t=void 0!==document.height?document.height:document.body.offsetHeight,e=document.documentElement?document.documentElement.scrollHeight:0;
209
+ this._cover.style.height=Math.max(t,e)+"px",document.body.appendChild(this._cover)}},gantt._init_lightbox_events=function(){gantt.lightbox_events={},gantt.lightbox_events.gantt_save_btn=function(t){gantt._save_lightbox()},gantt.lightbox_events.gantt_delete_btn=function(t){gantt.callEvent("onLightboxDelete",[gantt._lightbox_id])&&(gantt.isTaskExists(gantt._lightbox_id)?gantt.$click.buttons["delete"](gantt._lightbox_id):gantt.hideLightbox())},gantt.lightbox_events.gantt_cancel_btn=function(t){gantt._cancel_lightbox();
210
+ },gantt.lightbox_events["default"]=function(t,e){if(e.getAttribute("dhx_button"))gantt.callEvent("onLightboxButton",[e.className,e,t]);else{var n,a,i,s=gantt._getClassName(e);-1!=s.indexOf("gantt_custom_button")&&(-1!=s.indexOf("gantt_custom_button_")?(n=e.parentNode.getAttribute("index"),i=e.parentNode.parentNode):(n=e.getAttribute("index"),i=e.parentNode,e=e.firstChild));var r=gantt._get_typed_lightbox_config();n&&(a=gantt.form_blocks[r[n].type],a.button_click(n,e,i,i.nextSibling))}},dhtmlxEvent(gantt.getLightbox(),"click",function(t){
211
+ t=t||window.event;var e=t.target?t.target:t.srcElement,n=gantt._getClassName(e);if(n||(e=e.previousSibling,n=gantt._getClassName(e)),e&&n&&0===n.indexOf("gantt_btn_set")&&(e=e.firstChild,n=gantt._getClassName(e)),e&&n){var a=dhtmlx.defined(gantt.lightbox_events[e.className])?gantt.lightbox_events[e.className]:gantt.lightbox_events["default"];return a(t,e)}return!1}),gantt.getLightbox().onkeydown=function(t){switch((t||event).keyCode){case gantt.keys.edit_save:if((t||event).shiftKey)return;gantt._save_lightbox();
212
+ break;case gantt.keys.edit_cancel:gantt._cancel_lightbox()}}},gantt._cancel_lightbox=function(){var t=this.getLightboxValues();this.callEvent("onLightboxCancel",[this._lightbox_id,t.$new]),gantt.isTaskExists(t.id)&&t.$new&&this._deleteTask(t.id,!0),this.refreshData(),this.hideLightbox()},gantt._save_lightbox=function(){var t=this.getLightboxValues();this.callEvent("onLightboxSave",[this._lightbox_id,t,!!t.$new])&&(t.$new?(delete t.$new,this.addTask(t)):this.isTaskExists(t.id)&&(dhtmlx.mixin(this.getTask(t.id),t,!0),
213
+ this.updateTask(t.id)),this.refreshData(),this.hideLightbox())},gantt._resolve_default_mapping=function(t){var e=t.map_to,n={time:!0,time_optional:!0,duration:!0,duration_optional:!0};return n[t.type]&&("auto"==t.map_to?e={start_date:"start_date",end_date:"end_date",duration:"duration"}:"string"==typeof t.map_to&&(e={start_date:t.map_to})),e},gantt.getLightboxValues=function(){var t={};gantt.isTaskExists(this._lightbox_id)&&(t=dhtmlx.mixin({},this.getTask(this._lightbox_id)));for(var e=this._get_typed_lightbox_config(),n=0;n<e.length;n++){
214
+ var a=document.getElementById(e[n].id);a=a?a.nextSibling:a;var i=this.form_blocks[e[n].type];if(i){var s=i.get_value.call(this,a,t,e[n]),r=gantt._resolve_default_mapping(e[n]);if("string"==typeof r&&"auto"!=r)t[r]=s;else if("object"==typeof r)for(var o in r)r[o]&&(t[r[o]]=s[o])}}return t},gantt.hideLightbox=function(){var t=this.getLightbox();t&&(t.style.display="none"),this._lightbox_id=null,this.hideCover(),this.callEvent("onAfterLightbox",[])},gantt.hideCover=function(){this._cover&&this._cover.parentNode.removeChild(this._cover),
215
+ this._cover=null},gantt.resetLightbox=function(){gantt._lightbox&&!gantt._custom_lightbox&&gantt._lightbox.parentNode.removeChild(gantt._lightbox),gantt._lightbox=null},gantt._set_lightbox_values=function(t,e){var n=t,a=e.getElementsByTagName("span");gantt.templates.lightbox_header?(a[1].innerHTML="",a[2].innerHTML=gantt.templates.lightbox_header(n.start_date,n.end_date,n)):(a[1].innerHTML=this.templates.task_time(n.start_date,n.end_date,n),a[2].innerHTML=(this.templates.task_text(n.start_date,n.end_date,n)||"").substr(0,70));
216
+ for(var i=this._get_typed_lightbox_config(this.getLightboxType()),s=0;s<i.length;s++){var r=i[s];if(this.form_blocks[r.type]){var o=document.getElementById(r.id).nextSibling,d=this.form_blocks[r.type],l=gantt._resolve_default_mapping(i[s]),_=dhtmlx.defined(n[l])?n[l]:r.default_value;d.set_value.call(gantt,o,_,n,r),r.focus&&d.focus.call(gantt,o)}}t.id&&(gantt._lightbox_id=t.id)},gantt._fill_lightbox=function(t,e){var n=this.getTask(t);this._set_lightbox_values(n,e)},gantt.getLightboxSection=function(t){
217
+ var e=this._get_typed_lightbox_config(),n=0;for(n;n<e.length&&e[n].name!=t;n++);var a=e[n];if(!a)return null;this._lightbox||this.getLightbox();var i=document.getElementById(a.id),s=i.nextSibling,r={section:a,header:i,node:s,getValue:function(t){return gantt.form_blocks[a.type].get_value.call(gantt,s,t||{},a)},setValue:function(t,e){return gantt.form_blocks[a.type].set_value.call(gantt,s,t,e||{},a)}},o=this._lightbox_methods["get_"+a.type+"_control"];return o?o(r):r},gantt._lightbox_methods.get_template_control=function(t){
218
+ return t.control=t.node,t},gantt._lightbox_methods.get_select_control=function(t){return t.control=t.node.getElementsByTagName("select")[0],t},gantt._lightbox_methods.get_textarea_control=function(t){return t.control=t.node.getElementsByTagName("textarea")[0],t},gantt._lightbox_methods.get_time_control=function(t){return t.control=t.node.getElementsByTagName("select"),t},gantt._init_dnd_events=function(){dhtmlxEvent(document.body,"mousemove",gantt._move_while_dnd),dhtmlxEvent(document.body,"mouseup",gantt._finish_dnd),
219
+ gantt._init_dnd_events=function(){}},gantt._move_while_dnd=function(t){if(gantt._dnd_start_lb){document.gantt_unselectable||(document.body.className+=" gantt_unselectable",document.gantt_unselectable=!0);var e=gantt.getLightbox(),n=t&&t.target?[t.pageX,t.pageY]:[event.clientX,event.clientY];e.style.top=gantt._lb_start[1]+n[1]-gantt._dnd_start_lb[1]+"px",e.style.left=gantt._lb_start[0]+n[0]-gantt._dnd_start_lb[0]+"px"}},gantt._ready_to_dnd=function(t){var e=gantt.getLightbox();gantt._lb_start=[parseInt(e.style.left,10),parseInt(e.style.top,10)],
220
+ gantt._dnd_start_lb=t&&t.target?[t.pageX,t.pageY]:[event.clientX,event.clientY]},gantt._finish_dnd=function(){gantt._lb_start&&(gantt._lb_start=gantt._dnd_start_lb=!1,document.body.className=document.body.className.replace(" gantt_unselectable",""),document.gantt_unselectable=!1)},gantt._focus=function(t,e){if(t&&t.focus)if(gantt.config.touch);else try{e&&t.select&&t.select(),t.focus()}catch(n){}},gantt.form_blocks={getTimePicker:function(t,e){var n=t.time_format;if(!n){var n=["%d","%m","%Y"];gantt._get_line(gantt._tasks.unit)<gantt._get_line("day")&&n.push("%H:%i");
221
+ }t._time_format_order={size:0};var a=this.config,i=this.date.date_part(new Date(gantt._min_date.valueOf())),s=1440,r=0;gantt.config.limit_time_select&&(s=60*a.last_hour+1,r=60*a.first_hour,i.setHours(a.first_hour));for(var o="",d=0;d<n.length;d++){var l=n[d];d>0&&(o+=" ");var _="";switch(l){case"%Y":t._time_format_order[2]=d,t._time_format_order.size++;var h,c,g,u;t.year_range&&(isNaN(t.year_range)?t.year_range.push&&(g=t.year_range[0],u=t.year_range[1]):h=t.year_range),h=h||10,c=c||Math.floor(h/2),
222
+ g=g||i.getFullYear()-c,u=u||g+h;for(var f=g;u>f;f++)_+="<option value='"+f+"'>"+f+"</option>";break;case"%m":t._time_format_order[1]=d,t._time_format_order.size++;for(var f=0;12>f;f++)_+="<option value='"+f+"'>"+this.locale.date.month_full[f]+"</option>";break;case"%d":t._time_format_order[0]=d,t._time_format_order.size++;for(var f=1;32>f;f++)_+="<option value='"+f+"'>"+f+"</option>";break;case"%H:%i":t._time_format_order[3]=d,t._time_format_order.size++;var f=r,p=i.getDate();for(t._time_values=[];s>f;){
223
+ var m=this.templates.time_picker(i);_+="<option value='"+f+"'>"+m+"</option>",t._time_values.push(f),i.setTime(i.valueOf()+60*this._get_timepicker_step()*1e3);var v=i.getDate()!=p?1:0;f=24*v*60+60*i.getHours()+i.getMinutes()}}if(_){var k=t.readonly?"disabled='disabled'":"",x=e?" style='display:none'":"";o+="<select "+k+x+">"+_+"</select>"}}return o},_fill_lightbox_select:function(t,e,n,a,i){if(t[e+a[0]].value=n.getDate(),t[e+a[1]].value=n.getMonth(),t[e+a[2]].value=n.getFullYear(),dhtmlx.defined(a[3])){
224
+ var s=60*n.getHours()+n.getMinutes();s=Math.round(s/gantt._get_timepicker_step())*gantt._get_timepicker_step();var r=t[e+a[3]];r.value=s,r.setAttribute("data-value",s)}},template:{render:function(t){var e=(t.height||"30")+"px";return"<div class='gantt_cal_ltext gantt_cal_template' style='height:"+e+";'></div>"},set_value:function(t,e,n,a){t.innerHTML=e||""},get_value:function(t,e,n){return t.innerHTML||""},focus:function(t){}},textarea:{render:function(t){var e=(t.height||"130")+"px";return"<div class='gantt_cal_ltext' style='height:"+e+";'><textarea></textarea></div>";
225
+ },set_value:function(t,e,n){t.firstChild.value=e||""},get_value:function(t,e){return t.firstChild.value},focus:function(t){var e=t.firstChild;gantt._focus(e,!0)}},select:{render:function(t){for(var e=(t.height||"23")+"px",n="<div class='gantt_cal_ltext' style='height:"+e+";'><select style='width:100%;'>",a=0;a<t.options.length;a++)n+="<option value='"+t.options[a].key+"'>"+t.options[a].label+"</option>";return n+="</select></div>"},set_value:function(t,e,n,a){var i=t.firstChild;!i._dhx_onchange&&a.onchange&&(i.onchange=a.onchange,
226
+ i._dhx_onchange=!0),"undefined"==typeof e&&(e=(i.options[0]||{}).value),i.value=e||""},get_value:function(t,e){return t.firstChild.value},focus:function(t){var e=t.firstChild;gantt._focus(e,!0)}},time:{render:function(t){var e=this.form_blocks.getTimePicker.call(this,t),n=["<div style='height:"+(t.height||30)+"px;padding-top:0px;font-size:inherit;text-align:center;' class='gantt_section_time'>"];return n.push(e),t.single_date?(e=this.form_blocks.getTimePicker.call(this,t,!0),n.push("<span></span>")):n.push("<span style='font-weight:normal; font-size:10pt;'> &nbsp;&ndash;&nbsp; </span>"),
227
+ n.push(e),n.push("</div>"),n.join("")},set_value:function(t,e,n,a){var i=a,s=t.getElementsByTagName("select"),r=a._time_format_order;a._time_format_size;if(i.auto_end_date)for(var o=function(){_=new Date(s[r[2]].value,s[r[1]].value,s[r[0]].value,0,0),h=gantt.calculateEndDate(_,1),this.form_blocks._fill_lightbox_select(s,r.size,h,r,i)},d=0;4>d;d++)s[d].onchange=o;var l=gantt._resolve_default_mapping(a);"string"==typeof l&&(l={start_date:l});var _=n[l.start_date]||new Date,h=n[l.end_date]||gantt.calculateEndDate(_,1);
228
+ this.form_blocks._fill_lightbox_select(s,0,_,r,i),this.form_blocks._fill_lightbox_select(s,r.size,h,r,i)},get_value:function(t,e,n){var a=t.getElementsByTagName("select"),i=n._time_format_order,s=0,r=0;if(dhtmlx.defined(i[3])){var o=parseInt(a[i[3]].value,10);s=Math.floor(o/60),r=o%60}var d=new Date(a[i[2]].value,a[i[1]].value,a[i[0]].value,s,r);if(s=r=0,dhtmlx.defined(i[3])){var o=parseInt(a[i.size+i[3]].value,10);s=Math.floor(o/60),r=o%60}var l=new Date(a[i[2]+i.size].value,a[i[1]+i.size].value,a[i[0]+i.size].value,s,r);
229
+ d>=l&&(l=gantt.date.add(d,gantt._get_timepicker_step(),"minute"));var _=gantt._resolve_default_mapping(n),h={start_date:new Date(d),end_date:new Date(l)};return"string"==typeof _?h.start_date:h},focus:function(t){gantt._focus(t.getElementsByTagName("select")[0])}},duration:{render:function(t){var e=this.form_blocks.getTimePicker.call(this,t);e="<div class='gantt_time_selects'>"+e+"</div>";var n=this.locale.labels[this.config.duration_unit+"s"],a=t.single_date?' style="display:none"':"",i=t.readonly?" disabled='disabled'":"",s="<div class='gantt_duration' "+a+"><input type='button' class='gantt_duration_dec' value='-'"+i+"><input type='text' value='5' class='gantt_duration_value'"+i+"><input type='button' class='gantt_duration_inc' value='+'"+i+"> "+n+" <span></span></div>",r="<div style='height:"+(t.height||30)+"px;padding-top:0px;font-size:inherit;' class='gantt_section_time'>"+e+" "+s+"</div>";
230
+ return r},set_value:function(t,e,n,a){function i(){var e=gantt.form_blocks.duration._get_start_date.call(gantt,t,a),n=gantt.form_blocks.duration._get_duration.call(gantt,t,a),i=gantt.calculateEndDate(e,n);h.innerHTML=gantt.templates.task_date(i)}function s(t){var e=l.value;e=parseInt(e,10),window.isNaN(e)&&(e=0),e+=t,1>e&&(e=1),l.value=e,i()}var r=a,o=t.getElementsByTagName("select"),d=t.getElementsByTagName("input"),l=d[1],_=[d[0],d[2]],h=t.getElementsByTagName("span")[0],c=a._time_format_order;_[0].onclick=dhtmlx.bind(function(){
231
+ s(-1*this.config.duration_step)},this),_[1].onclick=dhtmlx.bind(function(){s(1*this.config.duration_step)},this),o[0].onchange=i,o[1].onchange=i,o[2].onchange=i,o[3]&&(o[3].onchange=i),l.onkeydown=dhtmlx.bind(function(t){t=t||window.event;var e=t.charCode||t.keyCode||t.which;return 40==e?(s(-1*this.config.duration_step),!1):38==e?(s(1*this.config.duration_step),!1):void window.setTimeout(function(t){i()},1)},this),l.onchange=dhtmlx.bind(function(t){i()},this);var g=gantt._resolve_default_mapping(a);
232
+ "string"==typeof g&&(g={start_date:g});var u=n[g.start_date]||new Date,f=n[g.end_date]||gantt.calculateEndDate(u,1),p=Math.round(n[g.duration])||gantt.calculateDuration(u,f);gantt.form_blocks._fill_lightbox_select(o,0,u,c,r),l.value=p,i()},_get_start_date:function(t,e){var n=t.getElementsByTagName("select"),a=e._time_format_order,i=0,s=0;if(dhtmlx.defined(a[3])){var r=n[a[3]],o=parseInt(r.value,10);isNaN(o)&&r.hasAttribute("data-value")&&(o=parseInt(r.getAttribute("data-value"),10)),i=Math.floor(o/60),
233
+ s=o%60}return new Date(n[a[2]].value,n[a[1]].value,n[a[0]].value,i,s)},_get_duration:function(t,e){var n=t.getElementsByTagName("input")[1];return n=parseInt(n.value,10),(!n||window.isNaN(n))&&(n=1),0>n&&(n*=-1),n},get_value:function(t,e,n){var a=gantt.form_blocks.duration._get_start_date(t,n),i=gantt.form_blocks.duration._get_duration(t,n),s=gantt.calculateEndDate(a,i),r=gantt._resolve_default_mapping(n),o={start_date:new Date(a),end_date:new Date(s),duration:i};return"string"==typeof r?o.start_date:o;
234
+ },focus:function(t){gantt._focus(t.getElementsByTagName("select")[0])}},parent:{_filter:function(t,e,n){var a=e.filter||function(){return!0};t=t.slice(0);for(var i=0;i<t.length;i++){var s=t[i];(s.id==n||gantt.isChildOf(s.id,n)||a(s.id,s)===!1)&&(t.splice(i,1),i--)}return t},_display:function(t,e){var n=[],a=[];e&&(n=gantt.getTaskByTime(),t.allow_root&&n.unshift({id:gantt.config.root_id,text:t.root_label||""}),n=this._filter(n,t,e),t.sort&&n.sort(t.sort));for(var i=t.template||gantt.templates.task_text,s=0;s<n.length;s++){
235
+ var r=i.apply(gantt,[n[s].start_date,n[s].end_date,n[s]]);void 0===r&&(r=""),a.push({key:n[s].id,label:r})}return t.options=a,t.map_to=t.map_to||"parent",gantt.form_blocks.select.render.apply(this,arguments)},render:function(t){return gantt.form_blocks.parent._display(t,!1)},set_value:function(t,e,n,a){var i=document.createElement("div");i.innerHTML=gantt.form_blocks.parent._display(a,n.id);var s=i.removeChild(i.firstChild);return t.onselect=null,t.parentNode.replaceChild(s,t),gantt.form_blocks.select.set_value.apply(gantt,[s,e,n,a]);
236
+ },get_value:function(){return gantt.form_blocks.select.get_value.apply(gantt,arguments)},focus:function(){return gantt.form_blocks.select.focus.apply(gantt,arguments)}}},gantt._is_lightbox_timepicker=function(){for(var t=this._get_typed_lightbox_config(),e=0;e<t.length;e++)if("time"==t[e].name&&"time"==t[e].type)return!0;return!1},gantt._dhtmlx_confirm=function(t,e,n,a){if(!t)return n();var i={text:t};e&&(i.title=e),a&&(i.ok=a),n&&(i.callback=function(t){t&&n()}),dhtmlx.confirm(i)},gantt._get_typed_lightbox_config=function(t){
237
+ void 0===t&&(t=this.getLightboxType());var e=this._get_type_name(t);return gantt.config.lightbox[e+"_sections"]?gantt.config.lightbox[e+"_sections"]:gantt.config.lightbox.sections},gantt._silent_redraw_lightbox=function(t){var e=this.getLightboxType();if(this.getState().lightbox){var n=this.getState().lightbox,a=this.getLightboxValues(),i=dhtmlx.copy(this.getTask(n));this.resetLightbox();var s=dhtmlx.mixin(i,a,!0),r=this.getLightbox(t?t:void 0);this._center_lightbox(this.getLightbox()),this._set_lightbox_values(s,r);
238
+ }else this.resetLightbox(),this.getLightbox(t?t:void 0);this.callEvent("onLightboxChange",[e,this.getLightboxType()])},gantt._extend_to_optional=function(t){var e=t,n={render:e.render,focus:e.focus,set_value:function(t,a,i,s){var r=gantt._resolve_default_mapping(s);if(!i[r.start_date]||"start_date"==r.start_date&&this._isAllowedUnscheduledTask(i)){n.disable(t,s);var o={};for(var d in r)o[r[d]]=i[d];return e.set_value.call(gantt,t,a,o,s)}return n.enable(t,s),e.set_value.call(gantt,t,a,i,s)},get_value:function(t,n,a){
239
+ return a.disabled?{start_date:null}:e.get_value.call(gantt,t,n,a)},update_block:function(t,e){if(gantt.callEvent("onSectionToggle",[gantt._lightbox_id,e]),t.style.display=e.disabled?"none":"block",e.button){var n=t.previousSibling.firstChild.firstChild,a=gantt.locale.labels,i=e.disabled?a[e.name+"_enable_button"]:a[e.name+"_disable_button"];n.nextSibling.innerHTML=i}gantt.resizeLightbox()},disable:function(t,e){e.disabled=!0,n.update_block(t,e)},enable:function(t,e){e.disabled=!1,n.update_block(t,e);
240
+ },button_click:function(t,e,a,i){if(gantt.callEvent("onSectionButton",[gantt._lightbox_id,a])!==!1){var s=gantt._get_typed_lightbox_config()[t];s.disabled?n.enable(i,s):n.disable(i,s)}}};return n},gantt.form_blocks.duration_optional=gantt._extend_to_optional(gantt.form_blocks.duration),gantt.form_blocks.time_optional=gantt._extend_to_optional(gantt.form_blocks.time),dataProcessor.prototype={setTransactionMode:function(t,e){"object"==typeof t?(this._tMode=t.mode||this._tMode,this._headers=this._headers||t.headers,
241
+ this._payload=this._payload||t.payload):(this._tMode=t,this._tSend=e),"REST"==this._tMode&&(this._tSend=!1,this._endnm=!0)},escape:function(t){return this._utf?encodeURIComponent(t):escape(t)},enableUTFencoding:function(t){this._utf=dhx4.s2b(t)},setDataColumns:function(t){this._columns="string"==typeof t?t.split(","):t},getSyncState:function(){return!this.updatedRows.length},enableDataNames:function(t){this._endnm=dhx4.s2b(t)},enablePartialDataSend:function(t){this._changed=dhx4.s2b(t)},setUpdateMode:function(t,e){
242
+ this.autoUpdate="cell"==t,this.updateMode=t,this.dnd=e},ignore:function(t,e){this._silent_mode=!0,t.call(e||window),this._silent_mode=!1},setUpdated:function(t,e,n){if(!this._silent_mode){var a=this.findRow(t);n=n||"updated";var i=this.obj.getUserData(t,this.action_param);i&&"updated"==n&&(n=i),e?(this.set_invalid(t,!1),this.updatedRows[a]=t,this.obj.setUserData(t,this.action_param,n),this._in_progress[t]&&(this._in_progress[t]="wait")):this.is_invalid(t)||(this.updatedRows.splice(a,1),this.obj.setUserData(t,this.action_param,"")),
243
+ e||this._clearUpdateFlag(t),this.markRow(t,e,n),e&&this.autoUpdate&&this.sendData(t)}},_clearUpdateFlag:function(t){},markRow:function(t,e,n){var a="",i=this.is_invalid(t);if(i&&(a=this.styles[i],e=!0),this.callEvent("onRowMark",[t,e,n,i])&&(a=this.styles[e?n:"clear"]+a,this.obj[this._methods[0]](t,a),i&&i.details)){a+=this.styles[i+"_cell"];for(var s=0;s<i.details.length;s++)i.details[s]&&this.obj[this._methods[1]](t,s,a)}},getState:function(t){return this.obj.getUserData(t,this.action_param)},is_invalid:function(t){
244
+ return this._invalid[t]},set_invalid:function(t,e,n){n&&(e={value:e,details:n,toString:function(){return this.value.toString()}}),this._invalid[t]=e},checkBeforeUpdate:function(t){return!0},sendData:function(t){return!this._waitMode||"tree"!=this.obj.mytype&&!this.obj._h2?(this.obj.editStop&&this.obj.editStop(),"undefined"==typeof t||this._tSend?this.sendAllData():this._in_progress[t]?!1:(this.messages=[],!this.checkBeforeUpdate(t)&&this.callEvent("onValidationError",[t,this.messages])?!1:void this._beforeSendData(this._getRowData(t),t))):void 0;
245
+ },_beforeSendData:function(t,e){return this.callEvent("onBeforeUpdate",[e,this.getState(e),t])?void this._sendData(t,e):!1},serialize:function(t,e){if("string"==typeof t)return t;if("undefined"!=typeof e)return this.serialize_one(t,"");var n=[],a=[];for(var i in t)t.hasOwnProperty(i)&&(n.push(this.serialize_one(t[i],i+this.post_delim)),a.push(i));return n.push("ids="+this.escape(a.join(","))),dhtmlx.security_key&&n.push("dhx_security="+dhtmlx.security_key),n.join("&")},serialize_one:function(t,e){
246
+ if("string"==typeof t)return t;var n=[];for(var a in t)if(t.hasOwnProperty(a)){if(("id"==a||a==this.action_param)&&"REST"==this._tMode)continue;n.push(this.escape((e||"")+a)+"="+this.escape(t[a]))}return n.join("&")},_sendData:function(t,e){if(t){if(!this.callEvent("onBeforeDataSending",e?[e,this.getState(e),t]:[null,null,t]))return!1;e&&(this._in_progress[e]=(new Date).valueOf());var n=this,a=function(a){var i=[];if(e)i.push(e);else if(t)for(var s in t)i.push(s);return n.afterUpdate(n,a,i)},i=this.serverProcessor+(this._user?dhtmlx.url(this.serverProcessor)+["dhx_user="+this._user,"dhx_version="+this.obj.getUserData(0,"version")].join("&"):"");
247
+ if("GET"==this._tMode)dhx4.ajax.get(i+(-1!=i.indexOf("?")?"&":"?")+this.serialize(t,e),a);else if("POST"==this._tMode)dhx4.ajax.post(i,this.serialize(t,e),a);else if("REST"==this._tMode){var s=this.getState(e),r=i.replace(/(\&|\?)editing\=true/,""),o="",d="post";if("inserted"==s?o=this.serialize(t,e):"deleted"==s?(d="DELETE",r=r+("/"==r.slice(-1)?"":"/")+e):(d="PUT",o=this.serialize(t,e),r=r+("/"==r.slice(-1)?"":"/")+e),this._payload)for(var l in this._payload)r=r+dhtmlx.url(r)+this.escape(l)+"="+this.escape(this._payload[l]);
248
+ dhx4.ajax.query({url:r,method:d,headers:this._headers,data:o,callback:a})}this._waitMode++}},sendAllData:function(){if(this.updatedRows.length){this.messages=[];for(var t=!0,e=0;e<this.updatedRows.length;e++)t&=this.checkBeforeUpdate(this.updatedRows[e]);if(!t&&!this.callEvent("onValidationError",["",this.messages]))return!1;if(this._tSend)this._sendData(this._getAllData());else for(var e=0;e<this.updatedRows.length;e++)if(!this._in_progress[this.updatedRows[e]]){if(this.is_invalid(this.updatedRows[e]))continue;
249
+ if(this._beforeSendData(this._getRowData(this.updatedRows[e]),this.updatedRows[e]),this._waitMode&&("tree"==this.obj.mytype||this.obj._h2))return}}},_getAllData:function(t){for(var e={},n=!1,a=0;a<this.updatedRows.length;a++){var i=this.updatedRows[a];this._in_progress[i]||this.is_invalid(i)||this.callEvent("onBeforeUpdate",[i,this.getState(i),this._getRowData(i)])&&(e[i]=this._getRowData(i,i+this.post_delim),n=!0,this._in_progress[i]=(new Date).valueOf())}return n?e:null},setVerificator:function(t,e){
250
+ this.mandatoryFields[t]=e||function(t){return""!==t}},clearVerificator:function(t){this.mandatoryFields[t]=!1},findRow:function(t){var e=0;for(e=0;e<this.updatedRows.length&&t!=this.updatedRows[e];e++);return e},defineAction:function(t,e){this._uActions||(this._uActions=[]),this._uActions[t]=e},afterUpdateCallback:function(t,e,n,a){var i=t,s="error"!=n&&"invalid"!=n;if(s||this.set_invalid(t,n),this._uActions&&this._uActions[n]&&!this._uActions[n](a))return delete this._in_progress[i];"wait"!=this._in_progress[i]&&this.setUpdated(t,!1);
251
+ var r=t;switch(n){case"inserted":case"insert":e!=t&&(this.obj[this._methods[2]](t,e),t=e);break;case"delete":case"deleted":return this.obj.setUserData(t,this.action_param,"true_deleted"),this.obj[this._methods[3]](t),delete this._in_progress[i],this.callEvent("onAfterUpdate",[t,n,e,a])}"wait"!=this._in_progress[i]?(s&&this.obj.setUserData(t,this.action_param,""),delete this._in_progress[i]):(delete this._in_progress[i],this.setUpdated(e,!0,this.obj.getUserData(t,this.action_param))),this.callEvent("onAfterUpdate",[r,n,e,a]);
252
+ },afterUpdate:function(t,e,n){if(window.JSON)try{var a=JSON.parse(e.xmlDoc.responseText),i=a.action||this.getState(n)||"updated",s=a.sid||n[0],r=a.tid||n[0];return t.afterUpdateCallback(s,r,i,a),void t.finalizeUpdate()}catch(o){}var d=dhx4.ajax.xmltop("data",e.xmlDoc);if(!d)return this.cleanUpdate(n);var l=dhx4.ajax.xpath("//data/action",d);if(!l.length)return this.cleanUpdate(n);for(var _=0;_<l.length;_++){var h=l[_],i=h.getAttribute("type"),s=h.getAttribute("sid"),r=h.getAttribute("tid");t.afterUpdateCallback(s,r,i,h);
253
+ }t.finalizeUpdate()},cleanUpdate:function(t){if(t)for(var e=0;e<t.length;e++)delete this._in_progress[t[e]]},finalizeUpdate:function(){this._waitMode&&this._waitMode--,("tree"==this.obj.mytype||this.obj._h2)&&this.updatedRows.length&&this.sendData(),this.callEvent("onAfterUpdateFinish",[]),this.updatedRows.length||this.callEvent("onFullSync",[])},init:function(t){this.obj=t,this.obj._dp_init&&this.obj._dp_init(this)},setOnAfterUpdate:function(t){this.attachEvent("onAfterUpdate",t)},enableDebug:function(t){},
254
+ setOnBeforeUpdateHandler:function(t){this.attachEvent("onBeforeDataSending",t)},setAutoUpdate:function(t,e){t=t||2e3,this._user=e||(new Date).valueOf(),this._need_update=!1,this._loader=null,this._update_busy=!1,this.attachEvent("onAfterUpdate",function(t,e,n,a){this.afterAutoUpdate(t,e,n,a)}),this.attachEvent("onFullSync",function(){this.fullSync()});var n=this;window.setInterval(function(){n.loadUpdate()},t)},afterAutoUpdate:function(t,e,n,a){return"collision"==e?(this._need_update=!0,!1):!0},fullSync:function(){
255
+ return 1==this._need_update&&(this._need_update=!1,this.loadUpdate()),!0},getUpdates:function(t,e){return this._update_busy?!1:(this._update_busy=!0,this._loader=this._loader||new dtmlXMLLoaderObject(!0),this._loader.async=!0,this._loader.waitCall=e,void this._loader.loadXML(t))},_v:function(t){return t.firstChild?t.firstChild.nodeValue:""},_a:function(t){for(var e=[],n=0;n<t.length;n++)e[n]=this._v(t[n]);return e},loadUpdate:function(){var t=this,e=this.obj.getUserData(0,"version"),n=this.serverProcessor+dhtmlx.url(this.serverProcessor)+["dhx_user="+this._user,"dhx_version="+e].join("&");
256
+ n=n.replace("editing=true&",""),this.getUpdates(n,function(){var e=t._loader.doXPath("//userdata");t.obj.setUserData(0,"version",t._v(e[0]));var n=t._loader.doXPath("//update");if(n.length){t._silent_mode=!0;for(var a=0;a<n.length;a++){var i=n[a].getAttribute("status"),s=n[a].getAttribute("id"),r=n[a].getAttribute("parent");switch(i){case"inserted":t.callEvent("insertCallback",[n[a],s,r]);break;case"updated":t.callEvent("updateCallback",[n[a],s,r]);break;case"deleted":t.callEvent("deleteCallback",[n[a],s,r]);
257
+ }}t._silent_mode=!1}t._update_busy=!1,t=null})}},gantt._init_dp_live_update_hooks=function(t){t.attachEvent("insertCallback",gantt._insert_callback),t.attachEvent("updateCallback",gantt._update_callback),t.attachEvent("deleteCallback",gantt._delete_callback)},gantt._update_callback=function(t,e){var n=t.data||gantt.xml._xmlNodeToJSON(t.firstChild);if(gantt.isTaskExists(e)){var a=gantt.getTask(e);for(var i in n){var s=n[i];switch(i){case"id":continue;case"start_date":case"end_date":s=gantt.templates.xml_date(s);
258
+ break;case"duration":a.end_date=gantt.calculateEndDate(a.start_date,s)}a[i]=s}gantt.updateTask(e),gantt.refreshData()}},gantt._insert_callback=function(t,e,n,a){var i=t.data||gantt.xml._xmlNodeToJSON(t.firstChild),s={add:gantt.addTask,isExist:gantt.isTaskExists};"links"==a&&(s.add=gantt.addLink,s.isExist=gantt.isLinkExists),s.isExist.call(gantt,e)||(i.id=e,s.add.call(gantt,i))},gantt._delete_callback=function(t,e,n,a){var i={"delete":gantt.deleteTask,isExist:gantt.isTaskExists};"links"==a&&(i["delete"]=gantt.deleteLink,
259
+ i.isExist=gantt.isLinkExists),i.isExist.call(gantt,e)&&i["delete"].call(gantt,e)},dhtmlx.assert=function(t,e){t||gantt.config.show_errors&&gantt.callEvent("onError",[e])!==!1&&dhtmlx.message({type:"error",text:e,expire:-1})},gantt.init=function(t,e,n){this.callEvent("onBeforeGanttReady",[]),e&&n&&(this.config.start_date=this._min_date=new Date(e),this.config.end_date=this._max_date=new Date(n)),this._init_skin(),this.date.init(),this.config.scroll_size||(this.config.scroll_size=this._detectScrollSize()),
260
+ dhtmlxEvent(window,"resize",this._on_resize),this.init=function(t){this.$container&&this.$container.parentNode&&(this.$container.parentNode.removeChild(this.$container),this.$container=null),this._reinit(t)},this._reinit(t)},gantt._reinit=function(t){this._init_html_area(t),this._set_sizes(),this._clear_renderers(),this.resetLightbox(),this._update_flags(),this._init_touch_events(),this._init_templates(),this._init_grid(),this._init_tasks(),this._set_scroll_events(),dhtmlxEvent(this.$container,"click",this._on_click),
261
+ dhtmlxEvent(this.$container,"dblclick",this._on_dblclick),dhtmlxEvent(this.$container,"mousemove",this._on_mousemove),dhtmlxEvent(this.$container,"contextmenu",this._on_contextmenu),this.callEvent("onGanttReady",[]),this.render()},gantt._init_html_area=function(t){"string"==typeof t?this._obj=document.getElementById(t):this._obj=t,dhtmlx.assert(this._obj,"Invalid html container: "+t);var e="<div class='gantt_container'><div class='gantt_grid'></div><div class='gantt_task'></div>";e+="<div class='gantt_ver_scroll'><div></div></div><div class='gantt_hor_scroll'><div></div></div></div>",
262
+ this._obj.innerHTML=e,this.$container=this._obj.firstChild;var n=this.$container.childNodes;this.$grid=n[0],this.$task=n[1],this.$scroll_ver=n[2],this.$scroll_hor=n[3],this.$grid.innerHTML="<div class='gantt_grid_scale'></div><div class='gantt_grid_data'></div>",this.$grid_scale=this.$grid.childNodes[0],this.$grid_data=this.$grid.childNodes[1],this.$task.innerHTML="<div class='gantt_task_scale'></div><div class='gantt_data_area'><div class='gantt_task_bg'></div><div class='gantt_links_area'></div><div class='gantt_bars_area'></div></div>",
263
+ this.$task_scale=this.$task.childNodes[0],this.$task_data=this.$task.childNodes[1],this.$task_bg=this.$task_data.childNodes[0],this.$task_links=this.$task_data.childNodes[1],this.$task_bars=this.$task_data.childNodes[2]},gantt.$click={buttons:{edit:function(t){gantt.showLightbox(t)},"delete":function(t){var e=gantt.locale.labels.confirm_deleting,n=gantt.locale.labels.confirm_deleting_title;gantt._dhtmlx_confirm(e,n,function(){var e=gantt.getTask(t);e.$new?(gantt._deleteTask(t,!0),gantt.refreshData()):gantt.deleteTask(t),
264
+ gantt.hideLightbox()})}}},gantt._calculate_content_height=function(){var t=this.config.scale_height,e=this._order.length*this.config.row_height,n=this._scroll_hor?this.config.scroll_size+1:0;return this._is_grid_visible()||this._is_chart_visible()?t+e+2+n:0},gantt._calculate_content_width=function(){var t=this._get_grid_width(),e=this._tasks?this._tasks.full_width:0;this._scroll_ver?this.config.scroll_size+1:0;return this._is_chart_visible()||(e=0),this._is_grid_visible()||(t=0),t+e+1},gantt._get_resize_options=function(){
265
+ var t={x:!1,y:!1};return"xy"==this.config.autosize?t.x=t.y=!0:"y"==this.config.autosize||this.config.autosize===!0?t.y=!0:"x"==this.config.autosize&&(t.x=!0),t},gantt._clean_el_size=function(t){return 1*(t||"").toString().replace("px","")||0},gantt._get_box_styles=function(){var t=null;t=window.getComputedStyle?window.getComputedStyle(this._obj,null):{width:this._obj.clientWidth,height:this._obj.clientHeight};var e=["width","height","paddingTop","paddingBottom","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],n={
266
+ boxSizing:"border-box"==t.boxSizing};t.MozBoxSizing&&(n.boxSizing="border-box"==t.MozBoxSizing);for(var a=0;a<e.length;a++)n[e[a]]=t[e[a]]?this._clean_el_size(t[e[a]]):0;var i={horPaddings:n.paddingLeft+n.paddingRight+n.borderLeftWidth+n.borderRightWidth,vertPaddings:n.paddingTop+n.paddingBottom+n.borderTopWidth+n.borderBottomWidth,borderBox:n.boxSizing,innerWidth:n.width,innerHeight:n.height,outerWidth:n.width,outerHeight:n.height};return i.borderBox?(i.innerWidth-=i.horPaddings,i.innerHeight-=i.vertPaddings):(i.outerWidth+=i.horPaddings,
267
+ i.outerHeight+=i.vertPaddings),i},gantt._do_autosize=function(){var t=this._get_resize_options(),e=this._get_box_styles();if(t.y){var n=this._calculate_content_height();e.borderBox&&(n+=e.vertPaddings),this._obj.style.height=n+"px"}if(t.x){var a=this._calculate_content_width();e.borderBox&&(a+=e.horPaddings),this._obj.style.width=a+"px"}},gantt._set_sizes=function(){this._do_autosize();var t=this._get_box_styles();if(this._y=t.innerHeight,!(this._y<20)){this.$grid.style.height=this.$task.style.height=Math.max(this._y-this.$scroll_hor.offsetHeight-2,0)+"px";
268
+ var e=Math.max(this._y-(this.config.scale_height||0)-this.$scroll_hor.offsetHeight-2,0);this.$grid_data.style.height=this.$task_data.style.height=e+"px";var n=Math.max(this._get_grid_width()-1,0);this.$grid.style.width=n+"px",this.$grid.style.display=0===n?"none":"",t=this._get_box_styles(),this._x=t.innerWidth,this._x<20||(this.$grid_data.style.width=Math.max(this._get_grid_width()-1,0)+"px",this.$task.style.width=Math.max(this._x-this._get_grid_width()-2,0)+"px")}},gantt.getScrollState=function(){
269
+ return this.$task&&this.$task_data?{x:this.$task.scrollLeft,y:this.$task_data.scrollTop}:null},gantt._save_scroll_state=function(t,e){var n={};this._cached_scroll_pos=this._cached_scroll_pos||{},void 0!==t&&(n.x=Math.max(t,0)),void 0!==e&&(n.y=Math.max(e,0)),dhtmlx.mixin(this._cached_scroll_pos,n,!0)},gantt._restore_scroll_state=function(){return this._cached_scroll_pos||null},gantt.scrollTo=function(t,e){1*t==t&&(this.$task.scrollLeft=t,this._save_scroll_state(t,void 0)),1*e==e&&(this.$task_data.scrollTop=e,
270
+ this.$grid_data.scrollTop=e,this._save_scroll_state(void 0,e));var n=gantt._restore_scroll_state()||{x:0,y:0};this.callEvent("onGanttScroll",[n.x,n.y])},gantt.showDate=function(t){var e=this.posFromDate(t),n=Math.max(e-this.config.task_scroll_offset,0);this.scrollTo(n)},gantt.showTask=function(t){var e=this.getTaskNode(t);if(e){var n=Math.max(e.offsetLeft-this.config.task_scroll_offset,0),a=e.offsetTop-(this.$task_data.offsetHeight-this.config.row_height)/2;this.scrollTo(n,a)}},gantt._on_resize=gantt.setSizes=function(){
271
+ gantt._set_sizes(),gantt._scroll_resize()},gantt.render=function(){if(this._is_render_active()){this.callEvent("onBeforeGanttRender",[]);var t=dhtmlx.copy(this._restore_scroll_state()),e=null;if(t&&(e=gantt.dateFromPos(t.x+this.config.task_scroll_offset)),this._render_grid(),this._render_tasks_scales(),this._scroll_resize(),this._on_resize(),this._render_data(),this.config.preserve_scroll&&t){var n=gantt._restore_scroll_state(),a=gantt.dateFromPos(n.x);(+e!=+a||n.y!=t.y)&&(e&&this.showDate(e),gantt.scrollTo(void 0,t.y));
272
+ }this.callEvent("onGanttRender",[])}},gantt._set_scroll_events=function(){function t(t){var n=gantt._get_resize_options();gantt._wheel_time=new Date;var a=e?-20*t.deltaX:2*t.wheelDeltaX,i=e?-40*t.deltaY:t.wheelDelta;if(a&&Math.abs(a)>Math.abs(i)){if(n.x)return!0;var s=a/-40,r=gantt.$task.scrollLeft+30*s;gantt.scrollTo(r,null),gantt.$scroll_hor.scrollTop=o}else{if(n.y)return!0;var s=i/-40;"undefined"==typeof i&&(s=t.detail);var o=gantt.$scroll_ver.scrollTop+30*s;if(!gantt.config.prevent_default_scroll&&gantt._cached_scroll_pos&&gantt._cached_scroll_pos.y==o)return!0;
273
+ gantt.scrollTo(null,o),gantt.$scroll_ver.scrollTop=o}return t.preventDefault&&t.preventDefault(),t.cancelBubble=!0,!1}dhtmlxEvent(this.$scroll_hor,"scroll",function(){if(new Date-(gantt._wheel_time||0)<100)return!0;if(!gantt._touch_scroll_active){var t=gantt.$scroll_hor.scrollLeft;gantt.scrollTo(t)}}),dhtmlxEvent(this.$scroll_ver,"scroll",function(){if(!gantt._touch_scroll_active){var t=gantt.$scroll_ver.scrollTop;gantt.$grid_data.scrollTop=t,gantt.scrollTo(null,t)}}),dhtmlxEvent(this.$task,"scroll",function(){
274
+ var t=gantt.$task.scrollLeft,e=gantt.$scroll_hor.scrollLeft;e!=t&&(gantt.$scroll_hor.scrollLeft=t)}),dhtmlxEvent(this.$task_data,"scroll",function(){var t=gantt.$task_data.scrollTop,e=gantt.$scroll_ver.scrollTop;e!=t&&(gantt.$scroll_ver.scrollTop=t)});var e=_isFF&&!window._KHTMLrv;e?dhtmlxEvent(gantt.$container,"wheel",t):dhtmlxEvent(gantt.$container,"mousewheel",t)},gantt._scroll_resize=function(){if(!(this._x<20||this._y<20)){var t=this._get_grid_width(),e=Math.max(this._x-t,0),n=Math.max(this._y-this.config.scale_height,0),a=this.config.scroll_size+1,i=Math.max(this.$task_data.offsetWidth-a,0),s=this.config.row_height*this._order.length,r=this._get_resize_options(),o=this._scroll_hor=r.x?!1:i>e,d=this._scroll_ver=r.y?!1:s>n;
275
+ this.$scroll_hor.style.display=o?"block":"none",this.$scroll_hor.style.height=(o?a:0)+"px",this.$scroll_hor.style.width=Math.max(this._x-(d?a:2),0)+"px",this.$scroll_hor.firstChild.style.width=i+t+a+2+"px",this.$scroll_ver.style.display=d?"block":"none",this.$scroll_ver.style.width=(d?a:0)+"px",this.$scroll_ver.style.height=Math.max(this._y-(o?a:0)-this.config.scale_height,0)+"px",this.$scroll_ver.style.top=this.config.scale_height+"px",this.$scroll_ver.firstChild.style.height=this.config.scale_height+s+"px";
276
+ }},gantt._getClassName=function(t){if(!t)return"";var e=t.className||"";return e.baseVal&&(e=e.baseVal),e.indexOf||(e=""),gantt._trim(e)},gantt.locate=function(t){var e=gantt._get_target_node(t),n=gantt._getClassName(e);if((n||"").indexOf("gantt_task_cell")>=0)return null;for(var a=arguments[1]||this.config.task_attribute;e;){if(e.getAttribute){var i=e.getAttribute(a);if(i)return i}e=e.parentNode}return null},gantt._get_target_node=function(t){var e;return t.tagName?e=t:(t=t||window.event,e=t.target||t.srcElement),
277
+ e},gantt._trim=function(t){var e=String.prototype.trim||function(){return this.replace(/^\s+|\s+$/g,"")};return e.apply(t)},gantt._locate_css=function(t,e,n){void 0===n&&(n=!0);for(var a=gantt._get_target_node(t),i="";a;){if(i=gantt._getClassName(a)){var s=i.indexOf(e);if(s>=0){if(!n)return a;var r=0===s||!gantt._trim(i.charAt(s-1)),o=s+e.length>=i.length||!gantt._trim(i.charAt(s+e.length));if(r&&o)return a}}a=a.parentNode}return null},gantt._locateHTML=function(t,e){var n=gantt._get_target_node(t);
278
+ for(e=e||this.config.task_attribute;n;){if(n.getAttribute){var a=n.getAttribute(e);if(a)return n}n=n.parentNode}return null},gantt.getTaskRowNode=function(t){for(var e=this.$grid_data.childNodes,n=this.config.task_attribute,a=0;a<e.length;a++)if(e[a].getAttribute){var i=e[a].getAttribute(n);if(i==t)return e[a]}return null},gantt.getState=function(){return{drag_id:this._tasks_dnd.drag.id,drag_mode:this._tasks_dnd.drag.mode,drag_from_start:this._tasks_dnd.drag.left,selected_task:this._selected_task,
279
+ min_date:new Date(this._min_date),max_date:new Date(this._max_date),lightbox:this._lightbox_id,touch_drag:this._touch_drag}},gantt._checkTimeout=function(t,e){if(!e)return!0;var n=1e3/e;return 1>n?!0:t._on_timeout?!1:(setTimeout(function(){delete t._on_timeout},n),t._on_timeout=!0,!0)},gantt.selectTask=function(t){if(!this.config.select_task)return!1;if(t){if(this._selected_task==t)return this._selected_task;if(!this.callEvent("onBeforeTaskSelected",[t]))return!1;this.unselectTask(),this._selected_task=t,
280
+ this.refreshTask(t),this.callEvent("onTaskSelected",[t])}return this._selected_task},gantt.unselectTask=function(t){var t=t||this._selected_task;t&&(this._selected_task=null,this.refreshTask(t),this.callEvent("onTaskUnselected",[t]))},gantt.getSelectedId=function(){return dhtmlx.defined(this._selected_task)?this._selected_task:null},gantt.changeLightboxType=function(t){return this.getLightboxType()==t?!0:void gantt._silent_redraw_lightbox(t)},gantt._is_render_active=function(){return!this._skip_render;
281
+ },gantt._correct_dst_change=function(t,e,n,a){var i=gantt._get_line(a)*n;if(i>3600&&86400>i){var s=t.getTimezoneOffset()-e;s&&(t=gantt.date.add(t,s,"minute"))}return t},gantt.batchUpdate=function(t){var e,n=this._dp&&"off"!=this._dp.updateMode;n&&(e=this._dp.updateMode,this._dp.setUpdateMode("off")),this._skip_render=!0;try{t()}catch(a){}this._skip_render=!1,this.render(),n&&(this._dp.setUpdateMode(e),this._dp.sendData())},gantt.date={init:function(){for(var t=gantt.locale.date.month_short,e=gantt.locale.date.month_short_hash={},n=0;n<t.length;n++)e[t[n]]=n;
282
+ for(var t=gantt.locale.date.month_full,e=gantt.locale.date.month_full_hash={},n=0;n<t.length;n++)e[t[n]]=n},date_part:function(t){var e=new Date(t);return t.setHours(0),this.hour_start(t),t.getHours()&&(t.getDate()<e.getDate()||t.getMonth()<e.getMonth()||t.getFullYear()<e.getFullYear())&&t.setTime(t.getTime()+36e5*(24-t.getHours())),t},time_part:function(t){return(t.valueOf()/1e3-60*t.getTimezoneOffset())%86400},week_start:function(t){var e=t.getDay();return gantt.config.start_on_monday&&(0===e?e=6:e--),
283
+ this.date_part(this.add(t,-1*e,"day"))},month_start:function(t){return t.setDate(1),this.date_part(t)},year_start:function(t){return t.setMonth(0),this.month_start(t)},day_start:function(t){return this.date_part(t)},hour_start:function(t){return t.getMinutes()&&t.setMinutes(0),this.minute_start(t),t},minute_start:function(t){return t.getSeconds()&&t.setSeconds(0),t.getMilliseconds()&&t.setMilliseconds(0),t},_add_days:function(t,e){var n=new Date(t.valueOf());return n.setDate(n.getDate()+e),e>=0&&!t.getHours()&&n.getHours()&&(n.getDate()<=t.getDate()||n.getMonth()<t.getMonth()||n.getFullYear()<t.getFullYear())&&n.setTime(n.getTime()+36e5*(24-n.getHours())),
284
+ n},add:function(t,e,n){var a=new Date(t.valueOf());switch(n){case"day":a=gantt.date._add_days(a,e);break;case"week":a=gantt.date._add_days(a,7*e);break;case"month":a.setMonth(a.getMonth()+e);break;case"year":a.setYear(a.getFullYear()+e);break;case"hour":a.setTime(a.getTime()+60*e*60*1e3);break;case"minute":a.setTime(a.getTime()+60*e*1e3);break;default:return gantt.date["add_"+n](t,e,n)}return a},to_fixed:function(t){return 10>t?"0"+t:t},copy:function(t){return new Date(t.valueOf())},date_to_str:function(t,e){
285
+ return t=t.replace(/%[a-zA-Z]/g,function(t){switch(t){case"%d":return'"+gantt.date.to_fixed(date.getDate())+"';case"%m":return'"+gantt.date.to_fixed((date.getMonth()+1))+"';case"%j":return'"+date.getDate()+"';case"%n":return'"+(date.getMonth()+1)+"';case"%y":return'"+gantt.date.to_fixed(date.getFullYear()%100)+"';case"%Y":return'"+date.getFullYear()+"';case"%D":return'"+gantt.locale.date.day_short[date.getDay()]+"';case"%l":return'"+gantt.locale.date.day_full[date.getDay()]+"';case"%M":return'"+gantt.locale.date.month_short[date.getMonth()]+"';
286
+ case"%F":return'"+gantt.locale.date.month_full[date.getMonth()]+"';case"%h":return'"+gantt.date.to_fixed((date.getHours()+11)%12+1)+"';case"%g":return'"+((date.getHours()+11)%12+1)+"';case"%G":return'"+date.getHours()+"';case"%H":return'"+gantt.date.to_fixed(date.getHours())+"';case"%i":return'"+gantt.date.to_fixed(date.getMinutes())+"';case"%a":return'"+(date.getHours()>11?"pm":"am")+"';case"%A":return'"+(date.getHours()>11?"PM":"AM")+"';case"%s":return'"+gantt.date.to_fixed(date.getSeconds())+"';
287
+ case"%W":return'"+gantt.date.to_fixed(gantt.date.getISOWeek(date))+"';default:return t}}),e&&(t=t.replace(/date\.get/g,"date.getUTC")),new Function("date",'return "'+t+'";')},str_to_date:function(t,e){for(var n="var temp=date.match(/[a-zA-Z]+|[0-9]+/g);",a=t.match(/%[a-zA-Z]/g),i=0;i<a.length;i++)switch(a[i]){case"%j":case"%d":n+="set[2]=temp["+i+"]||1;";break;case"%n":case"%m":n+="set[1]=(temp["+i+"]||1)-1;";break;case"%y":n+="set[0]=temp["+i+"]*1+(temp["+i+"]>50?1900:2000);";break;case"%g":case"%G":
288
+ case"%h":case"%H":n+="set[3]=temp["+i+"]||0;";break;case"%i":n+="set[4]=temp["+i+"]||0;";break;case"%Y":n+="set[0]=temp["+i+"]||0;";break;case"%a":case"%A":n+="set[3]=set[3]%12+((temp["+i+"]||'').toLowerCase()=='am'?0:12);";break;case"%s":n+="set[5]=temp["+i+"]||0;";break;case"%M":n+="set[1]=gantt.locale.date.month_short_hash[temp["+i+"]]||0;";break;case"%F":n+="set[1]=gantt.locale.date.month_full_hash[temp["+i+"]]||0;"}var s="set[0],set[1],set[2],set[3],set[4],set[5]";return e&&(s=" Date.UTC("+s+")"),
289
+ new Function("date","var set=[0,0,1,0,0,0]; "+n+" return new Date("+s+");")},getISOWeek:function(t){if(!t)return!1;var e=t.getDay();0===e&&(e=7);var n=new Date(t.valueOf());n.setDate(t.getDate()+(4-e));var a=n.getFullYear(),i=Math.round((n.getTime()-new Date(a,0,1).getTime())/864e5),s=1+Math.floor(i/7);return s},getUTCISOWeek:function(t){return this.getISOWeek(t)},convert_to_utc:function(t){return new Date(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),t.getUTCHours(),t.getUTCMinutes(),t.getUTCSeconds());
290
+ },parseDate:function(t,e){return"string"==typeof t&&(dhtmlx.defined(e)&&(e="string"==typeof e?dhtmlx.defined(gantt.templates[e])?gantt.templates[e]:gantt.date.str_to_date(e):gantt.templates.xml_date),t=t?e(t):null),t}},gantt.date.quarter_start=function(t){gantt.date.month_start(t);var e,n=t.getMonth();return e=n>=9?9:n>=6?6:n>=3?3:0,t.setMonth(e),t},gantt.date.add_quarter=function(t,e){return gantt.date.add(t,3*e,"month")},gantt.config||(gantt.config={}),gantt.config||(gantt.config={}),gantt.templates||(gantt.templates={}),
291
+ function(){dhtmlx.mixin(gantt.config,{links:{finish_to_start:"0",start_to_start:"1",finish_to_finish:"2",start_to_finish:"3"},types:{task:"task",project:"project",milestone:"milestone"},duration_unit:"day",work_time:!1,correct_work_time:!1,skip_off_time:!1,autosize:!1,autosize_min_width:0,show_links:!0,show_task_cells:!0,static_background:!1,branch_loading:!1,show_loading:!1,show_chart:!0,show_grid:!0,min_duration:36e5,xml_date:"%d-%m-%Y %H:%i",api_date:"%d-%m-%Y %H:%i",start_on_monday:!0,server_utc:!1,
292
+ show_progress:!0,fit_tasks:!1,select_task:!0,scroll_on_click:!0,preserve_scroll:!0,readonly:!1,date_grid:"%Y-%m-%d",drag_links:!0,drag_progress:!0,drag_resize:!0,drag_move:!0,drag_mode:{resize:"resize",progress:"progress",move:"move",ignore:"ignore"},round_dnd_dates:!0,link_wrapper_width:20,root_id:0,autofit:!1,columns:[{name:"text",tree:!0,width:"*",resize:!0},{name:"start_date",align:"center",resize:!0},{name:"duration",align:"center"},{name:"add",width:"44"}],step:1,scale_unit:"day",scale_offset_minimal:!0,
293
+ subscales:[],inherit_scale_class:!1,time_step:60,duration_step:1,date_scale:"%d %M",task_date:"%d %F %Y",time_picker:"%H:%i",task_attribute:"task_id",link_attribute:"link_id",layer_attribute:"data-layer",buttons_left:["gantt_save_btn","gantt_cancel_btn"],_migrate_buttons:{dhx_save_btn:"gantt_save_btn",dhx_cancel_btn:"gantt_cancel_btn",dhx_delete_btn:"gantt_delete_btn"},buttons_right:["gantt_delete_btn"],lightbox:{sections:[{name:"description",height:70,map_to:"text",type:"textarea",focus:!0},{name:"time",
294
+ type:"duration",map_to:"auto"}],project_sections:[{name:"description",height:70,map_to:"text",type:"textarea",focus:!0},{name:"type",type:"typeselect",map_to:"type"},{name:"time",type:"duration",readonly:!0,map_to:"auto"}],milestone_sections:[{name:"description",height:70,map_to:"text",type:"textarea",focus:!0},{name:"type",type:"typeselect",map_to:"type"},{name:"time",type:"duration",single_date:!0,map_to:"auto"}]},drag_lightbox:!0,sort:!1,details_on_create:!0,details_on_dblclick:!0,initial_scroll:!0,
295
+ task_scroll_offset:100,order_branch:!1,order_branch_free:!1,task_height:"full",min_column_width:70,min_grid_column_width:70,grid_resizer_column_attribute:"column_index",grid_resizer_attribute:"grid_resizer",keep_grid_width:!1,grid_resize:!1,show_unscheduled:!0,readonly_property:"readonly",editable_property:"editable",type_renderers:{},open_tree_initially:!1,optimize_render:"auto",prevent_default_scroll:!1,show_errors:!0}),gantt.keys={edit_save:13,edit_cancel:27},gantt._init_template=function(t,e,n){
296
+ var a=this._reg_templates||{};n=n||t,this.config[t]&&a[n]!=this.config[t]&&(e&&this.templates[n]||(this.templates[n]=this.date.date_to_str(this.config[t]),a[n]=this.config[t])),this._reg_templates=a},gantt._init_templates=function(){var t=gantt.locale.labels;t.gantt_save_btn=t.icon_save,t.gantt_cancel_btn=t.icon_cancel,t.gantt_delete_btn=t.icon_delete;var e=this.date.date_to_str,n=this.config;gantt._init_template("date_scale",!0),gantt._init_template("date_grid",!0,"grid_date_format"),gantt._init_template("task_date",!0),
297
+ dhtmlx.mixin(this.templates,{xml_date:this.date.str_to_date(n.xml_date,n.server_utc),xml_format:e(n.xml_date,n.server_utc),api_date:this.date.str_to_date(n.api_date),progress_text:function(t,e,n){return""},grid_header_class:function(t,e){return""},task_text:function(t,e,n){return n.text},task_class:function(t,e,n){return""},grid_row_class:function(t,e,n){return""},task_row_class:function(t,e,n){return""},task_cell_class:function(t,e){return""},scale_cell_class:function(t){return""},scale_row_class:function(t){
298
+ return""},grid_indent:function(t){return"<div class='gantt_tree_indent'></div>"},grid_folder:function(t){return"<div class='gantt_tree_icon gantt_folder_"+(t.$open?"open":"closed")+"'></div>"},grid_file:function(t){return"<div class='gantt_tree_icon gantt_file'></div>"},grid_open:function(t){return"<div class='gantt_tree_icon gantt_"+(t.$open?"close":"open")+"'></div>"},grid_blank:function(t){return"<div class='gantt_tree_icon gantt_blank'></div>"},date_grid:function(t,e){return e&&gantt.isUnscheduledTask(e)&&gantt.config.show_unscheduled?gantt.templates.task_unscheduled_time(e):gantt.templates.grid_date_format(t);
299
+ },task_time:function(t,e,n){return gantt.isUnscheduledTask(n)&&gantt.config.show_unscheduled?gantt.templates.task_unscheduled_time(n):gantt.templates.task_date(t)+" - "+gantt.templates.task_date(e)},task_unscheduled_time:function(t){return""},time_picker:e(n.time_picker),link_class:function(t){return""},link_description:function(t){var e=gantt.getTask(t.source),n=gantt.getTask(t.target);return"<b>"+e.text+"</b> &ndash; <b>"+n.text+"</b>"},drag_link:function(t,e,n,a){t=gantt.getTask(t);var i=gantt.locale.labels,s="<b>"+t.text+"</b> "+(e?i.link_start:i.link_end)+"<br/>";
300
+ return n&&(n=gantt.getTask(n),s+="<b> "+n.text+"</b> "+(a?i.link_start:i.link_end)+"<br/>"),s},drag_link_class:function(t,e,n,a){var i="";if(t&&n){var s=gantt.isLinkAllowed(t,n,e,a);i=" "+(s?"gantt_link_allow":"gantt_link_deny")}return"gantt_link_tooltip"+i}}),this.callEvent("onTemplatesReady",[])}}(),window.jQuery&&!function(t){var e=[];t.fn.dhx_gantt=function(n){if(n=n||{},"string"!=typeof n){var a=[];return this.each(function(){if(this&&this.getAttribute&&!this.getAttribute("dhxgantt")){for(var t in n)"data"!=t&&(gantt.config[t]=n[t]);
301
+ gantt.init(this),n.data&&gantt.parse(n.data),a.push(gantt)}}),1===a.length?a[0]:a}return e[n]?e[n].apply(this,[]):void t.error("Method "+n+" does not exist on jQuery.dhx_gantt")}}(jQuery),window.dhtmlx&&(dhtmlx.attaches||(dhtmlx.attaches={}),dhtmlx.attaches.attachGantt=function(t,e){var n=document.createElement("DIV");n.id="gantt_"+dhtmlx.uid(),n.style.width="100%",n.style.height="100%",n.cmp="grid",document.body.appendChild(n),this.attachObject(n.id);var a=this.vs[this.av];a.grid=gantt,gantt.init(n.id,t,e),
302
+ n.firstChild.style.border="none",a.gridId=n.id,a.gridObj=n;var i="_viewRestore";return this.vs[this[i]()].grid}),gantt.locale={date:{month_full:["January","February","March","April","May","June","July","August","September","October","November","December"],month_short:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],day_full:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],day_short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},labels:{new_task:"New task",
303
+ icon_save:"Save",icon_cancel:"Cancel",icon_details:"Details",icon_edit:"Edit",icon_delete:"Delete",confirm_closing:"",confirm_deleting:"Task will be deleted permanently, are you sure?",section_description:"Description",section_time:"Time period",section_type:"Type",column_text:"Task name",column_start_date:"Start time",column_duration:"Duration",column_add:"",link:"Link",confirm_link_deleting:"will be deleted",link_start:" (start)",link_end:" (end)",type_task:"Task",type_project:"Project",type_milestone:"Milestone",
304
+ minutes:"Minutes",hours:"Hours",days:"Days",weeks:"Week",months:"Months",years:"Years"}},gantt.skins.skyblue={config:{grid_width:350,row_height:27,scale_height:27,link_line_width:1,link_arrow_size:8,lightbox_additional_height:75},_second_column_width:95,_third_column_width:80},gantt.skins.meadow={config:{grid_width:350,row_height:27,scale_height:30,link_line_width:2,link_arrow_size:6,lightbox_additional_height:72},_second_column_width:95,_third_column_width:80},gantt.skins.terrace={config:{grid_width:360,
305
+ row_height:35,scale_height:35,link_line_width:2,link_arrow_size:6,lightbox_additional_height:75},_second_column_width:90,_third_column_width:70},gantt.skins.broadway={config:{grid_width:360,row_height:35,scale_height:35,link_line_width:1,link_arrow_size:7,lightbox_additional_height:86},_second_column_width:90,_third_column_width:80,_lightbox_template:"<div class='gantt_cal_ltitle'><span class='gantt_mark'>&nbsp;</span><span class='gantt_time'></span><span class='gantt_title'></span><div class='gantt_cancel_btn'></div></div><div class='gantt_cal_larea'></div>",
306
+ _config_buttons_left:{},_config_buttons_right:{gantt_delete_btn:"icon_delete",gantt_save_btn:"icon_save"}},gantt.config.touch_drag=500,gantt.config.touch=!0,gantt.config.touch_feedback=!0,gantt._touch_feedback=function(){gantt.config.touch_feedback&&navigator.vibrate&&navigator.vibrate(1)},gantt._init_touch_events=function(){"force"!=this.config.touch&&(this.config.touch=this.config.touch&&(-1!=navigator.userAgent.indexOf("Mobile")||-1!=navigator.userAgent.indexOf("iPad")||-1!=navigator.userAgent.indexOf("Android")||-1!=navigator.userAgent.indexOf("Touch"))),
307
+ this.config.touch&&(window.navigator.msPointerEnabled?this._touch_events(["MSPointerMove","MSPointerDown","MSPointerUp"],function(t){return t.pointerType==t.MSPOINTER_TYPE_MOUSE?null:t},function(t){return!t||t.pointerType==t.MSPOINTER_TYPE_MOUSE}):this._touch_events(["touchmove","touchstart","touchend"],function(t){return t.touches&&t.touches.length>1?null:t.touches[0]?{target:t.target,pageX:t.touches[0].pageX,pageY:t.touches[0].pageY,clientX:t.touches[0].clientX,clientY:t.touches[0].clientY}:t},function(){
308
+ return!1}))},gantt._touch_events=function(t,e,n){function a(t){return t&&t.preventDefault&&t.preventDefault(),(t||event).cancelBubble=!0,!1}function i(t){var e=gantt._task_area_pulls,n=gantt.getTask(t);if(n&&gantt.isTaskVisible(t))for(var a in e)if(n=e[a][t],n&&n.getAttribute("task_id")&&n.getAttribute("task_id")==t){var i=n.cloneNode(!0);return h=n,e[a][t]=i,n.style.display="none",i.className+=" gantt_drag_move ",n.parentNode.appendChild(i),i}}var s,r=0,o=!1,d=!1,l=null,_=null,h=null;this._gantt_touch_event_ready||(this._gantt_touch_event_ready=1,
309
+ dhtmlxEvent(gantt.$container,t[0],function(t){if(!n(t)&&o){_&&clearTimeout(_);var i=e(t);if(gantt._tasks_dnd.drag.id||gantt._tasks_dnd.drag.start_drag)return gantt._tasks_dnd.on_mouse_move(i),t.preventDefault&&t.preventDefault(),t.cancelBubble=!0,!1;if(i&&l){var h=l.pageX-i.pageX,c=l.pageY-i.pageY;if(!d&&(Math.abs(h)>5||Math.abs(c)>5)&&(gantt._touch_scroll_active=d=!0,r=0,s=gantt.getScrollState()),d){gantt.scrollTo(s.x+h,s.y+c);var g=gantt.getScrollState();if(s.x!=g.x&&c>2*h||s.y!=g.y&&h>2*c)return a(t);
310
+ }}return a(t)}})),dhtmlxEvent(this.$container,"contextmenu",function(t){return o?a(t):void 0}),dhtmlxEvent(this.$container,t[1],function(t){if(!n(t)){if(t.touches&&t.touches.length>1)return void(o=!1);if(o=!0,l=e(t),l&&r){var s=new Date;500>s-r?(gantt._on_dblclick(l),a(t)):r=s}else r=new Date;_=setTimeout(function(){var t=gantt.locate(l);!t||gantt._locate_css(l,"gantt_link_control")||gantt._locate_css(l,"gantt_grid_data")||(gantt._tasks_dnd.on_mouse_down(l),gantt._tasks_dnd.drag&&gantt._tasks_dnd.drag.start_drag&&(i(t),
311
+ gantt._tasks_dnd._start_dnd(l),gantt._touch_drag=!0,gantt.refreshTask(t),gantt._touch_feedback())),_=null},gantt.config.touch_drag)}}),dhtmlxEvent(this.$container,t[2],function(t){if(!n(t)){_&&clearTimeout(_),gantt._touch_drag=!1,o=!1;var a=e(t);gantt._tasks_dnd.on_mouse_up(a),h&&(gantt.refreshTask(gantt.locate(h)),h.parentNode&&(h.parentNode.removeChild(h),gantt._touch_feedback())),gantt._touch_scroll_active=o=d=!1,h=null}})};
312
+ //# sourceMappingURL=sources/dhtmlxgantt.js.map
@@ -0,0 +1,14 @@
1
+ /*
2
+ @license
3
+
4
+ dhtmlxGantt v.3.3.0 Stardard
5
+ This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
6
+
7
+ (c) Dinamenta, UAB.
8
+ */
9
+ gantt.date.date_to_str=function(e,t){return function(a){return e.replace(/%[a-zA-Z]/g,function(e){switch(e){case"%d":return t?gantt.date.to_fixed(a.getUTCDate()):gantt.date.to_fixed(a.getDate());case"%m":return t?gantt.date.to_fixed(a.getUTCMonth()+1):gantt.date.to_fixed(a.getMonth()+1);case"%j":return t?a.getUTCDate():a.getDate();case"%n":return t?a.getUTCMonth()+1:a.getMonth()+1;case"%y":return t?gantt.date.to_fixed(a.getUTCFullYear()%100):gantt.date.to_fixed(a.getFullYear()%100);case"%Y":return t?a.getUTCFullYear():a.getFullYear();
10
+ case"%D":return t?gantt.locale.date.day_short[a.getUTCDay()]:gantt.locale.date.day_short[a.getDay()];case"%l":return t?gantt.locale.date.day_full[a.getUTCDay()]:gantt.locale.date.day_full[a.getDay()];case"%M":return t?gantt.locale.date.month_short[a.getUTCMonth()]:gantt.locale.date.month_short[a.getMonth()];case"%F":return t?gantt.locale.date.month_full[a.getUTCMonth()]:gantt.locale.date.month_full[a.getMonth()];case"%h":return t?gantt.date.to_fixed((a.getUTCHours()+11)%12+1):gantt.date.to_fixed((a.getHours()+11)%12+1);
11
+ case"%g":return t?(a.getUTCHours()+11)%12+1:(a.getHours()+11)%12+1;case"%G":return t?a.getUTCHours():a.getHours();case"%H":return t?gantt.date.to_fixed(a.getUTCHours()):gantt.date.to_fixed(a.getHours());case"%i":return t?gantt.date.to_fixed(a.getUTCMinutes()):gantt.date.to_fixed(a.getMinutes());case"%a":return t?a.getUTCHours()>11?"pm":"am":a.getHours()>11?"pm":"am";case"%A":return t?a.getUTCHours()>11?"PM":"AM":a.getHours()>11?"PM":"AM";case"%s":return t?gantt.date.to_fixed(a.getUTCSeconds()):gantt.date.to_fixed(a.getSeconds());
12
+ case"%W":return t?gantt.date.to_fixed(gantt.date.getUTCISOWeek(a)):gantt.date.to_fixed(gantt.date.getISOWeek(a));default:return e}})}},gantt.date.str_to_date=function(e,t){return function(a){for(var n=[0,0,1,0,0,0],o=a.match(/[a-zA-Z]+|[0-9]+/g),s=e.match(/%[a-zA-Z]/g),r=0;r<s.length;r++)switch(s[r]){case"%j":case"%d":n[2]=o[r]||1;break;case"%n":case"%m":n[1]=(o[r]||1)-1;break;case"%y":n[0]=1*o[r]+(o[r]>50?1900:2e3);break;case"%g":case"%G":case"%h":case"%H":n[3]=o[r]||0;break;case"%i":n[4]=o[r]||0;
13
+ break;case"%Y":n[0]=o[r]||0;break;case"%a":case"%A":n[3]=n[3]%12+("am"==(o[r]||"").toLowerCase()?0:12);break;case"%s":n[5]=o[r]||0;break;case"%M":n[1]=gantt.locale.date.month_short_hash[o[r]]||0;break;case"%F":n[1]=gantt.locale.date.month_full_hash[o[r]]||0}return t?new Date(Date.UTC(n[0],n[1],n[2],n[3],n[4],n[5])):new Date(n[0],n[1],n[2],n[3],n[4],n[5])}};
14
+ //# sourceMappingURL=../sources/ext/dhtmlxgantt_csp.js.map
@@ -0,0 +1,14 @@
1
+ /*
2
+ @license
3
+
4
+ dhtmlxGantt v.3.3.0 Stardard
5
+ This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
6
+
7
+ (c) Dinamenta, UAB.
8
+ */
9
+ gantt._onFullScreenChange=function(){!gantt.getState().fullscreen||null!==document.fullscreenElement&&null!==document.mozFullScreenElement&&null!==document.webkitFullscreenElement&&null!==document.msFullscreenElement||gantt.collapse()},document.addEventListener&&(document.addEventListener("webkitfullscreenchange",gantt._onFullScreenChange),document.addEventListener("mozfullscreenchange",gantt._onFullScreenChange),document.addEventListener("MSFullscreenChange",gantt._onFullScreenChange),document.addEventListener("fullscreenChange",gantt._onFullScreenChange),
10
+ document.addEventListener("fullscreenchange",gantt._onFullScreenChange)),gantt.expand=function(){if(gantt.callEvent("onBeforeExpand",[])){gantt._toggleFullScreen(!0);var e=gantt._obj;do e._position=e.style.position||"",e.style.position="static";while((e=e.parentNode)&&e.style);e=gantt._obj,e.style.position="absolute",e._width=e.style.width,e._height=e.style.height,e.style.width=e.style.height="100%",e.style.top=e.style.left="0px";var t=document.body;t.scrollTop=0,t=t.parentNode,t&&(t.scrollTop=0),
11
+ document.body._overflow=document.body.style.overflow||"",document.body.style.overflow="hidden",document.documentElement.msRequestFullscreen&&gantt._obj&&window.setTimeout(function(){gantt._obj.style.width=window.outerWidth+"px"},1),gantt._maximize(),gantt.callEvent("onExpand",[])}},gantt.collapse=function(){if(gantt.callEvent("onBeforeCollapse",[])){var e=gantt._obj;do e.style.position=e._position;while((e=e.parentNode)&&e.style);e=gantt._obj,e.style.width=e._width,e.style.height=e._height,document.body.style.overflow=document.body._overflow,
12
+ gantt._toggleFullScreen(!1),gantt._maximize(),gantt.callEvent("onCollapse",[])}},function(){var e=gantt.getState;gantt.getState=function(){var t=e.apply(this,arguments);return t.fullscreen=!!this._expanded,t}}(),gantt._maximize=function(){this._expanded=!this._expanded,this.render()},gantt._toggleFullScreen=function(e){!e&&(document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement)?document.exitFullscreen?document.exitFullscreen():document.msExitFullscreen?document.msExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen&&document.webkitExitFullscreen():document.documentElement.requestFullscreen?document.documentElement.requestFullscreen():document.documentElement.msRequestFullscreen?document.documentElement.msRequestFullscreen():document.documentElement.mozRequestFullScreen?document.documentElement.mozRequestFullScreen():document.documentElement.webkitRequestFullscreen&&document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
13
+ };
14
+ //# sourceMappingURL=../sources/ext/dhtmlxgantt_fullscreen.js.map
@@ -0,0 +1,13 @@
1
+ /*
2
+ @license
3
+
4
+ dhtmlxGantt v.3.3.0 Stardard
5
+ This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
6
+
7
+ (c) Dinamenta, UAB.
8
+ */
9
+ gantt._markers||(gantt._markers={}),gantt.config.show_markers=!0,gantt.attachEvent("onClear",function(){gantt._markers={}}),gantt.attachEvent("onGanttReady",function(){function t(t){if(!gantt.config.show_markers)return!1;if(!t.start_date)return!1;var e=gantt.getState();if(!(+t.start_date>+e.max_date||+t.end_date&&+t.end_date<+e.min_date||+t.start_date<+e.min_date)){var n=document.createElement("div");n.setAttribute("marker_id",t.id);var a="gantt_marker";gantt.templates.marker_class&&(a+=" "+gantt.templates.marker_class(t)),
10
+ t.css&&(a+=" "+t.css),t.title&&(n.title=t.title),n.className=a;var i=gantt.posFromDate(t.start_date);if(n.style.left=i+"px",n.style.height=Math.max(gantt._y_from_ind(gantt._order.length),0)+"px",t.end_date){var s=gantt.posFromDate(t.end_date);n.style.width=Math.max(s-i,0)+"px"}return t.text&&(n.innerHTML="<div class='gantt_marker_content' >"+t.text+"</div>"),n}}var e=document.createElement("div");e.className="gantt_marker_area",gantt.$task_data.appendChild(e),gantt.$marker_area=e,gantt._markerRenderer=gantt._task_renderer("markers",t,gantt.$marker_area,null);
11
+ }),gantt.attachEvent("onDataRender",function(){gantt.renderMarkers()}),gantt.getMarker=function(t){return this._markers?this._markers[t]:null},gantt.addMarker=function(t){return t.id=t.id||dhtmlx.uid(),this._markers[t.id]=t,t.id},gantt.deleteMarker=function(t){return this._markers&&this._markers[t]?(delete this._markers[t],!0):!1},gantt.updateMarker=function(t){this._markerRenderer&&this._markerRenderer.render_item(t)},gantt.renderMarkers=function(){if(!this._markers)return!1;if(!this._markerRenderer)return!1;
12
+ var t=[];for(var e in this._markers)t.push(this._markers[e]);return this._markerRenderer.render_items(t),!0};
13
+ //# sourceMappingURL=../sources/ext/dhtmlxgantt_marker.js.map
@@ -0,0 +1,17 @@
1
+ /*
2
+ @license
3
+
4
+ dhtmlxGantt v.3.3.0 Stardard
5
+ This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
6
+
7
+ (c) Dinamenta, UAB.
8
+ */
9
+ gantt.config.multiselect=!0,gantt.config.multiselect_one_level=!1,gantt._multiselect={selected:{},one_level:!0,active:!0,isActive:function(){return this.update_state(),this.active},update_state:function(){this.one_level=gantt.config.multiselect_one_level;var t=this.active;this.active=gantt.config.multiselect,this.active!=t&&this.reset()},reset:function(){this.selected={}},set_last_selected:function(t){this.last_selected=t},getLastSelected:function(){var t=this.last_selected;return t&&gantt.isTaskExists(t)?t:null;
10
+ },select:function(t,e){gantt.callEvent("onBeforeTaskMultiSelect",[t,!0,e])&&(this.selected[t]=!0,this.set_last_selected(t),gantt.callEvent("onTaskMultiSelect",[t,!0,e]))},toggle:function(t,e){this.selected[t]?this.unselect(t,e):this.select(t,e)},unselect:function(t,e){gantt.callEvent("onBeforeTaskMultiSelect",[t,!1,e])&&(this.selected[t]=!1,this.last_selected==t&&(this.last_selected=null),gantt.callEvent("onTaskMultiSelect",[t,!0,e]))},isSelected:function(t){return!(!gantt.isTaskExists(t)||!this.selected[t]);
11
+ },getSelected:function(){var t=[];for(var e in this.selected)this.selected[e]&&gantt.isTaskExists(e)?t.push(e):this.selected[e]=!1;return t.sort(function(t,e){return gantt.calculateTaskLevel(gantt.getTask(t))>gantt.calculateTaskLevel(gantt.getTask(e))?1:-1}),t},forSelected:function(t){for(var e=this.getSelected(),n=0;n<e.length;n++)t(e[n])},is_same_level:function(t){if(!this.one_level)return!0;var e=this.getLastSelected();return e&&gantt.isTaskExists(e)&&gantt.isTaskExists(t)?!(gantt.calculateTaskLevel(gantt.getTask(e))!=gantt.calculateTaskLevel(gantt.getTask(t))):!0;
12
+ },_after_select:function(t){gantt.refreshTask(t)},_do_selection:function(t){if(!this.isActive())return!0;var e=gantt.locate(t),n=this.getSelected();if(!e)return!0;if(!gantt.callEvent("onBeforeMultiSelect",[t]))return!0;if(t.ctrlKey)e&&(this.toggle(e,t),this._after_select(e));else if(t.shiftKey&&n.length){var a=this.getLastSelected();if(a||(a=n[n.length-1]),e&&a!=e){for(var i=gantt.getGlobalTaskIndex(a),s=gantt.getGlobalTaskIndex(e),r=e;gantt.getGlobalTaskIndex(r)!=i;)this.select(r),this._after_select(r),
13
+ r=i>s?gantt.getNext(r):gantt.getPrev(r);this.forSelected(dhtmlx.bind(function(t){var e=gantt.getGlobalTaskIndex(t);(e>i&&e>s||i>e&&s>e)&&(this.unselect(t),gantt.refreshTask(t))},this))}}else this.forSelected(dhtmlx.bind(function(t){t!=e&&(this.unselect(t),gantt.refreshTask(t))},this)),this.isSelected(e)||(this.select(e),this._after_select(e));return this.isSelected(e)?!0:!1}},function(){var t=gantt.selectTask;gantt.selectTask=function(e){var n=t.call(this,e);return this.config.multiselect&&this._multiselect.select(e),
14
+ n};var e=gantt.unselectTask;gantt.unselectTask=function(t){void 0!=t&&this.config.multiselect&&this._multiselect.unselect(t);var n=e.call(this,t);return n},gantt.toggleTaskSelection=function(t){this.config.multiselect&&this._multiselect.toggle(t)},gantt.getSelectedTasks=function(){return this._multiselect.getSelected()},gantt.eachSelectedTask=function(t){return this._multiselect.forSelected(t)},gantt.isSelectedTask=function(t){return this._multiselect.isSelected(t)},gantt.getLastSelectedTask=function(){
15
+ return this._multiselect.getLastSelected()}}(),gantt.attachEvent("onTaskIdChange",function(t,e){var n=gantt._multiselect;return n.isActive()?void(gantt.isSelectedTask(t)&&(n.unselect(t,null),n.select(e,null),gantt.refreshTask(e))):!0}),gantt.attachEvent("onAfterTaskDelete",function(t,e){var n=gantt._multiselect;return n.isActive()?(n.selected[t]&&n.unselect(t,null),void n.forSelected(function(t){gantt.isTaskExists(t)||n.unselect(t,null)})):!0}),gantt.attachEvent("onBeforeTaskMultiSelect",function(t,e,n){
16
+ var a=gantt._multiselect;return e&&a.isActive()?a.is_same_level(t):!0}),gantt.attachEvent("onTaskClick",function(t,e){var n=gantt._multiselect._do_selection(e);return gantt.callEvent("onMultiSelect",[e]),n}),gantt.attachEvent("onEmptyClick",function(t){return gantt._multiselect._do_selection(t),gantt.callEvent("onMultiSelect",[t]),!0});
17
+ //# sourceMappingURL=../sources/ext/dhtmlxgantt_multiselect.js.map
@@ -0,0 +1,18 @@
1
+ /*
2
+ @license
3
+
4
+ dhtmlxGantt v.3.3.0 Stardard
5
+ This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
6
+
7
+ (c) Dinamenta, UAB.
8
+ */
9
+ gantt.config.quickinfo_buttons=["icon_delete","icon_edit"],gantt.config.quick_info_detached=!0,gantt.config.show_quick_info=!0,gantt.attachEvent("onTaskClick",function(t){return gantt.showQuickInfo(t),!0}),function(){for(var t=["onEmptyClick","onViewChange","onLightbox","onBeforeTaskDelete","onBeforeDrag"],e=function(){return gantt._hideQuickInfo(),!0},n=0;n<t.length;n++)gantt.attachEvent(t[n],e)}(),gantt.templates.quick_info_title=function(t,e,n){return n.text.substr(0,50)},gantt.templates.quick_info_content=function(t,e,n){
10
+ return n.details||n.text},gantt.templates.quick_info_date=function(t,e,n){return gantt.templates.task_time(t,e,n)},gantt.templates.quick_info_class=function(t,e,n){return""},gantt.showQuickInfo=function(t){if(t!=this._quick_info_box_id&&this.config.show_quick_info){this.hideQuickInfo(!0);var e=this._get_event_counter_part(t);e&&(this._quick_info_box=this._init_quick_info(e,t),this._quick_info_box.className=gantt._prepare_quick_info_classname(t),this._fill_quick_data(t),this._show_quick_info(e))}},
11
+ gantt._hideQuickInfo=function(){gantt.hideQuickInfo()},gantt.hideQuickInfo=function(t){var e=this._quick_info_box;if(this._quick_info_box_id=0,e&&e.parentNode){if(gantt.config.quick_info_detached)return e.parentNode.removeChild(e);e.className+=" gantt_qi_hidden","auto"==e.style.right?e.style.left="-350px":e.style.right="-350px",t&&e.parentNode.removeChild(e)}},dhtmlxEvent(window,"keydown",function(t){27==t.keyCode&&gantt.hideQuickInfo()}),gantt._show_quick_info=function(t){var e=gantt._quick_info_box;
12
+ if(gantt.config.quick_info_detached){e.parentNode&&"#document-fragment"!=e.parentNode.nodeName.toLowerCase()||gantt.$task_data.appendChild(e);var n=e.offsetWidth,a=e.offsetHeight,i=this.getScrollState(),s=this.$task.offsetWidth+i.x-n;e.style.left=Math.min(Math.max(i.x,t.left-t.dx*(n-t.width)),s)+"px",e.style.top=t.top-(t.dy?a:-t.height)-25+"px"}else e.style.top="20px",1==t.dx?(e.style.right="auto",e.style.left="-300px",setTimeout(function(){e.style.left="-10px"},1)):(e.style.left="auto",e.style.right="-300px",
13
+ setTimeout(function(){e.style.right="-10px"},1)),e.className+=" gantt_qi_"+(1==t.dx?"left":"right"),gantt._obj.appendChild(e)},gantt._prepare_quick_info_classname=function(t){var e=gantt.getTask(t),n="gantt_cal_quick_info",a=this.templates.quick_info_class(e.start_date,e.end_date,e);return a&&(n+=" "+a),n},gantt._init_quick_info=function(t,e){var n=gantt.getTask(e);if("boolean"==typeof this._quick_info_readonly&&this._is_readonly(n)!==this._quick_info_readonly&&(gantt.hideQuickInfo(!0),this._quick_info_box=null),
14
+ this._quick_info_readonly=this._is_readonly(n),!this._quick_info_box){var a=this._quick_info_box=document.createElement("div"),i='<div class="gantt_cal_qi_title"><div class="gantt_cal_qi_tcontent"></div><div class="gantt_cal_qi_tdate"></div></div><div class="gantt_cal_qi_content"></div>';i+='<div class="gantt_cal_qi_controls">';for(var s=gantt.config.quickinfo_buttons,r={icon_delete:!0,icon_edit:!0},o=0;o<s.length;o++)this._quick_info_readonly&&r[s[o]]||(i+='<div class="gantt_qi_big_icon '+s[o]+'" title="'+gantt.locale.labels[s[o]]+"\"><div class='gantt_menu_icon "+s[o]+"'></div><div>"+gantt.locale.labels[s[o]]+"</div></div>");
15
+ i+="</div>",a.innerHTML=i,dhtmlxEvent(a,"click",function(t){t=t||event,gantt._qi_button_click(t.target||t.srcElement)}),gantt.config.quick_info_detached&&dhtmlxEvent(gantt.$task_data,"scroll",function(){gantt.hideQuickInfo()})}return this._quick_info_box},gantt._qi_button_click=function(t){var e=gantt._quick_info_box;if(t&&t!=e){var n=t.className;if(-1!=n.indexOf("_icon")){var a=gantt._quick_info_box_id;gantt.$click.buttons[n.split(" ")[1].replace("icon_","")](a)}else gantt._qi_button_click(t.parentNode);
16
+ }},gantt._get_event_counter_part=function(t){for(var e=gantt.getTaskNode(t),n=0,a=0,i=e;i&&"gantt_task"!=i.className;)n+=i.offsetLeft,a+=i.offsetTop,i=i.offsetParent;var s=this.getScrollState();if(i){var r=n+e.offsetWidth/2-s.x>gantt._x/2?1:0,o=a+e.offsetHeight/2-s.y>gantt._y/2?1:0;return{left:n,top:a,dx:r,dy:o,width:e.offsetWidth,height:e.offsetHeight}}return 0},gantt._fill_quick_data=function(t){var e=gantt.getTask(t),n=gantt._quick_info_box;gantt._quick_info_box_id=t;var a=n.firstChild.firstChild;
17
+ a.innerHTML=gantt.templates.quick_info_title(e.start_date,e.end_date,e);var i=a.nextSibling;i.innerHTML=gantt.templates.quick_info_date(e.start_date,e.end_date,e);var s=n.firstChild.nextSibling;s.innerHTML=gantt.templates.quick_info_content(e.start_date,e.end_date,e)};
18
+ //# sourceMappingURL=../sources/ext/dhtmlxgantt_quick_info.js.map
@@ -0,0 +1,15 @@
1
+ /*
2
+ @license
3
+
4
+ dhtmlxGantt v.3.3.0 Stardard
5
+ This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
6
+
7
+ (c) Dinamenta, UAB.
8
+ */
9
+ gantt._tooltip={},gantt._tooltip_class="gantt_tooltip",gantt.config.tooltip_timeout=30,gantt.config.tooltip_offset_y=20,gantt.config.tooltip_offset_x=10,gantt._create_tooltip=function(){return this._tooltip_html||(this._tooltip_html=document.createElement("div"),this._tooltip_html.className=gantt._tooltip_class),this._tooltip_html},gantt._is_cursor_under_tooltip=function(t,e){return t.x>=e.pos.x&&t.x<=e.pos.x+e.width?!0:t.y>=e.pos.y&&t.y<=e.pos.y+e.height?!0:!1},gantt._show_tooltip=function(t,e){
10
+ if(!gantt.config.touch||gantt.config.touch_tooltip){var n=this._create_tooltip();n.innerHTML=t,gantt.$task_data.appendChild(n);var a=n.offsetWidth+20,i=n.offsetHeight+40,s=this.$task.offsetHeight,r=this.$task.offsetWidth,o=this.getScrollState();e.y+=o.y;var l={x:e.x,y:e.y};e.x+=1*gantt.config.tooltip_offset_x||0,e.y+=1*gantt.config.tooltip_offset_y||0,e.y=Math.min(Math.max(o.y,e.y),o.y+s-i),e.x=Math.min(Math.max(o.x,e.x),o.x+r-a),gantt._is_cursor_under_tooltip(l,{pos:e,width:a,height:i})&&(l.x+a>r+o.x&&(e.x=l.x-(a-20)-(1*gantt.config.tooltip_offset_x||0)),
11
+ l.y+i>s+o.y&&(e.y=l.y-(i-40)-(1*gantt.config.tooltip_offset_y||0))),n.style.left=e.x+"px",n.style.top=e.y+"px"}},gantt._hide_tooltip=function(){this._tooltip_html&&this._tooltip_html.parentNode&&this._tooltip_html.parentNode.removeChild(this._tooltip_html),this._tooltip_id=0},gantt._is_tooltip=function(t){var e=t.target||t.srcElement;return gantt._is_node_child(e,function(t){return t.className==this._tooltip_class})},gantt._is_task_line=function(t){var e=t.target||t.srcElement;return gantt._is_node_child(e,function(t){
12
+ return t==this.$task_data})},gantt._is_node_child=function(t,e){for(var n=!1;t&&!n;)n=e.call(gantt,t),t=t.parentNode;return n},gantt._tooltip_pos=function(t){if(t.pageX||t.pageY)var e={x:t.pageX,y:t.pageY};var n=_isIE?document.documentElement:document.body,e={x:t.clientX+n.scrollLeft-n.clientLeft,y:t.clientY+n.scrollTop-n.clientTop},a=gantt._get_position(gantt.$task_data);return e.x=e.x-a.x,e.y=e.y-a.y,e},gantt.attachEvent("onMouseMove",function(t,e){if(this.config.tooltip_timeout){document.createEventObject&&!document.createEvent&&(e=document.createEventObject(e));
13
+ var n=this.config.tooltip_timeout;this._tooltip_id&&!t&&(isNaN(this.config.tooltip_hide_timeout)||(n=this.config.tooltip_hide_timeout)),clearTimeout(gantt._tooltip_ev_timer),gantt._tooltip_ev_timer=setTimeout(function(){gantt._init_tooltip(t,e)},n)}else gantt._init_tooltip(t,e)}),gantt._init_tooltip=function(t,e){if(!this._is_tooltip(e)&&(t!=this._tooltip_id||this._is_task_line(e))){if(!t)return this._hide_tooltip();this._tooltip_id=t;var n=this.getTask(t),a=this.templates.tooltip_text(n.start_date,n.end_date,n);
14
+ return a?void this._show_tooltip(a,this._tooltip_pos(e)):void this._hide_tooltip()}},gantt.attachEvent("onMouseLeave",function(t){gantt._is_tooltip(t)||this._hide_tooltip()}),gantt.templates.tooltip_date_format=gantt.date.date_to_str("%Y-%m-%d"),gantt.templates.tooltip_text=function(t,e,n){return"<b>Task:</b> "+n.text+"<br/><b>Start date:</b> "+gantt.templates.tooltip_date_format(t)+"<br/><b>End date:</b> "+gantt.templates.tooltip_date_format(e)};
15
+ //# sourceMappingURL=../sources/ext/dhtmlxgantt_tooltip.js.map
@@ -0,0 +1,11 @@
1
+ /*
2
+ @license
3
+
4
+ dhtmlxGantt v.3.3.0 Stardard
5
+ This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited.
6
+
7
+ (c) Dinamenta, UAB.
8
+ */
9
+ gantt.locale={date:{month_full:["January","February","March","April","May","June","July","August","September","October","November","December"],month_short:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],day_full:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],day_short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},labels:{new_task:"New task",icon_save:"Save",icon_cancel:"Cancel",icon_details:"Details",icon_edit:"Edit",icon_delete:"Delete",confirm_closing:"",
10
+ confirm_deleting:"Task will be deleted permanently, are you sure?",section_description:"Description",section_time:"Time period",section_type:"Type",column_text:"Task name",column_start_date:"Start time",column_duration:"Duration",column_add:"",link:"Link",confirm_link_deleting:"will be deleted",link_start:" (start)",link_end:" (end)",type_task:"Task",type_project:"Project",type_milestone:"Milestone",minutes:"Minutes",hours:"Hours",days:"Days",weeks:"Week",months:"Months",years:"Years"}};
11
+ //# sourceMappingURL=../sources/locale/locale.js.map