unageanu-jiji 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (564) hide show
  1. data/ChangeLog +0 -0
  2. data/README +0 -0
  3. data/bin/jiji.rb +6 -0
  4. data/html/css/calendar.css +432 -0
  5. data/html/css/datatable.css +299 -0
  6. data/html/css/default.css +557 -0
  7. data/html/css/dialog.css +77 -0
  8. data/html/img/auto_trade_off.gif +0 -0
  9. data/html/img/auto_trade_on.gif +0 -0
  10. data/html/img/back_bottom.gif +0 -0
  11. data/html/img/back_middle.gif +0 -0
  12. data/html/img/back_top.gif +0 -0
  13. data/html/img/bt-create-title-1.gif +0 -0
  14. data/html/img/bt-create-title-2.gif +0 -0
  15. data/html/img/bt-create-title-3.gif +0 -0
  16. data/html/img/button_add.gif +0 -0
  17. data/html/img/button_add_gray.gif +0 -0
  18. data/html/img/button_add_over.gif +0 -0
  19. data/html/img/button_apply.gif +0 -0
  20. data/html/img/button_apply_gray.gif +0 -0
  21. data/html/img/button_apply_over.gif +0 -0
  22. data/html/img/button_calendar.gif +0 -0
  23. data/html/img/button_calendar_over.gif +0 -0
  24. data/html/img/button_cancel.gif +0 -0
  25. data/html/img/button_cancel.jpg +0 -0
  26. data/html/img/button_cancel_gray.gif +0 -0
  27. data/html/img/button_cancel_over.gif +0 -0
  28. data/html/img/button_cancel_over.jpg +0 -0
  29. data/html/img/button_close.gif +0 -0
  30. data/html/img/button_close_gray.gif +0 -0
  31. data/html/img/button_close_over.gif +0 -0
  32. data/html/img/button_ok.gif +0 -0
  33. data/html/img/button_ok_gray.gif +0 -0
  34. data/html/img/button_ok_over.gif +0 -0
  35. data/html/img/button_remove.gif +0 -0
  36. data/html/img/button_remove_gray.gif +0 -0
  37. data/html/img/button_remove_over.gif +0 -0
  38. data/html/img/button_start.gif +0 -0
  39. data/html/img/button_start_over.gif +0 -0
  40. data/html/img/button_update.gif +0 -0
  41. data/html/img/button_update_gray.gif +0 -0
  42. data/html/img/button_update_over.gif +0 -0
  43. data/html/img/circle.gif +0 -0
  44. data/html/img/delta.gif +0 -0
  45. data/html/img/dialog_info.jpg +0 -0
  46. data/html/img/dialog_input.jpg +0 -0
  47. data/html/img/dialog_warn.jpg +0 -0
  48. data/html/img/dt-arrow-dn.png +0 -0
  49. data/html/img/dt-arrow-up.png +0 -0
  50. data/html/img/foot.jpg +0 -0
  51. data/html/img/h3_bt-create_0.gif +0 -0
  52. data/html/img/h3_bt-create_1.gif +0 -0
  53. data/html/img/h3_bt-create_2.gif +0 -0
  54. data/html/img/h3_result_0.gif +0 -0
  55. data/html/img/h3_result_1.gif +0 -0
  56. data/html/img/h3_result_2.gif +0 -0
  57. data/html/img/h3_result_3.gif +0 -0
  58. data/html/img/h3_result_4.gif +0 -0
  59. data/html/img/h3_result_5.gif +0 -0
  60. data/html/img/h3_result_6.gif +0 -0
  61. data/html/img/h3_rt-setting_0.gif +0 -0
  62. data/html/img/h3_rt-setting_1.gif +0 -0
  63. data/html/img/head.jpg +0 -0
  64. data/html/img/line_white.gif +0 -0
  65. data/html/img/loading.gif +0 -0
  66. data/html/img/panel_100_bottom.gif +0 -0
  67. data/html/img/panel_100_middle.gif +0 -0
  68. data/html/img/panel_100_top.gif +0 -0
  69. data/html/img/panel_140_650_b.gif +0 -0
  70. data/html/img/panel_140_650_m.gif +0 -0
  71. data/html/img/panel_140_650_t.gif +0 -0
  72. data/html/img/panel_140_660_b.gif +0 -0
  73. data/html/img/panel_140_660_m.gif +0 -0
  74. data/html/img/panel_140_660_t.gif +0 -0
  75. data/html/img/panel_140_b.gif +0 -0
  76. data/html/img/panel_140_m.gif +0 -0
  77. data/html/img/panel_140_t.gif +0 -0
  78. data/html/img/panel_260_b.gif +0 -0
  79. data/html/img/panel_260_m.gif +0 -0
  80. data/html/img/panel_260_t.gif +0 -0
  81. data/html/img/panel_300_b.gif +0 -0
  82. data/html/img/panel_300_m.gif +0 -0
  83. data/html/img/panel_300_t.gif +0 -0
  84. data/html/img/panel_320_b.gif +0 -0
  85. data/html/img/panel_320_m.gif +0 -0
  86. data/html/img/panel_320_t.gif +0 -0
  87. data/html/img/panel_360_b.gif +0 -0
  88. data/html/img/panel_360_m.gif +0 -0
  89. data/html/img/panel_360_t.gif +0 -0
  90. data/html/img/panel_380_b.gif +0 -0
  91. data/html/img/panel_380_m.gif +0 -0
  92. data/html/img/panel_380_t.gif +0 -0
  93. data/html/img/panel_500_b.gif +0 -0
  94. data/html/img/panel_500_m.gif +0 -0
  95. data/html/img/panel_500_t.gif +0 -0
  96. data/html/img/panel_620_b.gif +0 -0
  97. data/html/img/panel_620_m.gif +0 -0
  98. data/html/img/panel_620_t.gif +0 -0
  99. data/html/img/panel_780_b.gif +0 -0
  100. data/html/img/panel_780_m.gif +0 -0
  101. data/html/img/panel_780_t.gif +0 -0
  102. data/html/img/problem.gif +0 -0
  103. data/html/img/progressbar.gif +0 -0
  104. data/html/img/result-title-1-1.gif +0 -0
  105. data/html/img/result-title-1-2.gif +0 -0
  106. data/html/img/result-title-2-1.gif +0 -0
  107. data/html/img/result-title-2-2.gif +0 -0
  108. data/html/img/result-title-3-1.gif +0 -0
  109. data/html/img/result-title-4-1.gif +0 -0
  110. data/html/img/rt-setting-title-1.gif +0 -0
  111. data/html/img/rt-setting-title-2.gif +0 -0
  112. data/html/img/s.gif +0 -0
  113. data/html/img/scroll.gif +0 -0
  114. data/html/img/separator.gif +0 -0
  115. data/html/img/sidebar_agent.png +0 -0
  116. data/html/img/sidebar_agent_edit.png +0 -0
  117. data/html/img/sidebar_agent_edit_agent.png +0 -0
  118. data/html/img/sidebar_agent_edit_agent_over.png +0 -0
  119. data/html/img/sidebar_agent_edit_agent_s.png +0 -0
  120. data/html/img/sidebar_agent_edit_over.png +0 -0
  121. data/html/img/sidebar_agent_edit_s.png +0 -0
  122. data/html/img/sidebar_agent_edit_shared_lib.png +0 -0
  123. data/html/img/sidebar_agent_edit_shared_lib_over.png +0 -0
  124. data/html/img/sidebar_agent_edit_shared_lib_s.png +0 -0
  125. data/html/img/sidebar_back.gif +0 -0
  126. data/html/img/sidebar_bt.png +0 -0
  127. data/html/img/sidebar_bt_create.png +0 -0
  128. data/html/img/sidebar_bt_create_over.png +0 -0
  129. data/html/img/sidebar_bt_create_s.png +0 -0
  130. data/html/img/sidebar_bt_result.png +0 -0
  131. data/html/img/sidebar_bt_result_over.png +0 -0
  132. data/html/img/sidebar_bt_result_s.png +0 -0
  133. data/html/img/sidebar_result_rmt.png +0 -0
  134. data/html/img/sidebar_result_rmt_over.png +0 -0
  135. data/html/img/sidebar_result_rmt_s.png +0 -0
  136. data/html/img/sidebar_rt.png +0 -0
  137. data/html/img/sidebar_rt_setting.png +0 -0
  138. data/html/img/sidebar_rt_setting_over.png +0 -0
  139. data/html/img/sidebar_rt_setting_s.png +0 -0
  140. data/html/img/sprite.png +0 -0
  141. data/html/img/submenu_agents.png +0 -0
  142. data/html/img/submenu_agents_over.png +0 -0
  143. data/html/img/submenu_agents_s.png +0 -0
  144. data/html/img/submenu_graph.png +0 -0
  145. data/html/img/submenu_graph_over.png +0 -0
  146. data/html/img/submenu_graph_s.png +0 -0
  147. data/html/img/submenu_info.png +0 -0
  148. data/html/img/submenu_info_over.png +0 -0
  149. data/html/img/submenu_info_s.png +0 -0
  150. data/html/img/submenu_log.png +0 -0
  151. data/html/img/submenu_log_over.png +0 -0
  152. data/html/img/submenu_log_s.png +0 -0
  153. data/html/img/submenu_operation.png +0 -0
  154. data/html/img/submenu_operation_over.png +0 -0
  155. data/html/img/submenu_operation_s.png +0 -0
  156. data/html/img/submenu_trade.png +0 -0
  157. data/html/img/submenu_trade_over.png +0 -0
  158. data/html/img/submenu_trade_s.png +0 -0
  159. data/html/img/td_over.gif +0 -0
  160. data/html/img/td_over_d.gif +0 -0
  161. data/html/img/td_selected.gif +0 -0
  162. data/html/img/thead.gif +0 -0
  163. data/html/img/transparent.gif +0 -0
  164. data/html/index.html +480 -0
  165. data/html/js/W3CDTF.js +131 -0
  166. data/html/js/agent-editor-page.js +350 -0
  167. data/html/js/agent-selector.js +642 -0
  168. data/html/js/app.js +226 -0
  169. data/html/js/bt-create-page.js +186 -0
  170. data/html/js/codepress/codepress.css +21 -0
  171. data/html/js/codepress/codepress.html +35 -0
  172. data/html/js/codepress/codepress.js +138 -0
  173. data/html/js/codepress/engines/gecko.js +293 -0
  174. data/html/js/codepress/engines/khtml.js +0 -0
  175. data/html/js/codepress/engines/msie.js +304 -0
  176. data/html/js/codepress/engines/older.js +0 -0
  177. data/html/js/codepress/engines/opera.js +260 -0
  178. data/html/js/codepress/images/line-numbers.gif +0 -0
  179. data/html/js/codepress/images/line-numbers.png +0 -0
  180. data/html/js/codepress/index.html +443 -0
  181. data/html/js/codepress/languages/asp.css +71 -0
  182. data/html/js/codepress/languages/asp.js +117 -0
  183. data/html/js/codepress/languages/autoit.css +13 -0
  184. data/html/js/codepress/languages/autoit.js +32 -0
  185. data/html/js/codepress/languages/csharp.css +9 -0
  186. data/html/js/codepress/languages/csharp.js +25 -0
  187. data/html/js/codepress/languages/css.css +10 -0
  188. data/html/js/codepress/languages/css.js +23 -0
  189. data/html/js/codepress/languages/generic.css +9 -0
  190. data/html/js/codepress/languages/generic.js +25 -0
  191. data/html/js/codepress/languages/html.css +13 -0
  192. data/html/js/codepress/languages/html.js +59 -0
  193. data/html/js/codepress/languages/java.css +7 -0
  194. data/html/js/codepress/languages/java.js +24 -0
  195. data/html/js/codepress/languages/javascript.css +8 -0
  196. data/html/js/codepress/languages/javascript.js +30 -0
  197. data/html/js/codepress/languages/perl.css +11 -0
  198. data/html/js/codepress/languages/perl.js +27 -0
  199. data/html/js/codepress/languages/php.css +12 -0
  200. data/html/js/codepress/languages/php.js +61 -0
  201. data/html/js/codepress/languages/ruby.css +10 -0
  202. data/html/js/codepress/languages/ruby.js +26 -0
  203. data/html/js/codepress/languages/sql.css +10 -0
  204. data/html/js/codepress/languages/sql.js +30 -0
  205. data/html/js/codepress/languages/text.css +5 -0
  206. data/html/js/codepress/languages/text.js +9 -0
  207. data/html/js/codepress/languages/vbscript.css +71 -0
  208. data/html/js/codepress/languages/vbscript.js +117 -0
  209. data/html/js/codepress/languages/xsl.css +15 -0
  210. data/html/js/codepress/languages/xsl.js +103 -0
  211. data/html/js/codepress/license.txt +458 -0
  212. data/html/js/container-min.js +1 -0
  213. data/html/js/container-utils.js +78 -0
  214. data/html/js/dialog.js +270 -0
  215. data/html/js/edit_area/autocompletion.js +493 -0
  216. data/html/js/edit_area/edit_area.css +507 -0
  217. data/html/js/edit_area/edit_area.js +510 -0
  218. data/html/js/edit_area/edit_area_compressor.php +408 -0
  219. data/html/js/edit_area/edit_area_full.gz +0 -0
  220. data/html/js/edit_area/edit_area_full.js +38 -0
  221. data/html/js/edit_area/edit_area_full_with_plugins.gz +0 -0
  222. data/html/js/edit_area/edit_area_full_with_plugins.js +39 -0
  223. data/html/js/edit_area/edit_area_functions.js +1098 -0
  224. data/html/js/edit_area/edit_area_loader.js +1070 -0
  225. data/html/js/edit_area/elements_functions.js +337 -0
  226. data/html/js/edit_area/highlight.js +283 -0
  227. data/html/js/edit_area/images/Thumbs.db +0 -0
  228. data/html/js/edit_area/images/autocompletion.gif +0 -0
  229. data/html/js/edit_area/images/close.gif +0 -0
  230. data/html/js/edit_area/images/fullscreen.gif +0 -0
  231. data/html/js/edit_area/images/go_to_line.gif +0 -0
  232. data/html/js/edit_area/images/help.gif +0 -0
  233. data/html/js/edit_area/images/highlight.gif +0 -0
  234. data/html/js/edit_area/images/load.gif +0 -0
  235. data/html/js/edit_area/images/move.gif +0 -0
  236. data/html/js/edit_area/images/newdocument.gif +0 -0
  237. data/html/js/edit_area/images/opacity.png +0 -0
  238. data/html/js/edit_area/images/processing.gif +0 -0
  239. data/html/js/edit_area/images/redo.gif +0 -0
  240. data/html/js/edit_area/images/reset_highlight.gif +0 -0
  241. data/html/js/edit_area/images/save.gif +0 -0
  242. data/html/js/edit_area/images/search.gif +0 -0
  243. data/html/js/edit_area/images/smooth_selection.gif +0 -0
  244. data/html/js/edit_area/images/spacer.gif +0 -0
  245. data/html/js/edit_area/images/statusbar_resize.gif +0 -0
  246. data/html/js/edit_area/images/undo.gif +0 -0
  247. data/html/js/edit_area/keyboard.js +145 -0
  248. data/html/js/edit_area/langs/cs.js +65 -0
  249. data/html/js/edit_area/langs/de.js +65 -0
  250. data/html/js/edit_area/langs/dk.js +65 -0
  251. data/html/js/edit_area/langs/en.js +65 -0
  252. data/html/js/edit_area/langs/eo.js +65 -0
  253. data/html/js/edit_area/langs/es.js +62 -0
  254. data/html/js/edit_area/langs/fr.js +65 -0
  255. data/html/js/edit_area/langs/hr.js +65 -0
  256. data/html/js/edit_area/langs/it.js +65 -0
  257. data/html/js/edit_area/langs/ja.js +65 -0
  258. data/html/js/edit_area/langs/mk.js +65 -0
  259. data/html/js/edit_area/langs/nl.js +65 -0
  260. data/html/js/edit_area/langs/pl.js +65 -0
  261. data/html/js/edit_area/langs/pt.js +65 -0
  262. data/html/js/edit_area/langs/ru.js +65 -0
  263. data/html/js/edit_area/langs/sk.js +65 -0
  264. data/html/js/edit_area/license_apache.txt +7 -0
  265. data/html/js/edit_area/license_bsd.txt +10 -0
  266. data/html/js/edit_area/license_lgpl.txt +458 -0
  267. data/html/js/edit_area/manage_area.js +466 -0
  268. data/html/js/edit_area/plugins/charmap/charmap.js +90 -0
  269. data/html/js/edit_area/plugins/charmap/css/charmap.css +64 -0
  270. data/html/js/edit_area/plugins/charmap/images/charmap.gif +0 -0
  271. data/html/js/edit_area/plugins/charmap/jscripts/map.js +373 -0
  272. data/html/js/edit_area/plugins/charmap/langs/cs.js +6 -0
  273. data/html/js/edit_area/plugins/charmap/langs/de.js +6 -0
  274. data/html/js/edit_area/plugins/charmap/langs/dk.js +6 -0
  275. data/html/js/edit_area/plugins/charmap/langs/en.js +6 -0
  276. data/html/js/edit_area/plugins/charmap/langs/eo.js +6 -0
  277. data/html/js/edit_area/plugins/charmap/langs/es.js +6 -0
  278. data/html/js/edit_area/plugins/charmap/langs/fr.js +6 -0
  279. data/html/js/edit_area/plugins/charmap/langs/hr.js +6 -0
  280. data/html/js/edit_area/plugins/charmap/langs/it.js +6 -0
  281. data/html/js/edit_area/plugins/charmap/langs/ja.js +6 -0
  282. data/html/js/edit_area/plugins/charmap/langs/mk.js +6 -0
  283. data/html/js/edit_area/plugins/charmap/langs/nl.js +6 -0
  284. data/html/js/edit_area/plugins/charmap/langs/pl.js +6 -0
  285. data/html/js/edit_area/plugins/charmap/langs/pt.js +6 -0
  286. data/html/js/edit_area/plugins/charmap/langs/ru.js +6 -0
  287. data/html/js/edit_area/plugins/charmap/langs/sk.js +6 -0
  288. data/html/js/edit_area/plugins/charmap/popup.html +24 -0
  289. data/html/js/edit_area/plugins/test/css/test.css +3 -0
  290. data/html/js/edit_area/plugins/test/images/Thumbs.db +0 -0
  291. data/html/js/edit_area/plugins/test/images/test.gif +0 -0
  292. data/html/js/edit_area/plugins/test/langs/cs.js +4 -0
  293. data/html/js/edit_area/plugins/test/langs/de.js +4 -0
  294. data/html/js/edit_area/plugins/test/langs/dk.js +4 -0
  295. data/html/js/edit_area/plugins/test/langs/en.js +4 -0
  296. data/html/js/edit_area/plugins/test/langs/eo.js +4 -0
  297. data/html/js/edit_area/plugins/test/langs/es.js +4 -0
  298. data/html/js/edit_area/plugins/test/langs/fr.js +4 -0
  299. data/html/js/edit_area/plugins/test/langs/hr.js +4 -0
  300. data/html/js/edit_area/plugins/test/langs/it.js +4 -0
  301. data/html/js/edit_area/plugins/test/langs/ja.js +4 -0
  302. data/html/js/edit_area/plugins/test/langs/mk.js +4 -0
  303. data/html/js/edit_area/plugins/test/langs/nl.js +4 -0
  304. data/html/js/edit_area/plugins/test/langs/pl.js +4 -0
  305. data/html/js/edit_area/plugins/test/langs/pt.js +4 -0
  306. data/html/js/edit_area/plugins/test/langs/ru.js +4 -0
  307. data/html/js/edit_area/plugins/test/langs/sk.js +4 -0
  308. data/html/js/edit_area/plugins/test/test.js +110 -0
  309. data/html/js/edit_area/plugins/test/test2.js +1 -0
  310. data/html/js/edit_area/reg_syntax.js +164 -0
  311. data/html/js/edit_area/reg_syntax/basic.js +69 -0
  312. data/html/js/edit_area/reg_syntax/brainfuck.js +44 -0
  313. data/html/js/edit_area/reg_syntax/c.js +62 -0
  314. data/html/js/edit_area/reg_syntax/coldfusion.js +119 -0
  315. data/html/js/edit_area/reg_syntax/cpp.js +65 -0
  316. data/html/js/edit_area/reg_syntax/css.js +84 -0
  317. data/html/js/edit_area/reg_syntax/html.js +50 -0
  318. data/html/js/edit_area/reg_syntax/js.js +93 -0
  319. data/html/js/edit_area/reg_syntax/pas.js +82 -0
  320. data/html/js/edit_area/reg_syntax/perl.js +88 -0
  321. data/html/js/edit_area/reg_syntax/php.js +156 -0
  322. data/html/js/edit_area/reg_syntax/python.js +144 -0
  323. data/html/js/edit_area/reg_syntax/robotstxt.js +24 -0
  324. data/html/js/edit_area/reg_syntax/ruby.js +67 -0
  325. data/html/js/edit_area/reg_syntax/sql.js +55 -0
  326. data/html/js/edit_area/reg_syntax/tsql.js +87 -0
  327. data/html/js/edit_area/reg_syntax/vb.js +52 -0
  328. data/html/js/edit_area/reg_syntax/xml.js +56 -0
  329. data/html/js/edit_area/regexp.js +135 -0
  330. data/html/js/edit_area/resize_area.js +82 -0
  331. data/html/js/edit_area/search_replace.js +174 -0
  332. data/html/js/edit_area/template.html +99 -0
  333. data/html/js/json-broker-client.js +61 -0
  334. data/html/js/page-manager.js +93 -0
  335. data/html/js/prototype.js +4184 -0
  336. data/html/js/result-page.js +707 -0
  337. data/html/js/rt-setting-page.js +122 -0
  338. data/html/js/sidebar.js +246 -0
  339. data/html/js/templates.js +208 -0
  340. data/html/js/utils.js +716 -0
  341. data/html/js/uuid.js +103 -0
  342. data/html/swf/chart.swf +0 -0
  343. data/lib/jiji/agent/agent.rb +93 -0
  344. data/lib/jiji/agent/agent_manager.rb +133 -0
  345. data/lib/jiji/agent/agent_registry.rb +248 -0
  346. data/lib/jiji/agent/permitter.rb +128 -0
  347. data/lib/jiji/agent/util.rb +16 -0
  348. data/lib/jiji/collector.rb +219 -0
  349. data/lib/jiji/command.rb +129 -0
  350. data/lib/jiji/configuration.rb +80 -0
  351. data/lib/jiji/dao/rate_dao.rb +149 -0
  352. data/lib/jiji/dao/timed_data_dao.rb +334 -0
  353. data/lib/jiji/dao/trade_result_dao.rb +128 -0
  354. data/lib/jiji/error.rb +33 -0
  355. data/lib/jiji/models.rb +169 -0
  356. data/lib/jiji/observer.rb +105 -0
  357. data/lib/jiji/operator.rb +405 -0
  358. data/lib/jiji/output.rb +165 -0
  359. data/lib/jiji/process.rb +182 -0
  360. data/lib/jiji/process_manager.rb +189 -0
  361. data/lib/jiji/registry.rb +255 -0
  362. data/lib/jiji/server.rb +115 -0
  363. data/lib/jiji/service/agent_service.rb +131 -0
  364. data/lib/jiji/service/hello_service.rb +10 -0
  365. data/lib/jiji/service/output_service.rb +58 -0
  366. data/lib/jiji/service/process_service.rb +78 -0
  367. data/lib/jiji/service/rate_service.rb +33 -0
  368. data/lib/jiji/service/system_service.rb +14 -0
  369. data/lib/jiji/service/trade_result_service.rb +32 -0
  370. data/lib/jiji/single_click_client.rb +95 -0
  371. data/lib/jiji/util/block_to_session.rb +70 -0
  372. data/lib/jiji/util/cache.rb +79 -0
  373. data/lib/jiji/util/csv_append_support.rb +15 -0
  374. data/lib/jiji/util/file_lock.rb +86 -0
  375. data/lib/jiji/util/fix_yaml_bug.rb +11 -0
  376. data/lib/jiji/util/iterator.rb +70 -0
  377. data/lib/jiji/util/json_broker.rb +53 -0
  378. data/lib/jiji/util/json_rpc_requestor.rb +30 -0
  379. data/lib/jiji/util/synchronize_interceptor.rb +41 -0
  380. data/lib/jiji/util/thread_use_generator.rb +52 -0
  381. data/lib/jiji/util/util.rb +179 -0
  382. data/swf/build.xml +23 -0
  383. data/swf/chart/FxChart-config.xml +9 -0
  384. data/swf/chart/FxChart.mxml +17 -0
  385. data/swf/chart/fx/chart/Chart.as +155 -0
  386. data/swf/chart/fx/chart/ctrl/AutoUpdate.as +96 -0
  387. data/swf/chart/fx/chart/ctrl/Controller.as +258 -0
  388. data/swf/chart/fx/chart/ctrl/Event.as +75 -0
  389. data/swf/chart/fx/chart/model/Model.as +226 -0
  390. data/swf/chart/fx/chart/model/TimedData.as +40 -0
  391. data/swf/chart/fx/chart/ui/AbstractChartUI.as +59 -0
  392. data/swf/chart/fx/chart/ui/AbstractDrawChartUI.as +63 -0
  393. data/swf/chart/fx/chart/ui/Constants.as +233 -0
  394. data/swf/chart/fx/chart/ui/InformationWindow.as +224 -0
  395. data/swf/chart/fx/chart/ui/LayerManager.as +95 -0
  396. data/swf/chart/fx/chart/ui/Loading.as +32 -0
  397. data/swf/chart/fx/chart/ui/Pointer.as +59 -0
  398. data/swf/chart/fx/chart/ui/RangeInfoWindow.as +84 -0
  399. data/swf/chart/fx/chart/ui/RenderingContext.as +54 -0
  400. data/swf/chart/fx/chart/ui/ScaleSelector.as +95 -0
  401. data/swf/chart/fx/chart/ui/Scroll.as +240 -0
  402. data/swf/chart/fx/chart/ui/ScrollBar.as +378 -0
  403. data/swf/chart/fx/chart/ui/Stage.as +97 -0
  404. data/swf/chart/fx/chart/ui/TradeDetailWindow.as +146 -0
  405. data/swf/chart/fx/chart/ui/TradeResult.as +334 -0
  406. data/swf/chart/fx/chart/ui/Window.as +96 -0
  407. data/swf/chart/fx/chart/ui/candle/Axis.as +112 -0
  408. data/swf/chart/fx/chart/ui/candle/Candle.as +79 -0
  409. data/swf/chart/fx/chart/ui/candle/CandleChart.as +81 -0
  410. data/swf/chart/fx/chart/ui/graph/Graph.as +198 -0
  411. data/swf/chart/fx/chart/ui/graph/GraphManager.as +177 -0
  412. data/swf/chart/fx/chart/ui/resource/buy.gif +0 -0
  413. data/swf/chart/fx/chart/ui/resource/cursor_hand.gif +0 -0
  414. data/swf/chart/fx/chart/ui/resource/diff_label.gif +0 -0
  415. data/swf/chart/fx/chart/ui/resource/down.gif +0 -0
  416. data/swf/chart/fx/chart/ui/resource/down_buy.gif +0 -0
  417. data/swf/chart/fx/chart/ui/resource/down_buy_1.gif +0 -0
  418. data/swf/chart/fx/chart/ui/resource/down_buy_2.gif +0 -0
  419. data/swf/chart/fx/chart/ui/resource/down_buy_3.gif +0 -0
  420. data/swf/chart/fx/chart/ui/resource/down_sell.gif +0 -0
  421. data/swf/chart/fx/chart/ui/resource/down_sell_1.gif +0 -0
  422. data/swf/chart/fx/chart/ui/resource/down_sell_2.gif +0 -0
  423. data/swf/chart/fx/chart/ui/resource/down_sell_3.gif +0 -0
  424. data/swf/chart/fx/chart/ui/resource/draw_buy.gif +0 -0
  425. data/swf/chart/fx/chart/ui/resource/draw_sell.gif +0 -0
  426. data/swf/chart/fx/chart/ui/resource/end_label.gif +0 -0
  427. data/swf/chart/fx/chart/ui/resource/fixed.gif +0 -0
  428. data/swf/chart/fx/chart/ui/resource/loading.gif +0 -0
  429. data/swf/chart/fx/chart/ui/resource/max_label.gif +0 -0
  430. data/swf/chart/fx/chart/ui/resource/min_label.gif +0 -0
  431. data/swf/chart/fx/chart/ui/resource/scroll_bar.gif +0 -0
  432. data/swf/chart/fx/chart/ui/resource/scroll_bar_a.gif +0 -0
  433. data/swf/chart/fx/chart/ui/resource/scroll_bar_handle.gif +0 -0
  434. data/swf/chart/fx/chart/ui/resource/scroll_bar_handle_a.gif +0 -0
  435. data/swf/chart/fx/chart/ui/resource/scroll_bar_handle_o.gif +0 -0
  436. data/swf/chart/fx/chart/ui/resource/scroll_bar_left.gif +0 -0
  437. data/swf/chart/fx/chart/ui/resource/scroll_bar_left_a.gif +0 -0
  438. data/swf/chart/fx/chart/ui/resource/scroll_bar_left_o.gif +0 -0
  439. data/swf/chart/fx/chart/ui/resource/scroll_bar_o.gif +0 -0
  440. data/swf/chart/fx/chart/ui/resource/scroll_bar_right.gif +0 -0
  441. data/swf/chart/fx/chart/ui/resource/scroll_bar_right_a.gif +0 -0
  442. data/swf/chart/fx/chart/ui/resource/scroll_bar_right_o.gif +0 -0
  443. data/swf/chart/fx/chart/ui/resource/scroll_handle.gif +0 -0
  444. data/swf/chart/fx/chart/ui/resource/scroll_info_handle.gif +0 -0
  445. data/swf/chart/fx/chart/ui/resource/scroll_left_button.gif +0 -0
  446. data/swf/chart/fx/chart/ui/resource/scroll_left_button_d.gif +0 -0
  447. data/swf/chart/fx/chart/ui/resource/scroll_left_button_down.gif +0 -0
  448. data/swf/chart/fx/chart/ui/resource/scroll_left_button_g.gif +0 -0
  449. data/swf/chart/fx/chart/ui/resource/scroll_left_button_o.gif +0 -0
  450. data/swf/chart/fx/chart/ui/resource/scroll_left_button_up.gif +0 -0
  451. data/swf/chart/fx/chart/ui/resource/scroll_outer.gif +0 -0
  452. data/swf/chart/fx/chart/ui/resource/scroll_outer_left.gif +0 -0
  453. data/swf/chart/fx/chart/ui/resource/scroll_outer_right.gif +0 -0
  454. data/swf/chart/fx/chart/ui/resource/scroll_right_button.gif +0 -0
  455. data/swf/chart/fx/chart/ui/resource/scroll_right_button_d.gif +0 -0
  456. data/swf/chart/fx/chart/ui/resource/scroll_right_button_down.gif +0 -0
  457. data/swf/chart/fx/chart/ui/resource/scroll_right_button_g.gif +0 -0
  458. data/swf/chart/fx/chart/ui/resource/scroll_right_button_o.gif +0 -0
  459. data/swf/chart/fx/chart/ui/resource/scroll_right_button_up.gif +0 -0
  460. data/swf/chart/fx/chart/ui/resource/scroll_slider_left.gif +0 -0
  461. data/swf/chart/fx/chart/ui/resource/scroll_slider_right.gif +0 -0
  462. data/swf/chart/fx/chart/ui/resource/sell.gif +0 -0
  463. data/swf/chart/fx/chart/ui/resource/start_label.gif +0 -0
  464. data/swf/chart/fx/chart/ui/resource/stripe.gif +0 -0
  465. data/swf/chart/fx/chart/ui/resource/stripe_b.gif +0 -0
  466. data/swf/chart/fx/chart/ui/resource/stripe_r.gif +0 -0
  467. data/swf/chart/fx/chart/ui/resource/unfixed.gif +0 -0
  468. data/swf/chart/fx/chart/ui/resource/up.gif +0 -0
  469. data/swf/chart/fx/chart/ui/resource/up_buy.gif +0 -0
  470. data/swf/chart/fx/chart/ui/resource/up_buy_1.gif +0 -0
  471. data/swf/chart/fx/chart/ui/resource/up_buy_2.gif +0 -0
  472. data/swf/chart/fx/chart/ui/resource/up_buy_3.gif +0 -0
  473. data/swf/chart/fx/chart/ui/resource/up_sell.gif +0 -0
  474. data/swf/chart/fx/chart/ui/resource/up_sell_1.gif +0 -0
  475. data/swf/chart/fx/chart/ui/resource/up_sell_2.gif +0 -0
  476. data/swf/chart/fx/chart/ui/resource/up_sell_3.gif +0 -0
  477. data/swf/chart/fx/net/StubFactory.as +113 -0
  478. data/swf/chart/fx/util/ListenerSupport.as +55 -0
  479. data/swf/chart/fx/util/PositionManager.as +94 -0
  480. data/swf/chart/fx/util/ScaleFormatter.as +156 -0
  481. data/swf/chart/fx/util/Util.as +61 -0
  482. data/swf/chart/log.as +40 -0
  483. data/swf/lib/corelib.swc +0 -0
  484. data/test/BackCollectorTest/basic/2008-08-04/AUDJPY.csv +5 -0
  485. data/test/BackCollectorTest/basic/2008-08-04/USDJPY.csv +5 -0
  486. data/test/BackCollectorTest/basic/2008-08-04/ZARJPY.csv +5 -0
  487. data/test/BackCollectorTest/basic/2008-08-05/AUDJPY.csv +5 -0
  488. data/test/BackCollectorTest/basic/2008-08-05/USDJPY.csv +5 -0
  489. data/test/BackCollectorTest/basic/2008-08-05/ZARJPY.csv +5 -0
  490. data/test/BackCollectorTest/basic/2008-08-06/AUDJPY.csv +5 -0
  491. data/test/BackCollectorTest/basic/2008-08-06/USDJPY.csv +5 -0
  492. data/test/BackCollectorTest/basic/2008-08-06/ZARJPY.csv +5 -0
  493. data/test/BackCollectorTest/basic/2008-08-07/AUDJPY.csv +5 -0
  494. data/test/BackCollectorTest/basic/2008-08-07/USDJPY.csv +5 -0
  495. data/test/BackCollectorTest/basic/2008-08-07/ZARJPY.csv +5 -0
  496. data/test/BackCollectorTest/basic/AUDJPY/raw/2008-08-04.csv +5 -0
  497. data/test/BackCollectorTest/basic/AUDJPY/raw/2008-08-05.csv +5 -0
  498. data/test/BackCollectorTest/basic/AUDJPY/raw/2008-08-06.csv +5 -0
  499. data/test/BackCollectorTest/basic/AUDJPY/raw/2008-08-07.csv +5 -0
  500. data/test/BackCollectorTest/basic/USDJPY/raw/2008-08-04.csv +5 -0
  501. data/test/BackCollectorTest/basic/USDJPY/raw/2008-08-05.csv +5 -0
  502. data/test/BackCollectorTest/basic/USDJPY/raw/2008-08-06.csv +5 -0
  503. data/test/BackCollectorTest/basic/USDJPY/raw/2008-08-07.csv +5 -0
  504. data/test/BackCollectorTest/basic/ZARJPY/raw/2008-08-04.csv +5 -0
  505. data/test/BackCollectorTest/basic/ZARJPY/raw/2008-08-05.csv +5 -0
  506. data/test/BackCollectorTest/basic/ZARJPY/raw/2008-08-06.csv +5 -0
  507. data/test/BackCollectorTest/basic/ZARJPY/raw/2008-08-07.csv +5 -0
  508. data/test/BackCollectorTest/lack/2008-08-04/AUDJPY.csv +5 -0
  509. data/test/BackCollectorTest/lack/2008-08-04/USDJPY.csv +5 -0
  510. data/test/BackCollectorTest/lack/2008-08-04/ZARJPY.csv +5 -0
  511. data/test/BackCollectorTest/lack/2008-08-06/AUDJPY.csv +5 -0
  512. data/test/BackCollectorTest/lack/2008-08-06/USDJPY.csv +5 -0
  513. data/test/BackCollectorTest/lack/2008-08-06/ZARJPY.csv +5 -0
  514. data/test/BackCollectorTest/lack/2008-08-07/AUDJPY.csv +5 -0
  515. data/test/BackCollectorTest/lack/2008-08-07/USDJPY.csv +5 -0
  516. data/test/BackCollectorTest/lack/2008-08-07/ZARJPY.csv +5 -0
  517. data/test/BackCollectorTest/lack/AUDJPY/raw/2008-08-04.csv +5 -0
  518. data/test/BackCollectorTest/lack/AUDJPY/raw/2008-08-06.csv +5 -0
  519. data/test/BackCollectorTest/lack/AUDJPY/raw/2008-08-07.csv +5 -0
  520. data/test/BackCollectorTest/lack/USDJPY/raw/2008-08-04.csv +5 -0
  521. data/test/BackCollectorTest/lack/USDJPY/raw/2008-08-06.csv +5 -0
  522. data/test/BackCollectorTest/lack/USDJPY/raw/2008-08-07.csv +5 -0
  523. data/test/BackCollectorTest/lack/ZARJPY/raw/2008-08-04.csv +5 -0
  524. data/test/BackCollectorTest/lack/ZARJPY/raw/2008-08-06.csv +5 -0
  525. data/test/BackCollectorTest/lack/ZARJPY/raw/2008-08-07.csv +5 -0
  526. data/test/ProcessManagerTest/agents/moving_average.rb +95 -0
  527. data/test/ProcessManagerTest/conf/configuration.yaml +19 -0
  528. data/test/ProcessManagerTest/rate_datas/EURJPY/raw/2008-08-21.csv +5853 -0
  529. data/test/ProcessManagerTest/rate_datas/EURJPY/raw/2008-08-22.csv +5821 -0
  530. data/test/ProcessManagerTest/rate_datas/EURJPY/raw/2008-08-23.csv +5921 -0
  531. data/test/ProcessManagerTest/rate_datas/EURJPY/raw/2008-08-24.csv +5956 -0
  532. data/test/ProcessManagerTest/rate_datas/EURJPY/raw/2008-08-25.csv +5796 -0
  533. data/test/ProcessManagerTest/rate_datas/USDJPY/raw/2008-08-21.csv +5853 -0
  534. data/test/ProcessManagerTest/rate_datas/USDJPY/raw/2008-08-22.csv +5821 -0
  535. data/test/ProcessManagerTest/rate_datas/USDJPY/raw/2008-08-23.csv +5921 -0
  536. data/test/ProcessManagerTest/rate_datas/USDJPY/raw/2008-08-24.csv +5956 -0
  537. data/test/ProcessManagerTest/rate_datas/USDJPY/raw/2008-08-25.csv +5796 -0
  538. data/test/all_tests.rb +26 -0
  539. data/test/service/all_service_tests.rb +10 -0
  540. data/test/service/test_AgentService.rb +185 -0
  541. data/test/service/test_OutputService.rb +33 -0
  542. data/test/service/test_RateService.rb +56 -0
  543. data/test/test_AgentManager.rb +307 -0
  544. data/test/test_AgentRegistory.rb +566 -0
  545. data/test/test_BackTestCollector.rb +281 -0
  546. data/test/test_BlockToSession.rb +74 -0
  547. data/test/test_CSV.rb +85 -0
  548. data/test/test_Collector.rb +246 -0
  549. data/test/test_Configuration.rb +61 -0
  550. data/test/test_Configuration_a.yaml +6 -0
  551. data/test/test_Operator.rb +501 -0
  552. data/test/test_Output.rb +169 -0
  553. data/test/test_Output_registry.rb +49 -0
  554. data/test/test_PeriodicallyAgent.rb +180 -0
  555. data/test/test_Permitter.rb +217 -0
  556. data/test/test_Process.rb +186 -0
  557. data/test/test_ProcessManager.rb +312 -0
  558. data/test/test_RateDao.rb +697 -0
  559. data/test/test_SingleClickClient.rb +115 -0
  560. data/test/test_SynchronizeInterceptor.rb +75 -0
  561. data/test/test_TradeResultDao.rb +487 -0
  562. data/test/test_configuration.yaml +16 -0
  563. data/test/testutils.rb +37 -0
  564. metadata +750 -0
@@ -0,0 +1,39 @@
1
+ function EAL(){this.version="0.7.2.3";date=new Date();this.start_time=date.getTime();this.win="loading";this.error=false;this.baseURL="";this.template="";this.lang=new Object();this.load_syntax=new Object();this.syntax=new Object();this.loadedFiles=new Array();this.waiting_loading=new Object();this.scripts_to_load=new Array();this.sub_scripts_to_load=new Array();this.resize=new Array();this.hidden=new Object();this.default_settings={debug:false ,smooth_selection:true ,font_size:"10" ,font_family:"monospace" ,start_highlight:false ,autocompletion:false ,toolbar:"search,go_to_line,fullscreen,|,undo,redo,|,select_font,|,change_smooth_selection,highlight,reset_highlight,|,help" ,begin_toolbar:"" ,end_toolbar:"" ,is_multi_files:false ,allow_resize:"both" ,show_line_colors:false ,min_width:400 ,min_height:125 ,replace_tab_by_spaces:false ,allow_toggle:true ,language:"en" ,syntax:"" ,syntax_selection_allow:"basic,brainfuck,c,coldfusion,cpp,css,html,js,pas,perl,php,python,ruby,robotstxt,sql,tsql,vb,xml" ,display:"onload" ,max_undo:30 ,browsers:"known" ,plugins:"" ,gecko_spellcheck:false ,fullscreen:false ,is_editable:true ,wrap_text:false ,load_callback:"" ,save_callback:"" ,change_callback:"" ,submit_callback:"" ,EA_init_callback:"" ,EA_delete_callback:"" ,EA_load_callback:"" ,EA_unload_callback:"" ,EA_toggle_on_callback:"" ,EA_toggle_off_callback:"" ,EA_file_switch_on_callback:"" ,EA_file_switch_off_callback:"" ,EA_file_close_callback:"" };this.advanced_buttons=[ ['new_document','newdocument.gif','new_document',false],['search','search.gif','show_search',false],['go_to_line','go_to_line.gif','go_to_line',false],['undo','undo.gif','undo',true],['redo','redo.gif','redo',true],['change_smooth_selection','smooth_selection.gif','change_smooth_selection_mode',true],['reset_highlight','reset_highlight.gif','resync_highlight',true],['highlight','highlight.gif','change_highlight',true],['help','help.gif','show_help',false],['save','save.gif','save',false],['load','load.gif','load',false],['fullscreen','fullscreen.gif','toggle_full_screen',false],['autocompletion','autocompletion.gif','toggle_autocompletion',true] ];ua=navigator.userAgent;this.nav=new Object();this.nav['isMacOS']=(ua.indexOf('Mac OS')!=-1);this.nav['isIE']=(navigator.appName=="Microsoft Internet Explorer");if(this.nav['isIE']){this.nav['isIE']=ua.replace(/^.*?MSIE ([0-9\.]*).*$/,"$1");if(this.nav['isIE']<6)this.has_error();}if(this.nav['isNS']=ua.indexOf('Netscape/')!=-1){this.nav['isNS']=ua.substr(ua.indexOf('Netscape/')+9);if(this.nav['isNS']<8||!this.nav['isIE'])this.has_error();}if(this.nav['isOpera']=(ua.indexOf('Opera')!=-1)){this.nav['isOpera']=ua.replace(/^.*?Opera.*?([0-9\.]+).*$/i,"$1");if(this.nav['isOpera']<9)this.has_error();this.nav['isIE']=false;}this.nav['isGecko']=(ua.indexOf('Gecko')!=-1);if(this.nav['isFirefox'] =(ua.indexOf('Firefox')!=-1))this.nav['isFirefox']=ua.replace(/^.*?Firefox.*?([0-9\.]+).*$/i,"$1");if(this.nav['isIceweasel'] =(ua.indexOf('Iceweasel')!=-1))this.nav['isFirefox']=this.nav['isIceweasel']=ua.replace(/^.*?Iceweasel.*?([0-9\.]+).*$/i,"$1");if(this.nav['GranParadiso'] =(ua.indexOf('GranParadiso')!=-1))this.nav['isFirefox']=this.nav['isGranParadiso']=ua.replace(/^.*?GranParadiso.*?([0-9\.]+).*$/i,"$1");if(this.nav['BonEcho'] =(ua.indexOf('BonEcho')!=-1))this.nav['isFirefox']=this.nav['isBonEcho']=ua.replace(/^.*?BonEcho.*?([0-9\.]+).*$/i,"$1");if(this.nav['isCamino'] =(ua.indexOf('Camino')!=-1))this.nav['isCamino']=ua.replace(/^.*?Camino.*?([0-9\.]+).*$/i,"$1");if(this.nav['isChrome'] =(ua.indexOf('Chrome')!=-1))this.nav['isChrome']=ua.replace(/^.*?Chrome.*?([0-9\.]+).*$/i,"$1");if(this.nav['isSafari'] =(ua.indexOf('Safari')!=-1))this.nav['isSafari']=ua.replace(/^.*?Version\/([0-9]+\.[0-9]+).*$/i,"$1");if(this.nav['isIE']>=6||this.nav['isOpera']>=9||this.nav['isFirefox']||this.nav['isChrome']||this.nav['isCamino']||this.nav['isSafari']>=3)this.nav['isValidBrowser']=true;
2
+ else this.nav['isValidBrowser']=false;this.set_base_url();for(var i=0;i<this.scripts_to_load.length;i++){setTimeout("eAL.load_script('"+this.baseURL+this.scripts_to_load[i]+".js');",1);this.waiting_loading[this.scripts_to_load[i]+".js"]=false;}this.add_event(window,"load",EAL.prototype.window_loaded);};EAL.prototype ={has_error:function(){this.error=true;for(var i in EAL.prototype){EAL.prototype[i]=function(){};}},window_loaded:function(){eAL.win="loaded";if (document.forms){for (var i=0;i<document.forms.length;i++){var form=document.forms[i];form.edit_area_replaced_submit=null;try{form.edit_area_replaced_submit=form.onsubmit;form.onsubmit="";}catch (e){}eAL.add_event(form,"submit",EAL.prototype.submit);eAL.add_event(form,"reset",EAL.prototype.reset);}}eAL.add_event(window,"unload",function(){for(var i in eAs){eAL.delete_instance(i);}});},init_ie_textarea:function(id){var t=document.getElementById(id);try{if(t&&typeof(t.focused)=="undefined"){t.focus();t.focused=true;t.selectionStart=t.selectionEnd=0;get_IE_selection(t);eAL.add_event(t,"focus",IE_textarea_focus);eAL.add_event(t,"blur",IE_textarea_blur);}}catch(ex){}},init:function(settings){if(!settings["id"])this.has_error();if(this.error)return;if(eAs[settings["id"]])eAL.delete_instance(settings["id"]);for(var i in this.default_settings){if(typeof(settings[i])=="undefined")settings[i]=this.default_settings[i];}if(settings["browsers"]=="known"&&this.nav['isValidBrowser']==false){return;}if(settings["begin_toolbar"].length>0)settings["toolbar"]=settings["begin_toolbar"] +","+settings["toolbar"];if(settings["end_toolbar"].length>0)settings["toolbar"]=settings["toolbar"] +","+settings["end_toolbar"];settings["tab_toolbar"]=settings["toolbar"].replace(/ /g,"").split(",");settings["plugins"]=settings["plugins"].replace(/ /g,"").split(",");for(var i=0;i<settings["plugins"].length;i++){if(settings["plugins"][i].length==0)settings["plugins"].splice(i,1);}this.get_template();this.load_script(this.baseURL+"langs/"+settings["language"]+".js");if(settings["syntax"].length>0){settings["syntax"]=settings["syntax"].toLowerCase();this.load_script(this.baseURL+"reg_syntax/"+settings["syntax"]+".js");}eAs[settings["id"]]={"settings":settings};eAs[settings["id"]]["displayed"]=false;eAs[settings["id"]]["hidden"]=false;eAL.start(settings["id"]);},delete_instance:function(id){eAL.execCommand(id,"EA_delete");if(window.frames["frame_"+id]&&window.frames["frame_"+id].editArea){if(eAs[id]["displayed"])eAL.toggle(id,"off");window.frames["frame_"+id].editArea.execCommand("EA_unload");}var span=document.getElementById("EditAreaArroundInfos_"+id);if(span)span.parentNode.removeChild(span);var iframe=document.getElementById("frame_"+id);if(iframe){iframe.parentNode.removeChild(iframe);try{delete window.frames["frame_"+id];}catch (e){}}delete eAs[id];},start:function(id){if(this.win!="loaded"){setTimeout("eAL.start('"+id+"');",50);return;}for(var i in eAL.waiting_loading){if(eAL.waiting_loading[i]!="loaded"&&typeof(eAL.waiting_loading[i])!="function"){setTimeout("eAL.start('"+id+"');",50);return;}}if(!eAL.lang[eAs[id]["settings"]["language"]]||(eAs[id]["settings"]["syntax"].length>0&&!eAL.load_syntax[eAs[id]["settings"]["syntax"]])){setTimeout("eAL.start('"+id+"');",50);return;}if(eAs[id]["settings"]["syntax"].length>0)eAL.init_syntax_regexp();if(!document.getElementById("EditAreaArroundInfos_"+id)&&(eAs[id]["settings"]["debug"]||eAs[id]["settings"]["allow_toggle"])){var span=document.createElement("span");span.id="EditAreaArroundInfos_"+id;var html="";if(eAs[id]["settings"]["allow_toggle"]){checked=(eAs[id]["settings"]["display"]=="onload")?"checked":"";html+="<div id='edit_area_toggle_"+i+"'>";html+="<input id='edit_area_toggle_checkbox_"+id +"' class='toggle_"+id +"' type='checkbox' onclick='eAL.toggle(\""+id +"\");' accesskey='e' "+checked+" />";html+="<label for='edit_area_toggle_checkbox_"+id +"'>{$toggle}</label></div>";}if(eAs[id]["settings"]["debug"])html+="<textarea id='edit_area_debug_"+id +"' style='z-index:20;width:100%;height:120px;overflow:auto;border:solid black 1px;'></textarea><br />";html=eAL.translate(html,eAs[id]["settings"]["language"]);span.innerHTML=html;var father=document.getElementById(id).parentNode;var next=document.getElementById(id).nextSibling;if(next==null)father.appendChild(span);
3
+ else father.insertBefore(span,next);}if(!eAs[id]["initialized"]){this.execCommand(id,"EA_init");if(eAs[id]["settings"]["display"]=="later"){eAs[id]["initialized"]=true;return;}}if(this.nav['isIE']){eAL.init_ie_textarea(id);}var html_toolbar_content="";area=eAs[id];for(var i=0;i<area["settings"]["tab_toolbar"].length;i++){html_toolbar_content+=this.get_control_html(area["settings"]["tab_toolbar"][i],area["settings"]["language"]);}if(!this.iframe_script){this.iframe_script="";for(var i=0;i<this.sub_scripts_to_load.length;i++)this.iframe_script+='<script language="javascript" type="text/javascript" src="'+this.baseURL+this.sub_scripts_to_load[i] +'.js"></script>';}for(var i=0;i<area["settings"]["plugins"].length;i++){if(!eAL.all_plugins_loaded)this.iframe_script+='<script language="javascript" type="text/javascript" src="'+this.baseURL+'plugins/'+area["settings"]["plugins"][i]+'/'+area["settings"]["plugins"][i] +'.js"></script>';this.iframe_script+='<script language="javascript" type="text/javascript" src="'+this.baseURL+'plugins/'+area["settings"]["plugins"][i]+'/langs/'+area["settings"]["language"] +'.js"></script>';}if(!this.iframe_css){this.iframe_css="<link href='"+this.baseURL +"edit_area.css' rel='stylesheet' type='text/css' />";}var template=this.template.replace(/\[__BASEURL__\]/g,this.baseURL);template=template.replace("[__TOOLBAR__]",html_toolbar_content);template=this.translate(template,area["settings"]["language"],"template");template=template.replace("[__CSSRULES__]",this.iframe_css);template=template.replace("[__JSCODE__]",this.iframe_script);template=template.replace("[__EA_VERSION__]",this.version);area.textarea=document.getElementById(area["settings"]["id"]);eAs[area["settings"]["id"]]["textarea"]=area.textarea;if(typeof(window.frames["frame_"+area["settings"]["id"]])!='undefined')delete window.frames["frame_"+area["settings"]["id"]];var father=area.textarea.parentNode;var content=document.createElement("iframe");content.name="frame_"+area["settings"]["id"];content.id="frame_"+area["settings"]["id"];content.style.borderWidth="0px";setAttribute(content,"frameBorder","0");content.style.overflow="hidden";content.style.display="none";var next=area.textarea.nextSibling;if(next==null)father.appendChild(content);
4
+ else father.insertBefore(content,next);var frame=window.frames["frame_"+area["settings"]["id"]];frame.document.open();frame.eAs=eAs;frame.area_id=area["settings"]["id"];frame.document.area_id=area["settings"]["id"];frame.document.write(template);frame.document.close();},toggle:function(id,toggle_to){if(!toggle_to)toggle_to=(eAs[id]["displayed"]==true)?"off":"on";if(eAs[id]["displayed"]==true &&toggle_to=="off"){this.toggle_off(id);}
5
+ else if(eAs[id]["displayed"]==false &&toggle_to=="on"){this.toggle_on(id);}return false;},toggle_off:function(id){if(window.frames["frame_"+id]){var frame=window.frames["frame_"+id];if(frame.editArea.fullscreen['isFull'])frame.editArea.toggle_full_screen(false);eAs[id]["displayed"]=false;eAs[id]["textarea"].wrap="off";setAttribute(eAs[id]["textarea"],"wrap","off");var parNod=eAs[id]["textarea"].parentNode;var nxtSib=eAs[id]["textarea"].nextSibling;parNod.removeChild(eAs[id]["textarea"]);parNod.insertBefore(eAs[id]["textarea"],nxtSib);eAs[id]["textarea"].value=frame.editArea.textarea.value;var selStart=frame.editArea.last_selection["selectionStart"];var selEnd=frame.editArea.last_selection["selectionEnd"];var scrollTop=frame.document.getElementById("result").scrollTop;var scrollLeft=frame.document.getElementById("result").scrollLeft;document.getElementById("frame_"+id).style.display='none';eAs[id]["textarea"].style.display="inline";eAs[id]["textarea"].focus();if(this.nav['isIE']){eAs[id]["textarea"].selectionStart=selStart;eAs[id]["textarea"].selectionEnd=selEnd;eAs[id]["textarea"].focused=true;set_IE_selection(eAs[id]["textarea"]);}
6
+ else{if(this.nav['isOpera']){eAs[id]["textarea"].setSelectionRange(0,0);}try{eAs[id]["textarea"].setSelectionRange(selStart,selEnd);}catch(e){};}eAs[id]["textarea"].scrollTop=scrollTop;eAs[id]["textarea"].scrollLeft=scrollLeft;frame.editArea.execCommand("toggle_off");}},toggle_on:function(id){if(window.frames["frame_"+id]){var frame=window.frames["frame_"+id];area=window.frames["frame_"+id].editArea;area.textarea.value=eAs[id]["textarea"].value;var selStart=0;var selEnd=0;var scrollTop=0;var scrollLeft=0;if(eAs[id]["textarea"].use_last==true){var selStart=eAs[id]["textarea"].last_selectionStart;var selEnd=eAs[id]["textarea"].last_selectionEnd;var scrollTop=eAs[id]["textarea"].last_scrollTop;var scrollLeft=eAs[id]["textarea"].last_scrollLeft;eAs[id]["textarea"].use_last=false;}
7
+ else{try{var selStart=eAs[id]["textarea"].selectionStart;var selEnd=eAs[id]["textarea"].selectionEnd;var scrollTop=eAs[id]["textarea"].scrollTop;var scrollLeft=eAs[id]["textarea"].scrollLeft;}catch(ex){}}this.set_editarea_size_from_textarea(id,document.getElementById("frame_"+id));eAs[id]["textarea"].style.display="none";document.getElementById("frame_"+id).style.display="inline";area.execCommand("focus");eAs[id]["displayed"]=true;area.execCommand("update_size");window.frames["frame_"+id].document.getElementById("result").scrollTop=scrollTop;window.frames["frame_"+id].document.getElementById("result").scrollLeft=scrollLeft;area.area_select(selStart,selEnd-selStart);area.execCommand("toggle_on");}
8
+ else{var elem=document.getElementById(id);elem.last_selectionStart=elem.selectionStart;elem.last_selectionEnd=elem.selectionEnd;elem.last_scrollTop=elem.scrollTop;elem.last_scrollLeft=elem.scrollLeft;elem.use_last=true;eAL.start(id);}},set_editarea_size_from_textarea:function(id,frame){var elem=document.getElementById(id);var width=Math.max(eAs[id]["settings"]["min_width"],elem.offsetWidth)+"px";var height=Math.max(eAs[id]["settings"]["min_height"],elem.offsetHeight)+"px";if(elem.style.width.indexOf("%")!=-1)width=elem.style.width;if(elem.style.height.indexOf("%")!=-1)height=elem.style.height;frame.style.width=width;frame.style.height=height;},set_base_url:function(){if (!this.baseURL){var elements=document.getElementsByTagName('script');for (var i=0;i<elements.length;i++){if (elements[i].src&&elements[i].src.match(/edit_area_[^\\\/]*$/i)){var src=elements[i].src;src=src.substring(0,src.lastIndexOf('/'));this.baseURL=src;this.file_name=elements[i].src.substr(elements[i].src.lastIndexOf("/")+1);break;}}}var documentBasePath=document.location.href;if (documentBasePath.indexOf('?')!=-1)documentBasePath=documentBasePath.substring(0,documentBasePath.indexOf('?'));var documentURL=documentBasePath;documentBasePath=documentBasePath.substring(0,documentBasePath.lastIndexOf('/'));if (this.baseURL.indexOf('://')==-1&&this.baseURL.charAt(0)!='/'){this.baseURL=documentBasePath+"/"+this.baseURL;}this.baseURL+="/";},get_button_html:function(id,img,exec,isFileSpecific,baseURL){if(!baseURL)baseURL=this.baseURL;var cmd='editArea.execCommand(\''+exec+'\')';html='<a id="a_'+id +'" href="javascript:'+cmd+'" onclick="'+cmd+';return false;" onmousedown="return false;" target="_self" fileSpecific="'+(isFileSpecific?'yes':'no')+'">';html+='<img id="'+id+'" src="'+baseURL +'images/'+img+'" title="{$'+id+'}" width="20" height="20" class="editAreaButtonNormal" onmouseover="editArea.switchClass(this,\'editAreaButtonOver\');" onmouseout="editArea.restoreClass(this);" onmousedown="editArea.restoreAndSwitchClass(this,\'editAreaButtonDown\');" /></a>';return html;},get_control_html:function(button_name,lang){for (var i=0;i<this.advanced_buttons.length;i++){var but=this.advanced_buttons[i];if (but[0]==button_name){return this.get_button_html(but[0],but[1],but[2],but[3]);}}switch (button_name){case "*":case "return":return "<br />";case "|":case "separator":return '<img src="'+this.baseURL +'images/spacer.gif" width="1" height="15" class="editAreaSeparatorLine">';case "select_font":html="<select id='area_font_size' onchange='javascript:editArea.execCommand(\"change_font_size\")' fileSpecific='yes'>" +"<option value='-1'>{$font_size}</option>" +"<option value='8'>8 pt</option>" +"<option value='9'>9 pt</option>" +"<option value='10'>10 pt</option>" +"<option value='11'>11 pt</option>" +"<option value='12'>12 pt</option>" +"<option value='14'>14 pt</option>" +"</select>";return html;case "syntax_selection":var html="<select id='syntax_selection' onchange='javascript:editArea.execCommand(\"change_syntax\",this.value)' fileSpecific='yes'>";html+="<option value='-1'>{$syntax_selection}</option>";html+="</select>";return html;}return "<span id='tmp_tool_"+button_name+"'>["+button_name+"]</span>";},get_template:function(){if(this.template==""){var xhr_object=null;if(window.XMLHttpRequest)xhr_object=new XMLHttpRequest();
9
+ else if(window.ActiveXObject)xhr_object=new ActiveXObject("Microsoft.XMLHTTP");
10
+ else{alert("XMLHTTPRequest not supported. EditArea not loaded");return;}xhr_object.open("GET",this.baseURL+"template.html",false);xhr_object.send(null);if(xhr_object.readyState==4)this.template=xhr_object.responseText;
11
+ else this.has_error();}},translate:function(text,lang,mode){if(mode=="word")text=eAL.get_word_translation(text,lang);
12
+ else if(mode="template"){eAL.current_language=lang;text=text.replace(/\{\$([^\}]+)\}/gm,eAL.translate_template);}return text;},translate_template:function(){return eAL.get_word_translation(EAL.prototype.translate_template.arguments[1],eAL.current_language);},get_word_translation:function(val,lang){for(var i in eAL.lang[lang]){if(i==val)return eAL.lang[lang][i];}return "_"+val;},load_script:function(url){if (this.loadedFiles[url])return;try{var script=document.createElement("script");script.type="text/javascript";script.src=url;script.charset="UTF-8";var head=document.getElementsByTagName("head");head[0].appendChild(script);}catch(e){document.write('<sc'+'ript language="javascript" type="text/javascript" src="'+url+'" charset="UTF-8"></sc'+'ript>');}this.loadedFiles[url]=true;},add_event:function(obj,name,handler){if (obj.attachEvent){obj.attachEvent("on"+name,handler);}
13
+ else{obj.addEventListener(name,handler,false);}},remove_event:function(obj,name,handler){if (obj.detachEvent)obj.detachEvent("on"+name,handler);
14
+ else obj.removeEventListener(name,handler,false);},reset:function(e){var formObj=eAL.nav['isIE'] ? window.event.srcElement:e.target;if(formObj.tagName!='FORM')formObj=formObj.form;for(var i in eAs){var is_child=false;for (var x=0;x<formObj.elements.length;x++){if(formObj.elements[x].id==i)is_child=true;}if(window.frames["frame_"+i]&&is_child&&eAs[i]["displayed"]==true){var exec='window.frames["frame_'+i +'"].editArea.textarea.value=document.getElementById("'+i +'").value;';exec+='window.frames["frame_'+i +'"].editArea.execCommand("focus");';exec+='window.frames["frame_'+i +'"].editArea.check_line_selection();';exec+='window.frames["frame_'+i +'"].editArea.execCommand("reset");';window.setTimeout(exec,10);}}return;},submit:function(e){var formObj=eAL.nav['isIE'] ? window.event.srcElement:e.target;if(formObj.tagName!='FORM')formObj=formObj.form;for(var i in eAs){var is_child=false;for (var x=0;x<formObj.elements.length;x++){if(formObj.elements[x].id==i)is_child=true;}if(is_child){if(window.frames["frame_"+i]&&eAs[i]["displayed"]==true)document.getElementById(i).value=window.frames["frame_"+i].editArea.textarea.value;eAL.execCommand(i,"EA_submit");}}if(typeof(formObj.edit_area_replaced_submit)=="function"){res=formObj.edit_area_replaced_submit();if(res==false){if(eAL.nav['isIE'])return false;
15
+ else e.preventDefault();}}return;},getValue:function(id){if(window.frames["frame_"+id]&&eAs[id]["displayed"]==true){return window.frames["frame_"+id].editArea.textarea.value;}
16
+ else if(elem=document.getElementById(id)){return elem.value;}return false;},setValue:function(id,new_val){if(window.frames["frame_"+id]&&eAs[id]["displayed"]==true){window.frames["frame_"+id].editArea.textarea.value=new_val;window.frames["frame_"+id].editArea.execCommand("focus");window.frames["frame_"+id].editArea.check_line_selection(false);window.frames["frame_"+id].editArea.execCommand("onchange");}
17
+ else if(elem=document.getElementById(id)){elem.value=new_val;}},getSelectionRange:function(id){var sel={"start":0,"end":0};if(window.frames["frame_"+id]&&eAs[id]["displayed"]==true){var editArea=window.frames["frame_"+id].editArea;sel["start"]=editArea.textarea.selectionStart;sel["end"]=editArea.textarea.selectionEnd;}
18
+ else if(elem=document.getElementById(id)){sel=getSelectionRange(elem);}return sel;},setSelectionRange:function(id,new_start,new_end){if(window.frames["frame_"+id]&&eAs[id]["displayed"]==true){window.frames["frame_"+id].editArea.area_select(new_start,new_end-new_start);if(!this.nav['isIE']){window.frames["frame_"+id].editArea.check_line_selection(false);window.frames["frame_"+id].editArea.scroll_to_view();}}
19
+ else if(elem=document.getElementById(id)){setSelectionRange(elem,new_start,new_end);}},getSelectedText:function(id){var sel=this.getSelectionRange(id);return this.getValue(id).substring(sel["start"],sel["end"]);},setSelectedText:function(id,new_val){new_val=new_val.replace(/\r/g,"");var sel=this.getSelectionRange(id);var text=this.getValue(id);if(window.frames["frame_"+id]&&eAs[id]["displayed"]==true){var scrollTop=window.frames["frame_"+id].document.getElementById("result").scrollTop;var scrollLeft=window.frames["frame_"+id].document.getElementById("result").scrollLeft;}
20
+ else{var scrollTop=document.getElementById(id).scrollTop;var scrollLeft=document.getElementById(id).scrollLeft;}text=text.substring(0,sel["start"])+new_val +text.substring(sel["end"]);this.setValue(id,text);var new_sel_end=sel["start"]+new_val.length;this.setSelectionRange(id,sel["start"],new_sel_end);if(new_val !=this.getSelectedText(id).replace(/\r/g,"")){this.setSelectionRange(id,sel["start"],new_sel_end+new_val.split("\n").length -1);}if(window.frames["frame_"+id]&&eAs[id]["displayed"]==true){window.frames["frame_"+id].document.getElementById("result").scrollTop=scrollTop;window.frames["frame_"+id].document.getElementById("result").scrollLeft=scrollLeft;window.frames["frame_"+id].editArea.execCommand("onchange");}
21
+ else{document.getElementById(id).scrollTop=scrollTop;document.getElementById(id).scrollLeft=scrollLeft;}},insertTags:function(id,open_tag,close_tag){var old_sel=this.getSelectionRange(id);text=open_tag+this.getSelectedText(id)+close_tag;eAL.setSelectedText(id,text);var new_sel=this.getSelectionRange(id);if(old_sel["end"] > old_sel["start"])this.setSelectionRange(id,new_sel["end"],new_sel["end"]);
22
+ else this.setSelectionRange(id,old_sel["start"]+open_tag.length,old_sel["start"]+open_tag.length);},hide:function(id){if(document.getElementById(id)&&!this.hidden[id]){this.hidden[id]=new Object();this.hidden[id]["selectionRange"]=this.getSelectionRange(id);if(document.getElementById(id).style.display!="none"){this.hidden[id]["scrollTop"]=document.getElementById(id).scrollTop;this.hidden[id]["scrollLeft"]=document.getElementById(id).scrollLeft;}if(window.frames["frame_"+id]){this.hidden[id]["toggle"]=eAs[id]["displayed"];if(window.frames["frame_"+id]&&eAs[id]["displayed"]==true){var scrollTop=window.frames["frame_"+id].document.getElementById("result").scrollTop;var scrollLeft=window.frames["frame_"+id].document.getElementById("result").scrollLeft;}
23
+ else{var scrollTop=document.getElementById(id).scrollTop;var scrollLeft=document.getElementById(id).scrollLeft;}this.hidden[id]["scrollTop"]=scrollTop;this.hidden[id]["scrollLeft"]=scrollLeft;if(eAs[id]["displayed"]==true)eAL.toggle_off(id);}var span=document.getElementById("EditAreaArroundInfos_"+id);if(span){span.style.display='none';}document.getElementById(id).style.display="none";}},show:function(id){if((elem=document.getElementById(id))&&this.hidden[id]){elem.style.display="inline";elem.scrollTop=this.hidden[id]["scrollTop"];elem.scrollLeft=this.hidden[id]["scrollLeft"];var span=document.getElementById("EditAreaArroundInfos_"+id);if(span){span.style.display='inline';}if(window.frames["frame_"+id]){elem.style.display="inline";if(this.hidden[id]["toggle"]==true)eAL.toggle_on(id);scrollTop=this.hidden[id]["scrollTop"];scrollLeft=this.hidden[id]["scrollLeft"];if(window.frames["frame_"+id]&&eAs[id]["displayed"]==true){window.frames["frame_"+id].document.getElementById("result").scrollTop=scrollTop;window.frames["frame_"+id].document.getElementById("result").scrollLeft=scrollLeft;}
24
+ else{elem.scrollTop=scrollTop;elem.scrollLeft=scrollLeft;}}sel=this.hidden[id]["selectionRange"];this.setSelectionRange(id,sel["start"],sel["end"]);delete this.hidden[id];}},getCurrentFile:function(id){return this.execCommand(id,'get_file',this.execCommand(id,'curr_file'));},getFile:function(id,file_id){return this.execCommand(id,'get_file',file_id);},getAllFiles:function(id){return this.execCommand(id,'get_all_files()');},openFile:function(id,file_infos){return this.execCommand(id,'open_file',file_infos);},closeFile:function(id,file_id){return this.execCommand(id,'close_file',file_id);},setFileEditedMode:function(id,file_id,to){var reg1=new RegExp('\\\\','g');var reg2=new RegExp('"','g');return this.execCommand(id,'set_file_edited_mode("'+file_id.replace(reg1,'\\\\').replace(reg2,'\\"')+'",'+to +')');},execCommand:function(id,cmd,fct_param){switch(cmd){case "EA_init":if(eAs[id]['settings']["EA_init_callback"].length>0)eval(eAs[id]['settings']["EA_init_callback"]+"('"+id +"');");break;case "EA_delete":if(eAs[id]['settings']["EA_delete_callback"].length>0)eval(eAs[id]['settings']["EA_delete_callback"]+"('"+id +"');");break;case "EA_submit":if(eAs[id]['settings']["submit_callback"].length>0)eval(eAs[id]['settings']["submit_callback"]+"('"+id +"');");break;}if(window.frames["frame_"+id]&&window.frames["frame_"+id].editArea){if(fct_param!=undefined)return eval('window.frames["frame_'+id +'"].editArea.'+cmd +'(fct_param);');
25
+ else return eval('window.frames["frame_'+id +'"].editArea.'+cmd +';');}return false;}};var eAL=new EAL();var eAs=new Object(); function getAttribute(elm,aname){try{var avalue=elm.getAttribute(aname );}catch(exept){}if(! avalue){for(var i=0;i < elm.attributes.length;i ++){var taName=elm.attributes [i] .name.toLowerCase();if(taName==aname){avalue=elm.attributes [i] .value;return avalue;}}}return avalue;};function setAttribute(elm,attr,val){if(attr=="class"){elm.setAttribute("className",val);elm.setAttribute("class",val);}
26
+ else{elm.setAttribute(attr,val);}};function getChildren(elem,elem_type,elem_attribute,elem_attribute_match,option,depth){if(!option)var option="single";if(!depth)var depth=-1;if(elem){var children=elem.childNodes;var result=null;var results=new Array();for (var x=0;x<children.length;x++){strTagName=new String(children[x].tagName);children_class="?";if(strTagName!="undefined"){child_attribute=getAttribute(children[x],elem_attribute);if((strTagName.toLowerCase()==elem_type.toLowerCase()||elem_type=="")&&(elem_attribute==""||child_attribute==elem_attribute_match)){if(option=="all"){results.push(children[x]);}
27
+ else{return children[x];}}if(depth!=0){result=getChildren(children[x],elem_type,elem_attribute,elem_attribute_match,option,depth-1);if(option=="all"){if(result.length>0){results=results.concat(result);}}
28
+ else if(result!=null){return result;}}}}if(option=="all")return results;}return null;};function isChildOf(elem,parent){if(elem){if(elem==parent)return true;while(elem.parentNode !='undefined'){return isChildOf(elem.parentNode,parent);}}return false;};function getMouseX(e){if(e!=null&&typeof(e.pageX)!="undefined"){return e.pageX;}
29
+ else{return (e!=null?e.x:event.x)+document.documentElement.scrollLeft;}};function getMouseY(e){if(e!=null&&typeof(e.pageY)!="undefined"){return e.pageY;}
30
+ else{return (e!=null?e.y:event.y)+document.documentElement.scrollTop;}};function calculeOffsetLeft(r){return calculeOffset(r,"offsetLeft")};function calculeOffsetTop(r){return calculeOffset(r,"offsetTop")};function calculeOffset(element,attr){var offset=0;while(element){offset+=element[attr];element=element.offsetParent}return offset;};function get_css_property(elem,prop){if(document.defaultView){return document.defaultView.getComputedStyle(elem,null).getPropertyValue(prop);}
31
+ else if(elem.currentStyle){var prop=prop.replace(/-\D/gi,function(sMatch){return sMatch.charAt(sMatch.length-1).toUpperCase();});return elem.currentStyle[prop];}
32
+ else return null;}var move_current_element;function start_move_element(e,id,frame){var elem_id=(e.target||e.srcElement).id;if(id)elem_id=id;if(!frame)frame=window;if(frame.event)e=frame.event;move_current_element=frame.document.getElementById(elem_id);move_current_element.frame=frame;frame.document.onmousemove=move_element;frame.document.onmouseup=end_move_element;mouse_x=getMouseX(e);mouse_y=getMouseY(e);move_current_element.start_pos_x=mouse_x-(move_current_element.style.left.replace("px","")||calculeOffsetLeft(move_current_element));move_current_element.start_pos_y=mouse_y-(move_current_element.style.top.replace("px","")||calculeOffsetTop(move_current_element));return false;};function end_move_element(e){move_current_element.frame.document.onmousemove="";move_current_element.frame.document.onmouseup="";move_current_element=null;};function move_element(e){if(move_current_element.frame&&move_current_element.frame.event)e=move_current_element.frame.event;var mouse_x=getMouseX(e);var mouse_y=getMouseY(e);var new_top=mouse_y-move_current_element.start_pos_y;var new_left=mouse_x-move_current_element.start_pos_x;var max_left=move_current_element.frame.document.body.offsetWidth-move_current_element.offsetWidth;max_top=move_current_element.frame.document.body.offsetHeight-move_current_element.offsetHeight;new_top=Math.min(Math.max(0,new_top),max_top);new_left=Math.min(Math.max(0,new_left),max_left);move_current_element.style.top=new_top+"px";move_current_element.style.left=new_left+"px";return false;};var nav=eAL.nav;function getSelectionRange(textarea){return {"start":textarea.selectionStart,"end":textarea.selectionEnd};};function setSelectionRange(textarea,start,end){textarea.focus();start=Math.max(0,Math.min(textarea.value.length,start));end=Math.max(start,Math.min(textarea.value.length,end));if(nav['isOpera']){textarea.selectionEnd=1;textarea.selectionStart=0;textarea.selectionEnd=1;textarea.selectionStart=0;}textarea.selectionStart=start;textarea.selectionEnd=end;if(nav['isIE'])set_IE_selection(textarea);};function get_IE_selection(textarea){if(textarea&&textarea.focused){if(!textarea.ea_line_height){var div=document.createElement("div");div.style.fontFamily=get_css_property(textarea,"font-family");div.style.fontSize=get_css_property(textarea,"font-size");div.style.visibility="hidden";div.innerHTML="0";document.body.appendChild(div);textarea.ea_line_height=div.offsetHeight;document.body.removeChild(div);}var range=document.selection.createRange();var stored_range=range.duplicate();stored_range.moveToElementText(textarea );stored_range.setEndPoint('EndToEnd',range );if(stored_range.parentElement()==textarea){var elem=textarea;var scrollTop=0;while(elem.parentNode){scrollTop+=elem.scrollTop;elem=elem.parentNode;}var relative_top=range.offsetTop-calculeOffsetTop(textarea)+scrollTop;var line_start=Math.round((relative_top / textarea.ea_line_height)+1);var line_nb=Math.round(range.boundingHeight / textarea.ea_line_height);var range_start=stored_range.text.length-range.text.length;var tab=textarea.value.substr(0,range_start).split("\n");range_start+=(line_start-tab.length)*2;textarea.selectionStart=range_start;var range_end=textarea.selectionStart+range.text.length;tab=textarea.value.substr(0,range_start+range.text.length).split("\n");range_end+=(line_start+line_nb-1-tab.length)*2;textarea.selectionEnd=range_end;}}setTimeout("get_IE_selection(document.getElementById('"+textarea.id +"'));",50);};function IE_textarea_focus(){event.srcElement.focused=true;}function IE_textarea_blur(){event.srcElement.focused=false;}function set_IE_selection(textarea){if(!window.closed){var nbLineStart=textarea.value.substr(0,textarea.selectionStart).split("\n").length-1;var nbLineEnd=textarea.value.substr(0,textarea.selectionEnd).split("\n").length-1;var range=document.selection.createRange();range.moveToElementText(textarea );range.setEndPoint('EndToStart',range );range.moveStart('character',textarea.selectionStart-nbLineStart);range.moveEnd('character',textarea.selectionEnd-nbLineEnd-(textarea.selectionStart-nbLineStart));range.select();}};eAL.waiting_loading["elements_functions.js"]="loaded";
33
+ EAL.prototype.start_resize_area=function(){document.onmouseup=eAL.end_resize_area;document.onmousemove=eAL.resize_area;eAL.toggle(eAL.resize["id"]);var textarea=eAs[eAL.resize["id"]]["textarea"];var div=document.getElementById("edit_area_resize");if(!div){div=document.createElement("div");div.id="edit_area_resize";div.style.border="dashed #888888 1px";}var width=textarea.offsetWidth -2;var height=textarea.offsetHeight -2;div.style.display="block";div.style.width=width+"px";div.style.height=height+"px";var father=textarea.parentNode;father.insertBefore(div,textarea);textarea.style.display="none";eAL.resize["start_top"]=calculeOffsetTop(div);eAL.resize["start_left"]=calculeOffsetLeft(div);};EAL.prototype.end_resize_area=function(e){document.onmouseup="";document.onmousemove="";var div=document.getElementById("edit_area_resize");var textarea=eAs[eAL.resize["id"]]["textarea"];var width=Math.max(eAs[eAL.resize["id"]]["settings"]["min_width"],div.offsetWidth-4);var height=Math.max(eAs[eAL.resize["id"]]["settings"]["min_height"],div.offsetHeight-4);if(eAL.nav['isIE']==6){width-=2;height-=2;}textarea.style.width=width+"px";textarea.style.height=height+"px";div.style.display="none";textarea.style.display="inline";textarea.selectionStart=eAL.resize["selectionStart"];textarea.selectionEnd=eAL.resize["selectionEnd"];eAL.toggle(eAL.resize["id"]);return false;};EAL.prototype.resize_area=function(e){var allow=eAs[eAL.resize["id"]]["settings"]["allow_resize"];if(allow=="both"||allow=="y"){new_y=getMouseY(e);var new_height=Math.max(20,new_y-eAL.resize["start_top"]);document.getElementById("edit_area_resize").style.height=new_height+"px";}if(allow=="both"||allow=="x"){new_x=getMouseX(e);var new_width=Math.max(20,new_x-eAL.resize["start_left"]);document.getElementById("edit_area_resize").style.width=new_width+"px";}return false;};eAL.waiting_loading["resize_area.js"]="loaded";
34
+ EAL.prototype.get_regexp=function(text_array){res="(\\b)(";for(i=0;i<text_array.length;i++){if(i>0)res+="|";res+=this.get_escaped_regexp(text_array[i]);}res+=")(\\b)";reg=new RegExp(res);return res;};EAL.prototype.get_escaped_regexp=function(str){return str.replace(/(\.|\?|\*|\+|\\|\(|\)|\[|\]|\}|\{|\$|\^|\|)/g,"\\$1");};EAL.prototype.init_syntax_regexp=function(){var lang_style=new Object();for(var lang in this.load_syntax){if(!this.syntax[lang]){this.syntax[lang]=new Object();this.syntax[lang]["keywords_reg_exp"]=new Object();this.keywords_reg_exp_nb=0;if(this.load_syntax[lang]['KEYWORDS']){param="g";if(this.load_syntax[lang]['KEYWORD_CASE_SENSITIVE']===false)param+="i";for(var i in this.load_syntax[lang]['KEYWORDS']){if(typeof(this.load_syntax[lang]['KEYWORDS'][i])=="function")continue;this.syntax[lang]["keywords_reg_exp"][i]=new RegExp(this.get_regexp(this.load_syntax[lang]['KEYWORDS'][i] ),param);this.keywords_reg_exp_nb++;}}if(this.load_syntax[lang]['OPERATORS']){var str="";var nb=0;for(var i in this.load_syntax[lang]['OPERATORS']){if(typeof(this.load_syntax[lang]['OPERATORS'][i])=="function")continue;if(nb>0)str+="|";str+=this.get_escaped_regexp(this.load_syntax[lang]['OPERATORS'][i]);nb++;}if(str.length>0)this.syntax[lang]["operators_reg_exp"]=new RegExp("("+str+")","g");}if(this.load_syntax[lang]['DELIMITERS']){var str="";var nb=0;for(var i in this.load_syntax[lang]['DELIMITERS']){if(typeof(this.load_syntax[lang]['DELIMITERS'][i])=="function")continue;if(nb>0)str+="|";str+=this.get_escaped_regexp(this.load_syntax[lang]['DELIMITERS'][i]);nb++;}if(str.length>0)this.syntax[lang]["delimiters_reg_exp"]=new RegExp("("+str+")","g");}var syntax_trace=new Array();this.syntax[lang]["quotes"]=new Object();var quote_tab=new Array();if(this.load_syntax[lang]['QUOTEMARKS']){for(var i in this.load_syntax[lang]['QUOTEMARKS']){if(typeof(this.load_syntax[lang]['QUOTEMARKS'][i])=="function")continue;var x=this.get_escaped_regexp(this.load_syntax[lang]['QUOTEMARKS'][i]);this.syntax[lang]["quotes"][x]=x;quote_tab[quote_tab.length]="("+x+"(?:[^"+x+"\\\\]*(\\\\\\\\)*(\\\\"+x+"?)?)*("+x+"|$))";syntax_trace.push(x);}}this.syntax[lang]["comments"]=new Object();if(this.load_syntax[lang]['COMMENT_SINGLE']){for(var i in this.load_syntax[lang]['COMMENT_SINGLE']){if(typeof(this.load_syntax[lang]['COMMENT_SINGLE'][i])=="function")continue;var x=this.get_escaped_regexp(this.load_syntax[lang]['COMMENT_SINGLE'][i]);quote_tab[quote_tab.length]="("+x+"(.|\\r|\\t)*(\\n|$))";syntax_trace.push(x);this.syntax[lang]["comments"][x]="\n";}}if(this.load_syntax[lang]['COMMENT_MULTI']){for(var i in this.load_syntax[lang]['COMMENT_MULTI']){if(typeof(this.load_syntax[lang]['COMMENT_MULTI'][i])=="function")continue;var start=this.get_escaped_regexp(i);var end=this.get_escaped_regexp(this.load_syntax[lang]['COMMENT_MULTI'][i]);quote_tab[quote_tab.length]="("+start+"(.|\\n|\\r)*?("+end+"|$))";syntax_trace.push(start);syntax_trace.push(end);this.syntax[lang]["comments"][i]=this.load_syntax[lang]['COMMENT_MULTI'][i];}}if(quote_tab.length>0)this.syntax[lang]["comment_or_quote_reg_exp"]=new RegExp("("+quote_tab.join("|")+")","gi");if(syntax_trace.length>0)this.syntax[lang]["syntax_trace_regexp"]=new RegExp("((.|\n)*?)(\\\\*("+syntax_trace.join("|")+"|$))","gmi");if(this.load_syntax[lang]['SCRIPT_DELIMITERS']){this.syntax[lang]["script_delimiters"]=new Object();for(var i in this.load_syntax[lang]['SCRIPT_DELIMITERS']){if(typeof(this.load_syntax[lang]['SCRIPT_DELIMITERS'][i])=="function")continue;this.syntax[lang]["script_delimiters"][i]=this.load_syntax[lang]['SCRIPT_DELIMITERS'];}}this.syntax[lang]["custom_regexp"]=new Object();if(this.load_syntax[lang]['REGEXPS']){for(var i in this.load_syntax[lang]['REGEXPS']){if(typeof(this.load_syntax[lang]['REGEXPS'][i])=="function")continue;var val=this.load_syntax[lang]['REGEXPS'][i];if(!this.syntax[lang]["custom_regexp"][val['execute']])this.syntax[lang]["custom_regexp"][val['execute']]=new Object();this.syntax[lang]["custom_regexp"][val['execute']][i]={'regexp':new RegExp(val['search'],val['modifiers']),'class':val['class']};}}if(this.load_syntax[lang]['STYLES']){lang_style[lang]=new Object();for(var i in this.load_syntax[lang]['STYLES']){if(typeof(this.load_syntax[lang]['STYLES'][i])=="function")continue;if(typeof(this.load_syntax[lang]['STYLES'][i])!="string"){for(var j in this.load_syntax[lang]['STYLES'][i]){lang_style[lang][j]=this.load_syntax[lang]['STYLES'][i][j];}}
35
+ else{lang_style[lang][i]=this.load_syntax[lang]['STYLES'][i];}}}var style="";for(var i in lang_style[lang]){if(lang_style[lang][i].length>0){style+="."+lang +" ."+i.toLowerCase()+" span{"+lang_style[lang][i]+"}\n";style+="."+lang +" ."+i.toLowerCase()+"{"+lang_style[lang][i]+"}\n";}}this.syntax[lang]["styles"]=style;}}};eAL.waiting_loading["reg_syntax.js"]="loaded";
36
+ var editAreaLoader= eAL;var editAreas=eAs;EditAreaLoader=EAL;editAreaLoader.iframe_script= "<script type='text/javascript'> à EA(){Á.error=Ì;Á.inlinePopup=new Array({popup_id:\"area_search_replace\",icon_id:\"search\"},{popup_id:\"edit_area_help\",icon_id:\"help\"});Á.plugins=new Object();Á.line_number=0;Á.nav=È.eAL.nav;Á.É=new Object();Á.last_text_to_highlight=\"\";Á.last_hightlighted_text=\"\";Á.syntax_list=new Array();Á.allready_used_syntax=new Object();Á.check_line_selection_timer=50;Á.ÂFocused=Ì;Á.highlight_selection_line=null;Á.previous=new Array();Á.next=new Array();Á.last_undo=\"\";Á.files=new Object();Á.filesIdAssoc=new Object();Á.curr_file='';Á.assocBracket=new Object();Á.revertAssocBracket=new Object();Á.assocBracket[\"(\"]=\")\";Á.assocBracket[\"{\"]=\"}\";Á.assocBracket[\"[\"]=\"]\";for(var index in Á.assocBracket){Á.revertAssocBracket[Á.assocBracket[index]]=index;}Á.is_editable=Ë;Á.lineHeight=16;Á.tab_nb_char=8;if(Á.nav['isOpera'])Á.tab_nb_char=6;Á.is_tabbing=Ì;Á.fullscreen={'isFull':Ì};Á.isResizing=Ì;Á.id=area_id;Á.Å=eAs[Á.id][\"Å\"];if((\"\"+Á.Å['replace_tab_by_spaces']).match(/^[0-9]+$/)){Á.tab_nb_char=Á.Å['replace_tab_by_spaces'];Á.tabulation=\"\";for(var i=0;i<Á.tab_nb_char;i++)Á.tabulation+=\" \";}\nelse{Á.tabulation=\"\t\";}if(Á.Å[\"syntax_selection_allow\"]&&Á.Å[\"syntax_selection_allow\"].Æ>0)Á.syntax_list=Á.Å[\"syntax_selection_allow\"].replace(/ /g,\"\").split(\",\");if(Á.Å['syntax'])Á.allready_used_syntax[Á.Å['syntax']]=Ë;};EA.Ä.update_size=Ã(){if(eAs[eA.id]&&eAs[eA.id][\"displayed\"]==Ë){if(eA.fullscreen['isFull']){È.document.getElementById(\"frame_\"+eA.id).Ç.width=È.document.getElementsByTagName(\"html\")[0].clientWidth+\"px\";È.document.getElementById(\"frame_\"+eA.id).Ç.height=È.document.getElementsByTagName(\"html\")[0].clientHeight+\"px\";}if(eA.tab_browsing_area.Ç.display=='block'&&!eA.nav['isIE']){eA.tab_browsing_area.Ç.height=\"0px\";eA.tab_browsing_area.Ç.height=(eA.result.offsetTop-eA.tab_browsing_area.offsetTop -1)+\"px\";}var height=document.body.offsetHeight-eA.get_all_toolbar_height()-4;eA.result.Ç.height=height +\"px\";var width=document.body.offsetWidth -2;eA.result.Ç.width=width+\"px\";for(var i=0;i<eA.inlinePopup.Æ;i++){var popup=$(eA.inlinePopup[i][\"popup_id\"]);var max_left=document.body.offsetWidth-popup.offsetWidth;var max_top=document.body.offsetHeight-popup.offsetHeight;if(popup.offsetTop>max_top)popup.Ç.top=max_top+\"px\";if(popup.offsetLeft>max_left)popup.Ç.left=max_left+\"px\";}}};EA.Ä.init=Ã(){Á.Â=$(\"Â\");Á.container=$(\"container\");Á.result=$(\"result\");Á.content_highlight=$(\"content_highlight\");Á.selection_field=$(\"selection_field\");Á.processing_screen=$(\"processing\");Á.editor_area=$(\"editor\");Á.tab_browsing_area=$(\"tab_browsing_area\");if(!Á.Å['is_editable'])Á.set_editable(Ì);Á.set_show_line_colors(Á.Å['show_line_colors'] );if(syntax_selec=$(\"syntax_selection\")){for(var i=0;i<Á.syntax_list.Æ;i++){var syntax=Á.syntax_list[i];var option=document.createElement(\"option\");option.Ê=syntax;if(syntax==Á.Å['syntax'])option.selected=\"selected\";option.innerHTML=Á.get_translation(\"syntax_\"+syntax,\"word\");syntax_selec.appendChild(option);}}spans=È.getChildren($(\"toolbar_1\"),\"span\",\"\",\"\",\"all\",-1);for(var i=0;i<spans.Æ;i++){id=spans[i].id.replace(/tmp_tool_(.*)/,\"$1\");if(id!=spans[i].id){for(var j in Á.plugins){if(typeof(Á.plugins[j].get_control_html)==\"Ã\" ){html=Á.plugins[j].get_control_html(id);if(html!=Ì){html=Á.get_translation(html,\"template\");var new_span=document.createElement(\"span\");new_span.innerHTML=html;var father=spans[i].ÈNode;spans[i].ÈNode.replaceChild(new_span,spans[i]);break;}}}}}Á.Â.Ê=eAs[Á.id][\"Â\"].Ê;if(Á.Å[\"debug\"])Á.debug=È.document.getElementById(\"edit_area_debug_\"+Á.id);if($(\"redo\")!=null)Á.switchClassSticky($(\"redo\"),'editAreaButtonDisabled',Ë);if(typeof(È.eAL.syntax[Á.Å[\"syntax\"]])!=\"undefined\"){for(var i in È.eAL.syntax){Á.add_Ç(È.eAL.syntax[i][\"Çs\"]);}}if(Á.nav['isOpera'])$(\"editor\").onkeypress=keyDown;\nelse $(\"editor\").onkeydown=keyDown;for(var i=0;i<Á.inlinePopup.Æ;i++){if(Á.nav['isIE']||Á.nav['isFirefox'])$(Á.inlinePopup[i][\"popup_id\"]).onkeydown=keyDown;\nelse $(Á.inlinePopup[i][\"popup_id\"]).onkeypress=keyDown;}if(Á.Å[\"allow_resize\"]==\"both\"||Á.Å[\"allow_resize\"]==\"x\"||Á.Å[\"allow_resize\"]==\"y\")Á.allow_resize(Ë);È.eAL.toggle(Á.id,\"on\");Á.change_smooth_selection_mode(eA.smooth_selection);Á.execCommand(\"change_highlight\",Á.Å[\"start_highlight\"]);Á.set_font(eA.Å[\"font_family\"],eA.Å[\"font_size\"]);children=È.getChildren(document.body,\"\",\"selec\",\"none\",\"all\",-1);for(var i=0;i<children.Æ;i++){if(Á.nav['isIE'])children[i].unselectable=Ë;\nelse children[i].onmousedown=Ã(){return Ì};}if(Á.nav['isGecko']){Á.Â.spellcheck=Á.Å[\"gecko_spellcheck\"];}if(Á.nav['isFirefox'] >='3')Á.content_highlight.Ç.borderLeft=\"solid 1px transÈ\";if(Á.nav['isIE']){Á.Â.Ç.marginTop=\"-1px\";}if(Á.nav['isSafari'] ){Á.editor_area.Ç.position=\"absolute\";Á.Â.Ç.marginLeft=\"-3px\";Á.Â.Ç.marginTop=\"1px\";}if(Á.nav['isChrome'] ){Á.editor_area.Ç.position=\"absolute\";Á.Â.Ç.marginLeft=\"0px\";Á.Â.Ç.marginTop=\"0px\";}È.eAL.add_event(Á.result,\"click\",Ã(e){if((e.target||e.srcElement)==eA.result){eA.area_select(eA.Â.Ê.Æ,0);}});if(Á.Å['is_multi_files']!=Ì)Á.open_file({'id':Á.curr_file,'text':''});Á.set_wrap_text(Á.Å['wrap_text'] );setTimeout(\"eA.focus();eA.manage_size();eA.execCommand('EA_load');\",10);Á.check_undo();Á.check_line_selection(Ë);Á.scroll_to_view();for(var i in Á.plugins){if(typeof(Á.plugins[i].onload)==\"Ã\")Á.plugins[i].onload();}if(Á.Å['fullscreen']==Ë)Á.toggle_full_screen(Ë);È.eAL.add_event(window,\"resize\",eA.update_size);È.eAL.add_event(È.window,\"resize\",eA.update_size);È.eAL.add_event(top.window,\"resize\",eA.update_size);È.eAL.add_event(window,\"unload\",Ã(){if(eAs[eA.id]&&eAs[eA.id][\"displayed\"])eA.execCommand(\"EA_unload\");});};EA.Ä.manage_size=Ã(onlyOneTime){if(!eAs[Á.id])return Ì;if(eAs[Á.id][\"displayed\"]==Ë&&Á.ÂFocused){var resized=Ì;if(Á.Å['wrap_text']){}\nelse{var area_width=Á.Â.scrollWidth;var area_height=Á.Â.scrollHeight;if(Á.nav['isOpera']){area_width=10000;}}if(Á.Â.previous_scrollWidth!=area_width){Á.container.Ç.width=area_width+\"px\";Á.Â.Ç.width=area_width+\"px\";Á.content_highlight.Ç.width=area_width+\"px\";Á.Â.previous_scrollWidth=area_width;resized=Ë;}var area_height=Á.Â.scrollHeight;if(Á.nav['isOpera']){area_height=Á.É['nb_line']*Á.lineHeight;}if(Á.nav['isGecko']&&Á.smooth_selection&&Á.É[\"nb_line\"])area_height=Á.É[\"nb_line\"]*Á.lineHeight;if(Á.Â.previous_scrollHeight!=area_height){Á.container.Ç.height=(area_height+2)+\"px\";Á.Â.Ç.height=area_height+\"px\";Á.content_highlight.Ç.height=area_height+\"px\";Á.Â.previous_scrollHeight=area_height;resized=Ë;}if(Á.É[\"nb_line\"] >=Á.line_number){var div_line_number=\"\";for(i=Á.line_number+1;i<Á.É[\"nb_line\"]+100;i++){div_line_number+=i+\"<br />\";Á.line_number++;}var span=document.createElement(\"span\");if(Á.nav['isIE'])span.unselectable=Ë;span.innerHTML=div_line_number;$(\"line_number\").appendChild(span);}Á.Â.scrollTop=\"0px\";Á.Â.scrollLeft=\"0px\";if(resized==Ë){Á.scroll_to_view();}}if(!onlyOneTime)setTimeout(\"eA.manage_size();\",100);};EA.Ä.add_event=Ã(obj,name,handler){if (Á.nav['isIE']){obj.attachEvent(\"on\"+name,handler);}\nelse{obj.addEventListener(name,handler,Ì);}};EA.Ä.execCommand=Ã(cmd,param){for(var i in Á.plugins){if(typeof(Á.plugins[i].execCommand)==\"Ã\"){if(!Á.plugins[i].execCommand(cmd,param))return;}}switch(cmd){case \"save\":if(Á.Å[\"save_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"save_callback\"]+\"('\"+Á.id +\"',eA.Â.Ê);\");break;case \"load\":if(Á.Å[\"load_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"load_callback\"]+\"('\"+Á.id +\"');\");break;case \"onchange\":if(Á.Å[\"change_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"change_callback\"]+\"('\"+Á.id +\"');\");break;case \"EA_load\":if(Á.Å[\"EA_load_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"EA_load_callback\"]+\"('\"+Á.id +\"');\");break;case \"EA_unload\":if(Á.Å[\"EA_unload_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"EA_unload_callback\"]+\"('\"+Á.id +\"');\");break;case \"toggle_on\":if(Á.Å[\"EA_toggle_on_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"EA_toggle_on_callback\"]+\"('\"+Á.id +\"');\");break;case \"toggle_off\":if(Á.Å[\"EA_toggle_off_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"EA_toggle_off_callback\"]+\"('\"+Á.id +\"');\");break;case \"re_sync\":if(!Á.do_highlight)break;case \"file_switch_on\":if(Á.Å[\"EA_file_switch_on_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"EA_file_switch_on_callback\"]+\"(param);\");break;case \"file_switch_off\":if(Á.Å[\"EA_file_switch_off_callback\"].Æ>0)eval(\"È.\"+Á.Å[\"EA_file_switch_off_callback\"]+\"(param);\");break;case \"file_close\":if(Á.Å[\"EA_file_close_callback\"].Æ>0)return eval(\"È.\"+Á.Å[\"EA_file_close_callback\"]+\"(param);\");break;default:if(typeof(eval(\"eA.\"+cmd))==\"Ã\"){if(Á.Å[\"debug\"])eval(\"eA.\"+cmd +\"(param);\");\nelse try{eval(\"eA.\"+cmd +\"(param);\");}catch(e){};}}};EA.Ä.get_translation=Ã(word,mode){if(mode==\"template\")return È.eAL.translate(word,Á.Å[\"language\"],mode);\nelse return È.eAL.get_word_translation(word,Á.Å[\"language\"]);};EA.Ä.add_plugin=Ã(plug_name,plug_obj){for(var i=0;i<Á.Å[\"plugins\"].Æ;i++){if(Á.Å[\"plugins\"][i]==plug_name){Á.plugins[plug_name]=plug_obj;plug_obj.baseURL=È.eAL.baseURL+\"plugins/\"+plug_name+\"/\";if(typeof(plug_obj.init)==\"Ã\")plug_obj.init();}}};EA.Ä.load_css=Ã(url){try{link=document.createElement(\"link\");link.type=\"text/css\";link.rel=\"Çsheet\";link.media=\"all\";link.href=url;head=document.getElementsByTagName(\"head\");head[0].appendChild(link);}catch(e){document.write(\"<link href='\"+url +\"' rel='Çsheet' type='text/css' />\");}};EA.Ä.load_script=Ã(url){try{script=document.createElement(\"script\");script.type=\"text/javascript\";script.src =url;script.charset=\"UTF-8\";head=document.getElementsByTagName(\"head\");head[0].appendChild(script);}catch(e){document.write(\"<script type='text/javascript' src='\"+url+\"' charset=\\\"UTF-8\\\"><\"+\"/script>\");}};EA.Ä.add_lang=Ã(language,Ês){if(!È.eAL.lang[language])È.eAL.lang[language]=new Object();for(var i in Ês)È.eAL.lang[language][i]=Ês[i];};à $(id){return document.getElementById(id );};var eA=new EA();eA.add_event(window,\"load\",init);à init(){setTimeout(\"eA.init();\",10);}; EA.Ä.focus=Ã(){Á.Â.focus();Á.ÂFocused=Ë;};EA.Ä.check_line_selection=Ã(timer_checkup){if(!eAs[Á.id])return Ì;if(!Á.smooth_selection&&!Á.do_highlight){}\nelse if(Á.ÂFocused&&eAs[Á.id][\"displayed\"]==Ë&&Á.isResizing==Ì){infos=Á.get_selection_infos();if(Á.É[\"line_start\"] !=infos[\"line_start\"]||Á.É[\"line_nb\"] !=infos[\"line_nb\"]||infos[\"full_text\"] !=Á.É[\"full_text\"]||Á.reload_highlight){new_top=Á.lineHeight * (infos[\"line_start\"]-1);new_height=Math.max(0,Á.lineHeight * infos[\"line_nb\"]);new_width=Math.max(Á.Â.scrollWidth,Á.container.clientWidth -50);Á.selection_field.Ç.top=new_top+\"px\";Á.selection_field.Ç.width=new_width+\"px\";Á.selection_field.Ç.height=new_height+\"px\";$(\"cursor_pos\").Ç.top=new_top+\"px\";if(Á.do_highlight==Ë){var curr_text=infos[\"full_text\"].split(\"\\n\");var content=\"\";var start=Math.max(0,infos[\"line_start\"]-1);var end=Math.min(curr_text.Æ,infos[\"line_start\"]+infos[\"line_nb\"]-1);for(i=start;i< end;i++){content+=curr_text[i]+\"\\n\";}content=content.replace(/&/g,\"&amp;\");content=content.replace(/</g,\"&lt;\");content=content.replace(/>/g,\"&gt;\");if(Á.nav['isIE']||Á.nav['isOpera']||Á.nav['isFirefox'] >=3)Á.selection_field.innerHTML=\"<pre>\"+content.replace(\"\\n\",\"<br/>\")+\"</pre>\";\nelse Á.selection_field.innerHTML=content;if(Á.reload_highlight||(infos[\"full_text\"] !=Á.last_text_to_highlight&&(Á.É[\"line_start\"]!=infos[\"line_start\"]||Á.show_line_colors||Á.É[\"line_nb\"]!=infos[\"line_nb\"]||Á.É[\"nb_line\"]!=infos[\"nb_line\"])))Á.maj_highlight(infos);}}if(infos[\"line_start\"] !=Á.É[\"line_start\"]||infos[\"curr_pos\"] !=Á.É[\"curr_pos\"]||infos[\"full_text\"].Æ!=Á.É[\"full_text\"].Æ||Á.reload_highlight){var selec_char=infos[\"curr_line\"].charAt(infos[\"curr_pos\"]-1);var no_real_move=Ë;if(infos[\"line_nb\"]==1&&(Á.assocBracket[selec_char]||Á.revertAssocBracket[selec_char])){no_real_move=Ì;if(Á.findEndBracket(infos,selec_char)===Ë){$(\"end_bracket\").Ç.visibility=\"visible\";$(\"cursor_pos\").Ç.visibility=\"visible\";$(\"cursor_pos\").innerHTML=selec_char;$(\"end_bracket\").innerHTML=(Á.assocBracket[selec_char]||Á.revertAssocBracket[selec_char]);}\nelse{$(\"end_bracket\").Ç.visibility=\"hidden\";$(\"cursor_pos\").Ç.visibility=\"hidden\";}}\nelse{$(\"cursor_pos\").Ç.visibility=\"hidden\";$(\"end_bracket\").Ç.visibility=\"hidden\";}Á.displayToCursorPosition(\"cursor_pos\",infos[\"line_start\"],infos[\"curr_pos\"]-1,infos[\"curr_line\"],no_real_move);if(infos[\"line_nb\"]==1&&infos[\"line_start\"]!=Á.É[\"line_start\"])Á.scroll_to_view();}Á.É=infos;}if(timer_checkup){setTimeout(\"eA.check_line_selection(Ë)\",Á.check_line_selection_timer);}};EA.Ä.get_selection_infos=Ã(){if(Á.nav['isIE'])Á.getIESelection();start=Á.Â.selectionStart;end=Á.Â.selectionEnd;if(Á.É[\"selectionStart\"]==start&&Á.É[\"selectionEnd\"]==end&&Á.É[\"full_text\"]==Á.Â.Ê)return Á.É;if(Á.tabulation!=\"\t\"&&Á.Â.Ê.indexOf(\"\t\")!=-1){var len=Á.Â.Ê.Æ;Á.Â.Ê=Á.replace_tab(Á.Â.Ê);start=end=start+(Á.Â.Ê.Æ-len);Á.area_select(start,0);}var selections=new Object();selections[\"selectionStart\"]=start;selections[\"selectionEnd\"]=end;selections[\"full_text\"]=Á.Â.Ê;selections[\"line_start\"]=1;selections[\"line_nb\"]=1;selections[\"curr_pos\"]=0;selections[\"curr_line\"]=\"\";selections[\"indexOfCursor\"]=0;selections[\"selec_direction\"]=Á.É[\"selec_direction\"];var splitTab=selections[\"full_text\"].split(\"\\n\");var nbLine=Math.max(0,splitTab.Æ);var nbChar=Math.max(0,selections[\"full_text\"].Æ-(nbLine-1));if(selections[\"full_text\"].indexOf(\"\\r\")!=-1)nbChar=nbChar-(nbLine -1);selections[\"nb_line\"]=nbLine;selections[\"nb_char\"]=nbChar;if(start>0){var str=selections[\"full_text\"].substr(0,start);selections[\"curr_pos\"]=start-str.lastIndexOf(\"\\n\");selections[\"line_start\"]=Math.max(1,str.split(\"\\n\").Æ);}\nelse{selections[\"curr_pos\"]=1;}if(end>start){selections[\"line_nb\"]=selections[\"full_text\"].substring(start,end).split(\"\\n\").Æ;}selections[\"indexOfCursor\"]=Á.Â.selectionStart;selections[\"curr_line\"]=splitTab[Math.max(0,selections[\"line_start\"]-1)];if(selections[\"selectionStart\"]==Á.É[\"selectionStart\"]){if(selections[\"selectionEnd\"]>Á.É[\"selectionEnd\"])selections[\"selec_direction\"]=\"down\";\nelse if(selections[\"selectionEnd\"]==Á.É[\"selectionStart\"])selections[\"selec_direction\"]=Á.É[\"selec_direction\"];}\nelse if(selections[\"selectionStart\"]==Á.É[\"selectionEnd\"]&&selections[\"selectionEnd\"]>Á.É[\"selectionEnd\"]){selections[\"selec_direction\"]=\"down\";}\nelse{selections[\"selec_direction\"]=\"up\";}$(\"nbLine\").innerHTML=nbLine;$(\"nbChar\").innerHTML=nbChar;$(\"linePos\").innerHTML=selections[\"line_start\"];$(\"currPos\").innerHTML=selections[\"curr_pos\"];return selections;};EA.Ä.getIESelection=Ã(){var range=document.selection.createRange();var stored_range=range.duplicate();stored_range.moveToElementText(Á. );stored_range.setEndPoint('EndToEnd',range );if(stored_range.ÈElement()!=Á.Â)return;var scrollTop=Á.result.scrollTop+document.body.scrollTop;var relative_top=range.offsetTop-È.calculeOffsetTop(Á.Â)+scrollTop;var line_start=Math.round((relative_top / Á.lineHeight)+1);var line_nb=Math.round(range.boundingHeight / Á.lineHeight);var range_start=stored_range.text.Æ-range.text.Æ;var tab=Á.Â.Ê.substr(0,range_start).split(\"\\n\");range_start+=(line_start-tab.Æ)*2;Á.Â.selectionStart=range_start;var range_end=Á.Â.selectionStart+range.text.Æ;tab=Á.Â.Ê.substr(0,range_start+range.text.Æ).split(\"\\n\");range_end+=(line_start+line_nb-1-tab.Æ)*2;Á.Â.selectionEnd=range_end;};EA.Ä.setIESelection=Ã(){var nbLineStart=Á.Â.Ê.substr(0,Á.Â.selectionStart).split(\"\\n\").Æ-1;var nbLineEnd=Á.Â.Ê.substr(0,Á.Â.selectionEnd).split(\"\\n\").Æ-1;var range=document.selection.createRange();range.moveToElementText(Á. );range.setEndPoint('EndToStart',range );range.moveStart('character',Á.Â.selectionStart-nbLineStart);range.moveEnd('character',Á.Â.selectionEnd-nbLineEnd-(Á.Â.selectionStart-nbLineStart));range.select();};EA.Ä.tab_selection=Ã(){if(Á.is_tabbing)return;Á.is_tabbing=Ë;if(Á.nav['isIE'])Á.getIESelection();var start=Á.Â.selectionStart;var end=Á.Â.selectionEnd;var insText=Á.Â.Ê.substring(start,end);var pos_start=start;var pos_end=end;if (insText.Æ==0){Á.Â.Ê=Á.Â.Ê.substr(0,start)+Á.tabulation+Á.Â.Ê.substr(end);pos_start=start+Á.tabulation.Æ;pos_end=pos_start;}\nelse{start=Math.max(0,Á.Â.Ê.substr(0,start).lastIndexOf(\"\\n\")+1);endText=Á.Â.Ê.substr(end);startText=Á.Â.Ê.substr(0,start);tmp=Á.Â.Ê.substring(start,end).split(\"\\n\");insText=Á.tabulation+tmp.join(\"\\n\"+Á.tabulation);Á.Â.Ê=startText+insText+endText;pos_start=start;pos_end=Á.Â.Ê.indexOf(\"\\n\",startText.Æ+insText.Æ);if(pos_end==-1)pos_end=Á.Â.Ê.Æ;}Á.Â.selectionStart=pos_start;Á.Â.selectionEnd=pos_end;if(Á.nav['isIE']){Á.setIESelection();setTimeout(\"eA.is_tabbing=Ì;\",100);}\nelse Á.is_tabbing=Ì;};EA.Ä.invert_tab_selection=Ã(){if(Á.is_tabbing)return;Á.is_tabbing=Ë;if(Á.nav['isIE'])Á.getIESelection();var start=Á.Â.selectionStart;var end=Á.Â.selectionEnd;var insText=Á.Â.Ê.substring(start,end);var pos_start=start;var pos_end=end;if (insText.Æ==0){if(Á.Â.Ê.substring(start-Á.tabulation.Æ,start)==Á.tabulation){Á.Â.Ê=Á.Â.Ê.substr(0,start-Á.tabulation.Æ)+Á.Â.Ê.substr(end);pos_start=Math.max(0,start-Á.tabulation.Æ);pos_end=pos_start;}}\nelse{start=Á.Â.Ê.substr(0,start).lastIndexOf(\"\\n\")+1;endText=Á.Â.Ê.substr(end);startText=Á.Â.Ê.substr(0,start);tmp=Á.Â.Ê.substring(start,end).split(\"\\n\");insText=\"\";for(i=0;i<tmp.Æ;i++){for(j=0;j<Á.tab_nb_char;j++){if(tmp[i].charAt(0)==\"\t\"){tmp[i]=tmp[i].substr(1);j=Á.tab_nb_char;}\nelse if(tmp[i].charAt(0)==\" \")tmp[i]=tmp[i].substr(1);}insText+=tmp[i];if(i<tmp.Æ-1)insText+=\"\\n\";}Á.Â.Ê=startText+insText+endText;pos_start=start;pos_end=Á.Â.Ê.indexOf(\"\\n\",startText.Æ+insText.Æ);if(pos_end==-1)pos_end=Á.Â.Ê.Æ;}Á.Â.selectionStart=pos_start;Á.Â.selectionEnd=pos_end;if(Á.nav['isIE']){Á.setIESelection();setTimeout(\"eA.is_tabbing=Ì;\",100);}\nelse Á.is_tabbing=Ì;};EA.Ä.press_enter=Ã(){if(!Á.smooth_selection)return Ì;if(Á.nav['isIE'])Á.getIESelection();var scrollTop=Á.result.scrollTop;var scrollLeft=Á.result.scrollLeft;var start=Á.Â.selectionStart;var end=Á.Â.selectionEnd;var start_last_line=Math.max(0,Á.Â.Ê.substring(0,start).lastIndexOf(\"\\n\")+1 );var begin_line=Á.Â.Ê.substring(start_last_line,start).replace(/^([ \t]*).*/gm,\"$1\");if(begin_line==\"\\n\"||begin_line==\"\\r\"||begin_line.Æ==0)return Ì;if(Á.nav['isIE']||Á.nav['isOpera']){begin_line=\"\\r\\n\"+begin_line;}\nelse{begin_line=\"\\n\"+begin_line;}Á.Â.Ê=Á.Â.Ê.substring(0,start)+begin_line+Á.Â.Ê.substring(end);Á.area_select(start+begin_line.Æ ,0);if(Á.nav['isIE']){Á.result.scrollTop=scrollTop;Á.result.scrollLeft=scrollLeft;}return Ë;};EA.Ä.findEndBracket=Ã(infos,bracket){var start=infos[\"indexOfCursor\"];var normal_order=Ë;if(Á.assocBracket[bracket])endBracket=Á.assocBracket[bracket];\nelse if(Á.revertAssocBracket[bracket]){endBracket=Á.revertAssocBracket[bracket];normal_order=Ì;}var end=-1;var nbBracketOpen=0;for(var i=start;i<infos[\"full_text\"].Æ&&i>=0;){if(infos[\"full_text\"].charAt(i)==endBracket){nbBracketOpen--;if(nbBracketOpen<=0){end=i;break;}}\nelse if(infos[\"full_text\"].charAt(i)==bracket)nbBracketOpen++;if(normal_order)i++;\nelse i--;}if(end==-1)return Ì;var endLastLine=infos[\"full_text\"].substr(0,end).lastIndexOf(\"\\n\");if(endLastLine==-1)line=1;\nelse line=infos[\"full_text\"].substr(0,endLastLine).split(\"\\n\").Æ+1;var curPos=end-endLastLine;Á.displayToCursorPosition(\"end_bracket\",line,curPos,infos[\"full_text\"].substring(endLastLine +1,end));return Ë;};EA.Ä.displayToCursorPosition=Ã(id,start_line,cur_pos,lineContent,no_real_move){var elem=$(\"test_font_size\");var dest=$(id);var postLeft=0;elem.innerHTML=\"<pre><span id='test_font_size_inner'>\"+lineContent.substr(0,cur_pos).replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\")+\"</span></pre>\";posLeft=45+$('test_font_size_inner').offsetWidth;var posTop=Á.lineHeight * (start_line-1);if(no_real_move!=Ë){dest.Ç.top=posTop+\"px\";dest.Ç.left=posLeft+\"px\";}dest.cursor_top=posTop;dest.cursor_left=posLeft;};EA.Ä.area_select=Ã(start,Æ){Á.Â.focus();start=Math.max(0,Math.min(Á.Â.Ê.Æ,start));end=Math.max(start,Math.min(Á.Â.Ê.Æ,start+Æ));if(Á.nav['isIE']){Á.Â.selectionStart=start;Á.Â.selectionEnd=end;Á.setIESelection();}\nelse{if(Á.nav['isOpera']){Á.Â.setSelectionRange(0,0);}Á.Â.setSelectionRange(start,end);}Á.check_line_selection();};EA.Ä.area_get_selection=Ã(){var text=\"\";if(document.selection ){var range=document.selection.createRange();text=range.text;}\nelse{text=Á.Â.Ê.substring(Á.Â.selectionStart,Á.Â.selectionEnd);}return text;}; EA.Ä.replace_tab=Ã(text){return text.replace(/((\\n?)([^\t\\n]*)\t)/gi,eA.smartTab);};EA.Ä.smartTab=Ã(){val=\" \";return EA.Ä.smartTab.arguments[2]+EA.Ä.smartTab.arguments[3]+val.substr(0,eA.tab_nb_char-(EA.Ä.smartTab.arguments[3].Æ)%eA.tab_nb_char);};EA.Ä.show_waiting_screen=Ã(){width=Á.editor_area.offsetWidth;height=Á.editor_area.offsetHeight;if(Á.nav['isGecko']||Á.nav['isOpera']||Á.nav['isIE']>=7){width-=2;height-=2;}Á.processing_screen.Ç.display=\"block\";Á.processing_screen.Ç.width=width+\"px\";Á.processing_screen.Ç.height=height+\"px\";Á.waiting_screen_displayed=Ë;};EA.Ä.hide_waiting_screen=Ã(){Á.processing_screen.Ç.display=\"none\";Á.waiting_screen_displayed=Ì;};EA.Ä.add_Ç=Ã(Çs){if(Çs.Æ>0){newcss=document.createElement(\"Ç\");newcss.type=\"text/css\";newcss.media=\"all\";document.getElementsByTagName(\"head\")[0].appendChild(newcss);cssrules=Çs.split(\"}\");newcss=document.ÇSheets[0];if(newcss.rules){for(i=cssrules.Æ-2;i>=0;i--){newrule=cssrules[i].split(\"{\");newcss.addRule(newrule[0],newrule[1])}}\nelse if(newcss.cssRules){for(i=cssrules.Æ-1;i>=0;i--){if(cssrules[i].indexOf(\"{\")!=-1){newcss.insertRule(cssrules[i]+\"}\",0);}}}}};EA.Ä.set_font=Ã(family,size){var elems=new Array(\"Â\",\"content_highlight\",\"cursor_pos\",\"end_bracket\",\"selection_field\",\"line_number\");if(family&&family!=\"\")Á.Å[\"font_family\"]=family;if(size&&size>0)Á.Å[\"font_size\"]=size;if(Á.nav['isOpera'])Á.Å['font_family']=\"monospace\";var elem_font=$(\"area_font_size\");if(elem_font){for(var i=0;i<elem_font.Æ;i++){if(elem_font.options[i].Ê&&elem_font.options[i].Ê==Á.Å[\"font_size\"])elem_font.options[i].selected=Ë;}}elem=$(\"test_font_size\");elem.Ç.fontFamily=\"\"+Á.Å[\"font_family\"];elem.Ç.fontSize=Á.Å[\"font_size\"]+\"pt\";elem.innerHTML=\"0\";Á.lineHeight=elem.offsetHeight;for(var i=0;i<elems.Æ;i++){var elem=$(elems[i]);elem.Ç.fontFamily=Á.Å[\"font_family\"];elem.Ç.fontSize=Á.Å[\"font_size\"]+\"pt\";elem.Ç.lineHeight=Á.lineHeight+\"px\";}if(Á.nav['isOpera']){var start=Á.Â.selectionStart;var end=Á.Â.selectionEnd;var parNod=Á.Â.ÈNode,nxtSib=Á.Â.nextSibling;parNod.removeChild(Á.Â);parNod.insertBefore(Á.Â,nxtSib);Á.area_select(start,end-start);}Á.add_Ç(\"pre{font-family:\"+Á.Å[\"font_family\"]+\"}\");Á.last_line_selected=-1;Á.É=new Array();Á.resync_highlight();};EA.Ä.change_font_size=Ã(){var size=$(\"area_font_size\").Ê;if(size>0)Á.set_font(\"\",size);};EA.Ä.open_inline_popup=Ã(popup_id){Á.close_all_inline_popup();var popup=$(popup_id);var editor=$(\"editor\");for(var i=0;i<Á.inlinePopup.Æ;i++){if(Á.inlinePopup[i][\"popup_id\"]==popup_id){var icon=$(Á.inlinePopup[i][\"icon_id\"]);if(icon){Á.switchClassSticky(icon,'editAreaButtonSelected',Ë);break;}}}popup.Ç.height=\"auto\";popup.Ç.overflow=\"visible\";if(document.body.offsetHeight< popup.offsetHeight){popup.Ç.height=(document.body.offsetHeight-10)+\"px\";popup.Ç.overflow=\"auto\";}if(!popup.positionned){var new_left=editor.offsetWidth /2-popup.offsetWidth /2;var new_top=editor.offsetHeight /2-popup.offsetHeight /2;popup.Ç.left=new_left+\"px\";popup.Ç.top=new_top+\"px\";popup.positionned=Ë;}popup.Ç.visibility=\"visible\";};EA.Ä.close_inline_popup=Ã(popup_id){var popup=$(popup_id);for(var i=0;i<Á.inlinePopup.Æ;i++){if(Á.inlinePopup[i][\"popup_id\"]==popup_id){var icon=$(Á.inlinePopup[i][\"icon_id\"]);if(icon){Á.switchClassSticky(icon,'editAreaButtonNormal',Ì);break;}}}popup.Ç.visibility=\"hidden\";};EA.Ä.close_all_inline_popup=Ã(e){for(var i=0;i<Á.inlinePopup.Æ;i++){Á.close_inline_popup(Á.inlinePopup[i][\"popup_id\"]);}Á.Â.focus();};EA.Ä.show_help=Ã(){Á.open_inline_popup(\"edit_area_help\");};EA.Ä.new_document=Ã(){Á.Â.Ê=\"\";Á.area_select(0,0);};EA.Ä.get_all_toolbar_height=Ã(){var area=$(\"editor\");var results=È.getChildren(area,\"div\",\"class\",\"area_toolbar\",\"all\",\"0\");var height=0;for(var i=0;i<results.Æ;i++){height+=results[i].offsetHeight;}return height;};EA.Ä.go_to_line=Ã(line){if(!line){var icon=$(\"go_to_line\");if(icon !=null){Á.restoreClass(icon);Á.switchClassSticky(icon,'editAreaButtonSelected',Ë);}line=prompt(Á.get_translation(\"go_to_line_prompt\"));if(icon !=null)Á.switchClassSticky(icon,'editAreaButtonNormal',Ì);}if(line&&line!=null&&line.search(/^[0-9]+$/)!=-1){var start=0;var lines=Á.Â.Ê.split(\"\\n\");if(line > lines.Æ)start=Á.Â.Ê.Æ;\nelse{for(var i=0;i<Math.min(line-1,lines.Æ);i++)start+=lines[i].Æ+1;}Á.area_select(start,0);}};EA.Ä.change_smooth_selection_mode=Ã(setTo){if(Á.do_highlight)return;if(setTo !=null){if(setTo ===Ì)Á.smooth_selection=Ë;\nelse Á.smooth_selection=Ì;}var icon=$(\"change_smooth_selection\");Á.Â.focus();if(Á.smooth_selection===Ë){Á.switchClassSticky(icon,'editAreaButtonNormal',Ì);Á.smooth_selection=Ì;Á.selection_field.Ç.display=\"none\";$(\"cursor_pos\").Ç.display=\"none\";$(\"end_bracket\").Ç.display=\"none\";}\nelse{Á.switchClassSticky(icon,'editAreaButtonSelected',Ì);Á.smooth_selection=Ë;Á.selection_field.Ç.display=\"block\";$(\"cursor_pos\").Ç.display=\"block\";$(\"end_bracket\").Ç.display=\"block\";}};EA.Ä.scroll_to_view=Ã(show){if(!Á.smooth_selection)return;var zone=$(\"result\");var cursor_pos_top=$(\"cursor_pos\").cursor_top;if(show==\"bottom\")cursor_pos_top+=(Á.É[\"line_nb\"]-1)* Á.lineHeight;var max_height_visible=zone.clientHeight+zone.scrollTop;var miss_top=cursor_pos_top+Á.lineHeight-max_height_visible;if(miss_top>0){zone.scrollTop=zone.scrollTop+miss_top;}\nelse if(zone.scrollTop > cursor_pos_top){zone.scrollTop=cursor_pos_top;}var cursor_pos_left=$(\"cursor_pos\").cursor_left;var max_width_visible=zone.clientWidth+zone.scrollLeft;var miss_left=cursor_pos_left+10-max_width_visible;if(miss_left>0){zone.scrollLeft=zone.scrollLeft+miss_left+50;}\nelse if(zone.scrollLeft > cursor_pos_left){zone.scrollLeft=cursor_pos_left;}\nelse if(zone.scrollLeft==45){zone.scrollLeft=0;}};EA.Ä.check_undo=Ã(only_once){if(!eAs[Á.id])return Ì;if(Á.ÂFocused&&eAs[Á.id][\"displayed\"]==Ë){var text=Á.Â.Ê;if(Á.previous.Æ<=1)Á.switchClassSticky($(\"undo\"),'editAreaButtonDisabled',Ë);if(!Á.previous[Á.previous.Æ-1]||Á.previous[Á.previous.Æ-1][\"text\"] !=text){Á.previous.push({\"text\":text,\"selStart\":Á.Â.selectionStart,\"selEnd\":Á.Â.selectionEnd});if(Á.previous.Æ > Á.Å[\"max_undo\"]+1)Á.previous.shift();}if(Á.previous.Æ >=2)Á.switchClassSticky($(\"undo\"),'editAreaButtonNormal',Ì);}if(!only_once)setTimeout(\"eA.check_undo()\",3000);};EA.Ä.undo=Ã(){if(Á.previous.Æ > 0){if(Á.nav['isIE'])Á.getIESelection();Á.next.push({\"text\":Á.Â.Ê,\"selStart\":Á.Â.selectionStart,\"selEnd\":Á.Â.selectionEnd});var prev=Á.previous.pop();if(prev[\"text\"]==Á.Â.Ê&&Á.previous.Æ > 0)prev=Á.previous.pop();Á.Â.Ê=prev[\"text\"];Á.last_undo=prev[\"text\"];Á.area_select(prev[\"selStart\"],prev[\"selEnd\"]-prev[\"selStart\"]);Á.switchClassSticky($(\"redo\"),'editAreaButtonNormal',Ì);Á.resync_highlight(Ë);Á.check_file_changes();}};EA.Ä.redo=Ã(){if(Á.next.Æ > 0){var next=Á.next.pop();Á.previous.push(next);Á.Â.Ê=next[\"text\"];Á.last_undo=next[\"text\"];Á.area_select(next[\"selStart\"],next[\"selEnd\"]-next[\"selStart\"]);Á.switchClassSticky($(\"undo\"),'editAreaButtonNormal',Ì);Á.resync_highlight(Ë);Á.check_file_changes();}if(Á.next.Æ==0)Á.switchClassSticky($(\"redo\"),'editAreaButtonDisabled',Ë);};EA.Ä.check_redo=Ã(){if(eA.next.Æ==0||eA.Â.Ê!=eA.last_undo){eA.next=new Array();eA.switchClassSticky($(\"redo\"),'editAreaButtonDisabled',Ë);}\nelse{Á.switchClassSticky($(\"redo\"),'editAreaButtonNormal',Ì);}};EA.Ä.switchClass=Ã(element,class_name,lock_state){var lockChanged=Ì;if (typeof(lock_state)!=\"undefined\"&&element !=null){element.classLock=lock_state;lockChanged=Ë;}if (element !=null&&(lockChanged||!element.classLock)){element.oldClassName=element.className;element.className=class_name;}};EA.Ä.restoreAndSwitchClass=Ã(element,class_name){if (element !=null&&!element.classLock){Á.restoreClass(element);Á.switchClass(element,class_name);}};EA.Ä.restoreClass=Ã(element){if (element !=null&&element.oldClassName&&!element.classLock){element.className=element.oldClassName;element.oldClassName=null;}};EA.Ä.setClassLock=Ã(element,lock_state){if (element !=null)element.classLock=lock_state;};EA.Ä.switchClassSticky=Ã(element,class_name,lock_state){var lockChanged=Ì;if (typeof(lock_state)!=\"undefined\"&&element !=null){element.classLock=lock_state;lockChanged=Ë;}if (element !=null&&(lockChanged||!element.classLock)){element.className=class_name;element.oldClassName=class_name;}};EA.Ä.scroll_page=Ã(params){var dir=params[\"dir\"];var shift_pressed=params[\"shift\"];screen_height=$(\"result\").clientHeight;var lines=Á.Â.Ê.split(\"\\n\");var new_pos=0;var Æ=0;var char_left=0;var line_nb=0;if(dir==\"up\"){var scroll_line=Math.ceil((screen_height -30)/Á.lineHeight);if(Á.É[\"selec_direction\"]==\"up\"){for(line_nb=0;line_nb< Math.min(Á.É[\"line_start\"]-scroll_line,lines.Æ);line_nb++){new_pos+=lines[line_nb].Æ+1;}char_left=Math.min(lines[Math.min(lines.Æ-1,line_nb)].Æ,Á.É[\"curr_pos\"]-1);if(shift_pressed)Æ=Á.É[\"selectionEnd\"]-new_pos-char_left;Á.area_select(new_pos+char_left,Æ);view=\"top\";}\nelse{view=\"bottom\";for(line_nb=0;line_nb< Math.min(Á.É[\"line_start\"]+Á.É[\"line_nb\"]-1-scroll_line,lines.Æ);line_nb++){new_pos+=lines[line_nb].Æ+1;}char_left=Math.min(lines[Math.min(lines.Æ-1,line_nb)].Æ,Á.É[\"curr_pos\"]-1);if(shift_pressed){start=Math.min(Á.É[\"selectionStart\"],new_pos+char_left);Æ=Math.max(new_pos+char_left,Á.É[\"selectionStart\"] )-start;if(new_pos+char_left < Á.É[\"selectionStart\"])view=\"top\";}\nelse start=new_pos+char_left;Á.area_select(start,Æ);}}\nelse{var scroll_line=Math.floor((screen_height-30)/Á.lineHeight);if(Á.É[\"selec_direction\"]==\"down\"){view=\"bottom\";for(line_nb=0;line_nb< Math.min(Á.É[\"line_start\"]+Á.É[\"line_nb\"]-2+scroll_line,lines.Æ);line_nb++){if(line_nb==Á.É[\"line_start\"]-1)char_left=Á.É[\"selectionStart\"] -new_pos;new_pos+=lines[line_nb].Æ+1;}if(shift_pressed){Æ=Math.abs(Á.É[\"selectionStart\"]-new_pos);Æ+=Math.min(lines[Math.min(lines.Æ-1,line_nb)].Æ,Á.É[\"curr_pos\"]);Á.area_select(Math.min(Á.É[\"selectionStart\"],new_pos),Æ);}\nelse{Á.area_select(new_pos+char_left,0);}}\nelse{view=\"top\";for(line_nb=0;line_nb< Math.min(Á.É[\"line_start\"]+scroll_line-1,lines.Æ,lines.Æ);line_nb++){if(line_nb==Á.É[\"line_start\"]-1)char_left=Á.É[\"selectionStart\"] -new_pos;new_pos+=lines[line_nb].Æ+1;}if(shift_pressed){Æ=Math.abs(Á.É[\"selectionEnd\"]-new_pos-char_left);Æ+=Math.min(lines[Math.min(lines.Æ-1,line_nb)].Æ,Á.É[\"curr_pos\"])-char_left-1;Á.area_select(Math.min(Á.É[\"selectionEnd\"],new_pos+char_left),Æ);if(new_pos+char_left > Á.É[\"selectionEnd\"])view=\"bottom\";}\nelse{Á.area_select(new_pos+char_left,0);}}}Á.check_line_selection();Á.scroll_to_view(view);};EA.Ä.start_resize=Ã(e){È.eAL.resize[\"id\"]=eA.id;È.eAL.resize[\"start_x\"]=(e)? e.pageX:event.x+document.body.scrollLeft;È.eAL.resize[\"start_y\"]=(e)? e.pageY:event.y+document.body.scrollTop;if(eA.nav['isIE']){eA.Â.focus();eA.getIESelection();}È.eAL.resize[\"selectionStart\"]=eA.Â.selectionStart;È.eAL.resize[\"selectionEnd\"]=eA.Â.selectionEnd;È.eAL.start_resize_area();};EA.Ä.toggle_full_screen=Ã(to){if(typeof(to)==\"undefined\")to=!Á.fullscreen['isFull'];var old=Á.fullscreen['isFull'];Á.fullscreen['isFull']=to;var icon=$(\"fullscreen\");if(to&&to!=old){var selStart=Á.Â.selectionStart;var selEnd=Á.Â.selectionEnd;var html=È.document.getElementsByTagName(\"html\")[0];var frame=È.document.getElementById(\"frame_\"+Á.id);Á.fullscreen['old_overflow']=È.get_css_property(html,\"overflow\");Á.fullscreen['old_height']=È.get_css_property(html,\"height\");Á.fullscreen['old_width']=È.get_css_property(html,\"width\");Á.fullscreen['old_scrollTop']=html.scrollTop;Á.fullscreen['old_scrollLeft']=html.scrollLeft;Á.fullscreen['old_zIndex']=È.get_css_property(frame,\"z-index\");if(Á.nav['isOpera']){html.Ç.height=\"100%\";html.Ç.width=\"100%\";}html.Ç.overflow=\"hidden\";html.scrollTop=0;html.scrollLeft=0;frame.Ç.position=\"absolute\";frame.Ç.width=html.clientWidth+\"px\";frame.Ç.height=html.clientHeight+\"px\";frame.Ç.display=\"block\";frame.Ç.zIndex=\"999999\";frame.Ç.top=\"0px\";frame.Ç.left=\"0px\";frame.Ç.top=\"-\"+È.calculeOffsetTop(frame)+\"px\";frame.Ç.left=\"-\"+È.calculeOffsetLeft(frame)+\"px\";Á.switchClassSticky(icon,'editAreaButtonSelected',Ì);Á.fullscreen['allow_resize']=Á.resize_allowed;Á.allow_resize(Ì);if(Á.nav['isFirefox']){È.eAL.execCommand(Á.id,\"update_size();\");Á.area_select(selStart,selEnd-selStart);Á.scroll_to_view();Á.focus();}\nelse{setTimeout(\"È.eAL.execCommand('\"+Á.id +\"','update_size();');eA.focus();\",10);}}\nelse if(to!=old){var selStart=Á.Â.selectionStart;var selEnd=Á.Â.selectionEnd;var frame=È.document.getElementById(\"frame_\"+Á.id);frame.Ç.position=\"static\";frame.Ç.zIndex=Á.fullscreen['old_zIndex'];var html=È.document.getElementsByTagName(\"html\")[0];if(Á.nav['isOpera']){html.Ç.height=\"auto\";html.Ç.width=\"auto\";html.Ç.overflow=\"auto\";}\nelse if(Á.nav['isIE']&&È!=top){html.Ç.overflow=\"auto\";}\nelse html.Ç.overflow=Á.fullscreen['old_overflow'];html.scrollTop=Á.fullscreen['old_scrollTop'];html.scrollTop=Á.fullscreen['old_scrollLeft'];È.eAL.hide(Á.id);È.eAL.show(Á.id);Á.switchClassSticky(icon,'editAreaButtonNormal',Ì);if(Á.fullscreen['allow_resize'])Á.allow_resize(Á.fullscreen['allow_resize']);if(Á.nav['isFirefox']){Á.area_select(selStart,selEnd-selStart);setTimeout(\"eA.scroll_to_view();\",10);}}};EA.Ä.allow_resize=Ã(allow){var resize=$(\"resize_area\");if(allow){resize.Ç.visibility=\"visible\";È.eAL.add_event(resize,\"mouseup\",eA.start_resize);}\nelse{resize.Ç.visibility=\"hidden\";È.eAL.remove_event(resize,\"mouseup\",eA.start_resize);}Á.resize_allowed=allow;};EA.Ä.change_syntax=Ã(new_syntax,is_waiting){if(new_syntax==Á.Å['syntax'])return Ë;var founded=Ì;for(var i=0;i<Á.syntax_list.Æ;i++){if(Á.syntax_list[i]==new_syntax)founded=Ë;}if(founded==Ë){if(!È.eAL.load_syntax[new_syntax]){if(!is_waiting)È.eAL.load_script(È.eAL.baseURL+\"reg_syntax/\"+new_syntax+\".js\");setTimeout(\"eA.change_syntax('\"+new_syntax +\"',Ë);\",100);Á.show_waiting_screen();}\nelse{if(!Á.allready_used_syntax[new_syntax]){È.eAL.init_syntax_regexp();Á.add_Ç(È.eAL.syntax[new_syntax][\"Çs\"]);Á.allready_used_syntax[new_syntax]=Ë;}var sel=$(\"syntax_selection\");if(sel&&sel.Ê!=new_syntax){for(var i=0;i<sel.Æ;i++){if(sel.options[i].Ê&&sel.options[i].Ê==new_syntax)sel.options[i].selected=Ë;}}Á.Å['syntax']=new_syntax;Á.resync_highlight(Ë);Á.hide_waiting_screen();return Ë;}}return Ì;};EA.Ä.set_editable=Ã(is_editable){if(is_editable){document.body.className=\"\";Á.Â.readOnly=Ì;Á.is_editable=Ë;}\nelse{document.body.className=\"non_editable\";Á.Â.readOnly=Ë;Á.is_editable=Ì;}if(eAs[Á.id][\"displayed\"]==Ë)Á.update_size();};EA.Ä.set_wrap_text=Ã(to){Á.Å['wrap_text']=to;if(Á.Å['wrap_text']){wrap_mode='soft';Á.container.className+=' wrap_text';}\nelse{wrap_mode='off';Á.container.className=Á.container.className.replace(/ wrap_text/g,'');}var t=Á.Â;t.wrap=wrap_mode;t.setAttribute('wrap',wrap_mode);if(!Á.nav['isIE']){var start=t.selectionStart,end=t.selectionEnd;var parNod=t.ÈNode,nxtSib=t.nextSibling;parNod.removeChild(t);parNod.insertBefore(t,nxtSib);Á.area_select(start,end-start);}};EA.Ä.open_file=Ã(Å){if(Å['id']!=\"undefined\"){var id=Å['id'];var new_file=new Object();new_file['id']=id;new_file['title']=id;new_file['text']=\"\";new_file['É']=\"\";new_file['last_text_to_highlight']=\"\";new_file['last_hightlighted_text']=\"\";new_file['previous']=new Array();new_file['next']=new Array();new_file['last_undo']=\"\";new_file['smooth_selection']=Á.Å['smooth_selection'];new_file['do_highlight']=Á.Å['start_highlight'];new_file['syntax']=Á.Å['syntax'];new_file['scroll_top']=0;new_file['scroll_left']=0;new_file['selection_start']=0;new_file['selection_end']=0;new_file['edited']=Ì;new_file['font_size']=Á.Å[\"font_size\"];new_file['font_family']=Á.Å[\"font_family\"];new_file['toolbar']={'links':{},'selects':{}};new_file['compare_edited_text']=new_file['text'];Á.files[id]=new_file;Á.update_file(id,Å);Á.files[id]['compare_edited_text']=Á.files[id]['text'];var html_id='tab_file_'+encodeURIComponent(id);Á.filesIdAssoc[html_id]=id;Á.files[id]['html_id']=html_id;if(!$(Á.files[id]['html_id'])&&id!=\"\"){Á.tab_browsing_area.Ç.display=\"block\";var elem=document.createElement('li');elem.id=Á.files[id]['html_id'];var close=\"<img src=\\\"\"+È.eAL.baseURL +\"images/close.gif\\\" title=\\\"\"+Á.get_translation('close_tab','word')+\"\\\" onclick=\\\"eA.execCommand('close_file',eA.filesIdAssoc['\"+html_id +\"']);return Ì;\\\" class=\\\"hidden\\\" onmouseover=\\\"Á.className=''\\\" onmouseout=\\\"Á.className='hidden'\\\" />\";elem.innerHTML=\"<a onclick=\\\"javascript:eA.execCommand('switch_to_file',eA.filesIdAssoc['\"+html_id +\"']);\\\" selec=\\\"none\\\"><b><span><strong class=\\\"edited\\\">*</strong>\"+Á.files[id]['title']+close +\"</span></b></a>\";$('tab_browsing_list').appendChild(elem);var elem=document.createElement('text');Á.update_size();}if(id!=\"\")Á.execCommand('file_open',Á.files[id]);Á.switch_to_file(id,Ë);return Ë;}\nelse return Ì;};EA.Ä.close_file=Ã(id){if(Á.files[id]){Á.save_file(id);if(Á.execCommand('file_close',Á.files[id])!==Ì){var li=$(Á.files[id]['html_id']);li.ÈNode.removeChild(li);if(id==Á.curr_file){var next_file=\"\";var is_next=Ì;for(var i in Á.files){if(is_next){next_file=i;break;}\nelse if(i==id)is_next=Ë;\nelse next_file=i;}Á.switch_to_file(next_file);}delete (Á.files[id]);Á.update_size();}}};EA.Ä.save_file=Ã(id){if(Á.files[id]){var save=Á.files[id];save['É']=Á.É;save['last_text_to_highlight']=Á.last_text_to_highlight;save['last_hightlighted_text']=Á.last_hightlighted_text;save['previous']=Á.previous;save['next']=Á.next;save['last_undo']=Á.last_undo;save['smooth_selection']=Á.smooth_selection;save['do_highlight']=Á.do_highlight;save['syntax']=Á.Å['syntax'];save['text']=Á.Â.Ê;save['scroll_top']=Á.result.scrollTop;save['scroll_left']=Á.result.scrollLeft;save['selection_start']=Á.É[\"selectionStart\"];save['selection_end']=Á.É[\"selectionEnd\"];save['font_size']=Á.Å[\"font_size\"];save['font_family']=Á.Å[\"font_family\"];save['toolbar']={'links':{},'selects':{}};var links=$(\"toolbar_1\").getElementsByTagName(\"a\");for(var i=0;i<links.Æ;i++){if(links[i].getAttribute('fileSpecific')=='yes'){var save_butt=new Object();var img=links[i].getElementsByTagName('img')[0];save_butt['classLock']=img.classLock;save_butt['className']=img.className;save_butt['oldClassName']=img.oldClassName;save['toolbar']['links'][links[i].id]=save_butt;}}var selects=$(\"toolbar_1\").getElementsByTagName(\"select\");for(var i=0;i<selects.Æ;i++){if(selects[i].getAttribute('fileSpecific')=='yes'){save['toolbar']['selects'][selects[i].id]=selects[i].Ê;}}Á.files[id]=save;return save;}\nelse return Ì;};EA.Ä.update_file=Ã(id,new_Ês){for(var i in new_Ês){Á.files[id][i]=new_Ês[i];}};EA.Ä.display_file=Ã(id){if(id==''){Á.Â.readOnly=Ë;Á.tab_browsing_area.Ç.display=\"none\";$(\"no_file_selected\").Ç.display=\"block\";Á.result.className=\"empty\";if(!Á.files[''])Á.open_file({id:''});}\nelse{Á.result.className=\"\";Á.Â.readOnly=!Á.is_editable;$(\"no_file_selected\").Ç.display=\"none\";Á.tab_browsing_area.Ç.display=\"block\";}Á.check_redo(Ë);Á.check_undo(Ë);Á.curr_file=id;var lis=Á.tab_browsing_area.getElementsByTagName('li');for(var i=0;i<lis.Æ;i++){if(lis[i].id==Á.files[id]['html_id'])lis[i].className='selected';\nelse lis[i].className='';}var new_file=Á.files[id];Á.Â.Ê=new_file['text'];Á.set_font(new_file['font_family'],new_file['font_size']);Á.area_select(new_file['É']['selection_start'],new_file['É']['selection_end']-new_file['É']['selection_start']);Á.manage_size(Ë);Á.result.scrollTop=new_file['scroll_top'];Á.result.scrollLeft=new_file['scroll_left'];Á.previous=new_file['previous'];Á.next=new_file['next'];Á.last_undo=new_file['last_undo'];Á.check_redo(Ë);Á.check_undo(Ë);Á.execCommand(\"change_highlight\",new_file['do_highlight']);Á.execCommand(\"change_syntax\",new_file['syntax']);Á.execCommand(\"change_smooth_selection_mode\",new_file['smooth_selection']);var links=new_file['toolbar']['links'];for(var i in links){if(img=$(i).getElementsByTagName('img')[0]){var save_butt=new Object();img.classLock=links[i]['classLock'];img.className=links[i]['className'];img.oldClassName=links[i]['oldClassName'];}}var selects=new_file['toolbar']['selects'];for(var i in selects){var options=$(i).options;for(var j=0;j<options.Æ;j++){if(options[j].Ê==selects[i])$(i).options[j].selected=Ë;}}};EA.Ä.switch_to_file=Ã(file_to_show,force_refresh){if(file_to_show!=Á.curr_file||force_refresh){Á.save_file(Á.curr_file);if(Á.curr_file!='')Á.execCommand('file_switch_off',Á.files[Á.curr_file]);Á.display_file(file_to_show);if(file_to_show!='')Á.execCommand('file_switch_on',Á.files[file_to_show]);}};EA.Ä.get_file=Ã(id){if(id==Á.curr_file)Á.save_file(id);return Á.files[id];};EA.Ä.get_all_files=Ã(){tmp_files=Á.files;Á.save_file(Á.curr_file);if(tmp_files[''])delete(Á.files['']);return tmp_files;};EA.Ä.check_file_changes=Ã(){var id=Á.curr_file;if(Á.files[id]&&Á.files[id]['compare_edited_text']!=undefined){if(Á.files[id]['compare_edited_text'].Æ==Á.Â.Ê.Æ&&Á.files[id]['compare_edited_text']==Á.Â.Ê){if(Á.files[id]['edited']!=Ì)Á.set_file_edited_mode(id,Ì);}\nelse{if(Á.files[id]['edited']!=Ë)Á.set_file_edited_mode(id,Ë);}}};EA.Ä.set_file_edited_mode=Ã(id,to){if(Á.files[id]&&$(Á.files[id]['html_id'])){var link=$(Á.files[id]['html_id']).getElementsByTagName('a')[0];if(to==Ë){link.className='edited';}\nelse{link.className='';if(id==Á.curr_file)text=Á.Â.Ê;\nelse text=Á.files[id]['text'];Á.files[id]['compare_edited_text']=text;}Á.files[id]['edited']=to;}};EA.Ä.set_show_line_colors=Ã(new_Ê){Á.show_line_colors=new_Ê;if(new_Ê)Á.selection_field.className +=' show_colors';\nelse Á.selection_field.className=Á.selection_field.className.replace(/ show_colors/g,'' );};var EA_keys={8:\"Retour arriere\",9:\"Tabulation\",12:\"Milieu (pave numerique)\",13:\"Entrer\",16:\"Shift\",17:\"Ctrl\",18:\"Alt\",19:\"Pause\",20:\"Verr Maj\",27:\"Esc\",32:\"Space\",33:\"Page up\",34:\"Page down\",35:\"End\",36:\"Begin\",37:\"Left\",38:\"Up\",39:\"Right\",40:\"Down\",44:\"Impr ecran\",45:\"Inser\",46:\"Suppr\",91:\"Menu Demarrer Windows / touche pomme Mac\",92:\"Menu Demarrer Windows\",93:\"Menu contextuel Windows\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"Verr Num\",145:\"Arret defil\"};à keyDown(e){if(!e){e=event;}for(var i in eA.plugins){if(typeof(eA.plugins[i].onkeydown)==\"Ã\"){if(eA.plugins[i].onkeydown(e)===Ì){if(eA.nav['isIE'])e.keyCode=0;return Ì;}}}var target_id=(e.target||e.srcElement).id;var use=Ì;if (EA_keys[e.keyCode])letter=EA_keys[e.keyCode];\nelse letter=String.fromCharCode(e.keyCode);var low_letter=letter.toLowerCase();if(letter==\"Page up\"&&!eA.nav['isOpera']){eA.execCommand(\"scroll_page\",{\"dir\":\"up\",\"shift\":ShiftPressed(e)});use=Ë;}\nelse if(letter==\"Page down\"&&!eA.nav['isOpera']){eA.execCommand(\"scroll_page\",{\"dir\":\"down\",\"shift\":ShiftPressed(e)});use=Ë;}\nelse if(eA.is_editable==Ì){return Ë;}\nelse if(letter==\"Tabulation\"&&target_id==\"Â\"&&!CtrlPressed(e)&&!AltPressed(e)){if(ShiftPressed(e))eA.execCommand(\"invert_tab_selection\");\nelse eA.execCommand(\"tab_selection\");use=Ë;if(eA.nav['isOpera']||(eA.nav['isFirefox']&&eA.nav['isMacOS']))setTimeout(\"eA.execCommand('focus');\",1);}\nelse if(letter==\"Entrer\"&&target_id==\"Â\"){if(eA.press_enter())use=Ë;}\nelse if(letter==\"Entrer\"&&target_id==\"area_search\"){eA.execCommand(\"area_search\");use=Ë;}\nelse if(letter==\"Esc\"){eA.execCommand(\"close_all_inline_popup\",e);use=Ë;}\nelse if(CtrlPressed(e)&&!AltPressed(e)&&!ShiftPressed(e)){switch(low_letter){case \"f\":eA.execCommand(\"area_search\");use=Ë;break;case \"r\":eA.execCommand(\"area_replace\");use=Ë;break;case \"q\":eA.execCommand(\"close_all_inline_popup\",e);use=Ë;break;case \"h\":eA.execCommand(\"change_highlight\");use=Ë;break;case \"g\":setTimeout(\"eA.execCommand('go_to_line');\",5);use=Ë;break;case \"e\":eA.execCommand(\"show_help\");use=Ë;break;case \"z\":use=Ë;eA.execCommand(\"undo\");break;case \"y\":use=Ë;eA.execCommand(\"redo\");break;default:break;}}if(eA.next.Æ > 0){setTimeout(\"eA.check_redo();\",10);}setTimeout(\"eA.check_file_changes();\",10);if(use){if(eA.nav['isIE'])e.keyCode=0;return Ì;}return Ë;};à AltPressed(e){if (window.event){return (window.event.altKey);}\nelse{if(e.modifiers)return (e.altKey||(e.modifiers % 2));\nelse return e.altKey;}};à CtrlPressed(e){if (window.event){return (window.event.ctrlKey);}\nelse{return (e.ctrlKey||(e.modifiers==2)||(e.modifiers==3)||(e.modifiers>5));}};à ShiftPressed(e){if (window.event){return (window.event.shiftKey);}\nelse{return (e.shiftKey||(e.modifiers>3));}}; EA.Ä.show_search=Ã(){if($(\"area_search_replace\").Ç.visibility==\"visible\"){Á.hidden_search();}\nelse{Á.open_inline_popup(\"area_search_replace\");var text=Á.area_get_selection();var search=text.split(\"\\n\")[0];$(\"area_search\").Ê=search;$(\"area_search\").focus();}};EA.Ä.hidden_search=Ã(){Á.close_inline_popup(\"area_search_replace\");};EA.Ä.area_search=Ã(mode){if(!mode)mode=\"search\";$(\"area_search_msg\").innerHTML=\"\";var search=$(\"area_search\").Ê;Á.Â.focus();Á.Â.ÂFocused=Ë;var infos=Á.get_selection_infos();var start=infos[\"selectionStart\"];var pos=-1;var pos_begin=-1;var Æ=search.Æ;if($(\"area_search_replace\").Ç.visibility!=\"visible\"){Á.show_search();return;}if(search.Æ==0){$(\"area_search_msg\").innerHTML=Á.get_translation(\"search_field_empty\");return;}if(mode!=\"replace\" ){if($(\"area_search_reg_exp\").checked)start++;\nelse start+=search.Æ;}if($(\"area_search_reg_exp\").checked){var opt=\"m\";if(!$(\"area_search_match_case\").checked)opt+=\"i\";var reg=new RegExp(search,opt);pos=infos[\"full_text\"].substr(start).search(reg);pos_begin=infos[\"full_text\"].search(reg);if(pos!=-1){pos+=start;Æ=infos[\"full_text\"].substr(start).match(reg)[0].Æ;}\nelse if(pos_begin!=-1){Æ=infos[\"full_text\"].match(reg)[0].Æ;}}\nelse{if($(\"area_search_match_case\").checked){pos=infos[\"full_text\"].indexOf(search,start);pos_begin=infos[\"full_text\"].indexOf(search);}\nelse{pos=infos[\"full_text\"].toLowerCase().indexOf(search.toLowerCase(),start);pos_begin=infos[\"full_text\"].toLowerCase().indexOf(search.toLowerCase());}}if(pos==-1&&pos_begin==-1){$(\"area_search_msg\").innerHTML=\"<strong>\"+search+\"</strong> \"+Á.get_translation(\"not_found\");return;}\nelse if(pos==-1&&pos_begin !=-1){begin=pos_begin;$(\"area_search_msg\").innerHTML=Á.get_translation(\"restart_search_at_begin\");}\nelse begin=pos;if(mode==\"replace\"&&pos==infos[\"indexOfCursor\"]){var replace=$(\"area_replace\").Ê;var new_text=\"\";if($(\"area_search_reg_exp\").checked){var opt=\"m\";if(!$(\"area_search_match_case\").checked)opt+=\"i\";var reg=new RegExp(search,opt);new_text=infos[\"full_text\"].substr(0,begin)+infos[\"full_text\"].substr(start).replace(reg,replace);}\nelse{new_text=infos[\"full_text\"].substr(0,begin)+replace+infos[\"full_text\"].substr(begin+Æ);}Á.Â.Ê=new_text;Á.area_select(begin,Æ);Á.area_search();}\nelse Á.area_select(begin,Æ);};EA.Ä.area_replace=Ã(){Á.area_search(\"replace\");};EA.Ä.area_replace_all=Ã(){var base_text=Á.Â.Ê;var search=$(\"area_search\").Ê;var replace=$(\"area_replace\").Ê;if(search.Æ==0){$(\"area_search_msg\").innerHTML=Á.get_translation(\"search_field_empty\");return;}var new_text=\"\";var nb_change=0;if($(\"area_search_reg_exp\").checked){var opt=\"mg\";if(!$(\"area_search_match_case\").checked)opt+=\"i\";var reg=new RegExp(search,opt);nb_change=infos[\"full_text\"].match(reg).Æ;new_text=infos[\"full_text\"].replace(reg,replace);}\nelse{if($(\"area_search_match_case\").checked){var tmp_tab=base_text.split(search);nb_change=tmp_tab.Æ -1;new_text=tmp_tab.join(replace);}\nelse{var lower_Ê=base_text.toLowerCase();var lower_search=search.toLowerCase();var start=0;var pos=lower_Ê.indexOf(lower_search);while(pos!=-1){nb_change++;new_text+=Á.Â.Ê.substring(start,pos)+replace;start=pos+search.Æ;pos=lower_Ê.indexOf(lower_search,pos+1);}new_text+=Á.Â.Ê.substring(start);}}if(new_text==base_text){$(\"area_search_msg\").innerHTML=\"<strong>\"+search+\"</strong> \"+Á.get_translation(\"not_found\");}\nelse{Á.Â.Ê=new_text;$(\"area_search_msg\").innerHTML=\"<strong>\"+nb_change+\"</strong> \"+Á.get_translation(\"occurrence_replaced\");setTimeout(\"eA.Â.focus();eA.Â.ÂFocused=Ë;\",100);}}; EA.Ä.change_highlight=Ã(change_to){if(Á.Å[\"syntax\"].Æ==0&&change_to==Ì){Á.switchClassSticky($(\"highlight\"),'editAreaButtonDisabled',Ë);Á.switchClassSticky($(\"reset_highlight\"),'editAreaButtonDisabled',Ë);return Ì;}if(Á.do_highlight==change_to)return Ì;if(Á.nav['isIE'])Á.getIESelection();var pos_start=Á.Â.selectionStart;var pos_end=Á.Â.selectionEnd;if(Á.do_highlight===Ë||change_to==Ì)Á.disable_highlight();\nelse Á.enable_highlight();Á.Â.focus();Á.Â.selectionStart=pos_start;Á.Â.selectionEnd=pos_end;if(Á.nav['isIE'])Á.setIESelection();};EA.Ä.disable_highlight=Ã(displayOnly){Á.selection_field.innerHTML=\"\";Á.content_highlight.Ç.visibility=\"hidden\";var new_Obj=Á.content_highlight.cloneNode(Ì);new_Obj.innerHTML=\"\";Á.content_highlight.ÈNode.insertBefore(new_Obj,Á.content_highlight);Á.content_highlight.ÈNode.removeChild(Á.content_highlight);Á.content_highlight=new_Obj;var old_class=È.getAttribute(Á.Â,\"class\");if(old_class){var new_class=old_class.replace(\"hidden\",\"\");È.setAttribute(Á.Â,\"class\",new_class);}Á.Â.Ç.backgroundColor=\"transÈ\";Á.switchClassSticky($(\"highlight\"),'editAreaButtonNormal',Ë);Á.switchClassSticky($(\"reset_highlight\"),'editAreaButtonDisabled',Ë);Á.do_highlight=Ì;Á.switchClassSticky($(\"change_smooth_selection\"),'editAreaButtonSelected',Ë);if(typeof(Á.smooth_selection_before_highlight)!=\"undefined\"&&Á.smooth_selection_before_highlight===Ì){Á.change_smooth_selection_mode(Ì);}};EA.Ä.enable_highlight=Ã(){Á.show_waiting_screen();Á.content_highlight.Ç.visibility=\"visible\";var new_class=È.getAttribute(Á.Â,\"class\")+\" hidden\";È.setAttribute(Á.Â,\"class\",new_class);if(Á.nav['isIE'])Á.Â.Ç.backgroundColor=\"#FFFFFF\";Á.switchClassSticky($(\"highlight\"),'editAreaButtonSelected',Ì);Á.switchClassSticky($(\"reset_highlight\"),'editAreaButtonNormal',Ì);Á.smooth_selection_before_highlight=Á.smooth_selection;if(!Á.smooth_selection)Á.change_smooth_selection_mode(Ë);Á.switchClassSticky($(\"change_smooth_selection\"),'editAreaButtonDisabled',Ë);Á.do_highlight=Ë;Á.resync_highlight();Á.hide_waiting_screen();};EA.Ä.maj_highlight=Ã(infos){if(Á.last_highlight_base_text==infos[\"full_text\"]&&Á.resync_highlight!==Ë)return;if(infos[\"full_text\"].indexOf(\"\\r\")!=-1)text_to_highlight=infos[\"full_text\"].replace(/\\r/g,\"\");\nelse text_to_highlight=infos[\"full_text\"];var start_line_pb=-1;var end_line_pb=-1;var stay_begin=\"\";var stay_end=\"\";var debug_opti=\"\";var date=new Date();var tps_start=date.getTime();var tps_middle_opti=date.getTime();if(Á.reload_highlight===Ë){Á.reload_highlight=Ì;}\nelse if(text_to_highlight.Æ==0){text_to_highlight=\"\\n \";}\nelse{var base_step=200;var cpt=0;var end=Math.min(text_to_highlight.Æ,Á.last_text_to_highlight.Æ);var step=base_step;while(cpt<end&&step>=1){if(Á.last_text_to_highlight.substr(cpt,step)==text_to_highlight.substr(cpt,step)){cpt+=step;}\nelse{step=Math.floor(step/2);}}var pos_start_change=cpt;var line_start_change=text_to_highlight.substr(0,pos_start_change).split(\"\\n\").Æ -1;cpt_last=Á.last_text_to_highlight.Æ;cpt=text_to_highlight.Æ;step=base_step;while(cpt>=0&&cpt_last>=0&&step>=1){if(Á.last_text_to_highlight.substr(cpt_last-step,step)==text_to_highlight.substr(cpt-step,step)){cpt-=step;cpt_last-=step;}\nelse{step=Math.floor(step/2);}}var pos_new_end_change=cpt;var pos_last_end_change=cpt_last;if(pos_new_end_change<=pos_start_change){if(Á.last_text_to_highlight.Æ < text_to_highlight.Æ){pos_new_end_change=pos_start_change+text_to_highlight.Æ-Á.last_text_to_highlight.Æ;pos_last_end_change=pos_start_change;}\nelse{pos_last_end_change=pos_start_change+Á.last_text_to_highlight.Æ-text_to_highlight.Æ;pos_new_end_change=pos_start_change;}}var change_new_text=text_to_highlight.substring(pos_start_change,pos_new_end_change);var change_last_text=Á.last_text_to_highlight.substring(pos_start_change,pos_last_end_change);var line_new_end_change=text_to_highlight.substr(0,pos_new_end_change).split(\"\\n\").Æ -1;var line_last_end_change=Á.last_text_to_highlight.substr(0,pos_last_end_change).split(\"\\n\").Æ -1;var change_new_text_line=text_to_highlight.split(\"\\n\").slice(line_start_change,line_new_end_change+1).join(\"\\n\");var change_last_text_line=Á.last_text_to_highlight.split(\"\\n\").slice(line_start_change,line_last_end_change+1).join(\"\\n\");var trace_new=Á.get_syntax_trace(change_new_text_line);var trace_last=Á.get_syntax_trace(change_last_text_line);if(trace_new==trace_last){date=new Date();tps_middle_opti=date.getTime();stay_begin=Á.last_hightlighted_text.split(\"\\n\").slice(0,line_start_change).join(\"\\n\");if(line_start_change>0)stay_begin+=\"\\n\";stay_end=Á.last_hightlighted_text.split(\"\\n\").slice(line_last_end_change+1).join(\"\\n\");if(stay_end.Æ>0)stay_end=\"\\n\"+stay_end;if(stay_begin.Æ==0&&pos_last_end_change==-1)change_new_text_line+=\"\\n\";text_to_highlight=change_new_text_line;}if(Á.Å[\"debug\"]){debug_opti=(trace_new==trace_last)?\"Optimisation\":\"No optimisation\";debug_opti+=\" start:\"+pos_start_change +\"(\"+line_start_change+\")\";debug_opti+=\" end_new:\"+pos_new_end_change+\"(\"+line_new_end_change+\")\";debug_opti+=\" end_last:\"+pos_last_end_change+\"(\"+line_last_end_change+\")\";debug_opti+=\"\\nchanged_text:\"+change_new_text+\" => trace:\"+trace_new;debug_opti+=\"\\nchanged_last_text:\"+change_last_text+\" => trace:\"+trace_last;debug_opti+=\"\\nchanged_line:\"+change_new_text_line;debug_opti+=\"\\nlast_changed_line:\"+change_last_text_line;debug_opti+=\"\\nstay_begin:\"+stay_begin.slice(-200);debug_opti+=\"\\nstay_end:\"+stay_end;debug_opti+=\"\\n\";}}date=new Date();tps_end_opti=date.getTime();var updated_highlight=Á.colorize_text(text_to_highlight);date=new Date();tps2=date.getTime();var hightlighted_text=stay_begin+updated_highlight+stay_end;date=new Date();inner1=date.getTime();var new_Obj=Á.content_highlight.cloneNode(Ì);if(Á.nav['isIE']||Á.nav['isOpera']||Á.nav['isFirefox'] >=3)new_Obj.innerHTML=\"<pre><span class='\"+Á.Å[\"syntax\"] +\"'>\"+hightlighted_text.replace(\"\\n\",\"<br/>\")+\"</span></pre>\";\nelse new_Obj.innerHTML=\"<span class='\"+Á.Å[\"syntax\"] +\"'>\"+hightlighted_text +\"</span>\";Á.content_highlight.ÈNode.replaceChild(new_Obj,Á.content_highlight);Á.content_highlight=new_Obj;if(infos[\"full_text\"].indexOf(\"\\r\")!=-1)Á.last_text_to_highlight=infos[\"full_text\"].replace(/\\r/g,\"\");\nelse Á.last_text_to_highlight=infos[\"full_text\"];Á.last_hightlighted_text=hightlighted_text;date=new Date();tps3=date.getTime();if(Á.Å[\"debug\"]){tot1=tps_end_opti-tps_start;tot_middle=tps_end_opti-tps_middle_opti;tot2=tps2-tps_end_opti;tps_join=inner1-tps2;tps_td2=tps3-inner1;Á.debug.Ê=\"Tps optimisation \"+tot1+\" (second part:\"+tot_middle+\")| tps reg exp:\"+tot2+\" | tps join:\"+tps_join;Á.debug.Ê+=\" | tps update highlight content:\"+tps_td2+\"(\"+tps3+\")\\n\";Á.debug.Ê+=debug_opti;}};EA.Ä.resync_highlight=Ã(reload_now){Á.reload_highlight=Ë;Á.last_highlight_base_text=\"\";Á.focus();if(reload_now)Á.check_line_selection(Ì);}; EA.Ä.comment_or_quote=Ã(){var new_class=\"\";var close_tag=\"\";for(var i in È.eAL.syntax[eA.current_code_lang][\"quotes\"]){if(EA.Ä.comment_or_quote.arguments[0].indexOf(i)==0){new_class=\"quotesmarks\";close_tag=È.eAL.syntax[eA.current_code_lang][\"quotes\"][i];}}if(new_class.Æ==0){for(var i in È.eAL.syntax[eA.current_code_lang][\"comments\"]){if(EA.Ä.comment_or_quote.arguments[0].indexOf(i)==0){new_class=\"comments\";close_tag=È.eAL.syntax[eA.current_code_lang][\"comments\"][i];}}}if(close_tag==\"\\n\"){return \"µ__\"+new_class +\"__µ\"+EA.Ä.comment_or_quote.arguments[0].replace(/(\\r?\\n)?$/m,\"µ_END_µ$1\");}\nelse{reg=new RegExp(È.eAL.get_escaped_regexp(close_tag)+\"$\",\"m\");if(EA.Ä.comment_or_quote.arguments[0].search(reg)!=-1)return \"µ__\"+new_class +\"__µ\"+EA.Ä.comment_or_quote.arguments[0]+\"µ_END_µ\";\nelse return \"µ__\"+new_class +\"__µ\"+EA.Ä.comment_or_quote.arguments[0];}};EA.Ä.get_syntax_trace=Ã(text){if(Á.Å[\"syntax\"].Æ>0&&È.eAL.syntax[Á.Å[\"syntax\"]][\"syntax_trace_regexp\"])return text.replace(È.eAL.syntax[Á.Å[\"syntax\"]][\"syntax_trace_regexp\"],\"$3\");};EA.Ä.colorize_text=Ã(text){text=\" \"+text;if(Á.Å[\"syntax\"].Æ>0)text=Á.apply_syntax(text,Á.Å[\"syntax\"]);return text.substr(1).replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/µ_END_µ/g,\"</span>\").replace(/µ__([a-zA-Z0-9]+)__µ/g,\"<span class='$1'>\");};EA.Ä.apply_syntax=Ã(text,lang){Á.current_code_lang=lang;if(!È.eAL.syntax[lang])return text;if(È.eAL.syntax[lang][\"custom_regexp\"]['before']){for(var i in È.eAL.syntax[lang][\"custom_regexp\"]['before']){var convert=\"$1µ__\"+È.eAL.syntax[lang][\"custom_regexp\"]['before'][i]['class'] +\"__µ$2µ_END_µ$3\";text=text.replace(È.eAL.syntax[lang][\"custom_regexp\"]['before'][i]['regexp'],convert);}}if(È.eAL.syntax[lang][\"comment_or_quote_reg_exp\"]){text=text.replace(È.eAL.syntax[lang][\"comment_or_quote_reg_exp\"],Á.comment_or_quote);}if(È.eAL.syntax[lang][\"keywords_reg_exp\"]){for(var i in È.eAL.syntax[lang][\"keywords_reg_exp\"]){text=text.replace(È.eAL.syntax[lang][\"keywords_reg_exp\"][i],'µ__'+i+'__µ$2µ_END_µ');}}if(È.eAL.syntax[lang][\"delimiters_reg_exp\"]){text=text.replace(È.eAL.syntax[lang][\"delimiters_reg_exp\"],'µ__delimiters__µ$1µ_END_µ');}if(È.eAL.syntax[lang][\"operators_reg_exp\"]){text=text.replace(È.eAL.syntax[lang][\"operators_reg_exp\"],'µ__operators__µ$1µ_END_µ');}if(È.eAL.syntax[lang][\"custom_regexp\"]['after']){for(var i in È.eAL.syntax[lang][\"custom_regexp\"]['after']){var convert=\"$1µ__\"+È.eAL.syntax[lang][\"custom_regexp\"]['after'][i]['class'] +\"__µ$2µ_END_µ$3\";text=text.replace(È.eAL.syntax[lang][\"custom_regexp\"]['after'][i]['regexp'],convert);}}return text;}; var EditArea_charmap={init:Ã(){Á.default_language=\"Arrows\";},get_control_html:Ã(ctrl_name){switch(ctrl_name){case \"charmap\":return È.eAL.get_button_html('charmap_but','charmap.gif','charmap_press',Ì,Á.baseURL);}return Ì;},onload:Ã(){if(eA.Å[\"charmap_default\"]&&eA.Å[\"charmap_default\"].Æ>0)Á.default_language=eA.Å[\"charmap_default\"];},onkeydown:Ã(e){},execCommand:Ã(cmd,param){switch(cmd){case \"charmap_press\":win=window.open(Á.baseURL+\"popup.html\",\"charmap\",\"width=500,height=270,scrollbars=yes,resizable=yes\");win.focus();return Ì;}return Ë;}};eA.add_plugin(\"charmap\",EditArea_charmap); var EditArea_test={init:Ã(){eA.load_css(Á.baseURL+\"css/test.css\");eA.load_script(Á.baseURL+\"test2.js\");},get_control_html:Ã(ctrl_name){switch(ctrl_name){case \"test_but\":return È.eAL.get_button_html('test_but','test.gif','test_cmd',Ì,Á.baseURL);case \"test_select\":html=\"<select id='test_select' onchange='javascript:eA.execCommand(\\\"test_select_change\\\")' fileSpecific='no'>\" +\" <option Ê='-1'>{$test_select}</option>\" +\" <option Ê='h1'>h1</option>\" +\" <option Ê='h2'>h2</option>\" +\" <option Ê='h3'>h3</option>\" +\" <option Ê='h4'>h4</option>\" +\" <option Ê='h5'>h5</option>\" +\" <option Ê='h6'>h6</option>\" +\" </select>\";return html;}return Ì;},onload:Ã(){alert(\"test load\");},onkeydown:Ã(e){var str=String.fromCharCode(e.keyCode);if(str.toLowerCase()==\"f\"){return Ë;}return Ì;},execCommand:Ã(cmd,param){switch(cmd){case \"test_select_change\":var val=document.getElementById(\"test_select\").Ê;if(val!=-1)È.eAL.insertTags(eA.id,\"<\"+val+\">\",\"</\"+val+\">\");document.getElementById(\"test_select\").options[0].selected=Ë;return Ì;case \"test_cmd\":alert(\"user clicked on test_cmd\");return Ì;}return Ë;},_someInternalFunction:Ã(a,b){return a+b;}};eA.add_plugin(\"test\",EditArea_test);var editArea= eA;EditArea=EA;</script>".replace(/Á/g,'this').replace(/Â/g,'textarea').replace(/Ã/g,'function').replace(/Ä/g,'prototype').replace(/Å/g,'settings').replace(/Æ/g,'length').replace(/Ç/g,'style').replace(/È/g,'parent').replace(/É/g,'last_selection').replace(/Ê/g,'value').replace(/Ë/g,'true').replace(/Ì/g,'false');
37
+ editAreaLoader.all_plugins_loaded=true;
38
+ editAreaLoader.template= "<?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" > <head> <title>EditArea</title> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /> [__CSSRULES__] [__JSCODE__] </head> <body> <div id='editor'> <div class='area_toolbar' id='toolbar_1'>[__TOOLBAR__]</div> <div class='area_toolbar' id='tab_browsing_area'><ul id='tab_browsing_list' class='menu'> <li> </li> </ul></div> <div id='result'> <div id='no_file_selected'></div> <div id='container'> <div id='cursor_pos' class='edit_area_cursor'>&nbsp;</div> <div id='end_bracket' class='edit_area_cursor'>&nbsp;</div> <div id='selection_field'></div> <div id='line_number' selec='none'></div> <div id='content_highlight'></div> <div id='test_font_size'></div> <textarea id='textarea' wrap='off' onchange='editArea.execCommand(\"onchange\");' onfocus='javascript:editArea.textareaFocused=true;' onblur='javascript:editArea.textareaFocused=false;'> </textarea> </div> </div> <div class='area_toolbar' id='toolbar_2'> <table class='statusbar' cellspacing='0' cellpadding='0'> <tr> <td class='total' selec='none'>{$position}:</td> <td class='infos' selec='none'> {$line_abbr} <span id='linePos'>0</span>, {$char_abbr} <span id='currPos'>0</span> </td> <td class='total' selec='none'>{$total}:</td> <td class='infos' selec='none'> {$line_abbr} <span id='nbLine'>0</span>, {$char_abbr} <span id='nbChar'>0</span> </td> <td class='resize'> <span id='resize_area'><img src='[__BASEURL__]images/statusbar_resize.gif' alt='resize' selec='none'></span> </td> </tr> </table> </div> </div> <div id='processing'> <div id='processing_text'> {$processing} </div> </div> <div id='area_search_replace' class='editarea_popup'> <table cellspacing='2' cellpadding='0' style='width: 100%'> <tr> <td selec='none'>{$search}</td> <td><input type='text' id='area_search' /></td> <td id='close_area_search_replace'> <a onclick='Javascript:editArea.execCommand(\"hidden_search\")'><img selec='none' src='[__BASEURL__]images/close.gif' alt='{$close_popup}' title='{$close_popup}' /></a><br /> </tr><tr> <td selec='none'>{$replace}</td> <td><input type='text' id='area_replace' /></td> <td><img id='move_area_search_replace' onmousedown='return parent.start_move_element(event,\"area_search_replace\", parent.frames[\"frame_\"+editArea.id]);' src='[__BASEURL__]images/move.gif' alt='{$move_popup}' title='{$move_popup}' /></td> </tr> </table> <div class='button'> <input type='checkbox' id='area_search_match_case' /><label for='area_search_match_case' selec='none'>{$match_case}</label> <input type='checkbox' id='area_search_reg_exp' /><label for='area_search_reg_exp' selec='none'>{$reg_exp}</label> <br /> <a onclick='Javascript:editArea.execCommand(\"area_search\")' selec='none'>{$find_next}</a> <a onclick='Javascript:editArea.execCommand(\"area_replace\")' selec='none'>{$replace}</a> <a onclick='Javascript:editArea.execCommand(\"area_replace_all\")' selec='none'>{$replace_all}</a><br /> </div> <div id='area_search_msg' selec='none'></div> </div> <div id='edit_area_help' class='editarea_popup'> <div class='close_popup'> <a onclick='Javascript:editArea.execCommand(\"close_all_inline_popup\")'><img src='[__BASEURL__]images/close.gif' alt='{$close_popup}' title='{$close_popup}' /></a> </div> <div><h2>Editarea [__EA_VERSION__]</h2><br /> <h3>{$shortcuts}:</h3> {$tab}: {$add_tab}<br /> {$shift}+{$tab}: {$remove_tab}<br /> {$ctrl}+f: {$search_command}<br /> {$ctrl}+r: {$replace_command}<br /> {$ctrl}+h: {$highlight}<br /> {$ctrl}+g: {$go_to_line}<br /> {$ctrl}+z: {$undo}<br /> {$ctrl}+y: {$redo}<br /> {$ctrl}+e: {$help}<br /> {$ctrl}+q, {$esc}: {$close_popup}<br /> {$accesskey} E: {$toggle}<br /> <br /> <em>{$about_notice}</em> <br /><div class='copyright'>&copy; Christophe Dolivet 2007-2008</div> </div> </div> </div> </body> </html> ";
39
+ editAreaLoader.iframe_css= "<style>body,html{margin:0;padding:0;height:100%;border:none;overflow:hidden;background-color:#FFF;}body,html,table,form,textarea{font:12px monospace,sans-serif;}#editor{border:solid #888 1px;overflow:visible;}#result{z-index:4;overflow-x:auto;overflow-y:scroll;border-top:solid #888 1px;border-bottom:solid #888 1px;position:relative;clear:both;}#result.empty{overflow:hidden;}#container{overflow:hidden;border:solid blue 0;position:relative;z-index:10;padding:0 5px 0 45px;}#textarea{position:relative;top:0;left:0;margin:0;padding:0;width:100%;height:100%;overflow:hidden;z-index:7;border-width:0;background-color:transparent;}#textarea,#textarea:hover{outline:none;}#content_highlight{white-space:pre;margin:0;padding:0;position:absolute;z-index:4;overflow:visible;}#selection_field{margin:0;background-color:#E1F2F9;height:1px;position:absolute;z-index:5;top:-100px;padding:0;white-space:pre;overflow:hidden;}#selection_field.show_colors{z-index:3;background-color:#EDF9FC;color:transparent;}#container.wrap_text #content_highlight,#container.wrap_text #selection_field{white-space:pre-wrap;white-space:-moz-pre-wrap !important;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;width:99%;}#line_number{position:absolute;overflow:hidden;border-right:solid black 1px;z-index:8;width:38px;padding:0 5px 0 0;margin:0 0 0 -45px;text-align:right;color:#AAAAAA;}#test_font_size{padding:0;margin:0;visibility:hidden;position:absolute;white-space:pre;}pre{margin:0;padding:0;}.hidden{opacity:0.2;filter:alpha(opacity=20);}#result .edit_area_cursor{position:absolute;z-index:6;background-color:#FF6633;top:-100px;margin:1px 0 0 0;}#result .edit_area_selection_field .overline{background-color:#996600;}.editarea_popup{border:solid 1px #888888;background-color:#ECE9D8;width:250px;padding:4px;position:absolute;visibility:hidden;z-index:15;top:-500px;}.editarea_popup,.editarea_popup table{font-family:sans-serif;font-size:10pt;}.editarea_popup img{border:0;}.editarea_popup .close_popup{float:right;line-height:16px;border:0;padding:0;}.editarea_popup h1,.editarea_popup h2,.editarea_popup h3,.editarea_popup h4,.editarea_popup h5,.editarea_popup h6{margin:0;padding:0;}.editarea_popup .copyright{text-align:right;}div#area_search_replace{}div#area_search_replace img{border:0;}div#area_search_replace div.button{text-align:center;line-height:1.7em;}div#area_search_replace .button a{cursor:pointer;border:solid 1px #888888;background-color:#DEDEDE;text-decoration:none;padding:0 2px;color:#000000;white-space:nowrap;}div#area_search_replace a:hover{background-color:#EDEDED;}div#area_search_replace #move_area_search_replace{cursor:move;border:solid 1px #888;}div#area_search_replace #close_area_search_replace{text-align:right;vertical-align:top;white-space:nowrap;}div#area_search_replace #area_search_msg{height:18px;overflow:hidden;border-top:solid 1px #888;margin-top:3px;}#edit_area_help{width:350px;}#edit_area_help div.close_popup{float:right;}.area_toolbar{width:100%;margin:0;padding:0;background-color:#ECE9D8;text-align:center;}.area_toolbar,.area_toolbar table{font:11px sans-serif;}.area_toolbar img{border:0;vertical-align:middle;}.area_toolbar input{margin:0;padding:0;}.area_toolbar select{font-family:'MS Sans Serif',sans-serif,Verdana,Arial;font-size:7pt;font-weight:normal;margin:2px 0 0 0 ;padding:0;vertical-align:top;background-color:#F0F0EE;}table.statusbar{width:100%;}.area_toolbar td.infos{text-align:center;width:130px;border-right:solid 1px #888;border-width:0 1px 0 0;padding:0;}.area_toolbar td.total{text-align:right;width:50px;padding:0;}.area_toolbar td.resize{text-align:right;}.area_toolbar span#resize_area{cursor:nw-resize;visibility:hidden;}.editAreaButtonNormal,.editAreaButtonOver,.editAreaButtonDown,.editAreaSeparator,.editAreaSeparatorLine,.editAreaButtonDisabled,.editAreaButtonSelected {border:0; margin:0; padding:0; background:transparent;margin-top:0;margin-left:1px;padding:0;}.editAreaButtonNormal {border:1px solid #ECE9D8 !important;cursor:pointer;}.editAreaButtonOver {border:1px solid #0A246A !important;cursor:pointer;background-color:#B6BDD2;}.editAreaButtonDown {cursor:pointer;border:1px solid #0A246A !important;background-color:#8592B5;}.editAreaButtonSelected {border:1px solid #C0C0BB !important;cursor:pointer;background-color:#F4F2E8;}.editAreaButtonDisabled {filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);-moz-opacity:0.3;opacity:0.3;border:1px solid #F0F0EE !important;cursor:pointer;}.editAreaSeparatorLine {margin:1px 2px;background-color:#C0C0BB;width:2px;height:18px;}#processing{display:none;background-color:#ECE9D8;border:solid #888 1px;position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;text-align:center;}#processing_text{position:absolute;left:50%;top:50%;width:200px;height:20px;margin-left:-100px;margin-top:-10px;text-align:center;}#tab_browsing_area{display:none;background-color:#CCC9A8;border-top:1px solid #888;text-align:left;margin:0;}#tab_browsing_list {padding:0;margin:0;list-style-type:none;white-space:nowrap;}#tab_browsing_list li {float:left;margin:-1px;}#tab_browsing_list a {position:relative;display:block;text-decoration:none;float:left;cursor:pointer;line-height:14px;}#tab_browsing_list a span {display:block;color:#000;background:#ECE9D8;border:1px solid #888;border-width:1px 1px 0;text-align:center;padding:2px 2px 1px 4px;position:relative;}#tab_browsing_list a b {display:block;border-bottom:2px solid #617994;}#tab_browsing_list a .edited {display:none;}#tab_browsing_list a.edited .edited {display:inline;}#tab_browsing_list a img{margin-left:7px;}#tab_browsing_list a.edited img{margin-left:3px;}#tab_browsing_list a:hover span {background:#F4F2E8;border-color:#0A246A;}#tab_browsing_list .selected a span{background:#046380;color:#FFF;}#no_file_selected{height:100%;width:150%;background:#CCC;display:none;z-index:20;position:absolute;}.non_editable #editor{border-width:0 1px;}.non_editable .area_toolbar{display:none;}#auto_completion_area{background:#FFF;border:solid 1px #888;position:absolute;z-index:15;width:280px;height:180px;overflow:auto;display:none;}#auto_completion_area a,#auto_completion_area a:visited{display:block;padding:0 2px 1px;color:#000;text-decoration:none;}#auto_completion_area a:hover,#auto_completion_area a:focus,#auto_completion_area a.focus{background:#D6E1FE;text-decoration:none;}#auto_completion_area ul{margin:0;padding:0;list-style:none inside;}#auto_completion_area li{padding:0;}#auto_completion_area .prefix{font-style:italic;padding:0 3px;}</style>";
@@ -0,0 +1,1098 @@
1
+ //replace tabulation by the good number of white spaces
2
+ EditArea.prototype.replace_tab= function(text){
3
+ return text.replace(/((\n?)([^\t\n]*)\t)/gi, editArea.smartTab); // slower than simple replace...
4
+ };
5
+
6
+ // call by the replace_tab function
7
+ EditArea.prototype.smartTab= function(){
8
+ val=" ";
9
+ return EditArea.prototype.smartTab.arguments[2] + EditArea.prototype.smartTab.arguments[3] + val.substr(0, editArea.tab_nb_char - (EditArea.prototype.smartTab.arguments[3].length)%editArea.tab_nb_char);
10
+ };
11
+
12
+ EditArea.prototype.show_waiting_screen= function(){
13
+ width= this.editor_area.offsetWidth;
14
+ height= this.editor_area.offsetHeight;
15
+ if(this.nav['isGecko'] || this.nav['isOpera'] || this.nav['isIE']>=7){
16
+ width-=2;
17
+ height-=2;
18
+ }
19
+ this.processing_screen.style.display="block";
20
+ this.processing_screen.style.width= width+"px";
21
+ this.processing_screen.style.height= height+"px";
22
+ this.waiting_screen_displayed= true;
23
+ };
24
+
25
+ EditArea.prototype.hide_waiting_screen= function(){
26
+ this.processing_screen.style.display="none";
27
+ this.waiting_screen_displayed= false;
28
+ };
29
+
30
+ EditArea.prototype.add_style= function(styles){
31
+ if(styles.length>0){
32
+ newcss = document.createElement("style");
33
+ newcss.type="text/css";
34
+ newcss.media="all";
35
+ document.getElementsByTagName("head")[0].appendChild(newcss);
36
+ cssrules = styles.split("}");
37
+ newcss = document.styleSheets[0];
38
+ if(newcss.rules) { //IE
39
+ for(i=cssrules.length-2;i>=0;i--) {
40
+ newrule = cssrules[i].split("{");
41
+ newcss.addRule(newrule[0],newrule[1])
42
+ }
43
+ }
44
+ else if(newcss.cssRules) { //Firefox etc
45
+ for(i=cssrules.length-1;i>=0;i--) {
46
+ if(cssrules[i].indexOf("{")!=-1){
47
+ newcss.insertRule(cssrules[i]+"}",0);
48
+ }
49
+ }
50
+ }
51
+ }
52
+ };
53
+
54
+ EditArea.prototype.set_font= function(family, size){
55
+ var elems= new Array("textarea", "content_highlight", "cursor_pos", "end_bracket", "selection_field", "line_number");
56
+ if(family && family!="")
57
+ this.settings["font_family"]= family;
58
+ if(size && size>0)
59
+ this.settings["font_size"]=size;
60
+ if(this.nav['isOpera']) // opera can't manage non monospace font
61
+ this.settings['font_family']="monospace";
62
+ var elem_font=$("area_font_size");
63
+ if(elem_font){
64
+ for(var i=0; i<elem_font.length; i++){
65
+ if(elem_font.options[i].value && elem_font.options[i].value == this.settings["font_size"])
66
+ elem_font.options[i].selected=true;
67
+ }
68
+ }
69
+
70
+ // calc line height
71
+ elem = $("test_font_size");
72
+ elem.style.fontFamily= ""+this.settings["font_family"];
73
+ elem.style.fontSize= this.settings["font_size"]+"pt";
74
+ elem.innerHTML="0";
75
+ this.lineHeight= elem.offsetHeight;
76
+
77
+
78
+ for(var i=0; i<elems.length; i++){
79
+ var elem= $(elems[i]);
80
+ elem.style.fontFamily= this.settings["font_family"];
81
+ elem.style.fontSize= this.settings["font_size"]+"pt";
82
+ elem.style.lineHeight= this.lineHeight+"px";
83
+
84
+ }
85
+ if(this.nav['isOpera']){ // opera doesn't update font change to the textarea
86
+ var start=this.textarea.selectionStart;
87
+ var end= this.textarea.selectionEnd;
88
+ var parNod = this.textarea.parentNode, nxtSib = this.textarea.nextSibling;
89
+ parNod.removeChild(this.textarea); parNod.insertBefore(this.textarea, nxtSib);
90
+ this.area_select(start, end-start);
91
+ }
92
+
93
+ this.add_style("pre{font-family:"+this.settings["font_family"]+"}");
94
+
95
+ //alert( getAttribute($("edit_area_test_font_size"), "style"));
96
+
97
+
98
+ //alert("font "+this.textarea.style.font);
99
+ // force update of selection field
100
+ this.last_line_selected=-1;
101
+ //if(this.state=="loaded"){
102
+ this.last_selection= new Array();
103
+ this.resync_highlight();
104
+ //}
105
+ /* this.last_selection["indexOfCursor"]=-1;
106
+ this.last_selection["curr_pos"]=-1;
107
+ this.last_selection["line_start"]=-1;
108
+ this.focus();*/
109
+ //this.check_line_selection(false);
110
+ //alert("line_h"+ this.lineHeight + " this.id: "+this.id+ "(size: "+size+")");
111
+ };
112
+
113
+ EditArea.prototype.change_font_size= function(){
114
+ var size=$("area_font_size").value;
115
+ if(size>0)
116
+ this.set_font("", size);
117
+ };
118
+
119
+
120
+ EditArea.prototype.open_inline_popup= function(popup_id){
121
+ this.close_all_inline_popup();
122
+ var popup= $(popup_id);
123
+ var editor= $("editor");
124
+
125
+ // search matching icon
126
+ for(var i=0; i<this.inlinePopup.length; i++){
127
+ if(this.inlinePopup[i]["popup_id"]==popup_id){
128
+ var icon= $(this.inlinePopup[i]["icon_id"]);
129
+ if(icon){
130
+ this.switchClassSticky(icon, 'editAreaButtonSelected', true);
131
+ break;
132
+ }
133
+ }
134
+ }
135
+ // check size
136
+ popup.style.height="auto";
137
+ popup.style.overflow= "visible";
138
+
139
+ if(document.body.offsetHeight< popup.offsetHeight){
140
+ popup.style.height= (document.body.offsetHeight-10)+"px";
141
+ popup.style.overflow= "auto";
142
+ }
143
+
144
+ if(!popup.positionned){
145
+ var new_left= editor.offsetWidth /2 - popup.offsetWidth /2;
146
+ var new_top= editor.offsetHeight /2 - popup.offsetHeight /2;
147
+ //var new_top= area.offsetHeight /2 - popup.offsetHeight /2;
148
+ //var new_left= area.offsetWidth /2 - popup.offsetWidth /2;
149
+ //alert("new_top: ("+new_top+") = calculeOffsetTop(area) ("+calculeOffsetTop(area)+") + area.offsetHeight /2("+ area.offsetHeight /2+") - popup.offsetHeight /2("+popup.offsetHeight /2+") - scrollTop: "+document.body.scrollTop);
150
+ popup.style.left= new_left+"px";
151
+ popup.style.top= new_top+"px";
152
+ popup.positionned=true;
153
+ }
154
+ popup.style.visibility="visible";
155
+
156
+ //popup.style.display="block";
157
+ };
158
+
159
+ EditArea.prototype.close_inline_popup= function(popup_id){
160
+ var popup= $(popup_id);
161
+ // search matching icon
162
+ for(var i=0; i<this.inlinePopup.length; i++){
163
+ if(this.inlinePopup[i]["popup_id"]==popup_id){
164
+ var icon= $(this.inlinePopup[i]["icon_id"]);
165
+ if(icon){
166
+ this.switchClassSticky(icon, 'editAreaButtonNormal', false);
167
+ break;
168
+ }
169
+ }
170
+ }
171
+
172
+ popup.style.visibility="hidden";
173
+ };
174
+
175
+ EditArea.prototype.close_all_inline_popup= function(e){
176
+ for(var i=0; i<this.inlinePopup.length; i++){
177
+ this.close_inline_popup(this.inlinePopup[i]["popup_id"]);
178
+ }
179
+ this.textarea.focus();
180
+ };
181
+
182
+ EditArea.prototype.show_help= function(){
183
+
184
+ this.open_inline_popup("edit_area_help");
185
+
186
+ };
187
+
188
+ EditArea.prototype.new_document= function(){
189
+ this.textarea.value="";
190
+ this.area_select(0,0);
191
+ };
192
+
193
+ EditArea.prototype.get_all_toolbar_height= function(){
194
+ var area= $("editor");
195
+ var results= parent.getChildren(area, "div", "class", "area_toolbar", "all", "0"); // search only direct children
196
+ //results= results.concat(getChildren(area, "table", "class", "area_toolbar", "all", "0"));
197
+ var height=0;
198
+ for(var i=0; i<results.length; i++){
199
+ height+= results[i].offsetHeight;
200
+ }
201
+ //alert("toolbar height: "+height);
202
+ return height;
203
+ };
204
+
205
+ EditArea.prototype.go_to_line= function(line){
206
+ if(!line)
207
+ {
208
+ var icon= $("go_to_line");
209
+ if(icon != null){
210
+ this.restoreClass(icon);
211
+ this.switchClassSticky(icon, 'editAreaButtonSelected', true);
212
+ }
213
+
214
+ line= prompt(this.get_translation("go_to_line_prompt"));
215
+ if(icon != null)
216
+ this.switchClassSticky(icon, 'editAreaButtonNormal', false);
217
+ }
218
+ if(line && line!=null && line.search(/^[0-9]+$/)!=-1){
219
+ var start=0;
220
+ var lines= this.textarea.value.split("\n");
221
+ if(line > lines.length)
222
+ start= this.textarea.value.length;
223
+ else{
224
+ for(var i=0; i<Math.min(line-1, lines.length); i++)
225
+ start+= lines[i].length + 1;
226
+ }
227
+ this.area_select(start, 0);
228
+ }
229
+
230
+
231
+ };
232
+
233
+
234
+ EditArea.prototype.change_smooth_selection_mode= function(setTo){
235
+ //alert("setTo: "+setTo);
236
+ if(this.do_highlight)
237
+ return;
238
+
239
+ if(setTo != null){
240
+ if(setTo === false)
241
+ this.smooth_selection=true;
242
+ else
243
+ this.smooth_selection=false;
244
+ }
245
+ var icon= $("change_smooth_selection");
246
+ this.textarea.focus();
247
+ if(this.smooth_selection===true){
248
+ //setAttribute(icon, "class", getAttribute(icon, "class").replace(/ selected/g, "") );
249
+ /*setAttribute(icon, "oldClassName", "editAreaButtonNormal" );
250
+ setAttribute(icon, "className", "editAreaButtonNormal" );*/
251
+ //this.restoreClass(icon);
252
+ //this.restoreAndSwitchClass(icon,'editAreaButtonNormal');
253
+ this.switchClassSticky(icon, 'editAreaButtonNormal', false);
254
+
255
+ this.smooth_selection=false;
256
+ this.selection_field.style.display= "none";
257
+ $("cursor_pos").style.display= "none";
258
+ $("end_bracket").style.display= "none";
259
+ }else{
260
+ //setAttribute(icon, "class", getAttribute(icon, "class") + " selected");
261
+ //this.switchClass(icon,'editAreaButtonSelected');
262
+ this.switchClassSticky(icon, 'editAreaButtonSelected', false);
263
+ this.smooth_selection=true;
264
+ this.selection_field.style.display= "block";
265
+ $("cursor_pos").style.display= "block";
266
+ $("end_bracket").style.display= "block";
267
+ }
268
+ };
269
+
270
+ // the auto scroll of the textarea has some lacks when it have to show cursor in the visible area when the textarea size change
271
+ // show specifiy whereas it is the "top" or "bottom" of the selection that is showned
272
+ EditArea.prototype.scroll_to_view= function(show){
273
+ if(!this.smooth_selection)
274
+ return;
275
+ var zone= $("result");
276
+
277
+ //var cursor_pos_top= parseInt($("cursor_pos").style.top.replace("px",""));
278
+ var cursor_pos_top= $("cursor_pos").cursor_top;
279
+ if(show=="bottom")
280
+ cursor_pos_top+= (this.last_selection["line_nb"]-1)* this.lineHeight;
281
+
282
+ var max_height_visible= zone.clientHeight + zone.scrollTop;
283
+ var miss_top= cursor_pos_top + this.lineHeight - max_height_visible;
284
+ if(miss_top>0){
285
+ //alert(miss_top);
286
+ zone.scrollTop= zone.scrollTop + miss_top;
287
+ }else if( zone.scrollTop > cursor_pos_top){
288
+ // when erase all the content -> does'nt scroll back to the top
289
+ //alert("else: "+cursor_pos_top);
290
+ zone.scrollTop= cursor_pos_top;
291
+ }
292
+ //var cursor_pos_left= parseInt($("cursor_pos").style.left.replace("px",""));
293
+ var cursor_pos_left= $("cursor_pos").cursor_left;
294
+ var max_width_visible= zone.clientWidth + zone.scrollLeft;
295
+ var miss_left= cursor_pos_left + 10 - max_width_visible;
296
+ if(miss_left>0){
297
+ zone.scrollLeft= zone.scrollLeft + miss_left + 50;
298
+ }else if( zone.scrollLeft > cursor_pos_left){
299
+ zone.scrollLeft= cursor_pos_left ;
300
+ }else if( zone.scrollLeft == 45){
301
+ // show the line numbers if textarea align to it's left
302
+ zone.scrollLeft=0;
303
+ }
304
+ };
305
+
306
+ EditArea.prototype.check_undo= function(only_once){
307
+ if(!editAreas[this.id])
308
+ return false;
309
+ if(this.textareaFocused && editAreas[this.id]["displayed"]==true){
310
+ var text=this.textarea.value;
311
+ if(this.previous.length<=1)
312
+ this.switchClassSticky($("undo"), 'editAreaButtonDisabled', true);
313
+
314
+ if(!this.previous[this.previous.length-1] || this.previous[this.previous.length-1]["text"] != text){
315
+ this.previous.push({"text": text, "selStart": this.textarea.selectionStart, "selEnd": this.textarea.selectionEnd});
316
+ if(this.previous.length > this.settings["max_undo"]+1)
317
+ this.previous.shift();
318
+
319
+ }
320
+ if(this.previous.length >= 2)
321
+ this.switchClassSticky($("undo"), 'editAreaButtonNormal', false);
322
+ }
323
+
324
+ if(!only_once)
325
+ setTimeout("editArea.check_undo()", 3000);
326
+ };
327
+
328
+ EditArea.prototype.undo= function(){
329
+ //alert("undo"+this.previous.length);
330
+ if(this.previous.length > 0){
331
+ if(this.nav['isIE'])
332
+ this.getIESelection();
333
+ // var pos_cursor=this.textarea.selectionStart;
334
+ this.next.push({"text": this.textarea.value, "selStart": this.textarea.selectionStart, "selEnd": this.textarea.selectionEnd});
335
+ var prev= this.previous.pop();
336
+ if(prev["text"]==this.textarea.value && this.previous.length > 0)
337
+ prev=this.previous.pop();
338
+ this.textarea.value= prev["text"];
339
+ this.last_undo= prev["text"];
340
+ this.area_select(prev["selStart"], prev["selEnd"]-prev["selStart"]);
341
+ this.switchClassSticky($("redo"), 'editAreaButtonNormal', false);
342
+ this.resync_highlight(true);
343
+ //alert("undo"+this.previous.length);
344
+ this.check_file_changes();
345
+ }
346
+ };
347
+
348
+ EditArea.prototype.redo= function(){
349
+ if(this.next.length > 0){
350
+ /*if(this.nav['isIE'])
351
+ this.getIESelection();*/
352
+ //var pos_cursor=this.textarea.selectionStart;
353
+ var next= this.next.pop();
354
+ this.previous.push(next);
355
+ this.textarea.value= next["text"];
356
+ this.last_undo= next["text"];
357
+ this.area_select(next["selStart"], next["selEnd"]-next["selStart"]);
358
+ this.switchClassSticky($("undo"), 'editAreaButtonNormal', false);
359
+ this.resync_highlight(true);
360
+ this.check_file_changes();
361
+ }
362
+ if( this.next.length == 0)
363
+ this.switchClassSticky($("redo"), 'editAreaButtonDisabled', true);
364
+ };
365
+
366
+ EditArea.prototype.check_redo= function(){
367
+ if(editArea.next.length == 0 || editArea.textarea.value!=editArea.last_undo){
368
+ editArea.next= new Array(); // undo the ability to use "redo" button
369
+ editArea.switchClassSticky($("redo"), 'editAreaButtonDisabled', true);
370
+ }
371
+ else
372
+ {
373
+ this.switchClassSticky($("redo"), 'editAreaButtonNormal', false);
374
+ }
375
+ };
376
+
377
+
378
+ // functions that manage icons roll over, disabled, etc...
379
+ EditArea.prototype.switchClass = function(element, class_name, lock_state) {
380
+ var lockChanged = false;
381
+
382
+ if (typeof(lock_state) != "undefined" && element != null) {
383
+ element.classLock = lock_state;
384
+ lockChanged = true;
385
+ }
386
+
387
+ if (element != null && (lockChanged || !element.classLock)) {
388
+ element.oldClassName = element.className;
389
+ element.className = class_name;
390
+ }
391
+ };
392
+
393
+ EditArea.prototype.restoreAndSwitchClass = function(element, class_name) {
394
+ if (element != null && !element.classLock) {
395
+ this.restoreClass(element);
396
+ this.switchClass(element, class_name);
397
+ }
398
+ };
399
+
400
+ EditArea.prototype.restoreClass = function(element) {
401
+ if (element != null && element.oldClassName && !element.classLock) {
402
+ element.className = element.oldClassName;
403
+ element.oldClassName = null;
404
+ }
405
+ };
406
+
407
+ EditArea.prototype.setClassLock = function(element, lock_state) {
408
+ if (element != null)
409
+ element.classLock = lock_state;
410
+ };
411
+
412
+ EditArea.prototype.switchClassSticky = function(element, class_name, lock_state) {
413
+ var lockChanged = false;
414
+ if (typeof(lock_state) != "undefined" && element != null) {
415
+ element.classLock = lock_state;
416
+ lockChanged = true;
417
+ }
418
+
419
+ if (element != null && (lockChanged || !element.classLock)) {
420
+ element.className = class_name;
421
+ element.oldClassName = class_name;
422
+ }
423
+ };
424
+
425
+ //make the "page up" and "page down" buttons works correctly
426
+ EditArea.prototype.scroll_page= function(params){
427
+ var dir= params["dir"];
428
+ var shift_pressed= params["shift"];
429
+ screen_height=$("result").clientHeight;
430
+ var lines= this.textarea.value.split("\n");
431
+ var new_pos=0;
432
+ var length=0;
433
+ var char_left=0;
434
+ var line_nb=0;
435
+ if(dir=="up"){
436
+ //val= Math.max(0, $("result").scrollTop - screen_height);
437
+ //$("result").scrollTop= val;
438
+ var scroll_line= Math.ceil((screen_height -30)/this.lineHeight);
439
+ if(this.last_selection["selec_direction"]=="up"){
440
+ for(line_nb=0; line_nb< Math.min(this.last_selection["line_start"]-scroll_line, lines.length); line_nb++){
441
+ new_pos+= lines[line_nb].length + 1;
442
+ }
443
+ char_left=Math.min(lines[Math.min(lines.length-1, line_nb)].length, this.last_selection["curr_pos"]-1);
444
+ if(shift_pressed)
445
+ length=this.last_selection["selectionEnd"]-new_pos-char_left;
446
+ this.area_select(new_pos+char_left, length);
447
+ view="top";
448
+ }else{
449
+ view="bottom";
450
+ for(line_nb=0; line_nb< Math.min(this.last_selection["line_start"]+this.last_selection["line_nb"]-1-scroll_line, lines.length); line_nb++){
451
+ new_pos+= lines[line_nb].length + 1;
452
+ }
453
+ char_left=Math.min(lines[Math.min(lines.length-1, line_nb)].length, this.last_selection["curr_pos"]-1);
454
+ if(shift_pressed){
455
+ //length=this.last_selection["selectionEnd"]-new_pos-char_left;
456
+ start= Math.min(this.last_selection["selectionStart"], new_pos+char_left);
457
+ length= Math.max(new_pos+char_left, this.last_selection["selectionStart"] )- start ;
458
+ if(new_pos+char_left < this.last_selection["selectionStart"])
459
+ view="top";
460
+ }else
461
+ start=new_pos+char_left;
462
+ this.area_select(start, length);
463
+
464
+ }
465
+ }else{
466
+ //val= Math.max($("result").style.height.replace("px", ""), $("result").scrollTop + screen_height);
467
+ //$("result").scrollTop= val;
468
+ var scroll_line= Math.floor((screen_height-30)/this.lineHeight);
469
+ if(this.last_selection["selec_direction"]=="down"){
470
+ view="bottom";
471
+ for(line_nb=0; line_nb< Math.min(this.last_selection["line_start"]+this.last_selection["line_nb"]-2+scroll_line, lines.length); line_nb++){
472
+ if(line_nb==this.last_selection["line_start"]-1)
473
+ char_left= this.last_selection["selectionStart"] -new_pos;
474
+ new_pos+= lines[line_nb].length + 1;
475
+
476
+ }
477
+ if(shift_pressed){
478
+ length=Math.abs(this.last_selection["selectionStart"]-new_pos);
479
+ length+=Math.min(lines[Math.min(lines.length-1, line_nb)].length, this.last_selection["curr_pos"]);
480
+ //length+=Math.min(lines[Math.min(lines.length-1, line_nb)].length, char_left);
481
+ this.area_select(Math.min(this.last_selection["selectionStart"], new_pos), length);
482
+ }else{
483
+ this.area_select(new_pos+char_left, 0);
484
+ }
485
+
486
+ }else{
487
+ view="top";
488
+ for(line_nb=0; line_nb< Math.min(this.last_selection["line_start"]+scroll_line-1, lines.length, lines.length); line_nb++){
489
+ if(line_nb==this.last_selection["line_start"]-1)
490
+ char_left= this.last_selection["selectionStart"] -new_pos;
491
+ new_pos+= lines[line_nb].length + 1;
492
+ }
493
+ if(shift_pressed){
494
+ length=Math.abs(this.last_selection["selectionEnd"]-new_pos-char_left);
495
+ length+=Math.min(lines[Math.min(lines.length-1, line_nb)].length, this.last_selection["curr_pos"])- char_left-1;
496
+ //length+=Math.min(lines[Math.min(lines.length-1, line_nb)].length, char_left);
497
+ this.area_select(Math.min(this.last_selection["selectionEnd"], new_pos+char_left), length);
498
+ if(new_pos+char_left > this.last_selection["selectionEnd"])
499
+ view="bottom";
500
+ }else{
501
+ this.area_select(new_pos+char_left, 0);
502
+ }
503
+
504
+ }
505
+ }
506
+
507
+ this.check_line_selection();
508
+ this.scroll_to_view(view);
509
+ };
510
+
511
+ EditArea.prototype.start_resize= function(e){
512
+ parent.editAreaLoader.resize["id"]= editArea.id;
513
+ parent.editAreaLoader.resize["start_x"]= (e)? e.pageX : event.x + document.body.scrollLeft;
514
+ parent.editAreaLoader.resize["start_y"]= (e)? e.pageY : event.y + document.body.scrollTop;
515
+ if(editArea.nav['isIE']){
516
+ editArea.textarea.focus();
517
+ editArea.getIESelection();
518
+ }
519
+ parent.editAreaLoader.resize["selectionStart"]= editArea.textarea.selectionStart;
520
+ parent.editAreaLoader.resize["selectionEnd"]= editArea.textarea.selectionEnd;
521
+ /*parent.editAreaLoader.resize["frame_top"]= parent.calculeOffsetTop(parent.editAreas[editArea.id]["textarea"]);
522
+ /*parent.editAreaLoader.resize["frame_left"]= parent.calculeOffsetLeft(parent.frames[editArea.id]);*/
523
+ parent.editAreaLoader.start_resize_area();
524
+ };
525
+
526
+ EditArea.prototype.toggle_full_screen= function(to){
527
+ if(typeof(to)=="undefined")
528
+ to= !this.fullscreen['isFull'];
529
+ var old= this.fullscreen['isFull'];
530
+ this.fullscreen['isFull']= to;
531
+ var icon= $("fullscreen");
532
+ if(to && to!=old)
533
+ { // toogle on fullscreen
534
+ var selStart= this.textarea.selectionStart;
535
+ var selEnd= this.textarea.selectionEnd;
536
+ var html= parent.document.getElementsByTagName("html")[0];
537
+ var frame= parent.document.getElementById("frame_"+this.id);
538
+
539
+ this.fullscreen['old_overflow']= parent.get_css_property(html, "overflow");
540
+ this.fullscreen['old_height']= parent.get_css_property(html, "height");
541
+ this.fullscreen['old_width']= parent.get_css_property(html, "width");
542
+ this.fullscreen['old_scrollTop']= html.scrollTop;
543
+ this.fullscreen['old_scrollLeft']= html.scrollLeft;
544
+ this.fullscreen['old_zIndex']= parent.get_css_property(frame, "z-index");
545
+ if(this.nav['isOpera']){
546
+ html.style.height= "100%";
547
+ html.style.width= "100%";
548
+ }
549
+ html.style.overflow= "hidden";
550
+ html.scrollTop=0;
551
+ html.scrollLeft=0;
552
+
553
+
554
+ //html.style.backgroundColor= "#FF0000";
555
+ // alert(screen.height+"\n"+window.innerHeight+"\n"+html.clientHeight+"\n"+window.offsetHeight+"\n"+document.body.offsetHeight);
556
+
557
+
558
+ frame.style.position="absolute";
559
+ frame.style.width= html.clientWidth+"px";
560
+ frame.style.height= html.clientHeight+"px";
561
+ frame.style.display="block";
562
+ frame.style.zIndex="999999";
563
+ frame.style.top="0px";
564
+ frame.style.left="0px";
565
+
566
+ // if the iframe was in a div with position absolute, the top and left are the one of the div,
567
+ // so I fix it by seeing at witch position the iframe start and correcting it
568
+ frame.style.top= "-"+parent.calculeOffsetTop(frame)+"px";
569
+ frame.style.left= "-"+parent.calculeOffsetLeft(frame)+"px";
570
+
571
+ // parent.editAreaLoader.execCommand(this.id, "update_size();");
572
+ // var body=parent.document.getElementsByTagName("body")[0];
573
+ // body.appendChild(frame);
574
+
575
+ this.switchClassSticky(icon, 'editAreaButtonSelected', false);
576
+ this.fullscreen['allow_resize']= this.resize_allowed;
577
+ this.allow_resize(false);
578
+
579
+ //this.area_select(selStart, selEnd-selStart);
580
+
581
+
582
+ // opera can't manage to do a direct size update
583
+ if(this.nav['isFirefox']){
584
+ parent.editAreaLoader.execCommand(this.id, "update_size();");
585
+ this.area_select(selStart, selEnd-selStart);
586
+ this.scroll_to_view();
587
+ this.focus();
588
+ }else{
589
+ setTimeout("parent.editAreaLoader.execCommand('"+ this.id +"', 'update_size();');editArea.focus();", 10);
590
+ }
591
+
592
+
593
+ }
594
+ else if(to!=old)
595
+ { // toogle off fullscreen
596
+ var selStart= this.textarea.selectionStart;
597
+ var selEnd= this.textarea.selectionEnd;
598
+
599
+ var frame= parent.document.getElementById("frame_"+this.id);
600
+ frame.style.position="static";
601
+ frame.style.zIndex= this.fullscreen['old_zIndex'];
602
+
603
+ var html= parent.document.getElementsByTagName("html")[0];
604
+ // html.style.overflow= this.fullscreen['old_overflow'];
605
+
606
+ if(this.nav['isOpera']){
607
+ html.style.height= "auto";
608
+ html.style.width= "auto";
609
+ html.style.overflow= "auto";
610
+ }else if(this.nav['isIE'] && parent!=top){ // IE doesn't manage html overflow in frames like in normal page...
611
+ html.style.overflow= "auto";
612
+ }
613
+ else
614
+ html.style.overflow= this.fullscreen['old_overflow'];
615
+ html.scrollTop= this.fullscreen['old_scrollTop'];
616
+ html.scrollTop= this.fullscreen['old_scrollLeft'];
617
+
618
+ parent.editAreaLoader.hide(this.id);
619
+ parent.editAreaLoader.show(this.id);
620
+
621
+ this.switchClassSticky(icon, 'editAreaButtonNormal', false);
622
+ if(this.fullscreen['allow_resize'])
623
+ this.allow_resize(this.fullscreen['allow_resize']);
624
+ if(this.nav['isFirefox']){
625
+ this.area_select(selStart, selEnd-selStart);
626
+ setTimeout("editArea.scroll_to_view();", 10);
627
+ }
628
+
629
+ //parent.editAreaLoader.remove_event(parent.window, "resize", editArea.update_size);
630
+ }
631
+
632
+ };
633
+
634
+ EditArea.prototype.allow_resize= function(allow){
635
+ var resize= $("resize_area");
636
+ if(allow){
637
+
638
+ resize.style.visibility="visible";
639
+ parent.editAreaLoader.add_event(resize, "mouseup", editArea.start_resize);
640
+ }else{
641
+ resize.style.visibility="hidden";
642
+ parent.editAreaLoader.remove_event(resize, "mouseup", editArea.start_resize);
643
+ }
644
+ this.resize_allowed= allow;
645
+ };
646
+
647
+
648
+ EditArea.prototype.change_syntax= function(new_syntax, is_waiting){
649
+ // alert("cahnge to "+new_syntax);
650
+ // the syntax is the same
651
+ if(new_syntax==this.settings['syntax'])
652
+ return true;
653
+
654
+ // check that the syntax is one allowed
655
+ var founded= false;
656
+ for(var i=0; i<this.syntax_list.length; i++)
657
+ {
658
+ if(this.syntax_list[i]==new_syntax)
659
+ founded= true;
660
+ }
661
+
662
+ if(founded==true)
663
+ {
664
+ // the reg syntax file is not loaded
665
+ if(!parent.editAreaLoader.load_syntax[new_syntax])
666
+ {
667
+ // load the syntax file and wait for file loading
668
+ if(!is_waiting)
669
+ parent.editAreaLoader.load_script(parent.editAreaLoader.baseURL + "reg_syntax/" + new_syntax + ".js");
670
+ setTimeout("editArea.change_syntax('"+ new_syntax +"', true);", 100);
671
+ this.show_waiting_screen();
672
+ }
673
+ else
674
+ {
675
+ if(!this.allready_used_syntax[new_syntax])
676
+ { // the syntax has still not been used
677
+ // rebuild syntax definition for new languages
678
+ parent.editAreaLoader.init_syntax_regexp();
679
+ // add style to the new list
680
+ this.add_style(parent.editAreaLoader.syntax[new_syntax]["styles"]);
681
+ this.allready_used_syntax[new_syntax]=true;
682
+ }
683
+ // be sure that the select option is correctly updated
684
+ var sel= $("syntax_selection");
685
+ if(sel && sel.value!=new_syntax)
686
+ {
687
+ for(var i=0; i<sel.length; i++){
688
+ if(sel.options[i].value && sel.options[i].value == new_syntax)
689
+ sel.options[i].selected=true;
690
+ }
691
+ }
692
+
693
+ /* if(this.settings['syntax'].length==0)
694
+ {
695
+ this.switchClassSticky($("highlight"), 'editAreaButtonNormal', false);
696
+ this.switchClassSticky($("reset_highlight"), 'editAreaButtonNormal', false);
697
+ this.change_highlight(true);
698
+ }
699
+ */
700
+ this.settings['syntax']= new_syntax;
701
+ this.resync_highlight(true);
702
+ this.hide_waiting_screen();
703
+ return true;
704
+ }
705
+ }
706
+ return false;
707
+ };
708
+
709
+
710
+ // check if the file has changed
711
+ EditArea.prototype.set_editable= function(is_editable){
712
+ if(is_editable)
713
+ {
714
+ document.body.className= "";
715
+ this.textarea.readOnly= false;
716
+ this.is_editable= true;
717
+ }
718
+ else
719
+ {
720
+ document.body.className= "non_editable";
721
+ this.textarea.readOnly= true;
722
+ this.is_editable= false;
723
+ }
724
+
725
+ if(editAreas[this.id]["displayed"]==true)
726
+ this.update_size();
727
+ };
728
+
729
+ /***** Wrap mode *****/
730
+ // open a new tab for the given file
731
+ EditArea.prototype.set_wrap_text= function(to){
732
+ this.settings['wrap_text'] = to;
733
+ if( this.settings['wrap_text'] )
734
+ {
735
+ wrap_mode = 'soft';
736
+ this.container.className+= ' wrap_text';
737
+ }
738
+ else
739
+ {
740
+ wrap_mode = 'off';
741
+ this.container.className= this.container.className.replace(/ wrap_text/g, '');
742
+ }
743
+
744
+
745
+ var t= this.textarea;
746
+ t.wrap= wrap_mode;
747
+ t.setAttribute('wrap', wrap_mode);
748
+ // seul IE supporte de changer à la volée le wrap mode du textarea
749
+ if(!this.nav['isIE']){
750
+ var start=t.selectionStart, end= t.selectionEnd;
751
+ var parNod = t.parentNode, nxtSib = t.nextSibling;
752
+ parNod.removeChild(t); parNod.insertBefore(t, nxtSib);
753
+ this.area_select(start, end-start);
754
+ /* // v = s.value;
755
+ n = s.cloneNode(true);
756
+ n.setAttribute("wrap", val);
757
+ s.parentNode.replaceChild(n, s);
758
+ // n.value = v;*/
759
+ }
760
+ };
761
+ /***** tabbed files managing functions *****/
762
+
763
+ // open a new tab for the given file
764
+ EditArea.prototype.open_file= function(settings){
765
+
766
+ if(settings['id']!="undefined")
767
+ {
768
+ var id= settings['id'];
769
+ // create a new file object with defautl values
770
+ var new_file= new Object();
771
+ new_file['id']= id;
772
+ new_file['title']= id;
773
+ new_file['text']= "";
774
+ new_file['last_selection']= "";
775
+ new_file['last_text_to_highlight']= "";
776
+ new_file['last_hightlighted_text']= "";
777
+ new_file['previous']= new Array();
778
+ new_file['next']= new Array();
779
+ new_file['last_undo']= "";
780
+ new_file['smooth_selection']= this.settings['smooth_selection'];
781
+ new_file['do_highlight']= this.settings['start_highlight'];
782
+ new_file['syntax']= this.settings['syntax'];
783
+ new_file['scroll_top']= 0;
784
+ new_file['scroll_left']= 0;
785
+ new_file['selection_start']= 0;
786
+ new_file['selection_end']= 0;
787
+ new_file['edited']= false;
788
+ new_file['font_size']= this.settings["font_size"];
789
+ new_file['font_family']= this.settings["font_family"];
790
+ new_file['toolbar']= {'links':{}, 'selects': {}};
791
+ new_file['compare_edited_text']= new_file['text'];
792
+
793
+
794
+ this.files[id]= new_file;
795
+ this.update_file(id, settings);
796
+ this.files[id]['compare_edited_text']= this.files[id]['text'];
797
+
798
+
799
+ var html_id= 'tab_file_'+encodeURIComponent(id);
800
+ this.filesIdAssoc[html_id]= id;
801
+ this.files[id]['html_id']= html_id;
802
+
803
+ if(!$(this.files[id]['html_id']) && id!="")
804
+ {
805
+ // be sure the tab browsing area is displayed
806
+ this.tab_browsing_area.style.display= "block";
807
+ var elem= document.createElement('li');
808
+ elem.id= this.files[id]['html_id'];
809
+ var close= "<img src=\""+ parent.editAreaLoader.baseURL +"images/close.gif\" title=\""+ this.get_translation('close_tab', 'word') +"\" onclick=\"editArea.execCommand('close_file', editArea.filesIdAssoc['"+ html_id +"']);return false;\" class=\"hidden\" onmouseover=\"this.className=''\" onmouseout=\"this.className='hidden'\" />";
810
+ elem.innerHTML= "<a onclick=\"javascript:editArea.execCommand('switch_to_file', editArea.filesIdAssoc['"+ html_id +"']);\" selec=\"none\"><b><span><strong class=\"edited\">*</strong>"+ this.files[id]['title'] + close +"</span></b></a>";
811
+ $('tab_browsing_list').appendChild(elem);
812
+ var elem= document.createElement('text');
813
+ this.update_size();
814
+ }
815
+
816
+ // open file callback (for plugin)
817
+ if(id!="")
818
+ this.execCommand('file_open', this.files[id]);
819
+
820
+ this.switch_to_file(id, true);
821
+ return true;
822
+ }
823
+ else
824
+ return false;
825
+ };
826
+
827
+ // close the given file
828
+ EditArea.prototype.close_file= function(id){
829
+ if(this.files[id])
830
+ {
831
+ this.save_file(id);
832
+
833
+ // close file callback
834
+ if(this.execCommand('file_close', this.files[id])!==false)
835
+ {
836
+ // remove the tab in the toolbar
837
+ var li= $(this.files[id]['html_id']);
838
+ li.parentNode.removeChild(li);
839
+ // select a new file
840
+ if(id== this.curr_file)
841
+ {
842
+ var next_file= "";
843
+ var is_next= false;
844
+ for(var i in this.files)
845
+ {
846
+ if(is_next)
847
+ {
848
+ next_file= i;
849
+ break;
850
+ }
851
+ else if(i==id)
852
+ is_next= true;
853
+ else
854
+ next_file= i;
855
+ }
856
+ // display the next file
857
+ this.switch_to_file(next_file);
858
+ }
859
+ // clear datas
860
+ delete (this.files[id]);
861
+ this.update_size();
862
+ }
863
+ }
864
+ };
865
+
866
+ // backup current file datas
867
+ EditArea.prototype.save_file= function(id){
868
+ if(this.files[id])
869
+ {
870
+ var save= this.files[id];
871
+ save['last_selection']= this.last_selection;
872
+ save['last_text_to_highlight']= this.last_text_to_highlight;
873
+ save['last_hightlighted_text']= this.last_hightlighted_text;
874
+ save['previous']= this.previous;
875
+ save['next']= this.next;
876
+ save['last_undo']= this.last_undo;
877
+ save['smooth_selection']= this.smooth_selection;
878
+ save['do_highlight']= this.do_highlight;
879
+ save['syntax']= this.settings['syntax'];
880
+ save['text']= this.textarea.value;
881
+ save['scroll_top']= this.result.scrollTop;
882
+ save['scroll_left']= this.result.scrollLeft;
883
+ save['selection_start']= this.last_selection["selectionStart"];
884
+ save['selection_end']= this.last_selection["selectionEnd"];
885
+ save['font_size']= this.settings["font_size"];
886
+ save['font_family']= this.settings["font_family"];
887
+ save['toolbar']= {'links':{}, 'selects': {}};
888
+ // save toolbar buttons state for fileSpecific buttons
889
+ var links= $("toolbar_1").getElementsByTagName("a");
890
+ for(var i=0; i<links.length; i++)
891
+ {
892
+ if(links[i].getAttribute('fileSpecific')=='yes')
893
+ {
894
+ var save_butt= new Object();
895
+ var img= links[i].getElementsByTagName('img')[0];
896
+ save_butt['classLock']= img.classLock;
897
+ save_butt['className']= img.className;
898
+ save_butt['oldClassName']= img.oldClassName;
899
+
900
+ save['toolbar']['links'][links[i].id]= save_butt;
901
+ }
902
+ }
903
+ // save toolbar select state for fileSpecific buttons
904
+ var selects= $("toolbar_1").getElementsByTagName("select");
905
+ for(var i=0; i<selects.length; i++)
906
+ {
907
+ if(selects[i].getAttribute('fileSpecific')=='yes')
908
+ {
909
+ save['toolbar']['selects'][selects[i].id]= selects[i].value;
910
+ }
911
+ }
912
+
913
+ this.files[id]= save;
914
+
915
+ return save;
916
+ }
917
+ else
918
+ return false;
919
+ };
920
+
921
+ // update file_datas
922
+ EditArea.prototype.update_file= function(id, new_values){
923
+ for(var i in new_values)
924
+ {
925
+ this.files[id][i]= new_values[i];
926
+ }
927
+ };
928
+
929
+ // display file datas
930
+ EditArea.prototype.display_file= function(id){
931
+ // check if there is at least one tab file displayed
932
+ if(id=='')
933
+ {
934
+ this.textarea.readOnly= true;
935
+ this.tab_browsing_area.style.display= "none";
936
+ $("no_file_selected").style.display= "block";
937
+ this.result.className= "empty";
938
+ if(!this.files[''])
939
+ this.open_file({id: ''});
940
+ }
941
+ else
942
+ {
943
+ this.result.className= "";
944
+ this.textarea.readOnly= !this.is_editable;
945
+ $("no_file_selected").style.display= "none";
946
+ this.tab_browsing_area.style.display= "block";
947
+ }
948
+
949
+ this.check_redo(true);
950
+ this.check_undo(true);
951
+ this.curr_file= id;
952
+
953
+ // replace selected tab file
954
+ var lis= this.tab_browsing_area.getElementsByTagName('li');
955
+ for(var i=0; i<lis.length; i++)
956
+ {
957
+ if(lis[i].id == this.files[id]['html_id'])
958
+ lis[i].className='selected';
959
+ else
960
+ lis[i].className='';
961
+ }
962
+
963
+ // replace next files datas
964
+ var new_file= this.files[id];
965
+
966
+ // restore text content
967
+ this.textarea.value= new_file['text'];
968
+
969
+ // restore font-size
970
+ this.set_font(new_file['font_family'], new_file['font_size']);
971
+
972
+ // restore selection and scroll
973
+ this.area_select(new_file['last_selection']['selection_start'], new_file['last_selection']['selection_end'] - new_file['last_selection']['selection_start']);
974
+ this.manage_size(true);
975
+ this.result.scrollTop= new_file['scroll_top'];
976
+ this.result.scrollLeft= new_file['scroll_left'];
977
+
978
+ // restore undo, redo
979
+ this.previous= new_file['previous'];
980
+ this.next= new_file['next'];
981
+ this.last_undo= new_file['last_undo'];
982
+ this.check_redo(true);
983
+ this.check_undo(true);
984
+
985
+ // restore highlight
986
+ this.execCommand("change_highlight", new_file['do_highlight']);
987
+ this.execCommand("change_syntax", new_file['syntax']);
988
+
989
+ // smooth mode
990
+ this.execCommand("change_smooth_selection_mode", new_file['smooth_selection']);
991
+
992
+ // restore links state in toolbar
993
+ var links= new_file['toolbar']['links'];
994
+ for(var i in links)
995
+ {
996
+ if(img= $(i).getElementsByTagName('img')[0])
997
+ {
998
+ var save_butt= new Object();
999
+ img.classLock= links[i]['classLock'];
1000
+ img.className= links[i]['className'];
1001
+ img.oldClassName= links[i]['oldClassName'];
1002
+ }
1003
+ }
1004
+ // restore select state in toolbar
1005
+ var selects= new_file['toolbar']['selects'];
1006
+ for(var i in selects)
1007
+ {
1008
+ var options= $(i).options;
1009
+ for(var j=0; j<options.length; j++)
1010
+ {
1011
+ if(options[j].value == selects[i])
1012
+ $(i).options[j].selected=true;
1013
+ }
1014
+ }
1015
+
1016
+ };
1017
+
1018
+ // change tab for displaying a new one
1019
+ EditArea.prototype.switch_to_file= function(file_to_show, force_refresh){
1020
+ if(file_to_show!=this.curr_file || force_refresh)
1021
+ {
1022
+ this.save_file(this.curr_file);
1023
+ if(this.curr_file!='')
1024
+ this.execCommand('file_switch_off', this.files[this.curr_file]);
1025
+ this.display_file(file_to_show);
1026
+ if(file_to_show!='')
1027
+ this.execCommand('file_switch_on', this.files[file_to_show]);
1028
+ }
1029
+ };
1030
+
1031
+ // get all infos for the given file
1032
+ EditArea.prototype.get_file= function(id){
1033
+ if(id==this.curr_file)
1034
+ this.save_file(id);
1035
+ return this.files[id];
1036
+ };
1037
+
1038
+ // get all available files infos
1039
+ EditArea.prototype.get_all_files= function(){
1040
+ tmp_files= this.files;
1041
+ this.save_file(this.curr_file);
1042
+ if(tmp_files[''])
1043
+ delete(this.files['']);
1044
+ return tmp_files;
1045
+ };
1046
+
1047
+
1048
+ // check if the file has changed
1049
+ EditArea.prototype.check_file_changes= function(){
1050
+
1051
+ var id= this.curr_file;
1052
+ if(this.files[id] && this.files[id]['compare_edited_text']!=undefined)
1053
+ {
1054
+ if(this.files[id]['compare_edited_text'].length==this.textarea.value.length && this.files[id]['compare_edited_text']==this.textarea.value)
1055
+ {
1056
+ if(this.files[id]['edited']!= false)
1057
+ this.set_file_edited_mode(id, false);
1058
+ }
1059
+ else
1060
+ {
1061
+ if(this.files[id]['edited']!= true)
1062
+ this.set_file_edited_mode(id, true);
1063
+ }
1064
+ }
1065
+ };
1066
+
1067
+ // set if the file is edited or not
1068
+ EditArea.prototype.set_file_edited_mode= function(id, to){
1069
+ // change CSS for edited tab
1070
+ if(this.files[id] && $(this.files[id]['html_id']))
1071
+ {
1072
+ var link= $(this.files[id]['html_id']).getElementsByTagName('a')[0];
1073
+ if(to==true)
1074
+ {
1075
+ link.className= 'edited';
1076
+ }
1077
+ else
1078
+ {
1079
+ link.className= '';
1080
+ if(id==this.curr_file)
1081
+ text= this.textarea.value;
1082
+ else
1083
+ text= this.files[id]['text'];
1084
+ this.files[id]['compare_edited_text']= text;
1085
+ }
1086
+
1087
+ this.files[id]['edited']= to;
1088
+ }
1089
+ };
1090
+
1091
+ EditArea.prototype.set_show_line_colors = function(new_value){
1092
+ this.show_line_colors = new_value;
1093
+
1094
+ if( new_value )
1095
+ this.selection_field.className += ' show_colors';
1096
+ else
1097
+ this.selection_field.className = this.selection_field.className.replace( / show_colors/g, '' );
1098
+ };