From bbc371a73855d1b3d4666aa524e7bc3d3f6ff29b Mon Sep 17 00:00:00 2001
From: quasi
Date: Sun, 8 Feb 2009 07:30:52 +0000
Subject: [PATCH] =?UTF-8?q?Xinha=20hinzugef=C3=BCgt?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
git-svn-id: https://svn.libreccm.org/ccm/trunk@74 8810af33-2d31-482b-a856-94f89814c4df
---
ccm-cms/web/assets/xinha/Xinha.css | 273 ++
ccm-cms/web/assets/xinha/XinhaCore.js | 3815 +++++++++++++++++
ccm-cms/web/assets/xinha/XinhaLoader.js | 173 +
.../web/assets/xinha/XinhaLoader_readme.txt | 5 +
.../web/assets/xinha/compression_readme.txt | 8 +
.../web/assets/xinha/contrib/php-xinha.php | 208 +
.../assets/xinha/examples/ExtendedDemo.html | 16 +
ccm-cms/web/assets/xinha/examples/Newbie.html | 24 +
.../web/assets/xinha/examples/XinhaConfig.js | 20 +
.../assets/xinha/examples/files/Extended.html | 317 ++
.../assets/xinha/examples/files/custom.css | 40 +
.../assets/xinha/examples/files/dynamic.css | 56 +
.../examples/files/ext_example-body.html | 206 +
.../xinha/examples/files/ext_example-dest.php | 23 +
.../xinha/examples/files/ext_example-menu.php | 357 ++
.../xinha/examples/files/full_example.css | 48 +
.../assets/xinha/examples/files/stylist.css | 31 +
.../assets/xinha/examples/simple_example.html | 54 +
.../web/assets/xinha/examples/testbed.html | 195 +
ccm-cms/web/assets/xinha/htmlarea.js | 11 +
ccm-cms/web/assets/xinha/images/de/bold.gif | Bin 0 -> 57 bytes
ccm-cms/web/assets/xinha/images/de/italic.gif | Bin 0 -> 63 bytes
.../web/assets/xinha/images/de/underline.gif | Bin 0 -> 69 bytes
ccm-cms/web/assets/xinha/images/ed_about.gif | Bin 0 -> 76 bytes
ccm-cms/web/assets/xinha/images/ed_align.gif | Bin 0 -> 3388 bytes
.../assets/xinha/images/ed_align_center.gif | Bin 0 -> 61 bytes
.../assets/xinha/images/ed_align_justify.gif | Bin 0 -> 60 bytes
.../web/assets/xinha/images/ed_align_left.gif | Bin 0 -> 60 bytes
.../assets/xinha/images/ed_align_right.gif | Bin 0 -> 61 bytes
ccm-cms/web/assets/xinha/images/ed_blank.gif | Bin 0 -> 56 bytes
.../assets/xinha/images/ed_buttons_main.gif | Bin 0 -> 6629 bytes
.../web/assets/xinha/images/ed_charmap.gif | Bin 0 -> 134 bytes
.../web/assets/xinha/images/ed_clearfonts.gif | Bin 0 -> 134 bytes
.../web/assets/xinha/images/ed_color_bg.gif | Bin 0 -> 172 bytes
.../web/assets/xinha/images/ed_color_fg.gif | Bin 0 -> 164 bytes
ccm-cms/web/assets/xinha/images/ed_copy.gif | Bin 0 -> 97 bytes
ccm-cms/web/assets/xinha/images/ed_custom.gif | Bin 0 -> 50 bytes
ccm-cms/web/assets/xinha/images/ed_cut.gif | Bin 0 -> 78 bytes
ccm-cms/web/assets/xinha/images/ed_delete.gif | Bin 0 -> 80 bytes
.../assets/xinha/images/ed_format_bold.gif | Bin 0 -> 57 bytes
.../assets/xinha/images/ed_format_italic.gif | Bin 0 -> 67 bytes
.../assets/xinha/images/ed_format_strike.gif | Bin 0 -> 66 bytes
.../web/assets/xinha/images/ed_format_sub.gif | Bin 0 -> 67 bytes
.../web/assets/xinha/images/ed_format_sup.gif | Bin 0 -> 67 bytes
.../xinha/images/ed_format_underline.gif | Bin 0 -> 69 bytes
ccm-cms/web/assets/xinha/images/ed_help.gif | Bin 0 -> 55 bytes
ccm-cms/web/assets/xinha/images/ed_hr.gif | Bin 0 -> 53 bytes
ccm-cms/web/assets/xinha/images/ed_html.gif | Bin 0 -> 64 bytes
ccm-cms/web/assets/xinha/images/ed_image.gif | Bin 0 -> 125 bytes
.../assets/xinha/images/ed_indent_less.gif | Bin 0 -> 84 bytes
.../assets/xinha/images/ed_indent_more.gif | Bin 0 -> 84 bytes
.../web/assets/xinha/images/ed_killword.gif | Bin 0 -> 151 bytes
.../assets/xinha/images/ed_left_to_right.gif | Bin 0 -> 72 bytes
ccm-cms/web/assets/xinha/images/ed_link.gif | Bin 0 -> 78 bytes
.../assets/xinha/images/ed_list_bullet.gif | Bin 0 -> 72 bytes
.../web/assets/xinha/images/ed_list_num.gif | Bin 0 -> 76 bytes
.../web/assets/xinha/images/ed_overwrite.gif | Bin 0 -> 100 bytes
ccm-cms/web/assets/xinha/images/ed_paste.gif | Bin 0 -> 126 bytes
ccm-cms/web/assets/xinha/images/ed_print.gif | Bin 0 -> 117 bytes
ccm-cms/web/assets/xinha/images/ed_redo.gif | Bin 0 -> 67 bytes
.../assets/xinha/images/ed_right_to_left.gif | Bin 0 -> 75 bytes
.../web/assets/xinha/images/ed_rmformat.gif | Bin 0 -> 105 bytes
ccm-cms/web/assets/xinha/images/ed_save.gif | Bin 0 -> 128 bytes
ccm-cms/web/assets/xinha/images/ed_save.png | Bin 0 -> 230 bytes
ccm-cms/web/assets/xinha/images/ed_saveas.gif | Bin 0 -> 104 bytes
.../web/assets/xinha/images/ed_selectall.gif | Bin 0 -> 150 bytes
.../assets/xinha/images/ed_show_border.gif | Bin 0 -> 88 bytes
.../web/assets/xinha/images/ed_splitblock.gif | Bin 0 -> 82 bytes
.../web/assets/xinha/images/ed_splitcel.gif | Bin 0 -> 111 bytes
ccm-cms/web/assets/xinha/images/ed_undo.gif | Bin 0 -> 67 bytes
.../assets/xinha/images/ed_word_cleaner.gif | Bin 0 -> 652 bytes
ccm-cms/web/assets/xinha/images/fr/bold.gif | Bin 0 -> 128 bytes
.../assets/xinha/images/fr/strikethrough.gif | Bin 0 -> 131 bytes
.../web/assets/xinha/images/fr/underline.gif | Bin 0 -> 134 bytes
.../xinha/images/fullscreen_maximize.gif | Bin 0 -> 87 bytes
.../xinha/images/fullscreen_minimize.gif | Bin 0 -> 87 bytes
.../web/assets/xinha/images/insert_table.gif | Bin 0 -> 104 bytes
.../assets/xinha/images/insertfilelink.gif | Bin 0 -> 148 bytes
.../web/assets/xinha/images/insertmacro.png | Bin 0 -> 638 bytes
ccm-cms/web/assets/xinha/images/tidy.gif | Bin 0 -> 375 bytes
.../assets/xinha/images/toggle_borders.gif | Bin 0 -> 73 bytes
.../web/assets/xinha/images/xinha_logo.gif | Bin 0 -> 3006 bytes
ccm-cms/web/assets/xinha/lang/b5.js | 29 +
ccm-cms/web/assets/xinha/lang/ch.js | 56 +
ccm-cms/web/assets/xinha/lang/cz.js | 50 +
ccm-cms/web/assets/xinha/lang/da.js | 30 +
ccm-cms/web/assets/xinha/lang/de.js | 169 +
ccm-cms/web/assets/xinha/lang/ee.js | 50 +
ccm-cms/web/assets/xinha/lang/el.js | 55 +
ccm-cms/web/assets/xinha/lang/es.js | 167 +
ccm-cms/web/assets/xinha/lang/eu.js | 169 +
ccm-cms/web/assets/xinha/lang/fa.js | 169 +
ccm-cms/web/assets/xinha/lang/fi.js | 38 +
ccm-cms/web/assets/xinha/lang/fr.js | 169 +
ccm-cms/web/assets/xinha/lang/gb.js | 29 +
ccm-cms/web/assets/xinha/lang/he.js | 64 +
ccm-cms/web/assets/xinha/lang/hu.js | 64 +
ccm-cms/web/assets/xinha/lang/it.js | 55 +
ccm-cms/web/assets/xinha/lang/ja.js | 175 +
ccm-cms/web/assets/xinha/lang/lt.js | 53 +
ccm-cms/web/assets/xinha/lang/lv.js | 42 +
ccm-cms/web/assets/xinha/lang/nb.js | 78 +
ccm-cms/web/assets/xinha/lang/nl.js | 64 +
ccm-cms/web/assets/xinha/lang/pl.js | 125 +
ccm-cms/web/assets/xinha/lang/pt_br.js | 184 +
ccm-cms/web/assets/xinha/lang/ro.js | 63 +
ccm-cms/web/assets/xinha/lang/ru.js | 185 +
ccm-cms/web/assets/xinha/lang/sh.js | 140 +
ccm-cms/web/assets/xinha/lang/si.js | 50 +
ccm-cms/web/assets/xinha/lang/sr.js | 140 +
ccm-cms/web/assets/xinha/lang/sv.js | 116 +
ccm-cms/web/assets/xinha/lang/th.js | 50 +
ccm-cms/web/assets/xinha/lang/vn.js | 56 +
ccm-cms/web/assets/xinha/license.txt | 30 +
.../xinha/modules/ColorPicker/ColorPicker.js | 624 +++
.../xinha/modules/ColorPicker/lang/pt_br.js | 22 +
.../xinha/modules/CreateLink/lang/pt_br.js | 18 +
.../assets/xinha/modules/CreateLink/link.html | 136 +
.../assets/xinha/modules/CreateLink/link.js | 87 +
.../assets/xinha/modules/Dialogs/dialog.js | 75 +
.../xinha/modules/Dialogs/inline-dialog.js | 207 +
.../xinha/modules/Dialogs/panel-dialog.js | 51 +
.../assets/xinha/modules/Dialogs/popupwin.js | 123 +
.../xinha/modules/FullScreen/full-screen.js | 139 +
.../xinha/modules/FullScreen/lang/de.js | 6 +
.../xinha/modules/FullScreen/lang/fr.js | 5 +
.../xinha/modules/FullScreen/lang/ja.js | 5 +
.../xinha/modules/FullScreen/lang/nb.js | 6 +
.../xinha/modules/FullScreen/lang/pl.js | 6 +
.../xinha/modules/FullScreen/lang/pt_br.js | 18 +
.../xinha/modules/FullScreen/lang/ru.js | 6 +
.../xinha/modules/FullScreen/lang/sv.js | 6 +
.../web/assets/xinha/modules/Gecko/Gecko.js | 461 ++
.../xinha/modules/Gecko/paraHandlerBest.js | 296 ++
.../assets/xinha/modules/GetHtml/DOMwalk.js | 187 +
.../modules/GetHtml/TransformInnerHTML.js | 151 +
.../xinha/modules/GetHtml/lang/pt_br.js | 18 +
.../modules/InsertImage/insert_image.html | 173 +
.../xinha/modules/InsertImage/insert_image.js | 119 +
.../modules/InsertTable/insert_table.html | 157 +
.../xinha/modules/InsertTable/insert_table.js | 66 +
.../InternetExplorer/InternetExplorer.js | 337 ++
.../web/assets/xinha/modules/Opera/Opera.js | 464 ++
.../web/assets/xinha/modules/WebKit/WebKit.js | 478 +++
.../xinha/plugins/Abbreviation/abbr/de.js | 40 +
.../xinha/plugins/Abbreviation/abbr/en.js | 16 +
.../plugins/Abbreviation/abbreviation.css | 11 +
.../plugins/Abbreviation/abbreviation.js | 65 +
.../Abbreviation/img/ed_abbreviation.gif | Bin 0 -> 134 bytes
.../xinha/plugins/Abbreviation/lang/de.js | 8 +
.../xinha/plugins/Abbreviation/lang/fr.js | 7 +
.../xinha/plugins/Abbreviation/lang/ja.js | 7 +
.../xinha/plugins/Abbreviation/lang/nb.js | 8 +
.../xinha/plugins/Abbreviation/lang/nl.js | 8 +
.../xinha/plugins/Abbreviation/lang/pt_br.js | 22 +
.../Abbreviation/popups/abbreviation.html | 92 +
.../BackgroundImage/background-image.js | 31 +
.../BackgroundImage/backgrounds/blufur.jpg | Bin 0 -> 3329 bytes
.../BackgroundImage/backgrounds/palecnvs.jpg | Bin 0 -> 3480 bytes
.../BackgroundImage/backgrounds/ppplcnvs.jpg | Bin 0 -> 3811 bytes
.../backgrounds/thumbnails/blufur.jpg | Bin 0 -> 1193 bytes
.../backgrounds/thumbnails/palecnvs.jpg | Bin 0 -> 1145 bytes
.../backgrounds/thumbnails/ppplcnvs.jpg | Bin 0 -> 3811 bytes
.../backgrounds/thumbnails/ylwsand.jpg | Bin 0 -> 3758 bytes
.../BackgroundImage/backgrounds/ylwsand.jpg | Bin 0 -> 3758 bytes
.../BackgroundImage/img/ed_bgimage.gif | Bin 0 -> 224 bytes
.../xinha/plugins/BackgroundImage/lang/de.js | 9 +
.../xinha/plugins/BackgroundImage/lang/fr.js | 8 +
.../xinha/plugins/BackgroundImage/lang/ja.js | 8 +
.../xinha/plugins/BackgroundImage/lang/nb.js | 9 +
.../xinha/plugins/BackgroundImage/lang/nl.js | 9 +
.../plugins/BackgroundImage/lang/pt_br.js | 21 +
.../BackgroundImage/popups/bgimage.html | 49 +
ccm-cms/web/assets/xinha/plugins/CSS/css.js | 77 +
.../xinha/plugins/CharCounter/char-counter.js | 109 +
.../xinha/plugins/CharCounter/lang/de.js | 8 +
.../xinha/plugins/CharCounter/lang/fr.js | 6 +
.../xinha/plugins/CharCounter/lang/ja.js | 7 +
.../xinha/plugins/CharCounter/lang/nb.js | 6 +
.../xinha/plugins/CharCounter/lang/nl.js | 8 +
.../xinha/plugins/CharCounter/lang/pt_br.js | 21 +
.../plugins/CharacterMap/CharacterMap.css | 41 +
.../plugins/CharacterMap/character-map.js | 71 +
.../plugins/CharacterMap/img/ed_charmap.gif | Bin 0 -> 134 bytes
.../xinha/plugins/CharacterMap/lang/de.js | 11 +
.../xinha/plugins/CharacterMap/lang/fr.js | 6 +
.../xinha/plugins/CharacterMap/lang/it.js | 6 +
.../xinha/plugins/CharacterMap/lang/ja.js | 6 +
.../xinha/plugins/CharacterMap/lang/nb.js | 7 +
.../xinha/plugins/CharacterMap/lang/nl.js | 11 +
.../xinha/plugins/CharacterMap/lang/pt_br.js | 19 +
.../xinha/plugins/CharacterMap/lang/ru.js | 7 +
.../xinha/plugins/CharacterMap/lang/sv.js | 7 +
.../CharacterMap/popups/select_character.html | 184 +
.../clientside-spellcheck.js | 36 +
.../img/clientside-spellcheck.gif | Bin 0 -> 97 bytes
.../img/he-spell-check.gif | Bin 0 -> 100 bytes
.../plugins/ClientsideSpellcheck/lang/de.js | 8 +
.../plugins/ClientsideSpellcheck/lang/ja.js | 7 +
.../plugins/ClientsideSpellcheck/lang/nb.js | 3 +
.../plugins/ClientsideSpellcheck/lang/nl.js | 8 +
.../ClientsideSpellcheck/lang/pt_br.js | 18 +
.../xinha/plugins/ContextMenu/context-menu.js | 390 ++
.../xinha/plugins/ContextMenu/lang/de.js | 50 +
.../xinha/plugins/ContextMenu/lang/el.js | 47 +
.../xinha/plugins/ContextMenu/lang/fr.js | 50 +
.../xinha/plugins/ContextMenu/lang/he.js | 47 +
.../xinha/plugins/ContextMenu/lang/ja.js | 53 +
.../xinha/plugins/ContextMenu/lang/nb.js | 53 +
.../xinha/plugins/ContextMenu/lang/nl.js | 47 +
.../xinha/plugins/ContextMenu/lang/pl.js | 50 +
.../xinha/plugins/ContextMenu/lang/pt_br.js | 65 +
.../xinha/plugins/ContextMenu/lang/sv.js | 54 +
.../assets/xinha/plugins/ContextMenu/menu.css | 67 +
.../DefinitionList/definition-list.css | 21 +
.../plugins/DefinitionList/definition-list.js | 74 +
.../plugins/DefinitionList/img/ed_dd.gif | Bin 0 -> 138 bytes
.../plugins/DefinitionList/img/ed_dl.gif | Bin 0 -> 136 bytes
.../plugins/DefinitionList/img/ed_dt.gif | Bin 0 -> 149 bytes
.../xinha/plugins/DefinitionList/lang/ja.js | 7 +
.../xinha/plugins/DefinitionList/lang/nl.js | 8 +
.../plugins/DefinitionList/lang/pt_br.js | 20 +
.../xinha/plugins/DoubleClick/double-click.js | 30 +
.../xinha/plugins/DynamicCSS/dynamiccss.js | 202 +
.../xinha/plugins/DynamicCSS/lang/de.js | 12 +
.../xinha/plugins/DynamicCSS/lang/fr.js | 7 +
.../xinha/plugins/DynamicCSS/lang/ja.js | 7 +
.../xinha/plugins/DynamicCSS/lang/nb.js | 8 +
.../xinha/plugins/DynamicCSS/lang/nl.js | 12 +
.../xinha/plugins/DynamicCSS/lang/pt_br.js | 21 +
.../assets/xinha/plugins/EditTag/edit-tag.js | 26 +
.../xinha/plugins/EditTag/img/ed_edit_tag.gif | Bin 0 -> 293 bytes
.../assets/xinha/plugins/EditTag/lang/de.js | 7 +
.../assets/xinha/plugins/EditTag/lang/fr.js | 6 +
.../assets/xinha/plugins/EditTag/lang/ja.js | 6 +
.../assets/xinha/plugins/EditTag/lang/nb.js | 6 +
.../assets/xinha/plugins/EditTag/lang/nl.js | 7 +
.../xinha/plugins/EditTag/lang/pt_br.js | 22 +
.../plugins/EditTag/popups/edit_tag.html | 38 +
.../xinha/plugins/Equation/ASCIIMathML.js | 703 +++
.../assets/xinha/plugins/Equation/equation.js | 146 +
.../xinha/plugins/Equation/example.html | 45 +
.../xinha/plugins/Equation/img/abs_value.gif | Bin 0 -> 72 bytes
.../plugins/Equation/img/diag_fraction.gif | Bin 0 -> 70 bytes
.../xinha/plugins/Equation/img/divide.gif | Bin 0 -> 66 bytes
.../Equation/img/dsp_greater_equal.gif | Bin 0 -> 193 bytes
.../plugins/Equation/img/dsp_less_equal.gif | Bin 0 -> 192 bytes
.../plugins/Equation/img/dsp_notequal.gif | Bin 0 -> 127 bytes
.../xinha/plugins/Equation/img/equation.gif | Bin 0 -> 200 bytes
.../plugins/Equation/img/equation.old.gif | Bin 0 -> 232 bytes
.../Equation/img/greater_equal_than.gif | Bin 0 -> 56 bytes
.../plugins/Equation/img/hor_fraction.gif | Bin 0 -> 65 bytes
.../plugins/Equation/img/less_equal_than.gif | Bin 0 -> 56 bytes
.../assets/xinha/plugins/Equation/img/mul.gif | Bin 0 -> 56 bytes
.../xinha/plugins/Equation/img/notequal.gif | Bin 0 -> 57 bytes
.../plugins/Equation/img/parenthesis.gif | Bin 0 -> 72 bytes
.../xinha/plugins/Equation/img/root.gif | Bin 0 -> 74 bytes
.../plugins/Equation/img/square_root.gif | Bin 0 -> 70 bytes
.../assets/xinha/plugins/Equation/lang/de.js | 23 +
.../assets/xinha/plugins/Equation/lang/ja.js | 11 +
.../assets/xinha/plugins/Equation/lang/nl.js | 13 +
.../xinha/plugins/Equation/lang/pt_br.js | 36 +
.../xinha/plugins/Equation/popups/dialog.html | 358 ++
.../assets/xinha/plugins/Equation/readme.txt | 38 +
.../Classes/ExtendedFileManager.php | 825 ++++
.../plugins/ExtendedFileManager/Readme.txt | 111 +
.../assets/EditorContent.js | 662 +++
.../assets/ImageEditor.css | 76 +
.../ExtendedFileManager/assets/dialog.js | 83 +
.../assets/dragTableCols.js | 126 +
.../ExtendedFileManager/assets/editor.css | 184 +
.../ExtendedFileManager/assets/editor.js | 192 +
.../assets/editorFrame.css | 17 +
.../ExtendedFileManager/assets/editorFrame.js | 91 +
.../ExtendedFileManager/assets/hover.htc | 34 +
.../ExtendedFileManager/assets/imagelist.css | 55 +
.../ExtendedFileManager/assets/images.js | 245 ++
.../ExtendedFileManager/assets/manager.css | 49 +
.../ExtendedFileManager/assets/manager.js | 401 ++
.../ExtendedFileManager/assets/popup.js | 71 +
.../ExtendedFileManager/assets/slider.js | 87 +
.../assets/wz_jsgraphics.js | 778 ++++
.../plugins/ExtendedFileManager/backend.php | 110 +
.../ExtendedFileManager/config.inc.php | 387 ++
.../ExtendedFileManager/demo_images/.htaccess | 2 +
.../demo_images/bikerpeep.jpg | Bin 0 -> 27684 bytes
.../demo_images/linux/linux.gif | Bin 0 -> 11803 bytes
.../demo_images/wesnoth078.jpg | Bin 0 -> 8460 bytes
.../plugins/ExtendedFileManager/editor.php | 172 +
.../ExtendedFileManager/editorFrame.php | 84 +
.../extended-file-manager.js | 242 ++
.../plugins/ExtendedFileManager/icons/def.gif | Bin 0 -> 1100 bytes
.../ExtendedFileManager/icons/def_small.gif | Bin 0 -> 291 bytes
.../plugins/ExtendedFileManager/icons/doc.gif | Bin 0 -> 479 bytes
.../ExtendedFileManager/icons/doc_small.gif | Bin 0 -> 140 bytes
.../plugins/ExtendedFileManager/icons/fla.gif | Bin 0 -> 321 bytes
.../ExtendedFileManager/icons/fla_small.gif | Bin 0 -> 250 bytes
.../ExtendedFileManager/icons/folder.gif | Bin 0 -> 1191 bytes
.../icons/folder_small.gif | Bin 0 -> 226 bytes
.../ExtendedFileManager/icons/gif_small.gif | Bin 0 -> 119 bytes
.../plugins/ExtendedFileManager/icons/gz.gif | Bin 0 -> 2163 bytes
.../ExtendedFileManager/icons/gz_small.gif | Bin 0 -> 612 bytes
.../ExtendedFileManager/icons/html.gif | Bin 0 -> 2223 bytes
.../ExtendedFileManager/icons/html_small.gif | Bin 0 -> 622 bytes
.../ExtendedFileManager/icons/jpg_small.gif | Bin 0 -> 119 bytes
.../plugins/ExtendedFileManager/icons/js.gif | Bin 0 -> 211 bytes
.../ExtendedFileManager/icons/js_small.gif | Bin 0 -> 110 bytes
.../plugins/ExtendedFileManager/icons/mov.gif | Bin 0 -> 2326 bytes
.../ExtendedFileManager/icons/mov_small.gif | Bin 0 -> 353 bytes
.../plugins/ExtendedFileManager/icons/pdf.gif | Bin 0 -> 621 bytes
.../ExtendedFileManager/icons/pdf_small.gif | Bin 0 -> 230 bytes
.../plugins/ExtendedFileManager/icons/php.gif | Bin 0 -> 419 bytes
.../ExtendedFileManager/icons/php_small.gif | Bin 0 -> 120 bytes
.../ExtendedFileManager/icons/png_small.gif | Bin 0 -> 119 bytes
.../plugins/ExtendedFileManager/icons/ppt.gif | Bin 0 -> 413 bytes
.../ExtendedFileManager/icons/ppt_small.gif | Bin 0 -> 139 bytes
.../plugins/ExtendedFileManager/icons/rar.gif | Bin 0 -> 1718 bytes
.../ExtendedFileManager/icons/rar_small.gif | Bin 0 -> 564 bytes
.../plugins/ExtendedFileManager/icons/txt.gif | Bin 0 -> 304 bytes
.../ExtendedFileManager/icons/txt_small.gif | Bin 0 -> 119 bytes
.../plugins/ExtendedFileManager/icons/xls.gif | Bin 0 -> 467 bytes
.../ExtendedFileManager/icons/xls_small.gif | Bin 0 -> 139 bytes
.../plugins/ExtendedFileManager/icons/zip.gif | Bin 0 -> 2163 bytes
.../ExtendedFileManager/icons/zip_small.gif | Bin 0 -> 612 bytes
.../plugins/ExtendedFileManager/images.php | 391 ++
.../img/1x1_transparent.gif | Bin 0 -> 43 bytes
.../plugins/ExtendedFileManager/img/2x2.gif | Bin 0 -> 286 bytes
.../plugins/ExtendedFileManager/img/2x2_w.gif | Bin 0 -> 286 bytes
.../ExtendedFileManager/img/btnFolderNew.gif | Bin 0 -> 179 bytes
.../ExtendedFileManager/img/btnFolderNew1.gif | Bin 0 -> 590 bytes
.../ExtendedFileManager/img/btnFolderUp.gif | Bin 0 -> 182 bytes
.../ExtendedFileManager/img/btnFolderUp1.gif | Bin 0 -> 596 bytes
.../ExtendedFileManager/img/btn_cancel.gif | Bin 0 -> 672 bytes
.../ExtendedFileManager/img/btn_ok.gif | Bin 0 -> 326 bytes
.../plugins/ExtendedFileManager/img/crop.gif | Bin 0 -> 180 bytes
.../ExtendedFileManager/img/default.gif | Bin 0 -> 226 bytes
.../plugins/ExtendedFileManager/img/div.gif | Bin 0 -> 42 bytes
.../plugins/ExtendedFileManager/img/dots.gif | Bin 0 -> 167 bytes
.../ExtendedFileManager/img/ed_linkfile.gif | Bin 0 -> 288 bytes
.../ExtendedFileManager/img/ed_linkfile1.gif | Bin 0 -> 253 bytes
.../ExtendedFileManager/img/edit_active.gif | Bin 0 -> 151 bytes
.../ExtendedFileManager/img/edit_copy.gif | Bin 0 -> 245 bytes
.../ExtendedFileManager/img/edit_cut.gif | Bin 0 -> 217 bytes
.../ExtendedFileManager/img/edit_paste.gif | Bin 0 -> 265 bytes
.../ExtendedFileManager/img/edit_pencil.gif | Bin 0 -> 132 bytes
.../ExtendedFileManager/img/edit_rename.gif | Bin 0 -> 321 bytes
.../ExtendedFileManager/img/edit_trash.gif | Bin 0 -> 132 bytes
.../ExtendedFileManager/img/folder.gif | Bin 0 -> 1191 bytes
.../plugins/ExtendedFileManager/img/hand.gif | Bin 0 -> 103 bytes
.../ExtendedFileManager/img/islocked2.gif | Bin 0 -> 321 bytes
.../ExtendedFileManager/img/locked.gif | Bin 0 -> 398 bytes
.../ExtendedFileManager/img/measure.gif | Bin 0 -> 93 bytes
.../ExtendedFileManager/img/noimages.gif | Bin 0 -> 772 bytes
.../ExtendedFileManager/img/rotate.gif | Bin 0 -> 85 bytes
.../plugins/ExtendedFileManager/img/save.gif | Bin 0 -> 95 bytes
.../plugins/ExtendedFileManager/img/scale.gif | Bin 0 -> 106 bytes
.../ExtendedFileManager/img/spacer.gif | Bin 0 -> 43 bytes
.../ExtendedFileManager/img/t_black.gif | Bin 0 -> 85 bytes
.../ExtendedFileManager/img/t_white.gif | Bin 0 -> 85 bytes
.../ExtendedFileManager/img/unlocked.gif | Bin 0 -> 218 bytes
.../ExtendedFileManager/img/unlocked2.gif | Bin 0 -> 191 bytes
.../img/unlocked_empty.gif | Bin 0 -> 73 bytes
.../plugins/ExtendedFileManager/lang/de.js | 119 +
.../plugins/ExtendedFileManager/lang/es.js | 70 +
.../plugins/ExtendedFileManager/lang/fr.js | 117 +
.../plugins/ExtendedFileManager/lang/ja.js | 118 +
.../plugins/ExtendedFileManager/lang/nb.js | 110 +
.../plugins/ExtendedFileManager/lang/nl.js | 116 +
.../plugins/ExtendedFileManager/lang/pl.js | 110 +
.../plugins/ExtendedFileManager/lang/pt_br.js | 102 +
.../plugins/ExtendedFileManager/manager.php | 285 ++
.../plugins/ExtendedFileManager/prompt.html | 92 +
.../plugins/ExtendedFileManager/resizer.php | 83 +
.../plugins/ExtendedFileManager/thumbs.php | 85 +
.../web/assets/xinha/plugins/Filter/filter.js | 46 +
.../xinha/plugins/Filter/filters/paragraph.js | 10 +
.../xinha/plugins/Filter/filters/word.js | 30 +
.../xinha/plugins/Filter/img/ed_filter.gif | Bin 0 -> 334 bytes
.../assets/xinha/plugins/Filter/lang/ja.js | 5 +
.../assets/xinha/plugins/Filter/lang/nl.js | 6 +
.../assets/xinha/plugins/Filter/lang/pt_br.js | 18 +
.../xinha/plugins/FindReplace/find-replace.js | 27 +
.../xinha/plugins/FindReplace/fr_engine.js | 147 +
.../xinha/plugins/FindReplace/img/ed_find.gif | Bin 0 -> 98 bytes
.../xinha/plugins/FindReplace/lang/de.js | 27 +
.../xinha/plugins/FindReplace/lang/fr.js | 26 +
.../xinha/plugins/FindReplace/lang/ja.js | 26 +
.../xinha/plugins/FindReplace/lang/nb.js | 27 +
.../xinha/plugins/FindReplace/lang/nl.js | 27 +
.../xinha/plugins/FindReplace/lang/pl.js | 27 +
.../xinha/plugins/FindReplace/lang/pt_br.js | 41 +
.../xinha/plugins/FindReplace/lang/ru.js | 28 +
.../xinha/plugins/FindReplace/lang/sv.js | 27 +
.../FindReplace/popups/find_replace.html | 162 +
.../xinha/plugins/FormOperations/README | 32 +
.../plugins/FormOperations/default_form.html | 36 +
.../plugins/FormOperations/form-operations.js | 435 ++
.../xinha/plugins/FormOperations/formmail.php | 95 +
.../xinha/plugins/FormOperations/iframe.css | 1 +
.../plugins/FormOperations/img/buttons.gif | Bin 0 -> 1947 bytes
.../xinha/plugins/FormOperations/lang/de.js | 12 +
.../xinha/plugins/FormOperations/lang/fr.js | 11 +
.../xinha/plugins/FormOperations/lang/ja.js | 51 +
.../xinha/plugins/FormOperations/lang/nb.js | 12 +
.../xinha/plugins/FormOperations/lang/nl.js | 12 +
.../plugins/FormOperations/lang/pt_br.js | 26 +
.../xinha/plugins/FormOperations/panel.html | 213 +
.../web/assets/xinha/plugins/Forms/forms.css | 3 +
.../web/assets/xinha/plugins/Forms/forms.js | 349 ++
.../xinha/plugins/Forms/img/ed_button.gif | Bin 0 -> 89 bytes
.../xinha/plugins/Forms/img/ed_checkbox.gif | Bin 0 -> 102 bytes
.../xinha/plugins/Forms/img/ed_fieldset.gif | Bin 0 -> 76 bytes
.../xinha/plugins/Forms/img/ed_file.gif | Bin 0 -> 130 bytes
.../xinha/plugins/Forms/img/ed_form.gif | Bin 0 -> 114 bytes
.../xinha/plugins/Forms/img/ed_hidden.gif | Bin 0 -> 83 bytes
.../xinha/plugins/Forms/img/ed_image.gif | Bin 0 -> 562 bytes
.../xinha/plugins/Forms/img/ed_label.gif | Bin 0 -> 58 bytes
.../xinha/plugins/Forms/img/ed_password.gif | Bin 0 -> 111 bytes
.../xinha/plugins/Forms/img/ed_radio.gif | Bin 0 -> 104 bytes
.../xinha/plugins/Forms/img/ed_reset.gif | Bin 0 -> 97 bytes
.../xinha/plugins/Forms/img/ed_select.gif | Bin 0 -> 111 bytes
.../xinha/plugins/Forms/img/ed_submit.gif | Bin 0 -> 94 bytes
.../xinha/plugins/Forms/img/ed_text.gif | Bin 0 -> 112 bytes
.../xinha/plugins/Forms/img/ed_textarea.gif | Bin 0 -> 115 bytes
.../web/assets/xinha/plugins/Forms/lang/ja.js | 86 +
.../web/assets/xinha/plugins/Forms/lang/nl.js | 87 +
.../assets/xinha/plugins/Forms/lang/pt_br.js | 83 +
.../xinha/plugins/Forms/popups/fieldset.html | 45 +
.../xinha/plugins/Forms/popups/form.html | 89 +
.../xinha/plugins/Forms/popups/input.html | 179 +
.../xinha/plugins/Forms/popups/label.html | 58 +
.../xinha/plugins/Forms/popups/select.html | 208 +
.../xinha/plugins/Forms/popups/textarea.html | 112 +
.../xinha/plugins/FullPage/full-page.js | 203 +
.../xinha/plugins/FullPage/img/docprop.gif | Bin 0 -> 613 bytes
.../assets/xinha/plugins/FullPage/lang/de.js | 18 +
.../assets/xinha/plugins/FullPage/lang/fr.js | 17 +
.../assets/xinha/plugins/FullPage/lang/he.js | 14 +
.../assets/xinha/plugins/FullPage/lang/ja.js | 17 +
.../assets/xinha/plugins/FullPage/lang/nb.js | 17 +
.../assets/xinha/plugins/FullPage/lang/nl.js | 13 +
.../assets/xinha/plugins/FullPage/lang/pl.js | 18 +
.../xinha/plugins/FullPage/lang/pt_br.js | 35 +
.../assets/xinha/plugins/FullPage/lang/ro.js | 14 +
.../plugins/FullPage/popups/docprop.html | 142 +
.../plugins/GenericPlugin/generic-plugin.js | 51 +
.../assets/xinha/plugins/GetHtml/get-html.js | 8 +
.../plugins/HorizontalRule/horizontal-rule.js | 130 +
.../xinha/plugins/HorizontalRule/lang/de.js | 21 +
.../xinha/plugins/HorizontalRule/lang/fr.js | 20 +
.../xinha/plugins/HorizontalRule/lang/ja.js | 21 +
.../xinha/plugins/HorizontalRule/lang/nb.js | 21 +
.../xinha/plugins/HorizontalRule/lang/nl.js | 21 +
.../plugins/HorizontalRule/lang/pt_br.js | 34 +
.../popups/edit_horizontal_rule.html | 141 +
.../xinha/plugins/HtmlEntities/Entities.js | 204 +
.../plugins/HtmlEntities/html-entities.js | 21 +
.../xinha/plugins/HtmlEntities/iso-8859-1.js | 109 +
.../web/assets/xinha/plugins/HtmlTidy/README | 104 +
.../plugins/HtmlTidy/html-tidy-config.cfg | 29 +
.../plugins/HtmlTidy/html-tidy-logic.php | 79 +
.../xinha/plugins/HtmlTidy/html-tidy.js | 72 +
.../xinha/plugins/HtmlTidy/img/html-tidy.gif | Bin 0 -> 599 bytes
.../assets/xinha/plugins/HtmlTidy/lang/de.js | 7 +
.../assets/xinha/plugins/HtmlTidy/lang/fr.js | 8 +
.../assets/xinha/plugins/HtmlTidy/lang/ja.js | 8 +
.../assets/xinha/plugins/HtmlTidy/lang/nb.js | 7 +
.../assets/xinha/plugins/HtmlTidy/lang/nl.js | 5 +
.../xinha/plugins/HtmlTidy/lang/pt_br.js | 21 +
.../plugins/ImageManager/Classes/Files.php | 333 ++
.../xinha/plugins/ImageManager/Classes/GD.php | 597 +++
.../xinha/plugins/ImageManager/Classes/IM.php | 239 ++
.../ImageManager/Classes/ImageEditor.php | 495 +++
.../ImageManager/Classes/ImageManager.php | 664 +++
.../plugins/ImageManager/Classes/NetPBM.php | 257 ++
.../ImageManager/Classes/Thumbnail.php | 125 +
.../ImageManager/Classes/Transform.php | 569 +++
.../xinha/plugins/ImageManager/README.txt | 150 +
.../ImageManager/assets/EditorContent.js | 660 +++
.../ImageManager/assets/ImageEditor.css | 76 +
.../plugins/ImageManager/assets/dialog.js | 83 +
.../plugins/ImageManager/assets/editor.css | 194 +
.../plugins/ImageManager/assets/editor.js | 130 +
.../ImageManager/assets/editorFrame.css | 8 +
.../ImageManager/assets/editorFrame.js | 76 +
.../plugins/ImageManager/assets/hover.htc | 34 +
.../plugins/ImageManager/assets/imagelist.css | 46 +
.../plugins/ImageManager/assets/images.js | 119 +
.../plugins/ImageManager/assets/manager.css | 46 +
.../plugins/ImageManager/assets/manager.js | 233 +
.../plugins/ImageManager/assets/popup.js | 32 +
.../plugins/ImageManager/assets/slider.js | 87 +
.../ImageManager/assets/wz_jsgraphics.js | 505 +++
.../xinha/plugins/ImageManager/backend.php | 155 +
.../xinha/plugins/ImageManager/config.inc.php | 346 ++
.../assets/xinha/plugins/ImageManager/ddt.php | 288 ++
.../ImageManager/demo_images/bikerpeep.jpg | Bin 0 -> 27684 bytes
.../ImageManager/demo_images/linux/linux.gif | Bin 0 -> 11803 bytes
.../ImageManager/demo_images/wesnoth078.jpg | Bin 0 -> 8460 bytes
.../xinha/plugins/ImageManager/editor.php | 149 +
.../plugins/ImageManager/editorFrame.php | 79 +
.../plugins/ImageManager/image-manager.js | 149 +
.../plugins/ImageManager/image-picker.js | 66 +
.../xinha/plugins/ImageManager/images.php | 290 ++
.../xinha/plugins/ImageManager/img/2x2.gif | Bin 0 -> 286 bytes
.../xinha/plugins/ImageManager/img/2x2_w.gif | Bin 0 -> 286 bytes
.../plugins/ImageManager/img/btnFolderNew.gif | Bin 0 -> 590 bytes
.../plugins/ImageManager/img/btnFolderUp.gif | Bin 0 -> 596 bytes
.../plugins/ImageManager/img/btn_cancel.gif | Bin 0 -> 672 bytes
.../xinha/plugins/ImageManager/img/btn_ok.gif | Bin 0 -> 326 bytes
.../xinha/plugins/ImageManager/img/crop.gif | Bin 0 -> 180 bytes
.../plugins/ImageManager/img/default.gif | Bin 0 -> 226 bytes
.../xinha/plugins/ImageManager/img/div.gif | Bin 0 -> 42 bytes
.../xinha/plugins/ImageManager/img/dots.gif | Bin 0 -> 167 bytes
.../plugins/ImageManager/img/edit_active.gif | Bin 0 -> 151 bytes
.../plugins/ImageManager/img/edit_pencil.gif | Bin 0 -> 132 bytes
.../plugins/ImageManager/img/edit_trash.gif | Bin 0 -> 132 bytes
.../xinha/plugins/ImageManager/img/folder.gif | Bin 0 -> 1191 bytes
.../xinha/plugins/ImageManager/img/hand.gif | Bin 0 -> 103 bytes
.../plugins/ImageManager/img/islocked2.gif | Bin 0 -> 321 bytes
.../xinha/plugins/ImageManager/img/locked.gif | Bin 0 -> 398 bytes
.../plugins/ImageManager/img/measure.gif | Bin 0 -> 93 bytes
.../plugins/ImageManager/img/noimages.gif | Bin 0 -> 772 bytes
.../xinha/plugins/ImageManager/img/rotate.gif | Bin 0 -> 85 bytes
.../xinha/plugins/ImageManager/img/save.gif | Bin 0 -> 95 bytes
.../xinha/plugins/ImageManager/img/scale.gif | Bin 0 -> 106 bytes
.../xinha/plugins/ImageManager/img/spacer.gif | Bin 0 -> 43 bytes
.../plugins/ImageManager/img/t_black.gif | Bin 0 -> 85 bytes
.../plugins/ImageManager/img/t_white.gif | Bin 0 -> 85 bytes
.../plugins/ImageManager/img/unlocked.gif | Bin 0 -> 73 bytes
.../plugins/ImageManager/img/unlocked2.gif | Bin 0 -> 191 bytes
.../xinha/plugins/ImageManager/lang/de.js | 65 +
.../xinha/plugins/ImageManager/lang/es.js | 70 +
.../xinha/plugins/ImageManager/lang/fr.js | 66 +
.../xinha/plugins/ImageManager/lang/ja.js | 70 +
.../xinha/plugins/ImageManager/lang/nb.js | 65 +
.../xinha/plugins/ImageManager/lang/nl.js | 7 +
.../xinha/plugins/ImageManager/lang/pl.js | 70 +
.../xinha/plugins/ImageManager/lang/pt_br.js | 108 +
.../xinha/plugins/ImageManager/lang/ru.js | 67 +
.../xinha/plugins/ImageManager/lang/sv.js | 7 +
.../xinha/plugins/ImageManager/manager.php | 204 +
.../xinha/plugins/ImageManager/newFolder.html | 79 +
.../xinha/plugins/ImageManager/resizer.php | 83 +
.../xinha/plugins/ImageManager/thumbs.php | 90 +
.../InsertAnchor/img/insert-anchor.gif | Bin 0 -> 370 bytes
.../plugins/InsertAnchor/img/placeholder.gif | Bin 0 -> 834 bytes
.../plugins/InsertAnchor/insert-anchor.css | 8 +
.../plugins/InsertAnchor/insert-anchor.js | 84 +
.../xinha/plugins/InsertAnchor/lang/de.js | 8 +
.../xinha/plugins/InsertAnchor/lang/fr.js | 7 +
.../xinha/plugins/InsertAnchor/lang/ja.js | 7 +
.../xinha/plugins/InsertAnchor/lang/nb.js | 7 +
.../xinha/plugins/InsertAnchor/lang/nl.js | 8 +
.../xinha/plugins/InsertAnchor/lang/pl.js | 8 +
.../xinha/plugins/InsertAnchor/lang/pt_br.js | 22 +
.../InsertAnchor/popups/insert_anchor.html | 59 +
.../plugins/InsertMarquee/img/ed_marquee.gif | Bin 0 -> 122 bytes
.../plugins/InsertMarquee/insert-marquee.js | 67 +
.../xinha/plugins/InsertMarquee/lang/de.js | 15 +
.../xinha/plugins/InsertMarquee/lang/fr.js | 17 +
.../xinha/plugins/InsertMarquee/lang/it.js | 7 +
.../xinha/plugins/InsertMarquee/lang/ja.js | 22 +
.../xinha/plugins/InsertMarquee/lang/nb.js | 18 +
.../xinha/plugins/InsertMarquee/lang/nl.js | 18 +
.../xinha/plugins/InsertMarquee/lang/pt_br.js | 37 +
.../InsertMarquee/popups/insert_marquee.html | 99 +
.../plugins/InsertPagebreak/img/pagebreak.gif | Bin 0 -> 105 bytes
.../InsertPagebreak/insert-pagebreak.js | 20 +
.../xinha/plugins/InsertPagebreak/lang/de.js | 6 +
.../xinha/plugins/InsertPagebreak/lang/fr.js | 5 +
.../xinha/plugins/InsertPagebreak/lang/ja.js | 5 +
.../xinha/plugins/InsertPagebreak/lang/nb.js | 6 +
.../xinha/plugins/InsertPagebreak/lang/nl.js | 6 +
.../plugins/InsertPagebreak/lang/pt_br.js | 18 +
.../plugins/InsertPicture/InsertPicture.php | 301 ++
.../InsertPicture/demo_pictures/bikerpeep.jpg | Bin 0 -> 27684 bytes
.../demo_pictures/wesnoth078.jpg | Bin 0 -> 8460 bytes
.../plugins/InsertPicture/img/btn_open.gif | Bin 0 -> 173 bytes
.../xinha/plugins/InsertPicture/img/nopic.gif | Bin 0 -> 1537 bytes
.../plugins/InsertPicture/insert-picture.js | 12 +
.../xinha/plugins/InsertPicture/lang/de.js | 15 +
.../xinha/plugins/InsertPicture/lang/fr.js | 22 +
.../xinha/plugins/InsertPicture/lang/ja.js | 25 +
.../xinha/plugins/InsertPicture/lang/nb.js | 22 +
.../xinha/plugins/InsertPicture/lang/nl.js | 35 +
.../xinha/plugins/InsertPicture/lang/pt_br.js | 61 +
.../xinha/plugins/InsertPicture/lang/sv.js | 35 +
.../plugins/InsertPicture/viewpicture.html | 46 +
.../xinha/plugins/InsertSmiley/README.txt | 9 +
.../plugins/InsertSmiley/img/ed_smiley.gif | Bin 0 -> 414 bytes
.../plugins/InsertSmiley/insert-smiley.js | 27 +
.../xinha/plugins/InsertSmiley/lang/de.js | 7 +
.../xinha/plugins/InsertSmiley/lang/fr.js | 7 +
.../xinha/plugins/InsertSmiley/lang/ja.js | 7 +
.../xinha/plugins/InsertSmiley/lang/nb.js | 8 +
.../xinha/plugins/InsertSmiley/lang/nl.js | 8 +
.../xinha/plugins/InsertSmiley/lang/pt_br.js | 19 +
.../InsertSmiley/popups/insertsmiley.html | 64 +
.../xinha/plugins/InsertSmiley/smileys.txt | 580 +++
.../plugins/InsertSnippet/InsertSnippet.css | 93 +
.../plugins/InsertSnippet/demosnippets.js | 17 +
.../plugins/InsertSnippet/img/ed_snippet.gif | Bin 0 -> 606 bytes
.../plugins/InsertSnippet/insert-snippet.js | 55 +
.../xinha/plugins/InsertSnippet/lang/de.js | 10 +
.../xinha/plugins/InsertSnippet/lang/ja.js | 10 +
.../xinha/plugins/InsertSnippet/lang/nb.js | 11 +
.../xinha/plugins/InsertSnippet/lang/nl.js | 11 +
.../xinha/plugins/InsertSnippet/lang/pt_br.js | 25 +
.../InsertSnippet/popups/insertsnippet.html | 133 +
.../xinha/plugins/InsertSnippet/readme.html | 57 +
.../xinha/plugins/InsertSnippet/snippets.html | 29 +
.../xinha/plugins/InsertSnippet/snippets.php | 22 +
.../xinha/plugins/InsertWords/insert-words.js | 41 +
.../xinha/plugins/LangMarks/lang-marks.css | 15 +
.../xinha/plugins/LangMarks/lang-marks.js | 127 +
.../assets/xinha/plugins/LangMarks/lang/de.js | 11 +
.../assets/xinha/plugins/LangMarks/lang/fr.js | 10 +
.../assets/xinha/plugins/LangMarks/lang/ja.js | 10 +
.../assets/xinha/plugins/LangMarks/lang/nb.js | 11 +
.../assets/xinha/plugins/LangMarks/lang/nl.js | 11 +
.../xinha/plugins/LangMarks/lang/pt_br.js | 23 +
.../xinha/plugins/Linker/dTree/api.html | 252 ++
.../xinha/plugins/Linker/dTree/dtree.css | 39 +
.../xinha/plugins/Linker/dTree/dtree.js | 357 ++
.../xinha/plugins/Linker/dTree/example01.html | 53 +
.../xinha/plugins/Linker/dTree/img/base.gif | Bin 0 -> 1018 bytes
.../xinha/plugins/Linker/dTree/img/cd.gif | Bin 0 -> 228 bytes
.../xinha/plugins/Linker/dTree/img/copy.gif | Bin 0 -> 641 bytes
.../xinha/plugins/Linker/dTree/img/empty.gif | Bin 0 -> 62 bytes
.../xinha/plugins/Linker/dTree/img/folder.gif | Bin 0 -> 355 bytes
.../plugins/Linker/dTree/img/folderopen.gif | Bin 0 -> 365 bytes
.../xinha/plugins/Linker/dTree/img/globe.gif | Bin 0 -> 1080 bytes
.../plugins/Linker/dTree/img/imgfolder.gif | Bin 0 -> 609 bytes
.../xinha/plugins/Linker/dTree/img/join.gif | Bin 0 -> 62 bytes
.../plugins/Linker/dTree/img/joinbottom.gif | Bin 0 -> 55 bytes
.../xinha/plugins/Linker/dTree/img/line.gif | Bin 0 -> 46 bytes
.../xinha/plugins/Linker/dTree/img/minus.gif | Bin 0 -> 82 bytes
.../plugins/Linker/dTree/img/minusbottom.gif | Bin 0 -> 76 bytes
.../xinha/plugins/Linker/dTree/img/move.gif | Bin 0 -> 653 bytes
.../plugins/Linker/dTree/img/musicfolder.gif | Bin 0 -> 626 bytes
.../Linker/dTree/img/nolines_minus.gif | Bin 0 -> 64 bytes
.../plugins/Linker/dTree/img/nolines_plus.gif | Bin 0 -> 67 bytes
.../plugins/Linker/dTree/img/offline.gif | Bin 0 -> 1001 bytes
.../plugins/Linker/dTree/img/offline.png | Bin 0 -> 922 bytes
.../xinha/plugins/Linker/dTree/img/page.gif | Bin 0 -> 556 bytes
.../xinha/plugins/Linker/dTree/img/plus.gif | Bin 0 -> 86 bytes
.../plugins/Linker/dTree/img/plusbottom.gif | Bin 0 -> 82 bytes
.../plugins/Linker/dTree/img/question.gif | Bin 0 -> 1034 bytes
.../xinha/plugins/Linker/dTree/img/trash.gif | Bin 0 -> 1036 bytes
.../assets/xinha/plugins/Linker/dialog.html | 107 +
.../assets/xinha/plugins/Linker/lang/de.js | 19 +
.../assets/xinha/plugins/Linker/lang/fr.js | 18 +
.../assets/xinha/plugins/Linker/lang/ja.js | 24 +
.../assets/xinha/plugins/Linker/lang/nb.js | 7 +
.../assets/xinha/plugins/Linker/lang/nl.js | 7 +
.../assets/xinha/plugins/Linker/lang/pl.js | 19 +
.../assets/xinha/plugins/Linker/lang/pt_br.js | 43 +
.../web/assets/xinha/plugins/Linker/linker.js | 388 ++
.../web/assets/xinha/plugins/Linker/scan.php | 114 +
.../xinha/plugins/ListType/ListType.css | 43 +
.../xinha/plugins/ListType/img/circle.png | Bin 0 -> 180 bytes
.../xinha/plugins/ListType/img/decimal.png | Bin 0 -> 230 bytes
.../xinha/plugins/ListType/img/disc.png | Bin 0 -> 166 bytes
.../plugins/ListType/img/lower-alpha.png | Bin 0 -> 201 bytes
.../plugins/ListType/img/lower-roman.png | Bin 0 -> 175 bytes
.../xinha/plugins/ListType/img/none.png | Bin 0 -> 146 bytes
.../xinha/plugins/ListType/img/square.png | Bin 0 -> 156 bytes
.../plugins/ListType/img/upper-alpha.png | Bin 0 -> 222 bytes
.../plugins/ListType/img/upper-roman.png | Bin 0 -> 202 bytes
.../assets/xinha/plugins/ListType/lang/de.js | 12 +
.../assets/xinha/plugins/ListType/lang/fr.js | 11 +
.../assets/xinha/plugins/ListType/lang/ja.js | 11 +
.../assets/xinha/plugins/ListType/lang/nb.js | 12 +
.../assets/xinha/plugins/ListType/lang/nl.js | 12 +
.../assets/xinha/plugins/ListType/lang/pl.js | 12 +
.../xinha/plugins/ListType/lang/pt_br.js | 24 +
.../assets/xinha/plugins/ListType/lang/ru.js | 12 +
.../assets/xinha/plugins/ListType/lang/sv.js | 12 +
.../xinha/plugins/ListType/list-type.js | 140 +
.../xinha/plugins/NoteServer/img/note.gif | Bin 0 -> 87 bytes
.../xinha/plugins/NoteServer/lang/de.js | 21 +
.../xinha/plugins/NoteServer/lang/fr.js | 16 +
.../xinha/plugins/NoteServer/lang/ja.js | 18 +
.../xinha/plugins/NoteServer/lang/nb.js | 17 +
.../xinha/plugins/NoteServer/lang/nl.js | 17 +
.../xinha/plugins/NoteServer/lang/pt_br.js | 37 +
.../xinha/plugins/NoteServer/note-server.js | 93 +
.../plugins/NoteServer/popups/codenote.html | 162 +
.../plugins/PasteText/img/ed_paste_text.gif | Bin 0 -> 381 bytes
.../assets/xinha/plugins/PasteText/lang/de.js | 5 +
.../assets/xinha/plugins/PasteText/lang/fr.js | 5 +
.../assets/xinha/plugins/PasteText/lang/ja.js | 5 +
.../assets/xinha/plugins/PasteText/lang/nb.js | 6 +
.../assets/xinha/plugins/PasteText/lang/nl.js | 6 +
.../assets/xinha/plugins/PasteText/lang/pl.js | 6 +
.../xinha/plugins/PasteText/lang/pt_br.js | 21 +
.../assets/xinha/plugins/PasteText/lang/ru.js | 5 +
.../xinha/plugins/PasteText/paste-text.js | 42 +
.../plugins/PasteText/popups/paste_text.html | 52 +
.../xinha/plugins/PreserveScripts/js.png | Bin 0 -> 730 bytes
.../xinha/plugins/PreserveScripts/php.png | Bin 0 -> 698 bytes
.../xinha/plugins/PreserveScripts/php.svg | 152 +
.../PreserveScripts/preserve-scripts.js | 41 +
.../plugins/QuickTag/img/ed_quicktag.gif | Bin 0 -> 82 bytes
.../assets/xinha/plugins/QuickTag/lang/de.js | 16 +
.../assets/xinha/plugins/QuickTag/lang/fr.js | 16 +
.../assets/xinha/plugins/QuickTag/lang/ja.js | 16 +
.../assets/xinha/plugins/QuickTag/lang/nb.js | 17 +
.../assets/xinha/plugins/QuickTag/lang/nl.js | 17 +
.../assets/xinha/plugins/QuickTag/lang/pl.js | 17 +
.../xinha/plugins/QuickTag/lang/pt_br.js | 30 +
.../plugins/QuickTag/popups/quicktag.html | 354 ++
.../xinha/plugins/QuickTag/quick-tag.js | 32 +
.../assets/xinha/plugins/QuickTag/tag-lib.js | 30 +
.../xinha/plugins/SaveSubmit/README.txt | 15 +
.../plugins/SaveSubmit/img/ed_save_green.gif | Bin 0 -> 208 bytes
.../plugins/SaveSubmit/img/ed_save_red.gif | Bin 0 -> 207 bytes
.../xinha/plugins/SaveSubmit/lang/de.js | 8 +
.../xinha/plugins/SaveSubmit/lang/fr.js | 8 +
.../xinha/plugins/SaveSubmit/lang/ja.js | 8 +
.../xinha/plugins/SaveSubmit/lang/nl.js | 9 +
.../xinha/plugins/SaveSubmit/lang/pt_br.js | 21 +
.../xinha/plugins/SaveSubmit/lang/ru.js | 9 +
.../xinha/plugins/SaveSubmit/save-submit.js | 137 +
.../xinha/plugins/SetId/img/placeholder.gif | Bin 0 -> 834 bytes
.../assets/xinha/plugins/SetId/img/set-id.gif | Bin 0 -> 370 bytes
.../web/assets/xinha/plugins/SetId/lang/de.js | 8 +
.../web/assets/xinha/plugins/SetId/lang/ja.js | 9 +
.../web/assets/xinha/plugins/SetId/lang/nb.js | 8 +
.../web/assets/xinha/plugins/SetId/lang/nl.js | 10 +
.../assets/xinha/plugins/SetId/lang/pt_br.js | 25 +
.../xinha/plugins/SetId/popups/set_id.html | 58 +
.../web/assets/xinha/plugins/SetId/set-id.css | 7 +
.../web/assets/xinha/plugins/SetId/set-id.js | 71 +
.../xinha/plugins/SmartReplace/dialog.html | 17 +
.../plugins/SmartReplace/img/smartquotes.gif | Bin 0 -> 191 bytes
.../xinha/plugins/SmartReplace/lang/de.js | 19 +
.../xinha/plugins/SmartReplace/lang/ja.js | 19 +
.../xinha/plugins/SmartReplace/lang/nl.js | 20 +
.../xinha/plugins/SmartReplace/lang/pt_br.js | 24 +
.../xinha/plugins/SmartReplace/readme.txt | 15 +
.../plugins/SmartReplace/smart-replace.js | 249 ++
.../assets/xinha/plugins/SpellChecker/README | 8 +
.../plugins/SpellChecker/aspell_setup.php | 123 +
.../SpellChecker/img/he-spell-check.gif | Bin 0 -> 100 bytes
.../plugins/SpellChecker/img/spell-check.gif | Bin 0 -> 337 bytes
.../xinha/plugins/SpellChecker/lang/cz.js | 26 +
.../xinha/plugins/SpellChecker/lang/da.js | 26 +
.../xinha/plugins/SpellChecker/lang/de.js | 26 +
.../xinha/plugins/SpellChecker/lang/fr.js | 26 +
.../xinha/plugins/SpellChecker/lang/he.js | 27 +
.../xinha/plugins/SpellChecker/lang/hu.js | 26 +
.../xinha/plugins/SpellChecker/lang/ja.js | 28 +
.../xinha/plugins/SpellChecker/lang/nb.js | 26 +
.../xinha/plugins/SpellChecker/lang/nl.js | 27 +
.../xinha/plugins/SpellChecker/lang/pt_br.js | 44 +
.../xinha/plugins/SpellChecker/lang/ro.js | 26 +
.../plugins/SpellChecker/readme-tech.html | 114 +
.../SpellChecker/spell-check-logic.cgi | 210 +
.../SpellChecker/spell-check-logic.php | 171 +
.../SpellChecker/spell-check-savedicts.php | 38 +
.../SpellChecker/spell-check-style.css | 10 +
.../plugins/SpellChecker/spell-check-ui.html | 125 +
.../plugins/SpellChecker/spell-check-ui.js | 394 ++
.../plugins/SpellChecker/spell-checker.js | 38 +
.../assets/xinha/plugins/Stylist/lang/de.js | 6 +
.../assets/xinha/plugins/Stylist/lang/fr.js | 5 +
.../assets/xinha/plugins/Stylist/lang/ja.js | 5 +
.../assets/xinha/plugins/Stylist/lang/nb.js | 6 +
.../assets/xinha/plugins/Stylist/lang/nl.js | 6 +
.../assets/xinha/plugins/Stylist/lang/pl.js | 6 +
.../xinha/plugins/Stylist/lang/pt_br.js | 18 +
.../assets/xinha/plugins/Stylist/lang/ru.js | 5 +
.../assets/xinha/plugins/Stylist/stylist.js | 382 ++
.../xinha/plugins/SuperClean/dialog.html | 9 +
.../plugins/SuperClean/filters/paragraph.js | 10 +
.../xinha/plugins/SuperClean/filters/word.js | 30 +
.../plugins/SuperClean/img/ed_superclean.gif | Bin 0 -> 334 bytes
.../xinha/plugins/SuperClean/lang/de.js | 17 +
.../xinha/plugins/SuperClean/lang/fr.js | 16 +
.../xinha/plugins/SuperClean/lang/ja.js | 18 +
.../xinha/plugins/SuperClean/lang/nb.js | 17 +
.../xinha/plugins/SuperClean/lang/nl.js | 17 +
.../xinha/plugins/SuperClean/lang/pt_br.js | 33 +
.../xinha/plugins/SuperClean/super-clean.js | 214 +
.../assets/xinha/plugins/SuperClean/tidy.php | 179 +
.../TableOperations/img/cell-delete.gif | Bin 0 -> 207 bytes
.../TableOperations/img/cell-insert-after.gif | Bin 0 -> 323 bytes
.../img/cell-insert-before.gif | Bin 0 -> 325 bytes
.../TableOperations/img/cell-merge.gif | Bin 0 -> 360 bytes
.../plugins/TableOperations/img/cell-prop.gif | Bin 0 -> 352 bytes
.../TableOperations/img/cell-split.gif | Bin 0 -> 374 bytes
.../TableOperations/img/col-delete.gif | Bin 0 -> 208 bytes
.../TableOperations/img/col-insert-after.gif | Bin 0 -> 328 bytes
.../TableOperations/img/col-insert-before.gif | Bin 0 -> 325 bytes
.../plugins/TableOperations/img/col-split.gif | Bin 0 -> 377 bytes
.../TableOperations/img/row-delete.gif | Bin 0 -> 328 bytes
.../TableOperations/img/row-insert-above.gif | Bin 0 -> 327 bytes
.../TableOperations/img/row-insert-under.gif | Bin 0 -> 327 bytes
.../plugins/TableOperations/img/row-prop.gif | Bin 0 -> 354 bytes
.../plugins/TableOperations/img/row-split.gif | Bin 0 -> 363 bytes
.../TableOperations/img/table-prop.gif | Bin 0 -> 338 bytes
.../xinha/plugins/TableOperations/lang/cz.js | 79 +
.../xinha/plugins/TableOperations/lang/da.js | 79 +
.../xinha/plugins/TableOperations/lang/de.js | 81 +
.../xinha/plugins/TableOperations/lang/el.js | 79 +
.../xinha/plugins/TableOperations/lang/fi.js | 68 +
.../xinha/plugins/TableOperations/lang/fr.js | 78 +
.../xinha/plugins/TableOperations/lang/he.js | 79 +
.../xinha/plugins/TableOperations/lang/it.js | 79 +
.../xinha/plugins/TableOperations/lang/ja.js | 83 +
.../xinha/plugins/TableOperations/lang/nb.js | 80 +
.../xinha/plugins/TableOperations/lang/nl.js | 79 +
.../xinha/plugins/TableOperations/lang/pl.js | 83 +
.../plugins/TableOperations/lang/pt_br.js | 100 +
.../xinha/plugins/TableOperations/lang/ro.js | 79 +
.../xinha/plugins/TableOperations/lang/ru.js | 79 +
.../xinha/plugins/TableOperations/lang/sv.js | 79 +
.../TableOperations/popups/merge_cells.html | 68 +
.../TableOperations/table-operations.js | 910 ++++
.../plugins/Template/img/ed_template.gif | Bin 0 -> 600 bytes
.../xinha/plugins/Template/img/layout_01.gif | Bin 0 -> 310 bytes
.../xinha/plugins/Template/img/layout_02.gif | Bin 0 -> 320 bytes
.../xinha/plugins/Template/img/layout_03.gif | Bin 0 -> 345 bytes
.../assets/xinha/plugins/Template/lang/de.js | 7 +
.../assets/xinha/plugins/Template/lang/fr.js | 6 +
.../assets/xinha/plugins/Template/lang/it.js | 6 +
.../assets/xinha/plugins/Template/lang/ja.js | 6 +
.../assets/xinha/plugins/Template/lang/nb.js | 7 +
.../assets/xinha/plugins/Template/lang/nl.js | 7 +
.../xinha/plugins/Template/lang/pt_br.js | 19 +
.../plugins/Template/popups/template.html | 52 +
.../xinha/plugins/Template/template.css | 3 +
.../assets/xinha/plugins/Template/template.js | 86 +
.../xinha/plugins/UnFormat/img/unformat.gif | Bin 0 -> 136 bytes
.../assets/xinha/plugins/UnFormat/lang/de.js | 12 +
.../assets/xinha/plugins/UnFormat/lang/fr.js | 12 +
.../assets/xinha/plugins/UnFormat/lang/ja.js | 12 +
.../assets/xinha/plugins/UnFormat/lang/nb.js | 13 +
.../assets/xinha/plugins/UnFormat/lang/nl.js | 12 +
.../xinha/plugins/UnFormat/lang/pt_br.js | 27 +
.../plugins/UnFormat/popups/unformat.html | 85 +
.../xinha/plugins/UnFormat/un-format.js | 50 +
ccm-cms/web/assets/xinha/popups/about.html | 301 ++
ccm-cms/web/assets/xinha/popups/blank.html | 1 +
.../web/assets/xinha/popups/editor_help.html | 62 +
ccm-cms/web/assets/xinha/popups/popup.css | 39 +
ccm-cms/web/assets/xinha/popups/popup.js | 108 +
.../web/assets/xinha/popups/select_color.html | 359 ++
ccm-cms/web/assets/xinha/release-notes.txt | 212 +
.../skins/blue-look/button-background.png | Bin 0 -> 145 bytes
.../xinha/skins/blue-look/separator.gif | Bin 0 -> 91 bytes
.../web/assets/xinha/skins/blue-look/skin.css | 98 +
.../skins/blue-metallic/button-background.png | Bin 0 -> 972 bytes
.../xinha/skins/blue-metallic/separator.gif | Bin 0 -> 198 bytes
.../assets/xinha/skins/blue-metallic/skin.css | 96 +
.../skins/green-look/button-background.gif | Bin 0 -> 78 bytes
.../xinha/skins/green-look/separator.gif | Bin 0 -> 91 bytes
.../assets/xinha/skins/green-look/skin.css | 88 +
.../web/assets/xinha/skins/inditreuse/README | 9 +
.../assets/xinha/skins/inditreuse/back.png | Bin 0 -> 193 bytes
.../skins/inditreuse/button-background.png | Bin 0 -> 209 bytes
.../assets/xinha/skins/inditreuse/hover.png | Bin 0 -> 566 bytes
.../xinha/skins/inditreuse/selected.png | Bin 0 -> 592 bytes
.../xinha/skins/inditreuse/separator.png | Bin 0 -> 225 bytes
.../assets/xinha/skins/inditreuse/skin.css | 73 +
.../web/assets/xinha/skins/silva/dialog.jpg | Bin 0 -> 22222 bytes
ccm-cms/web/assets/xinha/skins/silva/html.gif | Bin 0 -> 1255 bytes
ccm-cms/web/assets/xinha/skins/silva/skin.css | 172 +
.../assets/xinha/skins/silva/statusbar.png | Bin 0 -> 2879 bytes
.../web/assets/xinha/skins/silva/toolbar.png | Bin 0 -> 2889 bytes
ccm-cms/web/assets/xinha/skins/titan/README | 12 +
ccm-cms/web/assets/xinha/skins/titan/back.png | Bin 0 -> 193 bytes
.../xinha/skins/titan/button-background.png | Bin 0 -> 183 bytes
.../web/assets/xinha/skins/titan/hover.png | Bin 0 -> 497 bytes
.../web/assets/xinha/skins/titan/selected.png | Bin 0 -> 540 bytes
.../assets/xinha/skins/titan/separator.png | Bin 0 -> 300 bytes
ccm-cms/web/assets/xinha/skins/titan/skin.css | 73 +
.../web/assets/xinha/skins/xp-blue/back.png | Bin 0 -> 191 bytes
.../xinha/skins/xp-blue/button-background.png | Bin 0 -> 124 bytes
.../web/assets/xinha/skins/xp-blue/hover.png | Bin 0 -> 105 bytes
.../assets/xinha/skins/xp-blue/selected.png | Bin 0 -> 105 bytes
.../assets/xinha/skins/xp-blue/separator.png | Bin 0 -> 252 bytes
.../web/assets/xinha/skins/xp-blue/skin.css | 76 +
.../web/assets/xinha/skins/xp-green/back.png | Bin 0 -> 225 bytes
.../skins/xp-green/button-background.png | Bin 0 -> 119 bytes
.../web/assets/xinha/skins/xp-green/hover.png | Bin 0 -> 105 bytes
.../assets/xinha/skins/xp-green/selected.png | Bin 0 -> 105 bytes
.../assets/xinha/skins/xp-green/separator.png | Bin 0 -> 219 bytes
.../web/assets/xinha/skins/xp-green/skin.css | 76 +
891 files changed, 50562 insertions(+)
create mode 100755 ccm-cms/web/assets/xinha/Xinha.css
create mode 100644 ccm-cms/web/assets/xinha/XinhaCore.js
create mode 100644 ccm-cms/web/assets/xinha/XinhaLoader.js
create mode 100755 ccm-cms/web/assets/xinha/XinhaLoader_readme.txt
create mode 100755 ccm-cms/web/assets/xinha/compression_readme.txt
create mode 100755 ccm-cms/web/assets/xinha/contrib/php-xinha.php
create mode 100755 ccm-cms/web/assets/xinha/examples/ExtendedDemo.html
create mode 100755 ccm-cms/web/assets/xinha/examples/Newbie.html
create mode 100644 ccm-cms/web/assets/xinha/examples/XinhaConfig.js
create mode 100755 ccm-cms/web/assets/xinha/examples/files/Extended.html
create mode 100755 ccm-cms/web/assets/xinha/examples/files/custom.css
create mode 100755 ccm-cms/web/assets/xinha/examples/files/dynamic.css
create mode 100755 ccm-cms/web/assets/xinha/examples/files/ext_example-body.html
create mode 100755 ccm-cms/web/assets/xinha/examples/files/ext_example-dest.php
create mode 100755 ccm-cms/web/assets/xinha/examples/files/ext_example-menu.php
create mode 100755 ccm-cms/web/assets/xinha/examples/files/full_example.css
create mode 100755 ccm-cms/web/assets/xinha/examples/files/stylist.css
create mode 100755 ccm-cms/web/assets/xinha/examples/simple_example.html
create mode 100755 ccm-cms/web/assets/xinha/examples/testbed.html
create mode 100644 ccm-cms/web/assets/xinha/htmlarea.js
create mode 100755 ccm-cms/web/assets/xinha/images/de/bold.gif
create mode 100755 ccm-cms/web/assets/xinha/images/de/italic.gif
create mode 100755 ccm-cms/web/assets/xinha/images/de/underline.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_about.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_align.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_align_center.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_align_justify.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_align_left.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_align_right.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_blank.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_buttons_main.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_charmap.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_clearfonts.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_color_bg.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_color_fg.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_copy.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_custom.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_cut.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_delete.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_format_bold.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_format_italic.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_format_strike.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_format_sub.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_format_sup.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_format_underline.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_help.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_hr.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_html.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_image.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_indent_less.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_indent_more.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_killword.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_left_to_right.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_link.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_list_bullet.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_list_num.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_overwrite.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_paste.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_print.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_redo.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_right_to_left.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_rmformat.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_save.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_save.png
create mode 100755 ccm-cms/web/assets/xinha/images/ed_saveas.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_selectall.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_show_border.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_splitblock.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_splitcel.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_undo.gif
create mode 100755 ccm-cms/web/assets/xinha/images/ed_word_cleaner.gif
create mode 100755 ccm-cms/web/assets/xinha/images/fr/bold.gif
create mode 100755 ccm-cms/web/assets/xinha/images/fr/strikethrough.gif
create mode 100755 ccm-cms/web/assets/xinha/images/fr/underline.gif
create mode 100755 ccm-cms/web/assets/xinha/images/fullscreen_maximize.gif
create mode 100755 ccm-cms/web/assets/xinha/images/fullscreen_minimize.gif
create mode 100755 ccm-cms/web/assets/xinha/images/insert_table.gif
create mode 100755 ccm-cms/web/assets/xinha/images/insertfilelink.gif
create mode 100755 ccm-cms/web/assets/xinha/images/insertmacro.png
create mode 100755 ccm-cms/web/assets/xinha/images/tidy.gif
create mode 100755 ccm-cms/web/assets/xinha/images/toggle_borders.gif
create mode 100755 ccm-cms/web/assets/xinha/images/xinha_logo.gif
create mode 100644 ccm-cms/web/assets/xinha/lang/b5.js
create mode 100644 ccm-cms/web/assets/xinha/lang/ch.js
create mode 100644 ccm-cms/web/assets/xinha/lang/cz.js
create mode 100644 ccm-cms/web/assets/xinha/lang/da.js
create mode 100644 ccm-cms/web/assets/xinha/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/lang/ee.js
create mode 100644 ccm-cms/web/assets/xinha/lang/el.js
create mode 100644 ccm-cms/web/assets/xinha/lang/es.js
create mode 100644 ccm-cms/web/assets/xinha/lang/eu.js
create mode 100644 ccm-cms/web/assets/xinha/lang/fa.js
create mode 100644 ccm-cms/web/assets/xinha/lang/fi.js
create mode 100644 ccm-cms/web/assets/xinha/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/lang/gb.js
create mode 100644 ccm-cms/web/assets/xinha/lang/he.js
create mode 100644 ccm-cms/web/assets/xinha/lang/hu.js
create mode 100644 ccm-cms/web/assets/xinha/lang/it.js
create mode 100644 ccm-cms/web/assets/xinha/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/lang/lt.js
create mode 100644 ccm-cms/web/assets/xinha/lang/lv.js
create mode 100644 ccm-cms/web/assets/xinha/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/lang/pl.js
create mode 100644 ccm-cms/web/assets/xinha/lang/pt_br.js
create mode 100644 ccm-cms/web/assets/xinha/lang/ro.js
create mode 100644 ccm-cms/web/assets/xinha/lang/ru.js
create mode 100644 ccm-cms/web/assets/xinha/lang/sh.js
create mode 100644 ccm-cms/web/assets/xinha/lang/si.js
create mode 100644 ccm-cms/web/assets/xinha/lang/sr.js
create mode 100644 ccm-cms/web/assets/xinha/lang/sv.js
create mode 100644 ccm-cms/web/assets/xinha/lang/th.js
create mode 100644 ccm-cms/web/assets/xinha/lang/vn.js
create mode 100755 ccm-cms/web/assets/xinha/license.txt
create mode 100644 ccm-cms/web/assets/xinha/modules/ColorPicker/ColorPicker.js
create mode 100644 ccm-cms/web/assets/xinha/modules/ColorPicker/lang/pt_br.js
create mode 100644 ccm-cms/web/assets/xinha/modules/CreateLink/lang/pt_br.js
create mode 100755 ccm-cms/web/assets/xinha/modules/CreateLink/link.html
create mode 100644 ccm-cms/web/assets/xinha/modules/CreateLink/link.js
create mode 100644 ccm-cms/web/assets/xinha/modules/Dialogs/dialog.js
create mode 100644 ccm-cms/web/assets/xinha/modules/Dialogs/inline-dialog.js
create mode 100644 ccm-cms/web/assets/xinha/modules/Dialogs/panel-dialog.js
create mode 100644 ccm-cms/web/assets/xinha/modules/Dialogs/popupwin.js
create mode 100644 ccm-cms/web/assets/xinha/modules/FullScreen/full-screen.js
create mode 100644 ccm-cms/web/assets/xinha/modules/FullScreen/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/modules/FullScreen/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/modules/FullScreen/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/modules/FullScreen/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/modules/FullScreen/lang/pl.js
create mode 100644 ccm-cms/web/assets/xinha/modules/FullScreen/lang/pt_br.js
create mode 100644 ccm-cms/web/assets/xinha/modules/FullScreen/lang/ru.js
create mode 100644 ccm-cms/web/assets/xinha/modules/FullScreen/lang/sv.js
create mode 100644 ccm-cms/web/assets/xinha/modules/Gecko/Gecko.js
create mode 100644 ccm-cms/web/assets/xinha/modules/Gecko/paraHandlerBest.js
create mode 100644 ccm-cms/web/assets/xinha/modules/GetHtml/DOMwalk.js
create mode 100644 ccm-cms/web/assets/xinha/modules/GetHtml/TransformInnerHTML.js
create mode 100644 ccm-cms/web/assets/xinha/modules/GetHtml/lang/pt_br.js
create mode 100755 ccm-cms/web/assets/xinha/modules/InsertImage/insert_image.html
create mode 100644 ccm-cms/web/assets/xinha/modules/InsertImage/insert_image.js
create mode 100755 ccm-cms/web/assets/xinha/modules/InsertTable/insert_table.html
create mode 100644 ccm-cms/web/assets/xinha/modules/InsertTable/insert_table.js
create mode 100644 ccm-cms/web/assets/xinha/modules/InternetExplorer/InternetExplorer.js
create mode 100644 ccm-cms/web/assets/xinha/modules/Opera/Opera.js
create mode 100644 ccm-cms/web/assets/xinha/modules/WebKit/WebKit.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Abbreviation/abbr/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Abbreviation/abbr/en.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/Abbreviation/abbreviation.css
create mode 100644 ccm-cms/web/assets/xinha/plugins/Abbreviation/abbreviation.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/Abbreviation/img/ed_abbreviation.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/Abbreviation/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Abbreviation/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Abbreviation/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Abbreviation/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Abbreviation/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Abbreviation/lang/pt_br.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/Abbreviation/popups/abbreviation.html
create mode 100644 ccm-cms/web/assets/xinha/plugins/BackgroundImage/background-image.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/BackgroundImage/backgrounds/blufur.jpg
create mode 100755 ccm-cms/web/assets/xinha/plugins/BackgroundImage/backgrounds/palecnvs.jpg
create mode 100755 ccm-cms/web/assets/xinha/plugins/BackgroundImage/backgrounds/ppplcnvs.jpg
create mode 100755 ccm-cms/web/assets/xinha/plugins/BackgroundImage/backgrounds/thumbnails/blufur.jpg
create mode 100755 ccm-cms/web/assets/xinha/plugins/BackgroundImage/backgrounds/thumbnails/palecnvs.jpg
create mode 100755 ccm-cms/web/assets/xinha/plugins/BackgroundImage/backgrounds/thumbnails/ppplcnvs.jpg
create mode 100755 ccm-cms/web/assets/xinha/plugins/BackgroundImage/backgrounds/thumbnails/ylwsand.jpg
create mode 100755 ccm-cms/web/assets/xinha/plugins/BackgroundImage/backgrounds/ylwsand.jpg
create mode 100755 ccm-cms/web/assets/xinha/plugins/BackgroundImage/img/ed_bgimage.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/BackgroundImage/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/BackgroundImage/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/BackgroundImage/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/BackgroundImage/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/BackgroundImage/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/BackgroundImage/lang/pt_br.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/BackgroundImage/popups/bgimage.html
create mode 100644 ccm-cms/web/assets/xinha/plugins/CSS/css.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/CharCounter/char-counter.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/CharCounter/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/CharCounter/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/CharCounter/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/CharCounter/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/CharCounter/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/CharCounter/lang/pt_br.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/CharacterMap/CharacterMap.css
create mode 100644 ccm-cms/web/assets/xinha/plugins/CharacterMap/character-map.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/CharacterMap/img/ed_charmap.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/it.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/pt_br.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/ru.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/sv.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/CharacterMap/popups/select_character.html
create mode 100644 ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/clientside-spellcheck.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/img/clientside-spellcheck.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/img/he-spell-check.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/lang/pt_br.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ContextMenu/context-menu.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/el.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/he.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/pl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/pt_br.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/sv.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/ContextMenu/menu.css
create mode 100755 ccm-cms/web/assets/xinha/plugins/DefinitionList/definition-list.css
create mode 100644 ccm-cms/web/assets/xinha/plugins/DefinitionList/definition-list.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/DefinitionList/img/ed_dd.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/DefinitionList/img/ed_dl.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/DefinitionList/img/ed_dt.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/DefinitionList/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/DefinitionList/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/DefinitionList/lang/pt_br.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/DoubleClick/double-click.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/DynamicCSS/dynamiccss.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/pt_br.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/EditTag/edit-tag.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/EditTag/img/ed_edit_tag.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/EditTag/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/EditTag/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/EditTag/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/EditTag/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/EditTag/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/EditTag/lang/pt_br.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/EditTag/popups/edit_tag.html
create mode 100644 ccm-cms/web/assets/xinha/plugins/Equation/ASCIIMathML.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Equation/equation.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/Equation/example.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/Equation/img/abs_value.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Equation/img/diag_fraction.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Equation/img/divide.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Equation/img/dsp_greater_equal.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Equation/img/dsp_less_equal.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Equation/img/dsp_notequal.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Equation/img/equation.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Equation/img/equation.old.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Equation/img/greater_equal_than.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Equation/img/hor_fraction.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Equation/img/less_equal_than.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Equation/img/mul.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Equation/img/notequal.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Equation/img/parenthesis.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Equation/img/root.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Equation/img/square_root.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/Equation/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Equation/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Equation/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Equation/lang/pt_br.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/Equation/popups/dialog.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/Equation/readme.txt
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/Classes/ExtendedFileManager.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/Readme.txt
create mode 100644 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/EditorContent.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/ImageEditor.css
create mode 100644 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/dialog.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/dragTableCols.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/editor.css
create mode 100644 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/editor.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/editorFrame.css
create mode 100644 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/editorFrame.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/hover.htc
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/imagelist.css
create mode 100644 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/images.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/manager.css
create mode 100644 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/manager.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/popup.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/slider.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/wz_jsgraphics.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/backend.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/config.inc.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/demo_images/.htaccess
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/demo_images/bikerpeep.jpg
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/demo_images/linux/linux.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/demo_images/wesnoth078.jpg
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/editor.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/editorFrame.php
create mode 100644 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/extended-file-manager.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/def.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/def_small.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/doc.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/doc_small.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/fla.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/fla_small.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/folder.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/folder_small.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/gif_small.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/gz.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/gz_small.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/html.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/html_small.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/jpg_small.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/js.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/js_small.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/mov.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/mov_small.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/pdf.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/pdf_small.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/php.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/php_small.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/png_small.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/ppt.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/ppt_small.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/rar.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/rar_small.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/txt.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/txt_small.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/xls.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/xls_small.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/zip.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/icons/zip_small.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/images.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/1x1_transparent.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/2x2.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/2x2_w.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/btnFolderNew.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/btnFolderNew1.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/btnFolderUp.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/btnFolderUp1.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/btn_cancel.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/btn_ok.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/crop.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/default.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/div.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/dots.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/ed_linkfile.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/ed_linkfile1.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/edit_active.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/edit_copy.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/edit_cut.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/edit_paste.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/edit_pencil.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/edit_rename.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/edit_trash.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/folder.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/hand.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/islocked2.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/locked.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/measure.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/noimages.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/rotate.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/save.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/scale.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/spacer.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/t_black.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/t_white.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/unlocked.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/unlocked2.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/img/unlocked_empty.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/lang/es.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/lang/pl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/lang/pt_br.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/manager.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/prompt.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/resizer.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/thumbs.php
create mode 100644 ccm-cms/web/assets/xinha/plugins/Filter/filter.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Filter/filters/paragraph.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Filter/filters/word.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/Filter/img/ed_filter.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/Filter/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Filter/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Filter/lang/pt_br.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/FindReplace/find-replace.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/FindReplace/fr_engine.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/FindReplace/img/ed_find.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/FindReplace/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/FindReplace/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/FindReplace/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/FindReplace/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/FindReplace/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/FindReplace/lang/pl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/FindReplace/lang/pt_br.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/FindReplace/lang/ru.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/FindReplace/lang/sv.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/FindReplace/popups/find_replace.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/FormOperations/README
create mode 100755 ccm-cms/web/assets/xinha/plugins/FormOperations/default_form.html
create mode 100644 ccm-cms/web/assets/xinha/plugins/FormOperations/form-operations.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/FormOperations/formmail.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/FormOperations/iframe.css
create mode 100755 ccm-cms/web/assets/xinha/plugins/FormOperations/img/buttons.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/FormOperations/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/FormOperations/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/FormOperations/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/FormOperations/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/FormOperations/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/FormOperations/lang/pt_br.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/FormOperations/panel.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/Forms/forms.css
create mode 100644 ccm-cms/web/assets/xinha/plugins/Forms/forms.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/Forms/img/ed_button.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Forms/img/ed_checkbox.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Forms/img/ed_fieldset.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Forms/img/ed_file.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Forms/img/ed_form.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Forms/img/ed_hidden.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Forms/img/ed_image.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Forms/img/ed_label.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Forms/img/ed_password.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Forms/img/ed_radio.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Forms/img/ed_reset.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Forms/img/ed_select.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Forms/img/ed_submit.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Forms/img/ed_text.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Forms/img/ed_textarea.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/Forms/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Forms/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Forms/lang/pt_br.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/Forms/popups/fieldset.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/Forms/popups/form.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/Forms/popups/input.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/Forms/popups/label.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/Forms/popups/select.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/Forms/popups/textarea.html
create mode 100644 ccm-cms/web/assets/xinha/plugins/FullPage/full-page.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/FullPage/img/docprop.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/FullPage/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/FullPage/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/FullPage/lang/he.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/FullPage/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/FullPage/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/FullPage/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/FullPage/lang/pl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/FullPage/lang/pt_br.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/FullPage/lang/ro.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/FullPage/popups/docprop.html
create mode 100644 ccm-cms/web/assets/xinha/plugins/GenericPlugin/generic-plugin.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/GetHtml/get-html.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/HorizontalRule/horizontal-rule.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/HorizontalRule/lang/pt_br.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/HorizontalRule/popups/edit_horizontal_rule.html
create mode 100644 ccm-cms/web/assets/xinha/plugins/HtmlEntities/Entities.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/HtmlEntities/html-entities.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/HtmlEntities/iso-8859-1.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/HtmlTidy/README
create mode 100755 ccm-cms/web/assets/xinha/plugins/HtmlTidy/html-tidy-config.cfg
create mode 100755 ccm-cms/web/assets/xinha/plugins/HtmlTidy/html-tidy-logic.php
create mode 100644 ccm-cms/web/assets/xinha/plugins/HtmlTidy/html-tidy.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/HtmlTidy/img/html-tidy.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/HtmlTidy/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/HtmlTidy/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/HtmlTidy/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/HtmlTidy/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/HtmlTidy/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/HtmlTidy/lang/pt_br.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/Files.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/GD.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/IM.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/ImageEditor.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/ImageManager.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/NetPBM.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/Thumbnail.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/Classes/Transform.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/README.txt
create mode 100644 ccm-cms/web/assets/xinha/plugins/ImageManager/assets/EditorContent.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/assets/ImageEditor.css
create mode 100644 ccm-cms/web/assets/xinha/plugins/ImageManager/assets/dialog.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/assets/editor.css
create mode 100644 ccm-cms/web/assets/xinha/plugins/ImageManager/assets/editor.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/assets/editorFrame.css
create mode 100644 ccm-cms/web/assets/xinha/plugins/ImageManager/assets/editorFrame.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/assets/hover.htc
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/assets/imagelist.css
create mode 100644 ccm-cms/web/assets/xinha/plugins/ImageManager/assets/images.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/assets/manager.css
create mode 100644 ccm-cms/web/assets/xinha/plugins/ImageManager/assets/manager.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ImageManager/assets/popup.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ImageManager/assets/slider.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ImageManager/assets/wz_jsgraphics.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/backend.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/config.inc.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/ddt.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/demo_images/bikerpeep.jpg
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/demo_images/linux/linux.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/demo_images/wesnoth078.jpg
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/editor.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/editorFrame.php
create mode 100644 ccm-cms/web/assets/xinha/plugins/ImageManager/image-manager.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ImageManager/image-picker.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/images.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/2x2.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/2x2_w.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/btnFolderNew.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/btnFolderUp.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/btn_cancel.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/btn_ok.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/crop.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/default.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/div.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/dots.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/edit_active.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/edit_pencil.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/edit_trash.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/folder.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/hand.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/islocked2.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/locked.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/measure.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/noimages.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/rotate.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/save.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/scale.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/spacer.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/t_black.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/t_white.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/unlocked.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/img/unlocked2.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/ImageManager/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ImageManager/lang/es.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ImageManager/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ImageManager/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ImageManager/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ImageManager/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ImageManager/lang/pl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ImageManager/lang/pt_br.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ImageManager/lang/ru.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ImageManager/lang/sv.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/manager.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/newFolder.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/resizer.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/ImageManager/thumbs.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/InsertAnchor/img/insert-anchor.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/InsertAnchor/img/placeholder.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/InsertAnchor/insert-anchor.css
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertAnchor/insert-anchor.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/pl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertAnchor/lang/pt_br.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/InsertAnchor/popups/insert_anchor.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/InsertMarquee/img/ed_marquee.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertMarquee/insert-marquee.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/it.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertMarquee/lang/pt_br.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/InsertMarquee/popups/insert_marquee.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/InsertPagebreak/img/pagebreak.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertPagebreak/insert-pagebreak.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertPagebreak/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertPagebreak/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertPagebreak/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertPagebreak/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertPagebreak/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertPagebreak/lang/pt_br.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/InsertPicture/InsertPicture.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/InsertPicture/demo_pictures/bikerpeep.jpg
create mode 100755 ccm-cms/web/assets/xinha/plugins/InsertPicture/demo_pictures/wesnoth078.jpg
create mode 100755 ccm-cms/web/assets/xinha/plugins/InsertPicture/img/btn_open.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/InsertPicture/img/nopic.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertPicture/insert-picture.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/pt_br.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertPicture/lang/sv.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/InsertPicture/viewpicture.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/InsertSmiley/README.txt
create mode 100755 ccm-cms/web/assets/xinha/plugins/InsertSmiley/img/ed_smiley.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertSmiley/insert-smiley.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertSmiley/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertSmiley/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertSmiley/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertSmiley/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertSmiley/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertSmiley/lang/pt_br.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/InsertSmiley/popups/insertsmiley.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/InsertSmiley/smileys.txt
create mode 100755 ccm-cms/web/assets/xinha/plugins/InsertSnippet/InsertSnippet.css
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertSnippet/demosnippets.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/InsertSnippet/img/ed_snippet.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertSnippet/insert-snippet.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertSnippet/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertSnippet/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertSnippet/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertSnippet/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertSnippet/lang/pt_br.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/InsertSnippet/popups/insertsnippet.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/InsertSnippet/readme.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/InsertSnippet/snippets.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/InsertSnippet/snippets.php
create mode 100644 ccm-cms/web/assets/xinha/plugins/InsertWords/insert-words.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/LangMarks/lang-marks.css
create mode 100644 ccm-cms/web/assets/xinha/plugins/LangMarks/lang-marks.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/LangMarks/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/LangMarks/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/LangMarks/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/LangMarks/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/LangMarks/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/LangMarks/lang/pt_br.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/api.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/dtree.css
create mode 100644 ccm-cms/web/assets/xinha/plugins/Linker/dTree/dtree.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/example01.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/base.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/cd.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/copy.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/empty.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/folder.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/folderopen.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/globe.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/imgfolder.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/join.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/joinbottom.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/line.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/minus.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/minusbottom.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/move.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/musicfolder.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/nolines_minus.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/nolines_plus.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/offline.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/offline.png
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/page.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/plus.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/plusbottom.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/question.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dTree/img/trash.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/dialog.html
create mode 100644 ccm-cms/web/assets/xinha/plugins/Linker/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Linker/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Linker/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Linker/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Linker/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Linker/lang/pl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Linker/lang/pt_br.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Linker/linker.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/Linker/scan.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/ListType/ListType.css
create mode 100755 ccm-cms/web/assets/xinha/plugins/ListType/img/circle.png
create mode 100755 ccm-cms/web/assets/xinha/plugins/ListType/img/decimal.png
create mode 100755 ccm-cms/web/assets/xinha/plugins/ListType/img/disc.png
create mode 100755 ccm-cms/web/assets/xinha/plugins/ListType/img/lower-alpha.png
create mode 100755 ccm-cms/web/assets/xinha/plugins/ListType/img/lower-roman.png
create mode 100755 ccm-cms/web/assets/xinha/plugins/ListType/img/none.png
create mode 100755 ccm-cms/web/assets/xinha/plugins/ListType/img/square.png
create mode 100755 ccm-cms/web/assets/xinha/plugins/ListType/img/upper-alpha.png
create mode 100755 ccm-cms/web/assets/xinha/plugins/ListType/img/upper-roman.png
create mode 100644 ccm-cms/web/assets/xinha/plugins/ListType/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ListType/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ListType/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ListType/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ListType/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ListType/lang/pl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ListType/lang/pt_br.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ListType/lang/ru.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ListType/lang/sv.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/ListType/list-type.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/NoteServer/img/note.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/NoteServer/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/NoteServer/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/NoteServer/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/NoteServer/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/NoteServer/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/NoteServer/lang/pt_br.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/NoteServer/note-server.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/NoteServer/popups/codenote.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/PasteText/img/ed_paste_text.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/PasteText/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/PasteText/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/PasteText/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/PasteText/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/PasteText/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/PasteText/lang/pl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/PasteText/lang/pt_br.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/PasteText/lang/ru.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/PasteText/paste-text.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/PasteText/popups/paste_text.html
create mode 100644 ccm-cms/web/assets/xinha/plugins/PreserveScripts/js.png
create mode 100755 ccm-cms/web/assets/xinha/plugins/PreserveScripts/php.png
create mode 100755 ccm-cms/web/assets/xinha/plugins/PreserveScripts/php.svg
create mode 100644 ccm-cms/web/assets/xinha/plugins/PreserveScripts/preserve-scripts.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/QuickTag/img/ed_quicktag.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/QuickTag/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/QuickTag/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/QuickTag/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/QuickTag/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/QuickTag/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/QuickTag/lang/pl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/QuickTag/lang/pt_br.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/QuickTag/popups/quicktag.html
create mode 100644 ccm-cms/web/assets/xinha/plugins/QuickTag/quick-tag.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/QuickTag/tag-lib.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/SaveSubmit/README.txt
create mode 100755 ccm-cms/web/assets/xinha/plugins/SaveSubmit/img/ed_save_green.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/SaveSubmit/img/ed_save_red.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/SaveSubmit/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SaveSubmit/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SaveSubmit/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SaveSubmit/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SaveSubmit/lang/pt_br.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SaveSubmit/lang/ru.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SaveSubmit/save-submit.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/SetId/img/placeholder.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/SetId/img/set-id.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/SetId/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SetId/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SetId/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SetId/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SetId/lang/pt_br.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/SetId/popups/set_id.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/SetId/set-id.css
create mode 100644 ccm-cms/web/assets/xinha/plugins/SetId/set-id.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/SmartReplace/dialog.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/SmartReplace/img/smartquotes.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/SmartReplace/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SmartReplace/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SmartReplace/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SmartReplace/lang/pt_br.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/SmartReplace/readme.txt
create mode 100644 ccm-cms/web/assets/xinha/plugins/SmartReplace/smart-replace.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/SpellChecker/README
create mode 100755 ccm-cms/web/assets/xinha/plugins/SpellChecker/aspell_setup.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/SpellChecker/img/he-spell-check.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/SpellChecker/img/spell-check.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/cz.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/da.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/he.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/hu.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/pt_br.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SpellChecker/lang/ro.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/SpellChecker/readme-tech.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-logic.cgi
create mode 100755 ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-logic.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-savedicts.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-style.css
create mode 100755 ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-ui.html
create mode 100644 ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-check-ui.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SpellChecker/spell-checker.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Stylist/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Stylist/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Stylist/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Stylist/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Stylist/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Stylist/lang/pl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Stylist/lang/pt_br.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Stylist/lang/ru.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Stylist/stylist.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/SuperClean/dialog.html
create mode 100644 ccm-cms/web/assets/xinha/plugins/SuperClean/filters/paragraph.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SuperClean/filters/word.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/SuperClean/img/ed_superclean.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/SuperClean/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SuperClean/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SuperClean/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SuperClean/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SuperClean/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SuperClean/lang/pt_br.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/SuperClean/super-clean.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/SuperClean/tidy.php
create mode 100755 ccm-cms/web/assets/xinha/plugins/TableOperations/img/cell-delete.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/TableOperations/img/cell-insert-after.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/TableOperations/img/cell-insert-before.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/TableOperations/img/cell-merge.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/TableOperations/img/cell-prop.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/TableOperations/img/cell-split.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/TableOperations/img/col-delete.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/TableOperations/img/col-insert-after.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/TableOperations/img/col-insert-before.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/TableOperations/img/col-split.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/TableOperations/img/row-delete.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/TableOperations/img/row-insert-above.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/TableOperations/img/row-insert-under.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/TableOperations/img/row-prop.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/TableOperations/img/row-split.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/TableOperations/img/table-prop.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/TableOperations/lang/cz.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/TableOperations/lang/da.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/TableOperations/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/TableOperations/lang/el.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/TableOperations/lang/fi.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/TableOperations/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/TableOperations/lang/he.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/TableOperations/lang/it.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/TableOperations/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/TableOperations/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/TableOperations/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/TableOperations/lang/pl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/TableOperations/lang/pt_br.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/TableOperations/lang/ro.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/TableOperations/lang/ru.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/TableOperations/lang/sv.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/TableOperations/popups/merge_cells.html
create mode 100644 ccm-cms/web/assets/xinha/plugins/TableOperations/table-operations.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/Template/img/ed_template.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Template/img/layout_01.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Template/img/layout_02.gif
create mode 100755 ccm-cms/web/assets/xinha/plugins/Template/img/layout_03.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/Template/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Template/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Template/lang/it.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Template/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Template/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Template/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/Template/lang/pt_br.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/Template/popups/template.html
create mode 100755 ccm-cms/web/assets/xinha/plugins/Template/template.css
create mode 100644 ccm-cms/web/assets/xinha/plugins/Template/template.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/UnFormat/img/unformat.gif
create mode 100644 ccm-cms/web/assets/xinha/plugins/UnFormat/lang/de.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/UnFormat/lang/fr.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/UnFormat/lang/ja.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/UnFormat/lang/nb.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/UnFormat/lang/nl.js
create mode 100644 ccm-cms/web/assets/xinha/plugins/UnFormat/lang/pt_br.js
create mode 100755 ccm-cms/web/assets/xinha/plugins/UnFormat/popups/unformat.html
create mode 100644 ccm-cms/web/assets/xinha/plugins/UnFormat/un-format.js
create mode 100755 ccm-cms/web/assets/xinha/popups/about.html
create mode 100755 ccm-cms/web/assets/xinha/popups/blank.html
create mode 100755 ccm-cms/web/assets/xinha/popups/editor_help.html
create mode 100755 ccm-cms/web/assets/xinha/popups/popup.css
create mode 100644 ccm-cms/web/assets/xinha/popups/popup.js
create mode 100755 ccm-cms/web/assets/xinha/popups/select_color.html
create mode 100755 ccm-cms/web/assets/xinha/release-notes.txt
create mode 100755 ccm-cms/web/assets/xinha/skins/blue-look/button-background.png
create mode 100755 ccm-cms/web/assets/xinha/skins/blue-look/separator.gif
create mode 100755 ccm-cms/web/assets/xinha/skins/blue-look/skin.css
create mode 100755 ccm-cms/web/assets/xinha/skins/blue-metallic/button-background.png
create mode 100755 ccm-cms/web/assets/xinha/skins/blue-metallic/separator.gif
create mode 100755 ccm-cms/web/assets/xinha/skins/blue-metallic/skin.css
create mode 100755 ccm-cms/web/assets/xinha/skins/green-look/button-background.gif
create mode 100755 ccm-cms/web/assets/xinha/skins/green-look/separator.gif
create mode 100755 ccm-cms/web/assets/xinha/skins/green-look/skin.css
create mode 100755 ccm-cms/web/assets/xinha/skins/inditreuse/README
create mode 100755 ccm-cms/web/assets/xinha/skins/inditreuse/back.png
create mode 100755 ccm-cms/web/assets/xinha/skins/inditreuse/button-background.png
create mode 100755 ccm-cms/web/assets/xinha/skins/inditreuse/hover.png
create mode 100755 ccm-cms/web/assets/xinha/skins/inditreuse/selected.png
create mode 100755 ccm-cms/web/assets/xinha/skins/inditreuse/separator.png
create mode 100755 ccm-cms/web/assets/xinha/skins/inditreuse/skin.css
create mode 100755 ccm-cms/web/assets/xinha/skins/silva/dialog.jpg
create mode 100755 ccm-cms/web/assets/xinha/skins/silva/html.gif
create mode 100755 ccm-cms/web/assets/xinha/skins/silva/skin.css
create mode 100755 ccm-cms/web/assets/xinha/skins/silva/statusbar.png
create mode 100755 ccm-cms/web/assets/xinha/skins/silva/toolbar.png
create mode 100755 ccm-cms/web/assets/xinha/skins/titan/README
create mode 100755 ccm-cms/web/assets/xinha/skins/titan/back.png
create mode 100755 ccm-cms/web/assets/xinha/skins/titan/button-background.png
create mode 100755 ccm-cms/web/assets/xinha/skins/titan/hover.png
create mode 100755 ccm-cms/web/assets/xinha/skins/titan/selected.png
create mode 100755 ccm-cms/web/assets/xinha/skins/titan/separator.png
create mode 100755 ccm-cms/web/assets/xinha/skins/titan/skin.css
create mode 100755 ccm-cms/web/assets/xinha/skins/xp-blue/back.png
create mode 100755 ccm-cms/web/assets/xinha/skins/xp-blue/button-background.png
create mode 100755 ccm-cms/web/assets/xinha/skins/xp-blue/hover.png
create mode 100755 ccm-cms/web/assets/xinha/skins/xp-blue/selected.png
create mode 100755 ccm-cms/web/assets/xinha/skins/xp-blue/separator.png
create mode 100755 ccm-cms/web/assets/xinha/skins/xp-blue/skin.css
create mode 100755 ccm-cms/web/assets/xinha/skins/xp-green/back.png
create mode 100755 ccm-cms/web/assets/xinha/skins/xp-green/button-background.png
create mode 100755 ccm-cms/web/assets/xinha/skins/xp-green/hover.png
create mode 100755 ccm-cms/web/assets/xinha/skins/xp-green/selected.png
create mode 100755 ccm-cms/web/assets/xinha/skins/xp-green/separator.png
create mode 100755 ccm-cms/web/assets/xinha/skins/xp-green/skin.css
diff --git a/ccm-cms/web/assets/xinha/Xinha.css b/ccm-cms/web/assets/xinha/Xinha.css
new file mode 100755
index 000000000..0ea74e15a
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/Xinha.css
@@ -0,0 +1,273 @@
+.htmlarea { background: #fff; }
+.htmlarea td { margin:0;padding:0; }
+
+.htmlarea .toolbarRow {
+ width:1px;
+}
+
+.htmlarea .toolbar {
+ cursor: default;
+ background: ButtonFace;
+ padding: 3px;
+ border: 1px solid;
+ border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
+}
+.htmlarea .toolbar table { margin: 0; font-family: tahoma,verdana,sans-serif; font-size: 11px; }
+.htmlarea .toolbar img { border: none; vertical-align: top; }
+.htmlarea .toolbar .label { padding: 0px 3px; }
+
+.htmlarea .toolbar .button {
+ background: ButtonFace;
+ color: ButtonText;
+ border: 1px solid ButtonFace;
+ padding: 1px;
+ margin: 0px;
+ width: 18px;
+ height: 18px;
+}
+.htmlarea .toolbar a.button:hover {
+ border: 1px solid;
+ border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
+}
+.htmlarea .toolbar a.buttonDisabled:hover {
+ border-color: ButtonFace;
+}
+.htmlarea .toolbar .buttonActive,
+.htmlarea .toolbar .buttonPressed
+{
+ padding: 2px 0px 0px 2px;
+ border: 1px solid;
+ border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
+}
+.htmlarea .toolbar .buttonPressed {
+ background: ButtonHighlight;
+}
+.htmlarea .toolbar .indicator {
+ padding: 0px 3px;
+ overflow: hidden;
+ width: 20px;
+ text-align: center;
+ cursor: default;
+ border: 1px solid ButtonShadow;
+}
+
+.htmlarea .toolbar .buttonDisabled img {
+ filter: gray() alpha(opacity = 25);
+ -moz-opacity: 0.25;
+ opacity: 0.25;
+}
+
+.htmlarea .toolbar .separator {
+ /*position: relative;*/
+ margin:0 3px;
+ border-left: 1px solid ButtonShadow;
+ border-right: 1px solid ButtonHighlight;
+ width: 0px;
+ height: 18px;
+ padding: 0px;
+}
+
+.htmlarea .toolbar .space { width: 5px; }
+
+.htmlarea .toolbar select, .htmlarea .toolbar option { font: 11px Tahoma,Verdana,sans-serif;}
+
+.htmlarea .toolbar select,
+.htmlarea .toolbar select:hover,
+.htmlarea .toolbar select:active {
+ position:relative;
+ top:-2px;
+ margin-bottom:-2px;
+ color: ButtonText;
+}
+
+.htmlarea iframe.xinha_iframe, .htmlarea textarea.xinha_textarea
+{
+ border: none; /*1px solid;*/
+}
+
+.htmlarea .statusBar {
+ border: 1px solid;
+ border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
+ padding: 2px 4px;
+ background-color: ButtonFace;
+ color: ButtonText;
+ font: 11px Tahoma,Verdana,sans-serif;
+ height:16px;
+}
+
+.htmlarea .statusBar .statusBarTree a {
+ padding: 2px 5px;
+ color: #00f;
+}
+
+.htmlarea .statusBar .statusBarTree a:visited { color: #00f; }
+.htmlarea .statusBar .statusBarTree a:hover {
+ background-color: Highlight;
+ color: HighlightText;
+ padding: 1px 4px;
+ border: 1px solid HighlightText;
+}
+
+
+/* popup dialogs */
+
+.dialog {
+ color: ButtonText;
+ background: ButtonFace;
+}
+
+.dialog .content { padding: 2px; }
+
+.dialog, .dialog button, .dialog input, .dialog select, .dialog textarea, .dialog table {
+ font: 11px Tahoma,Verdana,sans-serif;
+}
+
+.dialog table { border-collapse: collapse; }
+
+.dialog .title, .dialog h1
+{
+ background: #008;
+ color: #ff8;
+ border-bottom: 1px solid #000;
+ padding: 1px 0px 2px 5px;
+ font-size: 12px;
+ font-weight: bold;
+ cursor: default;
+}
+.dialog h1 { margin:0px;}
+.dialog .title .button {
+ float: right;
+ border: 1px solid #66a;
+ padding: 0px 1px 0px 2px;
+ margin-right: 1px;
+ color: #fff;
+ text-align: center;
+}
+
+.dialog .title .button-hilite { border-color: #88f; background: #44c; }
+
+.dialog button {
+ width: 5em;
+ padding: 0px;
+}
+
+.dialog .buttonColor {
+ width :1em;
+ padding: 1px;
+ cursor: default;
+ border: 1px solid;
+ border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
+}
+
+.dialog .buttonColor .chooser, .dialog .buttonColor .nocolor {
+ height: 0.6em;
+ border: 1px solid;
+ padding: 0px 1em;
+ border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
+}
+
+.dialog .buttonClick {
+ border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
+}
+.dialog .buttonColor-hilite {
+ border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
+}
+
+.dialog .buttonColor .nocolor { padding: 0px; }
+.dialog .buttonColor .nocolor-hilite { background-color: #fff; color: #f00; }
+
+.dialog .label { text-align: right; width: 6em; }
+.dialog .value input { width: 100%; }
+.dialog .buttons { text-align: right; padding: 2px 4px 0px 4px; }
+
+.dialog legend { font-weight: bold; }
+.dialog fieldset table { margin: 2px 0px; }
+
+.popupwin {
+ padding: 0px;
+ margin: 0px;
+}
+
+.popupwin .title {
+ background: #fff;
+ color: #000;
+ font-weight: bold;
+ font-size: 120%;
+ padding: 3px 10px;
+ margin-bottom: 10px;
+ border-bottom: 1px solid black;
+ letter-spacing: 2px;
+}
+
+form { margin: 0px; border: none; }
+
+
+/** Panels **/
+.htmlarea .panels.top
+{
+ border-bottom : 1px solid;
+ border-color: ButtonShadow;
+}
+
+.htmlarea .panels.right
+{
+ border-left : 1px solid;
+ border-color: ButtonShadow;
+}
+
+.htmlarea .panels.left
+{
+ border-right : 1px solid;
+ border-color: ButtonShadow;
+}
+
+.htmlarea .panels.bottom
+{
+ border-top : 1px solid;
+ border-color: ButtonShadow;
+}
+
+.htmlarea .panel h1 {
+ background: ButtonFace;
+ border: 1px solid;
+ border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
+ margin: 0px;
+ padding: 0px;
+ font-size:100%;
+ font-weight:bold;
+ padding: 2px;
+ clear:left;
+
+}
+
+.htmlarea .panel { overflow:hidden; }
+.htmlarea .panels.left .panel { border-right:none; border-left:none; }
+.htmlarea .panels.left h1 { border-right:none; }
+.htmlarea .panels.right .panel { border-right:none; border-left:none; }
+.htmlarea .panels.left h1 { border-left:none; }
+.htmlarea { border: 1px solid black; }
+
+.loading
+{
+ font-family:sans-serif;
+ position:absolute;
+ z-index:998;
+ text-align:center;
+ width:212px;
+ padding: 55px 0 5px 0;
+ border:2px solid #ccc;
+ /* border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;*/
+ background: url(images/xinha_logo.gif) no-repeat #fff center 5px;
+}
+.loading_main
+{
+ font-size:11px;
+ color:#000;
+
+}
+.loading_sub
+{
+ font-size:9px;
+ color:#666;
+ text-align:center;
+}
diff --git a/ccm-cms/web/assets/xinha/XinhaCore.js b/ccm-cms/web/assets/xinha/XinhaCore.js
new file mode 100644
index 000000000..20f8bb7b8
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/XinhaCore.js
@@ -0,0 +1,3815 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/XinhaCore.js */
+ /*--------------------------------------------------------------------------
+ -- Xinha (is not htmlArea) - http://xinha.org
+ --
+ -- Use of Xinha is granted by the terms of the htmlArea License (based on
+ -- BSD license) please read license.txt in this package for details.
+ --
+ -- Copyright (c) 2005-2008 Xinha Developer Team and contributors
+ --
+ -- Xinha was originally based on work by Mihai Bazon which is:
+ -- Copyright (c) 2003-2004 dynarch.com.
+ -- Copyright (c) 2002-2003 interactivetools.com, inc.
+ -- This copyright notice MUST stay intact for use.
+ -------------------------------------------------------------------------*/
+
+Xinha.version={"Release":"0.95","Head":"$HeadURL:http://svn.xinha.webfactional.com/trunk/XinhaCore.js $".replace(/^[^:]*:\s*(.*)\s*\$$/,"$1"),"Date":"$LastChangedDate:2008-05-01 14:33:36 +0200 (Do, 01 Mai 2008) $".replace(/^[^:]*:\s*([0-9-]*) ([0-9:]*) ([+0-9]*) \((.*)\)\s*\$/,"$4 $2 $3"),"Revision":"$LastChangedRevision:999 $".replace(/^[^:]*:\s*(.*)\s*\$$/,"$1"),"RevisionBy":"$LastChangedBy:ray $".replace(/^[^:]*:\s*(.*)\s*\$$/,"$1")};
+Xinha._resolveRelativeUrl=function(_1,_2){
+if(_2.match(/^([^:]+\:)?\/\//)){
+return _2;
+}else{
+var b=_1.split("/");
+if(b[b.length-1]==""){
+b.pop();
+}
+var p=_2.split("/");
+if(p[0]=="."){
+p.shift();
+}
+while(p[0]==".."){
+b.pop();
+p.shift();
+}
+return b.join("/")+"/"+p.join("/");
+}
+};
+if(typeof _editor_url=="string"){
+_editor_url=_editor_url.replace(/\x2f*$/,"/");
+if(!_editor_url.match(/^([^:]+\:)?\//)){
+var path=window.location.toString().split("/");
+path.pop();
+_editor_url=Xinha._resolveRelativeUrl(path.join("/"),_editor_url);
+}
+}else{
+alert("WARNING: _editor_url is not set! You should set this variable to the editor files path; it should preferably be an absolute path, like in '/htmlarea/', but it can be relative if you prefer. Further we will try to load the editor files correctly but we'll probably fail.");
+_editor_url="";
+}
+if(typeof _editor_lang=="string"){
+_editor_lang=_editor_lang.toLowerCase();
+}else{
+_editor_lang="en";
+}
+if(typeof _editor_skin!=="string"){
+_editor_skin="";
+}
+var __xinhas=[];
+Xinha.agt=navigator.userAgent.toLowerCase();
+Xinha.is_ie=((Xinha.agt.indexOf("msie")!=-1)&&(Xinha.agt.indexOf("opera")==-1));
+Xinha.ie_version=parseFloat(Xinha.agt.substring(Xinha.agt.indexOf("msie")+5));
+Xinha.is_opera=(Xinha.agt.indexOf("opera")!=-1);
+if(Xinha.is_opera&&Xinha.agt.match(/opera[\/ ]([0-9.]+)/)){
+Xinha.opera_version=parseFloat(RegExp.$1);
+}else{
+Xinha.opera_version=0;
+}
+Xinha.is_khtml=(Xinha.agt.indexOf("khtml")!=-1);
+Xinha.is_webkit=(Xinha.agt.indexOf("applewebkit")!=-1);
+Xinha.webkit_version=parseInt(navigator.appVersion.replace(/.*?AppleWebKit\/([\d]).*?/,"$1"));
+Xinha.is_safari=(Xinha.agt.indexOf("safari")!=-1);
+Xinha.is_mac=(Xinha.agt.indexOf("mac")!=-1);
+Xinha.is_mac_ie=(Xinha.is_ie&&Xinha.is_mac);
+Xinha.is_win_ie=(Xinha.is_ie&&!Xinha.is_mac);
+Xinha.is_gecko=(navigator.product=="Gecko")||Xinha.is_opera;
+Xinha.is_real_gecko=(navigator.product=="Gecko"&&!Xinha.is_webkit);
+Xinha.is_ff3=Xinha.is_real_gecko&&parseInt(navigator.productSub)>=2007121016;
+Xinha.is_ff2=Xinha.is_real_gecko&&parseInt(navigator.productSub)<2007121016;
+Xinha.isRunLocally=document.URL.toLowerCase().search(/^file:/)!=-1;
+Xinha.is_designMode=(typeof document.designMode!="undefined"&&!Xinha.is_ie);
+Xinha.checkSupportedBrowser=function(){
+return Xinha.is_real_gecko||(Xinha.is_opera&&Xinha.opera_version>=9.2)||Xinha.ie_version>=5.5||Xinha.webkit_version>=522;
+};
+Xinha.isSupportedBrowser=Xinha.checkSupportedBrowser();
+if(Xinha.isRunLocally&&Xinha.isSupportedBrowser){
+alert("Xinha *must* be installed on a web server. Locally opened files (those that use the \"file://\" protocol) cannot properly function. Xinha will try to initialize but may not be correctly loaded.");
+}
+function Xinha(_5,_6){
+if(!Xinha.isSupportedBrowser){
+return;
+}
+if(!_5){
+throw new Error("Tried to create Xinha without textarea specified.");
+}
+if(typeof _6=="undefined"){
+this.config=new Xinha.Config();
+}else{
+this.config=_6;
+}
+if(typeof _5!="object"){
+_5=Xinha.getElementById("textarea",_5);
+}
+this._textArea=_5;
+this._textArea.spellcheck=false;
+Xinha.freeLater(this,"_textArea");
+this._initial_ta_size={w:_5.style.width?_5.style.width:(_5.offsetWidth?(_5.offsetWidth+"px"):(_5.cols+"em")),h:_5.style.height?_5.style.height:(_5.offsetHeight?(_5.offsetHeight+"px"):(_5.rows+"em"))};
+if(document.getElementById("loading_"+_5.id)||this.config.showLoading){
+if(!document.getElementById("loading_"+_5.id)){
+Xinha.createLoadingMessage(_5);
+}
+this.setLoadingMessage(Xinha._lc("Constructing object"));
+}
+this._editMode="wysiwyg";
+this.plugins={};
+this._timerToolbar=null;
+this._timerUndo=null;
+this._undoQueue=[this.config.undoSteps];
+this._undoPos=-1;
+this._customUndo=true;
+this._mdoc=document;
+this.doctype="";
+this.__htmlarea_id_num=__xinhas.length;
+__xinhas[this.__htmlarea_id_num]=this;
+this._notifyListeners={};
+var _7={right:{on:true,container:document.createElement("td"),panels:[]},left:{on:true,container:document.createElement("td"),panels:[]},top:{on:true,container:document.createElement("td"),panels:[]},bottom:{on:true,container:document.createElement("td"),panels:[]}};
+for(var i in _7){
+if(!_7[i].container){
+continue;
+}
+_7[i].div=_7[i].container;
+_7[i].container.className="panels "+i;
+Xinha.freeLater(_7[i],"container");
+Xinha.freeLater(_7[i],"div");
+}
+this._panels=_7;
+this._statusBar=null;
+this._statusBarTree=null;
+this._statusBarTextMode=null;
+this._statusBarItems=[];
+this._framework={};
+this._htmlArea=null;
+this._iframe=null;
+this._doc=null;
+this._toolBar=this._toolbar=null;
+this._toolbarObjects={};
+}
+Xinha.onload=function(){
+};
+Xinha.init=function(){
+Xinha.onload();
+};
+Xinha.RE_tagName=/(<\/|<)\s*([^ \t\n>]+)/ig;
+Xinha.RE_doctype=/()\n?/i;
+Xinha.RE_head=/((.|\n)*?)<\/head>/i;
+Xinha.RE_body=/]*>((.|\n|\r|\t)*?)<\/body>/i;
+Xinha.RE_Specials=/([\/\^$*+?.()|{}[\]])/g;
+Xinha.escapeStringForRegExp=function(_9){
+return _9.replace(Xinha.RE_Specials,"\\$1");
+};
+Xinha.RE_email=/^[_a-z\d\-\.]{3,}@[_a-z\d\-]{2,}(\.[_a-z\d\-]{2,})+$/i;
+Xinha.RE_url=/(https?:\/\/)?(([a-z0-9_]+:[a-z0-9_]+@)?[a-z0-9_-]{2,}(\.[a-z0-9_-]{2,}){2,}(:[0-9]+)?(\/\S+)*)/i;
+Xinha.Config=function(){
+this.version=Xinha.version.Revision;
+this.width="auto";
+this.height="auto";
+this.sizeIncludesBars=true;
+this.sizeIncludesPanels=true;
+this.panel_dimensions={left:"200px",right:"200px",top:"100px",bottom:"100px"};
+this.iframeWidth=null;
+this.statusBar=true;
+this.htmlareaPaste=false;
+this.mozParaHandler="best";
+this.getHtmlMethod="DOMwalk";
+this.undoSteps=20;
+this.undoTimeout=500;
+this.changeJustifyWithDirection=false;
+this.fullPage=false;
+this.pageStyle="";
+this.pageStyleSheets=[];
+this.baseHref=null;
+this.expandRelativeUrl=true;
+this.stripBaseHref=true;
+this.stripSelfNamedAnchors=true;
+this.only7BitPrintablesInURLs=true;
+this.sevenBitClean=false;
+this.specialReplacements={};
+this.inwardHtml=function(_a){
+return _a;
+};
+this.outwardHtml=function(_b){
+return _b;
+};
+this.killWordOnPaste=true;
+this.makeLinkShowsTarget=true;
+this.charSet=(typeof document.characterSet!="undefined")?document.characterSet:document.charset;
+this.browserQuirksMode=null;
+this.imgURL="images/";
+this.popupURL="popups/";
+this.htmlRemoveTags=null;
+this.flowToolbars=true;
+this.toolbarAlign="left";
+this.showLoading=false;
+this.stripScripts=true;
+this.convertUrlsToLinks=true;
+this.colorPickerCellSize="6px";
+this.colorPickerGranularity=18;
+this.colorPickerPosition="bottom,right";
+this.colorPickerWebSafe=false;
+this.colorPickerSaveColors=20;
+this.fullScreen=false;
+this.fullScreenMargins=[0,0,0,0];
+this.toolbar=[["popupeditor"],["separator","formatblock","fontname","fontsize","bold","italic","underline","strikethrough"],["separator","forecolor","hilitecolor","textindicator"],["separator","subscript","superscript"],["linebreak","separator","justifyleft","justifycenter","justifyright","justifyfull"],["separator","insertorderedlist","insertunorderedlist","outdent","indent"],["separator","inserthorizontalrule","createlink","insertimage","inserttable"],["linebreak","separator","undo","redo","selectall","print"],(Xinha.is_gecko?[]:["cut","copy","paste","overwrite","saveas"]),["separator","killword","clearfonts","removeformat","toggleborders","splitblock","lefttoright","righttoleft"],["separator","htmlmode","showhelp","about"]];
+this.fontname={"— font —":"","Arial":"arial,helvetica,sans-serif","Courier New":"courier new,courier,monospace","Georgia":"georgia,times new roman,times,serif","Tahoma":"tahoma,arial,helvetica,sans-serif","Times New Roman":"times new roman,times,serif","Verdana":"verdana,arial,helvetica,sans-serif","impact":"impact","WingDings":"wingdings"};
+this.fontsize={"— size —":"","1 (8 pt)":"1","2 (10 pt)":"2","3 (12 pt)":"3","4 (14 pt)":"4","5 (18 pt)":"5","6 (24 pt)":"6","7 (36 pt)":"7"};
+this.formatblock={"— format —":"","Heading 1":"h1","Heading 2":"h2","Heading 3":"h3","Heading 4":"h4","Heading 5":"h5","Heading 6":"h6","Normal":"p","Address":"address","Formatted":"pre"};
+this.customSelects={};
+this.debug=true;
+this.URIs={"blank":_editor_url+"popups/blank.html","link":_editor_url+"modules/CreateLink/link.html","insert_image":_editor_url+"modules/InsertImage/insert_image.html","insert_table":_editor_url+"modules/InsertTable/insert_table.html","select_color":_editor_url+"popups/select_color.html","about":_editor_url+"popups/about.html","help":_editor_url+"popups/editor_help.html"};
+this.btnList={bold:["Bold",Xinha._lc({key:"button_bold",string:["ed_buttons_main.gif",3,2]},"Xinha"),false,function(e){
+e.execCommand("bold");
+}],italic:["Italic",Xinha._lc({key:"button_italic",string:["ed_buttons_main.gif",2,2]},"Xinha"),false,function(e){
+e.execCommand("italic");
+}],underline:["Underline",Xinha._lc({key:"button_underline",string:["ed_buttons_main.gif",2,0]},"Xinha"),false,function(e){
+e.execCommand("underline");
+}],strikethrough:["Strikethrough",Xinha._lc({key:"button_strikethrough",string:["ed_buttons_main.gif",3,0]},"Xinha"),false,function(e){
+e.execCommand("strikethrough");
+}],subscript:["Subscript",Xinha._lc({key:"button_subscript",string:["ed_buttons_main.gif",3,1]},"Xinha"),false,function(e){
+e.execCommand("subscript");
+}],superscript:["Superscript",Xinha._lc({key:"button_superscript",string:["ed_buttons_main.gif",2,1]},"Xinha"),false,function(e){
+e.execCommand("superscript");
+}],justifyleft:["Justify Left",["ed_buttons_main.gif",0,0],false,function(e){
+e.execCommand("justifyleft");
+}],justifycenter:["Justify Center",["ed_buttons_main.gif",1,1],false,function(e){
+e.execCommand("justifycenter");
+}],justifyright:["Justify Right",["ed_buttons_main.gif",1,0],false,function(e){
+e.execCommand("justifyright");
+}],justifyfull:["Justify Full",["ed_buttons_main.gif",0,1],false,function(e){
+e.execCommand("justifyfull");
+}],orderedlist:["Ordered List",["ed_buttons_main.gif",0,3],false,function(e){
+e.execCommand("insertorderedlist");
+}],unorderedlist:["Bulleted List",["ed_buttons_main.gif",1,3],false,function(e){
+e.execCommand("insertunorderedlist");
+}],insertorderedlist:["Ordered List",["ed_buttons_main.gif",0,3],false,function(e){
+e.execCommand("insertorderedlist");
+}],insertunorderedlist:["Bulleted List",["ed_buttons_main.gif",1,3],false,function(e){
+e.execCommand("insertunorderedlist");
+}],outdent:["Decrease Indent",["ed_buttons_main.gif",1,2],false,function(e){
+e.execCommand("outdent");
+}],indent:["Increase Indent",["ed_buttons_main.gif",0,2],false,function(e){
+e.execCommand("indent");
+}],forecolor:["Font Color",["ed_buttons_main.gif",3,3],false,function(e){
+e.execCommand("forecolor");
+}],hilitecolor:["Background Color",["ed_buttons_main.gif",2,3],false,function(e){
+e.execCommand("hilitecolor");
+}],undo:["Undoes your last action",["ed_buttons_main.gif",4,2],false,function(e){
+e.execCommand("undo");
+}],redo:["Redoes your last action",["ed_buttons_main.gif",5,2],false,function(e){
+e.execCommand("redo");
+}],cut:["Cut selection",["ed_buttons_main.gif",5,0],false,function(e,cmd){
+e.execCommand(cmd);
+}],copy:["Copy selection",["ed_buttons_main.gif",4,0],false,function(e,cmd){
+e.execCommand(cmd);
+}],paste:["Paste from clipboard",["ed_buttons_main.gif",4,1],false,function(e,cmd){
+e.execCommand(cmd);
+}],selectall:["Select all","ed_selectall.gif",false,function(e){
+e.execCommand("selectall");
+}],inserthorizontalrule:["Horizontal Rule",["ed_buttons_main.gif",6,0],false,function(e){
+e.execCommand("inserthorizontalrule");
+}],createlink:["Insert Web Link",["ed_buttons_main.gif",6,1],false,function(e){
+e._createLink();
+}],insertimage:["Insert/Modify Image",["ed_buttons_main.gif",6,3],false,function(e){
+e.execCommand("insertimage");
+}],inserttable:["Insert Table",["ed_buttons_main.gif",6,2],false,function(e){
+e.execCommand("inserttable");
+}],htmlmode:["Toggle HTML Source",["ed_buttons_main.gif",7,0],true,function(e){
+e.execCommand("htmlmode");
+}],toggleborders:["Toggle Borders",["ed_buttons_main.gif",7,2],false,function(e){
+e._toggleBorders();
+}],print:["Print document",["ed_buttons_main.gif",8,1],false,function(e){
+if(Xinha.is_gecko){
+e._iframe.contentWindow.print();
+}else{
+e.focusEditor();
+print();
+}
+}],saveas:["Save as","ed_saveas.gif",false,function(e){
+e.execCommand("saveas",false,"noname.htm");
+}],about:["About this editor",["ed_buttons_main.gif",8,2],true,function(e){
+e.execCommand("about");
+}],showhelp:["Help using editor",["ed_buttons_main.gif",9,2],true,function(e){
+e.execCommand("showhelp");
+}],splitblock:["Split Block","ed_splitblock.gif",false,function(e){
+e._splitBlock();
+}],lefttoright:["Direction left to right",["ed_buttons_main.gif",0,4],false,function(e){
+e.execCommand("lefttoright");
+}],righttoleft:["Direction right to left",["ed_buttons_main.gif",1,4],false,function(e){
+e.execCommand("righttoleft");
+}],overwrite:["Insert/Overwrite","ed_overwrite.gif",false,function(e){
+e.execCommand("overwrite");
+}],wordclean:["MS Word Cleaner",["ed_buttons_main.gif",5,3],false,function(e){
+e._wordClean();
+}],clearfonts:["Clear Inline Font Specifications",["ed_buttons_main.gif",5,4],true,function(e){
+e._clearFonts();
+}],removeformat:["Remove formatting",["ed_buttons_main.gif",4,4],false,function(e){
+e.execCommand("removeformat");
+}],killword:["Clear MSOffice tags",["ed_buttons_main.gif",4,3],false,function(e){
+e.execCommand("killword");
+}]};
+for(var i in this.btnList){
+var btn=this.btnList[i];
+if(typeof btn!="object"){
+continue;
+}
+if(typeof btn[1]!="string"){
+btn[1][0]=_editor_url+this.imgURL+btn[1][0];
+}else{
+btn[1]=_editor_url+this.imgURL+btn[1];
+}
+btn[0]=Xinha._lc(btn[0]);
+}
+};
+Xinha.Config.prototype.registerButton=function(id,_3c,_3d,_3e,_3f,_40){
+var _41;
+if(typeof id=="string"){
+_41=id;
+}else{
+if(typeof id=="object"){
+_41=id.id;
+}else{
+alert("ERROR [Xinha.Config::registerButton]:\ninvalid arguments");
+return false;
+}
+}
+switch(typeof id){
+case "string":
+this.btnList[id]=[_3c,_3d,_3e,_3f,_40];
+break;
+case "object":
+this.btnList[id.id]=[id.tooltip,id.image,id.textMode,id.action,id.context];
+break;
+}
+};
+Xinha.prototype.registerPanel=function(_42,_43){
+if(!_42){
+_42="right";
+}
+this.setLoadingMessage("Register "+_42+" panel ");
+var _44=this.addPanel(_42);
+if(_43){
+_43.drawPanelIn(_44);
+}
+};
+Xinha.Config.prototype.registerDropdown=function(_45){
+this.customSelects[_45.id]=_45;
+};
+Xinha.Config.prototype.hideSomeButtons=function(_46){
+var _47=this.toolbar;
+for(var i=_47.length;--i>=0;){
+var _49=_47[i];
+for(var j=_49.length;--j>=0;){
+if(_46.indexOf(" "+_49[j]+" ")>=0){
+var len=1;
+if(/separator|space/.test(_49[j+1])){
+len=2;
+}
+_49.splice(j,len);
+}
+}
+}
+};
+Xinha.Config.prototype.addToolbarElement=function(id,_4d,_4e){
+var _4f=this.toolbar;
+var a,i,j,o,sid;
+var _51=false;
+var _52=false;
+var _53=0;
+var _54=0;
+var _55=0;
+var _56=false;
+var _57=false;
+if((id&&typeof id=="object")&&(id.constructor==Array)){
+_51=true;
+}
+if((_4d&&typeof _4d=="object")&&(_4d.constructor==Array)){
+_52=true;
+_53=_4d.length;
+}
+if(_51){
+for(i=0;i=0;){
+a.splice(j,0,id[i]);
+}
+}else{
+a[j]=id;
+}
+}else{
+if(_4e<0){
+j=j+_4e+1;
+}else{
+if(_4e>0){
+j=j+_4e;
+}
+}
+if(_51){
+for(i=id.length;--i>=0;){
+a.splice(j,0,id[i]);
+}
+}else{
+a.splice(j,0,id);
+}
+}
+}else{
+_4f[0].splice(0,0,"separator");
+if(_51){
+for(i=id.length;--i>=0;){
+_4f[0].splice(0,0,id[i]);
+}
+}else{
+_4f[0].splice(0,0,id);
+}
+}
+};
+Xinha.Config.prototype.removeToolbarElement=Xinha.Config.prototype.hideSomeButtons;
+Xinha.replaceAll=function(_58){
+var tas=document.getElementsByTagName("textarea");
+for(var i=tas.length;i>0;(new Xinha(tas[--i],_58)).generate()){
+}
+};
+Xinha.replace=function(id,_5c){
+var ta=Xinha.getElementById("textarea",id);
+return ta?(new Xinha(ta,_5c)).generate():null;
+};
+Xinha.prototype._createToolbar=function(){
+this.setLoadingMessage(Xinha._lc("Create Toolbar"));
+var _5e=this;
+var _5f=document.createElement("div");
+this._toolBar=this._toolbar=_5f;
+_5f.className="toolbar";
+_5f.unselectable="1";
+_5f.align=this.config.toolbarAlign;
+Xinha.freeLater(this,"_toolBar");
+Xinha.freeLater(this,"_toolbar");
+var _60=null;
+var _61={};
+this._toolbarObjects=_61;
+this._createToolbar1(_5e,_5f,_61);
+this._htmlArea.appendChild(_5f);
+return _5f;
+};
+Xinha.prototype._setConfig=function(_62){
+this.config=_62;
+};
+Xinha.prototype._addToolbar=function(){
+this._createToolbar1(this,this._toolbar,this._toolbarObjects);
+};
+Xinha._createToolbarBreakingElement=function(){
+var brk=document.createElement("div");
+brk.style.height="1px";
+brk.style.width="1px";
+brk.style.lineHeight="1px";
+brk.style.fontSize="1px";
+brk.style.clear="both";
+return brk;
+};
+Xinha.prototype._createToolbar1=function(_64,_65,_66){
+var _67;
+if(_64.config.flowToolbars){
+_65.appendChild(Xinha._createToolbarBreakingElement());
+}
+function newLine(){
+if(typeof _67!="undefined"&&_67.childNodes.length===0){
+return;
+}
+var _68=document.createElement("table");
+_68.border="0px";
+_68.cellSpacing="0px";
+_68.cellPadding="0px";
+if(_64.config.flowToolbars){
+if(Xinha.is_ie){
+_68.style.styleFloat="left";
+}else{
+_68.style.cssFloat="left";
+}
+}
+_65.appendChild(_68);
+var _69=document.createElement("tbody");
+_68.appendChild(_69);
+_67=document.createElement("tr");
+_69.appendChild(_67);
+_68.className="toolbarRow";
+}
+newLine();
+function setButtonStatus(id,_6b){
+var _6c=this[id];
+var el=this.element;
+if(_6c!=_6b){
+switch(id){
+case "enabled":
+if(_6b){
+Xinha._removeClass(el,"buttonDisabled");
+el.disabled=false;
+}else{
+Xinha._addClass(el,"buttonDisabled");
+el.disabled=true;
+}
+break;
+case "active":
+if(_6b){
+Xinha._addClass(el,"buttonPressed");
+}else{
+Xinha._removeClass(el,"buttonPressed");
+}
+break;
+}
+this[id]=_6b;
+}
+}
+function createSelect(txt){
+var _6f=null;
+var el=null;
+var cmd=null;
+var _72=_64.config.customSelects;
+var _73=null;
+var _74="";
+switch(txt){
+case "fontsize":
+case "fontname":
+case "formatblock":
+_6f=_64.config[txt];
+cmd=txt;
+break;
+default:
+cmd=txt;
+var _75=_72[cmd];
+if(typeof _75!="undefined"){
+_6f=_75.options;
+_73=_75.context;
+if(typeof _75.tooltip!="undefined"){
+_74=_75.tooltip;
+}
+}else{
+alert("ERROR [createSelect]:\nCan't find the requested dropdown definition");
+}
+break;
+}
+if(_6f){
+el=document.createElement("select");
+el.title=_74;
+var obj={name:txt,element:el,enabled:true,text:false,cmd:cmd,state:setButtonStatus,context:_73};
+Xinha.freeLater(obj);
+_66[txt]=obj;
+for(var i in _6f){
+if(typeof (_6f[i])!="string"){
+continue;
+}
+var op=document.createElement("option");
+op.innerHTML=Xinha._lc(i);
+op.value=_6f[i];
+el.appendChild(op);
+}
+Xinha._addEvent(el,"change",function(){
+_64._comboSelected(el,txt);
+});
+}
+return el;
+}
+function createButton(txt){
+var el,btn,obj=null;
+switch(txt){
+case "separator":
+if(_64.config.flowToolbars){
+newLine();
+}
+el=document.createElement("div");
+el.className="separator";
+break;
+case "space":
+el=document.createElement("div");
+el.className="space";
+break;
+case "linebreak":
+newLine();
+return false;
+case "textindicator":
+el=document.createElement("div");
+el.appendChild(document.createTextNode("A"));
+el.className="indicator";
+el.title=Xinha._lc("Current style");
+obj={name:txt,element:el,enabled:true,active:false,text:false,cmd:"textindicator",state:setButtonStatus};
+Xinha.freeLater(obj);
+_66[txt]=obj;
+break;
+default:
+btn=_64.config.btnList[txt];
+}
+if(!el&&btn){
+el=document.createElement("a");
+el.style.display="block";
+el.href="javascript:void(0)";
+el.style.textDecoration="none";
+el.title=btn[0];
+el.className="button";
+el.style.direction="ltr";
+obj={name:txt,element:el,enabled:true,active:false,text:btn[2],cmd:btn[3],state:setButtonStatus,context:btn[4]||null};
+Xinha.freeLater(el);
+Xinha.freeLater(obj);
+_66[txt]=obj;
+el.ondrag=function(){
+return false;
+};
+Xinha._addEvent(el,"mouseout",function(ev){
+if(obj.enabled){
+Xinha._removeClass(el,"buttonActive");
+if(obj.active){
+Xinha._addClass(el,"buttonPressed");
+}
+}
+});
+Xinha._addEvent(el,"mousedown",function(ev){
+if(obj.enabled){
+Xinha._addClass(el,"buttonActive");
+Xinha._removeClass(el,"buttonPressed");
+Xinha._stopEvent(Xinha.is_ie?window.event:ev);
+}
+});
+Xinha._addEvent(el,"click",function(ev){
+ev=Xinha.is_ie?window.event:ev;
+_64.btnClickEvent=ev;
+if(obj.enabled){
+Xinha._removeClass(el,"buttonActive");
+if(Xinha.is_gecko){
+_64.activateEditor();
+}
+obj.cmd(_64,obj.name,obj);
+Xinha._stopEvent(ev);
+}
+});
+var _7e=Xinha.makeBtnImg(btn[1]);
+var img=_7e.firstChild;
+Xinha.freeLater(_7e);
+Xinha.freeLater(img);
+el.appendChild(_7e);
+obj.imgel=img;
+obj.swapImage=function(_80){
+if(typeof _80!="string"){
+img.src=_80[0];
+img.style.position="relative";
+img.style.top=_80[2]?("-"+(18*(_80[2]+1))+"px"):"-18px";
+img.style.left=_80[1]?("-"+(18*(_80[1]+1))+"px"):"-18px";
+}else{
+obj.imgel.src=_80;
+img.style.top="0px";
+img.style.left="0px";
+}
+};
+}else{
+if(!el){
+el=createSelect(txt);
+}
+}
+return el;
+}
+var _81=true;
+for(var i=0;i] button to switch back to WYSIWYG.");
+div.style.display="none";
+this._statusBarTextMode=div;
+Xinha.freeLater(this,"_statusBarTextMode");
+this._statusBar.appendChild(div);
+if(!this.config.statusBar){
+_8e.style.display="none";
+}
+return _8e;
+};
+Xinha.prototype.generate=function(){
+if(!Xinha.isSupportedBrowser){
+return;
+}
+var i;
+var _91=this;
+var url;
+var _93=false;
+var _94=document.getElementsByTagName("link");
+if(!document.getElementById("XinhaCoreDesign")){
+_editor_css=(typeof _editor_css=="string")?_editor_css:"Xinha.css";
+for(i=0;i<_94.length;i++){
+if((_94[i].rel=="stylesheet")&&(_94[i].href==_editor_url+_editor_css)){
+_93=true;
+}
+}
+if(!_93){
+Xinha.loadStyle(_editor_css,null,"XinhaCoreDesign",true);
+}
+}
+if(_editor_skin!==""&&!document.getElementById("XinhaSkin")){
+_93=false;
+for(i=0;i<_94.length;i++){
+if((_94[i].rel=="stylesheet")&&(_94[i].href==_editor_url+"skins/"+_editor_skin+"/skin.css")){
+_93=true;
+}
+}
+if(!_93){
+Xinha.loadStyle("skins/"+_editor_skin+"/skin.css",null,"XinhaSkin");
+}
+}
+if(Xinha.is_ie){
+url=_editor_url+"modules/InternetExplorer/InternetExplorer.js";
+if(!Xinha.loadPlugins([{plugin:"InternetExplorer",url:url}],function(){
+_91.generate();
+})){
+return false;
+}
+_91._browserSpecificPlugin=_91.registerPlugin("InternetExplorer");
+}else{
+if(Xinha.is_webkit){
+url=_editor_url+"modules/WebKit/WebKit.js";
+if(!Xinha.loadPlugins([{plugin:"WebKit",url:url}],function(){
+_91.generate();
+})){
+return false;
+}
+_91._browserSpecificPlugin=_91.registerPlugin("WebKit");
+}else{
+if(Xinha.is_opera){
+url=_editor_url+"modules/Opera/Opera.js";
+if(!Xinha.loadPlugins([{plugin:"Opera",url:url}],function(){
+_91.generate();
+})){
+return false;
+}
+_91._browserSpecificPlugin=_91.registerPlugin("Opera");
+}else{
+if(Xinha.is_gecko){
+url=_editor_url+"modules/Gecko/Gecko.js";
+if(!Xinha.loadPlugins([{plugin:"Gecko",url:url}],function(){
+_91.generate();
+})){
+return false;
+}
+_91._browserSpecificPlugin=_91.registerPlugin("Gecko");
+}
+}
+}
+}
+if(typeof Dialog=="undefined"&&!Xinha._loadback(_editor_url+"modules/Dialogs/dialog.js",this.generate,this)){
+return false;
+}
+if(typeof Xinha.Dialog=="undefined"&&!Xinha._loadback(_editor_url+"modules/Dialogs/inline-dialog.js",this.generate,this)){
+return false;
+}
+url=_editor_url+"modules/FullScreen/full-screen.js";
+if(!Xinha.loadPlugins([{plugin:"FullScreen",url:url}],function(){
+_91.generate();
+})){
+return false;
+}
+url=_editor_url+"modules/ColorPicker/ColorPicker.js";
+if(!Xinha.loadPlugins([{plugin:"ColorPicker",url:url}],function(){
+_91.generate();
+})){
+return false;
+}else{
+if(typeof ColorPicker!="undefined"){
+_91.registerPlugin("ColorPicker");
+}
+}
+var _95=_91.config.toolbar;
+for(i=_95.length;--i>=0;){
+for(var j=_95[i].length;--j>=0;){
+switch(_95[i][j]){
+case "popupeditor":
+_91.registerPlugin("FullScreen");
+break;
+case "insertimage":
+url=_editor_url+"modules/InsertImage/insert_image.js";
+if(typeof Xinha.prototype._insertImage=="undefined"&&!Xinha.loadPlugins([{plugin:"InsertImage",url:url}],function(){
+_91.generate();
+})){
+return false;
+}else{
+if(typeof InsertImage!="undefined"){
+_91.registerPlugin("InsertImage");
+}
+}
+break;
+case "createlink":
+url=_editor_url+"modules/CreateLink/link.js";
+if(typeof Linker=="undefined"&&!Xinha.loadPlugins([{plugin:"CreateLink",url:url}],function(){
+_91.generate();
+})){
+return false;
+}else{
+if(typeof CreateLink!="undefined"){
+_91.registerPlugin("CreateLink");
+}
+}
+break;
+case "inserttable":
+url=_editor_url+"modules/InsertTable/insert_table.js";
+if(!Xinha.loadPlugins([{plugin:"InsertTable",url:url}],function(){
+_91.generate();
+})){
+return false;
+}else{
+if(typeof InsertTable!="undefined"){
+_91.registerPlugin("InsertTable");
+}
+}
+break;
+}
+}
+}
+if(Xinha.is_gecko&&_91.config.mozParaHandler!="built-in"){
+if(!Xinha.loadPlugins([{plugin:"EnterParagraphs",url:_editor_url+"modules/Gecko/paraHandlerBest.js"}],function(){
+_91.generate();
+})){
+return false;
+}
+_91.registerPlugin("EnterParagraphs");
+}
+if(Xinha.ie_version==8){
+this.config.getHtmlMethod="TransformInnerHTML";
+}
+switch(this.config.getHtmlMethod){
+case "TransformInnerHTML":
+var _97=_editor_url+"modules/GetHtml/TransformInnerHTML.js";
+break;
+default:
+var _97=_editor_url+"modules/GetHtml/DOMwalk.js";
+break;
+}
+if(!Xinha.loadPlugins([{plugin:"GetHtmlImplementation",url:_97}],function(){
+_91.generate();
+})){
+return false;
+}else{
+_91.registerPlugin("GetHtmlImplementation");
+}
+this.setLoadingMessage(Xinha._lc("Generate Xinha framework"));
+this._framework={"table":document.createElement("table"),"tbody":document.createElement("tbody"),"tb_row":document.createElement("tr"),"tb_cell":document.createElement("td"),"tp_row":document.createElement("tr"),"tp_cell":this._panels.top.container,"ler_row":document.createElement("tr"),"lp_cell":this._panels.left.container,"ed_cell":document.createElement("td"),"rp_cell":this._panels.right.container,"bp_row":document.createElement("tr"),"bp_cell":this._panels.bottom.container,"sb_row":document.createElement("tr"),"sb_cell":document.createElement("td")};
+Xinha.freeLater(this._framework);
+var fw=this._framework;
+fw.table.border="0";
+fw.table.cellPadding="0";
+fw.table.cellSpacing="0";
+fw.tb_row.style.verticalAlign="top";
+fw.tp_row.style.verticalAlign="top";
+fw.ler_row.style.verticalAlign="top";
+fw.bp_row.style.verticalAlign="top";
+fw.sb_row.style.verticalAlign="top";
+fw.ed_cell.style.position="relative";
+fw.tb_row.appendChild(fw.tb_cell);
+fw.tb_cell.colSpan=3;
+fw.tp_row.appendChild(fw.tp_cell);
+fw.tp_cell.colSpan=3;
+fw.ler_row.appendChild(fw.lp_cell);
+fw.ler_row.appendChild(fw.ed_cell);
+fw.ler_row.appendChild(fw.rp_cell);
+fw.bp_row.appendChild(fw.bp_cell);
+fw.bp_cell.colSpan=3;
+fw.sb_row.appendChild(fw.sb_cell);
+fw.sb_cell.colSpan=3;
+fw.tbody.appendChild(fw.tb_row);
+fw.tbody.appendChild(fw.tp_row);
+fw.tbody.appendChild(fw.ler_row);
+fw.tbody.appendChild(fw.bp_row);
+fw.tbody.appendChild(fw.sb_row);
+fw.table.appendChild(fw.tbody);
+var _99=this._framework.table;
+this._htmlArea=_99;
+Xinha.freeLater(this,"_htmlArea");
+_99.className="htmlarea";
+this._framework.tb_cell.appendChild(this._createToolbar());
+var _9a=document.createElement("iframe");
+_9a.src=this.popupURL(_91.config.URIs.blank);
+_9a.id="XinhaIFrame_"+this._textArea.id;
+this._framework.ed_cell.appendChild(_9a);
+this._iframe=_9a;
+this._iframe.className="xinha_iframe";
+Xinha.freeLater(this,"_iframe");
+var _9b=this._createStatusBar();
+this._framework.sb_cell.appendChild(_9b);
+var _9c=this._textArea;
+_9c.parentNode.insertBefore(_99,_9c);
+_9c.className="xinha_textarea";
+Xinha.removeFromParent(_9c);
+this._framework.ed_cell.appendChild(_9c);
+Xinha.addDom0Event(this._textArea,"click",function(){
+if(Xinha._currentlyActiveEditor!=this){
+_91.updateToolbar();
+}
+return true;
+});
+if(_9c.form){
+Xinha.prependDom0Event(this._textArea.form,"submit",function(){
+_91.firePluginEvent("onBeforeSubmit");
+_91._textArea.value=_91.outwardHtml(_91.getHTML());
+return true;
+});
+var _9d=_9c.value;
+Xinha.prependDom0Event(this._textArea.form,"reset",function(){
+_91.setHTML(_91.inwardHtml(_9d));
+_91.updateToolbar();
+return true;
+});
+if(!_9c.form.xinha_submit){
+try{
+_9c.form.xinha_submit=_9c.form.submit;
+_9c.form.submit=function(){
+this.onsubmit();
+this.xinha_submit();
+};
+}
+catch(ex){
+}
+}
+}
+Xinha.prependDom0Event(window,"unload",function(){
+_91.firePluginEvent("onBeforeUnload");
+_9c.value=_91.outwardHtml(_91.getHTML());
+if(!Xinha.is_ie){
+_99.parentNode.replaceChild(_9c,_99);
+}
+return true;
+});
+_9c.style.display="none";
+_91.initSize();
+this.setLoadingMessage(Xinha._lc("Finishing"));
+_91._iframeLoadDone=false;
+if(Xinha.is_opera){
+_91.initIframe();
+}else{
+Xinha._addEvent(this._iframe,"load",function(e){
+if(!_91._iframeLoadDone){
+_91._iframeLoadDone=true;
+_91.initIframe();
+}
+return true;
+});
+}
+};
+Xinha.prototype.initSize=function(){
+this.setLoadingMessage(Xinha._lc("Init editor size"));
+var _9f=this;
+var _a0=null;
+var _a1=null;
+switch(this.config.width){
+case "auto":
+_a0=this._initial_ta_size.w;
+break;
+case "toolbar":
+_a0=this._toolBar.offsetWidth+"px";
+break;
+default:
+_a0=/[^0-9]/.test(this.config.width)?this.config.width:this.config.width+"px";
+break;
+}
+switch(this.config.height){
+case "auto":
+_a1=this._initial_ta_size.h;
+break;
+default:
+_a1=/[^0-9]/.test(this.config.height)?this.config.height:this.config.height+"px";
+break;
+}
+this.sizeEditor(_a0,_a1,this.config.sizeIncludesBars,this.config.sizeIncludesPanels);
+this.notifyOn("panel_change",function(){
+_9f.sizeEditor();
+});
+};
+Xinha.prototype.sizeEditor=function(_a2,_a3,_a4,_a5){
+if(this._risizing){
+return;
+}
+this._risizing=true;
+this.notifyOf("before_resize",{width:_a2,height:_a3});
+this.firePluginEvent("onBeforeResize",_a2,_a3);
+this._iframe.style.height="100%";
+this._textArea.style.height="100%";
+this._iframe.style.width="";
+this._textArea.style.width="";
+if(_a4!==null){
+this._htmlArea.sizeIncludesToolbars=_a4;
+}
+if(_a5!==null){
+this._htmlArea.sizeIncludesPanels=_a5;
+}
+if(_a2){
+this._htmlArea.style.width=_a2;
+if(!this._htmlArea.sizeIncludesPanels){
+var _a6=this._panels.right;
+if(_a6.on&&_a6.panels.length&&Xinha.hasDisplayedChildren(_a6.div)){
+this._htmlArea.style.width=(this._htmlArea.offsetWidth+parseInt(this.config.panel_dimensions.right,10))+"px";
+}
+var _a7=this._panels.left;
+if(_a7.on&&_a7.panels.length&&Xinha.hasDisplayedChildren(_a7.div)){
+this._htmlArea.style.width=(this._htmlArea.offsetWidth+parseInt(this.config.panel_dimensions.left,10))+"px";
+}
+}
+}
+if(_a3){
+this._htmlArea.style.height=_a3;
+if(!this._htmlArea.sizeIncludesToolbars){
+this._htmlArea.style.height=(this._htmlArea.offsetHeight+this._toolbar.offsetHeight+this._statusBar.offsetHeight)+"px";
+}
+if(!this._htmlArea.sizeIncludesPanels){
+var _a8=this._panels.top;
+if(_a8.on&&_a8.panels.length&&Xinha.hasDisplayedChildren(_a8.div)){
+this._htmlArea.style.height=(this._htmlArea.offsetHeight+parseInt(this.config.panel_dimensions.top,10))+"px";
+}
+var _a9=this._panels.bottom;
+if(_a9.on&&_a9.panels.length&&Xinha.hasDisplayedChildren(_a9.div)){
+this._htmlArea.style.height=(this._htmlArea.offsetHeight+parseInt(this.config.panel_dimensions.bottom,10))+"px";
+}
+}
+}
+_a2=this._htmlArea.offsetWidth;
+_a3=this._htmlArea.offsetHeight;
+var _aa=this._panels;
+var _ab=this;
+var _ac=1;
+function panel_is_alive(pan){
+if(_aa[pan].on&&_aa[pan].panels.length&&Xinha.hasDisplayedChildren(_aa[pan].container)){
+_aa[pan].container.style.display="";
+return true;
+}else{
+_aa[pan].container.style.display="none";
+return false;
+}
+}
+if(panel_is_alive("left")){
+_ac+=1;
+}
+if(panel_is_alive("right")){
+_ac+=1;
+}
+this._framework.tb_cell.colSpan=_ac;
+this._framework.tp_cell.colSpan=_ac;
+this._framework.bp_cell.colSpan=_ac;
+this._framework.sb_cell.colSpan=_ac;
+if(!this._framework.tp_row.childNodes.length){
+Xinha.removeFromParent(this._framework.tp_row);
+}else{
+if(!Xinha.hasParentNode(this._framework.tp_row)){
+this._framework.tbody.insertBefore(this._framework.tp_row,this._framework.ler_row);
+}
+}
+if(!this._framework.bp_row.childNodes.length){
+Xinha.removeFromParent(this._framework.bp_row);
+}else{
+if(!Xinha.hasParentNode(this._framework.bp_row)){
+this._framework.tbody.insertBefore(this._framework.bp_row,this._framework.ler_row.nextSibling);
+}
+}
+if(!this.config.statusBar){
+Xinha.removeFromParent(this._framework.sb_row);
+}else{
+if(!Xinha.hasParentNode(this._framework.sb_row)){
+this._framework.table.appendChild(this._framework.sb_row);
+}
+}
+this._framework.lp_cell.style.width=this.config.panel_dimensions.left;
+this._framework.rp_cell.style.width=this.config.panel_dimensions.right;
+this._framework.tp_cell.style.height=this.config.panel_dimensions.top;
+this._framework.bp_cell.style.height=this.config.panel_dimensions.bottom;
+this._framework.tb_cell.style.height=this._toolBar.offsetHeight+"px";
+this._framework.sb_cell.style.height=this._statusBar.offsetHeight+"px";
+var _ae=_a3-this._toolBar.offsetHeight-this._statusBar.offsetHeight;
+if(panel_is_alive("top")){
+_ae-=parseInt(this.config.panel_dimensions.top,10);
+}
+if(panel_is_alive("bottom")){
+_ae-=parseInt(this.config.panel_dimensions.bottom,10);
+}
+this._iframe.style.height=_ae+"px";
+var _af=_a2;
+if(panel_is_alive("left")){
+_af-=parseInt(this.config.panel_dimensions.left,10);
+}
+if(panel_is_alive("right")){
+_af-=parseInt(this.config.panel_dimensions.right,10);
+}
+var _b0=(this.config.iframeWidth)?parseInt(this.config.iframeWidth,10):null;
+this._iframe.style.width=(_b0&&_b0<_af)?_b0+"px":_af+"px";
+this._textArea.style.height=this._iframe.style.height;
+this._textArea.style.width=this._iframe.style.width;
+this.notifyOf("resize",{width:this._htmlArea.offsetWidth,height:this._htmlArea.offsetHeight});
+this.firePluginEvent("onResize",this._htmlArea.offsetWidth,this._htmlArea.offsetWidth);
+this._risizing=false;
+};
+Xinha.prototype.registerPanel=function(_b1,_b2){
+if(!_b1){
+_b1="right";
+}
+this.setLoadingMessage("Register "+_b1+" panel ");
+var _b3=this.addPanel(_b1);
+if(_b2){
+_b2.drawPanelIn(_b3);
+}
+};
+Xinha.prototype.addPanel=function(_b4){
+var div=document.createElement("div");
+div.side=_b4;
+if(_b4=="left"||_b4=="right"){
+div.style.width=this.config.panel_dimensions[_b4];
+if(this._iframe){
+div.style.height=this._iframe.style.height;
+}
+}
+Xinha.addClasses(div,"panel");
+this._panels[_b4].panels.push(div);
+this._panels[_b4].div.appendChild(div);
+this.notifyOf("panel_change",{"action":"add","panel":div});
+this.firePluginEvent("onPanelChange","add",div);
+return div;
+};
+Xinha.prototype.removePanel=function(_b6){
+this._panels[_b6.side].div.removeChild(_b6);
+var _b7=[];
+for(var i=0;i";
+}else{
+if(_c8.config.browserQuirksMode===true){
+var _ca="";
+}else{
+var _ca=Xinha.getDoctype(document);
+}
+}
+if(!_c8.config.fullPage){
+_c9+=_ca+"\n";
+_c9+="\n";
+_c9+="\n";
+_c9+=" \n";
+if(typeof _c8.config.baseHref!="undefined"&&_c8.config.baseHref!==null){
+_c9+=" \n";
+}
+_c9+=Xinha.addCoreCSS();
+if(typeof _c8.config.pageStyleSheets!=="undefined"){
+for(var i=0;i<_c8.config.pageStyleSheets.length;i++){
+if(_c8.config.pageStyleSheets[i].length>0){
+_c9+=" ";
+}
+}
+}
+if(_c8.config.pageStyle){
+_c9+="";
+}
+_c9+="\n";
+_c9+="\n";
+_c9+=_c8.inwardHtml(_c8._textArea.value);
+_c9+="\n";
+_c9+="";
+}else{
+_c9=_c8.inwardHtml(_c8._textArea.value);
+if(_c9.match(Xinha.RE_doctype)){
+_c8.setDoctype(RegExp.$1);
+}
+var _cc=_c9.match(/ /gi);
+_c9=_c9.replace(/ \s*/gi,"");
+_cc?_c9=_c9.replace(/<\/head>/i,_cc.join("\n")+"\n"):null;
+}
+doc.write(_c9);
+doc.close();
+if(this.config.fullScreen){
+this._fullScreen();
+}
+this.setEditorEvents();
+};
+Xinha.prototype.whenDocReady=function(f){
+var e=this;
+if(this._doc&&this._doc.body){
+f();
+}else{
+setTimeout(function(){
+e.whenDocReady(f);
+},50);
+}
+};
+Xinha.prototype.setMode=function(_cf){
+var _d0;
+if(typeof _cf=="undefined"){
+_cf=this._editMode=="textmode"?"wysiwyg":"textmode";
+}
+switch(_cf){
+case "textmode":
+this.firePluginEvent("onBeforeMode","textmode");
+this.setCC("iframe");
+_d0=this.outwardHtml(this.getHTML());
+this.setHTML(_d0);
+this.deactivateEditor();
+this._iframe.style.display="none";
+this._textArea.style.display="";
+if(this.config.statusBar){
+this._statusBarTree.style.display="none";
+this._statusBarTextMode.style.display="";
+}
+this.findCC("textarea");
+this.notifyOf("modechange",{"mode":"text"});
+this.firePluginEvent("onMode","textmode");
+break;
+case "wysiwyg":
+this.firePluginEvent("onBeforeMode","wysiwyg");
+this.setCC("textarea");
+_d0=this.inwardHtml(this.getHTML());
+this.deactivateEditor();
+this.setHTML(_d0);
+this._iframe.style.display="";
+this._textArea.style.display="none";
+this.activateEditor();
+if(this.config.statusBar){
+this._statusBarTree.style.display="";
+this._statusBarTextMode.style.display="none";
+}
+this.findCC("iframe");
+this.notifyOf("modechange",{"mode":"wysiwyg"});
+this.firePluginEvent("onMode","wysiwyg");
+break;
+default:
+alert("Mode <"+_cf+"> not defined!");
+return false;
+}
+this._editMode=_cf;
+};
+Xinha.prototype.setFullHTML=function(_d1){
+var _d2=RegExp.multiline;
+RegExp.multiline=true;
+if(_d1.match(Xinha.RE_doctype)){
+this.setDoctype(RegExp.$1);
+}
+RegExp.multiline=_d2;
+if(0){
+if(_d1.match(Xinha.RE_head)){
+this._doc.getElementsByTagName("head")[0].innerHTML=RegExp.$1;
+}
+if(_d1.match(Xinha.RE_body)){
+this._doc.getElementsByTagName("body")[0].innerHTML=RegExp.$1;
+}
+}else{
+var _d3=this.editorIsActivated();
+if(_d3){
+this.deactivateEditor();
+}
+var _d4=/((.|\n)*?)<\/html>/i;
+_d1=_d1.replace(_d4,"$1");
+this._doc.open("text/html","replace");
+this._doc.write(_d1);
+this._doc.close();
+if(_d3){
+this.activateEditor();
+}
+this.setEditorEvents();
+return true;
+}
+};
+Xinha.prototype.setEditorEvents=function(){
+var _d5=this;
+var doc=this._doc;
+_d5.whenDocReady(function(){
+Xinha._addEvents(doc,["mousedown"],function(){
+_d5.activateEditor();
+return true;
+});
+if(Xinha.is_ie){
+Xinha._addEvent(_d5._doc.getElementsByTagName("html")[0],"click",function(){
+if(_d5._iframe.contentWindow.event.srcElement.tagName.toLowerCase()=="html"){
+var r=_d5._doc.body.createTextRange();
+r.collapse();
+r.select();
+}
+return true;
+});
+}
+Xinha._addEvents(doc,["keydown","keypress","mousedown","mouseup","drag"],function(_d8){
+return _d5._editorEvent(Xinha.is_ie?_d5._iframe.contentWindow.event:_d8);
+});
+for(var i in _d5.plugins){
+var _da=_d5.plugins[i].instance;
+Xinha.refreshPlugin(_da);
+}
+if(typeof _d5._onGenerate=="function"){
+_d5._onGenerate();
+}
+Xinha.addDom0Event(window,"resize",function(e){
+_d5.sizeEditor();
+});
+_d5.removeLoadingMessage();
+});
+};
+Xinha.prototype.registerPlugin=function(){
+if(!Xinha.isSupportedBrowser){
+return;
+}
+var _dc=arguments[0];
+if(_dc===null||typeof _dc=="undefined"||(typeof _dc=="string"&&typeof window[_dc]=="undefined")){
+return false;
+}
+var _dd=[];
+for(var i=1;i=0;){
+ta.value+=" ";
+}
+ta.value+=str+"\n";
+}
+function _dt(root,_108){
+var tag=root.tagName.toLowerCase(),i;
+var ns=Xinha.is_ie?root.scopeName:root.prefix;
+debug(_108,"- "+tag+" ["+ns+"]");
+for(i=root.firstChild;i;i=i.nextSibling){
+if(i.nodeType==1){
+_dt(i,_108+2);
+}
+}
+}
+_dt(this._doc.body,0);
+document.body.appendChild(ta);
+};
+Xinha.getInnerText=function(el){
+var txt="",i;
+for(i=el.firstChild;i;i=i.nextSibling){
+if(i.nodeType==3){
+txt+=i.data;
+}else{
+if(i.nodeType==1){
+txt+=Xinha.getInnerText(i);
+}
+}
+}
+return txt;
+};
+Xinha.prototype._wordClean=function(){
+var _10d=this;
+var _10e={empty_tags:0,mso_class:0,mso_style:0,mso_xmlel:0,orig_len:this._doc.body.innerHTML.length,T:(new Date()).getTime()};
+var _10f={empty_tags:"Empty tags removed: ",mso_class:"MSO class names removed: ",mso_style:"MSO inline style removed: ",mso_xmlel:"MSO XML elements stripped: "};
+function showStats(){
+var txt="Xinha word cleaner stats: \n\n";
+for(var i in _10e){
+if(_10f[i]){
+txt+=_10f[i]+_10e[i]+"\n";
+}
+}
+txt+="\nInitial document length: "+_10e.orig_len+"\n";
+txt+="Final document length: "+_10d._doc.body.innerHTML.length+"\n";
+txt+="Clean-up took "+(((new Date()).getTime()-_10e.T)/1000)+" seconds";
+alert(txt);
+}
+function clearClass(node){
+var newc=node.className.replace(/(^|\s)mso.*?(\s|$)/ig," ");
+if(newc!=node.className){
+node.className=newc;
+if(!(/\S/.test(node.className))){
+node.removeAttribute("className");
+++_10e.mso_class;
+}
+}
+}
+function clearStyle(node){
+var _115=node.style.cssText.split(/\s*;\s*/);
+for(var i=_115.length;--i>=0;){
+if((/^mso|^tab-stops/i.test(_115[i]))||(/^margin\s*:\s*0..\s+0..\s+0../i.test(_115[i]))){
+++_10e.mso_style;
+_115.splice(i,1);
+}
+}
+node.style.cssText=_115.join("; ");
+}
+var _117=null;
+if(Xinha.is_ie){
+_117=function(el){
+el.outerHTML=Xinha.htmlEncode(el.innerText);
+++_10e.mso_xmlel;
+};
+}else{
+_117=function(el){
+var txt=document.createTextNode(Xinha.getInnerText(el));
+el.parentNode.insertBefore(txt,el);
+Xinha.removeFromParent(el);
+++_10e.mso_xmlel;
+};
+}
+function checkEmpty(el){
+if(/^(span|b|strong|i|em|font|div|p)$/i.test(el.tagName)&&!el.firstChild){
+Xinha.removeFromParent(el);
+++_10e.empty_tags;
+}
+}
+function parseTree(root){
+var tag=root.tagName.toLowerCase(),i,next;
+if((Xinha.is_ie&&root.scopeName!="HTML")||(!Xinha.is_ie&&(/:/.test(tag)))){
+_117(root);
+return false;
+}else{
+clearClass(root);
+clearStyle(root);
+for(i=root.firstChild;i;i=next){
+next=i.nextSibling;
+if(i.nodeType==1&&parseTree(i)){
+checkEmpty(i);
+}
+}
+}
+return true;
+}
+parseTree(this._doc.body);
+this.updateToolbar();
+};
+Xinha.prototype._clearFonts=function(){
+var D=this.getInnerHTML();
+if(confirm(Xinha._lc("Would you like to clear font typefaces?"))){
+D=D.replace(/face="[^"]*"/gi,"");
+D=D.replace(/font-family:[^;}"']+;?/gi,"");
+}
+if(confirm(Xinha._lc("Would you like to clear font sizes?"))){
+D=D.replace(/size="[^"]*"/gi,"");
+D=D.replace(/font-size:[^;}"']+;?/gi,"");
+}
+if(confirm(Xinha._lc("Would you like to clear font colours?"))){
+D=D.replace(/color="[^"]*"/gi,"");
+D=D.replace(/([^-])color:[^;}"']+;?/gi,"$1");
+}
+D=D.replace(/(style|class)="\s*"/gi,"");
+D=D.replace(/<(font|span)\s*>/gi,"");
+this.setHTML(D);
+this.updateToolbar();
+};
+Xinha.prototype._splitBlock=function(){
+this._doc.execCommand("formatblock",false,"div");
+};
+Xinha.prototype.forceRedraw=function(){
+this._doc.body.style.visibility="hidden";
+this._doc.body.style.visibility="";
+};
+Xinha.prototype.focusEditor=function(){
+switch(this._editMode){
+case "wysiwyg":
+try{
+if(Xinha._someEditorHasBeenActivated){
+this.activateEditor();
+this._iframe.contentWindow.focus();
+}
+}
+catch(ex){
+}
+break;
+case "textmode":
+try{
+this._textArea.focus();
+}
+catch(e){
+}
+break;
+default:
+alert("ERROR: mode "+this._editMode+" is not defined");
+}
+return this._doc;
+};
+Xinha.prototype._undoTakeSnapshot=function(){
+++this._undoPos;
+if(this._undoPos>=this.config.undoSteps){
+this._undoQueue.shift();
+--this._undoPos;
+}
+var take=true;
+var txt=this.getInnerHTML();
+if(this._undoPos>0){
+take=(this._undoQueue[this._undoPos-1]!=txt);
+}
+if(take){
+this._undoQueue[this._undoPos]=txt;
+}else{
+this._undoPos--;
+}
+};
+Xinha.prototype.undo=function(){
+if(this._undoPos>0){
+var txt=this._undoQueue[--this._undoPos];
+if(txt){
+this.setHTML(txt);
+}else{
+++this._undoPos;
+}
+}
+};
+Xinha.prototype.redo=function(){
+if(this._undoPos=0;){
+var el=_129[i];
+if(!el){
+continue;
+}
+var a=document.createElement("a");
+a.href="javascript:void(0)";
+a.el=el;
+a.editor=this;
+this._statusBarItems.push(a);
+Xinha.addDom0Event(a,"click",function(){
+this.blur();
+this.editor.selectNodeContents(this.el);
+this.editor.updateToolbar(true);
+return false;
+});
+Xinha.addDom0Event(a,"contextmenu",function(){
+this.blur();
+var info="Inline style:\n\n";
+info+=this.el.style.cssText.split(/;\s*/).join(";\n");
+alert(info);
+return false;
+});
+var txt=el.tagName.toLowerCase();
+if(typeof el.style!="undefined"){
+a.title=el.style.cssText;
+}
+if(el.id){
+txt+="#"+el.id;
+}
+if(el.className){
+txt+="."+el.className;
+}
+a.appendChild(document.createTextNode(txt));
+this._statusBarTree.appendChild(a);
+if(i!==0){
+this._statusBarTree.appendChild(document.createTextNode(String.fromCharCode(187)));
+}
+Xinha.freeLater(a);
+}
+}
+}
+for(var cmd in this._toolbarObjects){
+var btn=this._toolbarObjects[cmd];
+var _132=true;
+if(typeof (btn.state)!="function"){
+continue;
+}
+if(btn.context&&!text){
+_132=false;
+var _133=btn.context;
+var _134=[];
+if(/(.*)\[(.*?)\]/.test(_133)){
+_133=RegExp.$1;
+_134=RegExp.$2.split(",");
+}
+_133=_133.toLowerCase();
+var _135=(_133=="*");
+for(var k=0;k<_129.length;++k){
+if(!_129[k]){
+continue;
+}
+if(_135||(_129[k].tagName.toLowerCase()==_133)){
+_132=true;
+var _137=null;
+var att=null;
+var comp=null;
+var _13a=null;
+for(var ka=0;ka<_134.length;++ka){
+_137=_134[ka].match(/(.*)(==|!=|===|!==|>|>=|<|<=)(.*)/);
+att=_137[1];
+comp=_137[2];
+_13a=_137[3];
+if(!eval(_129[k][att]+comp+_13a)){
+_132=false;
+break;
+}
+}
+if(_132){
+break;
+}
+}
+}
+}
+btn.state("enabled",(!text||btn.text)&&_132);
+if(typeof cmd=="function"){
+continue;
+}
+var _13c=this.config.customSelects[cmd];
+if((!text||btn.text)&&(typeof _13c!="undefined")){
+_13c.refresh(this);
+continue;
+}
+switch(cmd){
+case "fontname":
+case "fontsize":
+if(!text){
+try{
+var _13d=(""+doc.queryCommandValue(cmd)).toLowerCase();
+if(!_13d){
+btn.element.selectedIndex=0;
+break;
+}
+var _13e=this.config[cmd];
+var _13f=0;
+for(var j in _13e){
+if((j.toLowerCase()==_13d)||(_13e[j].substr(0,_13d.length).toLowerCase()==_13d)){
+btn.element.selectedIndex=_13f;
+throw "ok";
+}
+++_13f;
+}
+btn.element.selectedIndex=0;
+}
+catch(ex){
+}
+}
+break;
+case "formatblock":
+var _141=[];
+for(var _142 in this.config.formatblock){
+if(typeof this.config.formatblock[_142]=="string"){
+_141[_141.length]=this.config.formatblock[_142];
+}
+}
+var _143=this._getFirstAncestor(this.getSelection(),_141);
+if(_143){
+for(var x=0;x<_141.length;x++){
+if(_141[x].toLowerCase()==_143.tagName.toLowerCase()){
+btn.element.selectedIndex=x;
+}
+}
+}else{
+btn.element.selectedIndex=0;
+}
+break;
+case "textindicator":
+if(!text){
+try{
+var _145=btn.element.style;
+_145.backgroundColor=Xinha._makeColor(doc.queryCommandValue(Xinha.is_ie?"backcolor":"hilitecolor"));
+if(/transparent/i.test(_145.backgroundColor)){
+_145.backgroundColor=Xinha._makeColor(doc.queryCommandValue("backcolor"));
+}
+_145.color=Xinha._makeColor(doc.queryCommandValue("forecolor"));
+_145.fontFamily=doc.queryCommandValue("fontname");
+_145.fontWeight=doc.queryCommandState("bold")?"bold":"normal";
+_145.fontStyle=doc.queryCommandState("italic")?"italic":"normal";
+}
+catch(ex){
+}
+}
+break;
+case "htmlmode":
+btn.state("active",text);
+break;
+case "lefttoright":
+case "righttoleft":
+var _146=this.getParentElement();
+while(_146&&!Xinha.isBlockElement(_146)){
+_146=_146.parentNode;
+}
+if(_146){
+btn.state("active",(_146.style.direction==((cmd=="righttoleft")?"rtl":"ltr")));
+}
+break;
+default:
+cmd=cmd.replace(/(un)?orderedlist/i,"insert$1orderedlist");
+try{
+btn.state("active",(!text&&doc.queryCommandState(cmd)));
+}
+catch(ex){
+}
+break;
+}
+}
+if(this._customUndo&&!this._timerUndo){
+this._undoTakeSnapshot();
+var _147=this;
+this._timerUndo=setTimeout(function(){
+_147._timerUndo=null;
+},this.config.undoTimeout);
+}
+this.firePluginEvent("onUpdateToolbar");
+};
+Xinha.getEditor=function(ref){
+for(var i=__xinhas.length;i--;){
+var _14a=__xinhas[i];
+if(_14a&&(_14a._textArea.id==ref||_14a._textArea.name==ref||_14a._textArea==ref)){
+return _14a;
+}
+}
+return null;
+};
+Xinha.prototype.getPluginInstance=function(_14b){
+if(this.plugins[_14b]){
+return this.plugins[_14b].instance;
+}else{
+return null;
+}
+};
+Xinha.prototype.getAllAncestors=function(){
+var p=this.getParentElement();
+var a=[];
+while(p&&(p.nodeType==1)&&(p.tagName.toLowerCase()!="body")){
+a.push(p);
+p=p.parentNode;
+}
+a.push(this._doc.body);
+return a;
+};
+Xinha.prototype._getFirstAncestor=function(sel,_14f){
+var prnt=this.activeElement(sel);
+if(prnt===null){
+try{
+prnt=(Xinha.is_ie?this.createRange(sel).parentElement():this.createRange(sel).commonAncestorContainer);
+}
+catch(ex){
+return null;
+}
+}
+if(typeof _14f=="string"){
+_14f=[_14f];
+}
+while(prnt){
+if(prnt.nodeType==1){
+if(_14f===null){
+return prnt;
+}
+if(_14f.contains(prnt.tagName.toLowerCase())){
+return prnt;
+}
+if(prnt.tagName.toLowerCase()=="body"){
+break;
+}
+if(prnt.tagName.toLowerCase()=="table"){
+break;
+}
+}
+prnt=prnt.parentNode;
+}
+return null;
+};
+Xinha.prototype._getAncestorBlock=function(sel){
+var prnt=(Xinha.is_ie?this.createRange(sel).parentElement:this.createRange(sel).commonAncestorContainer);
+while(prnt&&(prnt.nodeType==1)){
+switch(prnt.tagName.toLowerCase()){
+case "div":
+case "p":
+case "address":
+case "blockquote":
+case "center":
+case "del":
+case "ins":
+case "pre":
+case "h1":
+case "h2":
+case "h3":
+case "h4":
+case "h5":
+case "h6":
+case "h7":
+return prnt;
+case "body":
+case "noframes":
+case "dd":
+case "li":
+case "th":
+case "td":
+case "noscript":
+return null;
+default:
+break;
+}
+}
+return null;
+};
+Xinha.prototype._createImplicitBlock=function(type){
+var sel=this.getSelection();
+if(Xinha.is_ie){
+sel.empty();
+}else{
+sel.collapseToStart();
+}
+var rng=this.createRange(sel);
+};
+Xinha.prototype.surroundHTML=function(_156,_157){
+var html=this.getSelectedHTML();
+this.insertHTML(_156+html+_157);
+};
+Xinha.prototype.hasSelectedText=function(){
+return this.getSelectedHTML()!=="";
+};
+Xinha.prototype._comboSelected=function(el,txt){
+this.focusEditor();
+var _15b=el.options[el.selectedIndex].value;
+switch(txt){
+case "fontname":
+case "fontsize":
+this.execCommand(txt,false,_15b);
+break;
+case "formatblock":
+if(!_15b){
+this.updateToolbar();
+break;
+}
+if(!Xinha.is_gecko||_15b!=="blockquote"){
+_15b="<"+_15b+">";
+}
+this.execCommand(txt,false,_15b);
+break;
+default:
+var _15c=this.config.customSelects[txt];
+if(typeof _15c!="undefined"){
+_15c.action(this);
+}else{
+alert("FIXME: combo box "+txt+" not implemented");
+}
+break;
+}
+};
+Xinha.prototype._colorSelector=function(_15d){
+var _15e=this;
+if(Xinha.is_gecko){
+try{
+_15e._doc.execCommand("useCSS",false,false);
+_15e._doc.execCommand("styleWithCSS",false,true);
+}
+catch(ex){
+}
+}
+var btn=_15e._toolbarObjects[_15d].element;
+var _160;
+if(_15d=="hilitecolor"){
+if(Xinha.is_ie){
+_15d="backcolor";
+_160=Xinha._colorToRgb(_15e._doc.queryCommandValue("backcolor"));
+}else{
+_160=Xinha._colorToRgb(_15e._doc.queryCommandValue("hilitecolor"));
+}
+}else{
+_160=Xinha._colorToRgb(_15e._doc.queryCommandValue("forecolor"));
+}
+var _161=function(_162){
+_15e._doc.execCommand(_15d,false,_162);
+};
+if(Xinha.is_ie){
+var _163=_15e.createRange(_15e.getSelection());
+_161=function(_164){
+_163.select();
+_15e._doc.execCommand(_15d,false,_164);
+};
+}
+var _165=new Xinha.colorPicker({cellsize:_15e.config.colorPickerCellSize,callback:_161,granularity:_15e.config.colorPickerGranularity,websafe:_15e.config.colorPickerWebSafe,savecolors:_15e.config.colorPickerSaveColors});
+_165.open(_15e.config.colorPickerPosition,btn,_160);
+};
+Xinha.prototype.execCommand=function(_166,UI,_168){
+var _169=this;
+this.focusEditor();
+_166=_166.toLowerCase();
+if(this.firePluginEvent("onExecCommand",_166,UI,_168)){
+this.updateToolbar();
+return false;
+}
+switch(_166){
+case "htmlmode":
+this.setMode();
+break;
+case "hilitecolor":
+case "forecolor":
+this._colorSelector(_166);
+break;
+case "createlink":
+this._createLink();
+break;
+case "undo":
+case "redo":
+if(this._customUndo){
+this[_166]();
+}else{
+this._doc.execCommand(_166,UI,_168);
+}
+break;
+case "inserttable":
+this._insertTable();
+break;
+case "insertimage":
+this._insertImage();
+break;
+case "about":
+this._popupDialog(_169.config.URIs.about,null,this);
+break;
+case "showhelp":
+this._popupDialog(_169.config.URIs.help,null,this);
+break;
+case "killword":
+this._wordClean();
+break;
+case "cut":
+case "copy":
+case "paste":
+this._doc.execCommand(_166,UI,_168);
+if(this.config.killWordOnPaste){
+this._wordClean();
+}
+break;
+case "lefttoright":
+case "righttoleft":
+if(this.config.changeJustifyWithDirection){
+this._doc.execCommand((_166=="righttoleft")?"justifyright":"justifyleft",UI,_168);
+}
+var dir=(_166=="righttoleft")?"rtl":"ltr";
+var el=this.getParentElement();
+while(el&&!Xinha.isBlockElement(el)){
+el=el.parentNode;
+}
+if(el){
+if(el.style.direction==dir){
+el.style.direction="";
+}else{
+el.style.direction=dir;
+}
+}
+break;
+case "justifyleft":
+case "justifyright":
+_166.match(/^justify(.*)$/);
+var ae=this.activeElement(this.getSelection());
+if(ae&&ae.tagName.toLowerCase()=="img"){
+ae.align=ae.align==RegExp.$1?"":RegExp.$1;
+}else{
+this._doc.execCommand(_166,UI,_168);
+}
+break;
+default:
+try{
+this._doc.execCommand(_166,UI,_168);
+}
+catch(ex){
+if(this.config.debug){
+alert(ex+"\n\nby execCommand("+_166+");");
+}
+}
+break;
+}
+this.updateToolbar();
+return false;
+};
+Xinha.prototype._editorEvent=function(ev){
+var _16e=this;
+if(typeof _16e._textArea["on"+ev.type]=="function"){
+_16e._textArea["on"+ev.type]();
+}
+if(this.isKeyEvent(ev)){
+if(_16e.firePluginEvent("onKeyPress",ev)){
+return false;
+}
+if(this.isShortCut(ev)){
+this._shortCuts(ev);
+}
+}
+if(ev.type=="mousedown"){
+if(_16e.firePluginEvent("onMouseDown",ev)){
+return false;
+}
+}
+if(_16e._timerToolbar){
+clearTimeout(_16e._timerToolbar);
+}
+_16e._timerToolbar=setTimeout(function(){
+_16e.updateToolbar();
+_16e._timerToolbar=null;
+},250);
+};
+Xinha.prototype._shortCuts=function(ev){
+var key=this.getKey(ev).toLowerCase();
+var cmd=null;
+var _172=null;
+switch(key){
+case "b":
+cmd="bold";
+break;
+case "i":
+cmd="italic";
+break;
+case "u":
+cmd="underline";
+break;
+case "s":
+cmd="strikethrough";
+break;
+case "l":
+cmd="justifyleft";
+break;
+case "e":
+cmd="justifycenter";
+break;
+case "r":
+cmd="justifyright";
+break;
+case "j":
+cmd="justifyfull";
+break;
+case "z":
+cmd="undo";
+break;
+case "y":
+cmd="redo";
+break;
+case "v":
+cmd="paste";
+break;
+case "n":
+cmd="formatblock";
+_172="p";
+break;
+case "0":
+cmd="killword";
+break;
+case "1":
+case "2":
+case "3":
+case "4":
+case "5":
+case "6":
+cmd="formatblock";
+_172="h"+key;
+break;
+}
+if(cmd){
+this.execCommand(cmd,false,_172);
+Xinha._stopEvent(ev);
+}
+};
+Xinha.prototype.convertNode=function(el,_174){
+var _175=this._doc.createElement(_174);
+while(el.firstChild){
+_175.appendChild(el.firstChild);
+}
+return _175;
+};
+Xinha.prototype.scrollToElement=function(e){
+if(!e){
+e=this.getParentElement();
+if(!e){
+return;
+}
+}
+var _177=Xinha.getElementTopLeft(e);
+this._iframe.contentWindow.scrollTo(_177.left,_177.top);
+};
+Xinha.prototype.getEditorContent=function(){
+return this.outwardHtml(this.getHTML());
+};
+Xinha.prototype.setEditorContent=function(html){
+this.setHTML(this.inwardHtml(html));
+};
+Xinha.prototype.getHTML=function(){
+var html="";
+switch(this._editMode){
+case "wysiwyg":
+if(!this.config.fullPage){
+html=Xinha.getHTML(this._doc.body,false,this).trim();
+}else{
+html=this.doctype+"\n"+Xinha.getHTML(this._doc.documentElement,true,this);
+}
+break;
+case "textmode":
+html=this._textArea.value;
+break;
+default:
+alert("Mode <"+this._editMode+"> not defined!");
+return false;
+}
+return html;
+};
+Xinha.prototype.outwardHtml=function(html){
+for(var i in this.plugins){
+var _17c=this.plugins[i].instance;
+if(_17c&&typeof _17c.outwardHtml=="function"){
+html=_17c.outwardHtml(html);
+}
+}
+html=html.replace(/<(\/?)b(\s|>|\/)/ig,"<$1strong$2");
+html=html.replace(/<(\/?)i(\s|>|\/)/ig,"<$1em$2");
+html=html.replace(/<(\/?)strike(\s|>|\/)/ig,"<$1del$2");
+html=html.replace(/(<[^>]*on(click|mouse(over|out|up|down))=['"])if\(window\.parent && window\.parent\.Xinha\)\{return false\}/gi,"$1");
+var _17d=location.href.replace(/(https?:\/\/[^\/]*)\/.*/,"$1")+"/";
+html=html.replace(/https?:\/\/null\//g,_17d);
+html=html.replace(/((href|src|background)=[\'\"])\/+/ig,"$1"+_17d);
+html=this.outwardSpecialReplacements(html);
+html=this.fixRelativeLinks(html);
+if(this.config.sevenBitClean){
+html=html.replace(/[^ -~\r\n\t]/g,function(c){
+return ""+c.charCodeAt(0)+";";
+});
+}
+html=html.replace(/(");
+var _1bd=_1bb.document.getElementById("__ie_onload");
+_1bd.onreadystatechange=function(){
+if(this.readyState=="loaded"){
+this.parentNode.removeChild(_1bd);
+init();
+}
+};
+}else{
+if(/applewebkit|KHTML/i.test(navigator.userAgent)){
+Xinha.onloadTimer=_1bb.setInterval(function(){
+if(/loaded|complete/.test(_1bb.document.readyState)){
+init();
+}
+},10);
+}else{
+_1bb.document.addEventListener("DOMContentLoaded",init,false);
+}
+}
+Xinha._addEvent(_1bb,"load",init);
+};
+Xinha.addDom0Event=function(el,ev,fn){
+Xinha._prepareForDom0Events(el,ev);
+el._xinha_dom0Events[ev].unshift(fn);
+};
+Xinha.prependDom0Event=function(el,ev,fn){
+Xinha._prepareForDom0Events(el,ev);
+el._xinha_dom0Events[ev].push(fn);
+};
+Xinha._prepareForDom0Events=function(el,ev){
+if(typeof el._xinha_dom0Events=="undefined"){
+el._xinha_dom0Events={};
+Xinha.freeLater(el,"_xinha_dom0Events");
+}
+if(typeof el._xinha_dom0Events[ev]=="undefined"){
+el._xinha_dom0Events[ev]=[];
+if(typeof el["on"+ev]=="function"){
+el._xinha_dom0Events[ev].push(el["on"+ev]);
+}
+el["on"+ev]=function(_1c6){
+var a=el._xinha_dom0Events[ev];
+var _1c8=true;
+for(var i=a.length;--i>=0;){
+el._xinha_tempEventHandler=a[i];
+if(el._xinha_tempEventHandler(_1c6)===false){
+el._xinha_tempEventHandler=null;
+_1c8=false;
+break;
+}
+el._xinha_tempEventHandler=null;
+}
+return _1c8;
+};
+Xinha._eventFlushers.push([el,ev]);
+}
+};
+Xinha.prototype.notifyOn=function(ev,fn){
+if(typeof this._notifyListeners[ev]=="undefined"){
+this._notifyListeners[ev]=[];
+Xinha.freeLater(this,"_notifyListeners");
+}
+this._notifyListeners[ev].push(fn);
+};
+Xinha.prototype.notifyOf=function(ev,args){
+if(this._notifyListeners[ev]){
+for(var i=0;i /ig,">");
+str=str.replace(/\xA0/g," ");
+str=str.replace(/\x22/g,""");
+return str;
+};
+Xinha.prototype.stripBaseURL=function(_1d3){
+if(this.config.baseHref===null||!this.config.stripBaseHref){
+return _1d3;
+}
+var _1d4=this.config.baseHref.replace(/^(https?:\/\/[^\/]+)(.*)$/,"$1");
+var _1d5=new RegExp(_1d4);
+return _1d3.replace(_1d5,"");
+};
+String.prototype.trim=function(){
+return this.replace(/^\s+/,"").replace(/\s+$/,"");
+};
+Xinha._makeColor=function(v){
+if(typeof v!="number"){
+return v;
+}
+var r=v&255;
+var g=(v>>8)&255;
+var b=(v>>16)&255;
+return "rgb("+r+","+g+","+b+")";
+};
+Xinha._colorToRgb=function(v){
+if(!v){
+return "";
+}
+var r,g,b;
+function hex(d){
+return (d<16)?("0"+d.toString(16)):d.toString(16);
+}
+if(typeof v=="number"){
+r=v&255;
+g=(v>>8)&255;
+b=(v>>16)&255;
+return "#"+hex(r)+hex(g)+hex(b);
+}
+if(v.substr(0,3)=="rgb"){
+var re=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/;
+if(v.match(re)){
+r=parseInt(RegExp.$1,10);
+g=parseInt(RegExp.$2,10);
+b=parseInt(RegExp.$3,10);
+return "#"+hex(r)+hex(g)+hex(b);
+}
+return null;
+}
+if(v.substr(0,1)=="#"){
+return v;
+}
+return null;
+};
+Xinha.prototype._popupDialog=function(url,_1df,init){
+Dialog(this.popupURL(url),_1df,init);
+};
+Xinha.prototype.imgURL=function(file,_1e2){
+if(typeof _1e2=="undefined"){
+return _editor_url+file;
+}else{
+return _editor_url+"plugins/"+_1e2+"/img/"+file;
+}
+};
+Xinha.prototype.popupURL=function(file){
+var url="";
+if(file.match(/^plugin:\/\/(.*?)\/(.*)/)){
+var _1e5=RegExp.$1;
+var _1e6=RegExp.$2;
+if(!(/\.(html?|php)$/.test(_1e6))){
+_1e6+=".html";
+}
+url=Xinha.getPluginDir(_1e5)+"/popups/"+_1e6;
+}else{
+if(file.match(/^\/.*?/)||file.match(/^https?:\/\//)){
+url=file;
+}else{
+url=_editor_url+this.config.popupURL+file;
+}
+}
+return url;
+};
+Xinha.getElementById=function(tag,id){
+var el,i,objs=document.getElementsByTagName(tag);
+for(i=objs.length;--i>=0&&(el=objs[i]);){
+if(el.id==id){
+return el;
+}
+}
+return null;
+};
+Xinha.prototype._toggleBorders=function(){
+var _1ea=this._doc.getElementsByTagName("TABLE");
+if(_1ea.length!==0){
+if(!this.borders){
+this.borders=true;
+}else{
+this.borders=false;
+}
+for(var i=0;i<_1ea.length;i++){
+if(this.borders){
+Xinha._addClass(_1ea[i],"htmtableborders");
+}else{
+Xinha._removeClass(_1ea[i],"htmtableborders");
+}
+}
+}
+return true;
+};
+Xinha.addCoreCSS=function(html){
+var _1ed="\n";
+if(html&&//i.test(html)){
+return html.replace(//i,""+_1ed);
+}else{
+if(html){
+return _1ed+html;
+}else{
+return _1ed;
+}
+}
+};
+Xinha.prototype.addEditorStylesheet=function(_1ee){
+var _1ef=this._doc.createElement("link");
+_1ef.rel="stylesheet";
+_1ef.type="text/css";
+_1ef.title="XinhaInternalCSS";
+_1ef.href=_1ee;
+this._doc.getElementsByTagName("HEAD")[0].appendChild(_1ef);
+};
+Xinha.stripCoreCSS=function(html){
+return html.replace(/
+
+
+
+
+Settings
+
+
+
diff --git a/ccm-cms/web/assets/xinha/examples/files/custom.css b/ccm-cms/web/assets/xinha/examples/files/custom.css
new file mode 100755
index 000000000..48cbfe760
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/examples/files/custom.css
@@ -0,0 +1,40 @@
+ /*--------------------------------------:noTabs=true:tabSize=2:indentSize=2:--
+ -- CSS plugin example CSS file. This file is used by full_example.js
+ -- when the CSS plugin is included in an auto-generated example.
+ -- @TODO Make this CSS more useful.
+ --
+ -- $HeadURL:http://svn.xinha.webfactional.com/trunk/examples/files/custom.css $
+ -- $LastChangedDate:2008-02-04 01:43:21 +0100 (Mo, 04 Feb 2008) $
+ -- $LastChangedRevision:962 $
+ -- $LastChangedBy:ray $
+ --------------------------------------------------------------------------*/
+
+body { background-color: #234; color: #dd8; font-family: tahoma; font-size: 12px; }
+
+a:link, a:visited { color: #8cf; }
+a:hover { color: #ff8; }
+
+h1 { background-color: #456; color: #ff8; padding: 2px 5px; border: 1px solid; border-color: #678 #012 #012 #678; }
+
+/* syntax highlighting (used by the first combo defined for the CSS plugin) */
+
+pre { margin: 0px 1em; padding: 5px 1em; background-color: #000; border: 1px dotted #02d; border-left: 2px solid #04f; }
+.code { color: #f5deb3; }
+.string { color: #00ffff; }
+.comment { color: #8fbc8f; }
+.variable-name { color: #fa8072; }
+.type { color: #90ee90; font-weight: bold; }
+.reference { color: #ee82ee; }
+.preprocessor { color: #faf; }
+.keyword { color: #ffffff; font-weight: bold; }
+.function-name { color: #ace; }
+.html-tag { font-weight: bold; }
+.html-helper-italic { font-style: italic; }
+.warning { color: #ffa500; font-weight: bold; }
+.html-helper-bold { font-weight: bold; }
+
+/* info combo */
+
+.quote { font-style: italic; color: #ee9; }
+.highlight { background-color: yellow; color: #000; }
+.deprecated { text-decoration: line-through; color: #aaa; }
diff --git a/ccm-cms/web/assets/xinha/examples/files/dynamic.css b/ccm-cms/web/assets/xinha/examples/files/dynamic.css
new file mode 100755
index 000000000..497de629b
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/examples/files/dynamic.css
@@ -0,0 +1,56 @@
+ /*--------------------------------------:noTabs=true:tabSize=2:indentSize=2:--
+ -- DynamicCSS plugin example CSS file. Used by full_example.js
+ -- when the DynamicCSS plugin is included in an auto-generated example.
+ -- @TODO Make this CSS more useful.
+ --
+ -- $HeadURL:http://svn.xinha.webfactional.com/trunk/examples/files/dynamic.css $
+ -- $LastChangedDate:2008-02-04 01:43:21 +0100 (Mo, 04 Feb 2008) $
+ -- $LastChangedRevision:962 $
+ -- $LastChangedBy:ray $
+ --------------------------------------------------------------------------*/
+
+p {
+ FONT-FAMILY: Arial, Helvetica;
+ FONT-SIZE: 9pt;
+ FONT-WEIGHT: normal;
+ COLOR: #000000;
+}
+
+p.p1 {
+ FONT-FAMILY: Arial, Helvetica;
+ FONT-SIZE: 11pt;
+ FONT-WEIGHT: normal;
+ COLOR: #000000;
+}
+
+p.p2 {
+ FONT-FAMILY: Arial, Helvetica;
+ FONT-SIZE: 13pt;
+ FONT-WEIGHT: normal;
+ COLOR: #000000;
+}
+
+div {
+ FONT-FAMILY: Arial, Helvetica;
+ FONT-SIZE: 9pt;
+ FONT-WEIGHT: bold;
+ COLOR: #000000;
+}
+
+div.div1 {
+ FONT-FAMILY: Arial, Helvetica;
+ FONT-SIZE: 11pt;
+ FONT-WEIGHT: bold;
+ COLOR: #000000;
+}
+
+div.div2 {
+ FONT-FAMILY: Arial, Helvetica;
+ FONT-SIZE: 13pt;
+ FONT-WEIGHT: bold;
+ COLOR: #000000;
+}
+
+.quote { font-style: italic; color: #ee9; }
+.highlight { background-color: yellow; color: #000; }
+.deprecated { text-decoration: line-through; color: #aaa; }
diff --git a/ccm-cms/web/assets/xinha/examples/files/ext_example-body.html b/ccm-cms/web/assets/xinha/examples/files/ext_example-body.html
new file mode 100755
index 000000000..796269874
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/examples/files/ext_example-body.html
@@ -0,0 +1,206 @@
+
+
+
+
+
+
+
+ Example of Xinha
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+
+
diff --git a/ccm-cms/web/assets/xinha/examples/files/ext_example-dest.php b/ccm-cms/web/assets/xinha/examples/files/ext_example-dest.php
new file mode 100755
index 000000000..cbc1eed30
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/examples/files/ext_example-dest.php
@@ -0,0 +1,23 @@
+
+
+
+ Example of Xinha
+
+
+
+$value){
+ if(substr($key,0,10) == 'myTextarea') {
+ echo ''.$key.'(source): '.$value.' ';
+ echo ''.$key.'(preview): '.$value;
+ }
+ }
+?>
+
+
diff --git a/ccm-cms/web/assets/xinha/examples/files/ext_example-menu.php b/ccm-cms/web/assets/xinha/examples/files/ext_example-menu.php
new file mode 100755
index 000000000..a1cab8d0a
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/examples/files/ext_example-menu.php
@@ -0,0 +1,357 @@
+
+
+
+
+
+
+
+ Example of Xinha
+
+
+
+
+
+
+
+ Xinha Example
+
+ Settings
+
+ Number of Editors:
+
+
+ Language:
+
+ English
+ German
+ French
+ Italian
+ Norwegian
+ Polish
+ Japanese
+
+
+
+ Skin:
+
+ -- no skin --
+read())) //not a dot file or directory
+ { if(substr($entry,0,1) != '.')
+ { echo ' ' . $entry . ' '."\n";
+ }
+ }
+ $d->close();
+?>
+
+
+
+
+
+
+ Plugins
+
+read())) //not a dot file or directory
+ { if(substr($entry,0,1) != '.')
+ { $dir_array[] = $entry;
+ }
+ }
+ $d->close();
+ sort($dir_array);
+ foreach ($dir_array as $entry)
+ { echo ' ' . $entry . ' '."\n";
+ }
+
+?>
+
+
+ reload editor
+
+
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+ Aliquam et tellus vitae justo varius placerat. Suspendisse iaculis
+ velit semper dolor. Donec gravida tincidunt mi. Curabitur tristique
+ ante elementum turpis. Aliquam nisl. Nulla posuere neque non
+ tellus. Morbi vel nibh. Cum sociis natoque penatibus et magnis dis
+ parturient montes, nascetur ridiculus mus. Nam nec wisi. In wisi.
+ Curabitur pharetra bibendum lectus.
+
+
+ Phasellus et massa sed diam viverra semper.
+ Mauris tincidunt felis in odio.
+ Nulla placerat nunc ut pede.
+ Vivamus ultrices mi sit amet urna.
+ Quisque sed augue quis nunc laoreet volutpat.
+ Nunc sit amet metus in tortor semper mattis.
+
+
+
+
+
+
+
+
diff --git a/ccm-cms/web/assets/xinha/examples/files/full_example.css b/ccm-cms/web/assets/xinha/examples/files/full_example.css
new file mode 100755
index 000000000..2c5d4d83e
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/examples/files/full_example.css
@@ -0,0 +1,48 @@
+ /*--------------------------------------:noTabs=true:tabSize=2:indentSize=2:--
+ -- Xinha example CSS file. This is ripped from Trac ;)
+ --
+ -- $HeadURL:http://svn.xinha.webfactional.com/trunk/examples/files/full_example.css $
+ -- $LastChangedDate:2008-02-04 01:43:21 +0100 (Mo, 04 Feb 2008) $
+ -- $LastChangedRevision:962 $
+ -- $LastChangedBy:ray $
+ --------------------------------------------------------------------------*/
+
+ body {
+ background: #fff;
+ color: #000;
+ margin: 10px;
+ }
+ body, th, td {
+ font: normal 13px verdana,arial,'Bitstream Vera Sans',helvetica,sans-serif;
+ }
+ h1, h2, h3, h4 {
+ font-family: arial,verdana,'Bitstream Vera Sans',helvetica,sans-serif;
+ font-weight: bold;
+ letter-spacing: -0.018em;
+ }
+ h1 { font-size: 21px; margin: .15em 1em 0 0 }
+ h2 { font-size: 16px; margin: 2em 0 .5em; }
+ h3 { font-size: 14px; margin: 1.5em 0 .5em; }
+ hr { border: none; border-top: 1px solid #ccb; margin: 2em 0; }
+ address { font-style: normal }
+ img { border: none }
+
+ :link, :visited {
+ text-decoration: none;
+ color: #b00;
+ border-bottom: 1px dotted #bbb;
+ }
+ :link:hover, :visited:hover {
+ background-color: #eee;
+ color: #555;
+ }
+ h1 :link, h1 :visited ,h2 :link, h2 :visited, h3 :link, h3 :visited,
+ h4 :link, h4 :visited, h5 :link, h5 :visited, h6 :link, h6 :visited {
+ color: inherit;
+ }
+
+ .area_holder
+ {
+ margin:10px;
+ }
+ label {font-size: 11px;}
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/examples/files/stylist.css b/ccm-cms/web/assets/xinha/examples/files/stylist.css
new file mode 100755
index 000000000..d1a98bc5a
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/examples/files/stylist.css
@@ -0,0 +1,31 @@
+ /*--------------------------------------:noTabs=true:tabSize=2:indentSize=2:--
+ -- Stylist plugin example CSS file. Used by full_example.js
+ -- when the Stylist plugin is included in an auto-generated example.
+ --
+ -- $HeadURL:http://svn.xinha.webfactional.com/trunk/examples/files/stylist.css $
+ -- $LastChangedDate:2008-02-04 01:43:21 +0100 (Mo, 04 Feb 2008) $
+ -- $LastChangedRevision:962 $
+ -- $LastChangedBy:ray $
+ --------------------------------------------------------------------------*/
+
+.bluetext
+{
+ color:blue;
+}
+
+p.blue_paragraph
+{
+ color:darkblue;
+}
+
+li.green_list_item
+{
+ color:green;
+}
+
+h1.webdings_lvl_1
+{
+ font-family:webdings;
+}
+
+img.polaroid { border:1px solid black; background-color:white; padding:10px; padding-bottom:30px; }
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/examples/simple_example.html b/ccm-cms/web/assets/xinha/examples/simple_example.html
new file mode 100755
index 000000000..7c7ec7eb6
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/examples/simple_example.html
@@ -0,0 +1,54 @@
+
+
+
+
+Simple example of Xinha
+
+
+
+
+
+
+
+
+
+
+
+<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+Aliquam et tellus vitae justo varius placerat. Suspendisse iaculis
+velit semper dolor. Donec gravida tincidunt mi. Curabitur tristique
+ante elementum turpis. Aliquam nisl. Nulla posuere neque non
+tellus. Morbi vel nibh. Cum sociis natoque penatibus et magnis dis
+parturient montes, nascetur ridiculus mus. Nam nec wisi. In wisi.
+Curabitur pharetra bibendum lectus.</p>
+
+
+
+
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/examples/testbed.html b/ccm-cms/web/assets/xinha/examples/testbed.html
new file mode 100755
index 000000000..6e19894e0
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/examples/testbed.html
@@ -0,0 +1,195 @@
+
+
+
+
+
+
+
+
+ Example of Xinha
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <html>
+ <head>
+ <title>Hello</title>
+ <style type="text/css">
+ li { color:red; }
+ </style>
+ </head>
+ <body><span style="color:purple">
+ <img src="../images/xinha_logo.gif" usemap="#m1">
+ <map name="m1">
+ <area shape="rect" coords="137,101,255,124" href="http://www.mydomain.com">
+ </map>
+
+ <p>
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+ Aliquam et tellus vitae justo varius placerat. Suspendisse iaculis
+ velit semper dolor. Donec gravida tincidunt mi. Curabitur tristique
+ ante elementum turpis. <span style="color:green">Aliquam </span> nisl. Nulla posuere neque non
+ tellus. Morbi vel nibh. <font face="Arial"><font color="#009933">Cum sociis natoque</font></font> penatibus et magnis dis
+ parturient montes, nascetur ridiculus mus. Nam nec wisi. In wisi.
+ Curabitur pharetra bibendum lectus.
+ </p>
+
+ <ul>
+ <li style="color:green"> Phasellus et massa sed diam viverra semper. </li>
+ <li> Mauris tincidunt felis in odio. </li>
+ <li> Nulla placerat nunc ut pede. </li>
+ <li> Vivamus ultrices mi sit amet urna. </li>
+ <li> Quisque sed augue quis nunc laoreet volutpat.</li>
+ <li> Nunc sit amet metus in tortor semper mattis. </li>
+ </ul>
+ </span></body>
+ </html>
+
+
+
+
+
+
+
+
+
+
diff --git a/ccm-cms/web/assets/xinha/htmlarea.js b/ccm-cms/web/assets/xinha/htmlarea.js
new file mode 100644
index 000000000..c08a9fe24
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/htmlarea.js
@@ -0,0 +1,11 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/htmlarea.js */
+if(typeof _editor_url=="string"){
+_editor_url=_editor_url.replace(/\x2f*$/,"/");
+}else{
+alert("WARNING: _editor_url is not set! You should set this variable to the editor files path; it should preferably be an absolute path, like in '/htmlarea/', but it can be relative if you prefer. Further we will try to load the editor files correctly but we'll probably fail.");
+_editor_url="";
+}
+document.write("");
+
diff --git a/ccm-cms/web/assets/xinha/images/de/bold.gif b/ccm-cms/web/assets/xinha/images/de/bold.gif
new file mode 100755
index 0000000000000000000000000000000000000000..21d286fc435846c595e069eee75ea12d8d5e5e8d
GIT binary patch
literal 57
zcmZ?wbhEHb6k-r!=wM{{|Np<2ub1La7DfgJ1_m8g1{MYm22KVBCV`&(f&&XrN|o??
Nb|uE#-o(UU4FI7n4>te+
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/de/italic.gif b/ccm-cms/web/assets/xinha/images/de/italic.gif
new file mode 100755
index 0000000000000000000000000000000000000000..0bf794722ee66fdcaf7a4db33d892aa17ff059f1
GIT binary patch
literal 63
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
S=ahz^nUV>5o{1De0027!Nn`y0
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_align_center.gif b/ccm-cms/web/assets/xinha/images/ed_align_center.gif
new file mode 100755
index 0000000000000000000000000000000000000000..75845b7a3d9330ce2a01ec273c5e00f786787c1f
GIT binary patch
literal 61
zcmZ?wbhEHb6k-r!=wM{{|NlP&1B2pE7DfgJ1_m7_24)6625trhCXt?gj?-@^T$-(O
R%i*PIW!_E8`#}s0)&SD&5pw_l
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_align_justify.gif b/ccm-cms/web/assets/xinha/images/ed_align_justify.gif
new file mode 100755
index 0000000000000000000000000000000000000000..568c5953050baa69f102176ff3af9f85062dbdaf
GIT binary patch
literal 60
zcmZ?wbhEHb6k-r!=wM{{|NlP&1B2pE7DfgJ1_m7_24)6625trhCgGlbj?;HJ`)BL8
QdFdVrR)1IF!N_0@0H&x8-~a#s
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_align_left.gif b/ccm-cms/web/assets/xinha/images/ed_align_left.gif
new file mode 100755
index 0000000000000000000000000000000000000000..8320a2af4b004e22d882045aa6d2035cdc505da6
GIT binary patch
literal 60
zcmZ?wbhEHb6k-r!=wM{{|NlP&1B2pE7DfgJ1_m7_24)6625trhCgGlbj?;H%&Y82J
Q&GYTi825h}zKjgk0K)eXFaQ7m
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_align_right.gif b/ccm-cms/web/assets/xinha/images/ed_align_right.gif
new file mode 100755
index 0000000000000000000000000000000000000000..bc6f651f7164d502e48a7ef5c3b7b92c09967fa0
GIT binary patch
literal 61
zcmZ?wbhEHb6k-r!=wM{{|NlP&1B2pE7DfgJ1_m7_24)6625trhCXt?gj?-`FT$-(L
R%b|F0g!8%z{s;yJYXHq75Q6{!
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_blank.gif b/ccm-cms/web/assets/xinha/images/ed_blank.gif
new file mode 100755
index 0000000000000000000000000000000000000000..1ea396b81d150892e1c3b0238ca5a95ce873fd15
GIT binary patch
literal 56
zcmZ?wbhEHb6k-r!XkcLY|NlP&1B2pE7DfgJ1_m7v0g_>0;&16+dHOB?;yGJxb#J~m
IN1VYL0D}GyBme*a
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_buttons_main.gif b/ccm-cms/web/assets/xinha/images/ed_buttons_main.gif
new file mode 100755
index 0000000000000000000000000000000000000000..bc1962ba1f41ffc0530bf84f6b021f914a947689
GIT binary patch
literal 6629
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
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_charmap.gif b/ccm-cms/web/assets/xinha/images/ed_charmap.gif
new file mode 100755
index 0000000000000000000000000000000000000000..289aa7cda5538e524dd863bb5aba124e30e52409
GIT binary patch
literal 134
zcmZ?wbhEHb6k-r!SjEop|NsAnhK2(N4*dWBp8*8^H!w8(XJAnL$-)TY>M$}eG6*p6
zF)%QDbLjDdkEyr+L9$6Nl`
zt}l`WS$k(>D{#zx;+kYJiLrE1>UKLNi~Sq!EYO_Nxbq(uC!bZUSB4?Sbmiot)*Ov=
mHKnbOj|fh_IY-O$@X4y<8Y)*d*BZStee4{0;&~$zgEaugoiD!t
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_color_bg.gif b/ccm-cms/web/assets/xinha/images/ed_color_bg.gif
new file mode 100755
index 0000000000000000000000000000000000000000..899f133fcf36718ce29ef49e366dbf9c3d75e873
GIT binary patch
literal 172
zcmZ?wbhEHb6k-r!*v-xG|NsB$>S_iChL)C={~*A?!0`V+!+($jNR)vAB#8iuKUo+-
zJRL>`Mg{=}eg+1XNC6LpBYS29%`UuqH&yV^fl_5omaCdeLkvzh#vZ;h;SJ-X%`AtO
zZ1Lu)>1c2Znr)fceEpP(Mg%+eQKz3tYuB_kgdLpfH}{3#fdhOp_nw|^$d%Z`|Izca
JWj6zZH2^u1K|TNg
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_color_fg.gif b/ccm-cms/web/assets/xinha/images/ed_color_fg.gif
new file mode 100755
index 0000000000000000000000000000000000000000..292ab8775fea244f6e21247bcac49caeb4ca2727
GIT binary patch
literal 164
zcmZ?wbhEHb6k-r!*v-Z8|NsB$>S_iChL)C=|Nj{n7(m2-5d6>3!oUEMK>>OS5a)(42iy1qoAKYPJAb-J2zfg{m!5RR}7BX@G
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_copy.gif b/ccm-cms/web/assets/xinha/images/ed_copy.gif
new file mode 100755
index 0000000000000000000000000000000000000000..0e440eb43eedcfcb3406cd5ddd2fc604c0781375
GIT binary patch
literal 97
zcmZ?wbhEHb6k-r!n90oW9}E~kph58`3nPf3!^FVEz|X+Tz`$fQg@2{i!^CS@>p5qx
uk=?WTIgi40$Mzo`%nnP_F7VE3Y$}kRb-eaMS%=_PDQ(YOk)ESm4AubS8zG+n
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_custom.gif b/ccm-cms/web/assets/xinha/images/ed_custom.gif
new file mode 100755
index 0000000000000000000000000000000000000000..1444030ff711280446d70707b90ef7484a2bb734
GIT binary patch
literal 50
zcmZ?wbhEHb6k-r!=wM{{|NlP&1B2pE7DfgJ1_m8=237_Z22KVBCQg^6<<*@3l8RXw
FtN|E_3Z?)6
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_cut.gif b/ccm-cms/web/assets/xinha/images/ed_cut.gif
new file mode 100755
index 0000000000000000000000000000000000000000..23fbf80119ee8ec704159701936e398db1a8ba52
GIT binary patch
literal 78
zcmZ?wbhEHb6k-r!n90QO|Nnmmh6V;OQ2fcl2x924GB7c4GVn1lFv+u|OwXEePD*IQ
dQTOYY)jAF|9=tJ8!C{eBRaffwO)-oN)&S-l7QX-h
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_delete.gif b/ccm-cms/web/assets/xinha/images/ed_delete.gif
new file mode 100755
index 0000000000000000000000000000000000000000..aff568e32264977584c0123440a2dec8b4aa1509
GIT binary patch
literal 80
zcmZ?wbhEHb6k-r!n90QO|Nnmm1}LfclZBCifq_AXnSq&skAatgfl1MaWo2g4UWO_B
g8--VInfR(Mae;YifMn6rXw!k#h)yU3=9kmIxGw<44e#{3=B*nErK)C
XEqRVKc{)fca7{~$HS8)9VXy`ONoo+9
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_format_strike.gif b/ccm-cms/web/assets/xinha/images/ed_format_strike.gif
new file mode 100755
index 0000000000000000000000000000000000000000..a5b14295020e799d3c16603e5bab36dc7fa19cd5
GIT binary patch
literal 66
zcmZ?wbhEHb6k-r!=wM{{|NlP&1B2pE7DfgJ1_m8w24)5x25trhCdn2-$%<*;qe^(s
WhK7dC3Gep2;LHV>o#
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_format_sup.gif b/ccm-cms/web/assets/xinha/images/ed_format_sup.gif
new file mode 100755
index 0000000000000000000000000000000000000000..4ecb9a16c9297d2d517a5e46f3ef0d0ac8846d23
GIT binary patch
literal 67
zcmZ?wbhEHb6k-r!n90QO|Nnmm28IR(5K#Qd!U&>uSQwZXxEQz?7??y__?1rF+!i-Q
TizRvH+1}TG6R!s{FjxZs{tgk2
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_format_underline.gif b/ccm-cms/web/assets/xinha/images/ed_format_underline.gif
new file mode 100755
index 0000000000000000000000000000000000000000..4bc47a17255670cf344f0bb5c61272fe4be48bc8
GIT binary patch
literal 69
zcmZ?wbhEHb6k-r!n90QO|Nnmm28QbDY6b=d#h)yU3=9kmI;;#V44e$y3=B+SJ+Z^fq{WRhlzoSfscWY
zfq~gcW8D=EFUUBJM`A*0g38nL2};R5SiiH?UenLa0-$+y|gJ;(Rrp@(97
b?{7@hW|(t9ohN8T)Oxe7uuU(kgc+;>$O|kI
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_indent_less.gif b/ccm-cms/web/assets/xinha/images/ed_indent_less.gif
new file mode 100755
index 0000000000000000000000000000000000000000..7dda02a9fa084c75ce7cc05109c3acdfea761d46
GIT binary patch
literal 84
zcmZ?wbhEHb6k-r!n90QO|Nnmm5NKgwU{L(Y!U$sPFfuSQ2r%$7FfggM@Hd|BWelBj
kAyPrE*J8db=b{S9C+@oQHcq`hrJ-y00ny&gevAy(08uU&2><{9
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_indent_more.gif b/ccm-cms/web/assets/xinha/images/ed_indent_more.gif
new file mode 100755
index 0000000000000000000000000000000000000000..c34b47e3d5c4f11bed404684e4bb2c70989089df
GIT binary patch
literal 84
zcmZ?wbhEHb6k-r!n90QO|Nnmm5NKgwU{L(Y!U$sPFfuSQ2r%$7FfggM@Hd|BWelBj
kAyPrE*DYnU>%9uudmDA-J*Hlt($cm2fM{>CA0vY`0A1=BJ^%m!
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_killword.gif b/ccm-cms/web/assets/xinha/images/ed_killword.gif
new file mode 100755
index 0000000000000000000000000000000000000000..fd934a784d34e3c7dff6f42890f82a656e3b25ae
GIT binary patch
literal 151
zcmZ?wbhEHb6k-r!SjEQh9}E~682-OF%fRq|)v8s#zP|q%7!-f9Fmf?4GUzZeFfs@*
z2rw`($4EroS!W>PpsnjBxY1f%d_rTGYk*r;#TtV>2NG%+*h{Vm+B7mN|I#3(e5CLgtIzvAAWcn%sb0czQy~8u*3gRwF+8EY20qY&_uTS=7N)U#BqS=uj%uoNWOBJGginiU0rr
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_list_bullet.gif b/ccm-cms/web/assets/xinha/images/ed_list_bullet.gif
new file mode 100755
index 0000000000000000000000000000000000000000..e37e84b52c5ad566990cd166bbaddf3ddae4d196
GIT binary patch
literal 72
zcmZ?wbhEHb6k-r!n90QO|Nnmm5NKgwU{L(Y!U$sPFflMO@Gib0G-1W5&!@I
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_overwrite.gif b/ccm-cms/web/assets/xinha/images/ed_overwrite.gif
new file mode 100755
index 0000000000000000000000000000000000000000..e7a8914d8d502ddf545c4f3a25de569c6f036289
GIT binary patch
literal 100
zcmZ?wbhEHb6k-r!n90EK|Nnmm28QbDY6b=d#h)yU3=9kmIv@fh@4#frQ&X@)m-lLS
z->L%zPHo=5W0kHas+u-V-L=UdrX4?mW|~Aj|XTl3A3jox&IytO2(k
BA&LM1
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_paste.gif b/ccm-cms/web/assets/xinha/images/ed_paste.gif
new file mode 100755
index 0000000000000000000000000000000000000000..81b53a033c2b9a2aee4d2ab1e738e1aa58f5e74d
GIT binary patch
literal 126
zcmZ?wbhEHb6k-r!SjEQh|Nnmm5NP=S|9=ArFhB$pf3h%w#B~@Mm>2{Y_!t+|Ns90000C6ga7~lA^8LW00000ECT=p01E&L0006U
h1cG6kw9(x;snr)85O67%P1=I2o(~
Dp9LYB
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_save.gif b/ccm-cms/web/assets/xinha/images/ed_save.gif
new file mode 100755
index 0000000000000000000000000000000000000000..82262d03b6d2aa86eaefd2e088cadd8e23b863d6
GIT binary patch
literal 128
zcmZ?wbhEHb6k-r!SjEcl|Nnmm1`yfMz|hdpaOch)1~5?k$-)R?=rA!bG4M0+GcYi_
zO6=OhkjUb=nqz`P=4&NalhWxdT`7`tWHdJg3D10(aNolAbXT4>%hAW7#%m2`hYD)=
aG&R|YVY$u4aHhh7>s{PqGpz_UV*3HmP6+mnkX$u65&n
zi_v1KSl1ExS|j2#T7moh5nZ7yt$XQ+zlEyvmT8wg|J5oaU}l}v?|Dk-SMrdfjL`69
zv#F4ZwGEgSBKe67(}W-uNChMVz)+BkecwYWuy%|{M{L`cbMR(eSGX@`y?IpsPZsyZ
gy3g;voOk32Pp!sk?4;WN{r~^~07*qoM6N<$g5pnSV*mgE
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_saveas.gif b/ccm-cms/web/assets/xinha/images/ed_saveas.gif
new file mode 100755
index 0000000000000000000000000000000000000000..4edd9882856879891fddac0dfcdff07fde48213f
GIT binary patch
literal 104
zcmV-u0GIzqNk%w1VG;lm0GR*)|Ns90004x90DF4?A^8LW00000ECB!k01p5U06+pc
zgb}Hm5@*5)&as;&)d|^mVAup98PyDept6->ie>1O4~W`c1BSa*gP_v*
K=N2>+0028cBq2`#
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_selectall.gif b/ccm-cms/web/assets/xinha/images/ed_selectall.gif
new file mode 100755
index 0000000000000000000000000000000000000000..9acf0a038973ccaa3715ae0015960d1c2a35d5dd
GIT binary patch
literal 150
zcmZ?wbhEHb6k-r!Sj7MWX=!Qy|NlR8<_yDs5CDrYDE?$&WME)r&;fCU7z7y{n4>v%
z-HCGOap>4!(W2;}5v9>5r4o3fG;@x)=Az}gu^*V6?H*XZohKTa7ToQ_(iAx9hqKlE
v3u+}@e-1hs&0bXDq!oGRtnG6gJia%KxK^z@M237_E23`gRCe5Dy%tLSY
r%}ZfpX~;jeE$ehGN5#}9jCon<>y)yN<;=cT(2>49MyoD}fx#L86Wtr3
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_splitblock.gif b/ccm-cms/web/assets/xinha/images/ed_splitblock.gif
new file mode 100755
index 0000000000000000000000000000000000000000..1f1582b9fce824da228b9eec72415916ff4b16d8
GIT binary patch
literal 82
zcmZ?wbhEHb6k-r!n8^SI|NsAIU|>-E$-)Q{&|zX=V&G-qV{l+nZt2rJ@K$aL&%|5W
g8T%~uoOcOY)Z1~a^yRC{hTCmA+t<#n6l1Uk06VT40RR91
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_splitcel.gif b/ccm-cms/web/assets/xinha/images/ed_splitcel.gif
new file mode 100755
index 0000000000000000000000000000000000000000..a6e5ab582b3ae4caecf8c810c67dcf23e0fc2611
GIT binary patch
literal 111
zcmZ?wbhEHb6lV})SjEEd|Nnmm1_;@}0A@pg;!hSv5KD)Vft5jkftP`S*+gR39WA8;
zn(1q%-g^D3iBVCY*<+T!3D@CUU6}@FN^DK?_>$8sf3?iWm3S@bZYZ1mG*gX%!5RP<
CMk3At
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_undo.gif b/ccm-cms/web/assets/xinha/images/ed_undo.gif
new file mode 100755
index 0000000000000000000000000000000000000000..319242fde2107c8fce1ccb6c29f19c9353c47c57
GIT binary patch
literal 67
zcmZ?wbhEHb6k-r!n90QO|NnmmhK7cQ1_lNO#h)yU3=9kmIxGyV3_J|%3=B*nE%K5~
XjeRaz%e5lT9xZ!5HB=~ofx#L8ET0hk
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/ed_word_cleaner.gif b/ccm-cms/web/assets/xinha/images/ed_word_cleaner.gif
new file mode 100755
index 0000000000000000000000000000000000000000..d9b0759c30483152298a9d05d3d441a366836eba
GIT binary patch
literal 652
zcmW;3TS!v@90%av+5YA+-E=x#$+Vd|5`}fsX+{?_tuRwkl4HVLinbW@sF|qgbUKgs
zOQsu&w^<|>mD65qQ6LfFgWw`CtWknUA%;)&vY_wFyquAoQmlX+JB{%Er&g=YX0z7|
zwfX^3A<+O)7f}^a9Z@sU1k37yI-*XF`$UvaRK{@*BE3rW2rvO=x7$mk^msgTbH77E
z?gLH05K%3|DAw0yg0LV68-M`Z=D1p5S`fYvRcbU1v$NZPv8ibgC^i^&8743@vqmBb
zH5#81nSs33)%RL$rOUOW)i!Kxxq)GzQlYq&n79%bS1*^}kw_v{+w+c(dyU3#I$aOY0n{WV&8)4h0X=19p4iyKy}d5LYO{3%B`m81WGwqwCL023
zfpUo?oXF1eZl3>4lnZcDX#~$N3BnMOjpv86v!4MLq9&qoL2wXN0G$jYA(|>JeZ})5
zN@X+0H53&+kBqFIo9i1K9CEpq42G$i8fR72fKK;As~rOn^@kV$NMOJq6v2S+wizv!
z);5bsWbJGd`S^5nwF~G`^bNF#n9+wLHc`5Glo5|hSpR(i^8LOhRTM+hW0t_skf7@G
zMaOezXnuj|H`FEoQnunW^2!+G~PJ2urhzG9~IJw)a00(@dwYXzx%pcemC}1
zSYguHf_u|H+YZ%Vzp9a*{#$O3F3ot8=DYcVkG5V3kI%`Y17gd@B&*ADADM4%Yd@MV
zvK2T#1Wbfw)os4?d~dZPBOt+Wf-cx&E~R(Bb#Ajg7yW)Mr#MRd?3y%H){|Xb?l8r@
TPEVdRi^O98ppyl17ODRL?Q_!T0d7o@93)C+iYUhlrLS
Y$w^re&JP*e`cwlXB)M2yRG1j70e|fyjsO4v
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/fr/strikethrough.gif b/ccm-cms/web/assets/xinha/images/fr/strikethrough.gif
new file mode 100755
index 0000000000000000000000000000000000000000..5707aefca484ab93127d0502d7776a76f050ca12
GIT binary patch
literal 131
zcmV-}0DS*PNk%w1VG;lm0J{$W|Ns90001W^C%pgwdwYBTLP9+~J@D}GtE;Qm*VkBB
zSY~Es2L}h&8X6D~5ZxdkA^8LW00000ECT=p01E&K000Cq5G+BdK_DL!TtY#BWkeuk
lLO^6dc>>`96vZ>#cSDnAru4j5BE(t%e+*P;88FBq06WIMDGdMs
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/fr/underline.gif b/ccm-cms/web/assets/xinha/images/fr/underline.gif
new file mode 100755
index 0000000000000000000000000000000000000000..4ecaf22126f2e855ded3b733284b0d875a473821
GIT binary patch
literal 134
zcmZ?wbhEHb6k-r!*v-rE|Nnmm28Qd`uOB>kP(VOHU0vPQ*0#F3`oo70X=!PzSFdJg
zXP-H9W<*2;0~jd&WMKp`bXXWz7`PaC7#LWL1sX&SS+SiIJIB`)QkldN5@wVkWFRv2
iR2xr>WU4nys|1gbvx8#N8zz>d?2|d$0s=x<7_0$7eJCCP
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/fullscreen_maximize.gif b/ccm-cms/web/assets/xinha/images/fullscreen_maximize.gif
new file mode 100755
index 0000000000000000000000000000000000000000..211c1c56ef40ad34090a33873e4e8f01147055ba
GIT binary patch
literal 87
zcmV-d0I2^*Nk%w1VG;lm0Ehtq|Ns90001HR1OWg5001lj0096H01yBG0xpCRshfum
t-wB8{TX8egtvY$%CS@SmDIA5GD>#v7=SG`qjWXxK5M7D{a|}lT06X(m8SVf8
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/fullscreen_minimize.gif b/ccm-cms/web/assets/xinha/images/fullscreen_minimize.gif
new file mode 100755
index 0000000000000000000000000000000000000000..f679e5a937350bcbc0c7f77549c6cabd499ca261
GIT binary patch
literal 87
zcmV-d0I2^*Nk%w1VG;lm0Ehtq|Ns90001HR1OWg5001lj0096H01yBG0xpCfse9NR
t9*8h5hSH?YD9?Eyr)kp`mZX_&qoktfHK)-0*w?4;)-CCbd@Mi#06SI`ADsXI
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/insert_table.gif b/ccm-cms/web/assets/xinha/images/insert_table.gif
new file mode 100755
index 0000000000000000000000000000000000000000..a8f4253bc664924758379b97073d0088463cd402
GIT binary patch
literal 104
zcmZ?wbhEHb6k-r!SjEEd|Ns9pXU_cp|DS<@fx&nthy(-0pDc_Zh7KbG6N3N)F9QR!
zuEnl9UIt!2m$iDa94vnx^(^y&gofj)b*m%x&Ha7$;emUrd@eoT@Lx^j-7^g%AqHyz
D)ukqV
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/insertfilelink.gif b/ccm-cms/web/assets/xinha/images/insertfilelink.gif
new file mode 100755
index 0000000000000000000000000000000000000000..099f04d9cc981c3cff3577cc5253f62f01c14d32
GIT binary patch
literal 148
zcmV;F0Biq8Nk%w1VG;lm0ICN7|Ns971_%8K3*6n=6fU%6mvCejDDef|
z;PtWr0vW?V=SmtU1;XLLy!aLbsh}`5J(VQtN&qo7*GOWI1OPh}
C&^P-4
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/insertmacro.png b/ccm-cms/web/assets/xinha/images/insertmacro.png
new file mode 100755
index 0000000000000000000000000000000000000000..3c874be5404a01ace3af766211b22a683d7d2554
GIT binary patch
literal 638
zcmV-^0)hRBP)i-TIFv5MK`50txY&S-0Ywt+BBDrQuemdAS{g9cm|S~j9c+$9Q(S!D
z`zV8lEB2i2Efkr^fa<8qbLfxuG45V&~=?!twu7LL=;7JV`IbN^?J8@
zdwZX0nl=k8+M75o&h-sP_hGA7xQ&Us@d&sT;mo!aF+L{BVY2tJ`twop1g(OLq
zNoQv#s;aWKw#LA~0P%R-28>$-rBVq|6p>{ahr>a=UPn^od;}f8I0e!%-a`F5c~m5V;cay
zQRm(3=OnJ(WPX00Xf*m4nO#{bQ~mn=H@2}&ZL``!aAfE-iNwrk~fH(O#lD@07*qoM6N<$f~;d5Bme*a
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/tidy.gif b/ccm-cms/web/assets/xinha/images/tidy.gif
new file mode 100755
index 0000000000000000000000000000000000000000..a881c640a665683fc6ee1902c3ee1a8b919eae24
GIT binary patch
literal 375
zcmZ?wbh9u|6k-r!xO
z_u934@3W`u!mMo^vdyW$U%)?*)RUoV)itdCFeP;-xK1j~%=AoI$gC?Xi1K#cStm
zy|(w-bAhNS#dG#1_w3z!?w&-{l%BQc46~P7W-sONn!@1J64kPmfl5FJWDdwL3~X}_
zG!%H~2r-^mQp71>G~e@~$^?@D#^$Cl>jJe&Jd8yR3Nu(^U%i|pBEi7rp|Yu92_v`n
zZ`}w5Taj{R(Q1Y=1|Ak>-*5>f2L3$WZZWR-9uE~x0VZB44sQ;2KL%k=jwBu-Zx+cV
z49ZOM9s=AVxr@Uma7lVdi%Re^uygJ7R8aL46zAhm6p}sW$?wg^s>UKSBfx+C9WS?s
IZjKDr0AD|CumAu6
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/toggle_borders.gif b/ccm-cms/web/assets/xinha/images/toggle_borders.gif
new file mode 100755
index 0000000000000000000000000000000000000000..95bc5be812cbd79f0ca5e29346a1ff15fb0f3125
GIT binary patch
literal 73
zcmV-P0Ji@}Nk%w1VG;lm0Ehwr|NsBY%*-MA1OWg5001lk00ICG01f~E0w9c!2^;Hf
f;Cqoxm@<+VRNr}x)qUe-Y6pj&=VXSeRsaAyLpm7#
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/images/xinha_logo.gif b/ccm-cms/web/assets/xinha/images/xinha_logo.gif
new file mode 100755
index 0000000000000000000000000000000000000000..346e313a44e14f64f6c8db2867c00c3f16a1f632
GIT binary patch
literal 3006
zcmV;v3qkZpNk%w1VaotA0PcSP|Ns9000960|M40C=^6m~`S|?%`r{e^-{0T)8UXb4
z^!NAo+8O})`1a}P={q|+{{H>%@9)9DzxEmc{QUd<{r&s;`Tzg@)YQ}@BqaR*|NZ^^
zTwGlK{{G+H+)`3f|Ns6+M@J404*mT6`1kex{rtPTyUoqbadC0&8UXXEp#T5;g@uLk
z5CHi9|Nj2`F)=Y38XCz80K69i{QLW8XlVHM^#A_+)CmBgp`pYX1-1?Vs0IM<+}P1u
zQ2PJ>oSdBEn2`4G?BS}S)0dC<`1tYh@%#Ds=H})8|Np6}sr>!>v$L~%dwc)>`}+F&
zi;Ii3C>ZSA*QOQ>|Nj2l+uP#e;=f!{;3yc~t)&s$in^p`;rU?@4vYJ{{QE~yUcuWA^8LW00000ECB!j
z0K)(<000O7fE741ejEqG^T>z4kl$Dm3n3$jQo{MsxyBE72Fz7tz+&)YBl_+XCL)
z+}YJD;@Qz4D;Ue`?CrD>U+L7##6Kfb%GBnm8XI#&6(~at=pILjxZ%
zSn})7FQ$M0AsRffMFrJ)bHpE0M4{k<3{F8rTos5%9z^D$ryhG5ya!)SAQbSK1sbS;
z!yGNNpvH+OwxMDhIOqT%NYfQ4#1%a3u)_>C=E%bpXHX|VR^xpY0(&)FcwUC^O~Rr7
zhbaA^!WzKuZA*Ab3I#1BjpJJlT>TjY$OAJDmal^qjNj{o1O#
z4R5rs)6Ky9CTHPm?Y38k`zE?4Z@4ADvloI9mmr?;DlrBOAua|@&_VnhZcoc$5v@^a8$d;)CZ2fy5-iIR61Lh!(nH1&302rVE2u#qz
z2^P!P`~@JasGB5N*%#EaZd9!XAW&P`_*PCJV3(2O9ZG3=*OhjHuUG9O{{~tKIEo+#
zmdk_>&jZ=ijrFILH7i9d;P$BryG{bHdd&oC{fZ&g
zR${A^a6tJYm_yn|GP1XAU2aK+R<&AS1Hu(e61>re-`bD3n=rxy0B1S?z)_XWO(|4O
z+fvrnvbun^DkZ$Y9ua_n6Z7@%Sc(u7FyeNM}A+GwvVPyq|W
zWdkD+KpCbm1r8%cX4AayHzVNH$EsMrrDacaF)`i$##pN_1^^b%qXkVAA;Ajv0FRd?
zs0UjzR+sfmzC=?33M8Qnaj;R71werkWUE|))3HB6Th2-k019dl0=Ygw2?+fzaYg{5Ctc~;y7e?>
zi(DPjn0f{XPxu<9aEA`VrBiZBWejk+34BBFa9Okj7y!5BLM9KU?r}7w?@PKGD4+@-
zmrnskuz~uB2nR5aIm~51bDF1B1Lw6}7N+p6p7UT0KwrZi8vgJ&B{2jKNcsbY%?U0j
zJ?VOFg3`Hg2_zsr>1a@@(hEI_6DU2Qr``JHK0w$b)nM3GxH<}ea{1gBy@@YP$wg+0&9l@w4ekaAl8DKXnP4DumLt`;0Ks@
zf#x-j`5$ON18JZD8)8&H(|rE)pI@&4JQ<-NCI0p9Q2ATj)P=z
zBboJ4687SH*c)FNkip7aJbaR%I6o*z!TU!kzmT(JlKOi_=7+gghD8U5nu$9W`jsL34s6rJF;GX
AU;qFB
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/lang/b5.js b/ccm-cms/web/assets/xinha/lang/b5.js
new file mode 100644
index 000000000..3550f6e00
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/b5.js
@@ -0,0 +1,29 @@
+// I18N constants -- UTF-8
+// by Dave Lo -- dlo@interactivetools.com
+{
+ "Bold": "ç²—é«”",
+ "Italic": "斜體",
+ "Underline": "底線",
+ "Strikethrough": "刪除線",
+ "Subscript": "下標",
+ "Superscript": "上標",
+ "Justify Left": "ä½ç½®é å·¦",
+ "Justify Center": "ä½ç½®å±…ä¸",
+ "Justify Right": "ä½ç½®é å³",
+ "Justify Full": "ä½ç½®å·¦å³å¹³ç‰",
+ "Ordered List": "é †åºæ¸…å–®",
+ "Bulleted List": "ç„¡åºæ¸…å–®",
+ "Decrease Indent": "減å°è¡Œå‰ç©ºç™½",
+ "Increase Indent": "åŠ å¯¬è¡Œå‰ç©ºç™½",
+ "Font Color": "æ–‡å—é¡è‰²",
+ "Background Color": "背景é¡è‰²",
+ "Horizontal Rule": "水平線",
+ "Insert Web Link": "æ’入連çµ",
+ "Insert/Modify Image": "æ’入圖形",
+ "Insert Table": "æ’å…¥è¡¨æ ¼",
+ "Toggle HTML Source": "切æ›HTML原始碼",
+ "Enlarge Editor": "放大",
+ "About this editor": "關於 Xinha",
+ "Help using editor": "說明",
+ "Current style": "å—體例å"
+}
diff --git a/ccm-cms/web/assets/xinha/lang/ch.js b/ccm-cms/web/assets/xinha/lang/ch.js
new file mode 100644
index 000000000..25ac840ae
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/ch.js
@@ -0,0 +1,56 @@
+// I18N constants
+
+// LANG: "ch", ENCODING: UTF-8
+// Samuel Stone, http://stonemicro.com/
+
+{
+ "Bold": "ç²—é«”",
+ "Italic": "斜體",
+ "Underline": "底線",
+ "Strikethrough": "刪線",
+ "Subscript": "下標",
+ "Superscript": "上標",
+ "Justify Left": "é å·¦",
+ "Justify Center": "å±…ä¸",
+ "Justify Right": "é å³",
+ "Justify Full": "整齊",
+ "Ordered List": "é †åºæ¸…å–®",
+ "Bulleted List": "ç„¡åºæ¸…å–®",
+ "Decrease Indent": "伸排",
+ "Increase Indent": "縮排",
+ "Font Color": "æ–‡å—é¡è‰²",
+ "Background Color": "背景é¡è‰²",
+ "Horizontal Rule": "水平線",
+ "Insert Web Link": "æ’入連çµ",
+ "Insert/Modify Image": "æ’入圖åƒ",
+ "Insert Table": "æ’å…¥è¡¨æ ¼",
+ "Toggle HTML Source": "切æ›HTML原始碼",
+ "Enlarge Editor": "伸出編輯系統",
+ "About this editor": "關於 Xinha",
+ "Help using editor": "說明",
+ "Current style": "å—體例å",
+ "Undoes your last action": "回原",
+ "Redoes your last action": "釿¥",
+ "Cut selection": "剪制选项",
+ "Copy selection": "å¤åˆ¶é€‰é¡¹",
+ "Paste from clipboard": "贴上",
+ "Direction left to right": "从左到å³",
+ "Direction right to left": "从å³åˆ°å·¦",
+ "OK": "好",
+ "Cancel": "å–æ¶ˆ",
+ "Path": "途徑",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "ä½ åœ¨ç”¨ç´”å—編輯方å¼. 用 [<>] 按鈕轉回 æ‰€è¦‹å³æ‰€å¾— 編輯方å¼.",
+ "The full screen mode is known to cause problems with Internet Explorer, due to browser bugs that we weren": "æ•´é å¼åœ¨Internet Explorer 上常出å•題, å› ç‚ºé€™æ˜¯ Internet Explorer 的無åå•é¡Œï¼Œæˆ‘å€‘ç„¡æ³•è§£æ±ºã€‚ä½ å¯èƒ½çœ‹è¦‹ä¸€äº›åžƒåœ¾ï¼Œæˆ–é‡åˆ°å…¶ä»–å•題。我們已è¦å‘Šäº†ä½ . 如果è¦è½‰åˆ° æ£é å¼ è«‹æŒ‰ 好.",
+ "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.",
+ "Cancel": "å–æ¶ˆ",
+ "Insert/Modify Link": "æ’å…¥/改寫連çµ",
+ "New window (_blank)": "新窗户(_blank)",
+ "None (use implicit)": "ç„¡(use implicit)",
+ "Other": "å…¶ä»–",
+ "Same frame (_self)": "本匡 (_self)",
+ "Target:": "目標匡:",
+ "Title (tooltip):": "主題 (tooltip):",
+ "Top frame (_top)": "上匡 (_top)",
+ "URL:": "ç¶²å€:",
+ "You must enter the URL where this link points to": "ä½ å¿…é ˆè¼¸å…¥ä½ è¦è¿žç»“的網å€"
+}
diff --git a/ccm-cms/web/assets/xinha/lang/cz.js b/ccm-cms/web/assets/xinha/lang/cz.js
new file mode 100644
index 000000000..8cc74241f
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/cz.js
@@ -0,0 +1,50 @@
+// I18N constants
+
+// LANG: "cz", ENCODING: UTF-8
+// Author: Jiri Löw,
+
+// FOR TRANSLATORS:
+//
+// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE
+// (at least a valid email address)
+//
+// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING;
+// (if this is not possible, please include a comment
+// that states what encoding is necessary.)
+
+{
+ "Bold": "TuÄnÄ›",
+ "Italic": "KurzÃva",
+ "Underline": "PodtrženÃ",
+ "Strikethrough": "PÅ™eÅ¡krtnutÃ",
+ "Subscript": "Dolnà index",
+ "Superscript": "Hornà index",
+ "Justify Left": "Zarovnat doleva",
+ "Justify Center": "Na střed",
+ "Justify Right": "Zarovnat doprava",
+ "Justify Full": "Zarovnat do stran",
+ "Ordered List": "Seznam",
+ "Bulleted List": "Odrážky",
+ "Decrease Indent": "Předsadit",
+ "Increase Indent": "Odsadit",
+ "Font Color": "Barva pÃsma",
+ "Background Color": "Barva pozadÃ",
+ "Horizontal Rule": "Vodorovná Äára",
+ "Insert Web Link": "Vložit odkaz",
+ "Insert/Modify Image": "Vložit obrázek",
+ "Insert Table": "Vložit tabulku",
+ "Toggle HTML Source": "Přepnout HTML",
+ "Enlarge Editor": "Nové okno editoru",
+ "About this editor": "O této aplikaci",
+ "Help using editor": "Nápověda aplikace",
+ "Current style": "Zvolený styl",
+ "Undoes your last action": "Vrátà poslednà akci",
+ "Redoes your last action": "Opakuje poslednà akci",
+ "Cut selection": "Vyjmout",
+ "Copy selection": "KopÃrovat",
+ "Paste from clipboard": "Vložit",
+ "OK": "OK",
+ "Cancel": "Zrušit",
+ "Path": "Cesta",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Jste v TEXTOVÉM REŽIMU. Použijte tlaÄÃtko [<>] pro pÅ™epnutà do WYSIWIG."
+}
diff --git a/ccm-cms/web/assets/xinha/lang/da.js b/ccm-cms/web/assets/xinha/lang/da.js
new file mode 100644
index 000000000..7d3d2fc56
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/da.js
@@ -0,0 +1,30 @@
+// LANG: "da", ENCODING: UTF-8
+// Author: rene,
+
+{
+ "Bold": "Fed",
+ "Italic": "Kursiv",
+ "Underline": "Understregning",
+ "Strikethrough": "Overstregning ",
+ "Subscript": "Sænket skrift",
+ "Superscript": "Hævet skrift",
+ "Justify Left": "Venstrejuster",
+ "Justify Center": "Centrer",
+ "Justify Right": "Højrejuster",
+ "Justify Full": "Lige margener",
+ "Ordered List": "Opstilling med tal",
+ "Bulleted List": "Opstilling med punkttegn",
+ "Decrease Indent": "Formindsk indrykning",
+ "Increase Indent": "Forøg indrykning",
+ "Font Color": "Skriftfarve",
+ "Background Color": "Baggrundsfarve",
+ "Horizontal Rule": "Horisontal linie",
+ "Insert Web Link": "Indsæt hyperlink",
+ "Insert/Modify Image": "Indsæt billede",
+ "Insert Table": "Indsæt tabel",
+ "Toggle HTML Source": "HTML visning",
+ "Enlarge Editor": "Vis editor i popup",
+ "About this editor": "Om htmlarea",
+ "Help using editor": "Hjælp",
+ "Current style": "Anvendt stil"
+}
diff --git a/ccm-cms/web/assets/xinha/lang/de.js b/ccm-cms/web/assets/xinha/lang/de.js
new file mode 100644
index 000000000..fbaeb160e
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/de.js
@@ -0,0 +1,169 @@
+// I18N constants
+// LANG: "de", ENCODING: UTF-8
+{
+ "Bold": "Fett",
+ "Italic": "Kursiv",
+ "Underline": "Unterstrichen",
+ "Strikethrough": "Durchgestrichen",
+ "Subscript": "Tiefgestellt",
+ "Superscript": "Hochgestellt",
+ "Justify Left": "Linksbündig",
+ "Justify Center": "Zentriert",
+ "Justify Right": "Rechtsbündig",
+ "Justify Full": "Blocksatz",
+ "Ordered List": "Nummerierte Liste",
+ "Bulleted List": "Aufzählungsliste",
+ "Decrease Indent": "Einzug verkleinern",
+ "Increase Indent": "Einzug vergrößern",
+ "Font Color": "Schriftfarbe",
+ "Background Color": "Hindergrundfarbe",
+ "Horizontal Rule": "Horizontale Linie",
+ "Insert Web Link": "Hyperlink einfügen",
+ "Insert/Modify Image": "Bild einfügen/verändern",
+ "Insert Table": "Tabelle einfügen",
+ "Toggle HTML Source": "HTML Quelltext ein/ausschalten",
+ "Enlarge Editor": "Editor vergrößern",
+ "About this editor": "Über diesen Editor",
+ "Help using editor": "Hilfe",
+ "Current style": "Derzeitiger Stil",
+ "Undoes your last action": "Rückgängig",
+ "Redoes your last action": "Wiederholen",
+ "Cut selection": "Ausschneiden",
+ "Copy selection": "Kopieren",
+ "Paste from clipboard": "Einfügen aus der Zwischenablage",
+ "Direction left to right": "Textrichtung von Links nach Rechts",
+ "Direction right to left": "Textrichtung von Rechts nach Links",
+ "Remove formatting": "Formatierung entfernen",
+ "Select all": "Alles markieren",
+ "Print document": "Dokument ausdrucken",
+ "Clear MSOffice tags": "MSOffice filter",
+ "Clear Inline Font Specifications": "Zeichensatz Formatierungen entfernen",
+ "Would you like to clear font typefaces?": "Wollen Sie Zeichensatztypen entfernen",
+ "Would you like to clear font sizes?": "Wollen Sie Zeichensatzgrößen entfernen",
+ "Would you like to clear font colours?": "Wollen sie Zeichensatzfarben entfernen",
+ "Split Block": "Block teilen",
+ "Toggle Borders": "Tabellenränder ein/ausblenden",
+ "Save as": "speichern unter",
+ "Insert/Overwrite": "Einfügen/Überschreiben",
+ "— format —": "— Format —",
+ "Heading 1": "Überschrift 1",
+ "Heading 2": "Überschrift 2",
+ "Heading 3": "Überschrift 3",
+ "Heading 4": "Überschrift 4",
+ "Heading 5": "Überschrift 5",
+ "Heading 6": "Überschrift 6",
+ "Normal": "Normal (Absatz)",
+ "Address": "Adresse",
+ "Formatted": "Formatiert",
+
+ //dialogs
+ "OK": "OK",
+ "Cancel": "Abbrechen",
+ "Path": "Pfad",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Sie sind im Text-Modus. Benutzen Sie den [<>] Button, um in den visuellen Modus (WYSIWIG) zu gelangen.",
+ "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "Aus Sicherheitsgründen dürfen Skripte normalerweise nicht auf Ausschneiden/Kopieren/Einfügen zugreifen. Benutzen Sie bitte die entsprechenden Tastatur-Kommandos (Strg + x/c/v).",
+
+ "You need to select some text before create a link": "Sie müssen einen Text markieren, um einen Link zu erstellen",
+ "Your Document is not well formed. Check JavaScript console for details.": "Ihr Dokument ist in keinem sauberen Format. Benutzen Sie die Javascript Console für weitere Informationen.",
+
+ "Alignment:": "Ausrichtung:",
+ "Not set": "nicht eingestellt",
+ "Left": "links",
+ "Right": "rechts",
+ "Texttop": "oben bündig",
+ "Absmiddle": "mittig",
+ "Baseline": "Grundlinie",
+ "Absbottom": "unten bündig",
+ "Bottom": "unten",
+ "Middle": "zentriert",
+ "Top": "oben",
+
+ "Layout": "Layout",
+ "Spacing": "Abstand",
+ "Horizontal:": "horizontal:",
+ "Horizontal padding": "horizontaler Inhaltsabstand",
+ "Vertical:": "vertikal:",
+ "Vertical padding": "vertikaler Inhaltsabstand",
+ "Border thickness:": "Randstärke:",
+ "Leave empty for no border": "leer lassen für keinen Rand",
+
+ //Insert Link
+ "Insert/Modify Link": "Verknüpfung hinzufügen/ändern",
+ "None (use implicit)": "k.A. (implizit)",
+ "New window (_blank)": "Neues Fenster (_blank)",
+ "Same frame (_self)": "Selber Rahmen (_self)",
+ "Top frame (_top)": "Oberster Rahmen (_top)",
+ "Other": "Anderes",
+ "Target:": "Ziel:",
+ "Title (tooltip):": "Titel (Tooltip):",
+ "URL:": "URL:",
+ "You must enter the URL where this link points to": "Sie müssen eine Ziel-URL angeben für die Verknüpfung angeben",
+
+ // Insert Table
+ "Insert Table": "Tabelle einfügen",
+ "Rows:": "Zeilen:",
+ "Number of rows": "Zeilenanzahl",
+ "Cols:": "Spalten:",
+ "Number of columns": "Spaltenanzahl",
+ "Width:": "Breite:",
+ "Width of the table": "Tabellenbreite",
+ "Percent": "Prozent",
+ "Pixels": "Pixel",
+ "Em": "Geviert",
+ "Width unit": "Größeneinheit",
+ "Fixed width columns": "Spalten mit fester Breite",
+ "Positioning of this table": "Positionierung der Tabelle",
+ "Cell spacing:": "Zellenabstand:",
+ "Space between adjacent cells": "Raum zwischen angrenzenden Zellen",
+ "Cell padding:": "Innenabstand:",
+ "Space between content and border in cell": "Raum zwischen Inhalt und Rand der Zelle",
+ "You must enter a number of rows": "Bitte geben Sie die Anzahl der Zeilen an",
+ "You must enter a number of columns": "Bitte geben Sie die Anzahl der Spalten an",
+
+ // Insert Image
+ "Insert Image": "Bild einfügen",
+ "Image URL:": "Bild URL:",
+ "Enter the image URL here": "Bitte geben sie hier die Bild URL ein",
+ "Preview": "Voransicht",
+ "Preview the image in a new window": "Voransicht des Bildes in einem neuen Fenster",
+ "Alternate text:": "Alternativer Text:",
+ "For browsers that don't support images": "für Browser, die keine Bilder unterstützen",
+ "Positioning of this image": "Positionierung dieses Bildes",
+ "Image Preview:": "Bild Voransicht:",
+ "You must enter the URL": "Bitte geben Sie die URL ein",
+
+ "button_bold": "de/bold.gif",
+ "button_italic": "de/italic.gif",
+ "button_underline": "de/underline.gif",
+
+ // Editor Help
+ "Keyboard shortcuts": "Tastaturkürzel",
+ "The editor provides the following key combinations:": "Der Editor unterstützt die folgenden kombinationen:",
+ "new paragraph": "Neuer Absatz(Paragraph)",
+ "insert linebreak": "Harter Umbruch einfügen",
+ "Set format to paragraph": "Setze Formatierung auf Absatz",
+ "Clean content pasted from Word": "Von Word eingefügter Text bereinigen",
+ "Headings": "Überschrift Typ 1 bis 6",
+ "Close": "Schließen",
+
+ // Loading messages
+ "Loading in progress. Please wait!": "Editor wird geladen. Bitte warten !",
+ "Loading plugin $plugin" : "Plugin $plugin wird geladen",
+ "Register plugin $plugin" : "Plugin $plugin wird registriert",
+ "Constructing object": "Objekt wird generiert",
+ "Generate Xinha framework": "Xinha Framework wird generiert",
+ "Init editor size":"Größe wird berechnet",
+ "Create Toolbar": "Werkzeugleiste wird generiert",
+ "Create Statusbar" : "Statusleiste wird generiert",
+ "Register right panel" : "Rechtes Panel wird generiert",
+ "Register left panel" : "Linkes Panel wird generiert",
+ "Register bottom panel" : "Unteres Panel wird generiert",
+ "Register top panel" : "Oberes Panel wird generiert",
+ "Finishing" : "Laden wird abgeschlossen",
+
+ // ColorPicker
+ "Click a color..." : "Farbe wählen",
+ "Sample" : "Beispiel",
+ "Web Safe: " : "Web Safe: ",
+ "Color: " : "Farbe: "
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/lang/ee.js b/ccm-cms/web/assets/xinha/lang/ee.js
new file mode 100644
index 000000000..2534271e2
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/ee.js
@@ -0,0 +1,50 @@
+// I18N constants
+
+// LANG: "ee", ENCODING: UTF-8
+// Author: Martin Raie,
+
+// FOR TRANSLATORS:
+//
+// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE
+// (at least a valid email address)
+//
+// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING;
+// (if this is not possible, please include a comment
+// that states what encoding is necessary.)
+
+{
+ "Bold": "Paks",
+ "Italic": "Kursiiv",
+ "Underline": "Allakriipsutatud",
+ "Strikethrough": "Läbikriipsutatud",
+ "Subscript": "Allindeks",
+ "Superscript": "Ülaindeks",
+ "Justify Left": "Joonda vasakule",
+ "Justify Center": "Joonda keskele",
+ "Justify Right": "Joonda paremale",
+ "Justify Full": "Rööpjoonda",
+ "Ordered List": "Nummerdus",
+ "Bulleted List": "Täpploend",
+ "Decrease Indent": "Vähenda taanet",
+ "Increase Indent": "Suurenda taanet",
+ "Font Color": "Fondi värv",
+ "Background Color": "Tausta värv",
+ "Horizontal Rule": "Horisontaaljoon",
+ "Insert Web Link": "Lisa viit",
+ "Insert/Modify Image": "Lisa pilt",
+ "Insert Table": "Lisa tabel",
+ "Toggle HTML Source": "HTML/tavaline vaade",
+ "Enlarge Editor": "Suurenda toimeti aken",
+ "About this editor": "Teave toimeti kohta",
+ "Help using editor": "Spikker",
+ "Current style": "Kirjastiil",
+ "Undoes your last action": "Võta tagasi",
+ "Redoes your last action": "Tee uuesti",
+ "Cut selection": "Lõika",
+ "Copy selection": "Kopeeri",
+ "Paste from clipboard": "Kleebi",
+ "OK": "OK",
+ "Cancel": "Loobu",
+ "Path": "Path",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Sa oled tekstireziimis. Kasuta nuppu [<>] lülitamaks tagasi WYSIWIG reziimi."
+}
diff --git a/ccm-cms/web/assets/xinha/lang/el.js b/ccm-cms/web/assets/xinha/lang/el.js
new file mode 100644
index 000000000..bc3df96f8
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/el.js
@@ -0,0 +1,55 @@
+// I18N constants
+
+// LANG: "el", ENCODING: UTF-8
+// Author: Dimitris Glezos, dimitris@glezos.com
+
+{
+ "Bold": "ΞˆΞ½Ο„ΞÎΞ½Ξ±",
+ "Italic": "Πλάγια",
+ "Underline": "Ξ�Ο€ΞÎΞ³ΟÂαμμισμΞÂΞ½Ξ±",
+ "Strikethrough": "ΔιαγΟÂΞ±ΞΌΞΌΞÂΞ½Ξ±",
+ "Subscript": "ΔΡίκτης",
+ "Superscript": "ΔΡίκτης",
+ "Justify Left": "ΣτΞÎίχιση Ξ‘ΟÂιστΡΟÂΞ¬",
+ "Justify Center": "ΣτΞÎίχιση ΚΞÂΞ½Ο„ΟÂΞÎ",
+ "Justify Right": "ΣτΞÎίχιση ΔΡξιά",
+ "Justify Full": "Ξ Ξ»Ξ�ΟÂΞ·Ο‚ ΣτΞÎίχιση",
+ "Ordered List": "Ξ‘ΟÂίθμηση",
+ "Bulleted List": "ΚΞÎυκκίδΡς",
+ "Decrease Indent": "ΞœΞ΅Ξ―Ο‰ΟƒΞ· ΕσΞÎχ�ς",
+ "Increase Indent": "Ξ‘ΟÂξηση ΕσΞÎχ�ς",
+ "Font Color": "Ξ§ΟÂώμα Ξ“ΟÂΞ±ΞΌΞΌΞ±Ο„ΞÎσΡιΟÂάς",
+ "Background Color": "Ξ§ΟÂώμα Ξ¦ΟŒΞ½Ο„ΞÎΟ…",
+ "Horizontal Rule": "ΟΟÂΞΉΞΆΟŒΞ½Ο„ΞΉΞ± Ξ“ΟÂΞ±ΞΌΞΌΞ�",
+ "Insert Web Link": "ΕισαγωγΞ� ΣυνδΞÂσμΞÎΟ…",
+ "Insert/Modify Image": "ΕισαγωγΞ�/Ξ�ΟÂΞÎΟ€ΞÎΟ€ΞÎίηση Ξ•ΞΉΞΊΟŒΞ½Ξ±Ο‚",
+ "Insert Table": "ΕισαγωγΞ� Ξ Ξ―Ξ½Ξ±ΞΊΞ±",
+ "Toggle HTML Source": "ΕναλλαγΞ� σΡ/Ξ±Ο€ΟŒ HTML",
+ "Enlarge Editor": "ΜΡγΞÂνθυνση ΡπΡξΡΟÂγαστΞ�",
+ "About this editor": "ΠληΟÂΞÎΟ†ΞÎΟÂίΡς",
+ "Help using editor": "Ξ’ΞÎ�θΡια",
+ "Current style": "Ξ Ξ±ΟÂών στυλ",
+ "Undoes your last action": "ΑναίΟÂΡση τΡλΡυταίας ΡνΞÂΟÂγΡιας",
+ "Redoes your last action": "ΕπαναφΞÎΟÂΞ¬ Ξ±Ο€ΟŒ Ξ±Ξ½Ξ±Ξ―ΟÂΡση",
+ "Cut selection": "ΑπΞÎΞΊΞÎπ�",
+ "Copy selection": "ΑντιγΟÂαφ�",
+ "Paste from clipboard": "Ξ•Ο€ΞΉΞΊΟŒΞ»Ξ»Ξ·ΟƒΞ·",
+ "Direction left to right": "ΞšΞ±Ο„Ξ΅ΟÂθυνση Ξ±ΟÂιστΡΟÂΞ¬ Ο€ΟÂΞÎΟ‚ δΡξιά",
+ "Direction right to left": "ΞšΞ±Ο„Ξ΅ΟÂθυνση Ξ±Ο€ΟŒ δΡξιά Ο€ΟÂΞÎΟ‚ τα Ξ±ΟÂιστΡΟÂΞ¬",
+ "OK": "OK",
+ "Cancel": "ΑκΟÂΟÂωση",
+ "Path": "ΔιαδΟÂΞÎΞΌΞ�",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "ΕίστΡ σΡ TEXT MODE. Ξ§ΟÂησιμΞÎΟ€ΞÎΞΉΞ�στΡ Ο„ΞΠΞΊΞÎυμπί [<>] Ξ³ΞΉΞ± Ξ½Ξ± ΡπανΞÂΟÂθΡτΡ στΞΠWYSIWIG.",
+ "The full screen mode is known to cause problems with Internet Explorer, due to browser bugs that we weren": "Ξ— κατάσταση πλΞ�ΟÂΞ·Ο‚ ΞÎΞΈΟŒΞ½Ξ·Ο‚ ΞÂχΡι Ο€ΟÂΞÎΞ²Ξ»Ξ�ματα ΞΌΞ΅ Ο„ΞÎΞ½ Internet Explorer, Ξ»ΟŒΞ³Ο‰ σφαλμάτων στΞÎΞ½ ίδιΞΠΟ„ΞÎΞ½ browser. Αν Ο„ΞΠΟƒΟÂστημα σας Ρίναι Windows 9x ΞΌΟ€ΞÎΟÂΡί ΞΊΞ±ΞΉ Ξ½Ξ± Ο‡ΟÂΡιαστΡίτΡ reboot. Αν ΡίστΡ σίγΞÎΟ…ΟÂΞÎΞΉ, πατΞ�στΡ ΟΚ.",
+ "Cancel": "ΑκΟÂΟÂωση",
+ "Insert/Modify Link": "ΕισαγωγΞ�/Ξ�ΟÂΞÎΟ€ΞÎΟ€ΞÎίηση ΟƒΟÂνδΡσμΞÎΟ…",
+ "New window (_blank)": "ΞÂΞÂΞΠπαΟÂάθυΟÂΞΠ(_blank)",
+ "None (use implicit)": "ΚανΞÂΞ½Ξ± (Ο‡ΟÂΞ�ση Ξ±Ο€ΟŒΞ»Ο…Ο„ΞÎΟ…)",
+ "Other": "ΑλλΞÎ",
+ "Same frame (_self)": "ΊδιΞΠframe (_self)",
+ "Target:": "Target:",
+ "Title (tooltip):": "Ξ�ίτλΞÎΟ‚ (tooltip):",
+ "Top frame (_top)": "Πάνω frame (_top)",
+ "URL:": "URL:",
+ "You must enter the URL where this link points to": "Ξ ΟÂΞÂπΡι Ξ½Ξ± ΡισάγΡτΡ Ο„ΞΠURL Ο€ΞÎΟ… ΞÎδηγΡί Ξ±Ο…Ο„ΟŒΟ‚ ΞΠΟƒΟÂνδΡσμΞÎΟ‚"
+}
diff --git a/ccm-cms/web/assets/xinha/lang/es.js b/ccm-cms/web/assets/xinha/lang/es.js
new file mode 100644
index 000000000..52486dd9c
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/es.js
@@ -0,0 +1,167 @@
+// I18N constants
+// LANG: "de", ENCODING: UTF-8
+{
+ "Bold": "Negrita",
+ "Italic": "Cursiva",
+ "Underline": "Subrayado",
+ "Strikethrough": "Tachado",
+ "Subscript": "SubÃndice",
+ "Superscript": "SuperÃndice",
+ "Justify Left": "Alinear a la izquierda",
+ "Justify Center": "Alinear al centro",
+ "Justify Right": "Alinear a la derecha",
+ "Justify Full": "Justificar",
+ "Ordered List": "Lista numerada",
+ "Bulleted List": "Lista no numerada",
+ "Decrease Indent": "Reducir sangrÃa",
+ "Increase Indent": "Aumentar sangrÃa",
+ "Font Color": "Color de la fuente",
+ "Background Color": "Color de fondo",
+ "Horizontal Rule": "Regla horizontal",
+ "Insert Web Link": "Insertar enlace web",
+ "Insert/Modify Image": "Insertar/modificar imagen",
+ "Insert Table": "Insertar una tabla",
+ "Toggle HTML Source": "Ver HTML",
+ "Enlarge Editor": "Editor a pantalla completa",
+ "About this editor": "Sobre este Editor",
+ "Help using editor": "Ayuda",
+ "Current style": "Estilo actual",
+ "Undoes your last action": "Deshacer",
+ "Redoes your last action": "Rehacer",
+ "Cut selection": "Cortar",
+ "Copy selection": "Copiar",
+ "Paste from clipboard": "Pegar desde el portapapeles",
+ "Direction left to right": "Dirección de izquierda a derecha",
+ "Direction right to left": "Dirección de derecha a izquierda",
+ "Remove formatting": "Borrar formato",
+ "Select all": "Seleccionar todo",
+ "Print document": "Imprimir documento",
+ "Clear MSOffice tags": "Borrar etiquetas de MSOffice",
+ "Clear Inline Font Specifications": "Borrar las etiquetas de fuente",
+ "Would you like to clear font typefaces?": "¿Desea eliminar las definiciaones de tipo de fuente?",
+ "Would you like to clear font sizes?": "¿Desea eliminar las definiciones de tamaño de fuente?",
+ "Would you like to clear font colours?": "¿Desea eliminar las definiciones de color de fuente?",
+ "Split Block": "Dividir el bloque",
+ "Toggle Borders": "Añadir/Quitar bordes",
+ "Save as": "Guardar como",
+ "Insert/Overwrite": "Insertar/Sobreescribir",
+ "— format —": "— formato —",
+ "— font —": "— fuente —",
+ "— size —": "— tamaño —",
+ "Heading 1": "Cabecera 1",
+ "Heading 2": "Cabecera 2",
+ "Heading 3": "Cabecera 3",
+ "Heading 4": "Cabecera 4",
+ "Heading 5": "Cabecera 5",
+ "Heading 6": "Cabecera 6",
+ "Normal": "Normal",
+ "Address": "Dirección",
+ "Formatted": "Formateado",
+
+ //dialogs
+ "OK": "Aceptar",
+ "Cancel": "Cancelar",
+ "Path": "Ruta",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Se encuentra en MODO TEXTO. Use el botón [<>] para cambiar de nuevo al modo WYSIWYG",
+ "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "El botón de pegar no funciona en los navegadores de Mozilla por motivos de seguridad. Presione CTRL-V en su teclado para pegarlo directamente",
+
+ "You need to select some text before create a link": "Necesita seleccionar algún texto antes de crear un link",
+ "Your Document is not well formed. Check JavaScript console for details.": "Su documento no está bien formado. Compruebe la consola de JavaScript para obtener más detalles",
+
+ "Alignment:": "Alineación:",
+ "Not set": "No definido",
+ "Left": "Izquierda",
+ "Right": "Derecha",
+ "Texttop": "Texto Superior",
+ "Absmiddle": "Medio Absoluto",
+ "Baseline": "LÃnea base",
+ "Absbottom": "Inferior absoluto",
+ "Bottom": "Inferior",
+ "Middle": "Medio",
+ "Top": "Superior",
+
+ "Layout": "Distribución",
+ "Spacing": "Espaciado",
+ "Horizontal:": "horizontal:",
+ "Horizontal padding": "Relleno horizontal",
+ "Vertical:": "Vertical:",
+ "Vertical padding": "Relleno Vertical",
+ "Border thickness:": "Tamaño del borde:",
+ "Leave empty for no border": "VacÃo si no desea ningún borde",
+
+ //Insert Link
+ "Insert/Modify Link": "Insertar/Modificar un enlace",
+ "None (use implicit)": "VacÃo ( usar implÃcito )",
+ "New window (_blank)": "Nueva ventana (_blank)",
+ "Same frame (_self)": "Mismo marco (_self)",
+ "Top frame (_top)": "Marco superior (_top)",
+ "Other": "Otro",
+ "Target:": "Destino:",
+ "Title (tooltip):": "TÃtulo (Tooltip):",
+ "URL:": "URL:",
+ "You must enter the URL where this link points to": "Debe introducir la URL a donde apunta este enlace",
+
+ // Insert Table
+ "Insert Table": "Añadir una tabla",
+ "Rows:": "Filas:",
+ "Number of rows": "Número de filas",
+ "Cols:": "Columnas:",
+ "Number of columns": "Número de columnas",
+ "Width:": "Ancho:",
+ "Width of the table": "Ancho de la tabla",
+ "Percent": "Porcentaje",
+ "Pixels": "Pixels",
+ "Em": "Em",
+ "Width unit": "Unidad de anchura",
+ "Fixed width columns": "Columnas de ancho fijo",
+ "Positioning of this table": "Posición de esta tabla",
+ "Cell spacing:": "Espaciado entre celdas:",
+ "Space between adjacent cells": "Espaciado entre celdas adyacentes",
+ "Cell padding:": "Relleno de celdas:",
+ "Space between content and border in cell": "Escapcio entre el contenido y el borde de la celda",
+ "You must enter a number of rows": "Debe introducir un número de filas",
+ "You must enter a number of columns": "Debe introducir un número de columnas",
+
+ // Insert Image
+ "Insert Image": "Insertar una imagen",
+ "Image URL:": "Imagen URL:",
+ "Enter the image URL here": "",
+ "Preview": "Previsualizar",
+ "Preview the image in a new window": "Previsualizar en una nueva ventana",
+ "Alternate text:": "Texto alternativo:",
+ "For browsers that don't support images": "Para navegadores que no soportan imágenes",
+ "Positioning of this image": "Posición de la imagen",
+ "Image Preview:": "Previsualización de la imagen:",
+ "You must enter the URL": "Debe introducir la URL",
+
+ // Editor Help
+ "Keyboard shortcuts": "Atajos de teclado",
+ "The editor provides the following key combinations:": "El editor proporciona las siguientes combinaciones:",
+ "new paragraph": "Nuevo parrafo",
+ "insert linebreak": "Insertar salto de lÃnea",
+ "Set format to paragraph": "EStablecer el formato a parrafo",
+ "Clean content pasted from Word": "Limpiar el contenido pegado desde Word",
+ "Headings": "Cabeceras",
+ "Close": "Cerrar",
+
+ // Loading messages
+ "Loading in progress. Please wait!": "Carga en proceso. Por favor espere.",
+ "Loading plugin $plugin" : "Cargando el plugin $plugin",
+ "Register plugin $plugin" : "Registro de plugin $plugin",
+ "Constructing object": "Construyendo objeto",
+ "Generate Xinha framework": "Generar Xinha framework",
+ "Init editor size":"Iniciar el tamaño del editor",
+ "Create Toolbar": "Crear barra de herramientas",
+ "Create Statusbar" : "Crear barra de estado",
+ "Register right panel" : "Registrar panel derecho",
+ "Register left panel" : "Registrar panel izquierdo",
+ "Register bottom panel" : "Registar panel inferior",
+ "Register top panel" : "Registar panel superior",
+ "Finishing" : "Finalizando",
+
+ // ColorPicker
+ "Click a color..." : "Seleccione un color...",
+ "Sample" : "Muestra",
+ "Web Safe: " : "Color web: ",
+ "Color: " : "Color: "
+}
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/lang/eu.js b/ccm-cms/web/assets/xinha/lang/eu.js
new file mode 100644
index 000000000..ec06ed5ea
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/eu.js
@@ -0,0 +1,169 @@
+// I18N constants
+// LANG: "eu", ENCODING: UTF-8
+{
+ "Bold": "Lodia",
+ "Italic": "Etzana",
+ "Underline": "Azpimarratua",
+ "Strikethrough": "Marratua",
+ "Subscript": "Azpindizea",
+ "Superscript": "Goi-indizea",
+ "Justify Left": "Ezkerretara lerrokatu",
+ "Justify Center": "Zentratu",
+ "Justify Right": "Eskuinetara lerrokatu",
+ "Justify Full": "Justifikatu",
+ "Ordered List": "Zerrenda ordenatua",
+ "Bulleted List": "Zerrenda ez ordenatua",
+ "Decrease Indent": "Koska handitu",
+ "Increase Indent": "Koska txikitu",
+ "Font Color": "Testu-kolorea",
+ "Background Color": "Atzeko kolorea",
+ "Horizontal Rule": "Marra horizontala",
+ "Insert Web Link": "Lotura txertatu",
+ "Insert/Modify Image": "Irudia txertatu",
+ "Insert Table": "Taula txertatu",
+ "Toggle HTML Source": "Ikusi dokumentua HTML-n",
+ "Enlarge Editor": "Editorea handitu",
+ "About this editor": "Editoreari buruz...",
+ "Help using editor": "Laguntza",
+ "Current style": "Uneko estiloa",
+ "Undoes your last action": "Desegin",
+ "Redoes your last action": "Berregin",
+ "Cut selection": "Ebaki hautaketa",
+ "Copy selection": "Kopiatu hautaketa",
+ "Paste from clipboard": "Itsatsi arbelean dagoena",
+ "Direction left to right": "Ezkerretik eskuinetarako norabidea",
+ "Direction right to left": "Eskuinetik ezkerretarako norabidea",
+ "Remove formatting": "Formatoa kendu",
+ "Select all": "Dena aukeratu",
+ "Print document": "Dokumentua inprimatu",
+ "Clear MSOffice tags": "MSOffice etiketak ezabatu",
+ "Clear Inline Font Specifications": "Ezabatu testuaren ezaugarriak",
+ "Would you like to clear font typefaces?": "Letra-tipoak ezabatu nahi al dituzu?",
+ "Would you like to clear font sizes?": "Letra-tipoen neurriak ezabatu nahi al dituzu?",
+ "Would you like to clear font colours?": "Letra-tipoen koloreak ezabatu nahi al dituzu?",
+ "Split Block": "Blokea zatitu",
+ "Toggle Borders": "Ertzak trukatu",
+ "Save as": "Gorde honela:",
+ "Insert/Overwrite": "Txertatu/Gainidatzi",
+ "— format —": "— Formatua —",
+ "Heading 1": "Goiburua 1",
+ "Heading 2": "Goiburua 2",
+ "Heading 3": "Goiburua 3",
+ "Heading 4": "Goiburua 4",
+ "Heading 5": "Goiburua 5",
+ "Heading 6": "Goiburua 6",
+ "Normal": "Normala",
+ "Address": "Helbidea",
+ "Formatted": "Formateatua",
+
+ //dialogs
+ "OK": "Ados",
+ "Cancel": "Utzi",
+ "Path": "Bidea",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "TESTU eran ari zara. Erabil ezazu [<>] botoia WYSIWIG erara itzultzeko.",
+ "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "Itsatsi botoia ez dabil Mozillan oinarritutako nabigatzaileetan (arrazoi teknikoengatik). Sacatu CTRL-V zure teklatuan, zuzenean itsasteko.",
+
+ "You need to select some text before create a link": "Testu-atal bat aukeratu behar duzu lehendabizi, lotura bat sortzeko",
+ "Your Document is not well formed. Check JavaScript console for details.": "Zure dokumentuak ez du formatu zuzena. Begira ezazu JavaScript kontsola xehetasunetarako.",
+
+ "Alignment:": "Lerrokatzea:",
+ "Not set": "Ez gaitua",
+ "Left": "Ezkerretara",
+ "Right": "Eskuinetara",
+ "Texttop": "Irudiaren goialdean",
+ "Absmiddle": "Irudiaren erdian",
+ "Baseline": "Irudiaren oinean",
+ "Absbottom": "Irudiaren behekaldean",
+ "Bottom": "Behean",
+ "Middle": "Erdian",
+ "Top": "Goian",
+
+ "Layout": "Diseinua",
+ "Spacing": "Tartea",
+ "Horizontal:": "Horizontala:",
+ "Horizontal padding": "Betegarri horizontala",
+ "Vertical:": "Bertikala:",
+ "Vertical padding": "Betegarri bertikala",
+ "Border thickness:": "Ertzaren lodiera:",
+ "Leave empty for no border": "Uztazu hutsik ertzik ez sortzeko",
+
+ //Insert Link
+ "Insert/Modify Link": "Lotura txertatu/aldatu",
+ "None (use implicit)": "Bat ere ez (implizituki erabili)",
+ "New window (_blank)": "Lehio berrian (_blank)",
+ "Same frame (_self)": "Frame berean (_self)",
+ "Top frame (_top)": "Goiko frame-an (_top)",
+ "Other": "Beste bat",
+ "Target:": "Helburua:",
+ "Title (tooltip):": "Izenburua (argibidea):",
+ "URL:": "URL-a:",
+ "You must enter the URL where this link points to": "Loturaren helburu den URL-a idatzi behar duzu",
+
+ // Insert Table
+ "Insert Table": "Taula txertatu",
+ "Rows:": "Lerroak:",
+ "Number of rows": "Lerro-kopurua",
+ "Cols:": "Zutabeak:",
+ "Number of columns": "Zutabe-kopurua",
+ "Width:": "Zabalera:",
+ "Width of the table": "Taularen zabalera",
+ "Percent": "Portzentaia",
+ "Pixels": "Pixelak",
+ "Em": "Em",
+ "Width unit": "Zabalera-unitatea",
+ "Fixed width columns": "Zabalera finkodun zutabeak",
+ "Positioning of this table": "Taula honen kokapena",
+ "Cell spacing:": "Gelaxka-tartea:",
+ "Space between adjacent cells": "Gelaxka auzokideen arteko tartea",
+ "Cell padding:": "Gelaxkaren betegarria:",
+ "Space between content and border in cell": "Gelaxkaren edukia eta ertzaren arteko tartea",
+ "You must enter a number of rows": "Lerro-kopurua idatzi behar duzu",
+ "You must enter a number of columns": "Zutabe-kopurua idatzi behar duzu",
+
+ // Insert Image
+ "Insert Image": "Irudia txertatu",
+ "Image URL:": "Irudiaren URL-a:",
+ "Enter the image URL here": "Idatz ezazu irudiaren URL-a hemen",
+ "Preview": "Aurrebista",
+ "Preview the image in a new window": "Aurreikusi irudia beste lehio batean",
+ "Alternate text:": "Testu alternatiboa:",
+ "For browsers that don't support images": "Irudirik onartzen ez duten nabigatzaileentzat",
+ "Positioning of this image": "Irudiaren kokapena",
+ "Image Preview:": "Irudiaren aurrebista:",
+ "You must enter the URL": "URL-a idatzi behar duzu",
+
+ "button_bold": "de/bold.gif",
+ "button_italic": "de/italic.gif",
+ "button_underline": "de/underline.gif",
+
+ // Editor Help
+ "Keyboard shortcuts": "Laster-teklak",
+ "The editor provides the following key combinations:": "Editoreak ondorengo tekla-konbinazioak eskaintzen ditu:",
+ "new paragraph": "Paragrafo berria",
+ "insert linebreak": "Lerro-jauzia txertatu",
+ "Set format to paragraph": "Formatua ezarri paragrafoari",
+ "Clean content pasted from Word": "Word-etik itsatsitako edukia ezabatu",
+ "Headings": "Goiburuak",
+ "Close": "Itxi",
+
+ // Loading messages
+ "Loading in progress. Please wait!": "Kargatzen. Itxaron mesedez",
+ "Loading plugin $plugin" : "$plugin plugina kargatzen",
+ "Register plugin $plugin" : "$plugin plugina erregistratu",
+ "Constructing object": "Objektua eraikitzen",
+ "Generate Xinha framework": "Xinha Framework sortzen",
+ "Init editor size":"Editorearen hasierako neurria",
+ "Create Toolbar": "Tresna-barra sortu",
+ "Create Statusbar" : "Egoera-barra sortu",
+ "Register right panel" : "Eskuin-panela erregistratu",
+ "Register left panel" : "Ezker-panela erregistratu",
+ "Register bottom panel" : "Beheko panela erregistratu",
+ "Register top panel" : "Goiko panela erregistratu",
+ "Finishing" : "Bukatzen",
+
+ // ColorPicker
+ "Click a color..." : "Kolore bat aukeratu...",
+ "Sample" : "Lagina",
+ "Web Safe: " : "Web Safe: ",
+ "Color: " : "Kolorea: "
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/lang/fa.js b/ccm-cms/web/assets/xinha/lang/fa.js
new file mode 100644
index 000000000..5e8e12762
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/fa.js
@@ -0,0 +1,169 @@
+// I18N constants
+// LANG: "fa", ENCODING: UTF-8
+{
+ "Bold": "ضخیم",
+ "Italic": "مورب",
+ "Underline": "زیر خط",
+ "Strikethrough": "رو خط",
+ "Subscript": "زیروند",
+ "Superscript": "بالاوند",
+ "Justify Left": "تراز از چپ",
+ "Justify Center": "تراز در وسط",
+ "Justify Right": "تراز در راست",
+ "Justify Full": "تراز از چپ و راست",
+ "Ordered List": "Ùهرست مرتب",
+ "Bulleted List": "Ùهرست گلوله ای",
+ "Decrease Indent": "کاهش سر خط",
+ "Increase Indent": "Ø§ÙØ²Ø§ÛŒØ´ سر خط",
+ "Font Color": "رنگ Ùلم",
+ "Background Color": "رنگ پس زمینه",
+ "Horizontal Rule": "خط اÙÙ‚ÛŒ",
+ "Insert Web Link": "Ø§ÙØ²ÙˆØ¯Ù† لینک وب",
+ "Insert/Modify Image": "Ø§ÙØ²ÙˆØ¯Ù† یا ویرایش تصویر",
+ "Insert Table": "Ø§ÙØ²ÙˆØ¯Ù† جدول",
+ "Toggle HTML Source": "مشاهده یا عدم مشاهده متن در قالب HTML",
+ "Enlarge Editor": "بزرگ کردن ویرایش گر",
+ "About this editor": "درباره این ویرایش گر",
+ "Help using editor": "راهنمای Ø§Ø³ØªÙØ§Ø¯Ù‡ ویرایش گر",
+ "Current style": "شیوه کنونی",
+ "Undoes your last action": "برگرداندن آخرین عمل",
+ "Redoes your last action": "انجام مجدد آخرین عمل",
+ "Cut selection": "بریدن انتخاب شده",
+ "Copy selection": "کپی انتخاب شده",
+ "Paste from clipboard": "چسباندن از تخته کار",
+ "Direction left to right": "جهت از چپ به راست",
+ "Direction right to left": "جهت از راست به چپ",
+ "Remove formatting": "ØØ°Ù ÙØ±Ù…ت بندی",
+ "Select all": "انتخاب همه",
+ "Print document": "چاپ سند",
+ "Clear MSOffice tags": "پاک کردن متن از برچسب های MSOffice",
+ "Clear Inline Font Specifications": "پاک کردن متن از مشخصات Ùونت",
+ "Would you like to clear font typefaces?": "آیا تمایل دارید ظاهر Ùلم را پاک کنید؟",
+ "Would you like to clear font sizes?": "آیا تمایل دارید اندازه قلم را پاک کنید",
+ "Would you like to clear font colours?": "آیا تمایل دارید رنگ قلم را پاک کنید؟",
+ "Split Block": "بلاک جداسازی",
+ "Toggle Borders": "ÙØ¹Ø§Ù„/غیر ÙØ¹Ø§Ù„ کردن لبه ها",
+ "Save as": "ذخیره مانند...",
+ "Insert/Overwrite": "Ø§ÙØ²ÙˆØ¯Ù†/جانویسی",
+ "— format —": "— قالب —",
+ "Heading 1": "تیتر 1",
+ "Heading 2": "تیتر 2",
+ "Heading 3": "تیتر 3",
+ "Heading 4": "تیتر 4",
+ "Heading 5": "تیتر 5",
+ "Heading 6": "تیتر 6",
+ "Normal": "معمولی",
+ "Address": "آدرس",
+ "Formatted": "قالب بندی شده",
+
+ //dialogs
+ "OK": "بله",
+ "Cancel": "انصراÙ",
+ "Path": "مسیر",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "در مد متنی هستید. از دکمه [<>] Ø§Ø³ØªÙØ§Ø¯Ù‡ نمایید تا به مد WYSIWYG برگردید.",
+ "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "دکمه چسباندن در مرورگرهای سری Mozilla کار نمی کند (به دلایل ÙÙ†ÛŒ امنیتی).برای چسباندن مستقیم ØŒ دکمه CTRL-V را در ØµÙØÙ‡ کلید بزنید.",
+ "Your Document is not well formed. Check JavaScript console for details.": "سند شما بدرستی قالب بندی نشده است. برای اطلاعات بیشتر پایانه نمایش جاوااسکریپت را بررسی کنید.",
+
+ "Alignment:": "تراز بندی",
+ "Not set": "تنظیم نشده",
+ "Left": "Ú†Ù¾",
+ "Right": "راست",
+ "Texttop": "بالای متن",
+ "Absmiddle": "دقیقا وسط",
+ "Baseline": "ابتدای خط",
+ "Absbottom": "دقیقا پایین",
+ "Bottom": "پایین",
+ "Middle": "وسط",
+ "Top": "بالا",
+
+ "Layout": "لایه",
+ "Spacing": "ÙØ§ØµÙ„Ù‡ گذاری",
+ "Horizontal:": "اÙÙ‚ÛŒ",
+ "Horizontal padding": "پرکننده اÙÙ‚ÛŒ",
+ "Vertical:": "عمودی",
+ "Vertical padding": "پرکننده عمودی",
+ "Border thickness:": "ضخامت لبه",
+ "Leave empty for no border": "برای بدون لبه خالی رها کن",
+
+ //Insert Link
+ "Insert/Modify Link": "Ø§ÙØ²ÙˆØ¯Ù† / ویرایش لینک",
+ "None (use implicit)": "هیچکدام (Ø§Ø³ØªÙØ§Ø¯Ù‡ از بدون شرط)",
+ "New window (_blank)": "پنجره جدید (_blank)",
+ "Same frame (_self)": "ÙØ±ÛŒÙ… یکسان (_self)",
+ "Top frame (_top)": "ÙØ±ÛŒÙ… بالایی (_top)",
+ "Other": "سایر",
+ "Target:": "هدÙ",
+ "Title (tooltip):": "عنوان (راهنمای یک خطی)",
+ "URL:": "URL:",
+ "You must enter the URL where this link points to": "باید URLی که این لینک به آن اشاره دارد را وارد کنید",
+ "You need to select some text before creating a link": "باید قبل از ساخت لینک ، متنی را انتخاب نمایید",
+
+ // Insert Table
+ "Insert Table": "Ø§ÙØ²ÙˆØ¯Ù† جدول",
+ "Rows:": "ردی٠ها",
+ "Number of rows": "تعداد ردی٠ها",
+ "Cols:": "ستون ها",
+ "Number of columns": "تعداد ستون ها",
+ "Width:": "طول",
+ "Width of the table": "طول جدول",
+ "Percent": "درصد",
+ "Pixels": "پیکسل ها",
+ "Em": "Em",
+ "Width unit": "ÙˆØ§ØØ¯ طول",
+ "Fixed width columns": "ستون های طول ثابت",
+ "Positioning of this table": "موقعیت یابی این جدول",
+ "Cell spacing:": "ÙØ§ØµÙ„Ù‡ سلول ها",
+ "Space between adjacent cells": "ÙØ§ØµÙ„Ù‡ بین سلول های همجوار",
+ "Cell padding:": "پر کننده سلول",
+ "Space between content and border in cell": "ÙØ§ØµÙ„Ù‡ بین Ù…ØØªÙˆØ§ Ùˆ لبه در سلول",
+ "You must enter a number of rows": "باید تعداد ردی٠ها را وارد کنید",
+ "You must enter a number of columns": "باید تعداد ستون ها را وارد کنید",
+
+ // Insert Image
+ "Insert Image": "Ø§ÙØ²ÙˆØ¯Ù† تصویر",
+ "Image URL:": "URL تصویر",
+ "Enter the image URL here": "URL تصویر را اینجا وارد کنید",
+ "Preview": "پیش نمایش",
+ "Preview the image in a new window": "پیش نمایش تصویر در پنجره ای جدید",
+ "Alternate text:": "متن جایگزین",
+ "For browsers that don't support images": "برای مرورگرهایی که از تصاویر پشتیبانی نمی کنند",
+ "Positioning of this image": "موقعیت یابی تصویر",
+ "Image Preview:": "پیش نمایش تصویر",
+ "You must enter the URL": "شما باید URL را وارد کنید",
+
+ // toolbar
+ /*
+ "button_bold": "fr/bold.gif",
+ "button_underline": "fr/underline.gif",
+ "button_strikethrough": "fr/strikethrough.gif",
+ */
+
+ // Editor Help
+ "Xinha Help": "راهنمای Xinha",
+ "Editor Help": "راهنمای ویرایشگر",
+ "Keyboard shortcuts": "میانبرهای ØµÙØÙ‡ کلید",
+ "The editor provides the following key combinations:": "ویرایشگر Ø§Ø³ØªÙØ§Ø¯Ù‡ از کلید های گروهی زیر را مسیر Ù…ÛŒ سازد :",
+ "ENTER": "ENTREE",
+ "new paragraph": "پاراگرا٠جدید",
+ "SHIFT-ENTER": "SHIFT+ENTREE",
+ "insert linebreak": "Ø§ÙØ²ÙˆØ¯Ù† جدا کننده خط",
+ "Set format to paragraph": "تغییر قالب به پاراگراÙ",
+ "Clean content pasted from Word": "تمیز کردن Ù…ØØªÙˆØ§ÛŒ چسبانده شده از Word",
+ "Headings": "عنوان گذاری",
+ "Close": "بستن",
+
+ // Loading messages
+ "Loading in progress. Please wait !": "بارگذاری در ØØ§Ù„ انجام است. Ù„Ø·ÙØ§ صبر کنید !",
+ "Constructing main object": "ساختن شیء اصلی",
+ "Constructing object": "ساختن شیء",
+ "Register panel right": "ثبت قاب راست",
+ "Register panel left": "ثبت قاب چپ",
+ "Register panel top": "ثبت قاب بالا",
+ "Register panel bottom": "ثبت قاب پایین",
+ "Create Toolbar": "ساخت نوار ابزار",
+ "Create StatusBar": "ساخت نوار وضعیت",
+ "Generate Xinha object": "تولید شیء Xinha",
+ "Init editor size": "مقدار دهی اندازه ویرایشگر",
+ "Init IFrame": "مقدار دهی IFrame",
+ "Register plugin $plugin": "ثبت پلاگین $plugin"
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/lang/fi.js b/ccm-cms/web/assets/xinha/lang/fi.js
new file mode 100644
index 000000000..e057b9af1
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/fi.js
@@ -0,0 +1,38 @@
+// I18N constants
+
+// LANG: "en", ENCODING: UTF-8
+
+{
+ "Bold": "Lihavoitu",
+ "Italic": "Kursivoitu",
+ "Underline": "Alleviivattu",
+ "Strikethrough": "Yliviivattu",
+ "Subscript": "Alaindeksi",
+ "Superscript": "Yläindeksi",
+ "Justify Left": "Tasaa vasemmat reunat",
+ "Justify Center": "Keskitä",
+ "Justify Right": "Tasaa oikeat reunat",
+ "Justify Full": "Tasaa molemmat reunat",
+ "Ordered List": "Numerointi",
+ "Bulleted List": "Luettelomerkit",
+ "Decrease Indent": "Pienennä sisennystä",
+ "Increase Indent": "Lisää sisennystä",
+ "Font Color": "Fontin väri",
+ "Background Color": "Taustaväri",
+ "Horizontal Rule": "Vaakaviiva",
+ "Insert Web Link": "Lisää linkki",
+ "Insert/Modify Image": "Lisää kuva",
+ "Insert Table": "Lisää taulukko",
+ "Toggle HTML Source": "HTML-lähdekoodi vs WYSIWYG",
+ "Enlarge Editor": "Suurenna editori",
+ "About this editor": "Tietoja editorista",
+ "Help using editor": "Näytä ohje",
+ "Current style": "Nykyinen tyyli",
+ "Undoes your last action": "Peruuta viimeinen toiminto",
+ "Redoes your last action": "Palauta viimeinen toiminto",
+ "Cut selection": "Leikkaa maalattu",
+ "Copy selection": "Kopioi maalattu",
+ "Paste from clipboard": "Liitä leikepyödältä",
+ "OK": "Hyväksy",
+ "Cancel": "Peruuta"
+}
diff --git a/ccm-cms/web/assets/xinha/lang/fr.js b/ccm-cms/web/assets/xinha/lang/fr.js
new file mode 100644
index 000000000..6110cef55
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/fr.js
@@ -0,0 +1,169 @@
+// I18N constants
+// LANG: "fr", ENCODING: UTF-8
+{
+ "Bold": "Gras",
+ "Italic": "Italique",
+ "Underline": "Souligné",
+ "Strikethrough": "Barré",
+ "Subscript": "Indice",
+ "Superscript": "Exposant",
+ "Justify Left": "Aligner à gauche",
+ "Justify Center": "Centrer",
+ "Justify Right": "Aligner à droite",
+ "Justify Full": "Justifier",
+ "Ordered List": "Liste numérotée",
+ "Bulleted List": "Liste à puces",
+ "Decrease Indent": "Diminuer le retrait",
+ "Increase Indent": "Augmenter le retrait",
+ "Font Color": "Couleur de police",
+ "Background Color": "Surlignage",
+ "Horizontal Rule": "Ligne horizontale",
+ "Insert Web Link": "Insérer un lien",
+ "Insert/Modify Image": "Insérer / Modifier une image",
+ "Insert Table": "Insérer un tableau",
+ "Toggle HTML Source": "Afficher / Masquer code source",
+ "Enlarge Editor": "Agrandir l'éditeur",
+ "About this editor": "A propos",
+ "Help using editor": "Aide",
+ "Current style": "Style courant",
+ "Undoes your last action": "Annuler la dernière action",
+ "Redoes your last action": "Répéter la dernière action",
+ "Cut selection": "Couper la sélection",
+ "Copy selection": "Copier la sélection",
+ "Paste from clipboard": "Coller depuis le presse-papier",
+ "Direction left to right": "Direction de gauche à droite",
+ "Direction right to left": "Direction de droite à gauche",
+ "Remove formatting": "Supprimer mise en forme",
+ "Select all": "Tout sélectionner",
+ "Print document": "Imprimer document",
+ "Clear MSOffice tags": "Supprimer tags MSOffice",
+ "Clear Inline Font Specifications": "Supprimer paramètres inline de la police",
+ "Would you like to clear font typefaces?": "Voulez-vous supprimer les types ?",
+ "Would you like to clear font sizes?": "Voulez-vous supprimer les tailles ?",
+ "Would you like to clear font colours?": "Voulez-vous supprimer les couleurs ?",
+ "Split Block": "Séparer les blocs",
+ "Toggle Borders": "Afficher / Masquer les bordures",
+ "Save as": "Enregistrer sous",
+ "Insert/Overwrite": "Insertion / Remplacement",
+ "— format —": "— Format —",
+ "Heading 1": "Titre 1",
+ "Heading 2": "Titre 2",
+ "Heading 3": "Titre 3",
+ "Heading 4": "Titre 4",
+ "Heading 5": "Titre 5",
+ "Heading 6": "Titre 6",
+ "Normal": "Normal",
+ "Address": "Adresse",
+ "Formatted": "Formaté",
+
+ //dialogs
+ "OK": "OK",
+ "Cancel": "Annuler",
+ "Path": "Chemin",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Vous êtes en MODE TEXTE. Appuyez sur le bouton [<>] pour retourner au mode WYSIWYG.",
+ "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "Le bouton Coller ne fonctionne pas sur les navigateurs basés sur Mozilla (pour des raisons de sécurité). Pressez CTRL-V au clavier pour coller directement.",
+ "Your Document is not well formed. Check JavaScript console for details.": "Le document est mal formé. Vérifiez la console JavaScript pour plus de détails.",
+
+ "Alignment:": "Alignement",
+ "Not set": "Indéfini",
+ "Left": "Gauche",
+ "Right": "Droite",
+ "Texttop": "Texttop",
+ "Absmiddle": "Absmiddle",
+ "Baseline": "Baseline",
+ "Absbottom": "Absbottom",
+ "Bottom": "Bas",
+ "Middle": "Milieu",
+ "Top": "Haut",
+
+ "Layout": "Mise en page",
+ "Spacing": "Espacement",
+ "Horizontal:": "Horizontal",
+ "Horizontal padding": "Marge horizontale interne",
+ "Vertical:": "Vertical",
+ "Vertical padding": "Marge verticale interne",
+ "Border thickness:": "Epaisseur de bordure",
+ "Leave empty for no border": "Laisser vide pour pas de bordure",
+
+ //Insert Link
+ "Insert/Modify Link": "Insérer / Modifier un lien",
+ "None (use implicit)": "Aucune (implicite)",
+ "New window (_blank)": "Nouvelle fenêtre (_blank)",
+ "Same frame (_self)": "Même frame (_self)",
+ "Top frame (_top)": "Frame principale (_top)",
+ "Other": "Autre",
+ "Target:": "Cible",
+ "Title (tooltip):": "Texte alternatif",
+ "URL:": "URL:",
+ "You must enter the URL where this link points to": "Vous devez entrer l'URL de ce lien",
+ "You need to select some text before creating a link": "Vous devez sélectionner du texte avant de créer un lien",
+
+ // Insert Table
+ "Insert Table": "Insérer un tableau",
+ "Rows:": "Lignes",
+ "Number of rows": "Nombre de lignes",
+ "Cols:": "Colonnes",
+ "Number of columns": "Nombre de colonnes",
+ "Width:": "Largeur",
+ "Width of the table": "Largeur du tableau",
+ "Percent": "Pourcent",
+ "Pixels": "Pixels",
+ "Em": "Em",
+ "Width unit": "Unités de largeur",
+ "Fixed width columns": "Colonnes à taille fixe",
+ "Positioning of this table": "Position du tableau",
+ "Cell spacing:": "Espacement",
+ "Space between adjacent cells": "Espace entre les cellules adjacentes",
+ "Cell padding:": "Marge interne",
+ "Space between content and border in cell": "Espace entre le contenu et la bordure d'une cellule",
+ "You must enter a number of rows": "Vous devez entrer le nombre de lignes",
+ "You must enter a number of columns": "Vous devez entrer le nombre de colonnes",
+
+ // Insert Image
+ "Insert Image": "Insérer une image",
+ "Image URL:": "URL image",
+ "Enter the image URL here": "Entrer l'URL de l'image ici",
+ "Preview": "Prévisualiser",
+ "Preview the image in a new window": "Prévisualiser l'image dans une nouvelle fenêtre",
+ "Alternate text:": "Texte alternatif",
+ "For browsers that don't support images": "Pour les navigateurs qui ne supportent pas les images",
+ "Positioning of this image": "Position de l'image",
+ "Image Preview:": "Prévisualisation",
+ "You must enter the URL": "Vous devez entrer l'URL",
+
+ // toolbar
+ "button_bold": "fr/bold.gif",
+ "button_underline": "fr/underline.gif",
+ "button_strikethrough": "fr/strikethrough.gif",
+
+ // Editor Help
+ "Xinha Help": "Aide Xinha",
+ "Editor Help": "Aide de l'éditeur",
+ "Keyboard shortcuts": "Raccourcis clavier",
+ "The editor provides the following key combinations:": "L'éditeur fournit les combinaisons de touches suivantes :",
+ "ENTER": "ENTREE",
+ "new paragraph": "Nouveau paragraphe",
+ "SHIFT-ENTER": "SHIFT+ENTREE",
+ "insert linebreak": "Insère un saut de ligne",
+ "Set format to paragraph": "Applique le format paragraphe",
+ "Clean content pasted from Word": "Nettoyage du contenu copié depuis Word",
+ "Headings": "Titres",
+ "Close": "Fermer",
+
+ // Loading messages
+ "Loading in progress. Please wait!": "Chargement en cours. Veuillez patienter!",
+ "Finishing" : "Chargement bientôt terminé",
+ "Constructing object": "Construction de l'objet",
+ "Create Toolbar": "Construction de la barre d'icones",
+ "Create Statusbar": "Construction de la barre de status",
+ "Register right panel" : "Enregistrement du panneau droit",
+ "Register left panel" : "Enregistrement du panneau gauche",
+ "Register bottom panel" : "Enregistrement du panneau supérieur",
+ "Register top panel" : "Enregistrement du panneau inférieur",
+ "Generate Xinha framework": "Génération de Xinha",
+ "Init editor size": "Initialisation de la taille d'édition",
+ "Init IFrame": "Initialisation de l'iframe",
+ "Register plugin $plugin": "Enregistrement du plugin $plugin",
+ "Loading plugin $plugin" : "Chargement du plugin $plugin"
+
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/lang/gb.js b/ccm-cms/web/assets/xinha/lang/gb.js
new file mode 100644
index 000000000..b4fb5b642
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/gb.js
@@ -0,0 +1,29 @@
+// I18N constants -- Chinese GB
+// by Dave Lo -- dlo@interactivetools.com
+{
+ "Bold": "粗体",
+ "Italic": "斜体",
+ "Underline": "底线",
+ "Strikethrough": "åˆ é™¤çº¿",
+ "Subscript": "ä¸‹æ ‡",
+ "Superscript": "ä¸Šæ ‡",
+ "Justify Left": "ä½ç½®é å·¦",
+ "Justify Center": "ä½ç½®å±…ä¸",
+ "Justify Right": "ä½ç½®é å³",
+ "Justify Full": "ä½ç½®å·¦å³å¹³ç‰",
+ "Ordered List": "é¡ºåºæ¸…å•",
+ "Bulleted List": "æ— åºæ¸…å•",
+ "Decrease Indent": "å‡å°è¡Œå‰ç©ºç™½",
+ "Increase Indent": "åŠ å®½è¡Œå‰ç©ºç™½",
+ "Font Color": "æ–‡å—颜色",
+ "Background Color": "背景颜色",
+ "Horizontal Rule": "水平线",
+ "Insert Web Link": "æ’入连结",
+ "Insert/Modify Image": "æ’入图形",
+ "Insert Table": "æ’å…¥è¡¨æ ¼",
+ "Toggle HTML Source": "切æ¢HTML原始ç ",
+ "Enlarge Editor": "放大",
+ "About this editor": "关於 Xinha",
+ "Help using editor": "说明",
+ "Current style": "å—体例å"
+}
diff --git a/ccm-cms/web/assets/xinha/lang/he.js b/ccm-cms/web/assets/xinha/lang/he.js
new file mode 100644
index 000000000..e39d3fc02
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/he.js
@@ -0,0 +1,64 @@
+// I18N constants
+
+// LANG: "he", ENCODING: UTF-8
+// Author: Liron Newman, http://www.eesh.net,
+
+// FOR TRANSLATORS:
+//
+// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE
+// (at least a valid email address)
+//
+// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING;
+// (if this is not possible, please include a comment
+// that states what encoding is necessary.)
+
+{
+ "Bold": "מודגש",
+ "Italic": "× ×˜×•×™",
+ "Underline": "קו תחתי",
+ "Strikethrough": "קו ×מצע",
+ "Subscript": "כתב עילי",
+ "Superscript": "כתב תחתי",
+ "Justify Left": " ישור לשמ×ל",
+ "Justify Center": "ישור למרכז",
+ "Justify Right": "ישור לימין",
+ "Justify Full": "ישור לשורה מל××”",
+ "Ordered List": "רשימה ממוספרת",
+ "Bulleted List": "רשימה ×œ× ×ž×ž×•×¡×¤×¨×ª",
+ "Decrease Indent": "הקטן ×›× ×™×¡×”",
+ "Increase Indent": "הגדל ×›× ×™×¡×”",
+ "Font Color": "צבע גופן",
+ "Background Color": "צבע רקע",
+ "Horizontal Rule": "קו ×× ×›×™",
+ "Insert Web Link": "×”×›× ×¡ היפר-קישור",
+ "Insert/Modify Image": "×”×›× ×¡/×©× ×” ×ª×ž×•× ×”",
+ "Insert Table": "×”×›× ×¡ טבלה",
+ "Toggle HTML Source": "×©× ×” מצב קוד HTML",
+ "Enlarge Editor": "הגדל ×ת העורך",
+ "About this editor": "×ודות עורך ×–×”",
+ "Help using editor": "עזרה לשימוש בעורך",
+ "Current style": "×¡×’× ×•×Ÿ × ×•×›×—×™",
+ "Undoes your last action": "מבטל ×ת פעולתך ×”××—×¨×•× ×”",
+ "Redoes your last action": "מבצע מחדש ×ת הפעולה ×”××—×¨×•× ×” שביטלת",
+ "Cut selection": "גזור בחירה",
+ "Copy selection": "העתק בחירה",
+ "Paste from clipboard": "הדבק מהלוח",
+ "Direction left to right": "כיוון משמ×ל לימין",
+ "Direction right to left": "כיוון מימין לשמ×ל",
+ "OK": "×ישור",
+ "Cancel": "ביטול",
+ "Path": "× ×ª×™×‘ עיצוב",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "×תה במצב טקסט × ×§×™ (קוד). השתמש בכפתור [<>] כדי לחזור למצב WYSIWYG (תצוגת עיצוב).",
+ "The full screen mode is known to cause problems with Internet Explorer, due to browser bugs that we weren": "מצב מסך ×ž×œ× ×™×•×¦×¨ בעיות בדפדפן Internet Explorer, עקב ב××’×™× ×‘×“×¤×“×¤×Ÿ ×œ× ×™×›×•×œ× ×• לפתור ×ת ×–×”. ×ת/×” עלול/×” לחוות תצוגת זבל, בעיות בתפקוד העורך ו/×ו קריסה של הדפדפן. ×× ×”×ž×¢×¨×›×ª שלך ×”×™× Windows 9x סביר ×œ×”× ×™×— שתקבל/×™ ",
+ "Cancel": "ביטול",
+ "Insert/Modify Link": "הוסף/×©× ×” קישור",
+ "New window (_blank)": "חלון חדש (_blank)",
+ "None (use implicit)": "×œ×œ× (השתמש ב-frame ×”×§×™×™×)",
+ "Other": "×חר",
+ "Same frame (_self)": "×ותו frame (_self)",
+ "Target:": "יעד:",
+ "Title (tooltip):": "כותרת (tooltip):",
+ "Top frame (_top)": "Frame עליון (_top)",
+ "URL:": "URL:",
+ "You must enter the URL where this link points to": "חובה לכתוב URL ש×ליו קישור ×–×” מצביע"
+}
diff --git a/ccm-cms/web/assets/xinha/lang/hu.js b/ccm-cms/web/assets/xinha/lang/hu.js
new file mode 100644
index 000000000..a4b1fa4eb
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/hu.js
@@ -0,0 +1,64 @@
+// I18N constants
+
+// LANG: "hu", ENCODING: UTF-8
+// Author: Miklós Somogyi,
+
+// FOR TRANSLATORS:
+//
+// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE
+// (at least a valid email address)
+//
+// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING;
+// (if this is not possible, please include a comment
+// that states what encoding is necessary.)
+
+{
+ "Bold": "Félkövér",
+ "Italic": "Dőlt",
+ "Underline": "Aláhúzott",
+ "Strikethrough": "Ãthúzott",
+ "Subscript": "Alsó index",
+ "Superscript": "Felső index",
+ "Justify Left": "Balra zárt",
+ "Justify Center": "Középre zárt",
+ "Justify Right": "Jobbra zárt",
+ "Justify Full": "Sorkizárt",
+ "Ordered List": "Számozott lista",
+ "Bulleted List": "Számozatlan lista",
+ "Decrease Indent": "Behúzás csökkentése",
+ "Increase Indent": "Behúzás növelése",
+ "Font Color": "KarakterszÃn",
+ "Background Color": "HáttérszÃn",
+ "Horizontal Rule": "Elválasztó vonal",
+ "Insert Web Link": "Hiperhivatkozás beszúrása",
+ "Insert/Modify Image": "Kép beszúrása",
+ "Insert Table": "Táblázat beszúrása",
+ "Toggle HTML Source": "HTML forrás be/ki",
+ "Enlarge Editor": "Szerkesztő külön ablakban",
+ "About this editor": "Névjegy",
+ "Help using editor": "Súgó",
+ "Current style": "Aktuális stÃlus",
+ "Undoes your last action": "Visszavonás",
+ "Redoes your last action": "Újra végrehajtás",
+ "Cut selection": "Kivágás",
+ "Copy selection": "Másolás",
+ "Paste from clipboard": "Beillesztés",
+ "Direction left to right": "Irány balról jobbra",
+ "Direction right to left": "Irány jobbról balra",
+ "OK": "Rendben",
+ "Cancel": "Mégsem",
+ "Path": "Hierarchia",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Forrás mód. Visszaváltás [<>] gomb",
+ "The full screen mode is known to cause problems with Internet Explorer, due to browser bugs that we weren": "A teljesképrenyÅ‘s szerkesztés hibát okozhat Internet Explorer használata esetén, ez a böngészÅ‘ a hibája, amit nem tudunk kikerülni. Szemetet észlelhet a képrenyÅ‘n, illetve néhány funkció hiányozhat és/vagy véletlenszerűen lefagyhat a böngészÅ‘. Windows 9x operaciós futtatása esetén elég valószÃnű, hogy ",
+ "Cancel": "Mégsem",
+ "Insert/Modify Link": "Hivatkozás Beszúrása/MódosÃtása",
+ "New window (_blank)": "Új ablak (_blank)",
+ "None (use implicit)": "Nincs (use implicit)",
+ "Other": "Más",
+ "Same frame (_self)": "Ugyanabba a keretbe (_self)",
+ "Target:": "Cél:",
+ "Title (tooltip):": "CÃm (tooltip):",
+ "Top frame (_top)": "Felső keret (_top)",
+ "URL:": "URL:",
+ "You must enter the URL where this link points to": "Be kell Ãrnia az URL-t, ahova a hivatkozás mutasson"
+}
diff --git a/ccm-cms/web/assets/xinha/lang/it.js b/ccm-cms/web/assets/xinha/lang/it.js
new file mode 100644
index 000000000..1c92f23db
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/it.js
@@ -0,0 +1,55 @@
+// I18N constants
+
+// LANG: "it", ENCODING: UTF-8
+// Author: Mattia Landoni, http://www.webpresident.org/
+
+{
+ "Bold": "Grassetto",
+ "Italic": "Corsivo",
+ "Underline": "Sottolineato",
+ "Strikethrough": "Barrato",
+ "Subscript": "Pedice",
+ "Superscript": "Apice",
+ "Justify Left": "Sinistra",
+ "Justify Center": "Centrato",
+ "Justify Right": "Destra",
+ "Justify Full": "Giustificato",
+ "Ordered List": "Lista numerata",
+ "Bulleted List": "Lista non numerata",
+ "Decrease Indent": "Diminuisci indentazione",
+ "Increase Indent": "Aumenta indentazione",
+ "Font Color": "Colore font",
+ "Background Color": "Colore sfondo",
+ "Horizontal Rule": "Righello orizzontale",
+ "Insert Web Link": "Inserisci link",
+ "Insert/Modify Image": "Inserisci/modifica Immagine",
+ "Insert Table": "Inserisci tabella",
+ "Toggle HTML Source": "Visualizza/nascondi sorgente HTML",
+ "Enlarge Editor": "Allarga editor",
+ "About this editor": "Informazioni su Xinha",
+ "Help using editor": "Aiuto",
+ "Current style": "Stile corrente",
+ "Undoes your last action": "Annulla ultima azione",
+ "Redoes your last action": "Ripeti ultima azione",
+ "Cut selection": "Taglia",
+ "Copy selection": "Copia",
+ "Paste from clipboard": "Incolla",
+ "Direction left to right": "Testo da sx a dx",
+ "Direction right to left": "Testo da dx a sx",
+ "OK": "OK",
+ "Cancel": "Annulla",
+ "Path": "Percorso",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Sei in MODALITA",
+ "The full screen mode is known to cause problems with Internet Explorer, due to browser bugs that we weren": "E",
+ "Cancel": "Annulla",
+ "Insert/Modify Link": "Inserisci/modifica link",
+ "New window (_blank)": "Nuova finestra (_blank)",
+ "None (use implicit)": "Niente (usa implicito)",
+ "Other": "Altro",
+ "Same frame (_self)": "Stessa frame (_self)",
+ "Target:": "Target:",
+ "Title (tooltip):": "Title (suggerimento):",
+ "Top frame (_top)": "Pagina intera (_top)",
+ "URL:": "URL:",
+ "You must enter the URL where this link points to": "Devi inserire l'indirizzo a cui punta il link"
+}
diff --git a/ccm-cms/web/assets/xinha/lang/ja.js b/ccm-cms/web/assets/xinha/lang/ja.js
new file mode 100644
index 000000000..dd8adf029
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/ja.js
@@ -0,0 +1,175 @@
+// I18N constants
+// LANG: "ja", ENCODING: UTF-8N
+
+{
+ "Bold": "太å—",
+ "Italic": "斜体",
+ "Underline": "下線",
+ "Strikethrough": "æ‰“ã¡æ¶ˆã—ç·š",
+ "Subscript": "ä¸‹ä»˜ãæ·»ãˆå—",
+ "Superscript": "ä¸Šä»˜ãæ·»ãˆå—",
+ "Justify Left": "左寄ã›",
+ "Justify Center": "ä¸å¤®å¯„ã›",
+ "Justify Right": "å³å¯„ã›",
+ "Justify Full": "å‡ç‰å‰²ä»˜",
+ "Ordered List": "番å·ä»˜ãç®‡æ¡æ›¸ã",
+ "Bulleted List": "記å·ä»˜ãç®‡æ¡æ›¸ã",
+ "Decrease Indent": "インデント解除",
+ "Increase Indent": "インデントè¨å®š",
+ "Font Color": "æ–‡å—色",
+ "Background Color": "背景色",
+ "Horizontal Rule": "水平線",
+ "Insert Web Link": "ãƒªãƒ³ã‚¯ã®æŒ¿å…¥",
+ "Insert/Modify Image": "ç”»åƒã®æŒ¿å…¥/ä¿®æ£",
+ "Insert Table": "テーブルを挿入",
+ "Toggle HTML Source": "HTML編集モードを切替",
+ "Enlarge Editor": "エディタを最大化",
+ "About this editor": "ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…å ±",
+ "Help using editor": "ヘルプ",
+ "Current style": "ç¾åœ¨ã®ã‚¹ã‚¿ã‚¤ãƒ«",
+ "Undoes your last action": "å…ƒã«æˆ»ã™",
+ "Redoes your last action": "やり直ã—",
+ "Cut selection": "切りå–り",
+ "Copy selection": "コピー",
+ "Paste from clipboard": "貼り付ã‘",
+ "Direction left to right": "å·¦ã‹ã‚‰å³ã¸",
+ "Direction right to left": "å³ã‹ã‚‰å·¦ã¸",
+ "Remove formatting": "書å¼å‰Šé™¤",
+ "Select all": "ã™ã¹ã¦é¸æŠž",
+ "Print document": "å°åˆ·",
+ "Clear MSOffice tags": "MSOfficeタグをクリア",
+ "Clear Inline Font Specifications": "インラインフォント指定をクリア",
+ "Would you like to clear font typefaces?": "フォントåをクリアã—ã¾ã™ã‹?",
+ "Would you like to clear font sizes?": "サイズをクリアã—ã¾ã™ã‹?",
+ "Would you like to clear font colours?": "色をクリアã—ã¾ã™ã‹?",
+ "Split Block": "é ˜åŸŸåˆ†å‰²",
+ "Toggle Borders": "境界線ã®åˆ‡æ›¿",
+ "Save as": "åå‰ã‚’ã¤ã‘ã¦ä¿å˜",
+ "Insert/Overwrite": "挿入/上書ã",
+ "— format —": "— æ›¸å¼ —",
+ "Heading 1": "見出ã—1",
+ "Heading 2": "見出ã—2",
+ "Heading 3": "見出ã—3",
+ "Heading 4": "見出ã—4",
+ "Heading 5": "見出ã—5",
+ "Heading 6": "見出ã—6",
+ "Normal": "標準",
+ "Address": "アドレス",
+ "Formatted": "整形済ã¿",
+ "— font —": "— フォント —",
+ "— size —": "— サイズ —",
+
+ //dialogs
+ "OK": "OK",
+ "Cancel": "䏿¢",
+ "Path": "パス",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "テã‚ã‚¹ãƒˆãƒ¢ãƒ¼ãƒ‰ã§æ“作ã—ã¦ã„ã¾ã™ã€‚WYSIWYGç·¨é›†ã«æˆ»ã‚‹ã«ã¯[<>]ボタンを使ã£ã¦ãã ã•ã„。",
+ "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "Mozillaベースã®Webブラウザã§ã¯ã€è²¼ã‚Šä»˜ã‘ãƒœã‚¿ãƒ³ã¯æ©Ÿèƒ½ã—ã¾ã›ã‚“(技術的ãªã‚»ã‚ュリティ上ã®ç†ç”±ã§ï¼‰ã€‚Ctrl+Vã‚ーを押ã—ã¦ç›´æŽ¥è²¼ã‚Šä»˜ã‘ã¦ãã ã•ã„。",
+ "Your Document is not well formed. Check JavaScript console for details.": "ã“ã®æ–‡æ›¸ã«ã¯æ§‹æ–‡çš„ãªå•題ãŒã‚りã¾ã™ã€‚詳細ã¯JavaScriptコンソールをå‚ç…§ã—ã¦ãã ã•ã„。",
+ "You need to select some text before creating a link": "リンクを作æˆã™ã‚‹ã«ã¯ãƒ†ã‚ã‚¹ãƒˆã‚’é¸æŠžã™ã‚‹å¿…è¦ãŒã‚りã¾ã™",
+
+ "Alignment:": "行æƒãˆ:",
+ "Not set": "ãªã—",
+ "Left": "å·¦",
+ "Right": "å³",
+ "Texttop": "テã‚スト上部",
+ "Absmiddle": "ä¸å¤®(絶対的)",
+ "Baseline": "ベースライン",
+ "Absbottom": "下(絶対的)",
+ "Bottom": "下",
+ "Middle": "ä¸å¤®",
+ "Top": "上",
+
+ "Layout": "レイアウト",
+ "Spacing": "é–“éš”",
+ "Horizontal:": "æ°´å¹³:",
+ "Horizontal padding": "水平余白",
+ "Vertical:": "垂直:",
+ "Vertical padding": "垂直余白",
+ "Border thickness:": "境界線ã®å¤ªã•:",
+ "Leave empty for no border": "境界線ãŒãªã„å ´åˆã¯ç©ºã®ã¾ã¾ã«ã™ã‚‹",
+
+ //Insert Link
+ "Insert/Modify Link": "ãƒªãƒ³ã‚¯ã®æŒ¿å…¥/ä¿®æ£",
+ "None (use implicit)": "ãªã— (デフォルトã«ä»»ã›ã‚‹)",
+ "New window (_blank)": "æ–°ã—ã„ウィンドウ (_blank)",
+ "Same frame (_self)": "自己フレーム内 (_self)",
+ "Top frame (_top)": "最上ä½ãƒ•レーム(_top)",
+ "Other": "ãã®ä»–",
+ "Target:": "ターゲット:",
+ "Title (tooltip):": "タイトル:",
+ "URL:": "URL:",
+ "You must enter the URL where this link points to": "ã“ã®ãƒªãƒ³ã‚¯ãŒæŒ‡ã—示ã™URLを入力ã—ã¦ãã ã•ã„",
+
+ // Insert Table
+ "Insert Table": "ãƒ†ãƒ¼ãƒ–ãƒ«ã®æŒ¿å…¥",
+ "Rows:": "行:",
+ "Number of rows": "行数",
+ "Cols:": "列:",
+ "Number of columns": "列数",
+ "Width:": "å¹…:",
+ "Width of the table": "テーブルã®å¹…",
+ "Percent": "パーセント(%)",
+ "Pixels": "ピクセル(px)",
+ "Em": "相対値(em)",
+ "Width unit": "å¹…ã®å˜ä½",
+ "Fixed width columns": "列ã®å¹…を固定",
+ "Positioning of this table": "ã“ã®ãƒ†ãƒ¼ãƒ–ルã®é…ç½®",
+ "Cell spacing:": "セル間隔:",
+ "Space between adjacent cells": "隣接ã™ã‚‹ã‚»ãƒ«é–“ã®è·é›¢",
+ "Cell padding:": "セル余白:",
+ "Space between content and border in cell": "セル内ã«ãŠã‘る内容ã¨å¢ƒç•Œç·šã¨ã®è·é›¢",
+ "You must enter a number of rows": "行数を入力ã—ã¦ãã ã•ã„",
+ "You must enter a number of columns": "列数を入力ã—ã¦ãã ã•ã„",
+
+ // Insert Image
+ "Insert Image": "ç”»åƒã®æŒ¿å…¥",
+ "Image URL:": "ç”»åƒURL:",
+ "Enter the image URL here": "ç”»åƒã®URLã‚’ã“ã“ã«å…¥åŠ›ã—ã¾ã™",
+ "Preview": "表示",
+ "Preview the image in a new window": "ウィンドウã§ç”»åƒã‚’表示",
+ "Alternate text:": "代替テã‚スト:",
+ "For browsers that don't support images": "ç”»åƒè¡¨ç¤ºã‚’サãƒãƒ¼ãƒˆã—ãªã„ブラウザã«å¿…è¦ã§ã™",
+ "Positioning of this image": "ç”»åƒã®é…ç½®",
+ "Image Preview:": "ç”»åƒè¡¨ç¤º:",
+ "You must enter the URL": "URLを入力ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™",
+
+ //"button_bold": "fr/bold.gif",
+ //"button_underline": "fr/underline.gif",
+ //"button_strikethrough": "fr/strikethrough.gif",
+
+ // Editor Help
+ "Xinha Help": "ヘルプ",
+ "Editor Help": "エディタã®ãƒ˜ãƒ«ãƒ—",
+ "Keyboard shortcuts": "ã‚ーボードショートカット",
+ "The editor provides the following key combinations:": "エディタã¯ä»¥ä¸‹ã®ã‚ーæ“作をæä¾›ã—ã¦ã„ã¾ã™:",
+ "ENTER": "ENTER",
+ "new paragraph": "æ–°è¦æ®µè½",
+ "SHIFT-ENTER": "SHIFT+ENTER",
+ "insert linebreak": "段è½å†…æ”¹è¡Œã®æŒ¿å…¥",
+ "Set format to paragraph": "æ®µè½æ›¸å¼ã®è¨å®š",
+ "Clean content pasted from Word": "Wordã‹ã‚‰è²¼ã‚Šä»˜ã‘られãŸå†…å®¹ã®æ¸…書",
+ "Headings": "見出ã—",
+ "Close": "é–‰ã˜ã‚‹",
+
+ // Loading messages
+ "Loading in progress. Please wait!": "ãƒãƒ¼ãƒ‰ä¸ã§ã™ã€‚ã—ã°ã‚‰ããŠå¾…ã¡ãã ã•ã„",
+ "Loading plugin $plugin" : "ãƒãƒ¼ãƒ‰ä¸ãƒ—ラグイン $plugin",
+ "Register plugin $plugin" : "登録ä¸ãƒ—ラグイン $plugin",
+ "Constructing object": "オブジェクト構築ä¸",
+ "Generate Xinha framework": "Xinhaフレームワーク生æˆä¸",
+ "Init editor size":"エディタサイズã®åˆæœŸåŒ–",
+ "Create Toolbar": "ツールãƒãƒ¼ã®ä½œæˆ",
+ "Create Statusbar" : "ステータスãƒãƒ¼ã®ä½œæˆ",
+ "Register right panel" : "登録 å³ãƒ‘ãƒãƒ«",
+ "Register left panel" : "登録 左パãƒãƒ«",
+ "Register bottom panel" : "登録 下パãƒãƒ«",
+ "Register top panel" : "登録 上パãƒãƒ«",
+ "Finishing" : "完了",
+
+ // ColorPicker
+ "Click a color..." : "色をクリック...",
+ "Sample" : "サンプル",
+ "Web Safe: " : "Webセーフ: ",
+ "Color: " : "色: "
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/lang/lt.js b/ccm-cms/web/assets/xinha/lang/lt.js
new file mode 100644
index 000000000..ea3400955
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/lt.js
@@ -0,0 +1,53 @@
+// I18N constants
+
+// LANG: "lt", ENCODING: UTF-8
+// Author: Jaroslav Å atkeviÄ,
+
+{
+ "Bold": "Paryškinti",
+ "Italic": "Kursyvas",
+ "Underline": "Pabraukti",
+ "Strikethrough": "Perbraukti",
+ "Subscript": "Apatinis indeksas",
+ "Superscript": "Viršutinis indeksas",
+ "Justify Left": "Lygiavimas pagal kairÄ™",
+ "Justify Center": "Lygiavimas pagal centrÄ…",
+ "Justify Right": "Lygiavimas pagal dešinę",
+ "Justify Full": "Lygiuoti pastraipÄ…",
+ "Ordered List": "Numeruotas sąrašas",
+ "Bulleted List": "Suženklintas sąrašas",
+ "Decrease Indent": "Sumažinti paraštę",
+ "Increase Indent": "Padidinti paraštę",
+ "Font Color": "Å rifto spalva",
+ "Background Color": "Fono spalva",
+ "Horizontal Rule": "Horizontali linija",
+ "Insert Web Link": "Įterpti nuorodą",
+ "Insert/Modify Image": "Įterpti paveiksliuką",
+ "Insert Table": "Įterpti lentelę",
+ "Toggle HTML Source": "Perjungti į HTML/WYSIWYG",
+ "Enlarge Editor": "Išplėstas redagavimo ekranas/Enlarge Editor",
+ "About this editor": "Apie redaktorių",
+ "Help using editor": "Pagalba naudojant redaktorių",
+ "Current style": "Dabartinis stilius",
+ "Undoes your last action": "Atšaukia paskutini jūsų veiksmą",
+ "Redoes your last action": "Pakartoja paskutinį atšauktą jūsų veiksmą",
+ "Cut selection": "Iškirpti",
+ "Copy selection": "Kopijuoti",
+ "Paste from clipboard": "Įterpti",
+ "OK": "OK",
+ "Cancel": "Atšaukti",
+ "Path": "Kelias",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Jūs esete teksto režime. Naudokite [<>] mygtuką grįžimui į WYSIWYG.",
+ "The full screen mode is known to cause problems with Internet Explorer, due to browser bugs that we weren": "The full screen mode is known to cause problems with Internet Explorer, due to browser bugs that we weren",
+ "Cancel": "Atšaukti",
+ "Insert/Modify Link": "IdÄ—ti/Modifikuoti",
+ "New window (_blank)": "Naujas langas (_blank)",
+ "None (use implicit)": "None (use implicit)",
+ "Other": "Kitas",
+ "Same frame (_self)": "Same frame (_self)",
+ "Target:": "Target:",
+ "Title (tooltip):": "Pavadinimas (tooltip):",
+ "Top frame (_top)": "Top frame (_top)",
+ "URL:": "URL:",
+ "You must enter the URL where this link points to": "Jus privalote nurodyti URL į kuri rodo šitą nuoroda"
+}
diff --git a/ccm-cms/web/assets/xinha/lang/lv.js b/ccm-cms/web/assets/xinha/lang/lv.js
new file mode 100644
index 000000000..840b4e793
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/lv.js
@@ -0,0 +1,42 @@
+// I18N constants
+
+// LANG: "lv", ENCODING: UTF-8
+// Author: Mihai Bazon, http://dynarch.com/mishoo
+// Translated by: Janis Klavins,
+
+{
+ "Bold": "Trekniem burtiem",
+ "Italic": "Kursîvâ",
+ "Underline": "Pasvîtrots",
+ "Strikethrough": "Pârsvîtrots",
+ "Subscript": "Novietot zem rindas",
+ "Superscript": "Novietot virs rindas",
+ "Justify Left": "Izlîdzinât pa kreisi",
+ "Justify Center": "Izlîdzinât centrâ",
+ "Justify Right": "Izlîdzinât pa labi",
+ "Justify Full": "Izlîdzinât pa visu lapu",
+ "Ordered List": "Numurçts saraksts",
+ "Bulleted List": "Saraksts",
+ "Decrease Indent": "Samazinât atkâpi",
+ "Increase Indent": "Palielinât atkâpi",
+ "Font Color": "Burtu krâsa",
+ "Background Color": "Fona krâsa",
+ "Horizontal Rule": "Horizontâla atdalîtâjsvîtra",
+ "Insert Web Link": "Ievietot hipersaiti",
+ "Insert/Modify Image": "Ievietot attçlu",
+ "Insert Table": "Ievietot tabulu",
+ "Toggle HTML Source": "Skatît HTML kodu",
+ "Enlarge Editor": "Palielinât Rediìçtâju",
+ "About this editor": "Par ðo rediìçtâju",
+ "Help using editor": "Rediìçtâja palîgs",
+ "Current style": "Patreizçjais stils",
+ "Undoes your last action": "Atcelt pçdçjo darbîbu",
+ "Redoes your last action": "Atkârtot pçdçjo darbîbu",
+ "Cut selection": "Izgriezt iezîmçto",
+ "Copy selection": "Kopçt iezîmçto",
+ "Paste from clipboard": "Ievietot iezîmçto",
+ "OK": "Labi",
+ "Cancel": "Atcelt",
+ "Path": "Ceïð",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Jûs patlaban darbojaties TEKSTA REÞÎMÂ. Lai pârietu atpakaï uz GRAFISKO REÞÎMU (WYSIWIG), lietojiet [<>] pogu."
+}
diff --git a/ccm-cms/web/assets/xinha/lang/nb.js b/ccm-cms/web/assets/xinha/lang/nb.js
new file mode 100644
index 000000000..06943790f
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/nb.js
@@ -0,0 +1,78 @@
+// I18N constants
+
+// LANG: "nb", ENCODING: UTF-8
+
+// - translated by ses
+// Additional translations by HÃ¥vard Wigtil
+// Additional translations by Kim Steinhaug
+
+{
+ "Bold": "Fet",
+ "Italic": "Kursiv",
+ "Underline": "Understreket",
+ "Strikethrough": "Gjennomstreket",
+ "Subscript": "Nedsenket",
+ "Superscript": "Opphøyet",
+ "Justify Left": "Venstrejuster",
+ "Justify Center": "Midtjuster",
+ "Justify Right": "Høyrejuster",
+ "Justify Full": "Blokkjuster",
+ "Ordered List": "Nummerert liste",
+ "Bulleted List": "Punktliste",
+ "Decrease Indent": "Reduser innrykk",
+ "Increase Indent": "Øke innrykk",
+ "Font Color": "Tekstfarge",
+ "Background Color": "Bakgrundsfarge",
+ "Horizontal Rule": "Vannrett linje",
+ "Insert Web Link": "Lag lenke",
+ "Insert/Modify Image": "Sett inn bilde",
+ "Insert Table": "Sett inn tabell",
+ "Toggle HTML Source": "Vis kildekode",
+ "Enlarge Editor": "Vis i eget vindu",
+ "About this editor": "Om denne editor",
+ "Help using editor": "Hjelp",
+ "Current style": "Nåværende stil",
+ "Undoes your last action": "Angrer siste redigering",
+ "Redoes your last action": "Gjør om siste angring",
+ "Cut selection": "Klipp ut område",
+ "Copy selection": "Kopier område",
+ "Save as": "Lagre som",
+ "Paste from clipboard": "Lim inn",
+ "Remove formatting": "Fjern formattering",
+ "Direction left to right": "Fra venstre mot høyre",
+ "Direction right to left": "Fra høyre mot venstre",
+ "Insert/Overwrite": "Sett inn/Overskriv",
+ "OK": "OK",
+ "Cancel": "Avbryt",
+ "Path": "Tekstvelger",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Du er i tekstmodus Klikk på [<>] for å gå tilbake til WYSIWIG.",
+ "The full screen mode is known to cause problems with Internet Explorer, due to browser bugs that we weren": "Visning i eget vindu har kjente problemer med Internet Explorer, på grunn av problemer med denne nettleseren. Mulige problemer er et uryddig skjermbilde, manglende editorfunksjoner og/eller at nettleseren crasher. Hvis du bruker Windows 95 eller Windows 98 er det også muligheter for at Windows will crashe.\n\nTrykk ",
+ "Cancel": "Avbryt",
+ "Insert/Modify Link": "Rediger lenke",
+ "New window (_blank)": "Eget vindu (_blank)",
+ "None (use implicit)": "Ingen (bruk standardinnstilling)",
+ "Other": "Annen",
+ "Same frame (_self)": "Samme ramme (_self)",
+ "Target:": "MÃ¥l:",
+ "Title (tooltip):": "Tittel (tooltip):",
+ "Top frame (_top)": "Toppramme (_top)",
+ "URL:": "Adresse:",
+ "You must enter the URL where this link points to": "Du må skrive inn en adresse som denne lenken skal peke til",
+ "Clear Inline Font Specifications": "Fjerne inline font spesifikasjoner",
+ "Would you like to clear font typefaces?": "Ønsker du å fjerne skrifttyper",
+ "Would you like to clear font sizes?": "Ønsker du å fjerne skrift størrelser",
+ "Would you like to clear font colours?": "Ønsker du å fjerne farger på skriften",
+ "Print document": "Skriv ut dokumentet",
+ "Split Block": "Seperasjonsblokk",
+ "Toggle Borders": "Skru av/på hjelpelinjer på tabeller",
+ "Select all": "Merk alt",
+ // Loading messages
+ "Loading in progress. Please wait !": "WYSIWYG laster, vennligst vent!",
+ "Constructing main object": "Vennligst vent",
+ "Create Toolbar": "Lag verktøylinje",
+ "Register panel right": "Registrer høyrepanel",
+ "Register panel left": "Registrer venstrepanel",
+ "Register panel top": "Registrer toppanel",
+ "Register panel bottom": "Registrer bunnpanel"
+
+};
diff --git a/ccm-cms/web/assets/xinha/lang/nl.js b/ccm-cms/web/assets/xinha/lang/nl.js
new file mode 100644
index 000000000..13042cab0
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/nl.js
@@ -0,0 +1,64 @@
+// I18N constants
+
+// LANG: "nl", ENCODING: UTF-8
+// Author: Michel Weegeerink (info@mmc-shop.nl), http://mmc-shop.nl
+
+// FOR TRANSLATORS:
+//
+// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE
+// (at least a valid email address)
+//
+// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING;
+// (if this is not possible, please include a comment
+// that states what encoding is necessary.)
+
+{
+ "Bold": "Vet",
+ "Italic": "Cursief",
+ "Underline": "Onderstrepen",
+ "Strikethrough": "Doorhalen",
+ "Subscript": "Subscript",
+ "Superscript": "Superscript",
+ "Justify Left": "Links uitlijnen",
+ "Justify Center": "Centreren",
+ "Justify Right": "Rechts uitlijnen",
+ "Justify Full": "Uitvullen",
+ "Ordered List": "Nummering",
+ "Bulleted List": "Opsommingstekens",
+ "Decrease Indent": "Inspringing verkleinen",
+ "Increase Indent": "Inspringing vergroten",
+ "Font Color": "Tekstkleur",
+ "Background Color": "Achtergrondkleur",
+ "Horizontal Rule": "Horizontale lijn",
+ "Insert Web Link": "Hyperlink invoegen/aanpassen",
+ "Insert/Modify Image": "Afbeelding invoegen/aanpassen",
+ "Insert Table": "Tabel invoegen",
+ "Toggle HTML Source": "HTML broncode",
+ "Enlarge Editor": "Vergroot Editor",
+ "About this editor": "Over deze editor",
+ "Help using editor": "Xinha help",
+ "Current style": "Huidige stijl",
+ "Undoes your last action": "Ongedaan maken",
+ "Redoes your last action": "Herhalen",
+ "Cut selection": "Knippen",
+ "Copy selection": "Kopi?ren",
+ "Paste from clipboard": "Plakken",
+ "Direction left to right": "Tekstrichting links naar rechts",
+ "Direction right to left": "Tekstrichting rechts naar links",
+ "OK": "OK",
+ "Cancel": "Annuleren",
+ "Path": "Pad",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Je bent in TEKST-mode. Gebruik de [<>] knop om terug te keren naar WYSIWYG-mode.",
+ "The full screen mode is known to cause problems with Internet Explorer, due to browser bugs that we weren": "Fullscreen-mode veroorzaakt problemen met Internet Explorer door bugs in de webbrowser die we niet kunnen omzeilen. Hierdoor kunnen de volgende effecten optreden: verknoeide teksten, een verlies aan editor-functionaliteit en/of willekeurig vastlopen van de webbrowser. Als u Windows 95 of 98 gebruikt, is het zeer waarschijnlijk dat u een algemene beschermingsfout (",
+ "Cancel": "Annuleren",
+ "Insert/Modify Link": "Hyperlink invoegen/aanpassen",
+ "New window (_blank)": "Nieuw venster (_blank)",
+ "None (use implicit)": "Geen",
+ "Other": "Ander",
+ "Same frame (_self)": "Zelfde frame (_self)",
+ "Target:": "Doel:",
+ "Title (tooltip):": "Titel (tooltip):",
+ "Top frame (_top)": "Bovenste frame (_top)",
+ "URL:": "URL:",
+ "You must enter the URL where this link points to": "Geef de URL in waar de link naar verwijst"
+}
diff --git a/ccm-cms/web/assets/xinha/lang/pl.js b/ccm-cms/web/assets/xinha/lang/pl.js
new file mode 100644
index 000000000..b5bd5ce1d
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/pl.js
@@ -0,0 +1,125 @@
+// I18N constants
+// LANG: "pl", ENCODING: UTF-8
+// translated: Krzysztof Kotowicz, http://www.eskot.krakow.pl/portfolio/, koto@webworkers.pl
+{
+ "Bold": "Pogrubienie",
+ "Italic": "Pochylenie",
+ "Underline": "Podkreślenie",
+ "Strikethrough": "Przekreślenie",
+ "Subscript": "Indeks dolny",
+ "Superscript": "Indeks górny",
+ "Justify Left": "Wyrównaj do lewej",
+ "Justify Center": "Wyśrodkuj",
+ "Justify Right": "Wyrównaj do prawej",
+ "Justify Full": "Wyjustuj",
+ "Ordered List": "Numerowanie",
+ "Bulleted List": "Wypunktowanie",
+ "Decrease Indent": "Zmniejsz wcięcie",
+ "Increase Indent": "Zwiększ wcięcie",
+ "Font Color": "Kolor czcionki",
+ "Background Color": "Kolor tła",
+ "Horizontal Rule": "Linia pozioma",
+ "Insert Web Link": "Wstaw adres sieci Web",
+ "Insert/Modify Image": "Wstaw obraz",
+ "Insert Table": "Wstaw tabelÄ™",
+ "Toggle HTML Source": "Edycja WYSIWYG/w źródle strony",
+ "Enlarge Editor": "Pełny ekran",
+ "About this editor": "Informacje o tym edytorze",
+ "Help using editor": "Pomoc",
+ "Current style": "Obecny styl",
+ "Undoes your last action": "Cofa ostatnio wykonane polecenie",
+ "Redoes your last action": "Ponawia ostatnio wykonane polecenie",
+ "Cut selection": "Wycina zaznaczenie do schowka",
+ "Copy selection": "Kopiuje zaznaczenie do schowka",
+ "Paste from clipboard": "Wkleja zawartość schowka",
+ "Direction left to right": "Kierunek tekstu lewo-prawo",
+ "Direction right to left": "Kierunek tekstu prawo-lewo",
+ "Remove formatting": "Usuń formatowanie",
+ "Select all": "Zaznacz wszystko",
+ "Print document": "Drukuj dokument",
+ "Clear MSOffice tags": "Wyczyść tagi MSOffice",
+ "Clear Inline Font Specifications": "Wycisz bezpośrednie przypisania czcionek",
+ "Split Block": "Podziel blok",
+ "Toggle Borders": "Włącz / wyłącz ramki",
+
+ "— format —": "— Format —",
+ "Heading 1": "Nagłówek 1",
+ "Heading 2": "Nagłówek 2",
+ "Heading 3": "Nagłówek 3",
+ "Heading 4": "Nagłówek 4",
+ "Heading 5": "Nagłówek 5",
+ "Heading 6": "Nagłówek 6",
+ "Normal": "Normalny",
+ "Address": "Adres",
+ "Formatted": "Preformatowany",
+
+ //dialogs
+ "OK": "OK",
+ "Cancel": "Anuluj",
+ "Path": "Ścieżka",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Jesteś w TRYBIE TEKSTOWYM. Użyj przycisku [<>], aby przełączyć się na tryb WYSIWYG.",
+ "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "Przycisk Wklej nie działa w przeglądarkach Mozilla z uwagi na ustawienia bezpieczeństwa. Naciśnij CRTL-V, aby wkleić zawartość schowka.",
+
+ "Alignment:": "Wyrównanie:",
+ "Not set": "Nie ustawione",
+ "Left": "Do lewej",
+ "Right": "Do prawej",
+ "Texttop": "Góra tekstu",
+ "Absmiddle": "Abs. środek",
+ "Baseline": "Linia bazowa",
+ "Absbottom": "Abs. dół",
+ "Bottom": "Dół",
+ "Middle": "Åšrodek",
+ "Top": "Góra",
+
+ "Layout": "Layout",
+ "Spacing": "Spacjowanie",
+ "Horizontal:": "Poziome:",
+ "Horizontal padding": "Wcięcie poziome",
+ "Vertical:": "Pionowe:",
+ "Vertical padding": "Wcięcie pionowe",
+ "Border thickness:": "Grubość obramowania:",
+ "Leave empty for no border": "Bez ramek - zostaw puste",
+
+ //Insert Link
+ "Insert/Modify Link": "Wstaw/edytuj odnośnik",
+ "None (use implicit)": "Brak",
+ "New window (_blank)": "Nowe okno (_blank)",
+ "Same frame (_self)": "Ta sama ramka (_self)",
+ "Top frame (_top)": "Główna ramka (_top)",
+ "Other": "Inne",
+ "Target:": "Okno docelowe:",
+ "Title (tooltip):": "Tytuł (tooltip):",
+ "URL:": "URL:",
+ "You must enter the URL where this link points to": "Musisz podać URL, na jaki będzie wskazywał odnośnik",
+
+ // Insert Table
+ "Insert Table": "Wstaw tabelÄ™",
+ "Rows:": "Wierszy:",
+ "Number of rows": "Liczba wierszy",
+ "Cols:": "Kolumn:",
+ "Number of columns": "Liczba kolumn",
+ "Width:": "Szerokość:",
+ "Width of the table": "Szerokość tabeli",
+ "Percent": "Procent",
+ "Pixels": "Pikseli",
+ "Em": "Em",
+ "Width unit": "Jednostka",
+ "Fixed width columns": "Kolumny o stałej szerokości",
+ "Positioning of this table": "Pozycjonowanie tabeli",
+ "Cell spacing:": "Odstęp komórek:",
+ "Space between adjacent cells": "Przestrzeń pomiędzy komórkami",
+ "Cell padding:": "Wcięcie komórek:",
+ "Space between content and border in cell": "Przestrzeń między krawędzią a zawartością komórki",
+
+ // Insert Image
+ "Insert Image": "Wstaw obrazek",
+ "Image URL:": "URL obrazka:",
+ "Enter the image URL here": "Podaj URL obrazka",
+ "Preview": "PodglÄ…d",
+ "Preview the image in a new window": "PodglÄ…d obrazka w nowym oknie",
+ "Alternate text:": "Tekst alternatywny:",
+ "For browsers that don't support images": "Dla przeglądarek, które nie obsługują obrazków",
+ "Positioning of this image": "Pozycjonowanie obrazka",
+ "Image Preview:": "PodglÄ…d obrazka:"
+}
diff --git a/ccm-cms/web/assets/xinha/lang/pt_br.js b/ccm-cms/web/assets/xinha/lang/pt_br.js
new file mode 100644
index 000000000..501396b2b
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/pt_br.js
@@ -0,0 +1,184 @@
+// I18N constants
+//
+// LANG: "pt_br", ENCODING: UTF-8
+// Portuguese Brazilian Translation
+//
+// Initial basic work by Alex Piaz
+//
+// Author: Marcio Barbosa,
+// MSN: tomarshall@msn.com - ICQ: 69419933
+// Site: http://www.mpg.com.br
+//
+// Last revision: 06 september 2007
+// Please don´t remove this information
+// If you modify any source, please insert a comment with your name and e-mail
+//
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt)
+{
+ "About": "Sobre",
+ "About Xinha": "Sobre o Xinha",
+ "Absbottom": "Inferior absoluto",
+ "Absmiddle": "Meio absoluto",
+ "Alignment:": "Alinhamento",
+ "Alternate text:": "Texto alternativo",
+ "Baseline": "Linha base",
+ "Bold": "Negrito",
+ "Border thickness:": "Espessura da borda",
+ "Bottom": "Botão",
+ "CTRL-0 (zero)": "CTRL-0 (zero)",
+ "CTRL-1 .. CTRL-6": "CTRL-1 .. CTRL-6",
+ "CTRL-A": "CTRL-A",
+ "CTRL-B": "CTRL-B",
+ "CTRL-C": "CTRL-C",
+ "CTRL-E": "CTRL-E",
+ "CTRL-I": "CTRL-I",
+ "CTRL-J": "CTRL-J",
+ "CTRL-L": "CTRL-L",
+ "CTRL-N": "CTRL-N",
+ "CTRL-R": "CTRL-R",
+ "CTRL-S": "CTRL-S",
+ "CTRL-U": "CTRL-U",
+ "CTRL-V": "CTRL-V",
+ "CTRL-X": "CTRL-X",
+ "CTRL-Y": "CTRL-Y",
+ "CTRL-Z": "CTRL-Z",
+ "Cancel": "Cancelar",
+ "Cell padding:": "Espaçamento interno da célula:",
+ "Cell spacing:": "Espaçamento da célula:",
+ "Clean content pasted from Word": "Limpar conteúdo copiado do Word",
+ "Close": "Fechar",
+ "Collapse borders:": "Bordas fechadas:",
+ "Cols:": "Colunas:",
+ "Constructing object": "Construindo objeto",
+ "Copy selection": "Copiar seleção",
+ "Create Statusbar": "Criar barra de informação (statusbar)",
+ "Create Toolbar": "Criar Barra de Ferramentas",
+ "Current style": "Estilo Atual",
+ "Cut selection": "Recortar seleção",
+ "Developer": "Desenvolvedor",
+ "ENTER": "ENTRAR",
+ "Editor Help": "Ajuda do Editor",
+ "Em": "Em",
+ "Enter the image URL here": "Entre aqui com a URL da imagem",
+ "Finishing": "Terminando",
+ "Fixed width columns": "Colunas com largura fixa",
+ "For browsers that don't support images": "Para navegadores que não suportam imagens",
+ "Generate Xinha framework": "Gerar Ãrea de Trabalho do Xinha",
+ "Headings": "TÃtulos",
+ "Horizontal padding": "Espaçamento interno horizontal",
+ "Horizontal:": "Horizontal:",
+ "Image Preview:": "Visualização da Imagem:",
+ "Image URL:": "URL da imagem:",
+ "Init editor size": "Iniciar tamanho do editor",
+ "Insert Image": "Inserir Imagem",
+ "Insert Table": "Inserir Tabela",
+ "Insert/Modify Link": "Inserir/Modificar Link",
+ "Italic": "Itálico",
+ "Justify Center": "Justificar Centralizado",
+ "Justify Full": "Justificar Completamente",
+ "Justify Left": "Justificar à Esquerda",
+ "Justify Right": "Justificar à Direita",
+ "Keyboard shortcuts": "Atalhos de Teclado",
+ "Layout": "Esquema",
+ "Leave empty for no border": "Deixe em branco para não ter bordas",
+ "Left": "Esquerda",
+ "License": "Licença",
+ "Loading in progress. Please wait!": "Carregamento em processo. Por favor, aguarde!",
+ "Middle": "Meio",
+ "Name": "Nome",
+ "New window (_blank)": "Nova janela (_blank)",
+ "None (use implicit)": "Nenhum (uso implicito)",
+ "Not set": "Não definido",
+ "Number of columns": "Número de colunas",
+ "Number of rows": "Número de linhas",
+ "OK": "OK",
+ "Paste from clipboard": "Colar da Ãrea de Transferência",
+ "Path": "Caminho",
+ "Percent": "Porcentagem",
+ "Pixels": "Pixels",
+ "Plugins": "Plugins",
+ "Positioning of this image": "Posicionamento desta imagem",
+ "Positioning of this table": "Posicionamento desta tabela",
+ "Preview": "Visualização",
+ "Preview the image in a new window": "Visualizar a imagem em uma nova janela",
+ "Redoes your last action": "Refazer sua última ação",
+ "Right": "Direita",
+ "Rows:": "Linhas:",
+ "SHIFT-ENTER": "SHIFT-ENTER",
+ "Same frame (_self)": "Mesmo frame (_self)",
+ "Select Color": "Selecionar côr",
+ "Select all": "Selecionar tudo",
+ "Set format to paragraph": "Definir formato para o parágrafo",
+ "Space between adjacent cells": "Espaço entre células adjacentes",
+ "Space between content and border in cell": "Espaço entre conteúdo e borda na célula",
+ "Spacing": "Espaçamento",
+ "Sponsored by": "Patrocinado por",
+ "Strikethrough": "Tachado",
+ "Target:": "Destino:",
+ "Texttop": "Texto no topo",
+ "Thanks": "Agradecimentos",
+ "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "O botão Colar não funciona em navegadores baseado no Mozilla (por razões técnicas de segurança). Pressione CTRL-V no seu teclado para colar diretamente.",
+ "The editor provides the following key combinations:": "Este editor fornece a seguinte combinação de teclas:",
+ "Title (tooltip):": "TÃtulo (tooltip)",
+ "Top": "Topo",
+ "Top frame (_top)": "Frame no topo (_top)",
+ "URL:": "URL:",
+ "Underline": "Sublinhado",
+ "Undoes your last action": "Desfazer sua última ação",
+ "Version": "Versão",
+ "Vertical padding": "Espaçamento interno vertical",
+ "Vertical:": "Vertical:",
+ "Width of the table": "Larguran da tabela",
+ "Width unit": "Unidade de largura",
+ "Width:": "Largura:",
+ "Would you like to clear font colours?": "Deseja limpar as cores de fonte",
+ "Would you like to clear font sizes?": "Deseja limpar os tamanhos de fonte",
+ "Would you like to clear font typefaces?": "Deseja limpar os tipos de fonte",
+ "Xinha Help": "Ajuda do Xinha",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Você está no MODO TEXTO. Use o botão [<>] para mudar para o modo de Visualização (WYSIWYG)",
+ "Your Document is not well formed. Check JavaScript console for details.": "Seu Documento não está formatado corretamente. Verifique o console do JavaScript para maiores detalhes.",
+ "insert linebreak": "inserir quebra de linha",
+ "new paragraph": "novo parágrafo",
+
+ // not find with lc_parse_strings.php
+ "Subscript": "Subescrito",
+ "Superscript": "Sobrescrito",
+ "Direction left to right": "Da esquerda para direita",
+ "Direction right to left": "Da direita para esquerda",
+ "Remove formatting": "Remover formatação",
+ "Select all": "Selecionar tudo",
+ "Print document": "Imprimir documento",
+ "Clear MSOffice tags": "Limpar tags do MS Office",
+ "Clear Inline Font Specifications": "Limpar especificações de fontes inline",
+ "Split Block": "Dividir Bloco",
+ "Toggle Borders": "Mudar Bordas",
+ "Save as": "Salvar como",
+ "Insert/Overwrite": "Inserir/Sobrescrever",
+ "— format —": "— formato —",
+ "Heading 1": "TÃtulo 1",
+ "Heading 2": "TÃtulo 2",
+ "Heading 3": "TÃtulo 3",
+ "Heading 4": "TÃtulo 4",
+ "Heading 5": "TÃtulo 5",
+ "Heading 6": "TÃtulo 6",
+ "Normal": "Normal",
+ "Address": "Endereço",
+ "Formatted": "Formatado",
+ "— font —": "— fonte —",
+ "— size —": "— tamanho —",
+ "Ordered List": "Lista Numerada",
+ "Bulleted List": "Lista Marcadores",
+ "Decrease Indent": "Diminuir Indentação",
+ "Increase Indent": "Aumentar Indentação",
+ "Font Color": "Cor da Fonte",
+ "Background Color": "Cor do Fundo",
+ "Horizontal Rule": "Linha Horizontal",
+ "Insert Web Link": "Inserir Link",
+ "Insert/Modify Image": "Inserir/Modificar Imagem",
+ "Insert Table": "Inserir Tabela",
+ "Toggle HTML Source": "Ver Código-Fonte",
+ "Enlarge Editor": "Expandir Editor",
+ "About this editor": "Sobre este editor",
+ "Help using editor": "Ajuda - Usando o editor"
+}
diff --git a/ccm-cms/web/assets/xinha/lang/ro.js b/ccm-cms/web/assets/xinha/lang/ro.js
new file mode 100644
index 000000000..e622932ff
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/ro.js
@@ -0,0 +1,63 @@
+// I18N constants
+
+// LANG: "ro", ENCODING: UTF-8
+// Author: Mihai Bazon, http://dynarch.com/mishoo
+
+// FOR TRANSLATORS:
+//
+// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE
+// (at least a valid email address)
+//
+// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING;
+// (if this is not possible, please include a comment
+// that states what encoding is necessary.)
+
+{
+ "Bold": "ÃŽngroÅŸat",
+ "Italic": "Italic",
+ "Underline": "Subliniat",
+ "Strikethrough": "Tăiat",
+ "Subscript": "Indice jos",
+ "Superscript": "Indice sus",
+ "Justify Left": "Aliniere la stânga",
+ "Justify Center": "Aliniere pe centru",
+ "Justify Right": "Aliniere la dreapta",
+ "Justify Full": "Aliniere în ambele părţi",
+ "Ordered List": "Listă ordonată",
+ "Bulleted List": "Listă marcată",
+ "Decrease Indent": "Micşorează alineatul",
+ "Increase Indent": "Măreşte alineatul",
+ "Font Color": "Culoarea textului",
+ "Background Color": "Culoare de fundal",
+ "Horizontal Rule": "Linie orizontală",
+ "Insert Web Link": "Inserează/modifică link",
+ "Insert/Modify Image": "Inserează/modifică imagine",
+ "Insert Table": "Inserează un tabel",
+ "Toggle HTML Source": "Sursa HTML / WYSIWYG",
+ "Enlarge Editor": "Maximizează editorul",
+ "About this editor": "Despre editor",
+ "Help using editor": "Documentaţie (devel)",
+ "Current style": "Stilul curent",
+ "Undoes your last action": "Anulează ultima acţiune",
+ "Redoes your last action": "Reface ultima acţiune anulată",
+ "Cut selection": "Taie în clipboard",
+ "Copy selection": "Copie în clipboard",
+ "Paste from clipboard": "Aduce din clipboard",
+ "Direction left to right": "Direcţia de scriere: stânga - dreapta",
+ "Direction right to left": "Direcţia de scriere: dreapta - stânga",
+ "OK": "OK",
+ "Cancel": "Anulează",
+ "Path": "Calea",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Eşti în modul TEXT. Apasă butonul [<>] pentru a te întoarce în modul WYSIWYG.",
+ "Cancel": "Renunţă",
+ "Insert/Modify Link": "Inserează/modifcă link",
+ "New window (_blank)": "Fereastră nouă (_blank)",
+ "None (use implicit)": "Nimic (foloseÅŸte ce-i implicit)",
+ "Other": "Alt target",
+ "Same frame (_self)": "Aceeaşi fereastră (_self)",
+ "Target:": "Å¢inta:",
+ "Title (tooltip):": "Titlul (tooltip):",
+ "Top frame (_top)": "Fereastra principală (_top)",
+ "URL:": "URL:",
+ "You must enter the URL where this link points to": "Trebuie să introduceţi un URL"
+}
diff --git a/ccm-cms/web/assets/xinha/lang/ru.js b/ccm-cms/web/assets/xinha/lang/ru.js
new file mode 100644
index 000000000..d7e201bfa
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/ru.js
@@ -0,0 +1,185 @@
+// I18N constants
+
+// LANG: "ru", ENCODING: UTF-8
+// Author: Yulya Shtyryakova,
+
+// Some additions by: Alexey Kirpichnikov,
+// I took French version as a source of English phrases because French version was the most comprehensive
+// (fr.js was the largest file, actually) %)
+
+// FOR TRANSLATORS:
+//
+// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE
+// (at least a valid email address)
+//
+// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING;
+// (if this is not possible, please include a comment
+// that states what encoding is necessary.)
+
+{
+ "Bold": "Полужирный",
+ "Italic": "Ðаклонный",
+ "Underline": "Подчеркнутый",
+ "Strikethrough": "Перечеркнутый",
+ "Subscript": "Ðижний индекÑ",
+ "Superscript": "Верхний индекÑ",
+ "Justify Left": "По левому краю",
+ "Justify Center": "По центру",
+ "Justify Right": "По правому краю",
+ "Justify Full": "По ширине",
+ "Ordered List": "Ðумерованный ÑпиÑок",
+ "Bulleted List": "Маркированный ÑпиÑок",
+ "Decrease Indent": "Уменьшить отÑтуп",
+ "Increase Indent": "Увеличить отÑтуп",
+ "Font Color": "Цвет шрифта",
+ "Background Color": "Цвет фона",
+ "Horizontal Rule": "Горизонтальный разделитель",
+ "Insert Web Link": "Ð’Ñтавить гиперÑÑылку",
+ "Insert/Modify Image": "Ð’Ñтавить изображение",
+ "Insert Table": "Ð’Ñтавить таблицу",
+ "Toggle HTML Source": "Показать Html-код",
+ "Enlarge Editor": "Увеличить редактор",
+ "About this editor": "О редакторе",
+ "Help using editor": "Помощь",
+ "Current style": "Текущий Ñтиль",
+ "Undoes your last action": "Отменить",
+ "Redoes your last action": "Повторить",
+ "Cut selection": "Вырезать",
+ "Copy selection": "Копировать",
+ "Paste from clipboard": "Ð’Ñтавить",
+ "Direction left to right": "Ðаправление Ñлева направо",
+ "Direction right to left": "Ðаправление Ñправа налево",
+ "Remove formatting": "Убрать форматирование",
+ "Select all": "Выделить вÑе",
+ "Print document": "Печать",
+ "Clear MSOffice tags": "Удалить разметку MSOffice",
+ "Clear Inline Font Specifications": "Удалить непоÑредÑтвенное задание шрифтов",
+ "Would you like to clear font typefaces?": "Удалить типы шрифтов?",
+ "Would you like to clear font sizes?": "Удалить размеры шрифтов ?",
+ "Would you like to clear font colours?": "Удалить цвета шрифтов ?",
+ "Split Block": "Разделить блок",
+ "Toggle Borders": "Включить/выключить отображение границ",
+ "Save as": "Сохранить как",
+ "Insert/Overwrite": "Ð’Ñтавка/замена",
+ "— format —": "— форматирование —",
+ "Heading 1": "Заголовок 1",
+ "Heading 2": "Заголовок 2",
+ "Heading 3": "Заголовок 3",
+ "Heading 4": "Заголовок 4",
+ "Heading 5": "Заголовок 5",
+ "Heading 6": "Заголовок 6",
+ "Normal": "Обычный текÑÑ‚",
+ "Address": "ÐдреÑ",
+ "Formatted": "Отформатированный текÑÑ‚",
+
+ "— font —": "— шрифт —",
+ "— size —": "— размер —",
+
+
+// Диалоги
+
+ "OK": "OK",
+ "Cancel": "Отмена",
+ "Path": "Путь",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Ð’Ñ‹ в режиме Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Html-кода. нажмите кнопку [<>], чтобы переключитьÑÑ Ð² визуальный режим.",
+
+"The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "Кнопка Ð’Ñтавить не работает в браузерах на оÑнове Mozilla (по техничеÑким причинам, ÑвÑзанным Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑтью). Ðажмите Ctrl-V на клавиатуре, чтобы вÑтавить.",
+
+ "Your Document is not well formed. Check JavaScript console for details.": "Ваш документ неправильно Ñформирован. ПоÑмотрите КонÑоль JavaScript, чтобы узнать подробноÑти.",
+
+ "Alignment:": "Выравнивание",
+ "Not set": "Ðе уÑтановлено",
+ "Left": "По левому краю",
+ "Right": "По правому краю",
+ "Texttop": "По верхней границе текÑта",
+ "Absmiddle": "По Ñередине текÑта",
+ "Baseline": "По нижней границе текÑта",
+ "Absbottom": "По нижней границе",
+ "Bottom": "По нижнему краю",
+ "Middle": "ПоÑредине",
+ "Top": "По верхнему краю",
+
+ "Layout": "РаÑположение",
+ "Spacing": "ПолÑ",
+ "Horizontal:": "По горизонтали",
+ "Horizontal padding": "Горизонтальные полÑ",
+ "Vertical:": "По вертикали",
+ "Vertical padding": "Вертикальные полÑ",
+ "Border thickness:": "Толщина рамки",
+ "Leave empty for no border": "ОÑтавьте пуÑтым, чтобы убрать рамку",
+
+ //Insert Link
+ "Insert/Modify Link": "Ð’Ñтавка/изменение ÑÑылки",
+ "None (use implicit)": "По умолчанию",
+ "New window (_blank)": "Ðовое окно (_blank)",
+ "Same frame (_self)": "То же окно (_self)",
+ "Top frame (_top)": "РодительÑкое окно (_top)",
+ "Other": "Другое",
+ "Target:": "Открывать в окне:",
+ "Title (tooltip):": "Ð’ÑÐ¿Ð»Ñ‹Ð²Ð°ÑŽÑ‰Ð°Ñ Ð¿Ð¾Ð´Ñказка",
+ "URL:": "URL:",
+ "You must enter the URL where this link points to": "Ð’Ñ‹ должны указать URL, на который будет указывать ÑÑылка",
+ "You need to select some text before creating a link": "Ð’Ñ‹ должны выделить текÑÑ‚, который будет преобразован в ÑÑылку",
+
+ // Insert Table
+ "Insert Table": "Ð’Ñтавка таблицы",
+ "Rows:": "Строки",
+ "Number of rows": "КоличеÑтво Ñтрок",
+ "Cols:": "Столбцы",
+ "Number of columns": "КоличеÑтво Ñтолбцов",
+ "Width:": "Ширина",
+ "Width of the table": "Ширина таблицы",
+ "Percent": "проценты",
+ "Pixels": "пикÑелы",
+ "Em": "em",
+ "Width unit": "Единицы измерениÑ",
+ "Fixed width columns": "Столбцы фикÑированной ширины",
+ "Positioning of this table": "РаÑположение таблицы",
+ "Cell spacing:": "РаÑÑтоÑние между Ñчейками",
+ "Space between adjacent cells": "РаÑÑтоÑние между ÑоÑедними Ñчейками",
+ "Cell padding:": "ÐŸÐ¾Ð»Ñ Ð² Ñчейках",
+ "Space between content and border in cell": "РаÑÑтоÑние между границей Ñчейки и текÑтом",
+ "You must enter a number of rows": "Ð’Ñ‹ должны ввеÑти количеÑтво Ñтрок",
+ "You must enter a number of columns": "Ð’Ñ‹ должны ввеÑти количеÑтво Ñтолбцов",
+
+ // Insert Image
+ "Insert Image": "Ð’Ñтавка изображениÑ",
+ "Image URL:": "URL изображениÑ",
+ "Enter the image URL here": "Ð’Ñтавьте Ð°Ð´Ñ€ÐµÑ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ",
+ "Preview": "Предварительный проÑмотр",
+ "Preview the image in a new window": "Предварительный проÑмотр в отдельном окне",
+ "Alternate text:": "Ðльтернативный текÑÑ‚",
+ "For browsers that don't support images": "Ð”Ð»Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð¾Ð², которые не отображают картинки",
+ "Positioning of this image": "РаÑположение изображениÑ",
+ "Image Preview:": "Предварительный проÑмотр",
+ "You must enter the URL": "Ð’Ñ‹ должны ввеÑти URL",
+
+ // Editor Help
+ "Xinha Help": "Помощь",
+ "Editor Help": "Помощь",
+ "Keyboard shortcuts": "ГорÑчие клавиши",
+ "The editor provides the following key combinations:": "Редактор поддерживает Ñледующие комбинации клавиш:",
+ "ENTER": "ENTER",
+ "new paragraph": "новый абзац",
+ "SHIFT-ENTER": "SHIFT+ENTER",
+ "insert linebreak": "Ð¿ÐµÑ€ÐµÐ½Ð¾Ñ Ñтроки",
+ "Set format to paragraph": "Отформатировать абзац",
+ "Clean content pasted from Word": "ОчиÑтить текÑÑ‚, вÑтавленный из Word",
+ "Headings": "Заголовки",
+ "Close": "Закрыть",
+
+ // Loading messages
+ "Loading in progress. Please wait !": "Загрузка... ПожалуйÑта, подождите.",
+ "Constructing main object": "Создание главного объекта",
+ "Constructing object": "Создание объекта",
+ "Register panel right": "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð°Ð²Ð¾Ð¹ панели",
+ "Register panel left": "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð»ÐµÐ²Ð¾Ð¹ панели",
+ "Register panel top": "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð²ÐµÑ€Ñ…Ð½ÐµÐ¹ панели",
+ "Register panel bottom": "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð½Ð¸Ð¶Ð½ÐµÐ¹ панели",
+ "Create Toolbar": "Создание панели инÑтрументов",
+ "Create StatusBar": "Создание панели ÑоÑтоÑниÑ",
+ "Generate Xinha object": "Создание объекта Xinha",
+ "Init editor size": "Ð˜Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð° редактора",
+ "Init IFrame": "Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ iframe",
+ "Register plugin $plugin": "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ $plugin"
+};
diff --git a/ccm-cms/web/assets/xinha/lang/sh.js b/ccm-cms/web/assets/xinha/lang/sh.js
new file mode 100644
index 000000000..270630464
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/sh.js
@@ -0,0 +1,140 @@
+// I18N constants
+
+// LANG: "sh", ENCODING: UTF-8 | ISO-8859-2
+// Author: Ljuba Ranković, http://www.rankovic.net/ljubar
+
+// FOR TRANSLATORS:
+//
+// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE
+// (at least a valid email address)
+//
+// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING;
+// (if this is not possible, please include a comment
+// that states what encoding is necessary.)
+
+{
+ "Bold": "Masno",
+ "Italic": "Kurziv",
+ "Underline": "PodvuÄeno",
+ "Strikethrough": "Precrtano",
+ "Subscript": "Indeks-tekst",
+ "Superscript": "Eksponent-tekst",
+ "Justify Left":"Ravnanje ulevo",
+ "Justify Center": "Ravnanje po simetrali",
+ "Justify Right": "Ravnanje udesno",
+ "Justify Full": "Puno ravnanje",
+ "Ordered List": "Lista sa rednim brojevima",
+ "Bulleted List": "Lista sa simbolima",
+ "Decrease Indent": "smanji uvlaÄenje",
+ "Increase Indent": "Povećaj uvlaÄenje",
+ "Font Color": "Boja slova",
+ "Background Color": "Boja pozadine",
+ "Horizontal Rule": "Horizontalna linija",
+ "Insert Web Link": "Dodaj web link",
+ "Insert/Modify Image": "Dodaj/promeni sliku",
+ "Insert Table": "Ubaci tabelu",
+ "Toggle HTML Source": "Prebaci na HTML kod",
+ "Enlarge Editor": "Povećaj editor",
+ "About this editor": "O ovom editoru",
+ "Help using editor": "Pomoć pri korišćenju editora",
+ "Current style": "Važeći stil",
+ "Undoes your last action": "Poništava poslednju radnju",
+ "Redoes your last action": "Vraća poslednju radnju",
+ "Cut selection": "Iseci izabrano",
+ "Copy selection": "Kopiraj izabrano",
+ "Paste from clipboard": "Zalepi iz klipborda",
+ "Direction left to right": "Pravac s leva na desno",
+ "Direction right to left": "Pravac s desna na levo",
+ "Remove formatting": "Ukoni formatiranje",
+ "Select all": "Izaberi sve",
+ "Print document": "Å tampaj dokument",
+ "Clear MSOffice tags": "Obriši MSOffice tagove",
+ "Clear Inline Font Specifications": "Obriši dodeljene osobine fonta",
+ "Split Block": "Podeli blok",
+ "Toggle Borders": "Izmeni okvire",
+
+ "— format —": "— Format —",
+ "Heading 1": "Zaglavlje 1",
+ "Heading 2": "Zaglavlje 2",
+ "Heading 3": "Zaglavlje 3",
+ "Heading 4": "Zaglavlje 4",
+ "Heading 5": "Zaglavlje 5",
+ "Heading 6": "Zaglavlje 6",
+ "Normal": "ObiÄan",
+ "Address": "Adresa",
+ "Formatted": "Formatiran",
+
+ // dialogs
+ "OK": "OK",
+ "Cancel": "Poništi",
+ "Path": "Putanja",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Nalazite se u TEXT režimu. Koristite [<>] dugme za povratak na WYSIWYG.",
+
+ "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "",
+
+ "Alignment:": "Ravnanje",
+ "Not set": "Nije postavljeno",
+ "Left": "Levo",
+ "Right": "Desno",
+ "Texttop": "Vrh teksta",
+ "Absmiddle": "Apsolutna sredina",
+ "Baseline": "Donja linija",
+ "Absbottom": "Apsolutno dno",
+ "Bottom": "Dno",
+ "Middle": "Sredina",
+ "Top": "Vrh",
+
+ "Layout": "Prelom",
+ "Spacing": "Razmak",
+ "Horizontal:": "Po horizontali",
+ "Horizontal padding": "Horizontalno odstojanje",
+ "Vertical:": "Po vertikali",
+ "Vertical padding": "Vertikalno odstojanje",
+ "Border thickness:": "Debljina okvira",
+ "Leave empty for no border": "Ostavi prazno kad nema okvira",
+
+ // Insert Link
+ "Insert/Modify Link": "Dodaj/promeni Link",
+ "None (use implicit)": "koristi podrazumevano",
+ "New window (_blank)": "Novom prozoru (_blank)",
+ "Same frame (_self)": "Isti frejm (_self)",
+ "Top frame (_top)": "Glavni frejm (_top)",
+ "Other": "Drugo",
+ "Target:": "Otvori u:",
+ "Title (tooltip):": "Naziv (tooltip):",
+ "URL:": "URL:",
+ "You must enter the URL where this link points to": "Morate uneti URL na koji vodi ovaj link",
+
+ // Insert Table
+ "Insert Table": "Ubaci tabelu",
+ "Rows:": "Redovi",
+ "Number of rows": "Broj redova",
+ "Cols:": "Kolone",
+ "Number of columns": "Broj kolona",
+ "Width:": "Å irina",
+ "Width of the table": "Å irina tabele",
+ "Percent": "Procenat",
+ "Pixels": "Pikseli",
+ "Em": "Em",
+ "Width unit": "Jedinica širine",
+ "Fixed width columns": "Fiksirana širina kolona",
+ "Positioning of this table": "Postavljanje ove tabele",
+ "Cell spacing:": "Rastojanje ćelija",
+ "Space between adjacent cells": "Rastojanje naspramnih ćelija",
+ "Cell padding:": "Unutrašnja odstojanja u ćeliji",
+ "Space between content and border in cell": "Rastojanje između sadržaja i okvira ćelije",
+
+ // Insert Image
+ "Insert Image": "Ubaci sliku",
+ "Image URL:": "URL slike",
+ "Enter the image URL here": "Unesite URL slike ovde",
+ "Preview": "Pregled",
+ "Preview the image in a new window": "Pregledaj sliku u novom prozoru",
+ "Alternate text:": "Alternativni tekst",
+ "For browsers that don't support images": "Za pretraživaÄe koji ne podržavaju slike",
+ "Positioning of this image": "Postavljanje ove slike",
+ "Image Preview:": "Pregled slike",
+
+ // Select Color popup
+ "Select Color": "Izaberite boju"
+};
diff --git a/ccm-cms/web/assets/xinha/lang/si.js b/ccm-cms/web/assets/xinha/lang/si.js
new file mode 100644
index 000000000..c34abbe57
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/si.js
@@ -0,0 +1,50 @@
+// I18N constants
+
+// LANG: "si", ENCODING: UTF-8
+// Author: Tomaz Kregar, x_tomo_x@email.si
+
+// FOR TRANSLATORS:
+//
+// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE
+// (at least a valid email address)
+//
+// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING;
+// (if this is not possible, please include a comment
+// that states what encoding is necessary.)
+
+{
+ "Bold": "Krepko",
+ "Italic": "LežeÄe",
+ "Underline": "PodÄrtano",
+ "Strikethrough": "PreÄrtano",
+ "Subscript": "Podpisano",
+ "Superscript": "Nadpisano",
+ "Justify Left": "Poravnaj levo",
+ "Justify Center": "Na sredino",
+ "Justify Right": "Poravnaj desno",
+ "Justify Full": "Porazdeli vsebino",
+ "Ordered List": "OÅ¡tevilÄevanje",
+ "Bulleted List": "OznaÄevanje",
+ "Decrease Indent": "Zmanjšaj zamik",
+ "Increase Indent": "PoveÄaj zamik",
+ "Font Color": "Barva pisave",
+ "Background Color": "Barva ozadja",
+ "Horizontal Rule": "Vodoravna Ärta",
+ "Insert Web Link": "Vstavi hiperpovezavo",
+ "Insert/Modify Image": "Vstavi sliko",
+ "Insert Table": "Vstavi tabelo",
+ "Toggle HTML Source": "Preklopi na HTML kodo",
+ "Enlarge Editor": "PoveÄaj urejevalnik",
+ "About this editor": "Vizitka za urejevalnik",
+ "Help using editor": "PomoÄ za urejevalnik",
+ "Current style": "Trenutni slog",
+ "Undoes your last action": "Razveljavi zadnjo akcijo",
+ "Redoes your last action": "Uveljavi zadnjo akcijo",
+ "Cut selection": "Izreži",
+ "Copy selection": "Kopiraj",
+ "Paste from clipboard": "Prilepi",
+ "OK": "V redu",
+ "Cancel": "PrekliÄi",
+ "Path": "Pot",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Si v tekstovnem naÄinu. Uporabi [<>] gumb za prklop nazaj na WYSIWYG."
+}
diff --git a/ccm-cms/web/assets/xinha/lang/sr.js b/ccm-cms/web/assets/xinha/lang/sr.js
new file mode 100644
index 000000000..06f78c469
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/sr.js
@@ -0,0 +1,140 @@
+// I18N constants
+
+// LANG: "sh", ENCODING: UTF-8 | ISO-8859-5
+// Author: Ljuba Ranković, http://www.rankovic.net/ljubar
+
+// FOR TRANSLATORS:
+//
+// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE
+// (at least a valid email address)
+//
+// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING;
+// (if this is not possible, please include a comment
+// that states what encoding is necessary.)
+
+{
+ "Bold": "МаÑно",
+ "Italic": "Курзив",
+ "Underline": "Подвучено",
+ "Strikethrough": "Прецртано",
+ "Subscript": "ИндекÑ-текÑÑ‚",
+ "Superscript": "ЕкÑпонент-текÑÑ‚",
+ "Justify Left": "Равнање улево",
+ "Justify Center": "Равнање по Ñиметрали",
+ "Justify Right": "Равнање удеÑно",
+ "Justify Full": "Пуно равнање",
+ "Ordered List": "ЛиÑта Ñа редним бројевима",
+ "Bulleted List": "ЛиÑта Ñа Ñимболима",
+ "Decrease Indent": "Смањи увлачење",
+ "Increase Indent": "Повећај увлачење",
+ "Font Color": "Боја Ñлова",
+ "Background Color": "Боја позадине",
+ "Horizontal Rule": "Хоризонтална линија",
+ "Insert Web Link": "додај веб линк",
+ "Insert/Modify Image": "додај/промени Ñлику",
+ "Insert Table": "Убаци табелу",
+ "Toggle HTML Source": "Пребаци на приказ ХТМЛ кода",
+ "Enlarge Editor": "Повећај едитор",
+ "About this editor": "О овом едитору",
+ "Help using editor": "Помоћ при коришћењу едитора",
+ "Current style": "Важећи Ñтил",
+ "Undoes your last action": "Поништава поÑледњу радњу",
+ "Redoes your last action": "Враћа поÑледњу радњу",
+ "Cut selection": "ИÑеци изабрано",
+ "Copy selection": "Копирај изабрано",
+ "Paste from clipboard": "Залепи из клипборда",
+ "Direction left to right": "Правац Ñ Ð»ÐµÐ²Ð° на деÑно",
+ "Direction right to left": "Правац Ñ Ð´ÐµÑна на лево",
+ "Remove formatting": "Уклони форматирање",
+ "Select all": "Изабери Ñве",
+ "Print document": "Штампај документ",
+ "Clear MSOffice tags": "Обриши MSOffice тагове",
+ "Clear Inline Font Specifications": "Обриши примењене оÑобине фонта",
+ "Split Block": "Подели блок",
+ "Toggle Borders": "Пребаци оквирне линије",
+
+ "— format —": "— Format —",
+ "Heading 1": "Заглавље 1",
+ "Heading 2": "Заглавље 2",
+ "Heading 3": "Заглавље 3",
+ "Heading 4": "Заглавље 4",
+ "Heading 5": "Заглавље 5",
+ "Heading 6": "Заглавље 6",
+ "Normal": "обичан",
+ "Address": "адреÑа",
+ "Formatted": "форматиран",
+
+ // dialogs
+ "OK": "OK",
+ "Cancel": "Поништи",
+ "Path": "Путања",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Ðалазите Ñе у ТЕКСТ режиму. КориÑтите [<>] дугме за повратак на ШВТИД (WYSIWYG).",
+
+ "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "Дугме 'залепи' не ради у претраживачима породице Mozilla (из разлога ÑигурноÑти). ПритиÑните CTRL-V на таÑтатури да директно залепите.",
+
+ "Alignment:": "Равнање",
+ "Not set": "Ðије поÑтављено",
+ "Left": "Лево",
+ "Right": "ДеÑно",
+ "Texttop": "Врх текÑта",
+ "Absmiddle": "ÐпÑолутна Ñредина",
+ "Baseline": "Доња линија",
+ "Absbottom": "ÐпÑолутно дно",
+ "Bottom": "Дно",
+ "Middle": "Средина",
+ "Top": "Врх",
+
+ "Layout": "Прелом",
+ "Spacing": "Размак",
+ "Horizontal:": "По хоризонтали",
+ "Horizontal padding": "Хортизонтално одÑтојање",
+ "Vertical:": "По вертикали",
+ "Vertical padding": "Вертикално одÑтојање",
+ "Border thickness:": "Дебљина оквира",
+ "Leave empty for no border": "ОÑтави празно кад нема оквира",
+
+ // Insert Link
+ "Insert/Modify Link": "додај/промени линк",
+ "None (use implicit)": "кориÑти подразумевано",
+ "New window (_blank)": "Ðовом прозору (_blank)",
+ "Same frame (_self)": "ИÑти фрејм (_self)",
+ "Top frame (_top)": "Главни фрејм (_top)",
+ "Other": "Друго",
+ "Target:": "Отвори у:",
+ "Title (tooltip):": "Ðазив (tooltip):",
+ "URL:": "УРЛ:",
+ "You must enter the URL where this link points to": "Морате унети УРЛ на који води овај линк",
+
+ // Insert Table
+ "Insert Table": "Убаци табелу",
+ "Rows:": "Редови",
+ "Number of rows": "Број редова",
+ "Cols:": "Колоне",
+ "Number of columns": "Број колона",
+ "Width:": "Ширина",
+ "Width of the table": "Ширина табеле",
+ "Percent": "Процената",
+ "Pixels": "ПикÑела",
+ "Em": "Ем",
+ "Width unit": "Јединица ширине",
+ "Fixed width columns": "ФикÑирана ширина колоне",
+ "Positioning of this table": "ПоÑтављање ове табеле",
+ "Cell spacing:": "Размак између ћелија",
+ "Space between adjacent cells": "Размак између наÑпрамних ћелија",
+ "Cell padding:": "Унутрашња одÑтојања од ивица ћелије",
+ "Space between content and border in cell": "РаÑтојање између Ñадржаја у ћелији и њеног оквира",
+
+ // Insert Image
+ "Insert Image": "Убаци Ñлику",
+ "Image URL:": "УРЛ Ñлике",
+ "Enter the image URL here": "УнеÑите УРЛ Ñлике овде",
+ "Preview": "Преглед",
+ "Preview the image in a new window": "Прегледај Ñлику у новом прозору",
+ "Alternate text:": "алтернативни текÑÑ‚",
+ "For browsers that don't support images": "За претраживаче који не подржавају Ñлике",
+ "Positioning of this image": "ПоÑтављање ове Ñлике",
+ "Image Preview:": "Преглед Ñлике",
+
+ // Select Color popup
+ "Select Color": "Изабери боју"
+};
diff --git a/ccm-cms/web/assets/xinha/lang/sv.js b/ccm-cms/web/assets/xinha/lang/sv.js
new file mode 100644
index 000000000..61af49e3e
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/sv.js
@@ -0,0 +1,116 @@
+// I18N constants
+// LANG: "sv", ENCODING: UTF-8
+
+// Swedish version for htmlArea v3.0
+// Initital translation by pat
+// Synced with additional contants in rev. 477 (Mar 2006) by Thomas Loo
+
+{
+ "Bold": "Fet",
+ "Italic": "Kursiv",
+ "Underline": "Understruken",
+ "Strikethrough": "Genomstruken",
+ "Subscript": "Nedsänkt",
+ "Superscript": "Upphöjd",
+ "Justify Left": "Vänsterjustera",
+ "Justify Center": "Centrera",
+ "Justify Right": "Högerjustera",
+ "Justify Full": "Marginaljustera",
+ "Ordered List": "Numrerad lista",
+ "Bulleted List": "Punktlista",
+ "Decrease Indent": "Minska indrag",
+ "Increase Indent": "Öka indrag",
+ "Font Color": "Textfärg",
+ "Background Color": "Bakgrundsfärg",
+ "Horizontal Rule": "Vågrät linje",
+ "Insert Web Link": "Infoga länk",
+ "Insert/Modify Image": "Infoga bild",
+ "Toggle HTML Source": "Visa källkod",
+ "Enlarge Editor": "Visa i eget fönster",
+ "About this editor": "Om denna editor",
+ "Help using editor": "Hjälp",
+ "Current style": "Nuvarande stil",
+
+ "Undoes your last action": "Ã…ngra kommando",
+ "Redoes your last action": "Upprepa kommando",
+ "Select all": "Markera allt",
+ "Print document": "Skriv ut",
+ "Clear MSOffice tags": "Städa bort MS Office taggar",
+ "Clear Inline Font Specifications": "Rensa inbäddad typsnittsinformation",
+ "Remove formatting": "Rensa formattering",
+ "Toggle Borders": "Objektramar",
+ "Split Block": "Dela block",
+ "Direction left to right": "Vänster till höger",
+ "Direction right to left": "Höger till vänster",
+
+ "Insert/Overwrite": "Infoga/Skriv över",
+ "OK": "OK",
+ "Cancel": "Avbryt",
+ "Path": "Objekt",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Du befinner dig i texläge. Klicka på ikonen [<>] ovan för att växla tillbaka till WYSIWIG läge",
+ "The full screen mode is known to cause problems with Internet Explorer, due to browser bugs that we weren": "Visning i fullskärmsläga fungerar dåligt i din webläsare. Möjliga problem resulterar i en ryckig editor, saknade editorfunktioner och/eller att webläsaren kraschar. Om du använder Windows 95/98 finns också möjligheten att Windows kraschar.\n\nTryck ",
+ "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "Denna knapp fungerar ej i Mozillabaserad webläsare, använd istället snabbtangenterna CTRL-V på tangentbordet för att klistra in.",
+
+ "Insert/Modify Link": "Redigera länk",
+ "New window (_blank)": "Nytt fönster (_blank)",
+ "None (use implicit)": "Ingen (använd standardinställing)",
+ "Other": "Annan",
+ "Same frame (_self)": "Samma ram (_self)",
+ "Target:": "MÃ¥l:",
+ "Title (tooltip):": "Titel (tooltip):",
+ "Top frame (_top)": "Toppram (_top)",
+ "URL:": "Sökväg:",
+ "You must enter the URL where this link points to": "Du måsta ange en adress till vilken länken skall peka på",
+ "Would you like to clear font typefaces?": "Radera alla typsnittsinformation ?",
+ "Would you like to clear font sizes?": "Radera alla fontstorlekar ?",
+ "Would you like to clear font colours?": "Ta bort all textfärger ?",
+
+ "You need to select some text before creating a link": "Du måsta markera ett objekt att applicera länken på!",
+
+ // Insert Table
+ "Insert Table": "Infoga tabell",
+ "Rows:": "Rader:",
+ "Number of rows": "Antal rader",
+ "Cols:": "Kolumner:",
+ "Number of columns": "Antal kolumner",
+ "Width:": "Bredd:",
+ "Width of the table": "Tabellbredd",
+ "Percent": "Procent",
+ "Pixels": "Pixlar",
+ "Em": "",
+ "Width unit": "Breddenheter",
+ "Fixed width columns": "Fixerad bredd",
+ "Alignment:": "Marginaljustering",
+ "Positioning of this table": "Tabellposition",
+ "Border thickness:": "Ramtjocklek",
+ "Leave empty for no border": "Lämna fältet tomt för att undvika ramar",
+ "Spacing": "Cellegenskaper",
+ "Cell spacing:": "Cellmarginaler:",
+ "Space between adjacent cells": "Utrymme mellan celler",
+ "Cell padding:": "Cellindrag:",
+ "Space between content and border in cell": "Utrymme mellan ram och cellinnehåll",
+ "You must enter a number of rows": "Ange ental rader",
+ "You must enter a number of columns": "Ange antal kolumner",
+
+ // Editor Help
+ "Keyboard shortcuts": "Snabbtangenter",
+ "The editor provides the following key combinations:": "Editorn nyttjar följande kombinationer:",
+ "new paragraph": "Ny paragraf ",
+ "insert linebreak": "Infoga radbrytning ",
+ "Set format to paragraph": "Aktivera paragrafläge",
+ "Clean content pasted from Word": "Rensa innehåll inklistrat från MS Word",
+ "Headings": "Skapa standardrubrik",
+ "Cut selection": "Klipp ut markering",
+ "Copy selection": "Kopiera markering",
+ "Paste from clipboard": "Klistra in",
+ "Close": "Stäng",
+
+ // Loading messages
+ "Loading in progress. Please wait !": "Editorn laddas. Vänta...",
+ "Constructing main object": "Skapar huvudobjekt",
+ "Create Toolbar": "Skapar verktygspanel",
+ "Register panel right": "Registerar panel höger",
+ "Register panel left": "Registerar panel vänster",
+ "Register panel top": "Registerar toppanel",
+ "Register panel bottom": "Registerar fotpanel"
+}
diff --git a/ccm-cms/web/assets/xinha/lang/th.js b/ccm-cms/web/assets/xinha/lang/th.js
new file mode 100644
index 000000000..8a116af72
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/th.js
@@ -0,0 +1,50 @@
+// I18N constants
+
+// LANG: "th", ENCODING: UTF-8
+// Author: Suchin Prasongbundit,
+
+// FOR TRANSLATORS:
+//
+// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE
+// (at least a valid email address)
+//
+// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING;
+// (if this is not possible, please include a comment
+// that states what encoding is necessary.)
+
+{
+ "Bold": "ตัวหนา",
+ "Italic": "ตัวเà¸à¸µà¸¢à¸‡",
+ "Underline": "ขีดเส้นใต้",
+ "Strikethrough": "ขีดทับ",
+ "Subscript": "ตัวห้à¸à¸¢",
+ "Superscript": "ตัวยà¸",
+ "Justify Left": "จัดชิดซ้าย",
+ "Justify Center": "จัดà¸à¸¶à¹ˆà¸‡à¸à¸¥à¸²à¸‡",
+ "Justify Right": "จัดชิดขวา",
+ "Justify Full": "จัดเต็มขà¸à¸š",
+ "Ordered List": "เลขลำดับ",
+ "Bulleted List": "ลำดับ",
+ "Decrease Indent": "ลดย่à¸à¸«à¸™à¹‰à¸²",
+ "Increase Indent": "เพิ่มย่à¸à¸«à¸™à¹‰à¸²",
+ "Font Color": "สีขà¸à¸šà¹à¸šà¸šà¸à¸±à¸à¸©à¸£",
+ "Background Color": "สีพื้นหลัง",
+ "Horizontal Rule": "เส้นà¸à¸¶à¹ˆà¸‡à¸à¸¥à¸²à¸‡",
+ "Insert Web Link": "ิเพิ่มลิ้งค์",
+ "Insert/Modify Image": "เพิ่ม/à¹à¸à¹‰à¹„ขภาพ",
+ "Insert Table": "เพิ่มตาราง",
+ "Toggle HTML Source": "สลับà¸à¸²à¸£à¹à¸ªà¸”งโค้ด HTML",
+ "Enlarge Editor": "ขยายให้เต็มจà¸",
+ "About this editor": "เà¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸šà¹‚ปรà¹à¸à¸£à¸¡à¸™à¸µà¹‰",
+ "Help using editor": "à¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¹‚ปรà¹à¸à¸£à¸¡",
+ "Current style": "รูปà¹à¸šà¸šà¸›à¸±à¸ˆà¸ˆà¸¸à¸šà¸±à¸™",
+ "Undoes your last action": "ย้à¸à¸™à¸à¸¥à¸±à¸š",
+ "Redoes your last action": "ทำซ้ำ",
+ "Cut selection": "ตัดส่วนที่เลืà¸à¸",
+ "Copy selection": "สำเนาส่วนที่เลืà¸à¸",
+ "Paste from clipboard": "วางจาà¸à¸„ลิปบà¸à¸£à¹Œà¸”",
+ "OK": "ตà¸à¸¥à¸‡",
+ "Cancel": "ยà¸à¹€à¸¥à¸´à¸",
+ "Path": "เส้นทาง",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "คุณà¸à¸¢à¸¹à¹ˆà¹ƒà¸™à¹‚หมดธรรมดา à¸à¸”ที่ปุ่ม [<>] เพื่à¸à¸ªà¸¥à¸±à¸šà¸à¸¥à¸±à¸šà¹„ปยังโหมดพิมพ์งานà¹à¸šà¸šà¹€à¸§à¸´à¸£à¹Œà¸”"
+}
diff --git a/ccm-cms/web/assets/xinha/lang/vn.js b/ccm-cms/web/assets/xinha/lang/vn.js
new file mode 100644
index 000000000..0aa641661
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/lang/vn.js
@@ -0,0 +1,56 @@
+// I18N constants : Vietnamese
+// LANG: "en", ENCODING: UTF-8
+// Author: Nguyá»…n Äình Nam,
+// Modified 21/07/2004 by Phạm Mai Quân
+
+{
+ "Bold": "Äáºm",
+ "Italic": "Nghiêng",
+ "Underline": "Gạch Chân",
+ "Strikethrough": "Gạch Xóa",
+ "Subscript": "Viết Xuống Dưới",
+ "Superscript": "Viết Lên Trên",
+ "Justify Left": "Căn Trái",
+ "Justify Center": "Căn Giữa",
+ "Justify Right": "Căn Phải",
+ "Justify Full": "Căn Äá»u",
+ "Ordered List": "Danh Sách Có Thứ Tự (1, 2, 3)",
+ "Bulleted List": "Danh Sách Phi Thứ Tự (Chấm đầu dòng)",
+ "Decrease Indent": "Lùi Ra Ngoà i",
+ "Increase Indent": "Thụt Và o Trong",
+ "Font Color": "Mà u Chữ",
+ "Background Color": "Mà u Ná»n",
+ "Horizontal Rule": "Dòng Kẻ Ngang",
+ "Insert Web Link": "Tạo Liên Kết",
+ "Insert/Modify Image": "Chèn Ảnh",
+ "Insert Table": "Chèn Bảng",
+ "Toggle HTML Source": "Chế Äá»™ Mã HTML",
+ "Enlarge Editor": "Phóng To Ô Soạn Thảo",
+ "About this editor": "Tự Giới Thiệu",
+ "Help using editor": "Giúp Äỡ",
+ "Current style": "Äịnh Dạng Hiện Thá»i",
+ "Undoes your last action": "Hủy thao tác trước",
+ "Redoes your last action": "Lấy lại thao tác vừa bá»",
+ "Cut selection": "Cắt",
+ "Copy selection": "Sao chép",
+ "Paste from clipboard": "Dán",
+ "Direction left to right": "Viết từ trái sang phải",
+ "Direction right to left": "Viết từ phải sang trái",
+ "OK": "Äồng ý",
+ "Cancel": "Há»§y",
+ "The full screen mode is known to cause problems with Internet Explorer, due to browser bugs that we weren": "Chế độ phóng to ô soạn thảo có thể gây lỗi với Internet Explorer vì một số lỗi của trình duyệt nà y, vì thế chế độ nà y có thể sẽ không chạy. Hiển thị không đúng, lộn xộn, không có đầy đủ chức năng, và cũng có thể là m trình duyệt của bạn bị tắt ngang. Nếu bạn đang sỠdụng Windows 9x bạn có thể bị báo lỗi ",
+ "Path": "ÄÆ°á»ng Dẫn",
+ "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Bạn đang ở chế độ text. SỠdụng nút [<>] để chuyển lại chế độ WYSIWIG.",
+ "Cancel": "Há»§y",
+ "Insert/Modify Link": "Thêm/Chỉnh sá»a đưá»ng dẫn",
+ "New window (_blank)": "Cá»a sổ má»›i (_blank)",
+ "None (use implicit)": "Không (sỠdụng implicit)",
+ "OK": "Äồng ý",
+ "Other": "Khác",
+ "Same frame (_self)": "Trên cùng khung (_self)",
+ "Target:": "Nơi hiện thị:",
+ "Title (tooltip):": "Tiêu đỠ(của hướng dẫn):",
+ "Top frame (_top)": "Khung trên cùng (_top)",
+ "URL:": "URL:",
+ "You must enter the URL where this link points to": "Bạn phải Ä‘iá»n địa chỉ (URL) mà đưá»ng dẫn sẽ liên kết tá»›i"
+}
diff --git a/ccm-cms/web/assets/xinha/license.txt b/ccm-cms/web/assets/xinha/license.txt
new file mode 100755
index 000000000..e7798cf0b
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/license.txt
@@ -0,0 +1,30 @@
+htmlArea License (based on BSD license)
+Copyright (c) 2002-2004, interactivetools.com, inc.
+Copyright (c) 2003-2004 dynarch.com
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1) Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+2) Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+3) Neither the name of interactivetools.com, inc. nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
diff --git a/ccm-cms/web/assets/xinha/modules/ColorPicker/ColorPicker.js b/ccm-cms/web/assets/xinha/modules/ColorPicker/ColorPicker.js
new file mode 100644
index 000000000..a4aa75221
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/modules/ColorPicker/ColorPicker.js
@@ -0,0 +1,624 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/modules/ColorPicker/ColorPicker.js */
+ColorPicker._pluginInfo={name:"colorPicker",version:"$LastChangedRevision:998 $".replace(/^[^:]*:\s*(.*)\s*\$$/,"$1"),developer:"James Sleeman",developer_url:"http://www.gogo.co.nz/",c_owner:"Gogo Internet Services",license:"htmlArea",sponsor:"Gogo Internet Services",sponsor_url:"http://www.gogo.co.nz/"};
+function ColorPicker(){
+}
+try{
+if(window.opener&&window.opener.Xinha){
+var openerColorPicker=window.opener.Xinha.colorPicker;
+Xinha._addEvent(window,"unload",function(){
+Xinha.colorPicker=openerColorPicker;
+});
+}
+}
+catch(e){
+}
+Xinha.colorPicker=function(_1){
+if(Xinha.colorPicker.savedColors.length===0){
+Xinha.colorPicker.loadColors();
+}
+this.is_ie_6=(Xinha.is_ie&&Xinha.ie_version<7);
+var _2=this;
+var _3=false;
+var _4=false;
+var _5=0;
+var _6=0;
+this.callback=_1.callback?_1.callback:function(_7){
+alert("You picked "+_7);
+};
+this.websafe=_1.websafe?_1.websafe:false;
+this.savecolors=_1.savecolors?_1.savecolors:20;
+this.cellsize=parseInt(_1.cellsize?_1.cellsize:"10px",10);
+this.side=_1.granularity?_1.granularity:18;
+var _8=this.side+1;
+var _9=this.side-1;
+this.value=1;
+this.saved_cells=null;
+this.table=document.createElement("table");
+this.table.className="dialog";
+this.table.cellSpacing=this.table.cellPadding=0;
+this.table.onmouseup=function(){
+_3=false;
+_4=false;
+};
+this.tbody=document.createElement("tbody");
+this.table.appendChild(this.tbody);
+this.table.style.border="1px solid WindowFrame";
+this.table.style.zIndex="1050";
+var tr=document.createElement("tr");
+var td=document.createElement("td");
+td.colSpan=this.side;
+td.className="title";
+td.style.fontFamily="small-caption,caption,sans-serif";
+td.style.fontSize="x-small";
+td.unselectable="on";
+td.style.MozUserSelect="none";
+td.style.cursor="default";
+td.appendChild(document.createTextNode(Xinha._lc("Click a color...")));
+td.style.borderBottom="1px solid WindowFrame";
+tr.appendChild(td);
+td=null;
+var td=document.createElement("td");
+td.className="title";
+td.colSpan=2;
+td.style.fontFamily="Tahoma,Verdana,sans-serif";
+td.style.borderBottom="1px solid WindowFrame";
+td.style.paddingRight="0";
+tr.appendChild(td);
+var _c=document.createElement("div");
+_c.title=Xinha._lc("Close");
+_c.className="buttonColor";
+_c.style.height="11px";
+_c.style.width="11px";
+_c.style.cursor="pointer";
+_c.onclick=function(){
+_2.close();
+};
+_c.appendChild(document.createTextNode("\xd7"));
+_c.align="center";
+_c.style.verticalAlign="top";
+_c.style.position="relative";
+_c.style.cssFloat="right";
+_c.style.styleFloat="right";
+_c.style.padding="0";
+_c.style.margin="2px";
+_c.style.backgroundColor="transparent";
+_c.style.fontSize="11px";
+if(!Xinha.is_ie){
+_c.style.lineHeight="9px";
+}
+_c.style.letterSpacing="0";
+td.appendChild(_c);
+this.tbody.appendChild(tr);
+_c=tr=td=null;
+this.constrain_cb=document.createElement("input");
+this.constrain_cb.type="checkbox";
+this.chosenColor=document.createElement("input");
+this.chosenColor.type="text";
+this.chosenColor.maxLength=7;
+this.chosenColor.style.width="50px";
+this.chosenColor.style.fontSize="11px";
+this.chosenColor.onchange=function(){
+if(/#[0-9a-f]{6,6}/i.test(this.value)){
+_2.backSample.style.backgroundColor=this.value;
+_2.foreSample.style.color=this.value;
+}
+};
+this.backSample=document.createElement("div");
+this.backSample.appendChild(document.createTextNode("\xa0"));
+this.backSample.style.fontWeight="bold";
+this.backSample.style.fontFamily="small-caption,caption,sans-serif";
+this.backSample.fontSize="x-small";
+this.foreSample=document.createElement("div");
+this.foreSample.appendChild(document.createTextNode(Xinha._lc("Sample")));
+this.foreSample.style.fontWeight="bold";
+this.foreSample.style.fontFamily="small-caption,caption,sans-serif";
+this.foreSample.fontSize="x-small";
+function toHex(_d){
+var h=_d.toString(16);
+if(h.length<2){
+h="0"+h;
+}
+return h;
+}
+function tupleToColor(_f){
+return "#"+toHex(_f.red)+toHex(_f.green)+toHex(_f.blue);
+}
+function nearestPowerOf(num,_11){
+return Math.round(Math.round(num/_11)*_11);
+}
+function doubleHexDec(dec){
+return parseInt(dec.toString(16)+dec.toString(16),16);
+}
+function rgbToWebsafe(_13){
+_13.red=doubleHexDec(nearestPowerOf(parseInt(toHex(_13.red).charAt(0),16),3));
+_13.blue=doubleHexDec(nearestPowerOf(parseInt(toHex(_13.blue).charAt(0),16),3));
+_13.green=doubleHexDec(nearestPowerOf(parseInt(toHex(_13.green).charAt(0),16),3));
+return _13;
+}
+function hsvToRGB(h,s,v){
+var _17;
+if(s===0){
+_17={red:v,green:v,blue:v};
+}else{
+h/=60;
+var i=Math.floor(h);
+var f=h-i;
+var p=v*(1-s);
+var q=v*(1-s*f);
+var t=v*(1-s*(1-f));
+switch(i){
+case 0:
+_17={red:v,green:t,blue:p};
+break;
+case 1:
+_17={red:q,green:v,blue:p};
+break;
+case 2:
+_17={red:p,green:v,blue:t};
+break;
+case 3:
+_17={red:p,green:q,blue:v};
+break;
+case 4:
+_17={red:t,green:p,blue:v};
+break;
+default:
+_17={red:v,green:p,blue:q};
+break;
+}
+}
+_17.red=Math.ceil(_17.red*255);
+_17.green=Math.ceil(_17.green*255);
+_17.blue=Math.ceil(_17.blue*255);
+return _17;
+}
+var _1d=this;
+function closeOnBodyClick(ev){
+ev=ev?ev:window.event;
+el=ev.target?ev.target:ev.srcElement;
+do{
+if(el==_1d.table){
+return;
+}
+}while(el=el.parentNode);
+_1d.close();
+}
+this.open=function(_1f,_20,_21){
+this.table.style.display="";
+this.pick_color();
+if(_21&&/#[0-9a-f]{6,6}/i.test(_21)){
+this.chosenColor.value=_21;
+this.backSample.style.backgroundColor=_21;
+this.foreSample.style.color=_21;
+}
+Xinha._addEvent(document.body,"mousedown",closeOnBodyClick);
+this.table.style.position="absolute";
+var e=_20;
+var top=0;
+var _24=0;
+do{
+if(e.style.position=="fixed"){
+this.table.style.position="fixed";
+}
+top+=e.offsetTop;
+_24+=e.offsetLeft;
+e=e.offsetParent;
+}while(e);
+var x,y;
+if(/top/.test(_1f)||(top+this.table.offsetHeight>document.body.offsetHeight)){
+if(top-this.table.offsetHeight>0){
+this.table.style.top=(top-this.table.offsetHeight)+"px";
+}else{
+this.table.style.top=0;
+}
+}else{
+this.table.style.top=(top+_20.offsetHeight)+"px";
+}
+if(/left/.test(_1f)||(_24+this.table.offsetWidth>document.body.offsetWidth)){
+if(_24-(this.table.offsetWidth-_20.offsetWidth)>0){
+this.table.style.left=(_24-(this.table.offsetWidth-_20.offsetWidth))+"px";
+}else{
+this.table.style.left=0;
+}
+}else{
+this.table.style.left=_24+"px";
+}
+if(this.is_ie_6){
+this.iframe.style.top=this.table.style.top;
+this.iframe.style.left=this.table.style.left;
+}
+};
+function pickCell(_26){
+_2.chosenColor.value=_26.colorCode;
+_2.backSample.style.backgroundColor=_26.colorCode;
+_2.foreSample.style.color=_26.colorCode;
+if((_26.hue>=195&&_26.saturation>0.5)||(_26.hue===0&&_26.saturation===0&&_26.value<0.5)||(_26.hue!==0&&_2.value<0.75)){
+_26.style.borderColor="#fff";
+}else{
+_26.style.borderColor="#000";
+}
+_5=_26.thisrow;
+_6=_26.thiscol;
+}
+function pickValue(_27){
+if(_2.value<0.5){
+_27.style.borderColor="#fff";
+}else{
+_27.style.borderColor="#000";
+}
+_9=_27.thisrow;
+_8=_27.thiscol;
+_2.chosenColor.value=_2.saved_cells[_5][_6].colorCode;
+_2.backSample.style.backgroundColor=_2.saved_cells[_5][_6].colorCode;
+_2.foreSample.style.color=_2.saved_cells[_5][_6].colorCode;
+}
+function unpickCell(row,col){
+_2.saved_cells[row][col].style.borderColor=_2.saved_cells[row][col].colorCode;
+}
+this.pick_color=function(){
+var _2a,cols;
+var _2b=this;
+var _2c=359/(this.side);
+var _2d=1/(this.side-1);
+var _2e=1/(this.side-1);
+var _2f=this.constrain_cb.checked;
+if(this.saved_cells===null){
+this.saved_cells=[];
+for(var row=0;row=195&&_41.saturation>0.5)||(_41.hue===0&&_41.saturation===0&&_41.value<0.5)||(_41.hue!==0&&_2b.value<0.75)){
+_41.style.borderColor="#fff";
+}else{
+_41.style.borderColor="#000";
+}
+}
+};
+this.close=function(){
+Xinha._removeEvent(document.body,"mousedown",closeOnBodyClick);
+this.table.style.display="none";
+if(this.is_ie_6){
+if(this.iframe){
+this.iframe.style.display="none";
+}
+}
+};
+};
+Xinha.colorPicker.savedColors=[];
+Xinha.colorPicker.remember=function(_42,_43){
+for(var i=Xinha.colorPicker.savedColors.length;i--;){
+if(Xinha.colorPicker.savedColors[i]==_42){
+return false;
+}
+}
+Xinha.colorPicker.savedColors.splice(0,0,_42);
+Xinha.colorPicker.savedColors=Xinha.colorPicker.savedColors.slice(0,_43);
+var _45=new Date();
+_45.setMonth(_45.getMonth()+1);
+document.cookie="XinhaColorPicker="+escape(Xinha.colorPicker.savedColors.join("-"))+";expires="+_45.toGMTString();
+return true;
+};
+Xinha.colorPicker.loadColors=function(){
+var _46=document.cookie.indexOf("XinhaColorPicker");
+if(_46!=-1){
+var _47=(document.cookie.indexOf("=",_46)+1);
+var end=document.cookie.indexOf(";",_46);
+if(end==-1){
+end=document.cookie.length;
+}
+Xinha.colorPicker.savedColors=unescape(document.cookie.substring(_47,end)).split("-");
+}
+};
+Xinha.colorPicker.InputBinding=function(_49,_4a){
+var doc=_49.ownerDocument;
+var _4c=doc.createElement("span");
+_4c.className="buttonColor";
+var _4d=this.chooser=doc.createElement("span");
+_4d.className="chooser";
+if(_49.value){
+_4d.style.backgroundColor=_49.value;
+}
+_4d.onmouseover=function(){
+_4d.className="chooser buttonColor-hilite";
+};
+_4d.onmouseout=function(){
+_4d.className="chooser";
+};
+_4d.appendChild(doc.createTextNode("\xa0"));
+_4c.appendChild(_4d);
+var _4e=doc.createElement("span");
+_4e.className="nocolor";
+_4e.onmouseover=function(){
+_4e.className="nocolor buttonColor-hilite";
+_4e.style.color="#f00";
+};
+_4e.onmouseout=function(){
+_4e.className="nocolor";
+_4e.style.color="#000";
+};
+_4e.onclick=function(){
+_49.value="";
+_4d.style.backgroundColor="";
+};
+_4e.appendChild(doc.createTextNode("\xd7"));
+_4c.appendChild(_4e);
+_49.parentNode.insertBefore(_4c,_49.nextSibling);
+Xinha._addEvent(_49,"change",function(){
+_4d.style.backgroundColor=this.value;
+});
+_4a=(_4a)?Xinha.cloneObject(_4a):{cellsize:"5px"};
+_4a.callback=(_4a.callback)?_4a.callback:function(_4f){
+_4d.style.backgroundColor=_4f;
+_49.value=_4f;
+};
+_4d.onclick=function(){
+var _50=new Xinha.colorPicker(_4a);
+_50.open("",_4d,_49.value);
+};
+Xinha.freeLater(this,"chooser");
+};
+Xinha.colorPicker.InputBinding.prototype.setColor=function(_51){
+this.chooser.style.backgroundColor=_51;
+};
+
diff --git a/ccm-cms/web/assets/xinha/modules/ColorPicker/lang/pt_br.js b/ccm-cms/web/assets/xinha/modules/ColorPicker/lang/pt_br.js
new file mode 100644
index 000000000..4b1ea7e48
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/modules/ColorPicker/lang/pt_br.js
@@ -0,0 +1,22 @@
+// I18N constants
+//
+// LANG: "pt_br", ENCODING: UTF-8
+// Portuguese Brazilian Translation
+//
+// Author: Marcio Barbosa,
+// MSN: tomarshall@msn.com - ICQ: 69419933
+// Site: http://www.mpg.com.br
+//
+// Last revision: 06 september 2007
+// Please don´t remove this information
+// If you modify any source, please insert a comment with your name and e-mail
+//
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt).
+{
+ "Click a color...": "Selecione uma côr...",
+ "Close": "Fechar",
+ "Color: ": "Côr:",
+ "Sample": "Exemplo",
+ "Web Safe: ": "Web Segura:"
+}
diff --git a/ccm-cms/web/assets/xinha/modules/CreateLink/lang/pt_br.js b/ccm-cms/web/assets/xinha/modules/CreateLink/lang/pt_br.js
new file mode 100644
index 000000000..f75cd02c8
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/modules/CreateLink/lang/pt_br.js
@@ -0,0 +1,18 @@
+// I18N constants
+//
+// LANG: "pt_br", ENCODING: UTF-8
+// Portuguese Brazilian Translation
+//
+// Author: Marcio Barbosa,
+// MSN: tomarshall@msn.com - ICQ: 69419933
+// Site: http://www.mpg.com.br
+//
+// Last revision: 06 september 2007
+// Please don´t remove this information
+// If you modify any source, please insert a comment with your name and e-mail
+//
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt).
+{
+ "You need to select some text before creating a link": "Você precisa selecionar um texto antes de criar um link"
+}
diff --git a/ccm-cms/web/assets/xinha/modules/CreateLink/link.html b/ccm-cms/web/assets/xinha/modules/CreateLink/link.html
new file mode 100755
index 000000000..adad40058
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/modules/CreateLink/link.html
@@ -0,0 +1,136 @@
+
+
+
+ Insert/Modify Link
+
+
+
+
+
+
+
+
+Insert/Modify Link
+
+
+
+
+ OK
+ Cancel
+
+
+
+
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/modules/CreateLink/link.js b/ccm-cms/web/assets/xinha/modules/CreateLink/link.js
new file mode 100644
index 000000000..09e5e23ae
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/modules/CreateLink/link.js
@@ -0,0 +1,87 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/modules/CreateLink/link.js */
+CreateLink._pluginInfo={name:"CreateLink",origin:"Xinha Core",version:"$LastChangedRevision:990 $".replace(/^[^:]*:\s*(.*)\s*\$$/,"$1"),developer:"The Xinha Core Developer Team",developer_url:"$HeadURL:http://svn.xinha.webfactional.com/trunk/modules/CreateLink/link.js $".replace(/^[^:]*:\s*(.*)\s*\$$/,"$1"),sponsor:"",sponsor_url:"",license:"htmlArea"};
+function CreateLink(_1){
+}
+Xinha.prototype._createLink=function(_2){
+var _3=this;
+var _4=null;
+if(typeof _2=="undefined"){
+_2=this.getParentElement();
+if(_2){
+while(_2&&!/^a$/i.test(_2.tagName)){
+_2=_2.parentNode;
+}
+}
+}
+if(!_2){
+var _5=_3.getSelection();
+var _6=_3.createRange(_5);
+var _7=0;
+if(Xinha.is_ie){
+if(_5.type=="Control"){
+_7=_6.length;
+}else{
+_7=_6.compareEndPoints("StartToEnd",_6);
+}
+}else{
+_7=_6.compareBoundaryPoints(_6.START_TO_END,_6);
+}
+if(_7===0){
+alert(Xinha._lc("You need to select some text before creating a link"));
+return;
+}
+_4={f_href:"",f_title:"",f_target:"",f_usetarget:_3.config.makeLinkShowsTarget};
+}else{
+_4={f_href:Xinha.is_ie?_3.stripBaseURL(_2.href):_2.getAttribute("href"),f_title:_2.title,f_target:_2.target,f_usetarget:_3.config.makeLinkShowsTarget};
+}
+Dialog(_3.config.URIs.link,function(_8){
+if(!_8){
+return false;
+}
+var a=_2;
+if(!a){
+try{
+var _a=Xinha.uniq("http://www.example.com/Link");
+_3._doc.execCommand("createlink",false,_a);
+var _b=_3._doc.getElementsByTagName("a");
+for(var i=0;i<_b.length;i++){
+var _d=_b[i];
+if(_d.href==_a){
+if(!a){
+a=_d;
+}
+_d.href=_8.f_href;
+if(_8.f_target){
+_d.target=_8.f_target;
+}
+if(_8.f_title){
+_d.title=_8.f_title;
+}
+}
+}
+}
+catch(ex){
+}
+}else{
+var _e=_8.f_href.trim();
+_3.selectNodeContents(a);
+if(_e===""){
+_3._doc.execCommand("unlink",false,null);
+_3.updateToolbar();
+return false;
+}else{
+a.href=_e;
+}
+}
+if(!(a&&a.tagName.toLowerCase()=="a")){
+return false;
+}
+a.target=_8.f_target.trim();
+a.title=_8.f_title.trim();
+_3.selectNodeContents(a);
+_3.updateToolbar();
+},_4);
+};
+
diff --git a/ccm-cms/web/assets/xinha/modules/Dialogs/dialog.js b/ccm-cms/web/assets/xinha/modules/Dialogs/dialog.js
new file mode 100644
index 000000000..cd267667c
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/modules/Dialogs/dialog.js
@@ -0,0 +1,75 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/modules/Dialogs/dialog.js */
+function Dialog(_1,_2,_3){
+if(typeof _3=="undefined"){
+_3=window;
+}
+if(typeof window.showModalDialog=="function"&&!Xinha.is_webkit){
+Dialog._return=function(_4){
+if(typeof _2=="function"){
+_2(_4);
+}
+};
+var r=window.showModalDialog(_1,_3,"dialogheight=300;dialogwidth=400;resizable=yes");
+}else{
+Dialog._geckoOpenModal(_1,_2,_3);
+}
+}
+Dialog._parentEvent=function(ev){
+setTimeout(function(){
+if(Dialog._modal&&!Dialog._modal.closed){
+Dialog._modal.focus();
+}
+},50);
+try{
+if(Dialog._modal&&!Dialog._modal.closed){
+Xinha._stopEvent(ev);
+}
+}
+catch(e){
+}
+};
+Dialog._return=null;
+Dialog._modal=null;
+Dialog._arguments=null;
+Dialog._selection=null;
+Dialog._geckoOpenModal=function(_7,_8,_9){
+var _a=window.open(_7,"hadialog","toolbar=no,menubar=no,personalbar=no,width=10,height=10,"+"scrollbars=no,resizable=yes,modal=yes,dependable=yes");
+Dialog._modal=_a;
+Dialog._arguments=_9;
+function capwin(w){
+Xinha._addEvent(w,"click",Dialog._parentEvent);
+Xinha._addEvent(w,"mousedown",Dialog._parentEvent);
+Xinha._addEvent(w,"focus",Dialog._parentEvent);
+}
+function relwin(w){
+Xinha._removeEvent(w,"click",Dialog._parentEvent);
+Xinha._removeEvent(w,"mousedown",Dialog._parentEvent);
+Xinha._removeEvent(w,"focus",Dialog._parentEvent);
+}
+capwin(window);
+for(var i=0;i(.*?)<\/l10n>/ig,function(_9,_a){
+return _4._lc(_a);
+}).replace(/="_\((.*?)\)"/g,function(_b,_c){
+return "=\""+_4._lc(_c)+"\"";
+});
+this.rootElem.innerHTML=_2;
+this.editor.notifyOn("resize",function(e,_e){
+_4.rootElem.style.width=_4.width=_4.editor._framework.ed_cell.offsetWidth+"px";
+_4.rootElem.style.height=_4.height=_4.editor._framework.ed_cell.offsetHeight+"px";
+_4.onresize();
+});
+};
+Xinha.Dialog.prototype.onresize=function(){
+return true;
+};
+Xinha.Dialog.prototype.show=function(_f){
+if(Xinha.is_ie){
+this._lastRange=this.editor._createRange(this.editor._getSelection());
+}
+if(typeof _f!="undefined"){
+this.setValues(_f);
+}
+this._restoreTo=[this.editor._textArea.style.display,this.editor._iframe.style.visibility,this.editor.hidePanels()];
+this.editor._textArea.style.display="none";
+this.editor._iframe.style.visibility="hidden";
+this.rootElem.style.display="";
+};
+Xinha.Dialog.prototype.hide=function(){
+this.rootElem.style.display="none";
+this.editor._textArea.style.display=this._restoreTo[0];
+this.editor._iframe.style.visibility=this._restoreTo[1];
+this.editor.showPanels(this._restoreTo[2]);
+if(Xinha.is_ie){
+this._lastRange.select();
+}
+this.editor.updateToolbar();
+return this.getValues();
+};
+Xinha.Dialog.prototype.toggle=function(){
+if(this.rootElem.style.display=="none"){
+this.show();
+}else{
+this.hide();
+}
+};
+Xinha.Dialog.prototype.setValues=function(_10){
+for(var i in _10){
+var _12=this.getElementsByName(i);
+if(!_12){
+continue;
+}
+for(var x=0;x<_12.length;x++){
+var e=_12[x];
+switch(e.tagName.toLowerCase()){
+case "select":
+for(var j=0;j=0){
+v=i.options[i.selectedIndex];
+}
+}
+break;
+case "textarea":
+case "input":
+default:
+switch(i.type.toLowerCase()){
+case "radio":
+if(i.checked){
+v=i.value;
+break;
+}
+case "checkbox":
+if(v==null){
+if(this.getElementsByName(this.r_id[i.name]).length>1){
+v=new Array();
+}
+}
+if(i.checked){
+if(v!=null&&typeof v=="object"&&v.push){
+v.push(i.value);
+}else{
+v=i.value;
+}
+}
+break;
+default:
+v=i.value;
+break;
+}
+}
+_17[this.r_id[i.name]]=v;
+}
+return _17;
+};
+Xinha.Dialog.prototype.getElementById=function(id){
+return this.document.getElementById(this.id[id]?this.id[id]:id);
+};
+Xinha.Dialog.prototype.getElementsByName=function(_1e){
+return this.document.getElementsByName(this.id[_1e]?this.id[_1e]:_1e);
+};
+
diff --git a/ccm-cms/web/assets/xinha/modules/Dialogs/panel-dialog.js b/ccm-cms/web/assets/xinha/modules/Dialogs/panel-dialog.js
new file mode 100644
index 000000000..74ac287d9
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/modules/Dialogs/panel-dialog.js
@@ -0,0 +1,51 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/modules/Dialogs/panel-dialog.js */
+Xinha.PanelDialog=function(_1,_2,_3,_4){
+this.id={};
+this.r_id={};
+this.editor=_1;
+this.document=document;
+this.rootElem=_1.addPanel(_2);
+var _5=this;
+if(typeof _4=="function"){
+this._lc=_4;
+}else{
+if(_4){
+this._lc=function(_6){
+return Xinha._lc(_6,_4);
+};
+}else{
+this._lc=function(_7){
+return _7;
+};
+}
+}
+_3=_3.replace(/\[([a-z0-9_]+)\]/ig,function(_8,id){
+if(typeof _5.id[id]=="undefined"){
+_5.id[id]=Xinha.uniq("Dialog");
+_5.r_id[_5.id[id]]=id;
+}
+return _5.id[id];
+}).replace(/(.*?)<\/l10n>/ig,function(_a,_b){
+return _5._lc(_b);
+}).replace(/="_\((.*?)\)"/g,function(_c,_d){
+return "=\""+_5._lc(_d)+"\"";
+});
+this.rootElem.innerHTML=_3;
+};
+Xinha.PanelDialog.prototype.show=function(_e){
+this.setValues(_e);
+this.editor.showPanel(this.rootElem);
+};
+Xinha.PanelDialog.prototype.hide=function(){
+this.editor.hidePanel(this.rootElem);
+return this.getValues();
+};
+Xinha.PanelDialog.prototype.onresize=Xinha.Dialog.prototype.onresize;
+Xinha.PanelDialog.prototype.toggle=Xinha.Dialog.prototype.toggle;
+Xinha.PanelDialog.prototype.setValues=Xinha.Dialog.prototype.setValues;
+Xinha.PanelDialog.prototype.getValues=Xinha.Dialog.prototype.getValues;
+Xinha.PanelDialog.prototype.getElementById=Xinha.Dialog.prototype.getElementById;
+Xinha.PanelDialog.prototype.getElementsByName=Xinha.Dialog.prototype.getElementsByName;
+
diff --git a/ccm-cms/web/assets/xinha/modules/Dialogs/popupwin.js b/ccm-cms/web/assets/xinha/modules/Dialogs/popupwin.js
new file mode 100644
index 000000000..8ec686f26
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/modules/Dialogs/popupwin.js
@@ -0,0 +1,123 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/modules/Dialogs/popupwin.js */
+function PopupWin(_1,_2,_3,_4){
+this.editor=_1;
+this.handler=_3;
+var _5=window.open("","__ha_dialog","toolbar=no,menubar=no,personalbar=no,width=600,height=600,left=20,top=40,scrollbars=no,resizable=yes");
+this.window=_5;
+var _6=_5.document;
+this.doc=_6;
+var _7=this;
+var _8=document.baseURI||document.URL;
+if(_8&&_8.match(/(.*)\/([^\/]+)/)){
+_8=RegExp.$1+"/";
+}
+if(typeof _editor_url!="undefined"&&!(/^\//.test(_editor_url))&&!(/http:\/\//.test(_editor_url))){
+_8+=_editor_url;
+}else{
+_8=_editor_url;
+}
+if(!(/\/$/.test(_8))){
+_8+="/";
+}
+this.baseURL=_8;
+_6.open();
+var _9=""+_2+" \n";
+_9+="\n";
+if(_editor_skin!=""){
+_9+="\n";
+}
+_9+="\n";
+_9+="";
+_6.write(_9);
+_6.close();
+function init2(){
+var _a=_6.body;
+if(!_a){
+setTimeout(init2,25);
+return false;
+}
+_5.title=_2;
+_6.documentElement.style.padding="0px";
+_6.documentElement.style.margin="0px";
+var _b=_6.createElement("div");
+_b.className="content";
+_7.content=_b;
+_a.appendChild(_b);
+_7.element=_a;
+_4(_7);
+_5.focus();
+}
+init2();
+}
+PopupWin.prototype.callHandler=function(){
+var _c=["input","textarea","select"];
+var _d={};
+for(var ti=_c.length;--ti>=0;){
+var _f=_c[ti];
+var els=this.content.getElementsByTagName(_f);
+for(var j=0;j
+// MSN: tomarshall@msn.com - ICQ: 69419933
+// Site: http://www.mpg.com.br
+//
+// Last revision: 06 september 2007
+// Please don´t remove this information
+// If you modify any source, please insert a comment with your name and e-mail
+//
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt).
+{
+ "Maximize/Minimize Editor": "Maximizar/Minimizar Editor"
+};
diff --git a/ccm-cms/web/assets/xinha/modules/FullScreen/lang/ru.js b/ccm-cms/web/assets/xinha/modules/FullScreen/lang/ru.js
new file mode 100644
index 000000000..b2248ef88
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/modules/FullScreen/lang/ru.js
@@ -0,0 +1,6 @@
+// I18N constants
+// LANG: "ru", ENCODING: UTF-8
+// Author: Andrei Blagorazumov, a@fnr.ru
+{
+ "Maximize/Minimize Editor": "Развернуть/Свернуть редактор"
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/modules/FullScreen/lang/sv.js b/ccm-cms/web/assets/xinha/modules/FullScreen/lang/sv.js
new file mode 100644
index 000000000..c27fee57a
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/modules/FullScreen/lang/sv.js
@@ -0,0 +1,6 @@
+// I18N constants
+// LANG: "sv" (Swedish), ENCODING: UTF-8
+// translated: Erik Dalén,
+{
+ "Maximize/Minimize Editor": "Maximera/Minimera WYSIWYG fönster"
+};
diff --git a/ccm-cms/web/assets/xinha/modules/Gecko/Gecko.js b/ccm-cms/web/assets/xinha/modules/Gecko/Gecko.js
new file mode 100644
index 000000000..518be1476
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/modules/Gecko/Gecko.js
@@ -0,0 +1,461 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/modules/Gecko/Gecko.js */
+Gecko._pluginInfo={name:"Gecko",origin:"Xinha Core",version:"$LastChangedRevision:998 $".replace(/^[^:]*:\s*(.*)\s*\$$/,"$1"),developer:"The Xinha Core Developer Team",developer_url:"$HeadURL:http://svn.xinha.webfactional.com/trunk/modules/Gecko/Gecko.js $".replace(/^[^:]*:\s*(.*)\s*\$$/,"$1"),sponsor:"",sponsor_url:"",license:"htmlArea"};
+function Gecko(_1){
+this.editor=_1;
+_1.Gecko=this;
+}
+Gecko.prototype.onKeyPress=function(ev){
+var _3=this.editor;
+var s=_3.getSelection();
+if(_3.isShortCut(ev)){
+switch(_3.getKey(ev).toLowerCase()){
+case "z":
+if(_3._unLink&&_3._unlinkOnUndo){
+Xinha._stopEvent(ev);
+_3._unLink();
+_3.updateToolbar();
+return true;
+}
+break;
+case "a":
+sel=_3.getSelection();
+sel.removeAllRanges();
+range=_3.createRange();
+range.selectNodeContents(_3._doc.body);
+sel.addRange(range);
+Xinha._stopEvent(ev);
+return true;
+break;
+case "v":
+if(!_3.config.htmlareaPaste){
+return true;
+}
+break;
+}
+}
+switch(_3.getKey(ev)){
+case " ":
+var _5=function(_6,_7){
+var _8=_6.nextSibling;
+if(typeof _7=="string"){
+_7=_3._doc.createElement(_7);
+}
+var a=_6.parentNode.insertBefore(_7,_8);
+Xinha.removeFromParent(_6);
+a.appendChild(_6);
+_8.data=" "+_8.data;
+s.collapse(_8,1);
+_3._unLink=function(){
+var t=a.firstChild;
+a.removeChild(t);
+a.parentNode.insertBefore(t,a);
+Xinha.removeFromParent(a);
+_3._unLink=null;
+_3._unlinkOnUndo=false;
+};
+_3._unlinkOnUndo=true;
+return a;
+};
+if(_3.config.convertUrlsToLinks&&s&&s.isCollapsed&&s.anchorNode.nodeType==3&&s.anchorNode.data.length>3&&s.anchorNode.data.indexOf(".")>=0){
+var _b=s.anchorNode.data.substring(0,s.anchorOffset).search(/\S{4,}$/);
+if(_b==-1){
+break;
+}
+if(_3._getFirstAncestor(s,"a")){
+break;
+}
+var _c=s.anchorNode.data.substring(0,s.anchorOffset).replace(/^.*?(\S*)$/,"$1");
+var _d=_c.match(Xinha.RE_email);
+if(_d){
+var _e=s.anchorNode;
+var _f=_e.splitText(s.anchorOffset);
+var _10=_e.splitText(_b);
+_5(_10,"a").href="mailto:"+_d[0];
+break;
+}
+RE_date=/([0-9]+\.)+/;
+RE_ip=/(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/;
+var _11=_c.match(Xinha.RE_url);
+if(_11){
+if(RE_date.test(_c)){
+break;
+}
+var _12=s.anchorNode;
+var _13=_12.splitText(s.anchorOffset);
+var _14=_12.splitText(_b);
+_5(_14,"a").href=(_11[1]?_11[1]:"http://")+_11[2];
+break;
+}
+}
+break;
+}
+switch(ev.keyCode){
+case 27:
+if(_3._unLink){
+_3._unLink();
+Xinha._stopEvent(ev);
+}
+break;
+break;
+case 8:
+case 46:
+if(!ev.shiftKey&&this.handleBackspace()){
+Xinha._stopEvent(ev);
+}
+default:
+_3._unlinkOnUndo=false;
+if(s.anchorNode&&s.anchorNode.nodeType==3){
+var a=_3._getFirstAncestor(s,"a");
+if(!a){
+break;
+}
+if(!a._updateAnchTimeout){
+if(s.anchorNode.data.match(Xinha.RE_email)&&a.href.match("mailto:"+s.anchorNode.data.trim())){
+var _16=s.anchorNode;
+var _17=function(){
+a.href="mailto:"+_16.data.trim();
+a._updateAnchTimeout=setTimeout(_17,250);
+};
+a._updateAnchTimeout=setTimeout(_17,1000);
+break;
+}
+var m=s.anchorNode.data.match(Xinha.RE_url);
+if(m&&a.href.match(new RegExp("http(s)?://"+Xinha.escapeStringForRegExp(s.anchorNode.data.trim())))){
+var _19=s.anchorNode;
+var _1a=function(){
+m=_19.data.match(Xinha.RE_url);
+if(m){
+a.href=(m[1]?m[1]:"http://")+m[2];
+}
+a._updateAnchTimeout=setTimeout(_1a,250);
+};
+a._updateAnchTimeout=setTimeout(_1a,1000);
+}
+}
+}
+break;
+}
+return false;
+};
+Gecko.prototype.handleBackspace=function(){
+var _1b=this.editor;
+setTimeout(function(){
+var sel=_1b.getSelection();
+var _1d=_1b.createRange(sel);
+var SC=_1d.startContainer;
+var SO=_1d.startOffset;
+var EC=_1d.endContainer;
+var EO=_1d.endOffset;
+var _22=SC.nextSibling;
+if(SC.nodeType==3){
+SC=SC.parentNode;
+}
+if(!(/\S/.test(SC.tagName))){
+var p=document.createElement("p");
+while(SC.firstChild){
+p.appendChild(SC.firstChild);
+}
+SC.parentNode.insertBefore(p,SC);
+Xinha.removeFromParent(SC);
+var r=_1d.cloneRange();
+r.setStartBefore(_22);
+r.setEndAfter(_22);
+r.extractContents();
+sel.removeAllRanges();
+sel.addRange(r);
+}
+},10);
+};
+Gecko.prototype.inwardHtml=function(_25){
+_25=_25.replace(/<(\/?)strong(\s|>|\/)/ig,"<$1b$2");
+_25=_25.replace(/<(\/?)em(\s|>|\/)/ig,"<$1i$2");
+_25=_25.replace(/<(\/?)del(\s|>|\/)/ig,"<$1strike$2");
+return _25;
+};
+Gecko.prototype.outwardHtml=function(_26){
+_26=_26.replace(/)"),"$1$3$2");
+ta.value=ta.value.replace(new RegExp("^([^"+cc+"]*)("+cc+")([^"+cc+"]*]*>)(.*?)"),"$1$3$2$4");
+}else{
+var sel=this.getSelection();
+sel.getRangeAt(0).insertNode(this._doc.createTextNode(cc));
+}
+}
+catch(e){
+}
+};
+Xinha.prototype.findCC=function(_5a){
+if(_5a=="textarea"){
+var ta=this._textArea;
+var pos=ta.value.indexOf(this.cc);
+if(pos==-1){
+return;
+}
+var end=pos+this.cc.length;
+var _5e=ta.value.substring(0,pos);
+var _5f=ta.value.substring(end,ta.value.length);
+ta.value=_5e;
+ta.scrollTop=ta.scrollHeight;
+var _60=ta.scrollTop;
+ta.value+=_5f;
+ta.setSelectionRange(pos,pos);
+ta.focus();
+ta.scrollTop=_60;
+}else{
+try{
+var doc=this._doc;
+doc.body.innerHTML=doc.body.innerHTML.replace(new RegExp(this.cc)," ");
+var _62=doc.getElementById("XinhaEditingPostion");
+this.selectNodeContents(_62);
+_62.scrollIntoView(true);
+_62.parentNode.removeChild(_62);
+this._iframe.contentWindow.focus();
+}
+catch(e){
+}
+}
+};
+Xinha.prototype._standardToggleBorders=Xinha.prototype._toggleBorders;
+Xinha.prototype._toggleBorders=function(){
+var _63=this._standardToggleBorders();
+var _64=this._doc.getElementsByTagName("TABLE");
+for(var i=0;i<_64.length;i++){
+_64[i].style.display="none";
+_64[i].style.display="table";
+}
+return _63;
+};
+Xinha.getDoctype=function(doc){
+var d="";
+if(doc.doctype){
+d+="";
+}
+return d;
+};
+
diff --git a/ccm-cms/web/assets/xinha/modules/Gecko/paraHandlerBest.js b/ccm-cms/web/assets/xinha/modules/Gecko/paraHandlerBest.js
new file mode 100644
index 000000000..d19100ea8
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/modules/Gecko/paraHandlerBest.js
@@ -0,0 +1,296 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/modules/Gecko/paraHandlerBest.js */
+EnterParagraphs._pluginInfo={name:"EnterParagraphs",version:"1.0",developer:"Adam Wright",developer_url:"http://www.hipikat.org/",sponsor:"The University of Western Australia",sponsor_url:"http://www.uwa.edu.au/",license:"htmlArea"};
+EnterParagraphs.prototype._whiteSpace=/^\s*$/;
+EnterParagraphs.prototype._pExclusions=/^(address|blockquote|body|dd|div|dl|dt|fieldset|form|h1|h2|h3|h4|h5|h6|hr|li|noscript|ol|p|pre|table|ul)$/i;
+EnterParagraphs.prototype._pContainers=/^(body|del|div|fieldset|form|ins|map|noscript|object|td|th)$/i;
+EnterParagraphs.prototype._pBreak=/^(address|pre|blockquote)$/i;
+EnterParagraphs.prototype._permEmpty=/^(area|base|basefont|br|col|frame|hr|img|input|isindex|link|meta|param)$/i;
+EnterParagraphs.prototype._elemSolid=/^(applet|br|button|hr|img|input|table)$/i;
+EnterParagraphs.prototype._pifySibling=/^(address|blockquote|del|div|dl|fieldset|form|h1|h2|h3|h4|h5|h6|hr|ins|map|noscript|object|ol|p|pre|table|ul|)$/i;
+EnterParagraphs.prototype._pifyForced=/^(ul|ol|dl|table)$/i;
+EnterParagraphs.prototype._pifyParent=/^(dd|dt|li|td|th|tr)$/i;
+function EnterParagraphs(_1){
+this.editor=_1;
+if(Xinha.is_gecko){
+this.onKeyPress=this.__onKeyPress;
+}
+}
+EnterParagraphs.prototype.name="EnterParagraphs";
+EnterParagraphs.prototype.insertAdjacentElement=function(_2,_3,el){
+if(_3=="BeforeBegin"){
+_2.parentNode.insertBefore(el,_2);
+}else{
+if(_3=="AfterEnd"){
+_2.nextSibling?_2.parentNode.insertBefore(el,_2.nextSibling):_2.parentNode.appendChild(el);
+}else{
+if(_3=="AfterBegin"&&_2.firstChild){
+_2.insertBefore(el,_2.firstChild);
+}else{
+if(_3=="BeforeEnd"||_3=="AfterBegin"){
+_2.appendChild(el);
+}
+}
+}
+}
+};
+EnterParagraphs.prototype.forEachNodeUnder=function(_5,_6,_7,_8){
+var _9,end;
+if(_5.nodeType==11&&_5.firstChild){
+_9=_5.firstChild;
+end=_5.lastChild;
+}else{
+_9=end=_5;
+}
+while(end.lastChild){
+end=end.lastChild;
+}
+return this.forEachNode(_9,end,_6,_7,_8);
+};
+EnterParagraphs.prototype.forEachNode=function(_a,_b,_c,_d,_e){
+var _f=function(_10,_11){
+return (_11=="ltr"?_10.nextSibling:_10.previousSibling);
+};
+var _12=function(_13,_14){
+return (_14=="ltr"?_13.firstChild:_13.lastChild);
+};
+var _15,lookup,fnReturnVal;
+var _16=_e;
+var _17=false;
+while(_15!=_d=="ltr"?_b:_a){
+if(!_15){
+_15=_d=="ltr"?_a:_b;
+}else{
+if(_12(_15,_d)){
+_15=_12(_15,_d);
+}else{
+if(_f(_15,_d)){
+_15=_f(_15,_d);
+}else{
+lookup=_15;
+while(!_f(lookup,_d)&&lookup!=(_d=="ltr"?_b:_a)){
+lookup=lookup.parentNode;
+}
+_15=(_f(lookup,_d)?_f(lookup,_d):lookup);
+}
+}
+}
+_17=(_15==(_d=="ltr"?_b:_a));
+switch(_c){
+case "cullids":
+fnReturnVal=this._fenCullIds(_15,_16);
+break;
+case "find_fill":
+fnReturnVal=this._fenEmptySet(_15,_16,_c,_17);
+break;
+case "find_cursorpoint":
+fnReturnVal=this._fenEmptySet(_15,_16,_c,_17);
+break;
+}
+if(fnReturnVal[0]){
+return fnReturnVal[1];
+}
+if(_17){
+break;
+}
+if(fnReturnVal[1]){
+_16=fnReturnVal[1];
+}
+}
+return false;
+};
+EnterParagraphs.prototype._fenEmptySet=function(_18,_19,_1a,_1b){
+if(!_19&&!_18.firstChild){
+_19=_18;
+}
+if((_18.nodeType==1&&this._elemSolid.test(_18.nodeName))||(_18.nodeType==3&&!this._whiteSpace.test(_18.nodeValue))||(_18.nodeType!=1&&_18.nodeType!=3)){
+switch(_1a){
+case "find_fill":
+return new Array(true,false);
+break;
+case "find_cursorpoint":
+return new Array(true,_18);
+break;
+}
+}
+if(_1b){
+return new Array(true,_19);
+}
+return new Array(false,_19);
+};
+EnterParagraphs.prototype._fenCullIds=function(_1c,_1d,_1e){
+if(_1d.id){
+_1e[_1d.id]?_1d.id="":_1e[_1d.id]=true;
+}
+return new Array(false,_1e);
+};
+EnterParagraphs.prototype.processSide=function(rng,_20){
+var _21=function(_22,_23){
+return (_23=="left"?_22.previousSibling:_22.nextSibling);
+};
+var _24=_20=="left"?rng.startContainer:rng.endContainer;
+var _25=_20=="left"?rng.startOffset:rng.endOffset;
+var _26,start=_24;
+while(start.nodeType==1&&!this._permEmpty.test(start.nodeName)){
+start=(_25?start.lastChild:start.firstChild);
+}
+while(_26=_26?(_21(_26,_20)?_21(_26,_20):_26.parentNode):start){
+if(_21(_26,_20)){
+if(this._pExclusions.test(_21(_26,_20).nodeName)){
+return this.processRng(rng,_20,_26,_21(_26,_20),(_20=="left"?"AfterEnd":"BeforeBegin"),true,false);
+}
+}else{
+if(this._pContainers.test(_26.parentNode.nodeName)){
+return this.processRng(rng,_20,_26,_26.parentNode,(_20=="left"?"AfterBegin":"BeforeEnd"),true,false);
+}else{
+if(this._pExclusions.test(_26.parentNode.nodeName)){
+if(this._pBreak.test(_26.parentNode.nodeName)){
+return this.processRng(rng,_20,_26,_26.parentNode,(_20=="left"?"AfterBegin":"BeforeEnd"),false,(_20=="left"?true:false));
+}else{
+return this.processRng(rng,_20,(_26=_26.parentNode),(_21(_26,_20)?_21(_26,_20):_26.parentNode),(_21(_26,_20)?(_20=="left"?"AfterEnd":"BeforeBegin"):(_20=="left"?"AfterBegin":"BeforeEnd")),false,false);
+}
+}
+}
+}
+}
+};
+EnterParagraphs.prototype.processRng=function(rng,_28,_29,_2a,_2b,_2c,_2d){
+var _2e=_28=="left"?rng.startContainer:rng.endContainer;
+var _2f=_28=="left"?rng.startOffset:rng.endOffset;
+var _30=this.editor;
+var _31=_30._doc.createRange();
+_31.selectNode(_29);
+if(_28=="left"){
+_31.setEnd(_2e,_2f);
+rng.setStart(_31.startContainer,_31.startOffset);
+}else{
+if(_28=="right"){
+_31.setStart(_2e,_2f);
+rng.setEnd(_31.endContainer,_31.endOffset);
+}
+}
+var cnt=_31.cloneContents();
+this.forEachNodeUnder(cnt,"cullids","ltr",this.takenIds,false,false);
+var _33,pifyOffset,fill;
+_33=_28=="left"?(_31.endContainer.nodeType==3?true:false):(_31.startContainer.nodeType==3?false:true);
+pifyOffset=_33?_31.startOffset:_31.endOffset;
+_33=_33?_31.startContainer:_31.endContainer;
+if(this._pifyParent.test(_33.nodeName)&&_33.parentNode.childNodes.item(0)==_33){
+while(!this._pifySibling.test(_33.nodeName)){
+_33=_33.parentNode;
+}
+}
+if(cnt.nodeType==11&&!cnt.firstChild){
+if(_33.nodeName!="BODY"||(_33.nodeName=="BODY"&&pifyOffset!=0)){
+cnt.appendChild(_30._doc.createElement(_33.nodeName));
+}
+}
+fill=this.forEachNodeUnder(cnt,"find_fill","ltr",false);
+if(fill&&this._pifySibling.test(_33.nodeName)&&((pifyOffset==0)||(pifyOffset==1&&this._pifyForced.test(_33.nodeName)))){
+_29=_30._doc.createElement("p");
+_29.innerHTML=" ";
+if((_28=="left")&&_33.previousSibling){
+return new Array(_33.previousSibling,"AfterEnd",_29);
+}else{
+if((_28=="right")&&_33.nextSibling){
+return new Array(_33.nextSibling,"BeforeBegin",_29);
+}else{
+return new Array(_33.parentNode,(_28=="left"?"AfterBegin":"BeforeEnd"),_29);
+}
+}
+}
+if(fill){
+if(fill.nodeType==3){
+fill=_30._doc.createDocumentFragment();
+}
+if((fill.nodeType==1&&!this._elemSolid.test())||fill.nodeType==11){
+var _34=_30._doc.createElement("p");
+_34.innerHTML=" ";
+fill.appendChild(_34);
+}else{
+var _34=_30._doc.createElement("p");
+_34.innerHTML=" ";
+fill.parentNode.insertBefore(parentNode,fill);
+}
+}
+if(fill){
+_29=fill;
+}else{
+_29=(_2c||(cnt.nodeType==11&&!cnt.firstChild))?_30._doc.createElement("p"):_30._doc.createDocumentFragment();
+_29.appendChild(cnt);
+}
+if(_2d){
+_29.appendChild(_30._doc.createElement("br"));
+}
+return new Array(_2a,_2b,_29);
+};
+EnterParagraphs.prototype.isNormalListItem=function(rng){
+var _36,listNode;
+_36=rng.startContainer;
+if((typeof _36.nodeName!="undefined")&&(_36.nodeName.toLowerCase()=="li")){
+listNode=_36;
+}else{
+if((typeof _36.parentNode!="undefined")&&(typeof _36.parentNode.nodeName!="undefined")&&(_36.parentNode.nodeName.toLowerCase()=="li")){
+listNode=_36.parentNode;
+}else{
+return false;
+}
+}
+if(!listNode.previousSibling){
+if(rng.startOffset==0){
+return false;
+}
+}
+return true;
+};
+EnterParagraphs.prototype.__onKeyPress=function(ev){
+if(ev.keyCode==13&&!ev.shiftKey&&this.editor._iframe.contentWindow.getSelection){
+return this.handleEnter(ev);
+}
+};
+EnterParagraphs.prototype.handleEnter=function(ev){
+var _39;
+var sel=this.editor.getSelection();
+var rng=this.editor.createRange(sel);
+if(this.isNormalListItem(rng)){
+return true;
+}
+this.takenIds=new Object();
+var _3c=this.processSide(rng,"left");
+var _3d=this.processSide(rng,"right");
+_39=_3d[2];
+sel.removeAllRanges();
+rng.deleteContents();
+var _3e=this.forEachNodeUnder(_39,"find_cursorpoint","ltr",false,true);
+if(!_3e){
+alert("INTERNAL ERROR - could not find place to put cursor after ENTER");
+}
+if(_3c){
+this.insertAdjacentElement(_3c[0],_3c[1],_3c[2]);
+}
+if(_3d&&_3d.nodeType!=1){
+this.insertAdjacentElement(_3d[0],_3d[1],_3d[2]);
+}
+if((_3e)&&(this._permEmpty.test(_3e.nodeName))){
+var _3f=0;
+while(_3e.parentNode.childNodes.item(_3f)!=_3e){
+_3f++;
+}
+sel.collapse(_3e.parentNode,_3f);
+}else{
+try{
+sel.collapse(_3e,0);
+if(_3e.nodeType==3){
+_3e=_3e.parentNode;
+}
+this.editor.scrollToElement(_3e);
+}
+catch(e){
+}
+}
+this.editor.updateToolbar();
+Xinha._stopEvent(ev);
+return true;
+};
+
diff --git a/ccm-cms/web/assets/xinha/modules/GetHtml/DOMwalk.js b/ccm-cms/web/assets/xinha/modules/GetHtml/DOMwalk.js
new file mode 100644
index 000000000..e2c5b7911
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/modules/GetHtml/DOMwalk.js
@@ -0,0 +1,187 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/modules/GetHtml/DOMwalk.js */
+function GetHtmlImplementation(_1){
+this.editor=_1;
+}
+GetHtmlImplementation._pluginInfo={name:"GetHtmlImplementation DOMwalk",origin:"Xinha Core",version:"$LastChangedRevision:961 $".replace(/^[^:]*:\s*(.*)\s*\$$/,"$1"),developer:"The Xinha Core Developer Team",developer_url:"$HeadURL:http://svn.xinha.webfactional.com/trunk/modules/GetHtml/DOMwalk.js $".replace(/^[^:]*:\s*(.*)\s*\$$/,"$1"),sponsor:"",sponsor_url:"",license:"htmlArea"};
+Xinha.getHTML=function(_2,_3,_4){
+return Xinha.getHTMLWrapper(_2,_3,_4);
+};
+Xinha.emptyAttributes=" checked disabled ismap readonly nowrap compact declare selected defer multiple noresize noshade ";
+Xinha.getHTMLWrapper=function(_5,_6,_7,_8){
+var _9="";
+if(!_8){
+_8="";
+}
+switch(_5.nodeType){
+case 10:
+case 6:
+case 12:
+break;
+case 2:
+break;
+case 4:
+_9+=(Xinha.is_ie?("\n"+_8):"")+"";
+break;
+case 5:
+_9+="&"+_5.nodeValue+";";
+break;
+case 7:
+_9+=(Xinha.is_ie?("\n"+_8):"")+"<"+"?"+_5.target+" "+_5.data+" ?>";
+break;
+case 1:
+case 11:
+case 9:
+var _a;
+var i;
+var _c=(_5.nodeType==1)?_5.tagName.toLowerCase():"";
+if((_c=="script"||_c=="noscript")&&_7.config.stripScripts){
+break;
+}
+if(_6){
+_6=!(_7.config.htmlRemoveTags&&_7.config.htmlRemoveTags.test(_c));
+}
+if(Xinha.is_ie&&_c=="head"){
+if(_6){
+_9+=(Xinha.is_ie?("\n"+_8):"")+"";
+}
+var _d=RegExp.multiline;
+RegExp.multiline=true;
+var _e=_5.innerHTML.replace(Xinha.RE_tagName,function(_f,p1,p2){
+return p1+p2.toLowerCase();
+}).replace(/\s*=\s*(([^'"][^>\s]*)([>\s])|"([^"]+)"|'([^']+)')/g,"=\"$2$4$5\"$3").replace(/<(link|meta)((\s*\S*="[^"]*")*)>/g,"<$1$2 />");
+RegExp.multiline=_d;
+_9+=_e+"\n";
+if(_6){
+_9+=(Xinha.is_ie?("\n"+_8):"")+"";
+}
+break;
+}else{
+if(_6){
+_a=(!(_5.hasChildNodes()||Xinha.needsClosingTag(_5)));
+_9+=((Xinha.isBlockElement(_5))?("\n"+_8):"")+"<"+_5.tagName.toLowerCase();
+var _12=_5.attributes;
+for(i=0;i<_12.length;++i){
+var a=_12.item(i);
+if(typeof a.nodeValue=="object"){
+continue;
+}
+if(_5.tagName.toLowerCase()=="input"&&_5.type.toLowerCase()=="checkbox"&&a.nodeName.toLowerCase()=="value"&&a.nodeValue.toLowerCase()=="on"){
+continue;
+}
+if(!a.specified&&!(_5.tagName.toLowerCase().match(/input|option/)&&a.nodeName=="value")&&!(_5.tagName.toLowerCase().match(/area/)&&a.nodeName.match(/shape|coords/i))){
+continue;
+}
+var _14=a.nodeName.toLowerCase();
+if(/_moz_editor_bogus_node/.test(_14)||(_14=="class"&&a.nodeValue=="webkit-block-placeholder")){
+_9="";
+break;
+}
+if(/(_moz)|(contenteditable)|(_msh)/.test(_14)){
+continue;
+}
+var _15;
+if(Xinha.emptyAttributes.indexOf(" "+_14+" ")!=-1){
+_15=_14;
+}else{
+if(_14!="style"){
+if(typeof _5[a.nodeName]!="undefined"&&_14!="href"&&_14!="src"&&!(/^on/.test(_14))){
+_15=_5[a.nodeName];
+}else{
+_15=a.nodeValue;
+if(_14=="class"){
+_15=_15.replace(/Apple-style-span/,"");
+if(!_15){
+continue;
+}
+}
+if(Xinha.is_ie&&(_14=="href"||_14=="src")){
+_15=_7.stripBaseURL(_15);
+}
+if(_7.config.only7BitPrintablesInURLs&&(_14=="href"||_14=="src")){
+_15=_15.replace(/([^!-~]+)/g,function(_16){
+return escape(_16);
+});
+}
+}
+}else{
+if(!Xinha.is_ie){
+_15=_5.style.cssText.replace(/rgb\(.*?\)/ig,function(rgb){
+return Xinha._colorToRgb(rgb);
+});
+}
+}
+}
+if(/^(_moz)?$/.test(_15)){
+continue;
+}
+_9+=" "+_14+"=\""+Xinha.htmlEncode(_15)+"\"";
+}
+if(Xinha.is_ie&&_5.style.cssText){
+_9+=" style=\""+_5.style.cssText.toLowerCase()+"\"";
+}
+if(Xinha.is_ie&&_5.tagName.toLowerCase()=="option"&&_5.selected){
+_9+=" selected=\"selected\"";
+}
+if(_9!==""){
+if(_a&&_c=="p"){
+_9+=">
";
+}else{
+if(_a){
+_9+=" />";
+}else{
+_9+=">";
+}
+}
+}
+}
+}
+var _18=false;
+if(_c=="script"||_c=="noscript"){
+if(!_7.config.stripScripts){
+if(Xinha.is_ie){
+var _19="\n"+_5.innerHTML.replace(/^[\n\r]*/,"").replace(/\s+$/,"")+"\n"+_8;
+}else{
+var _19=(_5.hasChildNodes())?_5.firstChild.nodeValue:"";
+}
+_9+=_19+""+_c+">"+((Xinha.is_ie)?"\n":"");
+}
+}else{
+if(_c=="pre"){
+_9+=((Xinha.is_ie)?"\n":"")+_5.innerHTML.replace(/ /g,"\n")+""+_c+">";
+}else{
+for(i=_5.firstChild;i;i=i.nextSibling){
+if(!_18&&i.nodeType==1&&Xinha.isBlockElement(i)){
+_18=true;
+}
+_9+=Xinha.getHTMLWrapper(i,true,_7,_8+" ");
+}
+if(_6&&!_a){
+_9+=(((Xinha.isBlockElement(_5)&&_18)||_c=="head"||_c=="html")?("\n"+_8):"")+""+_5.tagName.toLowerCase()+">";
+}
+}
+}
+break;
+case 3:
+if(/^script|noscript|style$/i.test(_5.parentNode.tagName)){
+_9=_5.data;
+}else{
+if(_5.data.trim()==""){
+if(_5.data){
+_9=" ";
+}else{
+_9="";
+}
+}else{
+_9=Xinha.htmlEncode(_5.data);
+}
+}
+break;
+case 8:
+_9="";
+break;
+}
+return _9;
+};
+
diff --git a/ccm-cms/web/assets/xinha/modules/GetHtml/TransformInnerHTML.js b/ccm-cms/web/assets/xinha/modules/GetHtml/TransformInnerHTML.js
new file mode 100644
index 000000000..eb6ad89c7
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/modules/GetHtml/TransformInnerHTML.js
@@ -0,0 +1,151 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/modules/GetHtml/TransformInnerHTML.js */
+function GetHtmlImplementation(_1){
+this.editor=_1;
+}
+GetHtmlImplementation._pluginInfo={name:"GetHtmlImplementation TransformInnerHTML",version:"1.0",developer:"Nelson Bright",developer_url:"http://www.brightworkweb.com/",sponsor:"",sponsor_url:"",license:"htmlArea"};
+Xinha.RegExpCache=[/<\s*\/?([^\s\/>]+)[\s*\/>]/gi,/(\s+)_moz[^=>]*=[^\s>]*/gi,/\s*=\s*(([^'"][^>\s]*)([>\s])|"([^"]+)"|'([^']+)')/g,/\/>/g,/<(br|hr|img|input|link|meta|param|embed|area)((\s*\S*="[^"]*")*)>/g,/(<\w+\s+(\w*="[^"]*"\s+)*)(checked|compact|declare|defer|disabled|ismap|multiple|no(href|resize|shade|wrap)|readonly|selected)([\s>])/gi,/(="[^']*)'([^'"]*")/,/&(?=(?!(#[0-9]{2,5};|[a-zA-Z0-9]{2,6};|#x[0-9a-fA-F]{2,4};))[^<]*>)/g,/<\s+/g,/\s+(\/)?>/g,/\s{2,}/g,/\s+([^=\s]+)((="[^"]+")|([\s>]))/g,/\s+contenteditable(=[^>\s\/]*)?/gi,/((href|src)=")([^\s]*)"/g,/<\/?(div|p|h[1-6]|table|tr|td|th|ul|ol|li|blockquote|object|br|hr|img|embed|param|pre|script|html|head|body|meta|link|title|area|input|form|textarea|select|option)[^>]*>/g,/<\/(div|p|h[1-6]|table|tr|ul|ol|blockquote|object|html|head|body|script|form|select)( [^>]*)?>/g,/<(div|p|h[1-6]|table|tr|ul|ol|blockquote|object|html|head|body|script|form|select)( [^>]*)?>/g,/<(td|th|li|option|br|hr|embed|param|pre|meta|link|title|area|input|textarea)[^>]*>/g,/(^|<\/(pre|script)>)(\s|[^\s])*?(<(pre|script)[^>]*>|$)/g,/(]*>)([\s\S])*?(<\/pre>)/g,/(^|)([\s\S]*?)(?=|$)/g,/\S*=""/g,/|<\?[\s\S]*?\?>|<\/?\w[^>]*>/g,/(^|<\/script>)[\s\S]*?(");
+return s;
+};
+Xinha.getHTML=function(_15,_16,_17){
+var _18="";
+var c=Xinha.RegExpCache;
+if(_15.nodeType==11){
+var div=document.createElement("div");
+var _1b=_15.insertBefore(div,_15.firstChild);
+for(j=_1b.nextSibling;j;j=j.nextSibling){
+_1b.appendChild(j.cloneNode(true));
+}
+_18+=_1b.innerHTML.replace(c[23],function(_1c){
+_1c=_1c.replace(c[22],function(tag){
+if(/^<[!\?]/.test(tag)){
+return tag;
+}else{
+return _17.cleanHTML(tag);
+}
+});
+return _1c;
+});
+}else{
+var _1e=(_15.nodeType==1)?_15.tagName.toLowerCase():"";
+if(_16){
+_18+="<"+_1e;
+var _1f=_15.attributes;
+for(i=0;i<_1f.length;++i){
+var a=_1f.item(i);
+if(!a.specified){
+continue;
+}
+var _21=a.nodeName.toLowerCase();
+var _22=a.nodeValue;
+_18+=" "+_21+"=\""+_22+"\"";
+}
+_18+=">";
+}
+if(_1e=="html"){
+innerhtml=_17._doc.documentElement.innerHTML;
+}else{
+innerhtml=_15.innerHTML;
+}
+_18+=innerhtml.replace(c[23],function(_23){
+_23=_23.replace(c[22],function(tag){
+if(/^<[!\?]/.test(tag)){
+return tag;
+}else{
+if(!(_17.config.htmlRemoveTags&&_17.config.htmlRemoveTags.test(tag.replace(/<([^\s>\/]+)/,"$1")))){
+return _17.cleanHTML(tag);
+}else{
+return "";
+}
+}
+});
+return _23;
+});
+if(Xinha.is_ie){
+_18=_18.replace(/ ]*)?>/g," ").replace(/(<(ul|ol)[^>]*>)[\s\n]*<\/li>/g,"$1").replace(/<\/li>([\s\n]*<\/li>)+/g," ");
+}
+if(Xinha.is_gecko){
+_18=_18.replace(/ \n$/,"");
+}
+if(_16){
+_18+=""+_1e+">";
+}
+_18=Xinha.indent(_18);
+}
+return _18;
+};
+
diff --git a/ccm-cms/web/assets/xinha/modules/GetHtml/lang/pt_br.js b/ccm-cms/web/assets/xinha/modules/GetHtml/lang/pt_br.js
new file mode 100644
index 000000000..456832917
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/modules/GetHtml/lang/pt_br.js
@@ -0,0 +1,18 @@
+// I18N constants
+//
+// LANG: "pt_br", ENCODING: UTF-8
+// Portuguese Brazilian Translation
+//
+// Author: Marcio Barbosa,
+// MSN: tomarshall@msn.com - ICQ: 69419933
+// Site: http://www.mpg.com.br
+//
+// Last revision: 06 september 2007
+// Please don´t remove this information
+// If you modify any source, please insert a comment with your name and e-mail
+//
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt).
+{
+ "Your Document is not well formed. Check JavaScript console for details.": "Seu documento não está formatado corretamente. Verifique os detalhes no console do Javascript."
+}
diff --git a/ccm-cms/web/assets/xinha/modules/InsertImage/insert_image.html b/ccm-cms/web/assets/xinha/modules/InsertImage/insert_image.html
new file mode 100755
index 000000000..0247e4b94
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/modules/InsertImage/insert_image.html
@@ -0,0 +1,173 @@
+
+
+
+ Insert Image
+
+
+
+
+
+
+
+
+
+
+Insert Image
+
+
+
+
+
+
+Layout
+
+
+
+Alignment:
+
+ Not set
+ Left
+ Right
+ Texttop
+ Absmiddle
+ Baseline
+ Absbottom
+ Bottom
+ Middle
+ Top
+
+
+
+
+Border thickness:
+
+
+
+
+
+
+
+Spacing
+
+
+
+Horizontal:
+
+
+
+
+Vertical:
+
+
+
+
+
+
+
+Image Preview:
+
+
+
+OK
+Cancel
+
+
+
+
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/modules/InsertImage/insert_image.js b/ccm-cms/web/assets/xinha/modules/InsertImage/insert_image.js
new file mode 100644
index 000000000..4bc7d843b
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/modules/InsertImage/insert_image.js
@@ -0,0 +1,119 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/modules/InsertImage/insert_image.js */
+InsertImage._pluginInfo={name:"InsertImage",origin:"Xinha Core",version:"$LastChangedRevision:992 $".replace(/^[^:]*:\s*(.*)\s*\$$/,"$1"),developer:"The Xinha Core Developer Team",developer_url:"$HeadURL:http://svn.xinha.webfactional.com/trunk/modules/InsertImage/insert_image.js $".replace(/^[^:]*:\s*(.*)\s*\$$/,"$1"),sponsor:"",sponsor_url:"",license:"htmlArea"};
+function InsertImage(_1){
+}
+Xinha.prototype._insertImage=function(_2){
+var _3=this;
+var _4;
+if(typeof _2=="undefined"){
+_2=this.getParentElement();
+if(_2&&_2.tagName.toLowerCase()!="img"){
+_2=null;
+}
+}
+var _5;
+if(typeof _3.config.baseHref!="undefined"&&_3.config.baseHref!==null){
+_5=_3.config.baseHref;
+}else{
+var _6=window.location.toString().split("/");
+_6.pop();
+_5=_6.join("/");
+}
+if(_2){
+function getSpecifiedAttribute(_7,_8){
+var a=_7.attributes;
+for(var i=0;i
+
+
+ Insert Table
+
+
+
+
+
+
+
+
+
+
+Insert Table
+
+
+
+
+
+
+
+Layout
+
+
+
+Alignment:
+
+ Not set
+ Left
+ Right
+ Texttop
+ Absmiddle
+ Baseline
+ Absbottom
+ Bottom
+ Middle
+ Top
+
+
+
+
+Border thickness:
+
+
+
+
+
+
+
+Spacing
+
+
+
+Cell spacing:
+
+
+
+
+Cell padding:
+
+
+
+
+
+
+
+OK
+Cancel
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/modules/InsertTable/insert_table.js b/ccm-cms/web/assets/xinha/modules/InsertTable/insert_table.js
new file mode 100644
index 000000000..ddb337853
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/modules/InsertTable/insert_table.js
@@ -0,0 +1,66 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/modules/InsertTable/insert_table.js */
+InsertTable._pluginInfo={name:"InsertTable",origin:"Xinha Core",version:"$LastChangedRevision: 688 $".replace(/^[^:]*:\s*(.*)\s*\$$/,"$1"),developer:"The Xinha Core Developer Team",developer_url:"$HeadURL: http://svn.xinha.python-hosting.com/trunk/modules/InsertTable/insert_table.js $".replace(/^[^:]*:\s*(.*)\s*\$$/,"$1"),sponsor:"",sponsor_url:"",license:"htmlArea"};
+function InsertTable(_1){
+}
+Xinha.prototype._insertTable=function(){
+var _2=this.getSelection();
+var _3=this.createRange(_2);
+var _4=this;
+Dialog(_4.config.URIs.insert_table,function(_5){
+if(!_5){
+return false;
+}
+var _6=_4._doc;
+var _7=_6.createElement("table");
+for(var _8 in _5){
+var _9=_5[_8];
+if(!_9){
+continue;
+}
+switch(_8){
+case "f_width":
+_7.style.width=_9+_5.f_unit;
+break;
+case "f_align":
+_7.align=_9;
+break;
+case "f_border":
+_7.border=parseInt(_9,10);
+break;
+case "f_spacing":
+_7.cellSpacing=parseInt(_9,10);
+break;
+case "f_padding":
+_7.cellPadding=parseInt(_9,10);
+break;
+}
+}
+var _a=0;
+if(_5.f_fixed){
+_a=Math.floor(100/parseInt(_5.f_cols,10));
+}
+var _b=_6.createElement("tbody");
+_7.appendChild(_b);
+for(var i=0;i<_5.f_rows;++i){
+var tr=_6.createElement("tr");
+_b.appendChild(tr);
+for(var j=0;j<_5.f_cols;++j){
+var td=_6.createElement("td");
+if(_a){
+td.style.width=_a+"%";
+}
+tr.appendChild(td);
+td.appendChild(_6.createTextNode("\xa0"));
+}
+}
+if(Xinha.is_ie){
+_3.pasteHTML(_7.outerHTML);
+}else{
+_4.insertNodeAtSelection(_7);
+}
+return true;
+},null);
+};
+
diff --git a/ccm-cms/web/assets/xinha/modules/InternetExplorer/InternetExplorer.js b/ccm-cms/web/assets/xinha/modules/InternetExplorer/InternetExplorer.js
new file mode 100644
index 000000000..5bfcde736
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/modules/InternetExplorer/InternetExplorer.js
@@ -0,0 +1,337 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/modules/InternetExplorer/InternetExplorer.js */
+InternetExplorer._pluginInfo={name:"Internet Explorer",origin:"Xinha Core",version:"$LastChangedRevision:980 $".replace(/^[^:]*:\s*(.*)\s*\$$/,"$1"),developer:"The Xinha Core Developer Team",developer_url:"$HeadURL:http://svn.xinha.webfactional.com/trunk/modules/InternetExplorer/InternetExplorer.js $".replace(/^[^:]*:\s*(.*)\s*\$$/,"$1"),sponsor:"",sponsor_url:"",license:"htmlArea"};
+function InternetExplorer(_1){
+this.editor=_1;
+_1.InternetExplorer=this;
+}
+InternetExplorer.prototype.onKeyPress=function(ev){
+if(this.editor.isShortCut(ev)){
+switch(this.editor.getKey(ev).toLowerCase()){
+case "n":
+this.editor.execCommand("formatblock",false,"");
+Xinha._stopEvent(ev);
+return true;
+break;
+case "1":
+case "2":
+case "3":
+case "4":
+case "5":
+case "6":
+this.editor.execCommand("formatblock",false,"");
+Xinha._stopEvent(ev);
+return true;
+break;
+}
+}
+switch(ev.keyCode){
+case 8:
+case 46:
+if(this.handleBackspace()){
+Xinha._stopEvent(ev);
+return true;
+}
+break;
+}
+return false;
+};
+InternetExplorer.prototype.handleBackspace=function(){
+var _3=this.editor;
+var _4=_3.getSelection();
+if(_4.type=="Control"){
+var _5=_3.activeElement(_4);
+Xinha.removeFromParent(_5);
+return true;
+}
+var _6=_3.createRange(_4);
+var r2=_6.duplicate();
+r2.moveStart("character",-1);
+var a=r2.parentElement();
+if(a!=_6.parentElement()&&(/^a$/i.test(a.tagName))){
+r2.collapse(true);
+r2.moveEnd("character",1);
+r2.pasteHTML("");
+r2.select();
+return true;
+}
+};
+InternetExplorer.prototype.inwardHtml=function(_9){
+_9=_9.replace(/<(\/?)del(\s|>|\/)/ig,"<$1strike$2");
+_9=_9.replace(/()"),"$1$3$2");
+ta.value=ta.value.replace(new RegExp("^([^"+cc+"]*)("+cc+")([^"+cc+"]*]*>)(.*?)"),"$1$3$2$4");
+}else{
+var sel=this.getSelection();
+var r=sel.createRange();
+if(sel.type=="Control"){
+var _39=r.item(0);
+_39.outerHTML+=cc;
+}else{
+r.collapse();
+r.text=cc;
+}
+}
+};
+Xinha.prototype.findCC=function(_3a){
+var _3b=(_3a=="textarea")?this._textArea:this._doc.body;
+range=_3b.createTextRange();
+if(range.findText(escape(this.cc))){
+range.select();
+range.text="";
+}
+if(range.findText(this.cc)){
+range.select();
+range.text="";
+}
+if(_3a=="textarea"){
+this._textArea.focus();
+}
+};
+Xinha.getDoctype=function(doc){
+return (doc.compatMode=="CSS1Compat"&&Xinha.ie_version<8)?"":"";
+};
+
diff --git a/ccm-cms/web/assets/xinha/modules/Opera/Opera.js b/ccm-cms/web/assets/xinha/modules/Opera/Opera.js
new file mode 100644
index 000000000..8eb5549c1
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/modules/Opera/Opera.js
@@ -0,0 +1,464 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/modules/Opera/Opera.js */
+Opera._pluginInfo={name:"Opera",origin:"Xinha Core",version:"$LastChangedRevision:970 $".replace(/^[^:]*:\s*(.*)\s*\$$/,"$1"),developer:"The Xinha Core Developer Team",developer_url:"$HeadURL:http://svn.xinha.webfactional.com/trunk/modules/Opera/Opera.js $".replace(/^[^:]*:\s*(.*)\s*\$$/,"$1"),sponsor:"Gogo Internet Services Limited",sponsor_url:"http://www.gogo.co.nz/",license:"htmlArea"};
+function Opera(_1){
+this.editor=_1;
+_1.Opera=this;
+}
+Opera.prototype.onKeyPress=function(ev){
+var _3=this.editor;
+var s=_3.getSelection();
+if(_3.isShortCut(ev)){
+switch(_3.getKey(ev).toLowerCase()){
+case "z":
+if(_3._unLink&&_3._unlinkOnUndo){
+Xinha._stopEvent(ev);
+_3._unLink();
+_3.updateToolbar();
+return true;
+}
+break;
+case "a":
+sel=_3.getSelection();
+sel.removeAllRanges();
+range=_3.createRange();
+range.selectNodeContents(_3._doc.body);
+sel.addRange(range);
+Xinha._stopEvent(ev);
+return true;
+break;
+case "v":
+if(!_3.config.htmlareaPaste){
+return true;
+}
+break;
+}
+}
+switch(_3.getKey(ev)){
+case " ":
+var _5=function(_6,_7){
+var _8=_6.nextSibling;
+if(typeof _7=="string"){
+_7=_3._doc.createElement(_7);
+}
+var a=_6.parentNode.insertBefore(_7,_8);
+Xinha.removeFromParent(_6);
+a.appendChild(_6);
+_8.data=" "+_8.data;
+s.collapse(_8,1);
+_3._unLink=function(){
+var t=a.firstChild;
+a.removeChild(t);
+a.parentNode.insertBefore(t,a);
+Xinha.removeFromParent(a);
+_3._unLink=null;
+_3._unlinkOnUndo=false;
+};
+_3._unlinkOnUndo=true;
+return a;
+};
+if(_3.config.convertUrlsToLinks&&s&&s.isCollapsed&&s.anchorNode.nodeType==3&&s.anchorNode.data.length>3&&s.anchorNode.data.indexOf(".")>=0){
+var _b=s.anchorNode.data.substring(0,s.anchorOffset).search(/\S{4,}$/);
+if(_b==-1){
+break;
+}
+if(_3._getFirstAncestor(s,"a")){
+break;
+}
+var _c=s.anchorNode.data.substring(0,s.anchorOffset).replace(/^.*?(\S*)$/,"$1");
+var _d=_c.match(Xinha.RE_email);
+if(_d){
+var _e=s.anchorNode;
+var _f=_e.splitText(s.anchorOffset);
+var _10=_e.splitText(_b);
+_5(_10,"a").href="mailto:"+_d[0];
+break;
+}
+RE_date=/([0-9]+\.)+/;
+RE_ip=/(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/;
+var _11=_c.match(Xinha.RE_url);
+if(_11){
+if(RE_date.test(_c)){
+break;
+}
+var _12=s.anchorNode;
+var _13=_12.splitText(s.anchorOffset);
+var _14=_12.splitText(_b);
+_5(_14,"a").href=(_11[1]?_11[1]:"http://")+_11[2];
+break;
+}
+}
+break;
+}
+switch(ev.keyCode){
+case 27:
+if(_3._unLink){
+_3._unLink();
+Xinha._stopEvent(ev);
+}
+break;
+break;
+case 8:
+case 46:
+if(!ev.shiftKey&&this.handleBackspace()){
+Xinha._stopEvent(ev);
+}
+default:
+_3._unlinkOnUndo=false;
+if(s.anchorNode&&s.anchorNode.nodeType==3){
+var a=_3._getFirstAncestor(s,"a");
+if(!a){
+break;
+}
+if(!a._updateAnchTimeout){
+if(s.anchorNode.data.match(Xinha.RE_email)&&a.href.match("mailto:"+s.anchorNode.data.trim())){
+var _16=s.anchorNode;
+var _17=function(){
+a.href="mailto:"+_16.data.trim();
+a._updateAnchTimeout=setTimeout(_17,250);
+};
+a._updateAnchTimeout=setTimeout(_17,1000);
+break;
+}
+var m=s.anchorNode.data.match(Xinha.RE_url);
+if(m&&a.href.match(new RegExp("http(s)?://"+Xinha.escapeStringForRegExp(s.anchorNode.data.trim())))){
+var _19=s.anchorNode;
+var _1a=function(){
+m=_19.data.match(Xinha.RE_url);
+if(m){
+a.href=(m[1]?m[1]:"http://")+m[2];
+}
+a._updateAnchTimeout=setTimeout(_1a,250);
+};
+a._updateAnchTimeout=setTimeout(_1a,1000);
+}
+}
+}
+break;
+}
+return false;
+};
+Opera.prototype.handleBackspace=function(){
+var _1b=this.editor;
+setTimeout(function(){
+var sel=_1b.getSelection();
+var _1d=_1b.createRange(sel);
+var SC=_1d.startContainer;
+var SO=_1d.startOffset;
+var EC=_1d.endContainer;
+var EO=_1d.endOffset;
+var _22=SC.nextSibling;
+if(SC.nodeType==3){
+SC=SC.parentNode;
+}
+if(!(/\S/.test(SC.tagName))){
+var p=document.createElement("p");
+while(SC.firstChild){
+p.appendChild(SC.firstChild);
+}
+SC.parentNode.insertBefore(p,SC);
+Xinha.removeFromParent(SC);
+var r=_1d.cloneRange();
+r.setStartBefore(_22);
+r.setEndAfter(_22);
+r.extractContents();
+sel.removeAllRanges();
+sel.addRange(r);
+}
+},10);
+};
+Opera.prototype.inwardHtml=function(_25){
+_25=_25.replace(/<(\/?)del(\s|>|\/)/ig,"<$1strike$2");
+return _25;
+};
+Opera.prototype.outwardHtml=function(_26){
+return _26;
+};
+Opera.prototype.onExecCommand=function(_27,UI,_29){
+switch(_27){
+case "removeformat":
+var _2a=this.editor;
+var sel=_2a.getSelection();
+var _2c=_2a.saveSelection(sel);
+var _2d=_2a.createRange(sel);
+var els=_2a._doc.body.getElementsByTagName("*");
+var _2f=(_2d.startContainer.nodeType==1)?_2d.startContainer:_2d.startContainer.parentNode;
+var i,el;
+if(sel.isCollapsed){
+_2d.selectNodeContents(_2a._doc.body);
+}
+for(i=0;isel.anchorOffset&&sel.anchorNode.childNodes[sel.anchorOffset].nodeType==1){
+return sel.anchorNode.childNodes[sel.anchorOffset];
+}else{
+if(sel.anchorNode.nodeType==1){
+return sel.anchorNode;
+}else{
+return null;
+}
+}
+}
+return null;
+};
+Xinha.prototype.selectionEmpty=function(sel){
+if(!sel){
+return true;
+}
+if(typeof sel.isCollapsed!="undefined"){
+return sel.isCollapsed;
+}
+return true;
+};
+Xinha.prototype.saveSelection=function(){
+return this.createRange(this.getSelection()).cloneRange();
+};
+Xinha.prototype.restoreSelection=function(_3d){
+var sel=this.getSelection();
+sel.removeAllRanges();
+sel.addRange(_3d);
+};
+Xinha.prototype.selectNodeContents=function(_3f,pos){
+this.focusEditor();
+this.forceRedraw();
+var _41;
+var _42=typeof pos=="undefined"?true:false;
+var sel=this.getSelection();
+_41=this._doc.createRange();
+if(_42&&_3f.tagName&&_3f.tagName.toLowerCase().match(/table|img|input|textarea|select/)){
+_41.selectNode(_3f);
+}else{
+_41.selectNodeContents(_3f);
+}
+sel.removeAllRanges();
+sel.addRange(_41);
+};
+Xinha.prototype.insertHTML=function(_44){
+var sel=this.getSelection();
+var _46=this.createRange(sel);
+this.focusEditor();
+var _47=this._doc.createDocumentFragment();
+var div=this._doc.createElement("div");
+div.innerHTML=_44;
+while(div.firstChild){
+_47.appendChild(div.firstChild);
+}
+var _49=this.insertNodeAtSelection(_47);
+};
+Xinha.prototype.getSelectedHTML=function(){
+var sel=this.getSelection();
+if(sel.isCollapsed){
+return "";
+}
+var _4b=this.createRange(sel);
+return Xinha.getHTML(_4b.cloneContents(),false,this);
+};
+Xinha.prototype.getSelection=function(){
+var sel=this._iframe.contentWindow.getSelection();
+if(sel&&sel.focusNode&&sel.focusNode.tagName&&sel.focusNode.tagName=="HTML"){
+var bod=this._doc.getElementsByTagName("body")[0];
+var rng=this.createRange();
+rng.selectNodeContents(bod);
+sel.removeAllRanges();
+sel.addRange(rng);
+sel.collapseToEnd();
+}
+return sel;
+};
+Xinha.prototype.createRange=function(sel){
+this.activateEditor();
+if(typeof sel!="undefined"){
+try{
+return sel.getRangeAt(0);
+}
+catch(ex){
+return this._doc.createRange();
+}
+}else{
+return this._doc.createRange();
+}
+};
+Xinha.prototype.isKeyEvent=function(_50){
+return _50.type=="keypress";
+};
+Xinha.prototype.getKey=function(_51){
+return String.fromCharCode(_51.charCode);
+};
+Xinha.getOuterHTML=function(_52){
+return (new XMLSerializer()).serializeToString(_52);
+};
+Xinha.prototype.setCC=function(_53){
+var cc=String.fromCharCode(8286);
+try{
+if(_53=="textarea"){
+var ta=this._textArea;
+var _56=ta.selectionStart;
+var _57=ta.value.substring(0,_56);
+var _58=ta.value.substring(_56,ta.value.length);
+if(_58.match(/^[^<]*>/)){
+var _59=_58.indexOf(">")+1;
+ta.value=_57+_58.substring(0,_59)+cc+_58.substring(_59,_58.length);
+}else{
+ta.value=_57+cc+_58;
+}
+ta.value=ta.value.replace(new RegExp("(&[^"+cc+"]*?)("+cc+")([^"+cc+"]*?;)"),"$1$3$2");
+ta.value=ta.value.replace(new RegExp("()"),"$1$3$2");
+ta.value=ta.value.replace(new RegExp("^([^"+cc+"]*)("+cc+")([^"+cc+"]*]*>)(.*?)"),"$1$3$2$4");
+ta.value=ta.value.replace(cc,"MARK ");
+}else{
+var sel=this.getSelection();
+var _5b=this._doc.createElement("span");
+_5b.id="XinhaOperaCaretMarker";
+sel.getRangeAt(0).insertNode(_5b);
+}
+}
+catch(e){
+}
+};
+Xinha.prototype.findCC=function(_5c){
+if(_5c=="textarea"){
+var ta=this._textArea;
+var pos=ta.value.search(/(((\s|(MARK))*<\/span>)?)/);
+if(pos==-1){
+return;
+}
+var cc=RegExp.$1;
+var end=pos+cc.length;
+var _61=ta.value.substring(0,pos);
+var _62=ta.value.substring(end,ta.value.length);
+ta.value=_61;
+ta.scrollTop=ta.scrollHeight;
+var _63=ta.scrollTop;
+ta.value+=_62;
+ta.setSelectionRange(pos,pos);
+ta.focus();
+ta.scrollTop=_63;
+}else{
+var _64=this._doc.getElementById("XinhaOperaCaretMarker");
+if(_64){
+this.focusEditor();
+var rng=this.createRange();
+rng.selectNode(_64);
+var sel=this.getSelection();
+sel.addRange(rng);
+sel.collapseToStart();
+this.scrollToElement(_64);
+_64.parentNode.removeChild(_64);
+return;
+}
+}
+};
+Xinha.getDoctype=function(doc){
+var d="";
+if(doc.doctype){
+d+="";
+}
+return d;
+};
+Xinha.prototype._standardInitIframe=Xinha.prototype.initIframe;
+Xinha.prototype.initIframe=function(){
+if(!this._iframeLoadDone){
+if(this._iframe.contentWindow&&this._iframe.contentWindow.xinhaReadyToRoll){
+this._iframeLoadDone=true;
+this._standardInitIframe();
+}else{
+var _69=this;
+setTimeout(function(){
+_69.initIframe();
+},5);
+}
+}
+};
+Xinha._addEventOperaOrig=Xinha._addEvent;
+Xinha._addEvent=function(el,_6b,_6c){
+if(el.tagName&&el.tagName.toLowerCase()=="select"&&_6b=="change"){
+return Xinha.addDom0Event(el,_6b,_6c);
+}
+return Xinha._addEventOperaOrig(el,_6b,_6c);
+};
+
diff --git a/ccm-cms/web/assets/xinha/modules/WebKit/WebKit.js b/ccm-cms/web/assets/xinha/modules/WebKit/WebKit.js
new file mode 100644
index 000000000..8077d6db8
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/modules/WebKit/WebKit.js
@@ -0,0 +1,478 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/modules/WebKit/WebKit.js */
+WebKit._pluginInfo={name:"WebKit",origin:"Xinha Core",version:"$LastChangedRevision:998 $".replace(/^[^:]*:\s*(.*)\s*\$$/,"$1"),developer:"The Xinha Core Developer Team",developer_url:"$HeadURL:http://svn.xinha.webfactional.com/trunk/modules/WebKit/WebKit.js $".replace(/^[^:]*:\s*(.*)\s*\$$/,"$1"),sponsor:"",sponsor_url:"",license:"htmlArea"};
+function WebKit(_1){
+this.editor=_1;
+_1.WebKit=this;
+}
+WebKit.prototype.onKeyPress=function(ev){
+var _3=this.editor;
+var s=_3.getSelection();
+if(_3.isShortCut(ev)){
+switch(_3.getKey(ev).toLowerCase()){
+case "z":
+if(_3._unLink&&_3._unlinkOnUndo){
+Xinha._stopEvent(ev);
+_3._unLink();
+_3.updateToolbar();
+return true;
+}
+break;
+case "a":
+break;
+case "v":
+if(!_3.config.htmlareaPaste){
+return true;
+}
+break;
+}
+}
+switch(_3.getKey(ev)){
+case " ":
+var _5=function(_6,_7){
+var _8=_6.nextSibling;
+if(typeof _7=="string"){
+_7=_3._doc.createElement(_7);
+}
+var a=_6.parentNode.insertBefore(_7,_8);
+Xinha.removeFromParent(_6);
+a.appendChild(_6);
+_8.data=" "+_8.data;
+s.collapse(_8,1);
+_3._unLink=function(){
+var t=a.firstChild;
+a.removeChild(t);
+a.parentNode.insertBefore(t,a);
+Xinha.removeFromParent(a);
+_3._unLink=null;
+_3._unlinkOnUndo=false;
+};
+_3._unlinkOnUndo=true;
+return a;
+};
+if(_3.config.convertUrlsToLinks&&s&&s.isCollapsed&&s.anchorNode.nodeType==3&&s.anchorNode.data.length>3&&s.anchorNode.data.indexOf(".")>=0){
+var _b=s.anchorNode.data.substring(0,s.anchorOffset).search(/\S{4,}$/);
+if(_b==-1){
+break;
+}
+if(_3._getFirstAncestor(s,"a")){
+break;
+}
+var _c=s.anchorNode.data.substring(0,s.anchorOffset).replace(/^.*?(\S*)$/,"$1");
+var _d=_c.match(Xinha.RE_email);
+if(_d){
+var _e=s.anchorNode;
+var _f=_e.splitText(s.anchorOffset);
+var _10=_e.splitText(_b);
+_5(_10,"a").href="mailto:"+_d[0];
+break;
+}
+RE_date=/([0-9]+\.)+/;
+RE_ip=/(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/;
+var _11=_c.match(Xinha.RE_url);
+if(_11){
+if(RE_date.test(_c)){
+break;
+}
+var _12=s.anchorNode;
+var _13=_12.splitText(s.anchorOffset);
+var _14=_12.splitText(_b);
+_5(_14,"a").href=(_11[1]?_11[1]:"http://")+_11[2];
+break;
+}
+}
+break;
+}
+switch(ev.keyCode){
+case 13:
+if(ev.shiftKey){
+}
+break;
+case 27:
+if(_3._unLink){
+_3._unLink();
+Xinha._stopEvent(ev);
+}
+break;
+case 8:
+case 46:
+if(!ev.shiftKey&&this.handleBackspace()){
+Xinha._stopEvent(ev);
+}
+break;
+default:
+_3._unlinkOnUndo=false;
+if(s.anchorNode&&s.anchorNode.nodeType==3){
+var a=_3._getFirstAncestor(s,"a");
+if(!a){
+break;
+}
+if(!a._updateAnchTimeout){
+if(s.anchorNode.data.match(Xinha.RE_email)&&a.href.match("mailto:"+s.anchorNode.data.trim())){
+var _16=s.anchorNode;
+var _17=function(){
+a.href="mailto:"+_16.data.trim();
+a._updateAnchTimeout=setTimeout(_17,250);
+};
+a._updateAnchTimeout=setTimeout(_17,1000);
+break;
+}
+var m=s.anchorNode.data.match(Xinha.RE_url);
+if(m&&a.href.match(new RegExp("http(s)?://"+Xinha.escapeStringForRegExp(s.anchorNode.data.trim())))){
+var _19=s.anchorNode;
+var _1a=function(){
+m=_19.data.match(Xinha.RE_url);
+if(m){
+a.href=(m[1]?m[1]:"http://")+m[2];
+}
+a._updateAnchTimeout=setTimeout(_1a,250);
+};
+a._updateAnchTimeout=setTimeout(_1a,1000);
+}
+}
+}
+break;
+}
+return false;
+};
+WebKit.prototype.handleBackspace=function(){
+var _1b=this.editor;
+setTimeout(function(){
+var sel=_1b.getSelection();
+var _1d=_1b.createRange(sel);
+var SC=_1d.startContainer;
+var SO=_1d.startOffset;
+var EC=_1d.endContainer;
+var EO=_1d.endOffset;
+var _22=SC.nextSibling;
+if(SC.nodeType==3){
+SC=SC.parentNode;
+}
+if(!(/\S/.test(SC.tagName))){
+var p=document.createElement("p");
+while(SC.firstChild){
+p.appendChild(SC.firstChild);
+}
+SC.parentNode.insertBefore(p,SC);
+Xinha.removeFromParent(SC);
+var r=_1d.cloneRange();
+r.setStartBefore(_22);
+r.setEndAfter(_22);
+r.extractContents();
+sel.removeAllRanges();
+sel.addRange(r);
+}
+},10);
+};
+WebKit.prototype.inwardHtml=function(_25){
+return _25;
+};
+WebKit.prototype.outwardHtml=function(_26){
+return _26;
+};
+WebKit.prototype.onExecCommand=function(_27,UI,_29){
+this.editor._doc.execCommand("styleWithCSS",false,false);
+switch(_27){
+case "paste":
+alert(Xinha._lc("The Paste button does not work in the Safari browser for security reasons. Press CTRL-V on your keyboard to paste directly."));
+return true;
+break;
+case "removeformat":
+var _2a=this.editor;
+var sel=_2a.getSelection();
+var _2c=_2a.saveSelection(sel);
+var _2d=_2a.createRange(sel);
+var els=_2a._doc.getElementsByTagName("*");
+els=Xinha.collectionToArray(els);
+var _2f=(_2d.startContainer.nodeType==1)?_2d.startContainer:_2d.startContainer.parentNode;
+var i,el,newNode,fragment,child,r2=_2a._doc.createRange();
+function clean(el){
+if(el.nodeType!=1){
+return;
+}
+el.removeAttribute("style");
+for(var j=0;jsel.anchorOffset&&sel.anchorNode.childNodes[sel.anchorOffset].nodeType==1){
+return sel.anchorNode.childNodes[sel.anchorOffset];
+}else{
+if(sel.anchorNode.nodeType==1){
+return sel.anchorNode;
+}else{
+return null;
+}
+}
+}
+return null;
+};
+Xinha.prototype.selectionEmpty=function(sel){
+if(!sel){
+return true;
+}
+if(typeof sel.isCollapsed!="undefined"){
+return sel.isCollapsed;
+}
+return true;
+};
+Xinha.prototype.saveSelection=function(){
+return this.createRange(this.getSelection()).cloneRange();
+};
+Xinha.prototype.restoreSelection=function(_3f){
+var sel=this.getSelection();
+sel.removeAllRanges();
+sel.addRange(_3f);
+};
+Xinha.prototype.selectNodeContents=function(_41,pos){
+this.focusEditor();
+this.forceRedraw();
+var _43;
+var _44=typeof pos=="undefined"?true:false;
+var sel=this.getSelection();
+_43=this._doc.createRange();
+if(_44&&_41.tagName&&_41.tagName.toLowerCase().match(/table|img|input|textarea|select/)){
+_43.selectNode(_41);
+}else{
+_43.selectNodeContents(_41);
+}
+sel.removeAllRanges();
+sel.addRange(_43);
+};
+Xinha.prototype.insertHTML=function(_46){
+var sel=this.getSelection();
+var _48=this.createRange(sel);
+this.focusEditor();
+var _49=this._doc.createDocumentFragment();
+var div=this._doc.createElement("div");
+div.innerHTML=_46;
+while(div.firstChild){
+_49.appendChild(div.firstChild);
+}
+var _4b=this.insertNodeAtSelection(_49);
+};
+Xinha.prototype.getSelectedHTML=function(){
+var sel=this.getSelection();
+if(sel.isCollapsed){
+return "";
+}
+var _4d=this.createRange(sel);
+if(_4d){
+return Xinha.getHTML(_4d.cloneContents(),false,this);
+}else{
+return "";
+}
+};
+Xinha.prototype.getSelection=function(){
+return this._iframe.contentWindow.getSelection();
+};
+Xinha.prototype.createRange=function(sel){
+this.activateEditor();
+if(typeof sel!="undefined"){
+try{
+return sel.getRangeAt(0);
+}
+catch(ex){
+return this._doc.createRange();
+}
+}else{
+return this._doc.createRange();
+}
+};
+Xinha.prototype.isKeyEvent=function(_4f){
+return _4f.type=="keypress";
+};
+Xinha.prototype.getKey=function(_50){
+var key=String.fromCharCode(parseInt(_50.keyIdentifier.replace(/^U\+/,""),16));
+if(_50.shiftKey){
+return key;
+}else{
+return key.toLowerCase();
+}
+};
+Xinha.getOuterHTML=function(_52){
+return (new XMLSerializer()).serializeToString(_52);
+};
+Xinha.prototype.cc=String.fromCharCode(8286);
+Xinha.prototype.setCC=function(_53){
+var cc=this.cc;
+try{
+if(_53=="textarea"){
+var ta=this._textArea;
+var _56=ta.selectionStart;
+var _57=ta.value.substring(0,_56);
+var _58=ta.value.substring(_56,ta.value.length);
+if(_58.match(/^[^<]*>/)){
+var _59=_58.indexOf(">")+1;
+ta.value=_57+_58.substring(0,_59)+cc+_58.substring(_59,_58.length);
+}else{
+ta.value=_57+cc+_58;
+}
+ta.value=ta.value.replace(new RegExp("(&[^"+cc+"]*?)("+cc+")([^"+cc+"]*?;)"),"$1$3$2");
+ta.value=ta.value.replace(new RegExp("()"),"$1$3$2");
+ta.value=ta.value.replace(new RegExp("^([^"+cc+"]*)("+cc+")([^"+cc+"]*]*>)(.*?)"),"$1$3$2$4");
+}else{
+var sel=this.getSelection();
+sel.getRangeAt(0).insertNode(this._doc.createTextNode(cc));
+}
+}
+catch(e){
+}
+};
+Xinha.prototype.findCC=function(_5b){
+if(_5b=="textarea"){
+var ta=this._textArea;
+var pos=ta.value.indexOf(this.cc);
+if(pos==-1){
+return;
+}
+var end=pos+this.cc.length;
+var _5f=ta.value.substring(0,pos);
+var _60=ta.value.substring(end,ta.value.length);
+ta.value=_5f;
+ta.scrollTop=ta.scrollHeight;
+var _61=ta.scrollTop;
+ta.value+=_60;
+ta.setSelectionRange(pos,pos);
+ta.focus();
+ta.scrollTop=_61;
+}else{
+var _62=this;
+try{
+var doc=this._doc;
+doc.body.innerHTML=doc.body.innerHTML.replace(new RegExp(this.cc)," ");
+var _64=doc.getElementById("XinhaEditingPostion");
+this.selectNodeContents(_64);
+this.scrollToElement(_64);
+_64.parentNode.removeChild(_64);
+this._iframe.contentWindow.focus();
+}
+catch(e){
+}
+}
+};
+Xinha.prototype._standardToggleBorders=Xinha.prototype._toggleBorders;
+Xinha.prototype._toggleBorders=function(){
+var _65=this._standardToggleBorders();
+var _66=this._doc.getElementsByTagName("TABLE");
+for(var i=0;i<_66.length;i++){
+_66[i].style.display="none";
+_66[i].style.display="table";
+}
+return _65;
+};
+Xinha.getDoctype=function(doc){
+var d="";
+if(doc.doctype){
+d+="";
+}
+return d;
+};
+
diff --git a/ccm-cms/web/assets/xinha/plugins/Abbreviation/abbr/de.js b/ccm-cms/web/assets/xinha/plugins/Abbreviation/abbr/de.js
new file mode 100644
index 000000000..b2b54629b
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/Abbreviation/abbr/de.js
@@ -0,0 +1,40 @@
+// I18N constants
+// LANG: "de", ENCODING: UTF-8
+// Author: Udo Schmal,
+//
+// (c) Udo Schmal & Schaffrath NeueMedien 2004
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt).
+
+{
+ "Abs.": "Absatz",
+ "bspw.": "Beispielsweise",
+ "bzw.": "beziehungsweise",
+ "c/o": "care of / bei, zu Händen von",
+ "ca.": "circa",
+ "d.h.": "das heißt",
+ "d.J.": "des Jahres",
+ "Dr.": "Doktor",
+ "e.V.": "Eingetragener Verein",
+ "eG.": "Eingetragene Genossenschaft",
+ "ehem.": "ehemals",
+ "einschl.": "einschließlich",
+ "etc.": "et cetera / und so weiter",
+ "evtl.": "eventuell",
+ "ff.": "(fort) folgende",
+ "gem.": "gemäß",
+ "inkl.": "inklusive",
+ "max.": "maximal / maximum",
+ "min.": "mindestens / minimum / minimal",
+ "o.g.": "oben genannt",
+ "rd.": "rund",
+ "S.": "Seite",
+ "u.a.": "unter anderem",
+ "u.ä.": "und ähnlich",
+ "usw.": "und so weiter",
+ "vgl.": "vergleiche",
+ "z.B.": "zum Beispiel",
+ "z.T.": "zum Teil",
+ "z.Z.": "zur Zeit",
+ "zzgl.": "zuzüglich"
+};
diff --git a/ccm-cms/web/assets/xinha/plugins/Abbreviation/abbr/en.js b/ccm-cms/web/assets/xinha/plugins/Abbreviation/abbr/en.js
new file mode 100644
index 000000000..31974c81f
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/Abbreviation/abbr/en.js
@@ -0,0 +1,16 @@
+// I18N constants
+// LANG: "en", ENCODING: UTF-8
+// Author: Udo Schmal,
+//
+// (c) Udo Schmal & Schaffrath NeueMedien 2004
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt).
+
+{
+ "ANSI": "American National Standards Institute",
+ "ASA": "American Standards Association",
+ "ISO": "International Organisation for Standardization",
+ "mime": "Multipurpose Internet Mail Extensions",
+ "UTF": "Unicode Transformation Format",
+ "W3C": "World Wide Web Consortium"
+};
diff --git a/ccm-cms/web/assets/xinha/plugins/Abbreviation/abbreviation.css b/ccm-cms/web/assets/xinha/plugins/Abbreviation/abbreviation.css
new file mode 100755
index 000000000..2f999c920
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/Abbreviation/abbreviation.css
@@ -0,0 +1,11 @@
+abbr, acronym, span.abbr {
+ width: 18px;
+ height: 18px;
+ background-image: url(img/ed_abbreviation.gif);
+ background-repeat: no-repeat;
+ background-position: left top;
+ white-space : nowrap;
+ cursor: help;
+ border-bottom: 1px dashed #000;
+ padding-left: 19px;
+}
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/Abbreviation/abbreviation.js b/ccm-cms/web/assets/xinha/plugins/Abbreviation/abbreviation.js
new file mode 100644
index 000000000..d3d83d764
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/Abbreviation/abbreviation.js
@@ -0,0 +1,65 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/Abbreviation/abbreviation.js */
+function Abbreviation(_1){
+this.editor=_1;
+var _2=_1.config;
+var _3=this;
+_2.registerButton({id:"abbreviation",tooltip:this._lc("Abbreviation"),image:_1.imgURL("ed_abbreviation.gif","Abbreviation"),textMode:false,action:function(_4){
+_3.buttonPress(_4);
+}});
+_2.addToolbarElement("abbreviation","inserthorizontalrule",1);
+}
+Abbreviation._pluginInfo={name:"Abbreviation",version:"1.0",developer:"Udo Schmal",developer_url:"",sponsor:"L.N.Schaffrath NeueMedien",sponsor_url:"http://www.schaffrath-neuemedien.de/",c_owner:"Udo Schmal & Schaffrath-NeueMedien",license:"htmlArea"};
+Abbreviation.prototype._lc=function(_5){
+return Xinha._lc(_5,"Abbreviation");
+};
+Abbreviation.prototype.onGenerate=function(){
+this.editor.addEditorStylesheet(Xinha.getPluginDir("Abbreviation")+"/abbreviation.css");
+};
+Abbreviation.prototype.buttonPress=function(_6,_7,_8){
+var _9=null;
+var _a=_6.getSelectedHTML();
+var _b=_6._getSelection();
+var _c=_6._createRange(_b);
+var _d=_6._activeElement(_b);
+if(!(_d!=null&&_d.tagName.toLowerCase()=="abbr")){
+_d=_6._getFirstAncestor(_b,"abbr");
+}
+if(_d!=null&&_d.tagName.toLowerCase()=="abbr"){
+_9={title:_d.title,text:_d.innerHTML};
+}else{
+_9={title:"",text:_a};
+}
+_6._popupDialog("plugin://Abbreviation/abbreviation",function(_e){
+if(_e){
+var _f=_e["title"];
+if(_f==""||_f==null){
+if(_d){
+var _10=_d.innerHTML;
+_d.parentNode.removeChild(_d);
+_6.insertHTML(_10);
+}
+return;
+}
+try{
+var doc=_6._doc;
+if(!_d){
+_d=doc.createElement("abbr");
+_d.title=_f;
+_d.innerHTML=_a;
+if(Xinha.is_ie){
+_c.pasteHTML(_d.outerHTML);
+}else{
+_6.insertNodeAtSelection(_d);
+}
+}else{
+_d.title=_f;
+}
+}
+catch(e){
+}
+}
+},_9);
+};
+
diff --git a/ccm-cms/web/assets/xinha/plugins/Abbreviation/img/ed_abbreviation.gif b/ccm-cms/web/assets/xinha/plugins/Abbreviation/img/ed_abbreviation.gif
new file mode 100755
index 0000000000000000000000000000000000000000..50fba3d649f7a71021fa032af466001b6674a97e
GIT binary patch
literal 134
zcmZ?wbhEHb6k-r!SjEQh9}E~67+P9d{)6a-0|yQ;Ffb_oWMO1rU|`T;Vqj$8V-R3q
zVD{$NbcadHLy38+|Bb5c60=f7QW6s$xCtdY)+Pq<2z6%38lK6wV%>c?H+XSn%@Gxy
iOzUGB7f!i9
+// MSN: tomarshall@msn.com - ICQ: 69419933
+// Site: http://www.mpg.com.br
+
+// Last revision: 05 september 2007
+// Please don´t remove this information
+// If you modify any source, please insert a comment with your name and e-mail
+
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt).
+{
+ "Abbreviation": "Abreviação",
+ "Cancel": "Cancelar",
+ "Delete": "Apagar",
+ "Expansion:": "Expandir:",
+ "OK": "OK"
+}
diff --git a/ccm-cms/web/assets/xinha/plugins/Abbreviation/popups/abbreviation.html b/ccm-cms/web/assets/xinha/plugins/Abbreviation/popups/abbreviation.html
new file mode 100755
index 000000000..c4c260540
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/Abbreviation/popups/abbreviation.html
@@ -0,0 +1,92 @@
+
+
+ Abbreviation
+
+
+
+
+
+
+
+Abbreviation
+
+
+
+
+ OK
+ Delete
+ Cancel
+
+
+
+
diff --git a/ccm-cms/web/assets/xinha/plugins/BackgroundImage/background-image.js b/ccm-cms/web/assets/xinha/plugins/BackgroundImage/background-image.js
new file mode 100644
index 000000000..08736c5dc
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/BackgroundImage/background-image.js
@@ -0,0 +1,31 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/BackgroundImage/background-image.js */
+function BackgroundImage(_1){
+this.editor=_1;
+var _2=_1.config;
+var _3=this;
+_2.registerButton({id:"bgImage",tooltip:this._lc("Set page background image"),image:_1.imgURL("ed_bgimage.gif","BackgroundImage"),textMode:false,action:function(_4){
+_3.buttonPress(_4);
+}});
+_2.addToolbarElement("bgImage","inserthorizontalrule",1);
+}
+BackgroundImage._pluginInfo={name:"BackgroundImage",version:"1.0",developer:"Udo Schmal",developer_url:"http://www.schaffrath-neuemedien.de/",c_owner:"Udo Schmal & Schaffrath NeueMedien",sponsor:"L.N.Schaffrath NeueMedien",sponsor_url:"http://www.schaffrath-neuemedien.de.de/",license:"htmlArea"};
+BackgroundImage.prototype._lc=function(_5){
+return Xinha._lc(_5,"BackgroundImage");
+};
+BackgroundImage.prototype.buttonPress=function(_6){
+_6._popupDialog("plugin://BackgroundImage/bgimage",function(_7){
+if(_7){
+if(Xinha.is_ie){
+_6.focusEditor();
+}
+if(_7=="*"){
+_6._doc.body.background="";
+}else{
+_6._doc.body.background=_7;
+}
+}
+},null);
+};
+
diff --git a/ccm-cms/web/assets/xinha/plugins/BackgroundImage/backgrounds/blufur.jpg b/ccm-cms/web/assets/xinha/plugins/BackgroundImage/backgrounds/blufur.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..27df6c6a86109532b80768081e35f62abf8a36bf
GIT binary patch
literal 3329
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
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/plugins/BackgroundImage/backgrounds/thumbnails/blufur.jpg b/ccm-cms/web/assets/xinha/plugins/BackgroundImage/backgrounds/thumbnails/blufur.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..f4ac4841fef2429bfaa0cb649cf98a13660bb948
GIT binary patch
literal 1193
zcmbW!eNfYN9KiAK?`e+=80-N!bAdcmb{fxFfC0+DS_=e04lPgaM@4_kI5S-se8A`{G0RV_>;2
zC?p6#5CnojFaWp`1OfzxO@kl^iXbRP!Y~xYC`2NGWJWPFqf)3;nz@xF&75vdrCPEq
z>DCM;lWAtbwqY@BtQbs&X$gd&D28HW3?nmWR2t(yhu;Bo64(y5Baj1t=@3GP@D9KM
z0K%Znz@I@df?@503?E71fX=x%HGwVU>zDubVz2nW#yHS
zwgpt*WroS0JG#fEoF!9OY#UoUCuf(JUVg>H)64tyU2g>L*&D>L+Oe;i>e~=gwze$oVYyV*XcO7lxsjF{j
zY-(%o=Lw{(r^>MgnmszRk#epDqrKq$nFb#g2!gW09cJpbFIv!SeOAP^m23fs+oIe|p
z(cArF)%sNFyh6t}OjSqB%qW5%?euhP$hW9&ufNW!G9)y$XvIyvw2ey4JdRUG}E}qj98T(BqUuYR>aYaJ)q1
zeQtPA@qfj(+xB-xhIC
O9AnBUNmWrCeE4_cA^x-g
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/plugins/BackgroundImage/backgrounds/thumbnails/palecnvs.jpg b/ccm-cms/web/assets/xinha/plugins/BackgroundImage/backgrounds/thumbnails/palecnvs.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..4867a36ee51f3ec441292d85c7c7aa7c8ef7c22e
GIT binary patch
literal 1145
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
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/plugins/BackgroundImage/backgrounds/thumbnails/ylwsand.jpg b/ccm-cms/web/assets/xinha/plugins/BackgroundImage/backgrounds/thumbnails/ylwsand.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..1e11aa90611141016a7b2ece7ebe3ab115507e90
GIT binary patch
literal 3758
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
s`{~
+// MSN: tomarshall@msn.com - ICQ: 69419933
+// Site: http://www.mpg.com.br
+
+// Last revision: 05 september 2007
+// Please don´t remove this information
+// If you modify any source, please insert a comment with your name and e-mail
+
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt).
+{
+ "Cancel": "Cancelar",
+ "Remove Current Background": "Remover fundo atual",
+ "Set Page Background Image": "Definir Imagem de Fundo",
+ "Set page background image": "Definir imagem de fundo"
+}
diff --git a/ccm-cms/web/assets/xinha/plugins/BackgroundImage/popups/bgimage.html b/ccm-cms/web/assets/xinha/plugins/BackgroundImage/popups/bgimage.html
new file mode 100755
index 000000000..79e18f412
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/BackgroundImage/popups/bgimage.html
@@ -0,0 +1,49 @@
+
+
+
+Set Page Background Image
+
+
+
+
+
+
+ Set Page Background Image
+
+
+
+Remove Current Background
+Cancel
+
+
+
+
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/CSS/css.js b/ccm-cms/web/assets/xinha/plugins/CSS/css.js
new file mode 100644
index 000000000..bf4a755e8
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/CSS/css.js
@@ -0,0 +1,77 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/CSS/css.js */
+Xinha.Config.prototype.cssPluginConfig={combos:[{label:"Syntax",options:{"None":"","Code":"code","String":"string","Comment":"comment","Variable name":"variable-name","Type":"type","Reference":"reference","Preprocessor":"preprocessor","Keyword":"keyword","Function name":"function-name","Html tag":"html-tag","Html italic":"html-helper-italic","Warning":"warning","Html bold":"html-helper-bold"},context:"pre"},{label:"Info",options:{"None":"","Quote":"quote","Highlight":"highlight","Deprecated":"deprecated"}}]};
+function CSS(_1,_2){
+this.editor=_1;
+var _3=_1.config;
+var _4=this;
+var _5;
+if(_2&&_2.length){
+_5=_2[0];
+}else{
+_5=_1.config.cssPluginConfig;
+}
+var _6=_5.combos;
+for(var i=0;i<_6.length;i++){
+var _8=_6[i];
+var id="CSS-class"+i;
+var _a={id:id,options:_8.options,action:function(_b){
+_4.onSelect(_b,this,_8.context,_8.updatecontextclass);
+},refresh:function(_c){
+_4.updateValue(_c,this);
+},context:_8.context};
+_3.registerDropdown(_a);
+_3.addToolbarElement(["T["+_8.label+"]",id,"separator"],"formatblock",-1);
+}
+}
+CSS._pluginInfo={name:"CSS",version:"1.0",developer:"Mihai Bazon",developer_url:"http://dynarch.com/mishoo/",c_owner:"Mihai Bazon",sponsor:"Miro International",sponsor_url:"http://www.miro.com.au",license:"htmlArea"};
+CSS.prototype.onSelect=function(_d,_e,_f,_10){
+var _11=_d._toolbarObjects[_e.id];
+var _12=_11.element.selectedIndex;
+var _13=_11.element.value;
+var _14=_d.getParentElement();
+var _15=true;
+var _16=(_14&&_14.tagName.toLowerCase()=="span");
+var _17=(_f&&_10&&_14&&_14.tagName.toLowerCase()==_f);
+if(_17){
+_14.className=_13;
+_d.updateToolbar();
+return;
+}
+if(_16&&_12==0&&!/\S/.test(_14.style.cssText)){
+while(_14.firstChild){
+_14.parentNode.insertBefore(_14.firstChild,_14);
+}
+_14.parentNode.removeChild(_14);
+_d.updateToolbar();
+return;
+}
+if(_16){
+if(_14.childNodes.length==1){
+_14.className=_13;
+_15=false;
+_d.updateToolbar();
+}
+}
+if(_15){
+_d.surroundHTML(""," ");
+}
+};
+CSS.prototype.updateValue=function(_18,obj){
+var _1a=_18._toolbarObjects[obj.id].element;
+var _1b=_18.getParentElement();
+if(typeof _1b.className!="undefined"&&/\S/.test(_1b.className)){
+var _1c=_1a.options;
+var _1d=_1b.className;
+for(var i=_1c.length;--i>=0;){
+var _1f=_1c[i];
+if(_1d==_1f.value){
+_1a.selectedIndex=i;
+return;
+}
+}
+}
+_1a.selectedIndex=0;
+};
+
diff --git a/ccm-cms/web/assets/xinha/plugins/CharCounter/char-counter.js b/ccm-cms/web/assets/xinha/plugins/CharCounter/char-counter.js
new file mode 100644
index 000000000..39e3fbe50
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/CharCounter/char-counter.js
@@ -0,0 +1,109 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/CharCounter/char-counter.js */
+function CharCounter(_1){
+this.editor=_1;
+this._Chars=0;
+this._Words=0;
+this._HTML=0;
+this.onKeyPress=this.__onKeyPress;
+}
+Xinha.Config.prototype.CharCounter={"showChar":true,"showWord":true,"showHtml":true,"separator":" | ","maxHTML":-1};
+CharCounter._pluginInfo={name:"CharCounter",version:"1.31",developer:"Udo Schmal",developer_url:"http://www.schaffrath-neuemedien.de",sponsor:"L.N.Schaffrath NeueMedien",sponsor_url:"http://www.schaffrath-neuemedien.de",c_owner:"Udo Schmal & L.N.Schaffrath NeueMedien",license:"htmlArea"};
+CharCounter.prototype._lc=function(_2){
+return Xinha._lc(_2,"CharCounter");
+};
+CharCounter.prototype.onGenerateOnce=function(){
+var _3=this;
+if(this.charCount==null){
+var _4=document.createElement("span");
+_4.style.padding="2px 5px";
+if(Xinha.is_ie){
+_4.style.styleFloat="right";
+}else{
+_4.style.cssFloat="right";
+}
+var _5=document.createElement("div");
+_5.style.height=_5.style.width=_5.style.lineHeight=_5.style.fontSize="1px";
+_5.style.clear="both";
+if(Xinha.is_ie){
+this.editor._statusBarTree.style.styleFloat="left";
+}else{
+this.editor._statusBarTree.style.cssFloat="left";
+}
+this.editor._statusBar.appendChild(_4);
+this.editor._statusBar.appendChild(_5);
+this.charCount=_4;
+}
+};
+CharCounter.prototype.__onKeyPress=function(ev){
+if((ev.keyCode!=8)&&(ev.keyCode!=46)){
+if(this.editor.config.CharCounter.maxHTML!=-1){
+var _7=this.editor.getHTML();
+if(_7.length>=this.editor.config.CharCounter.maxHTML){
+Xinha._stopEvent(ev);
+return true;
+}
+}
+}
+};
+CharCounter.prototype._updateCharCount=function(){
+var _8=this.editor;
+var _9=_8.config;
+var _a=_8.getHTML();
+var _b=new Array();
+if(_9.CharCounter.showHtml){
+_b[_b.length]=this._lc("HTML")+": "+_a.length;
+}
+this._HTML=_a.length;
+if(_9.CharCounter.showWord||_9.CharCounter.showChar){
+_a=_a.replace(/<\/?\s*!--[^-->]*-->/gi,"");
+_a=_a.replace(/<(.+?)>/g,"");
+_a=_a.replace(/ /gi," ");
+_a=_a.replace(/([\n\r\t])/g," ");
+_a=_a.replace(/( +)/g," ");
+_a=_a.replace(/&(.*);/g," ");
+_a=_a.replace(/^\s*|\s*$/g,"");
+}
+if(_9.CharCounter.showWord){
+this._Words=0;
+for(var x=0;x<_a.length;x++){
+if(_a.charAt(x)==" "){
+this._Words++;
+}
+}
+if(this._Words>=1){
+this._Words++;
+}
+_b[_b.length]=this._lc("Words")+": "+this._Words;
+}
+if(_9.CharCounter.showChar){
+_b[_b.length]=this._lc("Chars")+": "+_a.length;
+this._Chars=_a.length;
+}
+this.charCount.innerHTML=_b.join(_9.CharCounter.separator);
+};
+CharCounter.prototype.onUpdateToolbar=function(){
+this.charCount.innerHTML=this._lc("... in progress");
+if(this._timeoutID){
+window.clearTimeout(this._timeoutID);
+}
+var e=this;
+this._timeoutID=window.setTimeout(function(){
+e._updateCharCount();
+},1000);
+};
+CharCounter.prototype.onMode=function(_e){
+switch(_e){
+case "textmode":
+this.charCount.style.display="none";
+break;
+case "wysiwyg":
+this.charCount.style.display="";
+break;
+default:
+alert("Mode <"+_e+"> not defined!");
+return false;
+}
+};
+
diff --git a/ccm-cms/web/assets/xinha/plugins/CharCounter/lang/de.js b/ccm-cms/web/assets/xinha/plugins/CharCounter/lang/de.js
new file mode 100644
index 000000000..74b6d22c5
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/CharCounter/lang/de.js
@@ -0,0 +1,8 @@
+// I18N constants
+// LANG: "de", ENCODING: UTF-8
+// Author: Udo Schmal (gocher), http://www.schaffrath-neuemedien.de/, udo.schmal@t-online.de
+{
+ "Chars": "Zeichen",
+ "Words": "Worte",
+ "... in progress": "... in Bearbeitung"
+};
diff --git a/ccm-cms/web/assets/xinha/plugins/CharCounter/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/CharCounter/lang/fr.js
new file mode 100644
index 000000000..0a4d9df6a
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/CharCounter/lang/fr.js
@@ -0,0 +1,6 @@
+// I18N constants
+// LANG: "fr", ENCODING: UTF-8
+{
+ "Chars": "Caractères",
+ "Words": "Mots"
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/CharCounter/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/CharCounter/lang/ja.js
new file mode 100644
index 000000000..77aace204
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/CharCounter/lang/ja.js
@@ -0,0 +1,7 @@
+// I18N constants
+// LANG: "ja", ENCODING: UTF-8
+{
+ "Chars": "æ–‡å—æ•°",
+ "Words": "å˜èªžæ•°",
+ "... in progress": "... 処ç†ä¸"
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/CharCounter/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/CharCounter/lang/nb.js
new file mode 100644
index 000000000..1aa701b9e
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/CharCounter/lang/nb.js
@@ -0,0 +1,6 @@
+// I18N constants
+// LANG: "nb", ENCODING: UTF-8
+// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com
+{
+ "Chars": "Tegn"
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/CharCounter/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/CharCounter/lang/nl.js
new file mode 100644
index 000000000..d00e8e6c1
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/CharCounter/lang/nl.js
@@ -0,0 +1,8 @@
+// I18N constants
+// LANG: "nl", ENCODING: UTF-8
+// Author: Maarten Molenschot, maarten@nrgmm.nl
+{
+ "Chars": "Tekens",
+ "Words": "Woorden",
+ "... in progress": "... wordt verwerkt"
+};
diff --git a/ccm-cms/web/assets/xinha/plugins/CharCounter/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/CharCounter/lang/pt_br.js
new file mode 100644
index 000000000..4bc0b0175
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/CharCounter/lang/pt_br.js
@@ -0,0 +1,21 @@
+// I18N constants
+
+// LANG: "pt_br", ENCODING: UTF-8
+// Portuguese Brazilian Translation
+
+// Author: Marcio Barbosa,
+// MSN: tomarshall@msn.com - ICQ: 69419933
+// Site: http://www.mpg.com.br
+
+// Last revision: 05 september 2007
+// Please don´t remove this information
+// If you modify any source, please insert a comment with your name and e-mail
+
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt).
+{
+ "... in progress": "... em processo",
+ "Chars": "Caracteres",
+ "HTML": "HTML",
+ "Words": "Palavras"
+}
diff --git a/ccm-cms/web/assets/xinha/plugins/CharacterMap/CharacterMap.css b/ccm-cms/web/assets/xinha/plugins/CharacterMap/CharacterMap.css
new file mode 100755
index 000000000..faea58b6b
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/CharacterMap/CharacterMap.css
@@ -0,0 +1,41 @@
+.CharacterMap { }
+.CharacterMap a.entity {
+ font-size:12px;
+ width:18px;
+ display:block;
+ float:left;
+ padding:2px;
+ text-decoration:none;
+ color:#000;
+ text-align:center;
+
+}
+.CharacterMap a.light {
+ background-color:#ffffff;
+}
+.CharacterMap a.dark {
+ background-color:#f7f8fd;
+}
+.CharacterMap a.entity:hover {
+ background-color:#ffd760;
+ color:#000;
+}
+.popup td.character {
+ font-family:Verdana,Arial,Helvetica,sans-serif;
+ font-size:14px;
+ font-weight:bold;
+ text-align:center;
+ background:#fff;
+ padding:4px;
+}
+.popup td.character-hilite {
+ background:#ffd760;
+}
+.popup form {
+ text-align:center;
+}
+.popup table {
+ cursor:pointer;
+ background-color:#ADAD9C;
+ border:1px inset;
+}
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/CharacterMap/character-map.js b/ccm-cms/web/assets/xinha/plugins/CharacterMap/character-map.js
new file mode 100644
index 000000000..ddebbfa46
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/CharacterMap/character-map.js
@@ -0,0 +1,71 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/CharacterMap/character-map.js */
+Xinha.loadStyle("CharacterMap.css","CharacterMap");
+function CharacterMap(_1){
+this.editor=_1;
+var _2=_1.config;
+var _3=this;
+_2.registerButton({id:"insertcharacter",tooltip:Xinha._lc("Insert special character","CharacterMap"),image:_1.imgURL("ed_charmap.gif","CharacterMap"),textMode:false,action:function(_4){
+_3.buttonPress(_4);
+}});
+_2.addToolbarElement("insertcharacter","createlink",-1);
+if(_2.CharacterMap.mode=="panel"){
+_1._CharacterMap=_1.addPanel("right");
+Xinha._addClass(_1._CharacterMap,"CharacterMap");
+_1.notifyOn("modechange",function(e,_6){
+if(_6.mode=="text"){
+_1.hidePanel(_1._CharacterMap);
+}
+});
+var _7=["Ÿ","š","@",""","¡","¢","£","¤","¥","¦","§","¨","©","ª","«","¬","¯","°","±","²","³","´","µ","¶","·","¸","¹","º","»","¼","½","¾","¿","×","Ø","÷","ø","ƒ","ˆ","˜","–","—","‘","’","‚","“","”","„","†","‡","•","…","‰","‹","›","€","™","À","Á","Â","Ã","Ä","Å","Æ","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","Ð","Ñ","Ò","Ó","Ô","Õ","Ö","®","×","Ù","Ú","Û","Ü","Ý","Þ","ß","à","á","â","ã","ä","å","æ","ç","è","é","ê","ë","ì","í","î","ï","ð","ñ","ò","ó","ô","õ","ö","÷","ø","ù","ú","û","ü","ý","þ","ÿ","Œ","œ","Š"];
+for(var i=0;i<_7.length;i++){
+this.addEntity(_7[i],i);
+}
+_1.hidePanel(_1._CharacterMap);
+}
+}
+Xinha.Config.prototype.CharacterMap={"mode":"popup"};
+CharacterMap._pluginInfo={name:"CharacterMap",version:"2.0",developer:"Laurent Vilday",developer_url:"http://www.mokhet.com/",c_owner:"Xinha community",sponsor:"",sponsor_url:"",license:"Creative Commons Attribution-ShareAlike License"};
+CharacterMap._isActive=false;
+CharacterMap.prototype.buttonPress=function(_9){
+var _a=_9.config;
+if(_a.CharacterMap.mode=="panel"){
+if(this._isActive){
+this._isActive=false;
+_9.hidePanel(_9._CharacterMap);
+}else{
+this._isActive=true;
+_9.showPanel(_9._CharacterMap);
+}
+}else{
+_9._popupDialog("plugin://CharacterMap/select_character",function(_b){
+if(!_b){
+return false;
+}
+if(Xinha.is_ie){
+_9.focusEditor();
+}
+_9.insertHTML(_b);
+},null);
+}
+};
+CharacterMap.prototype.addEntity=function(_c,_d){
+var _e=this.editor;
+var _f=this;
+var a=document.createElement("a");
+Xinha._addClass(a,"entity");
+a.innerHTML=_c;
+a.href="javascript:void(0)";
+Xinha._addClass(a,(_d%2)?"light":"dark");
+a.onclick=function(){
+if(Xinha.is_ie){
+_e.focusEditor();
+}
+_e.insertHTML(_c);
+return false;
+};
+_e._CharacterMap.appendChild(a);
+a=null;
+};
+
diff --git a/ccm-cms/web/assets/xinha/plugins/CharacterMap/img/ed_charmap.gif b/ccm-cms/web/assets/xinha/plugins/CharacterMap/img/ed_charmap.gif
new file mode 100755
index 0000000000000000000000000000000000000000..dc6d706ebc3bb1ab342d540d498c10ba7a24d7dc
GIT binary patch
literal 134
zcmZ?wbhEHb6k-r!SjE8b|NsAnhK2(N4*dWBp8*6wR0BhU;!hS<5e5bZ9YzL51_1^>
z1_owtj$H!h0xTWl=Nx(=6(KP-jb+LOPX+g&!xz@(p4`QFk;7H-NN#~eizwf-4}Y6>
lI5})DmZ>v+xZx#>S&LQF#DvKlTko9MDk-MFWU?H2|giGPM8z
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/de.js b/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/de.js
new file mode 100644
index 000000000..0624817e3
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/de.js
@@ -0,0 +1,11 @@
+// I18N constants
+// LANG: "de", ENCODING: UTF-8
+// Sponsored by http://www.systemconcept.de
+// Author: Holger Hees,
+// (c) systemconcept.de 2004
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt).
+{
+ "Insert special character": "Sonderzeichen einfügen",
+ "Cancel": "Abbrechen"
+}
diff --git a/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/fr.js
new file mode 100644
index 000000000..24851be02
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/fr.js
@@ -0,0 +1,6 @@
+// I18N constants
+// LANG: "fr", ENCODING: UTF-8
+{
+ "Insert special character": "Insérer un caractère spécial",
+ "Cancel": "Annuler"
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/it.js b/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/it.js
new file mode 100644
index 000000000..2b3e1a083
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/it.js
@@ -0,0 +1,6 @@
+// I18N constants
+// LANG: "it", ENCODING: UTF-8
+{
+ "Insert special character": "Inserisca il carattere speciale",
+ "Cancel": "Annullamento"
+};
diff --git a/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/ja.js
new file mode 100644
index 000000000..68ec5fd10
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/ja.js
@@ -0,0 +1,6 @@
+// I18N constants
+// LANG: "ja", ENCODING: UTF-8
+{
+ "Insert special character": "特殊文å—を挿入",
+ "Cancel": "䏿¢"
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/nb.js
new file mode 100644
index 000000000..744e6fc02
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/nb.js
@@ -0,0 +1,7 @@
+// I18N constants
+// LANG: "nb", ENCODING: UTF-8
+// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com
+{
+ "Insert special character": "Sett inn tegn",
+ "Cancel": "Avbryt"
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/nl.js
new file mode 100644
index 000000000..477446d2b
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/nl.js
@@ -0,0 +1,11 @@
+// I18N constants
+// LANG: "nl", ENCODING: UTF-8
+// Sponsored by http://www.systemconcept.de
+// Author: Holger Hees,
+// (c) systemconcept.de 2004
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt).
+{
+ "Insert special character": "Speciaal character invoegen",
+ "Cancel": "Annuleer"
+};
diff --git a/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/pt_br.js
new file mode 100644
index 000000000..a8c189156
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/pt_br.js
@@ -0,0 +1,19 @@
+// I18N constants
+
+// LANG: "pt_br", ENCODING: UTF-8
+// Portuguese Brazilian Translation
+
+// Author: Marcio Barbosa,
+// MSN: tomarshall@msn.com - ICQ: 69419933
+// Site: http://www.mpg.com.br
+
+// Last revision: 05 september 2007
+// Please don´t remove this information
+// If you modify any source, please insert a comment with your name and e-mail
+
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt).
+{
+ "Cancel": "Cancelar",
+ "Insert special character": "Inserir caracter especial"
+}
diff --git a/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/ru.js b/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/ru.js
new file mode 100644
index 000000000..9111dd513
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/ru.js
@@ -0,0 +1,7 @@
+// I18N constants
+// LANG: "ru", ENCODING: UTF-8
+// Author: Andrei Blagorazumov, a@fnr.ru
+{
+ "Insert special character": "Ð’Ñтавить Ñпециальный Ñимвол",
+ "Cancel": "Отменить"
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/sv.js b/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/sv.js
new file mode 100644
index 000000000..4e2980429
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/CharacterMap/lang/sv.js
@@ -0,0 +1,7 @@
+// I18N constants
+// LANG: "sv" (Swedish), ENCODING: UTF-8
+// translated: Erik Dalén
+{
+ "Insert special character": "Infoga tecken",
+ "Cancel": "Avbryt"
+};
diff --git a/ccm-cms/web/assets/xinha/plugins/CharacterMap/popups/select_character.html b/ccm-cms/web/assets/xinha/plugins/CharacterMap/popups/select_character.html
new file mode 100755
index 000000000..1494b51ef
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/CharacterMap/popups/select_character.html
@@ -0,0 +1,184 @@
+
+
+
+Insert special character
+
+
+
+
+
+
+
+
+Ÿ
+š
+@
+"
+¡
+¢
+£
+¤
+¥
+¦
+§
+¨
+©
+ª
+«
+¬
+
+¯
+°
+±
+²
+³
+´
+µ
+¶
+·
+¸
+¹
+º
+»
+¼
+½
+¾
+
+¿
+×
+Ø
+÷
+ø
+ƒ
+ˆ
+˜
+–
+—
+‘
+’
+‚
+“
+”
+„
+
+†
+‡
+•
+…
+‰
+‹
+›
+€
+™
+À
+Á
+Â
+Ã
+Ä
+Å
+Æ
+
+Ç
+È
+É
+Ê
+Ë
+Ì
+Í
+Î
+Ï
+Ð
+Ñ
+Ò
+Ó
+Ô
+Õ
+Ö
+
+®
+×
+Ù
+Ú
+Û
+Ü
+Ý
+Þ
+ß
+à
+á
+â
+ã
+ä
+å
+æ
+
+ç
+è
+é
+ê
+ë
+ì
+í
+î
+ï
+ð
+ñ
+ò
+ó
+ô
+õ
+ö
+
+÷
+ø
+ù
+ú
+û
+ü
+ý
+þ
+ÿ
+Œ
+œ
+Š
+
+
+
+Cancel
+
+
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/clientside-spellcheck.js b/ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/clientside-spellcheck.js
new file mode 100644
index 000000000..888fd5dfa
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/clientside-spellcheck.js
@@ -0,0 +1,36 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/ClientsideSpellcheck/clientside-spellcheck.js */
+function ClientsideSpellcheck(_1){
+this.editor=_1;
+var _2=_1.config;
+var bl=ClientsideSpellcheck.btnList;
+var _4=this;
+var id="clientsidespellcheck";
+_2.registerButton(id,this._lc("Spell Check using ieSpell"),_1.imgURL("clientside-spellcheck.gif","ClientsideSpellcheck"),false,function(_6,id){
+_4.buttonPress(_6,id);
+});
+if(Xinha.is_ie){
+_2.addToolbarElement("clientsidespellcheck","print",1);
+}
+}
+ClientsideSpellcheck._pluginInfo={name:"ClientsideSpellcheck",version:"1.0",developer:"Michael Harris",developer_url:"http://www.jonesinternational.edu",c_owner:"Red Egg Software",sponsor:"Jones International University",sponsor_url:"http://www.jonesinternational.edu",license:"htmlArea"};
+ClientsideSpellcheck.prototype._lc=function(_8){
+return Xinha._lc(_8,"ClientsideSpellcheck");
+};
+ClientsideSpellcheck.prototype.buttonPress=function(_9){
+try{
+var _a=new ActiveXObject("ieSpell.ieSpellExtension");
+_a.CheckAllLinkedDocuments(document);
+}
+catch(exception){
+if(exception.number==-2146827859){
+if(confirm(this.lc("ieSpell not detected. Click Ok to go to download page."))){
+window.open("http://www.iespell.com/download.php","DownLoad");
+}
+}else{
+alert(this.lc("ieSpell can only be used in Internet Explorer"));
+}
+}
+};
+
diff --git a/ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/img/clientside-spellcheck.gif b/ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/img/clientside-spellcheck.gif
new file mode 100755
index 0000000000000000000000000000000000000000..dc8435c367c4f8abb5139a8beefdce9192b9694d
GIT binary patch
literal 97
zcmV-n0G|IxNk%w1VG;lm0GR*)|Ns9000000%>V!YA^8La6aWAKECK)m01p5T0006q
zgpUxBwyeN_%ejddej}>MQQb0@oH2CYnj*rhs;-dGbMxB3i{~`oF!*#qA+UHLCJF#M
DQiLU-
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/img/he-spell-check.gif b/ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/img/he-spell-check.gif
new file mode 100755
index 0000000000000000000000000000000000000000..8015d2ff22cfcf746d7f50b299b833720d7999bc
GIT binary patch
literal 100
zcmZ?wbhEHb6k-r!n90EK9}E~6ni&`v6o0ZXGB7YO=rA!bG4M0+F)%Qhw)6`xJYjqw
zh*xj1#AL^3Yg^AV7heCSd-o~h#4e5^b;Y(E?w$KSGu%7Om}`D>LWO}+r(F^wgEas@
CQX*ae
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/lang/de.js b/ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/lang/de.js
new file mode 100644
index 000000000..5fed4c82b
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/lang/de.js
@@ -0,0 +1,8 @@
+// I18N constants
+// LANG: "de", ENCODING: UTF-8
+// translated: Udo Schmal (gocher), http://www.schaffrath-neuemedien.de/, udo.schmal@t-online.de
+{
+ "Spell Check using ieSpell": "Englische Rechtschreibkontrolle mit ieSpell",
+ "ieSpell can only be used in Internet Explorer": "ieSpell kann nur mit dem Internet Explorer benutzt werden",
+ "ieSpell not detected. Click Ok to go to download page.": "ieSpell wurde nicht gefunden. Drücken sie Ok um ieSpeck herunter zu laden."
+};
diff --git a/ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/lang/ja.js
new file mode 100644
index 000000000..22ae660e8
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/lang/ja.js
@@ -0,0 +1,7 @@
+// I18N constants
+// LANG: "ja", ENCODING: UTF-8
+{
+ "Spell Check using ieSpell": "スペルãƒã‚§ãƒƒã‚¯ã« ieSpell を使ã†",
+ "ieSpell can only be used in Internet Explorer": "ieSpell 㯠Internet Explorer ã§ã®ã¿ä½¿ç”¨ã§ãã¾ã™",
+ "ieSpell not detected. Click Ok to go to download page.": "ieSpell ãŒæ¤œçŸ¥ã•れã¾ã›ã‚“ã§ã—ãŸã€‚OK をクリックã—ã¦ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ãƒšãƒ¼ã‚¸ã‚’é–‹ã„ã¦ãã ã•ã„。"
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/lang/nb.js
new file mode 100644
index 000000000..4b985c2ee
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/lang/nb.js
@@ -0,0 +1,3 @@
+// Dummy file
+
+{};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/lang/nl.js
new file mode 100644
index 000000000..d5c836770
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/lang/nl.js
@@ -0,0 +1,8 @@
+// I18N constants
+// LANG: "nl", ENCODING: UTF-8
+// Author: Maarten Molenschot, maarten@nrgmm.nl
+{
+ "Spell Check using ieSpell": "Engelse spellingscontrole met ieSpell",
+ "ieSpell can only be used in Internet Explorer": "ieSpell kan alleen worden gebruikt in Internet Explorer",
+ "ieSpell not detected. Click Ok to go to download page.": "ieSpell werd niet gevonden. Klik op Ok om ieSpell te downloaden"
+};
diff --git a/ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/lang/pt_br.js
new file mode 100644
index 000000000..62b351d25
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ClientsideSpellcheck/lang/pt_br.js
@@ -0,0 +1,18 @@
+// I18N constants
+
+// LANG: "pt_br", ENCODING: UTF-8
+// Portuguese Brazilian Translation
+
+// Author: Marcio Barbosa,
+// MSN: tomarshall@msn.com - ICQ: 69419933
+// Site: http://www.mpg.com.br
+
+// Last revision: 05 september 2007
+// Please don´t remove this information
+// If you modify any source, please insert a comment with your name and e-mail
+
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt).
+{
+ "Spell Check using ieSpell": "Verificação Ortográfica utilizando ieSpell"
+}
diff --git a/ccm-cms/web/assets/xinha/plugins/ContextMenu/context-menu.js b/ccm-cms/web/assets/xinha/plugins/ContextMenu/context-menu.js
new file mode 100644
index 000000000..2ca37adb0
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ContextMenu/context-menu.js
@@ -0,0 +1,390 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/ContextMenu/context-menu.js */
+Xinha.loadStyle("menu.css","ContextMenu");
+function ContextMenu(_1){
+this.editor=_1;
+}
+ContextMenu._pluginInfo={name:"ContextMenu",version:"1.0",developer:"Mihai Bazon",developer_url:"http://dynarch.com/mishoo/",c_owner:"dynarch.com",sponsor:"American Bible Society",sponsor_url:"http://www.americanbible.org",license:"htmlArea"};
+Xinha.Config.prototype.ContextMenu={disableMozillaSpellCheck:false};
+ContextMenu.prototype.onGenerate=function(){
+var _2=this;
+var _3=this.editordoc=this.editor._iframe.contentWindow.document;
+Xinha._addEvents(_3,["contextmenu"],function(_4){
+return _2.popupMenu(Xinha.is_ie?_2.editor._iframe.contentWindow.event:_4);
+});
+this.currentMenu=null;
+if(this.editor.config.ContextMenu.disableMozillaSpellCheck){
+this.editordoc.body.spellcheck=false;
+}
+};
+ContextMenu.prototype.getContextMenu=function(_5){
+var _6=this;
+var _7=this.editor;
+var _8=_7.config;
+var _9=[];
+var _a=this.editor.plugins.TableOperations;
+if(_a){
+_a=_a.instance;
+}
+var _b=_7.hasSelectedText();
+if(!Xinha.is_gecko){
+if(_b){
+_9.push([Xinha._lc("Cut","ContextMenu"),function(){
+_7.execCommand("cut");
+},null,_8.btnList["cut"][1]],[Xinha._lc("Copy","ContextMenu"),function(){
+_7.execCommand("copy");
+},null,_8.btnList["copy"][1]]);
+_9.push([Xinha._lc("Paste","ContextMenu"),function(){
+_7.execCommand("paste");
+},null,_8.btnList["paste"][1]]);
+}
+}
+var _c=_5;
+var _d=[];
+var _e=null;
+var _f=null;
+var tr=null;
+var td=null;
+var img=null;
+function tableOperation(_13){
+_a.buttonPress(_7,_13);
+}
+function insertPara(_14){
+var el=_c;
+var par=el.parentNode;
+var p=_7._doc.createElement("p");
+p.appendChild(_7._doc.createElement("br"));
+par.insertBefore(p,_14?el.nextSibling:el);
+var sel=_7._getSelection();
+var _19=_7._createRange(sel);
+if(!Xinha.is_ie){
+sel.removeAllRanges();
+_19.selectNodeContents(p);
+_19.collapse(true);
+sel.addRange(_19);
+}else{
+_19.moveToElementText(p);
+_19.collapse(true);
+_19.select();
+}
+}
+for(;_5;_5=_5.parentNode){
+var tag=_5.tagName;
+if(!tag){
+continue;
+}
+tag=tag.toLowerCase();
+switch(tag){
+case "img":
+img=_5;
+_d.push(null,[Xinha._lc("_Image Properties...","ContextMenu"),function(){
+_7._insertImage(img);
+},Xinha._lc("Show the image properties dialog","ContextMenu"),_8.btnList["insertimage"][1]]);
+break;
+case "a":
+_e=_5;
+_d.push(null,[Xinha._lc("_Modify Link...","ContextMenu"),function(){
+_7.config.btnList["createlink"][3](_7);
+},Xinha._lc("Current URL is","ContextMenu")+": "+_e.href,_8.btnList["createlink"][1]],[Xinha._lc("Chec_k Link...","ContextMenu"),function(){
+window.open(_e.href);
+},Xinha._lc("Opens this link in a new window","ContextMenu")],[Xinha._lc("_Remove Link...","ContextMenu"),function(){
+if(confirm(Xinha._lc("Please confirm that you want to unlink this element.","ContextMenu")+"\n"+Xinha._lc("Link points to:","ContextMenu")+" "+_e.href)){
+while(_e.firstChild){
+_e.parentNode.insertBefore(_e.firstChild,_e);
+}
+_e.parentNode.removeChild(_e);
+}
+},Xinha._lc("Unlink the current element","ContextMenu")]);
+break;
+case "td":
+td=_5;
+if(!_a){
+break;
+}
+_d.push(null,[Xinha._lc("C_ell Properties...","ContextMenu"),function(){
+tableOperation("TO-cell-prop");
+},Xinha._lc("Show the Table Cell Properties dialog","ContextMenu"),_8.btnList["TO-cell-prop"][1]],[Xinha._lc("Insert Cell After","ContextMenu"),function(){
+tableOperation("TO-cell-insert-after");
+},Xinha._lc("Insert Cell After","ContextMenu"),_8.btnList["TO-cell-insert-after"][1]],[Xinha._lc("Insert Cell Before","ContextMenu"),function(){
+tableOperation("TO-cell-insert-before");
+},Xinha._lc("Insert Cell After","ContextMenu"),_8.btnList["TO-cell-insert-before"][1]],[Xinha._lc("Delete Cell","ContextMenu"),function(){
+tableOperation("TO-cell-delete");
+},Xinha._lc("Delete Cell","ContextMenu"),_8.btnList["TO-cell-delete"][1]],[Xinha._lc("Merge Cells","ContextMenu"),function(){
+tableOperation("TO-cell-merge");
+},Xinha._lc("Merge Cells","ContextMenu"),_8.btnList["TO-cell-merge"][1]]);
+break;
+case "tr":
+tr=_5;
+if(!_a){
+break;
+}
+_d.push(null,[Xinha._lc("Ro_w Properties...","ContextMenu"),function(){
+tableOperation("TO-row-prop");
+},Xinha._lc("Show the Table Row Properties dialog","ContextMenu"),_8.btnList["TO-row-prop"][1]],[Xinha._lc("I_nsert Row Before","ContextMenu"),function(){
+tableOperation("TO-row-insert-above");
+},Xinha._lc("Insert a new row before the current one","ContextMenu"),_8.btnList["TO-row-insert-above"][1]],[Xinha._lc("In_sert Row After","ContextMenu"),function(){
+tableOperation("TO-row-insert-under");
+},Xinha._lc("Insert a new row after the current one","ContextMenu"),_8.btnList["TO-row-insert-under"][1]],[Xinha._lc("_Delete Row","ContextMenu"),function(){
+tableOperation("TO-row-delete");
+},Xinha._lc("Delete the current row","ContextMenu"),_8.btnList["TO-row-delete"][1]]);
+break;
+case "table":
+_f=_5;
+if(!_a){
+break;
+}
+_d.push(null,[Xinha._lc("_Table Properties...","ContextMenu"),function(){
+tableOperation("TO-table-prop");
+},Xinha._lc("Show the Table Properties dialog","ContextMenu"),_8.btnList["TO-table-prop"][1]],[Xinha._lc("Insert _Column Before","ContextMenu"),function(){
+tableOperation("TO-col-insert-before");
+},Xinha._lc("Insert a new column before the current one","ContextMenu"),_8.btnList["TO-col-insert-before"][1]],[Xinha._lc("Insert C_olumn After","ContextMenu"),function(){
+tableOperation("TO-col-insert-after");
+},Xinha._lc("Insert a new column after the current one","ContextMenu"),_8.btnList["TO-col-insert-after"][1]],[Xinha._lc("De_lete Column","ContextMenu"),function(){
+tableOperation("TO-col-delete");
+},Xinha._lc("Delete the current column","ContextMenu"),_8.btnList["TO-col-delete"][1]]);
+break;
+case "body":
+_d.push(null,[Xinha._lc("Justify Left","ContextMenu"),function(){
+_7.execCommand("justifyleft");
+},null,_8.btnList["justifyleft"][1]],[Xinha._lc("Justify Center","ContextMenu"),function(){
+_7.execCommand("justifycenter");
+},null,_8.btnList["justifycenter"][1]],[Xinha._lc("Justify Right","ContextMenu"),function(){
+_7.execCommand("justifyright");
+},null,_8.btnList["justifyright"][1]],[Xinha._lc("Justify Full","ContextMenu"),function(){
+_7.execCommand("justifyfull");
+},null,_8.btnList["justifyfull"][1]]);
+break;
+}
+}
+if(_b&&!_e){
+_9.push(null,[Xinha._lc("Make lin_k...","ContextMenu"),function(){
+_7.config.btnList["createlink"][3](_7);
+},Xinha._lc("Create a link","ContextMenu"),_8.btnList["createlink"][1]]);
+}
+for(var i=0;i<_d.length;++i){
+_9.push(_d[i]);
+}
+if(!/html|body/i.test(_c.tagName)){
+_9.push(null,[Xinha._lc({string:"Remove the $elem Element...",replace:{elem:"<"+_c.tagName+">"}},"ContextMenu"),function(){
+if(confirm(Xinha._lc("Please confirm that you want to remove this element:","ContextMenu")+" "+_c.tagName)){
+var el=_c;
+var p=el.parentNode;
+p.removeChild(el);
+if(Xinha.is_gecko){
+if(p.tagName.toLowerCase()=="td"&&!p.hasChildNodes()){
+p.appendChild(_7._doc.createElement("br"));
+}
+_7.forceRedraw();
+_7.focusEditor();
+_7.updateToolbar();
+if(_f){
+var _1e=_f.style.borderCollapse;
+_f.style.borderCollapse="collapse";
+_f.style.borderCollapse="separate";
+_f.style.borderCollapse=_1e;
+}
+}
+}
+},Xinha._lc("Remove this node from the document","ContextMenu")],[Xinha._lc("Insert paragraph before","ContextMenu"),function(){
+insertPara(false);
+},Xinha._lc("Insert a paragraph before the current node","ContextMenu")],[Xinha._lc("Insert paragraph after","ContextMenu"),function(){
+insertPara(true);
+},Xinha._lc("Insert a paragraph after the current node","ContextMenu")]);
+}
+if(!_9[0]){
+_9.shift();
+}
+return _9;
+};
+ContextMenu.prototype.popupMenu=function(ev){
+var _20=this;
+if(this.currentMenu){
+this.closeMenu();
+}
+function getPos(el){
+var r={x:el.offsetLeft,y:el.offsetTop};
+if(el.offsetParent){
+var tmp=getPos(el.offsetParent);
+r.x+=tmp.x;
+r.y+=tmp.y;
+}
+return r;
+}
+function documentClick(ev){
+ev||(ev=window.event);
+if(!_20.currentMenu){
+alert(Xinha._lc("How did you get here? (Please report!)","ContextMenu"));
+return false;
+}
+var el=Xinha.is_ie?ev.srcElement:ev.target;
+for(;el!=null&&el!=_20.currentMenu;el=el.parentNode){
+}
+if(el==null){
+_20.closeMenu();
+}
+}
+var _26=[];
+function keyPress(ev){
+ev||(ev=window.event);
+Xinha._stopEvent(ev);
+if(ev.keyCode==27){
+_20.closeMenu();
+return false;
+}
+var key=String.fromCharCode(Xinha.is_ie?ev.keyCode:ev.charCode).toLowerCase();
+for(var i=_26.length;--i>=0;){
+var k=_26[i];
+if(k[0].toLowerCase()==key){
+k[1].__msh.activate();
+}
+}
+}
+_20.closeMenu=function(){
+_20.currentMenu.parentNode.removeChild(_20.currentMenu);
+_20.currentMenu=null;
+Xinha._removeEvent(document,"mousedown",documentClick);
+Xinha._removeEvent(_20.editordoc,"mousedown",documentClick);
+if(_26.length>0){
+Xinha._removeEvent(_20.editordoc,"keypress",keyPress);
+}
+if(Xinha.is_ie){
+_20.iePopup.hide();
+}
+};
+var _2b=Xinha.is_ie?ev.srcElement:ev.target;
+var _2c=getPos(_20.editor._htmlArea);
+var x=ev.clientX+_2c.x;
+var y=ev.clientY+_2c.y;
+var div;
+var doc;
+if(!Xinha.is_ie){
+doc=document;
+}else{
+var _31=this.iePopup=window.createPopup();
+doc=_31.document;
+doc.open();
+doc.write("");
+doc.close();
+}
+div=doc.createElement("div");
+if(Xinha.is_ie){
+div.unselectable="on";
+}
+div.oncontextmenu=function(){
+return false;
+};
+div.className="htmlarea-context-menu";
+if(!Xinha.is_ie){
+div.style.left=div.style.top="0px";
+}
+doc.body.appendChild(div);
+var _32=doc.createElement("table");
+div.appendChild(_32);
+_32.cellSpacing=0;
+_32.cellPadding=0;
+var _33=doc.createElement("tbody");
+_32.appendChild(_33);
+var _34=this.getContextMenu(_2b);
+for(var i=0;i<_34.length;++i){
+var _36=_34[i];
+var _37=doc.createElement("tr");
+_33.appendChild(_37);
+if(Xinha.is_ie){
+_37.unselectable="on";
+}else{
+_37.onmousedown=function(ev){
+Xinha._stopEvent(ev);
+return false;
+};
+}
+if(!_36){
+_37.className="separator";
+var td=doc.createElement("td");
+td.className="icon";
+var _3a=">";
+if(Xinha.is_ie){
+td.unselectable="on";
+_3a=" unselectable='on' style='height=1px'> ";
+}
+td.innerHTML="";
+var td1=td.cloneNode(true);
+td1.className="label";
+_37.appendChild(td);
+_37.appendChild(td1);
+}else{
+var _3c=_36[0];
+_37.className="item";
+_37.__msh={item:_37,label:_3c,action:_36[1],tooltip:_36[2]||null,icon:_36[3]||null,activate:function(){
+_20.closeMenu();
+_20.editor.focusEditor();
+this.action();
+}};
+_3c=_3c.replace(/_([a-zA-Z0-9])/,"
$1 ");
+if(_3c!=_36[0]){
+_26.push([RegExp.$1,_37]);
+}
+_3c=_3c.replace(/__/,"_");
+var td1=doc.createElement("td");
+if(Xinha.is_ie){
+td1.unselectable="on";
+}
+_37.appendChild(td1);
+td1.className="icon";
+if(_37.__msh.icon){
+var t=Xinha.makeBtnImg(_37.__msh.icon,doc);
+td1.appendChild(t);
+}
+var td2=doc.createElement("td");
+if(Xinha.is_ie){
+td2.unselectable="on";
+}
+_37.appendChild(td2);
+td2.className="label";
+td2.innerHTML=_3c;
+_37.onmouseover=function(){
+this.className+=" hover";
+_20.editor._statusBarTree.innerHTML=this.__msh.tooltip||" ";
+};
+_37.onmouseout=function(){
+this.className="item";
+};
+_37.oncontextmenu=function(ev){
+this.__msh.activate();
+if(!Xinha.is_ie){
+Xinha._stopEvent(ev);
+}
+return false;
+};
+_37.onmouseup=function(ev){
+var _41=(new Date()).getTime();
+if(_41-_20.timeStamp>500){
+this.__msh.activate();
+}
+if(!Xinha.is_ie){
+Xinha._stopEvent(ev);
+}
+return false;
+};
+}
+}
+if(!Xinha.is_ie){
+div.style.left=x+"px";
+div.style.top=y+"px";
+}else{
+this.iePopup.show(ev.screenX,ev.screenY,300,50);
+var w=div.offsetWidth;
+var h=div.offsetHeight;
+this.iePopup.show(ev.screenX,ev.screenY,w,h);
+}
+this.currentMenu=div;
+this.timeStamp=(new Date()).getTime();
+Xinha._addEvent(document,"mousedown",documentClick);
+Xinha._addEvent(this.editordoc,"mousedown",documentClick);
+if(_26.length>0){
+Xinha._addEvent(this.editordoc,"keypress",keyPress);
+}
+Xinha._stopEvent(ev);
+return false;
+};
+
diff --git a/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/de.js b/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/de.js
new file mode 100644
index 000000000..065d1d4d6
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/de.js
@@ -0,0 +1,50 @@
+// I18N constants
+// LANG: "de", ENCODING: UTF-8
+// translated: Raimund Meyer xinha@ray-of-light.org
+{
+ "Cut": "Ausschneiden",
+ "Copy": "Kopieren",
+ "Paste": "Einfügen",
+ "_Image Properties...": "Eigenschaften",
+ "Show the image properties dialog": "Fenster für die Bildoptionen anzeigen",
+ "_Modify Link...": "Link ändern",
+ "Current URL is": "Aktuelle URL ist",
+ "Chec_k Link...": "Link testen",
+ "Opens this link in a new window": "Diesen Link in neuem Fenster öffnen",
+ "_Remove Link...": "Link entfernen",
+ "Please confirm that you want to unlink this element.": "Wollen sie diesen Link wirklich entfernen?",
+ "Link points to:": "Link zeigt auf:",
+ "Unlink the current element": "Link auf Element entfernen",
+ "C_ell Properties...": "Zellenoptionen",
+ "Show the Table Cell Properties dialog": "Zellenoptionen anzeigen",
+ "Ro_w Properties...": "Zeilenoptionen",
+ "Show the Table Row Properties dialog": "Zeilenoptionen anzeigen",
+ "I_nsert Row Before": "Zeile einfügen vor Position",
+ "Insert a new row before the current one": "Zeile einfügen vor der aktuellen Position",
+ "In_sert Row After": "Zeile einügen nach Position",
+ "Insert a new row after the current one": "Zeile einfügen nach der aktuellen Position",
+ "_Delete Row": "Zeile löschen",
+ "Delete the current row": "Zeile löschen",
+ "_Table Properties...": "Tabellenoptionen",
+ "Show the Table Properties dialog": "Tabellenoptionen anzeigen",
+ "Insert _Column Before": "Spalte einfügen vor Position",
+ "Insert a new column before the current one": "Spalte einfügen vor der aktuellen Position",
+ "Insert C_olumn After": "Spalte einfügen nach Position",
+ "Insert a new column after the current one": "Spalte einfügen nach der aktuellen Position",
+ "De_lete Column": "Spalte löschen",
+ "Delete the current column": "Spalte löschen",
+ "Justify Left": "Linksbündig",
+ "Justify Center": "Zentriert",
+ "Justify Right": "Rechtsbündig",
+ "Justify Full": "Blocksatz",
+ "Make lin_k...": "Link erstellen",
+ "Create a link": "Link erstellen",
+ "Remove the $elem Element...": "Element $elem entfernen...",
+ "Please confirm that you want to remove this element:": "Wollen sie dieses Element wirklich entfernen?",
+ "Remove this node from the document": "Dieses Element aus dem Dokument entfernen",
+ "Insert paragraph before": "Absatz einfügen vor Position",
+ "Insert a paragraph before the current node": "Absatz einfügen vor der aktuellen Position",
+ "Insert paragraph after": "Absatz einfügen hinter Position",
+ "Insert a paragraph after the current node": "Absatz einfügen hinter der aktuellen Position",
+ "How did you get here? (Please report!)": "Wie sind Sie denn hier hin gekommen? (Please report!)"
+};
diff --git a/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/el.js b/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/el.js
new file mode 100644
index 000000000..905b3a60a
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/el.js
@@ -0,0 +1,47 @@
+// I18N constants
+// LANG: "el", ENCODING: UTF-8
+// Author: Dimitris Glezos, dimitris@glezos.com
+{
+ "Cut": "ΑπΞÎΞΊΞÎπ�",
+ "Copy": "ΑντιγΟÂαφ�",
+ "Paste": "Ξ•Ο€ΞΉΞΊΟŒΞ»Ξ»Ξ·ΟƒΞ·",
+ "_Image Properties...": "Ξ™Ξ΄ΞΉΟŒΟ„Ξ·Ο„Ξ΅Ο‚ Ξ•ΞΉΞΊΟŒΞ½Ξ±Ο‚...",
+ "_Modify Link...": "Ξ�ΟÂΞÎΟ€ΞÎΟ€ΞÎίηση συνδΞÂσμΞÎΟ…...",
+ "Chec_k Link...": "ΞˆΞ»Ξ΅Ξ³Ο‡ΞÎΟ‚ συνδΞÂσμων...",
+ "_Remove Link...": "ΔιαγΟÂαφ� συνδΞÂσμΞÎΟ…...",
+ "C_ell Properties...": "Ξ™Ξ΄ΞΉΟŒΟ„Ξ·Ο„Ξ΅Ο‚ κΡλιΞÎΟÂ...",
+ "Ro_w Properties...": "Ξ™Ξ΄ΞΉΟŒΟ„Ξ·Ο„Ξ΅Ο‚ Ξ³ΟÂαμμ�ς...",
+ "I_nsert Row Before": "ΕισαγωγΞ� Ξ³ΟÂαμμ�ς Ο€ΟÂΞΉΞ½",
+ "In_sert Row After": "ΕισαγωγΞ� Ξ³ΟÂαμμ�ς μΡτά",
+ "_Delete Row": "ΔιαγΟÂαφ� Ξ³ΟÂαμμ�ς",
+ "_Table Properties...": "Ξ™Ξ΄ΞΉΟŒΟ„Ξ·Ο„Ξ΅Ο‚ πίνακα...",
+ "Insert _Column Before": "ΕισαγωγΞ� στΞ�λης Ο€ΟÂΞΉΞ½",
+ "Insert C_olumn After": "ΕισαγωγΞ� στΞ�λης μΡτά",
+ "De_lete Column": "ΔιαγΟÂαφ� στΞ�λης",
+ "Justify Left": "ΣτΞÎίχηση Ξ‘ΟÂιστΡΟÂΞ¬",
+ "Justify Center": "ΣτΞÎίχηση ΚΞÂΞ½Ο„ΟÂΞÎ",
+ "Justify Right": "ΣτΞÎίχηση ΔΡξιά",
+ "Justify Full": "Ξ Ξ»Ξ�ΟÂΞ·Ο‚ ΣτΞÎίχηση",
+ "Make lin_k...": "ΔημιΞÎΟ…ΟÂΞ³Ξ―Ξ± συνδΞÂσμΞÎΟ…...",
+ "Remove the $elem Element...": "ΑφαίΟÂΡση $elem στΞÎιχΡίΞÎΟ…...",
+ "Please confirm that you want to remove this element:": "ΕίστΡ Ξ²ΞÂΞ²Ξ±ΞΉΞÎΟ‚ πως ΞΈΞÂλΡτΡ Ξ½Ξ± αφαιΟÂΞÂσΡτΡ Ο„ΞΠστΞÎιχΡίΞΠ",
+ "Remove this node from the document": "ΑφαίΟÂΡση Ξ±Ο…Ο„ΞÎΟ Ο„ΞÎΟ… κόμβΞÎΟ… Ξ±Ο€ΟŒ Ο„ΞΠΞÂΞ³Ξ³ΟÂΞ±Ο†ΞÎ",
+ "How did you get here? (Please report!)": "Ξ ΟŽΟ‚ Ξ�ΟÂθατΡ ΞΌΞÂΟ‡ΟÂΞΉ Ρδώ; (Ξ Ξ±ΟÂΞ±ΞΊΞ±Ξ»ΞÎΟÂΞΌΞ΅ Ξ±Ξ½Ξ±Ο†ΞÂΟÂΡτΡ Ο„ΞÎ!)",
+ "Show the image properties dialog": "Εμφάνιση διαλόγΞÎΟ… ΞΌΞ΅ τις Ξ™Ξ΄ΞΉΟŒΟ„Ξ·Ο„Ξ΅Ο‚ Ξ΅ΞΉΞΊΟŒΞ½Ξ±Ο‚",
+ "Modify URL": "Ξ�ΟÂΞÎΟ€ΞÎΟ€ΞÎίηση URL",
+ "Current URL is": "Ξ�ΞΠΟ„ΟÂΞÂχων URL Ρίναι",
+ "Opens this link in a new window": "ΑνΞÎίγΡι Ξ±Ο…Ο„ΟŒ Ο„ΞÎΞ½ ΟƒΟÂνδΡσμΞΠσΡ ΞÂΞ½Ξ± Ξ½ΞÂΞΠπαΟÂάθυΟÂΞÎ",
+ "Please confirm that you want to unlink this element.": "ΕίστΡ Ξ²ΞÂΞ²Ξ±ΞΉΞÎΟ‚ πως ΞΈΞÂλΡτΡ Ξ½Ξ± αφαιΟÂΞÂσΡτΡ Ο„ΞÎΞ½ ΟƒΟÂνδΡσμΞΠΞ±Ο€ΟŒ Ξ±Ο…Ο„ΟŒ Ο„ΞΠστΞÎιχΡίΞÎ:",
+ "Link points to:": "Ο ΟƒΟÂνδΡμΞÎΟ‚ ΞÎδηγΡί Ρδώ:",
+ "Unlink the current element": "ΑφαίΟÂΡση συνδΞÂσμΞÎΟ… Ξ±Ο€ΟŒ Ο„ΞΠπαΟÂών στΞÎιχΡίΞÎ",
+ "Show the Table Cell Properties dialog": "Εμφάνιση διαλόγΞÎΟ… ΞΌΞ΅ τις Ξ™Ξ΄ΞΉΟŒΟ„Ξ·Ο„Ξ΅Ο‚ κΡλιΞÎΟ Ξ Ξ―Ξ½Ξ±ΞΊΞ±",
+ "Show the Table Row Properties dialog": "Εμφάνιση διαλόγΞÎΟ… ΞΌΞ΅ τις Ξ™Ξ΄ΞΉΟŒΟ„Ξ·Ο„Ξ΅Ο‚ Ξ³ΟÂαμμ�ς Ξ Ξ―Ξ½Ξ±ΞΊΞ±",
+ "Insert a new row before the current one": "ΕισαγωγΞ� ΞΌΞΉΞ±Ο‚ Ξ½ΞÂΞ±Ο‚ Ξ³ΟÂαμμ�ς Ο€ΟÂΞΉΞ½ την ΡπιλΡγμΞÂΞ½Ξ·",
+ "Insert a new row after the current one": "ΕισαγωγΞ� ΞΌΞΉΞ±Ο‚ Ξ½ΞÂΞ±Ο‚ Ξ³ΟÂαμμ�ς μΡτά την ΡπιλΡγμΞÂΞ½Ξ·",
+ "Delete the current row": "ΔιαγΟÂαφ� ΡπιλΡγμΞÂΞ½Ξ·Ο‚ Ξ³ΟÂαμμ�ς",
+ "Show the Table Properties dialog": "Εμφάνιση διαλόγΞÎΟ… ΞΌΞ΅ τις Ξ™Ξ΄ΞΉΟŒΟ„Ξ·Ο„Ξ΅Ο‚ Ξ Ξ―Ξ½Ξ±ΞΊΞ±",
+ "Insert a new column before the current one": "ΕισαγωγΞ� Ξ½ΞÂΞ±Ο‚ στΞ�λης Ο€ΟÂΞΉΞ½ την ΡπιλΡγμΞÂΞ½Ξ·",
+ "Insert a new column after the current one": "ΕισαγωγΞ� Ξ½ΞÂΞ±Ο‚ στΞ�λης μΡτά την ΡπιλΡγμΞÂΞ½Ξ·",
+ "Delete the current column": "ΔιαγΟÂαφ� ΡπιλΡγμΞÂΞ½Ξ·Ο‚ στΞ�λης",
+ "Create a link": "ΔημιΞÎΟ…ΟÂΞ³Ξ―Ξ± συνδΞÂσμΞÎΟ…"
+};
diff --git a/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/fr.js
new file mode 100644
index 000000000..10b4fc2e0
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/fr.js
@@ -0,0 +1,50 @@
+// I18N constants
+// LANG: "fr", ENCODING: UTF-8
+{
+ "Cut": "Couper",
+ "Copy": "Copier",
+ "Paste": "Coller",
+ "_Image Properties...": "_Propriétés de l'image...",
+ "_Modify Link...": "_Modifier le lien...",
+ "Chec_k Link...": "_Vérifier le lien...",
+ "_Remove Link...": "_Supprimer le lien...",
+ "C_ell Properties...": "P_ropriétés de la cellule...",
+ "Ro_w Properties...": "Pr_opriétés de la rangée...",
+ "I_nsert Row Before": "Insérer une rangée a_vant",
+ "In_sert Row After": "Insér_er une rangée après",
+ "_Delete Row": "Suppr_imer une rangée",
+ "_Table Properties...": "Proprié_tés de la table...",
+ "Insert _Column Before": "I_nsérer une colonne avant",
+ "Insert C_olumn After": "Insérer une colonne après",
+ "De_lete Column": "_Supprimer la colonne",
+ "Justify Left": "Aligner à gauche",
+ "Justify Center": "Aligner au centre",
+ "Justify Right": "Aligner à droite",
+ "Justify Full": "Justifier",
+ "Make lin_k...": "Convertir en lien...",
+ "Remove the $elem Element...": "Supprimer Élément $elem...",
+ "Insert paragraph before": "Insérer un paragraphe avant",
+ "Insert paragraph after": "Insérer un paragraphe après",
+ "Please confirm that you want to remove this element:": "Confirmer la suppression de cet élément:",
+ "Remove this node from the document": "Supprimer ce noeud du document",
+ "How did you get here? (Please report!)": "Comment êtes-vous arrivé ici ? (Reportez le bug SVP !)",
+ "Show the image properties dialog": "Afficher le dialogue des propriétés d'image",
+ "Modify URL": "Modifier l'URL",
+ "Current URL is": "L'URL courante est",
+ "Opens this link in a new window": "Ouvrir ce lien dans une nouvelle fenêtre",
+ "Please confirm that you want to unlink this element.": "Voulez-vous vraiment enlever le lien présent sur cet élément.",
+ "Link points to:": "Le lien pointe sur:",
+ "Unlink the current element": "Enlever le lien sur cet élément",
+ "Show the Table Cell Properties dialog": "Afficher la boite de propriété des cellules",
+ "Show the Table Row Properties dialog": "Afficher la boite de propriété des rangées",
+ "Insert a new row before the current one": "Insérer une nouvelle rangée avant celle-ci",
+ "Insert a new row after the current one": "Insérer une nouvelle rangée après celle-ci",
+ "Delete the current row": "Supprimer la rangée courante",
+ "Show the Table Properties dialog": "Afficher la boite de propriété de tableau",
+ "Insert a new column before the current one": "Insérer une nouvelle rangée avant celle-ci",
+ "Insert a new column after the current one": "Insérer une nouvelle colonne après celle-ci",
+ "Delete the current column": "Supprimer cette colonne",
+ "Create a link": "Créer un lien",
+ "Insert a paragraph before the current node": "Insérer un paragraphe avant le noeud courant",
+ "Insert a paragraph after the current node": "Insérer un paragraphe après le noeud courant"
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/he.js b/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/he.js
new file mode 100644
index 000000000..4e3b05a6d
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/he.js
@@ -0,0 +1,47 @@
+// I18N constants
+// LANG: "he", ENCODING: UTF-8
+// Author: Liron Newman, http://www.eesh.net,
+{
+ "Cut": "גזור",
+ "Copy": "העתק",
+ "Paste": "הדבק",
+ "_Image Properties...": "_מ××¤×™×™× ×™ ×ª×ž×•× ×”...",
+ "_Modify Link...": "_×©× ×” קישור...",
+ "Chec_k Link...": "בדו_ק קישור...",
+ "_Remove Link...": "_הסר קישור...",
+ "C_ell Properties...": "מ××¤×™×™× ×™ ת_×...",
+ "Ro_w Properties...": "מ××¤×™×™× ×™ _טור...",
+ "I_nsert Row Before": "×”_×›× ×¡ שורה ×œ×¤× ×™",
+ "In_sert Row After": "×”×›× _ס שורה ×חרי",
+ "_Delete Row": "_מחק שורה",
+ "_Table Properties...": "מ××¤×™×™× ×™ ט_בלה...",
+ "Insert _Column Before": "×”×›× ×¡ _טור ×œ×¤× ×™",
+ "Insert C_olumn After": "×”×›× ×¡ ט_ור ×חרי",
+ "De_lete Column": "מח_ק טור",
+ "Justify Left": "ישור לשמ×ל",
+ "Justify Center": "ישור למרכז",
+ "Justify Right": "ישור לימין",
+ "Justify Full": "ישור לשורה מל××”",
+ "Make lin_k...": "צור קי_שור...",
+ "Remove the $elem Element...": "הסר ×ת ××œ×ž× ×˜ ×”- $elem...",
+ "Please confirm that you want to remove this element:": "×× × ×שר ×©×‘×¨×¦×•× ×š להסיר ×ת ×”××œ×ž× ×˜ ×”×–×”:",
+ "Remove this node from the document": "הסרה של node זה מהמסמך",
+ "How did you get here? (Please report!)": "×יך הגעת ×”× ×”? (×× × ×“×•×•×—!)",
+ "Show the image properties dialog": "מציג ×ת חלון הדו-שיח של מ××¤×™×™× ×™ ×ª×ž×•× ×”",
+ "Modify URL": "×©×™× ×•×™ URL",
+ "Current URL is": "URL × ×•×›×—×™ הו×",
+ "Opens this link in a new window": "פתיחת קישור זה בחלון חדש",
+ "Please confirm that you want to unlink this element.": "×× × ×שר ש×תה רוצה ×œ× ×ª×§ ×ת ××œ×ž× ×˜ ×–×”.",
+ "Link points to:": "הקישור מצביע ×ל:",
+ "Unlink the current element": "× ×™×ª×•×§ ×ת ×”××œ×ž× ×˜ ×”× ×•×›×—×™",
+ "Show the Table Cell Properties dialog": "מציג ×ת חלון הדו-שיח של מ××¤×™×™× ×™ ×ª× ×‘×˜×‘×œ×”",
+ "Show the Table Row Properties dialog": "מציג ×ת חלון הדו-שיח של מ××¤×™×™× ×™ שורה בטבלה",
+ "Insert a new row before the current one": "הוספת שורה חדשה ×œ×¤× ×™ ×”× ×•×›×—×™×ª",
+ "Insert a new row after the current one": "הוספת שורה חדשה ×חרי ×”× ×•×›×—×™×ª",
+ "Delete the current row": "מחיקת ×ת השורה ×”× ×•×›×—×™×ª",
+ "Show the Table Properties dialog": "מציג ×ת חלון הדו-שיח של מ××¤×™×™× ×™ טבלה",
+ "Insert a new column before the current one": "הוספת טור חדש ×œ×¤× ×™ ×”× ×•×›×—×™",
+ "Insert a new column after the current one": "הוספת טור חדש ×חרי ×”× ×•×›×—×™",
+ "Delete the current column": "מחיקת ×ת הטור ×”× ×•×›×—×™",
+ "Create a link": "יצירת קישור"
+};
diff --git a/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/ja.js
new file mode 100644
index 000000000..be591f39a
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/ja.js
@@ -0,0 +1,53 @@
+// I18N constants
+// LANG: "ja", ENCODING: UTF-8
+{
+ "Cut": "切りå–り",
+ "Copy": "コピー",
+ "Paste": "貼り付ã‘",
+ "_Image Properties...": "ç”»åƒã®ãƒ—ãƒãƒ‘ティ(_I)...",
+ "Show the image properties dialog": "ã“ã®ç”»åƒã®ãƒ—ãƒãƒ‘ティダイアãƒã‚°ã‚’表示ã—ã¾ã™",
+ "_Modify Link...": "リンクã®ä¿®æ£(_M)...",
+ "Current URL is": "ç¾åœ¨ã®URL",
+ "Chec_k Link...": "リンクを確èª(_K)...",
+ "Opens this link in a new window": "ã“ã®ãƒªãƒ³ã‚¯ã‚’æ–°ã—ã„ウィンドウã§é–‹ãã¾ã™",
+ "_Remove Link...": "リンクã®å‰Šé™¤(_R)",
+ "Please confirm that you want to unlink this element.": "ã“ã®è¦ç´ ã®ãƒªãƒ³ã‚¯ã‚’削除ã—ã¾ã™ã€‚よã‚ã—ã„ã§ã™ã‹ã€‚",
+ "Link points to:": "リンク先:",
+ "Unlink the current element": "ã“ã®è¦ç´ ã®ãƒªãƒ³ã‚¯ã‚’解除",
+ "C_ell Properties...": "セルã®ãƒ—ãƒãƒ‘ティ(_E)...",
+ "Ro_w Properties...": "行ã®ãƒ—ãƒãƒ‘ティ(_W)...",
+ "Show the Table Row Properties dialog": "テーブル行ã®ãƒ—ãƒãƒ‘ティダイアãƒã‚°ã‚’表示ã—ã¾ã™",
+ "I_nsert Row Before": "上ã«è¡Œã‚’挿入(_N)",
+ "Insert a new row before the current one": "é¸æŠžä¸ã®è¡Œã®ä¸Šã«ä¸€è¡ŒæŒ¿å…¥ã—ã¾ã™",
+ "In_sert Row After": "下ã«è¡Œã‚’挿入(_S)",
+ "Insert a new row after the current one": "é¸æŠžä¸ã®è¡Œã®ä¸‹ã«ä¸€è¡ŒæŒ¿å…¥ã—ã¾ã™",
+ "_Delete Row": "行ã®å‰Šé™¤(_D)",
+ "Delete the current row": "é¸æŠžä¸ã®è¡Œã‚’削除ã—ã¾ã™",
+ "_Table Properties...": "テーブルã®ãƒ—ãƒãƒ‘ティ(_T)...",
+ "Show the Table Properties dialog": "テーブルã®ãƒ—ãƒãƒ‘ティダイアãƒã‚°ã‚’表示ã—ã¾ã™",
+ "Insert _Column Before": "å·¦ã«åˆ—を挿入(_C)",
+ "Insert a new column before the current one": "é¸æŠžä¸ã®åˆ—ã®å·¦ã«ä¸€åˆ—挿入ã—ã¾ã™",
+ "Insert C_olumn After": "å³ã«åˆ—を挿入(_O)",
+ "Insert a new column after the current one": "é¸æŠžä¸ã®åˆ—ã®å³ã«ä¸€åˆ—挿入ã—ã¾ã™",
+ "De_lete Column": "列ã®å‰Šé™¤(_L)",
+ "Delete the current column": "é¸æŠžä¸ã®åˆ—を削除ã—ã¾ã™",
+ "Justify Left": "左寄ã›",
+ "Justify Center": "ä¸å¤®å¯„ã›",
+ "Justify Right": "å³å¯„ã›",
+ "Justify Full": "å‡ç‰å‰²ä»˜",
+ "Make lin_k...": "リンクã®ä½œæˆ(_K)...",
+ "Create a link": "æ–°ãŸãªãƒªãƒ³ã‚¯ã‚’作æˆã—ã¾ã™",
+ "Remove the $elem Element...": "$elem è¦ç´ を削除 ...",
+ "Please confirm that you want to remove this element:": "ã“ã®è¦ç´ を削除ã—ã¾ã™ã€‚よã‚ã—ã„ã§ã™ã‹ã€‚:",
+ "Remove this node from the document": "ドã‚ュメントã‹ã‚‰ã“ã®ãƒŽãƒ¼ãƒ‰ã‚’削除ã—ã¾ã™",
+ "Insert paragraph before": "å‰ã«æ®µè½ã‚’挿入",
+ "Insert a paragraph before the current node": "é¸æŠžä¸ã®ãƒŽãƒ¼ãƒ‰ã®æ‰‹å‰ã«æ®µè½ã‚’挿入ã—ã¾ã™",
+ "Insert paragraph after": "å¾Œã«æ®µè½ã‚’挿入",
+ "Insert a paragraph after the current node": "é¸æŠžä¸ã®ãƒŽãƒ¼ãƒ‰ã®å¾Œã«æ®µè½ã‚’挿入ã—ã¾ã™",
+ "How did you get here? (Please report!)": "ã©ã†ã‚„ã£ã¦ã“ã“ã«æ¥ã¾ã—ãŸã‹?(ã©ã†ã‹å ±å‘Šã‚’!)",
+ "Show the Table Cell Properties dialog": "テーブルセルã®ãƒ—ãƒãƒ‘ティダイアãƒã‚°ã‚’表示ã—ã¾ã™",
+ "Insert Cell Before": "å‰ã«ã‚»ãƒ«ã‚’挿入",
+ "Insert Cell After": "後ã«ã‚»ãƒ«ã‚’挿入",
+ "Delete Cell": "セルã®å‰Šé™¤",
+ "Merge Cells": "セルã®çµåˆ"
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/nb.js
new file mode 100644
index 000000000..cbe445146
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/nb.js
@@ -0,0 +1,53 @@
+// I18N constants
+// LANG: "no", ENCODING: UTF-8
+// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com
+// Used key commands
+// C,D,e, ,I, ,k,k,l,M, ,n,o,R, ,s,T, ,w : English
+// H B j R m F v : Norwegian
+{
+ "Cut": "Klipp ut",
+ "Copy": "Kopier",
+ "Paste": "Lim inn",
+ "_Image Properties...": "_Bildeegenskaper...",
+ "Show the image properties dialog": "Vis bildeegenskaper",
+ "_Modify Link...": "_Rediger Link...",
+ "Current URL is": "Gjeldende URL er",
+ "Chec_k Link...": "Sje_kk Link...",
+ "Opens this link in a new window": "Ã…pner denne link i nytt vindu",
+ "_Remove Link...": "_Fjerne Link...",
+ "Please confirm that you want to unlink this element.": "Vennligst bekreft at du ønsker å fjerne link på elementet",
+ "Link points to:": "Link peker til:",
+ "Unlink the current element": "Fjerne link på gjeldende element",
+ "C_ell Properties...": "C_elleegenskaper...",
+ "Show the Table Cell Properties dialog": "Vis egenskaper for celle",
+ "Ro_w Properties...": "Rad Egenskaper... (_w)",
+ "Show the Table Row Properties dialog": "Vis egenskaper for rad",
+ "I_nsert Row Before": "Sett I_nn rad før",
+ "Insert a new row before the current one": "Sett inn ny rad før gjeldende",
+ "In_sert Row After": "_Sett inn rad etter",
+ "Insert a new row after the current one": "Sett inn ny rad etter gjeldende",
+ "_Delete Row": "Slett rad (_d)",
+ "Delete the current row": "Slett gjeldende rad",
+ "_Table Properties...": "_Tabellegenskaper...",
+ "Show the Table Properties dialog": "Vis egenskaper for tabellen",
+ "Insert _Column Before": "Sett inn kolonne etter (_c)",
+ "Insert a new column before the current one": "Sett inn kolonne før gjeldende",
+ "Insert C_olumn After": "Sett inn k_olonne etter",
+ "Insert a new column after the current one": "Sett inn kolonne etter gjeldende",
+ "De_lete Column": "S_lett kolonne",
+ "Delete the current column": "Slett gjeldende kolonne",
+ "Justify Left": "_Venstrejuster",
+ "Justify Center": "_Midtjuster",
+ "Justify Right": "_Høyrejuster",
+ "Justify Full": "Blokk_juster",
+ "Make lin_k...": "Lag len_ke...",
+ "Create a link": "Lag ny link",
+ "Remove the $elem Element...": "Fjerne $elem elementet...",
+ "Please confirm that you want to remove this element:": "Vennligst bekreft at du ønsker å fjerne elementet:",
+ "Remove this node from the document": "Fjerne denne node fra dokumentet",
+ "Insert paragraph before": "Sett inn paragraf før",
+ "Insert a paragraph before the current node": "Sett inn paragraf før gjeldende node",
+ "Insert paragraph after": "Sett inn paragraf etter",
+ "Insert a paragraph after the current node": "Sett inn paragraf etter gjeldende node",
+ "How did you get here? (Please report!)": "Hva skjedde? (Vennligst beskriv)"
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/nl.js
new file mode 100644
index 000000000..78ebf9749
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/nl.js
@@ -0,0 +1,47 @@
+// I18N constants
+// LANG: "nl", ENCODING: UTF-8
+// Author: Michel Weegeerink (info@mmc-shop.nl), http://mmc-shop.nl
+{
+ "Cut": "Knippen",
+ "Copy": "Kopiëren",
+ "Paste": "Plakken",
+ "_Image Properties...": "Eigenschappen afbeelding...",
+ "_Modify Link...": "Hyperlin_k aanpassen...",
+ "Chec_k Link...": "Controleer hyperlin_k...",
+ "_Remove Link...": "Ve_rwijder hyperlink...",
+ "C_ell Properties...": "C_eleigenschappen...",
+ "Ro_w Properties...": "Rijeigenscha_ppen...",
+ "I_nsert Row Before": "Rij invoegen boven",
+ "In_sert Row After": "Rij invoegen onder",
+ "_Delete Row": "Rij _verwijderen",
+ "_Table Properties...": "_Tabeleigenschappen...",
+ "Insert _Column Before": "Kolom invoegen voor",
+ "Insert C_olumn After": "Kolom invoegen na",
+ "De_lete Column": "Kolom verwijderen",
+ "Justify Left": "Links uitlijnen",
+ "Justify Center": "Centreren",
+ "Justify Right": "Rechts uitlijnen",
+ "Justify Full": "Uitvullen",
+ "Make lin_k...": "Maak hyperlin_k...",
+ "Remove the $elem Element...": "Verwijder het $elem element...",
+ "Please confirm that you want to remove this element:": "Is het werkelijk de bedoeling dit element te verwijderen:",
+ "Remove this node from the document": "Verwijder dit punt van het document",
+ "How did you get here? (Please report!)": "Hoe kwam je hier? (A.U.B. doorgeven!)",
+ "Show the image properties dialog": "Laat het afbeeldingseigenschappen dialog zien",
+ "Modify URL": "Aanpassen URL",
+ "Current URL is": "Huidig URL is",
+ "Opens this link in a new window": "Opend deze hyperlink in een nieuw venster",
+ "Please confirm that you want to unlink this element.": "Is het werkelijk de bedoeling dit element te unlinken.",
+ "Link points to:": "Hyperlink verwijst naar:",
+ "Unlink the current element": "Unlink het huidige element",
+ "Show the Table Cell Properties dialog": "Laat de tabel celeigenschappen dialog zien",
+ "Show the Table Row Properties dialog": "Laat de tabel rijeigenschappen dialog zien",
+ "Insert a new row before the current one": "Voeg een nieuwe rij in boven de huidige",
+ "Insert a new row after the current one": "Voeg een nieuwe rij in onder de huidige",
+ "Delete the current row": "Verwijder de huidige rij",
+ "Show the Table Properties dialog": "Laat de tabel eigenschappen dialog zien",
+ "Insert a new column before the current one": "Voeg een nieuwe kolom in voor de huidige",
+ "Insert a new column after the current one": "Voeg een nieuwe kolom in na de huidige",
+ "Delete the current column": "Verwijder de huidige kolom",
+ "Create a link": "Maak een hyperlink"
+};
diff --git a/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/pl.js b/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/pl.js
new file mode 100644
index 000000000..42220a10e
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/pl.js
@@ -0,0 +1,50 @@
+// I18N constants
+// LANG: "pl", ENCODING: UTF-8
+// translated: Krzysztof Kotowicz, http://www.eskot.krakow.pl/portfolio/, koto@webworkers.pl
+{
+ "Cut": "Wytnij",
+ "Copy": "Kopiuj",
+ "Paste": "Wklej",
+ "_Image Properties...": "Właściwości obrazka",
+ "Show the image properties dialog": "Pokaż okienko właściwości obrazka",
+ "_Modify Link...": "Zmień odnośnik",
+ "Current URL is": "Bieżący URL odnośnika",
+ "Chec_k Link...": "Sprawdź odnośnik",
+ "Opens this link in a new window": "Otwiera ten odnośnik w nowym oknie",
+ "_Remove Link...": "Usuń odnośnik",
+ "Please confirm that you want to unlink this element.": "Na pewno chcesz usunąć odnośnik?",
+ "Link points to:": "Odnośnik wskazuje na:",
+ "Unlink the current element": "Usuń odnośnik z zaznaczonego elementu",
+ "C_ell Properties...": "Właściwości komórki",
+ "Show the Table Cell Properties dialog": "Pokaż okno właściwości komórki",
+ "Ro_w Properties...": "Właściwości wiersza",
+ "Show the Table Row Properties dialog": "Pokaż okno właściwości wiersza",
+ "I_nsert Row Before": "Wstaw wiersz przed",
+ "Insert a new row before the current one": "Wstaw nowy wiersz przed bieżącym",
+ "In_sert Row After": "Wstaw wiersz po",
+ "Insert a new row after the current one": "Wstaw nowy wiersz po bieżącym",
+ "_Delete Row": "Usuń wiersz",
+ "Delete the current row": "Usuń bieżący wiersz",
+ "_Table Properties...": "Właściwości tabeli",
+ "Show the Table Properties dialog": "Pokaż okienko właściwości tabeli",
+ "Insert _Column Before": "Wstaw kolumnÄ™ przed",
+ "Insert a new column before the current one": "Wstaw nową kolumnę przed bieżącą",
+ "Insert C_olumn After": "Wstaw kolumnÄ™ po",
+ "Insert a new column after the current one": "Wstaw nową kolumnę po bieżącej",
+ "De_lete Column": "Usuń kolumnę",
+ "Delete the current column": "Usuwa bieżącą kolumnę",
+ "Justify Left": "Wyrównaj do lewej",
+ "Justify Center": "Wycentruj",
+ "Justify Right": "Wyrównaj do prawej",
+ "Justify Full": "Wyjustuj",
+ "Make lin_k...": "Utwórz odnośnik",
+ "Create a link": "Utwórz odnośnik",
+ "Remove the $elem Element...": "Usuń $elem...",
+ "Please confirm that you want to remove this element:": "Na pewno chcesz usunąć ten element?",
+ "Remove this node from the document": "Usuń ten element z dokumentu",
+ "Insert paragraph before": "Wstaw akapit przed",
+ "Insert a paragraph before the current node": "Wstaw akapit przed bieżącym elementem",
+ "Insert paragraph after": "Wstaw akapit po",
+ "Insert a paragraph after the current node": "Wstaw akapit po bieżącym elemencie",
+ "How did you get here? (Please report!)": "Jak tu trafiłeś (Proszę, podaj okoliczności!)"
+}
diff --git a/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/pt_br.js
new file mode 100644
index 000000000..6d2bd4bc5
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/pt_br.js
@@ -0,0 +1,65 @@
+// I18N constants
+
+// LANG: "pt_br", ENCODING: UTF-8
+// Brazilian Portuguese Translation
+// Author: Marcio Barbosa,
+// Site: www.mpg.com.br
+// Please don´t remove this information - Por favor, não remova esta informação
+// If you modify this source, please insert a comment with your name and e-mail
+// Se modificar esta fonte, insira um comentário com seu nome e e-mail
+
+// Last revision: September 2007
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt).
+{
+ "Cut": "Recortar",
+ "Copy": "Copiar",
+ "Paste": "Colar",
+ "_Image Properties...": "Propriedades da imagem...",
+ "Show the image properties dialog": "Mostrar a caixa de diálogo das Propriedades da imagem",
+ "_Modify Link...": "Modificar link",
+ "Current URL is": "A URL corrente é",
+ "Chec_k Link...": "Verificar Link...",
+ "Opens this link in a new window": "Abrir este link em uma nova janela",
+ "_Remove Link...": "Remover Link",
+ "Please confirm that you want to unlink this element.": "Por favor, confirme que deseja retirar o link do elemento.",
+ "Link points to:": "Link para:",
+ "Unlink the current element": "Remover link do elemento atual",
+ "C_ell Properties...": "Propriedades da célula",
+ "Show the Table Cell Properties dialog": "Mostrar caixa de diálogo de Propriedades da Célula",
+ "Ro_w Properties...": "Propriedades da Linha",
+ "Show the Table Row Properties dialog": "Mostrar caixa de diálogo de Propriedades da Linha",
+ "I_nsert Row Before": "Inserir linha antes deste ponto",
+ "Insert a new row before the current one": "Inserir uma nova linha antes desta",
+ "In_sert Row After": "Inserir linha depois deste ponto",
+ "Insert a new row after the current one": "Inserir uma linha após esta",
+ "_Delete Row": "Apagar linha",
+ "Delete the current row": "Apagar a linha atual",
+ "_Table Properties...": "Propriedades da Tabela",
+ "Show the Table Properties dialog": "Mostrar caixa de diálogo de Propriedades da Tabela",
+ "Insert _Column Before": "Inserir coluna antes deste ponto",
+ "Insert a new column before the current one": "Inserir uma nova coluna antes desta",
+ "Insert C_olumn After": "Inserir coluna após este ponto",
+ "Insert a new column after the current one": "Inserir uma nova coluna após esta",
+ "De_lete Column": "Apagar Coluna",
+ "Delete the current column": "Apagar a coluna atual",
+ "Justify Left": "Justificar à esquerda",
+ "Justify Center": "Justificar centralizado",
+ "Justify Right": "Justificar à direita",
+ "Justify Full": "Justificação completa",
+ "Make lin_k...": "Criar link...",
+ "Create a link": "Criar um novo link",
+ "Remove the $elem Element...": "Remover o elemento $elem...",
+ "Please confirm that you want to remove this element:": "Por favor, confirme que deseja remover este elemento:",
+ "Remove this node from the document": "Remover este nó do documento",
+ "Insert paragraph before": "Inserir um parágrafo antes",
+ "Insert a paragraph before the current node": "Inserir um parágrafo antes do nó atual",
+ "Insert paragraph after": "Inserir um parágrafo após",
+ "Insert a paragraph after the current node": "Inserir um parágrafo após o nó atual",
+ "How did you get here? (Please report!)": "Como você começou aqui? (Por favor, informe!)",
+ "Show the Table Cell Properties dialog": "Mostrar Propriedades da Tabelas",
+ "Insert Cell Before": "Inserir Célula Antes",
+ "Insert Cell After": "Inserir Célula Depois",
+ "Delete Cell": "Apagar Célula",
+ "Merge Cells": "Mesclar Células"
+};
diff --git a/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/sv.js b/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/sv.js
new file mode 100644
index 000000000..139c26265
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ContextMenu/lang/sv.js
@@ -0,0 +1,54 @@
+// I18N constants
+// LANG: "sv", ENCODING: UTF-8
+// Swedish version for rev. 477 (Mar 2006) by Thomas Loo
+
+// TODO: Proper keybindings
+// C,D,e, ,I, ,k,k,l,M, ,n,o,R, ,s,T, ,w : English
+// H B j R m F v : Swedish
+{
+ "Cut": "Klipp ut",
+ "Copy": "Kopiera",
+ "Paste": "Klistra in",
+ "_Image Properties...": "_Bildegenskaper...",
+ "Show the image properties dialog": "Visa bildegenskaper",
+ "_Modify Link...": "_Redigera Länk...",
+ "Current URL is": "Aktuellt URL är",
+ "Chec_k Link...": "Kontrollera länk...",
+ "Opens this link in a new window": "Öppna länk i nytt fönster",
+ "_Remove Link...": "_Ta bort länk...",
+ "Please confirm that you want to unlink this element.": "Bekräfta borttagning av länk",
+ "Link points to:": "Länken pekar mot:",
+ "Unlink the current element": "Ta bort länk kopplad till elementet",
+ "C_ell Properties...": "C_ellegenskaper...",
+ "Show the Table Cell Properties dialog": "Visa egenskaper for cellen",
+ "Ro_w Properties...": "Radegenskaper... (_w)",
+ "Show the Table Row Properties dialog": "Visa egenskaper för rad",
+ "I_nsert Row Before": "I_nfoga rad före",
+ "Insert a new row before the current one": "Infoga ny rad före aktuell",
+ "In_sert Row After": "Infoga rad efter aktuell rad",
+ "Insert a new row after the current one": "Infoga ny rad efter aktuell",
+ "_Delete Row": "Radera rad (_d)",
+ "Delete the current row": "T bort aktuell rad",
+ "_Table Properties...": "_Tabellegenskaper...",
+ "Show the Table Properties dialog": "Visa tabellegenskaper",
+ "Insert _Column Before": "Infoga kolumn efter (_c)",
+ "Insert a new column before the current one": "Infoga kolumn före aktuell",
+ "Insert C_olumn After": "Infoga k_olumn efter",
+ "Insert a new column after the current one": "Infoga kolumn efter aktuell",
+ "De_lete Column": "_Radera kolumn",
+ "Delete the current column": "Radera aktuell kolumn",
+ "Justify Left": "_Vänsterjustera",
+ "Justify Center": "_Centerjustera",
+ "Justify Right": "_Högerjustera",
+ "Justify Full": "Block_justera",
+ "Make lin_k...": "Skapa län_k...",
+ "Create a link": "SKapa ny länk",
+ "Remove the $elem Element...": "Radera elementet $elem...",
+ "Please confirm that you want to remove this element:": "Bekräfta borttagning av element:",
+ "Remove this node from the document": "Radera nod från dokumentet",
+ "Insert paragraph before": "Infoga paragraf före",
+ "Insert a paragraph before the current node": "Infoga paragraf före aktuell nod",
+ "Insert paragraph after": "Infoga paragraf efter",
+ "Insert a paragraph after the current node": "Infoga paragraf efter aktuell nod",
+ "How did you get here? (Please report!)": "Hur hamnade du här? (Beskriv förloppet)"
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/ContextMenu/menu.css b/ccm-cms/web/assets/xinha/plugins/ContextMenu/menu.css
new file mode 100755
index 000000000..34c64b5cc
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ContextMenu/menu.css
@@ -0,0 +1,67 @@
+/* styles for the ContextMenu /HTMLArea */
+/* The ContextMenu plugin is (c) dynarch.com 2003. */
+/* Distributed under the same terms as HTMLArea itself */
+
+div.htmlarea-context-menu {
+ position: absolute;
+ border: 1px solid #aca899;
+ padding: 2px;
+ background-color: #fff;
+ color: #000;
+ cursor: default;
+ z-index: 1000;
+}
+
+div.htmlarea-context-menu table {
+ font: 11px tahoma,verdana,sans-serif;
+ border-collapse: collapse;
+}
+
+div.htmlarea-context-menu tr.item td.icon img {
+/* taken care of by xinha.makeBtnImg() */
+/* width: 18px; */
+/* height: 18px; */
+}
+
+div.htmlarea-context-menu tr.item td.icon {
+ padding: 0px 3px;
+ width: 18px;
+ height: 18px;
+ background-color: #cdf;
+}
+
+div.htmlarea-context-menu tr.item td.label {
+ padding: 1px 10px 1px 3px;
+}
+
+div.htmlarea-context-menu tr.separator td {
+ padding: 2px 0px;
+}
+
+div.htmlarea-context-menu tr.separator td div {
+ border-top: 1px solid #aca899;
+ overflow: hidden;
+ position: relative;
+}
+
+div.htmlarea-context-menu tr.separator td.icon {
+ background-color: #cdf;
+}
+
+div.htmlarea-context-menu tr.separator td.icon div {
+/* margin-left: 3px; */
+ border-color: #fff;
+}
+
+div.htmlarea-context-menu tr.separator td.label div {
+ margin-right: 3px;
+}
+
+div.htmlarea-context-menu tr.item.hover {
+ background-color: #316ac5;
+ color: #fff;
+}
+
+div.htmlarea-context-menu tr.item.hover td.icon {
+ background-color: #619af5;
+}
diff --git a/ccm-cms/web/assets/xinha/plugins/DefinitionList/definition-list.css b/ccm-cms/web/assets/xinha/plugins/DefinitionList/definition-list.css
new file mode 100755
index 000000000..d014001ff
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/DefinitionList/definition-list.css
@@ -0,0 +1,21 @@
+dl { border: 1px dotted #800000; }
+dt {
+ width: 18px;
+ height: 18px;
+ background-image: url(img/ed_dt.gif);
+ background-repeat: no-repeat;
+ background-position: left top;
+ padding-left: 19px;
+ display: block;
+ color: #800000;
+}
+dd {
+ width: 18px;
+ height: 18px;
+ background-image: url(img/ed_dd.gif);
+ background-repeat: no-repeat;
+ background-position: left top;
+ padding-left: 19px;
+ display: block;
+ color: #800000;
+}
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/DefinitionList/definition-list.js b/ccm-cms/web/assets/xinha/plugins/DefinitionList/definition-list.js
new file mode 100644
index 000000000..95a2e0e69
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/DefinitionList/definition-list.js
@@ -0,0 +1,74 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/DefinitionList/definition-list.js */
+function DefinitionList(_1){
+this.editor=_1;
+var _2=_1.config;
+var bl=DefinitionList.btnList;
+var _4=this;
+var _5=["linebreak"];
+for(var i=0;i+YZB&Nf_
zz|0`Tz|FwGVlLpJu#EM^DXr$Ocb;^{r^`AlsCw-&VWnl?feB)1HvY}&$9Ki#CNXR(
V(ht(!DwJn3EkML;qYDFrH2`459ew}+
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/plugins/DefinitionList/img/ed_dl.gif b/ccm-cms/web/assets/xinha/plugins/DefinitionList/img/ed_dl.gif
new file mode 100755
index 0000000000000000000000000000000000000000..ae9b371615149140b580b907bed6a38356bfc2b7
GIT binary patch
literal 136
zcmZ?wbhEHb6k-r!*v$X}jEs!Z($WkJ3|w4XLPA2KqN2RKyb=-;Qc_Z2c@&`dlZ6o^
zpu@nx%pk92`PILTqeoQc_a9yu6~Kq7o7k
zV1*!{_>+YZMC&jxFf#}-a5FHlI0<+-EMt9h%8H#s*t~HXgNT@>?j-?^d)Bg#Q<&7U
sj-E>K=(v28^@B%U!-93jo*pIhX19bfOT_J5nzeXi$DY_ORVD^&030?TcK`qY
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/plugins/DefinitionList/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/DefinitionList/lang/ja.js
new file mode 100644
index 000000000..7f2041070
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/DefinitionList/lang/ja.js
@@ -0,0 +1,7 @@
+// I18N constants
+// LANG: "ja", ENCODING: UTF-8
+{
+ "definition list": "定義リスト",
+ "definition term": "定義語",
+ "definition description": "定義ã®èª¬æ˜Ž"
+}
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/DefinitionList/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/DefinitionList/lang/nl.js
new file mode 100644
index 000000000..8a8d0c889
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/DefinitionList/lang/nl.js
@@ -0,0 +1,8 @@
+// I18N constants
+// LANG: "nl", ENCODING: UTF-8
+// Author: Maarten Molenschot, maarten@nrgmm.nl
+{
+ "definition list": "definitie lijst",
+ "definition term": "definitie term",
+ "definition description": "definitie omschrijving
+}
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/DefinitionList/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/DefinitionList/lang/pt_br.js
new file mode 100644
index 000000000..6a93709a2
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/DefinitionList/lang/pt_br.js
@@ -0,0 +1,20 @@
+// I18N constants
+
+// LANG: "pt_br", ENCODING: UTF-8
+// Portuguese Brazilian Translation
+
+// Author: Marcio Barbosa,
+// MSN: tomarshall@msn.com - ICQ: 69419933
+// Site: http://www.mpg.com.br
+
+// Last revision: 05 september 2007
+// Please don´t remove this information
+// If you modify any source, please insert a comment with your name and e-mail
+
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt).
+{
+ "definition list": "Lista de definição",
+ "definition term": "Termo de definição",
+ "definition description": "Descrição de definição"
+}
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/DoubleClick/double-click.js b/ccm-cms/web/assets/xinha/plugins/DoubleClick/double-click.js
new file mode 100644
index 000000000..90c545cce
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/DoubleClick/double-click.js
@@ -0,0 +1,30 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/DoubleClick/double-click.js */
+DoubleClick._pluginInfo={name:"DoubleClick",version:"1.0",developer:"Marijn Kampf",developer_url:"http://www.marijn.org",c_owner:"Marijn Kampf",sponsor:"smiling-faces.com",sponsor_url:"http://www.smiling-faces.com",license:"htmlArea"};
+function DoubleClick(_1){
+this.editor=_1;
+this.editor.dblClickList={a:[function(e){
+e.config.btnList["createlink"][3](e);
+}],img:[function(e){
+e.execCommand("insertimage");
+}],td:[function(e){
+e.execCommand("inserttable");
+}]};
+}
+DoubleClick.prototype.onGenerate=function(){
+var _5=this;
+var _6=this.editordoc=this.editor._iframe.contentWindow.document;
+Xinha._addEvents(_6,["dblclick"],function(_7){
+return _5.onDoubleClick(Xinha.is_ie?_5.editor._iframe.contentWindow.event:_7);
+});
+this.currentClick=null;
+};
+DoubleClick.prototype.onDoubleClick=function(ev){
+var _9=Xinha.is_ie?ev.srcElement:ev.target;
+var _a=_9.tagName.toLowerCase();
+if(this.editor.dblClickList[_a]!=undefined){
+this.editor.dblClickList[_a][0](this.editor,_9);
+}
+};
+
diff --git a/ccm-cms/web/assets/xinha/plugins/DynamicCSS/dynamiccss.js b/ccm-cms/web/assets/xinha/plugins/DynamicCSS/dynamiccss.js
new file mode 100644
index 000000000..6ce3bdb52
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/DynamicCSS/dynamiccss.js
@@ -0,0 +1,202 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/DynamicCSS/dynamiccss.js */
+function DynamicCSS(_1,_2){
+this.editor=_1;
+var _3=_1.config;
+var _4=this;
+var _5=null;
+var _6=null;
+var _7={id:"DynamicCSS-class",tooltip:this._lc("Choose stylesheet"),options:{"":""},action:function(_8){
+_4.onSelect(_8,this);
+},refresh:function(_9){
+_4.updateValue(_9,this);
+}};
+_3.registerDropdown(_7);
+_3.addToolbarElement(["T[CSS]","DynamicCSS-class","separator"],"formatblock",-1);
+}
+DynamicCSS.parseStyleSheet=function(_a){
+iframe=_a._iframe.contentWindow.document;
+cssArray=DynamicCSS.cssArray;
+if(!cssArray){
+cssArray=new Array();
+}
+for(i=0;i";
+}
+}else{
+className="none";
+if(tagName=="all"){
+cssName=Xinha._lc("Default","DynamicCSS");
+}else{
+cssName="<"+Xinha._lc("Default","DynamicCSS")+">";
+}
+}
+_c[tagName][className]=cssName;
+DynamicCSS.cssLength++;
+}
+}
+}else{
+if(_b[rule].styleSheet){
+_c=DynamicCSS.applyCSSRule(_b[rule].styleSheet.cssRules,_c);
+}
+}
+}
+return _c;
+};
+DynamicCSS._pluginInfo={name:"DynamicCSS",version:"1.5.2",developer:"Holger Hees",developer_url:"http://www.systemconcept.de/",c_owner:"Holger Hees",sponsor:"System Concept GmbH",sponsor_url:"http://www.systemconcept.de/",license:"htmlArea"};
+DynamicCSS.prototype._lc=function(_d){
+return Xinha._lc(_d,"DynamicCSS");
+};
+DynamicCSS.prototype.onSelect=function(_e,_f){
+var _10=_e._toolbarObjects[_f.id];
+var _11=_10.element.selectedIndex;
+var _12=_10.element.value;
+var _13=_e.getParentElement();
+if(_12!="none"){
+_13.className=_12;
+DynamicCSS.lastClass=_12;
+}else{
+if(Xinha.is_gecko){
+_13.removeAttribute("class");
+}else{
+_13.removeAttribute("className");
+}
+}
+_e.updateToolbar();
+};
+DynamicCSS.prototype.reparseTimer=function(_14,obj,_16){
+if(DynamicCSS.parseCount<9){
+setTimeout(function(){
+DynamicCSS.cssLength=0;
+DynamicCSS.parseStyleSheet(_14);
+if(DynamicCSS.cssOldLength!=DynamicCSS.cssLength){
+DynamicCSS.cssOldLength=DynamicCSS.cssLength;
+DynamicCSS.lastClass=null;
+_16.updateValue(_14,obj);
+}
+_16.reparseTimer(_14,obj,_16);
+},DynamicCSS.parseCount*1000);
+DynamicCSS.parseCount=DynamicCSS.parseCount*2;
+}
+};
+DynamicCSS.prototype.updateValue=function(_17,obj){
+cssArray=DynamicCSS.cssArray;
+if(!cssArray){
+DynamicCSS.cssLength=0;
+DynamicCSS.parseStyleSheet(_17);
+cssArray=DynamicCSS.cssArray;
+DynamicCSS.cssOldLength=DynamicCSS.cssLength;
+DynamicCSS.parseCount=1;
+this.reparseTimer(_17,obj,this);
+}
+var _19=_17.getParentElement();
+var _1a=_19.tagName.toLowerCase();
+var _1b=_19.className;
+if(this.lastTag!=_1a||this.lastClass!=_1b){
+this.lastTag=_1a;
+this.lastClass=_1b;
+var _1c=_17._toolbarObjects[obj.id].element;
+while(_1c.length>0){
+_1c.options[_1c.length-1]=null;
+}
+_1c.options[0]=new Option(this._lc("Default"),"none");
+if(cssArray){
+if(_1a!="body"||_17.config.fullPage){
+if(cssArray[_1a]){
+for(cssClass in cssArray[_1a]){
+if(typeof cssArray[_1a][cssClass]!="string"){
+continue;
+}
+if(cssClass=="none"){
+_1c.options[0]=new Option(cssArray[_1a][cssClass],cssClass);
+}else{
+_1c.options[_1c.length]=new Option(cssArray[_1a][cssClass],cssClass);
+}
+}
+}
+if(cssArray["all"]){
+for(cssClass in cssArray["all"]){
+if(typeof cssArray["all"][cssClass]!="string"){
+continue;
+}
+_1c.options[_1c.length]=new Option(cssArray["all"][cssClass],cssClass);
+}
+}
+}else{
+if(cssArray[_1a]&&cssArray[_1a]["none"]){
+_1c.options[0]=new Option(cssArray[_1a]["none"],"none");
+}
+}
+}
+_1c.selectedIndex=0;
+if(typeof _1b!="undefined"&&/\S/.test(_1b)){
+var _1d=_1c.options;
+for(var i=_1d.length;--i>=0;){
+var _1f=_1d[i];
+if(_1b==_1f.value){
+_1c.selectedIndex=i;
+break;
+}
+}
+if(_1c.selectedIndex==0){
+_1c.options[_1c.length]=new Option(this._lc("Undefined"),_1b);
+_1c.selectedIndex=_1c.length-1;
+}
+}
+if(_1c.length>1){
+_1c.disabled=false;
+}else{
+_1c.disabled=true;
+}
+}
+};
+
diff --git a/ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/de.js b/ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/de.js
new file mode 100644
index 000000000..5419e8dd4
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/de.js
@@ -0,0 +1,12 @@
+// I18N constants
+// LANG: "de", ENCODING: UTF-8
+// Sponsored by http://www.systemconcept.de
+// Author: Holger Hees,
+// (c) systemconcept.de 2004
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt).
+{
+ "Default": "Standard",
+ "Undefined": "Nicht definiert",
+ "Choose stylesheet": "Wählen Sie einen StyleSheet aus"
+};
diff --git a/ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/fr.js
new file mode 100644
index 000000000..a82ca2a4d
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/fr.js
@@ -0,0 +1,7 @@
+// I18N constants
+// LANG: "fr", ENCODING: UTF-8
+{
+ "Default": "Défaut",
+ "Undefined": "Non défini",
+ "Choose stylesheet": "Choisir feuille de style"
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/ja.js
new file mode 100644
index 000000000..005d204fd
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/ja.js
@@ -0,0 +1,7 @@
+// I18N constants
+// LANG: "ja", ENCODING: UTF-8
+{
+ "Default": "ãªã—",
+ "Undefined": "未定義",
+ "Choose stylesheet": "スタイルシートã®é¸æŠž"
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/nb.js
new file mode 100644
index 000000000..24e8e8ab5
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/nb.js
@@ -0,0 +1,8 @@
+// I18N constants
+// LANG: "nb", ENCODING: UTF-8
+// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com
+{
+ "Default": "Standard",
+ "Undefined": "Udefinert",
+ "Choose stylesheet": "Velg stilsett"
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/nl.js
new file mode 100644
index 000000000..ead62eb65
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/nl.js
@@ -0,0 +1,12 @@
+// I18N constants
+// LANG: "nl", ENCODING: UTF-8
+// Sponsored by http://www.systemconcept.de
+// Author: Holger Hees,
+// (c) systemconcept.de 2004
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt).
+{
+ "Default": "Default",
+ "Undefined": "Ungedefinieerd",
+ "Choose stylesheet": "Kies stylesheet"
+};
diff --git a/ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/pt_br.js
new file mode 100644
index 000000000..a9eb57c33
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/DynamicCSS/lang/pt_br.js
@@ -0,0 +1,21 @@
+// I18N constants
+
+// LANG: "pt_br", ENCODING: UTF-8
+// Portuguese Brazilian Translation
+
+// Author: Marcio Barbosa,
+// MSN: tomarshall@msn.com - ICQ: 69419933
+// Site: http://www.mpg.com.br
+
+// Last revision: 05 september 2007
+// Please don´t remove this information
+// If you modify any source, please insert a comment with your name and e-mail
+
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt).
+
+{
+ "Choose stylesheet": "Escolher estilo",
+ "Default": "Padrão",
+ "Undefined": "Indefinido"
+}
diff --git a/ccm-cms/web/assets/xinha/plugins/EditTag/edit-tag.js b/ccm-cms/web/assets/xinha/plugins/EditTag/edit-tag.js
new file mode 100644
index 000000000..374a31e26
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/EditTag/edit-tag.js
@@ -0,0 +1,26 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/EditTag/edit-tag.js */
+function EditTag(_1){
+this.editor=_1;
+var _2=_1.config;
+var _3=this;
+_2.registerButton({id:"edittag",tooltip:this._lc("Edit HTML for selected text"),image:_1.imgURL("ed_edit_tag.gif","EditTag"),textMode:false,action:function(_4){
+_3.buttonPress(_4);
+}});
+_2.addToolbarElement("edittag","htmlmode",1);
+}
+EditTag._pluginInfo={name:"EditTag",version:"1.0",developer:"Pegoraro Marco",developer_url:"http://www.sin-italia.com/",c_owner:"Marco Pegoraro",sponsor:"Sin Italia",sponsor_url:"http://www.sin-italia.com/",license:"htmlArea"};
+EditTag.prototype._lc=function(_5){
+return Xinha._lc(_5,"EditTag");
+};
+EditTag.prototype.buttonPress=function(_6){
+outparam={content:_6.getSelectedHTML()};
+_6._popupDialog("plugin://EditTag/edit_tag",function(_7){
+if(!_7){
+return false;
+}
+_6.insertHTML(_7);
+},outparam);
+};
+
diff --git a/ccm-cms/web/assets/xinha/plugins/EditTag/img/ed_edit_tag.gif b/ccm-cms/web/assets/xinha/plugins/EditTag/img/ed_edit_tag.gif
new file mode 100755
index 0000000000000000000000000000000000000000..79671fbe662d230438e875b7f98090b0307d770f
GIT binary patch
literal 293
zcmZ?wbhEHb6k-r!IK#m3|Nnmm28Ok3*FJsvw7I!CEiEl5C}`%)nbFbFMMXvX_U+rU
zWeYz)|Fvt^?%%&}ZEelL!BJgZEh#Cvbm>w#IXPovV`pdQo}M0eclR@A&M;sA#h)y!
zA`A=+I*beq41x?o3=FJ`6by92gXX9=NgikD=vyo!o+!*2!#vZzV1f
zF^=?lRzdb=eP%IrVc}9nL2f=heSHo=&XUlC*^B3Lb}r;yJUf!LZpA8nF*dfzQx|Pu
gvkuALzKXpdtAcNX5~ol@)2t25#%8^z^c5Mb0Y8^nd;kCd
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/plugins/EditTag/lang/de.js b/ccm-cms/web/assets/xinha/plugins/EditTag/lang/de.js
new file mode 100644
index 000000000..7e3fa28d2
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/EditTag/lang/de.js
@@ -0,0 +1,7 @@
+// I18N constants
+// LANG: "de", ENCODING: UTF-8
+// translated: Udo Schmal (gocher), http://www.schaffrath-neuemedien.de/, udo.schmal@t-online.de
+{
+ "Edit HTML for selected text": "HTML im ausgewählten Bereich bearbeiten",
+ "Tag Editor": "HTML tag Editor"
+};
diff --git a/ccm-cms/web/assets/xinha/plugins/EditTag/lang/fr.js b/ccm-cms/web/assets/xinha/plugins/EditTag/lang/fr.js
new file mode 100644
index 000000000..88e4dbcb2
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/EditTag/lang/fr.js
@@ -0,0 +1,6 @@
+// I18N constants
+// LANG: "fr", ENCODING: UTF-8
+{
+ "Edit HTML for selected text": "Editer le code HTML du texte sélectionné",
+ "Tag Editor": "Editeur de tag HTML"
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/EditTag/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/EditTag/lang/ja.js
new file mode 100644
index 000000000..4a88241aa
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/EditTag/lang/ja.js
@@ -0,0 +1,6 @@
+// I18N constants
+// LANG: "ja", ENCODING: UTF-8
+{
+ "Edit HTML for selected text": "é¸æŠžä¸ãƒ†ã‚ストã®HTMLを編集ã—ã¾ã™",
+ "Tag Editor": "タグエディタ"
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/EditTag/lang/nb.js b/ccm-cms/web/assets/xinha/plugins/EditTag/lang/nb.js
new file mode 100644
index 000000000..c171e1138
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/EditTag/lang/nb.js
@@ -0,0 +1,6 @@
+// I18N constants
+// LANG: "nb", ENCODING: UTF-8
+// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com
+{
+ "Edit HTML for selected text": "Rediger HTML for den valgte teksten"
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/EditTag/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/EditTag/lang/nl.js
new file mode 100644
index 000000000..548cfed0f
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/EditTag/lang/nl.js
@@ -0,0 +1,7 @@
+// I18N constants
+// LANG: "nl", ENCODING: UTF-8
+// Author: Maarten Molenschot, maarten@nrgmm.nl
+{
+ "Edit HTML for selected text": "HTML bewerken voor geselecteerde tekst",
+ "Tag Editor": "HTML tag Editor"
+};
diff --git a/ccm-cms/web/assets/xinha/plugins/EditTag/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/EditTag/lang/pt_br.js
new file mode 100644
index 000000000..0bd66be8e
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/EditTag/lang/pt_br.js
@@ -0,0 +1,22 @@
+// I18N constants
+
+// LANG: "pt_br", ENCODING: UTF-8
+// Portuguese Brazilian Translation
+
+// Author: Marcio Barbosa,
+// MSN: tomarshall@msn.com - ICQ: 69419933
+// Site: http://www.mpg.com.br
+
+// Last revision: 05 september 2007
+// Please don´t remove this information
+// If you modify any source, please insert a comment with your name and e-mail
+
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt).
+{
+ "Cancel": "Cancelar",
+ "Edit HTML for selected text": "Editar HTML para texto selecionado",
+ "Edit Tag By Peg": "Editar Tag por Peg",
+ "OK": "OK",
+ "Tag Editor": "Editor de Tag"
+}
diff --git a/ccm-cms/web/assets/xinha/plugins/EditTag/popups/edit_tag.html b/ccm-cms/web/assets/xinha/plugins/EditTag/popups/edit_tag.html
new file mode 100755
index 000000000..2eeb54159
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/EditTag/popups/edit_tag.html
@@ -0,0 +1,38 @@
+
+
+
+ Edit Tag By Peg
+
+
+
+
+
+
+Tag Editor
+
+
+ OK
+ Cancel
+
+
+
diff --git a/ccm-cms/web/assets/xinha/plugins/Equation/ASCIIMathML.js b/ccm-cms/web/assets/xinha/plugins/Equation/ASCIIMathML.js
new file mode 100644
index 000000000..206b5936a
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/Equation/ASCIIMathML.js
@@ -0,0 +1,703 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/Equation/ASCIIMathML.js */
+var checkForMathML=true;
+var notifyIfNoMathML=true;
+var alertIfNoMathML=false;
+if(typeof mathcolor=="undefined"){
+var mathcolor="red";
+}
+if(typeof mathfontfamily=="undefined"){
+var mathfontfamily="serif";
+}
+var displaystyle=true;
+if(typeof showasciiformulaonhover=="undefined"){
+var showasciiformulaonhover=true;
+}
+var decimalsign=".";
+var AMdelimiter1="`",AMescape1="\\\\`";
+var AMdelimiter2="$",AMescape2="\\\\\\$",AMdelimiter2regexp="\\$";
+var doubleblankmathdelimiter=false;
+var isIE=document.createElementNS==null;
+if(document.getElementById==null){
+alert("This webpage requires a recent browser such as\nMozilla/Netscape 7+ or Internet Explorer 6+MathPlayer");
+}
+function AMcreateElementXHTML(t){
+if(isIE){
+return document.createElement(t);
+}else{
+return document.createElementNS("http://www.w3.org/1999/xhtml",t);
+}
+}
+function AMnoMathMLNote(){
+var nd=AMcreateElementXHTML("h3");
+nd.setAttribute("align","center");
+nd.appendChild(AMcreateElementXHTML("p"));
+nd.appendChild(document.createTextNode("To view the "));
+var an=AMcreateElementXHTML("a");
+an.appendChild(document.createTextNode("ASCIIMathML"));
+an.setAttribute("href","http://www.chapman.edu/~jipsen/asciimath.html");
+nd.appendChild(an);
+nd.appendChild(document.createTextNode(" notation use Internet Explorer 6+"));
+an=AMcreateElementXHTML("a");
+an.appendChild(document.createTextNode("MathPlayer"));
+an.setAttribute("href","http://www.dessci.com/en/products/mathplayer/download.htm");
+nd.appendChild(an);
+nd.appendChild(document.createTextNode(" or Netscape/Mozilla/Firefox"));
+nd.appendChild(AMcreateElementXHTML("p"));
+return nd;
+}
+function AMisMathMLavailable(){
+if(navigator.appName.slice(0,8)=="Netscape"){
+if(navigator.appVersion.slice(0,1)>="5"){
+return null;
+}else{
+return AMnoMathMLNote();
+}
+}else{
+if(navigator.appName.slice(0,9)=="Microsoft"){
+try{
+var _4=new ActiveXObject("MathPlayer.Factory.1");
+return null;
+}
+catch(e){
+return AMnoMathMLNote();
+}
+}else{
+return AMnoMathMLNote();
+}
+}
+}
+var AMcal=[61237,8492,61238,61239,8496,8497,61240,8459,8464,61241,61242,8466,8499,61243,61244,61245,61246,8475,61247,61248,61249,61250,61251,61252,61253,61254];
+var AMfrk=[61277,61278,8493,61279,61280,61281,61282,8460,8465,61283,61284,61285,61286,61287,61288,61289,61290,8476,61291,61292,61293,61294,61295,61296,61297,8488];
+var AMbbb=[61324,61325,8450,61326,61327,61328,61329,8461,61330,61331,61332,61333,61334,8469,61335,8473,8474,8477,61336,61337,61338,61339,61340,61341,61342,8484];
+var CONST=0,UNARY=1,BINARY=2,INFIX=3,LEFTBRACKET=4,RIGHTBRACKET=5,SPACE=6,UNDEROVER=7,DEFINITION=8,LEFTRIGHT=9,TEXT=10;
+var AMsqrt={input:"sqrt",tag:"msqrt",output:"sqrt",tex:null,ttype:UNARY},AMroot={input:"root",tag:"mroot",output:"root",tex:null,ttype:BINARY},AMfrac={input:"frac",tag:"mfrac",output:"/",tex:null,ttype:BINARY},AMdiv={input:"/",tag:"mfrac",output:"/",tex:null,ttype:INFIX},AMover={input:"stackrel",tag:"mover",output:"stackrel",tex:null,ttype:BINARY},AMsub={input:"_",tag:"msub",output:"_",tex:null,ttype:INFIX},AMsup={input:"^",tag:"msup",output:"^",tex:null,ttype:INFIX},AMtext={input:"text",tag:"mtext",output:"text",tex:null,ttype:TEXT},AMmbox={input:"mbox",tag:"mtext",output:"mbox",tex:null,ttype:TEXT},AMquote={input:"\"",tag:"mtext",output:"mbox",tex:null,ttype:TEXT};
+var AMsymbols=[{input:"alpha",tag:"mi",output:"\u03b1",tex:null,ttype:CONST},{input:"beta",tag:"mi",output:"\u03b2",tex:null,ttype:CONST},{input:"chi",tag:"mi",output:"\u03c7",tex:null,ttype:CONST},{input:"delta",tag:"mi",output:"\u03b4",tex:null,ttype:CONST},{input:"Delta",tag:"mo",output:"\u0394",tex:null,ttype:CONST},{input:"epsi",tag:"mi",output:"\u03b5",tex:"epsilon",ttype:CONST},{input:"varepsilon",tag:"mi",output:"\u025b",tex:null,ttype:CONST},{input:"eta",tag:"mi",output:"\u03b7",tex:null,ttype:CONST},{input:"gamma",tag:"mi",output:"\u03b3",tex:null,ttype:CONST},{input:"Gamma",tag:"mo",output:"\u0393",tex:null,ttype:CONST},{input:"iota",tag:"mi",output:"\u03b9",tex:null,ttype:CONST},{input:"kappa",tag:"mi",output:"\u03ba",tex:null,ttype:CONST},{input:"lambda",tag:"mi",output:"\u03bb",tex:null,ttype:CONST},{input:"Lambda",tag:"mo",output:"\u039b",tex:null,ttype:CONST},{input:"mu",tag:"mi",output:"\u03bc",tex:null,ttype:CONST},{input:"nu",tag:"mi",output:"\u03bd",tex:null,ttype:CONST},{input:"omega",tag:"mi",output:"\u03c9",tex:null,ttype:CONST},{input:"Omega",tag:"mo",output:"\u03a9",tex:null,ttype:CONST},{input:"phi",tag:"mi",output:"\u03c6",tex:null,ttype:CONST},{input:"varphi",tag:"mi",output:"\u03d5",tex:null,ttype:CONST},{input:"Phi",tag:"mo",output:"\u03a6",tex:null,ttype:CONST},{input:"pi",tag:"mi",output:"\u03c0",tex:null,ttype:CONST},{input:"Pi",tag:"mo",output:"\u03a0",tex:null,ttype:CONST},{input:"psi",tag:"mi",output:"\u03c8",tex:null,ttype:CONST},{input:"Psi",tag:"mi",output:"\u03a8",tex:null,ttype:CONST},{input:"rho",tag:"mi",output:"\u03c1",tex:null,ttype:CONST},{input:"sigma",tag:"mi",output:"\u03c3",tex:null,ttype:CONST},{input:"Sigma",tag:"mo",output:"\u03a3",tex:null,ttype:CONST},{input:"tau",tag:"mi",output:"\u03c4",tex:null,ttype:CONST},{input:"theta",tag:"mi",output:"\u03b8",tex:null,ttype:CONST},{input:"vartheta",tag:"mi",output:"\u03d1",tex:null,ttype:CONST},{input:"Theta",tag:"mo",output:"\u0398",tex:null,ttype:CONST},{input:"upsilon",tag:"mi",output:"\u03c5",tex:null,ttype:CONST},{input:"xi",tag:"mi",output:"\u03be",tex:null,ttype:CONST},{input:"Xi",tag:"mo",output:"\u039e",tex:null,ttype:CONST},{input:"zeta",tag:"mi",output:"\u03b6",tex:null,ttype:CONST},{input:"*",tag:"mo",output:"\u22c5",tex:"cdot",ttype:CONST},{input:"**",tag:"mo",output:"\u22c6",tex:"star",ttype:CONST},{input:"//",tag:"mo",output:"/",tex:null,ttype:CONST},{input:"\\\\",tag:"mo",output:"\\",tex:"backslash",ttype:CONST},{input:"setminus",tag:"mo",output:"\\",tex:null,ttype:CONST},{input:"xx",tag:"mo",output:"\xd7",tex:"times",ttype:CONST},{input:"-:",tag:"mo",output:"\xf7",tex:"divide",ttype:CONST},{input:"@",tag:"mo",output:"\u2218",tex:"circ",ttype:CONST},{input:"o+",tag:"mo",output:"\u2295",tex:"oplus",ttype:CONST},{input:"ox",tag:"mo",output:"\u2297",tex:"otimes",ttype:CONST},{input:"o.",tag:"mo",output:"\u2299",tex:"odot",ttype:CONST},{input:"sum",tag:"mo",output:"\u2211",tex:null,ttype:UNDEROVER},{input:"prod",tag:"mo",output:"\u220f",tex:null,ttype:UNDEROVER},{input:"^^",tag:"mo",output:"\u2227",tex:"wedge",ttype:CONST},{input:"^^^",tag:"mo",output:"\u22c0",tex:"bigwedge",ttype:UNDEROVER},{input:"vv",tag:"mo",output:"\u2228",tex:"vee",ttype:CONST},{input:"vvv",tag:"mo",output:"\u22c1",tex:"bigvee",ttype:UNDEROVER},{input:"nn",tag:"mo",output:"\u2229",tex:"cap",ttype:CONST},{input:"nnn",tag:"mo",output:"\u22c2",tex:"bigcap",ttype:UNDEROVER},{input:"uu",tag:"mo",output:"\u222a",tex:"cup",ttype:CONST},{input:"uuu",tag:"mo",output:"\u22c3",tex:"bigcup",ttype:UNDEROVER},{input:"!=",tag:"mo",output:"\u2260",tex:"ne",ttype:CONST},{input:":=",tag:"mo",output:":=",tex:null,ttype:CONST},{input:"lt",tag:"mo",output:"<",tex:null,ttype:CONST},{input:"<=",tag:"mo",output:"\u2264",tex:"le",ttype:CONST},{input:"lt=",tag:"mo",output:"\u2264",tex:"leq",ttype:CONST},{input:">=",tag:"mo",output:"\u2265",tex:"ge",ttype:CONST},{input:"geq",tag:"mo",output:"\u2265",tex:null,ttype:CONST},{input:"-<",tag:"mo",output:"\u227a",tex:"prec",ttype:CONST},{input:"-lt",tag:"mo",output:"\u227a",tex:null,ttype:CONST},{input:">-",tag:"mo",output:"\u227b",tex:"succ",ttype:CONST},{input:"-<=",tag:"mo",output:"\u2aaf",tex:"preceq",ttype:CONST},{input:">-=",tag:"mo",output:"\u2ab0",tex:"succeq",ttype:CONST},{input:"in",tag:"mo",output:"\u2208",tex:null,ttype:CONST},{input:"!in",tag:"mo",output:"\u2209",tex:"notin",ttype:CONST},{input:"sub",tag:"mo",output:"\u2282",tex:"subset",ttype:CONST},{input:"sup",tag:"mo",output:"\u2283",tex:"supset",ttype:CONST},{input:"sube",tag:"mo",output:"\u2286",tex:"subseteq",ttype:CONST},{input:"supe",tag:"mo",output:"\u2287",tex:"supseteq",ttype:CONST},{input:"-=",tag:"mo",output:"\u2261",tex:"equiv",ttype:CONST},{input:"~=",tag:"mo",output:"\u2245",tex:"cong",ttype:CONST},{input:"~~",tag:"mo",output:"\u2248",tex:"approx",ttype:CONST},{input:"prop",tag:"mo",output:"\u221d",tex:"propto",ttype:CONST},{input:"and",tag:"mtext",output:"and",tex:null,ttype:SPACE},{input:"or",tag:"mtext",output:"or",tex:null,ttype:SPACE},{input:"not",tag:"mo",output:"\xac",tex:"neg",ttype:CONST},{input:"=>",tag:"mo",output:"\u21d2",tex:"implies",ttype:CONST},{input:"if",tag:"mo",output:"if",tex:null,ttype:SPACE},{input:"<=>",tag:"mo",output:"\u21d4",tex:"iff",ttype:CONST},{input:"AA",tag:"mo",output:"\u2200",tex:"forall",ttype:CONST},{input:"EE",tag:"mo",output:"\u2203",tex:"exists",ttype:CONST},{input:"_|_",tag:"mo",output:"\u22a5",tex:"bot",ttype:CONST},{input:"TT",tag:"mo",output:"\u22a4",tex:"top",ttype:CONST},{input:"|--",tag:"mo",output:"\u22a2",tex:"vdash",ttype:CONST},{input:"|==",tag:"mo",output:"\u22a8",tex:"models",ttype:CONST},{input:"(",tag:"mo",output:"(",tex:null,ttype:LEFTBRACKET},{input:")",tag:"mo",output:")",tex:null,ttype:RIGHTBRACKET},{input:"[",tag:"mo",output:"[",tex:null,ttype:LEFTBRACKET},{input:"]",tag:"mo",output:"]",tex:null,ttype:RIGHTBRACKET},{input:"{",tag:"mo",output:"{",tex:null,ttype:LEFTBRACKET},{input:"}",tag:"mo",output:"}",tex:null,ttype:RIGHTBRACKET},{input:"|",tag:"mo",output:"|",tex:null,ttype:LEFTRIGHT},{input:"(:",tag:"mo",output:"\u2329",tex:"langle",ttype:LEFTBRACKET},{input:":)",tag:"mo",output:"\u232a",tex:"rangle",ttype:RIGHTBRACKET},{input:"<<",tag:"mo",output:"\u2329",tex:null,ttype:LEFTBRACKET},{input:">>",tag:"mo",output:"\u232a",tex:null,ttype:RIGHTBRACKET},{input:"{:",tag:"mo",output:"{:",tex:null,ttype:LEFTBRACKET,invisible:true},{input:":}",tag:"mo",output:":}",tex:null,ttype:RIGHTBRACKET,invisible:true},{input:"int",tag:"mo",output:"\u222b",tex:null,ttype:CONST},{input:"dx",tag:"mi",output:"{:d x:}",tex:null,ttype:DEFINITION},{input:"dy",tag:"mi",output:"{:d y:}",tex:null,ttype:DEFINITION},{input:"dz",tag:"mi",output:"{:d z:}",tex:null,ttype:DEFINITION},{input:"dt",tag:"mi",output:"{:d t:}",tex:null,ttype:DEFINITION},{input:"oint",tag:"mo",output:"\u222e",tex:null,ttype:CONST},{input:"del",tag:"mo",output:"\u2202",tex:"partial",ttype:CONST},{input:"grad",tag:"mo",output:"\u2207",tex:"nabla",ttype:CONST},{input:"+-",tag:"mo",output:"\xb1",tex:"pm",ttype:CONST},{input:"O/",tag:"mo",output:"\u2205",tex:"emptyset",ttype:CONST},{input:"oo",tag:"mo",output:"\u221e",tex:"infty",ttype:CONST},{input:"aleph",tag:"mo",output:"\u2135",tex:null,ttype:CONST},{input:"...",tag:"mo",output:"...",tex:"ldots",ttype:CONST},{input:":.",tag:"mo",output:"\u2234",tex:"therefore",ttype:CONST},{input:"/_",tag:"mo",output:"\u2220",tex:"angle",ttype:CONST},{input:"\\ ",tag:"mo",output:"\xa0",tex:null,ttype:CONST},{input:"quad",tag:"mo",output:"\xa0\xa0",tex:null,ttype:CONST},{input:"qquad",tag:"mo",output:"\xa0\xa0\xa0\xa0",tex:null,ttype:CONST},{input:"cdots",tag:"mo",output:"\u22ef",tex:null,ttype:CONST},{input:"vdots",tag:"mo",output:"\u22ee",tex:null,ttype:CONST},{input:"ddots",tag:"mo",output:"\u22f1",tex:null,ttype:CONST},{input:"diamond",tag:"mo",output:"\u22c4",tex:null,ttype:CONST},{input:"square",tag:"mo",output:"\u25a1",tex:null,ttype:CONST},{input:"|__",tag:"mo",output:"\u230a",tex:"lfloor",ttype:CONST},{input:"__|",tag:"mo",output:"\u230b",tex:"rfloor",ttype:CONST},{input:"|~",tag:"mo",output:"\u2308",tex:"lceiling",ttype:CONST},{input:"~|",tag:"mo",output:"\u2309",tex:"rceiling",ttype:CONST},{input:"CC",tag:"mo",output:"\u2102",tex:null,ttype:CONST},{input:"NN",tag:"mo",output:"\u2115",tex:null,ttype:CONST},{input:"QQ",tag:"mo",output:"\u211a",tex:null,ttype:CONST},{input:"RR",tag:"mo",output:"\u211d",tex:null,ttype:CONST},{input:"ZZ",tag:"mo",output:"\u2124",tex:null,ttype:CONST},{input:"f",tag:"mi",output:"f",tex:null,ttype:UNARY,func:true},{input:"g",tag:"mi",output:"g",tex:null,ttype:UNARY,func:true},{input:"lim",tag:"mo",output:"lim",tex:null,ttype:UNDEROVER},{input:"Lim",tag:"mo",output:"Lim",tex:null,ttype:UNDEROVER},{input:"sin",tag:"mo",output:"sin",tex:null,ttype:UNARY,func:true},{input:"cos",tag:"mo",output:"cos",tex:null,ttype:UNARY,func:true},{input:"tan",tag:"mo",output:"tan",tex:null,ttype:UNARY,func:true},{input:"sinh",tag:"mo",output:"sinh",tex:null,ttype:UNARY,func:true},{input:"cosh",tag:"mo",output:"cosh",tex:null,ttype:UNARY,func:true},{input:"tanh",tag:"mo",output:"tanh",tex:null,ttype:UNARY,func:true},{input:"cot",tag:"mo",output:"cot",tex:null,ttype:UNARY,func:true},{input:"sec",tag:"mo",output:"sec",tex:null,ttype:UNARY,func:true},{input:"csc",tag:"mo",output:"csc",tex:null,ttype:UNARY,func:true},{input:"log",tag:"mo",output:"log",tex:null,ttype:UNARY,func:true},{input:"ln",tag:"mo",output:"ln",tex:null,ttype:UNARY,func:true},{input:"det",tag:"mo",output:"det",tex:null,ttype:UNARY,func:true},{input:"dim",tag:"mo",output:"dim",tex:null,ttype:CONST},{input:"mod",tag:"mo",output:"mod",tex:null,ttype:CONST},{input:"gcd",tag:"mo",output:"gcd",tex:null,ttype:UNARY,func:true},{input:"lcm",tag:"mo",output:"lcm",tex:null,ttype:UNARY,func:true},{input:"lub",tag:"mo",output:"lub",tex:null,ttype:CONST},{input:"glb",tag:"mo",output:"glb",tex:null,ttype:CONST},{input:"min",tag:"mo",output:"min",tex:null,ttype:UNDEROVER},{input:"max",tag:"mo",output:"max",tex:null,ttype:UNDEROVER},{input:"uarr",tag:"mo",output:"\u2191",tex:"uparrow",ttype:CONST},{input:"darr",tag:"mo",output:"\u2193",tex:"downarrow",ttype:CONST},{input:"rarr",tag:"mo",output:"\u2192",tex:"rightarrow",ttype:CONST},{input:"->",tag:"mo",output:"\u2192",tex:"to",ttype:CONST},{input:"|->",tag:"mo",output:"\u21a6",tex:"mapsto",ttype:CONST},{input:"larr",tag:"mo",output:"\u2190",tex:"leftarrow",ttype:CONST},{input:"harr",tag:"mo",output:"\u2194",tex:"leftrightarrow",ttype:CONST},{input:"rArr",tag:"mo",output:"\u21d2",tex:"Rightarrow",ttype:CONST},{input:"lArr",tag:"mo",output:"\u21d0",tex:"Leftarrow",ttype:CONST},{input:"hArr",tag:"mo",output:"\u21d4",tex:"Leftrightarrow",ttype:CONST},AMsqrt,AMroot,AMfrac,AMdiv,AMover,AMsub,AMsup,{input:"hat",tag:"mover",output:"^",tex:null,ttype:UNARY,acc:true},{input:"bar",tag:"mover",output:"\xaf",tex:"overline",ttype:UNARY,acc:true},{input:"vec",tag:"mover",output:"\u2192",tex:null,ttype:UNARY,acc:true},{input:"dot",tag:"mover",output:".",tex:null,ttype:UNARY,acc:true},{input:"ddot",tag:"mover",output:"..",tex:null,ttype:UNARY,acc:true},{input:"ul",tag:"munder",output:"\u0332",tex:"underline",ttype:UNARY,acc:true},AMtext,AMmbox,AMquote,{input:"bb",tag:"mstyle",atname:"fontweight",atval:"bold",output:"bb",tex:null,ttype:UNARY},{input:"mathbf",tag:"mstyle",atname:"fontweight",atval:"bold",output:"mathbf",tex:null,ttype:UNARY},{input:"sf",tag:"mstyle",atname:"fontfamily",atval:"sans-serif",output:"sf",tex:null,ttype:UNARY},{input:"mathsf",tag:"mstyle",atname:"fontfamily",atval:"sans-serif",output:"mathsf",tex:null,ttype:UNARY},{input:"bbb",tag:"mstyle",atname:"mathvariant",atval:"double-struck",output:"bbb",tex:null,ttype:UNARY,codes:AMbbb},{input:"mathbb",tag:"mstyle",atname:"mathvariant",atval:"double-struck",output:"mathbb",tex:null,ttype:UNARY,codes:AMbbb},{input:"cc",tag:"mstyle",atname:"mathvariant",atval:"script",output:"cc",tex:null,ttype:UNARY,codes:AMcal},{input:"mathcal",tag:"mstyle",atname:"mathvariant",atval:"script",output:"mathcal",tex:null,ttype:UNARY,codes:AMcal},{input:"tt",tag:"mstyle",atname:"fontfamily",atval:"monospace",output:"tt",tex:null,ttype:UNARY},{input:"mathtt",tag:"mstyle",atname:"fontfamily",atval:"monospace",output:"mathtt",tex:null,ttype:UNARY},{input:"fr",tag:"mstyle",atname:"mathvariant",atval:"fraktur",output:"fr",tex:null,ttype:UNARY,codes:AMfrk},{input:"mathfrak",tag:"mstyle",atname:"mathvariant",atval:"fraktur",output:"mathfrak",tex:null,ttype:UNARY,codes:AMfrk}];
+function compareNames(s1,s2){
+if(s1.input>s2.input){
+return 1;
+}else{
+return -1;
+}
+}
+var AMnames=[];
+function AMinitSymbols(){
+var _7=[],i;
+for(i=0;i>1;
+if(arr[m]=AMnames[k];
+}
+AMpreviousSymbol=AMcurrentSymbol;
+if(_1d!=""){
+AMcurrentSymbol=AMsymbols[mk].ttype;
+return AMsymbols[mk];
+}
+AMcurrentSymbol=CONST;
+k=1;
+st=str.slice(0,1);
+var _20=true;
+while("0"<=st&&st<="9"&&k<=str.length){
+st=str.slice(k,k+1);
+k++;
+}
+if(st==decimalsign){
+st=str.slice(k,k+1);
+if("0"<=st&&st<="9"){
+_20=false;
+k++;
+while("0"<=st&&st<="9"&&k<=str.length){
+st=str.slice(k,k+1);
+k++;
+}
+}
+}
+if((_20&&k>1)||k>2){
+st=str.slice(0,k-1);
+_1c="mn";
+}else{
+k=2;
+st=str.slice(0,1);
+_1c=(("A">st||st>"Z")&&("a">st||st>"z")?"mo":"mi");
+}
+if(st=="-"&&AMpreviousSymbol==INFIX){
+AMcurrentSymbol=INFIX;
+return {input:st,tag:_1c,output:st,ttype:UNARY,func:true};
+}
+return {input:st,tag:_1c,output:st,ttype:CONST};
+}
+function AMremoveBrackets(_21){
+var st;
+if(_21.nodeName=="mrow"){
+st=_21.firstChild.firstChild.nodeValue;
+if(st=="("||st=="["||st=="{"){
+_21.removeChild(_21.firstChild);
+}
+}
+if(_21.nodeName=="mrow"){
+st=_21.lastChild.firstChild.nodeValue;
+if(st==")"||st=="]"||st=="}"){
+_21.removeChild(_21.lastChild);
+}
+}
+}
+var AMnestingDepth,AMpreviousSymbol,AMcurrentSymbol;
+function AMparseSexpr(str){
+var _24,node,result,i,st,newFrag=document.createDocumentFragment();
+str=AMremoveCharsAndBlanks(str,0);
+_24=AMgetSymbol(str);
+if(_24==null||_24.ttype==RIGHTBRACKET&&AMnestingDepth>0){
+return [null,str];
+}
+if(_24.ttype==DEFINITION){
+str=_24.output+AMremoveCharsAndBlanks(str,_24.input.length);
+_24=AMgetSymbol(str);
+}
+switch(_24.ttype){
+case UNDEROVER:
+case CONST:
+str=AMremoveCharsAndBlanks(str,_24.input.length);
+return [AMcreateMmlNode(_24.tag,document.createTextNode(_24.output)),str];
+case LEFTBRACKET:
+AMnestingDepth++;
+str=AMremoveCharsAndBlanks(str,_24.input.length);
+result=AMparseExpr(str,true);
+AMnestingDepth--;
+if(typeof _24.invisible=="boolean"&&_24.invisible){
+node=AMcreateMmlNode("mrow",result[0]);
+}else{
+node=AMcreateMmlNode("mo",document.createTextNode(_24.output));
+node=AMcreateMmlNode("mrow",node);
+node.appendChild(result[0]);
+}
+return [node,result[1]];
+case TEXT:
+if(_24!=AMquote){
+str=AMremoveCharsAndBlanks(str,_24.input.length);
+}
+if(str.charAt(0)=="{"){
+i=str.indexOf("}");
+}else{
+if(str.charAt(0)=="("){
+i=str.indexOf(")");
+}else{
+if(str.charAt(0)=="["){
+i=str.indexOf("]");
+}else{
+if(_24==AMquote){
+i=str.slice(1).indexOf("\"")+1;
+}else{
+i=0;
+}
+}
+}
+}
+if(i==-1){
+i=str.length;
+}
+st=str.slice(1,i);
+if(st.charAt(0)==" "){
+node=AMcreateElementMathML("mspace");
+node.setAttribute("width","1ex");
+newFrag.appendChild(node);
+}
+newFrag.appendChild(AMcreateMmlNode(_24.tag,document.createTextNode(st)));
+if(st.charAt(st.length-1)==" "){
+node=AMcreateElementMathML("mspace");
+node.setAttribute("width","1ex");
+newFrag.appendChild(node);
+}
+str=AMremoveCharsAndBlanks(str,i+1);
+return [AMcreateMmlNode("mrow",newFrag),str];
+case UNARY:
+str=AMremoveCharsAndBlanks(str,_24.input.length);
+result=AMparseSexpr(str);
+if(result[0]==null){
+return [AMcreateMmlNode(_24.tag,document.createTextNode(_24.output)),str];
+}
+if(typeof _24.func=="boolean"&&_24.func){
+st=str.charAt(0);
+if(st=="^"||st=="_"||st=="/"||st=="|"||st==","){
+return [AMcreateMmlNode(_24.tag,document.createTextNode(_24.output)),str];
+}else{
+node=AMcreateMmlNode("mrow",AMcreateMmlNode(_24.tag,document.createTextNode(_24.output)));
+node.appendChild(result[0]);
+return [node,result[1]];
+}
+}
+AMremoveBrackets(result[0]);
+if(_24.input=="sqrt"){
+return [AMcreateMmlNode(_24.tag,result[0]),result[1]];
+}else{
+if(typeof _24.acc=="boolean"&&_24.acc){
+node=AMcreateMmlNode(_24.tag,result[0]);
+node.appendChild(AMcreateMmlNode("mo",document.createTextNode(_24.output)));
+return [node,result[1]];
+}else{
+if(!isIE&&typeof _24.codes!="undefined"){
+for(i=0;i64&&st.charCodeAt(j)<91){
+_25=_25+String.fromCharCode(_24.codes[st.charCodeAt(j)-65]);
+}else{
+_25=_25+st.charAt(j);
+}
+}
+if(result[0].nodeName=="mi"){
+result[0]=AMcreateElementMathML("mo").appendChild(document.createTextNode(_25));
+}else{
+result[0].replaceChild(AMcreateElementMathML("mo").appendChild(document.createTextNode(_25)),result[0].childNodes[i]);
+}
+}
+}
+}
+node=AMcreateMmlNode(_24.tag,result[0]);
+node.setAttribute(_24.atname,_24.atval);
+return [node,result[1]];
+}
+}
+case BINARY:
+str=AMremoveCharsAndBlanks(str,_24.input.length);
+result=AMparseSexpr(str);
+if(result[0]==null){
+return [AMcreateMmlNode("mo",document.createTextNode(_24.input)),str];
+}
+AMremoveBrackets(result[0]);
+var _27=AMparseSexpr(result[1]);
+if(_27[0]==null){
+return [AMcreateMmlNode("mo",document.createTextNode(_24.input)),str];
+}
+AMremoveBrackets(_27[0]);
+if(_24.input=="root"||_24.input=="stackrel"){
+newFrag.appendChild(_27[0]);
+}
+newFrag.appendChild(result[0]);
+if(_24.input=="frac"){
+newFrag.appendChild(_27[0]);
+}
+return [AMcreateMmlNode(_24.tag,newFrag),_27[1]];
+case INFIX:
+str=AMremoveCharsAndBlanks(str,_24.input.length);
+return [AMcreateMmlNode("mo",document.createTextNode(_24.output)),str];
+case SPACE:
+str=AMremoveCharsAndBlanks(str,_24.input.length);
+node=AMcreateElementMathML("mspace");
+node.setAttribute("width","1ex");
+newFrag.appendChild(node);
+newFrag.appendChild(AMcreateMmlNode(_24.tag,document.createTextNode(_24.output)));
+node=AMcreateElementMathML("mspace");
+node.setAttribute("width","1ex");
+newFrag.appendChild(node);
+return [AMcreateMmlNode("mrow",newFrag),str];
+case LEFTRIGHT:
+AMnestingDepth++;
+str=AMremoveCharsAndBlanks(str,_24.input.length);
+result=AMparseExpr(str,false);
+AMnestingDepth--;
+var st="";
+if(result[0].lastChild!=null){
+st=result[0].lastChild.firstChild.nodeValue;
+}
+if(st=="|"){
+node=AMcreateMmlNode("mo",document.createTextNode(_24.output));
+node=AMcreateMmlNode("mrow",node);
+node.appendChild(result[0]);
+return [node,result[1]];
+}else{
+node=AMcreateMmlNode("mo",document.createTextNode(_24.output));
+node=AMcreateMmlNode("mrow",node);
+return [node,str];
+}
+default:
+str=AMremoveCharsAndBlanks(str,_24.input.length);
+return [AMcreateMmlNode(_24.tag,document.createTextNode(_24.output)),str];
+}
+}
+function AMparseIexpr(str){
+var _2a,sym1,sym2,node,result,underover;
+str=AMremoveCharsAndBlanks(str,0);
+sym1=AMgetSymbol(str);
+result=AMparseSexpr(str);
+node=result[0];
+str=result[1];
+_2a=AMgetSymbol(str);
+if(_2a.ttype==INFIX&&_2a.input!="/"){
+str=AMremoveCharsAndBlanks(str,_2a.input.length);
+result=AMparseSexpr(str);
+if(result[0]==null){
+result[0]=AMcreateMmlNode("mo",document.createTextNode("\u25a1"));
+}else{
+AMremoveBrackets(result[0]);
+}
+str=result[1];
+if(_2a.input=="_"){
+sym2=AMgetSymbol(str);
+underover=(sym1.ttype==UNDEROVER);
+if(sym2.input=="^"){
+str=AMremoveCharsAndBlanks(str,sym2.input.length);
+var _2b=AMparseSexpr(str);
+AMremoveBrackets(_2b[0]);
+str=_2b[1];
+node=AMcreateMmlNode((underover?"munderover":"msubsup"),node);
+node.appendChild(result[0]);
+node.appendChild(_2b[0]);
+node=AMcreateMmlNode("mrow",node);
+}else{
+node=AMcreateMmlNode((underover?"munder":"msub"),node);
+node.appendChild(result[0]);
+}
+}else{
+node=AMcreateMmlNode(_2a.tag,node);
+node.appendChild(result[0]);
+}
+}
+return [node,str];
+}
+function AMparseExpr(str,_2d){
+var _2e,node,result,i,nodeList=[],newFrag=document.createDocumentFragment();
+do{
+str=AMremoveCharsAndBlanks(str,0);
+result=AMparseIexpr(str);
+node=result[0];
+str=result[1];
+_2e=AMgetSymbol(str);
+if(_2e.ttype==INFIX&&_2e.input=="/"){
+str=AMremoveCharsAndBlanks(str,_2e.input.length);
+result=AMparseIexpr(str);
+if(result[0]==null){
+result[0]=AMcreateMmlNode("mo",document.createTextNode("\u25a1"));
+}else{
+AMremoveBrackets(result[0]);
+}
+str=result[1];
+AMremoveBrackets(node);
+node=AMcreateMmlNode(_2e.tag,node);
+node.appendChild(result[0]);
+newFrag.appendChild(node);
+_2e=AMgetSymbol(str);
+}else{
+if(node!=undefined){
+newFrag.appendChild(node);
+}
+}
+}while((_2e.ttype!=RIGHTBRACKET&&(_2e.ttype!=LEFTRIGHT||_2d)||AMnestingDepth==0)&&_2e!=null&&_2e.output!="");
+if(_2e.ttype==RIGHTBRACKET||_2e.ttype==LEFTRIGHT){
+var len=newFrag.childNodes.length;
+if(len>0&&newFrag.childNodes[len-1].nodeName=="mrow"&&len>1&&newFrag.childNodes[len-2].nodeName=="mo"&&newFrag.childNodes[len-2].firstChild.nodeValue==","){
+var _30=newFrag.childNodes[len-1].lastChild.firstChild.nodeValue;
+if(_30==")"||_30=="]"){
+var _31=newFrag.childNodes[len-1].firstChild.firstChild.nodeValue;
+if(_31=="("&&_30==")"&&_2e.output!="}"||_31=="["&&_30=="]"){
+var pos=[];
+var _33=true;
+var m=newFrag.childNodes.length;
+for(i=0;_33&&i1){
+_33=pos[i].length==pos[i-2].length;
+}
+}
+if(_33){
+var row,frag,n,k,table=document.createDocumentFragment();
+for(i=0;i2){
+newFrag.removeChild(newFrag.firstChild);
+newFrag.removeChild(newFrag.firstChild);
+}
+table.appendChild(AMcreateMmlNode("mtr",row));
+}
+node=AMcreateMmlNode("mtable",table);
+if(typeof _2e.invisible=="boolean"&&_2e.invisible){
+node.setAttribute("columnalign","left");
+}
+newFrag.replaceChild(node,newFrag.firstChild);
+}
+}
+}
+}
+str=AMremoveCharsAndBlanks(str,_2e.input.length);
+if(typeof _2e.invisible!="boolean"||!_2e.invisible){
+node=AMcreateMmlNode("mo",document.createTextNode(_2e.output));
+newFrag.appendChild(node);
+}
+}
+return [newFrag,str];
+}
+function AMparseMath(str){
+var _38,node=AMcreateElementMathML("mstyle");
+if(mathcolor!=""){
+node.setAttribute("mathcolor",mathcolor);
+}
+if(displaystyle){
+node.setAttribute("displaystyle","true");
+}
+if(mathfontfamily!=""){
+node.setAttribute("fontfamily",mathfontfamily);
+}
+AMnestingDepth=0;
+node.appendChild(AMparseExpr(str.replace(/^\s+/g,""),false)[0]);
+node=AMcreateMmlNode("math",node);
+if(showasciiformulaonhover){
+node.setAttribute("title",str.replace(/\s+/g," "));
+}
+if(mathfontfamily!=""&&(isIE||mathfontfamily!="serif")){
+var _39=AMcreateElementXHTML("font");
+_39.setAttribute("face",mathfontfamily);
+_39.appendChild(node);
+return _39;
+}
+return node;
+}
+function AMstrarr2docFrag(arr,_3b){
+var _3c=document.createDocumentFragment();
+var _3d=false;
+for(var i=0;i1||_43){
+if(checkForMathML){
+checkForMathML=false;
+var nd=AMisMathMLavailable();
+AMnoMathML=nd!=null;
+if(AMnoMathML&¬ifyIfNoMathML){
+if(alertIfNoMathML){
+alert("To view the ASCIIMathML notation use Internet Explorer 6 +\nMathPlayer (free from www.dessci.com)\n or Firefox/Mozilla/Netscape");
+}else{
+AMbody.insertBefore(nd,AMbody.childNodes[0]);
+}
+}
+}
+if(!AMnoMathML){
+frg=AMstrarr2docFrag(arr,n.nodeType==8);
+var len=frg.childNodes.length;
+n.parentNode.replaceChild(frg,n);
+return len-1;
+}else{
+return 0;
+}
+}
+}
+}else{
+return 0;
+}
+}else{
+if(n.nodeName!="math"){
+for(i=0;i");
+document.write("<"+"?import namespace=\"m\" implementation=\"#mathplayer\"?>");
+}
+function generic(){
+translate();
+}
+if(typeof window.addEventListener!="undefined"){
+window.addEventListener("load",generic,false);
+}else{
+if(typeof document.addEventListener!="undefined"){
+document.addEventListener("load",generic,false);
+}else{
+if(typeof window.attachEvent!="undefined"){
+window.attachEvent("onload",generic);
+}else{
+if(typeof window.onload=="function"){
+var existing=onload;
+window.onload=function(){
+existing();
+generic();
+};
+}else{
+window.onload=generic;
+}
+}
+}
+}
+
diff --git a/ccm-cms/web/assets/xinha/plugins/Equation/equation.js b/ccm-cms/web/assets/xinha/plugins/Equation/equation.js
new file mode 100644
index 000000000..465e67412
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/Equation/equation.js
@@ -0,0 +1,146 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/Equation/equation.js */
+function Equation(_1){
+this.editor=_1;
+var _2=_1.config;
+var _3=this;
+_2.registerButton({id:"equation",tooltip:this._lc("Formula Editor"),image:_1.imgURL("equation.gif","Equation"),textMode:false,action:function(_4,id){
+_3.buttonPress(_4,id);
+}});
+_2.addToolbarElement("equation","inserthorizontalrule",-1);
+mathcolor=_2.Equation.mathcolor;
+mathfontfamily=_2.Equation.mathfontfamily;
+this.enabled=!Xinha.is_ie;
+if(this.enabled){
+this.onBeforeSubmit=this.onBeforeUnload=function(){
+_3.unParse();
+};
+}
+if(typeof AMprocessNode!="function"){
+Xinha._loadback(Xinha.getPluginDir("Equation")+"/ASCIIMathML.js",function(){
+translate();
+});
+}
+}
+Xinha.Config.prototype.Equation={"mathcolor":"black","mathfontfamily":"serif"};
+Equation._pluginInfo={name:"ASCIIMathML Formula Editor",version:"2.3 (2008-01-26)",developer:"Raimund Meyer",developer_url:"http://xinha.raimundmeyer.de",c_owner:"",sponsor:"",sponsor_url:"",license:"GNU/LGPL"};
+Equation.prototype._lc=function(_6){
+return Xinha._lc(_6,"Equation");
+};
+Equation.prototype.onGenerate=function(){
+this.parse();
+};
+Equation.prototype.onKeyPress=function(ev){
+if(this.enabled){
+e=this.editor;
+var _8=e._getFirstAncestor(e.getSelection(),["span"]);
+if(_8&&_8.className=="AM"){
+if(ev.keyCode==8||ev.keyCode==46||ev.charCode){
+Xinha._stopEvent(ev);
+return true;
+}
+}
+}
+return false;
+};
+Equation.prototype.onBeforeMode=function(_9){
+if(this.enabled&&_9=="textmode"){
+this.unParse();
+}
+};
+Equation.prototype.onMode=function(_a){
+if(this.enabled&&_a=="wysiwyg"){
+this.parse();
+}
+};
+Equation.prototype.parse=function(){
+if(this.enabled){
+var _b=this.editor._doc;
+var _c=_b.getElementsByTagName("span");
+for(var i=0;i<_c.length;i++){
+var _e=_c[i];
+if(_e.className!="AM"){
+continue;
+}
+if(_e.innerHTML.indexOf(this.editor.cc)!=-1){
+_e.innerHTML=_e.innerHTML.replace(this.editor.cc,"");
+_e.parentNode.insertBefore(_b.createTextNode(this.editor.cc),_e);
+}
+_e.title=_e.innerHTML;
+var _f=_e.cloneNode(true);
+try{
+document.adoptNode(_f);
+}
+catch(e){
+}
+AMprocessNode(_f,false);
+try{
+_b.adoptNode(_f);
+}
+catch(e){
+}
+_e.parentNode.replaceChild(_f,_e);
+_f.parentNode.insertBefore(_b.createTextNode(String.fromCharCode(32)),_f);
+_f.parentNode.insertBefore(_b.createTextNode(String.fromCharCode(32)),_f.nextSibling);
+}
+}
+};
+Equation.prototype.unParse=function(){
+var doc=this.editor._doc;
+var _11=doc.getElementsByTagName("span");
+for(var i=0;i<_11.length;i++){
+var _13=_11[i];
+if(_13.className.indexOf("AM")==-1||_13.getElementsByTagName("math").length==0){
+continue;
+}
+var _14=_13.getAttribute("title");
+_13.innerHTML=_14;
+_13.setAttribute("title",null);
+}
+};
+Equation.prototype.buttonPress=function(){
+var _15=this;
+var _16=this.editor;
+var _17={};
+_17["editor"]=_16;
+var _18=_16._getFirstAncestor(_16.getSelection(),["span"]);
+if(_18){
+_17["editedNode"]=_18;
+}
+Dialog(Xinha.getPluginDir("Equation")+"/popups/dialog.html",function(_19){
+_15.insert(_19);
+},_17);
+};
+Equation.prototype.insert=function(_1a){
+if(typeof _1a["formula"]!="undefined"){
+var _1b=(_1a["formula"]!="")?_1a["formula"].replace(/^`?(.*)`?$/m,"`$1`"):"";
+if(_1a["editedNode"]&&(_1a["editedNode"].tagName.toLowerCase()=="span")){
+var _1c=_1a["editedNode"];
+if(_1b!=""){
+_1c.innerHTML=_1b;
+if(this.enabled){
+_1c.title=_1b;
+}
+}else{
+_1c.parentNode.removeChild(_1c);
+}
+}else{
+if(!_1a["editedNode"]&&_1b!=""){
+if(this.enabled){
+var _1c=document.createElement("span");
+_1c.className="AM";
+this.editor.insertNodeAtSelection(_1c);
+_1c.innerHTML=_1b;
+_1c.title=_1b;
+}else{
+this.editor.insertHTML(""+_1b+" ");
+}
+}
+}
+if(this.enabled){
+this.parse();
+}
+}
+};
+
diff --git a/ccm-cms/web/assets/xinha/plugins/Equation/example.html b/ccm-cms/web/assets/xinha/plugins/Equation/example.html
new file mode 100755
index 000000000..d9c07a695
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/Equation/example.html
@@ -0,0 +1,45 @@
+
+
+
+
+ AsciiMathML Example
+
+
+
+
+
+
+AsciiMathML Example
+This shows how to set up your page to display MathML using AsciiMathML
+Add this to the head section of your document:
+
+
+ <!-- This block is optional configuration -->
+ <script type="text/javascript">
+ var mathcolor = "black"; // You may change the color of the formulae (default: red)
+ var showasciiformulaonhover = false; // helps students learn ASCIIMath, set to false if you like (default:true)
+ var mathfontfamily = "Arial"; //and the font (default: serif, which is good I think)
+ </script>
+ <!-- THIS LOADS THE ACTUAL SCRIPT, PLEASE ADJUST THE URL --<
+ <script type="text/javascript" src="/xinha/plugins/Equation/ASCIIMathML.js"></script>
+
+
+
+`int_a^bf(x)dx`
+`[[a,b],[c,d]]`
+
+ ASCIIMathML by Peter Jipsen ,
+Chapman University
+ For more information on AsciiMathML visit this page: http://www1.chapman.edu/~jipsen/mathml/asciimath.html
+
+
+
+
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/Equation/img/abs_value.gif b/ccm-cms/web/assets/xinha/plugins/Equation/img/abs_value.gif
new file mode 100755
index 0000000000000000000000000000000000000000..5c8798fc2dec4b824027e45a75b756663c56c6c8
GIT binary patch
literal 72
zcmZ?wbh9u|6k-r!=wM*Da_I~U6N?T50|Ns{gn>!DrGMq=x8hMD#i1sP&BVP!5rGMpV@elK|eYCn?ZYp=WYkKi`
Z;}gwU9aBPAeV0^SQ}p=HGY3WnYXIaQ8M6QY
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/plugins/Equation/img/divide.gif b/ccm-cms/web/assets/xinha/plugins/Equation/img/divide.gif
new file mode 100755
index 0000000000000000000000000000000000000000..bb5a9f8149855266e397539100c9d827c9173951
GIT binary patch
literal 66
zcmZ?wbh9u|6k-r!n90C!<yl29P)dlXOe}%F}Q8A9FcMWf|YS
Uoy(XsQ-mYRblIy@QmhQt0PI5%H2?qr
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/plugins/Equation/img/dsp_greater_equal.gif b/ccm-cms/web/assets/xinha/plugins/Equation/img/dsp_greater_equal.gif
new file mode 100755
index 0000000000000000000000000000000000000000..e3b2271b787318dffc7cf427f41545242f02f42c
GIT binary patch
literal 193
zcmZ?wbh9u|6k-r!IK#m3=ii@{w3H)RYCv`|u(~NI^rd9Z%UIQSN@dNH
z%_6-_{hT7KCv4d!9XLIGhAEHTp$8Kh4EdN3oqC`lBI7aj(}5kDi|h_4zjkIhm+@so
Oir@0<4=XfT7_0%&fJ0&c
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/plugins/Equation/img/dsp_less_equal.gif b/ccm-cms/web/assets/xinha/plugins/Equation/img/dsp_less_equal.gif
new file mode 100755
index 0000000000000000000000000000000000000000..737774767edbb268c988a65fca0315187decaeb4
GIT binary patch
literal 192
zcmZ?wbh9u|6k-r!IK#m3=ii@{v=kE~la{uYCy$=YnKft0q9s?ZU14Ejv9YrW2?}}h
z>dl&UYxeBgBO@ncVrFvW(2<&|8WAxOA1|LX=g!2$#q{*`loXXP-~c)xagbdMtgZ?Q
zeJPpqGFGi?-PFbXnd5A>ir+^uzob39jSU+s7;M1&EC2ui01^Na000Cu5XecZy*TU5yIzV1I7a9dgf;{$dl;;6
ht*vpi@!CrGMq=xBQFe7_wyPuoZGH25SI~z7Vwl
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/plugins/Equation/img/hor_fraction.gif b/ccm-cms/web/assets/xinha/plugins/Equation/img/hor_fraction.gif
new file mode 100755
index 0000000000000000000000000000000000000000..7ee0ac8f26b02caab1c8b7f560e83a4be7334660
GIT binary patch
literal 65
zcmZ?wbh9u|6k-r!=wM*Da_I~U6N?T50|Ns{gn>z+rGKTwg}sYHE}XT_KKjSzcI!cp
UyoX!CrGMq=xBQFe7_(%4T&hrf-uBv#
K)@PMs4Auadh!K(i
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/plugins/Equation/img/mul.gif b/ccm-cms/web/assets/xinha/plugins/Equation/img/mul.gif
new file mode 100755
index 0000000000000000000000000000000000000000..f271c9118fbee997938b811b659e410ebeb779bc
GIT binary patch
literal 56
zcmZ?wbh9u|6k-r!=wM*Da_I~U6N?T50|Ns{gn>!CrGMq=xBQFe7>6X}^2DUo1U~YZ
KrWVA&U=09=(+^w#
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/plugins/Equation/img/notequal.gif b/ccm-cms/web/assets/xinha/plugins/Equation/img/notequal.gif
new file mode 100755
index 0000000000000000000000000000000000000000..da562024c2711caf2b28e96aad35e1c34f481f1a
GIT binary patch
literal 57
zcmZ?wbh9u|6k-r!=wM*Da_I~U6N?T50|Ns{gn>z-rGMq=xBQEzBsTqOx;HC|r!eM6
L!DrGMq=w-RAfa+gVN-q;>|qxJUJ
ciffw7dS)(K@R)Ii&-Eu=+8+!3rGMq=w=#=*I%j=oIJ&ENORAK+
d-2I}o`%yEKDt78kwF>LGy79#KeL)Ni)&N@v8?XQX
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/plugins/Equation/img/square_root.gif b/ccm-cms/web/assets/xinha/plugins/Equation/img/square_root.gif
new file mode 100755
index 0000000000000000000000000000000000000000..03f341736547e50c01a8fcfa539a58ef01436acb
GIT binary patch
literal 70
zcmZ?wbh9u|6k-r!=wM*Da_I~U6N?T50|Ns{gn>!5rGMq=w=#=*^!B7Q-u;?1Idd+%
ZTw=sBe$`bkj!n#w)Yj;HUdhN{4FJhL7d`+0
literal 0
HcmV?d00001
diff --git a/ccm-cms/web/assets/xinha/plugins/Equation/lang/de.js b/ccm-cms/web/assets/xinha/plugins/Equation/lang/de.js
new file mode 100644
index 000000000..7cbe57ecc
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/Equation/lang/de.js
@@ -0,0 +1,23 @@
+// I18N constants
+//
+//LANG: "base", ENCODING: UTF-8
+//Author: Translator-Name,
+// FOR TRANSLATORS:
+//
+// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE
+// (at least a valid email address)
+//
+// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING;
+// (if this is not possible, please include a comment
+// that states what encoding is necessary.)
+
+{
+ "AsciiMath Formula Input": "AsciiMath Formeleditor",
+ "Formula Editor": "Formeleditor",
+ "Input":"Eingabe",
+ "Preview":"Vorschau",
+ "Based on ASCIIMathML by ": "Basiert auf ASCIIMathML von ",
+ "For more information on AsciiMathML visit this page: ":"Für weitere Informationen besuchen Sie bitte diese Seite: ",
+ 'Attention Internet Explorer users: Please note that there is no WYSIWYG representation of the formula in the editor! You might wish to use Mozilla Firefox instead.' : 'Achtung Internet Explorer-Benutzer: Die Formel wird im Editor nicht als WYSIWYG dargestellt. Benutzen Sie Mozilla Firefox als Alternative.',
+ "Show MathML" : "Zeige MathML"
+}
diff --git a/ccm-cms/web/assets/xinha/plugins/Equation/lang/ja.js b/ccm-cms/web/assets/xinha/plugins/Equation/lang/ja.js
new file mode 100644
index 000000000..207575fd6
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/Equation/lang/ja.js
@@ -0,0 +1,11 @@
+// I18N constants
+// LANG: "ja", ENCODING: UTF-8
+{
+ "AsciiMath Formula Input": "AsciiMath æ•°å¼å…¥åŠ›",
+ "Formula Editor": "æ•°å¼ã‚¨ãƒ‡ã‚£ã‚¿",
+ "Input":"入力",
+ "Preview":"表示",
+ "Based on ASCIIMathML by ": "Based on ASCIIMathML by ",
+ "For more information on AsciiMathML visit this page: ":"AsciiMathã®è©³ç´°ã¯ã“ã®ãƒšãƒ¼ã‚¸ã«ã‚りã¾ã™: ",
+ "Attention: Editing the formula in the editor is not possible, please use this dialog!" : "注æ„: ã‚¨ãƒ‡ã‚£ã‚¿ã§æ•°å¼ã‚’編集ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。必ãšã€ã“ã®ãƒ€ã‚¤ã‚¢ãƒã‚°ã‚’使用ã—ã¦ãã ã•ã„"
+};
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/Equation/lang/nl.js b/ccm-cms/web/assets/xinha/plugins/Equation/lang/nl.js
new file mode 100644
index 000000000..eeec72ebe
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/Equation/lang/nl.js
@@ -0,0 +1,13 @@
+// I18N constants
+// LANG: "nl", ENCODING: UTF-8
+// Author: Maarten Molenschot, maarten@nrgmm.nl
+
+{
+ "AsciiMath Formula Input": "AsciiMath Formule Invoeren",
+ "Formula Editor": "Formule Invoeren",
+ "Input":"Invoer",
+ "Preview":"Voorbeeld",
+ "Based on ASCIIMathML by ": "Gebasseerd op ASCIIMathML van ",
+ "For more information on AsciiMathML visit this page: ":"Voor meer informatie over AsciiMathML ga je naar: ",
+ "Attention: Editing the formula in the editor is not possible, please use this dialog!" : "Let op! het bewerken van de formule in de editor is niet mogelijk, gebruik dit dialoog!"
+}
diff --git a/ccm-cms/web/assets/xinha/plugins/Equation/lang/pt_br.js b/ccm-cms/web/assets/xinha/plugins/Equation/lang/pt_br.js
new file mode 100644
index 000000000..3958dc1e6
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/Equation/lang/pt_br.js
@@ -0,0 +1,36 @@
+// I18N constants
+
+// LANG: "pt_br", ENCODING: UTF-8
+// Portuguese Brazilian Translation
+
+// Author: Marcio Barbosa,
+// MSN: tomarshall@msn.com - ICQ: 69419933
+// Site: http://www.mpg.com.br
+
+// Last revision: 05 september 2007
+// Please don´t remove this information
+// If you modify any source, please insert a comment with your name and e-mail
+
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt).
+{
+ ""text"": ""text"",
+ "AsciiMath Formula Input": "Inserir Fórmula AsciiMath",
+ "AsciiMathML Example": "Exemplo AsciiMathML",
+ "Based on ASCIIMathML by": "Baseado no ASCIIMathML por",
+ "Cancel": "Cancelar",
+ "Equation": "Equação",
+ "For more information on AsciiMathML visit this page:": "Para maiores informações do AsciiMathML visite este site:",
+ "Formula Editor": "Editor de Fórmula",
+ "Input": "Entrada",
+ "Insert": "Inserir",
+ "Preview": "Visualizar",
+ "Select operation": "Selecionar operação",
+ "`"text"`": "`"texto"`",
+
+ // new messages - see: http://xinha.webfactional.com/wiki/TranslationChanges
+ "Attention Internet Explorer users: Please note that there is no WYSIWYG representation of the formula in the editor! You might wish to use Mozilla Firefox instead.": "Atenção usuários do Internet Explorer: Observe que não é possÃvel representar fórmulas no editor no modo de visualização! É preferivelmente que você utilize o Mozilla Firefox.",
+ "Show MathML": "Mostrar MathML",
+ // removed old messages - see: http://xinha.webfactional.com/wiki/TranslationChanges
+ "Attention: Editing the formula in the editor is not possible, please use this dialog!": "Atenção: Não é possÃvel editar a fórmula no editor. Ppor favor, utilize este caixa de diálogo!"
+}
diff --git a/ccm-cms/web/assets/xinha/plugins/Equation/popups/dialog.html b/ccm-cms/web/assets/xinha/plugins/Equation/popups/dialog.html
new file mode 100755
index 000000000..4ee910774
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/Equation/popups/dialog.html
@@ -0,0 +1,358 @@
+
+
+
+
+ AsciiMath Formula Input
+
+
+
+
+
+
+
+
+
+
+AsciiMath Formula Input
+
+
+
+
+
+
+
+ OK
+ Cancel
+
+
+
+
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/Equation/readme.txt b/ccm-cms/web/assets/xinha/plugins/Equation/readme.txt
new file mode 100755
index 000000000..06719ce60
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/Equation/readme.txt
@@ -0,0 +1,38 @@
+AsciiMathML Formula Editor for Xinha
+ _______________________
+
+Based on AsciiMathML by Peter Jipsen (http://www.chapman.edu/~jipsen).
+Plugin by Raimund Meyer (ray) xinha@raimundmeyer.de
+
+AsciiMathML is a JavaScript library for translating ASCII math notation to Presentation MathML.
+
+Usage
+ The formmulae are stored in their ASCII representation, so you have to include the
+ ASCIIMathML library which can be found in the plugin folder in order to render the MathML output in your pages.
+
+ Example (also see example.html):
+ var mathcolor = "black"; // You may change the color of the formulae (default: red)
+ var mathfontfamily = "Arial"; //and the font (default: serif, which is good I think)
+ var showasciiformulaonhover = false; // if true helps students learn ASCIIMath (default:true)
+
+
+ The recommended browser for using this plugin is Mozilla/Firefox. At the moment showing the MathML output
+ inside the editor is not supported in Internet Explorer.
+
+
+License information
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or (at
+ your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License (at http://www.gnu.org/licenses/lgpl.html)
+ for more details.
+
+ NOTE: I have changed the license of AsciiMathML from GPL to LGPL according to a permission
+ from the author (see http://xinha.gogo.co.nz/punbb/viewtopic.php?pid=4150#p4150)
+ Raimund Meyer 11-29-2006
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/Classes/ExtendedFileManager.php b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/Classes/ExtendedFileManager.php
new file mode 100755
index 000000000..5e934661d
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/Classes/ExtendedFileManager.php
@@ -0,0 +1,825 @@
+config = $config;
+
+ $this->mode = empty($mode) ? (empty($config['insert_mode']) ? 'image' : $config['insert_mode']): $mode;
+ }
+
+ /**
+ * Get the base directory.
+ * @return string base dir, see config.inc.php
+ */
+ function getImagesDir()
+ {
+ if ($this->mode == 'link' && isset($this->config['files_dir']))
+ Return $this->config['files_dir'];
+ else Return $this->config['images_dir'];
+ }
+
+ /**
+ * Get the base URL.
+ * @return string base url, see config.inc.php
+ */
+ function getImagesURL()
+ {
+ if ($this->mode == 'link' && isset($this->config['files_url']))
+ Return $this->config['files_url'];
+ else Return $this->config['images_url'];
+ }
+
+ function isValidBase()
+ {
+ return is_dir($this->getImagesDir());
+ }
+
+ /**
+ * Get the tmp file prefix.
+ * @return string tmp file prefix.
+ */
+ function getTmpPrefix()
+ {
+ Return $this->config['tmp_prefix'];
+ }
+
+ /**
+ * Get the sub directories in the base dir.
+ * Each array element contain
+ * the relative path (relative to the base dir) as key and the
+ * full path as value.
+ * @return array of sub directries
+ * array('path name' => 'full directory path', ...)
+ */
+ function getDirs()
+ {
+ if(is_null($this->dirs))
+ {
+ $dirs = $this->_dirs($this->getImagesDir(),'/');
+ ksort($dirs);
+ $this->dirs = $dirs;
+ }
+ return $this->dirs;
+ }
+
+ /**
+ * Recursively travese the directories to get a list
+ * of accessable directories.
+ * @param string $base the full path to the current directory
+ * @param string $path the relative path name
+ * @return array of accessiable sub-directories
+ * array('path name' => 'full directory path', ...)
+ */
+ function _dirs($base, $path)
+ {
+ $base = Files::fixPath($base);
+ $dirs = array();
+
+ if($this->isValidBase() == false)
+ return $dirs;
+
+ $d = @dir($base);
+
+ while (false !== ($entry = $d->read()))
+ {
+ //If it is a directory, and it doesn't start with
+ // a dot, and if is it not the thumbnail directory
+ if(is_dir($base.$entry)
+ && substr($entry,0,1) != '.'
+ && $this->isThumbDir($entry) == false)
+ {
+ $relative = Files::fixPath($path.$entry);
+ $fullpath = Files::fixPath($base.$entry);
+ $dirs[$relative] = $fullpath;
+ $dirs = array_merge($dirs, $this->_dirs($fullpath, $relative));
+ }
+ }
+ $d->close();
+
+ Return $dirs;
+ }
+
+ /**
+ * Get all the files and directories of a relative path.
+ * @param string $path relative path to be base path.
+ * @return array of file and path information.
+ * array(0=>array('relative'=>'fullpath',...), 1=>array('filename'=>fileinfo array(),...)
+ * fileinfo array: array('url'=>'full url',
+ * 'relative'=>'relative to base',
+ * 'fullpath'=>'full file path',
+ * 'image'=>imageInfo array() false if not image,
+ * 'stat' => filestat)
+ */
+ function getFiles($path)
+ {
+ $files = array();
+ $dirs = array();
+
+ $valid_extensions = $this->mode == 'image' ? $this->config['allowed_image_extensions'] : $this->config['allowed_link_extensions'];
+
+ if($this->isValidBase() == false)
+ return array($files,$dirs);
+
+ $path = Files::fixPath($path);
+ $base = Files::fixPath($this->getImagesDir());
+ $fullpath = Files::makePath($base,$path);
+
+
+ $d = @dir($fullpath);
+
+ while (false !== ($entry = $d->read()))
+ {
+ //not a dot file or directory
+ if(substr($entry,0,1) != '.')
+ {
+ if(is_dir($fullpath.$entry)
+ && $this->isThumbDir($entry) == false)
+ {
+ $relative = Files::fixPath($path.$entry);
+ $full = Files::fixPath($fullpath.$entry);
+ $count = $this->countFiles($full);
+ $dirs[$relative] = array('fullpath'=>$full,'entry'=>$entry,'count'=>$count, 'stat'=>stat($fullpath.$entry));
+ }
+
+ else if(is_file($fullpath.$entry) && $this->isThumb($entry)==false && $this->isTmpFile($entry) == false)
+ {
+ $afruext = strtolower(substr(strrchr($entry, "."), 1));
+
+ if(in_array($afruext,$valid_extensions))
+ {
+
+ $file['url'] = Files::makePath($this->config['base_url'],$path).$entry;
+ $file['relative'] = $path.$entry;
+ $file['fullpath'] = $fullpath.$entry;
+ $img = $this->getImageInfo($fullpath.$entry);
+ if(!is_array($img)) $img[0]=$img[1]=0;
+ $file['image'] = $img;
+ $file['stat'] = stat($fullpath.$entry);
+ $file['ext'] = $afruext;
+ $files[$entry] = $file;
+ }
+
+ }
+ }
+ }
+ $d->close();
+ ksort($dirs);
+ ksort($files);
+
+ Return array($dirs, $files);
+ }
+
+ /**
+ * Count the number of files and directories in a given folder
+ * minus the thumbnail folders and thumbnails.
+ */
+ function countFiles($path)
+ {
+ $total = 0;
+
+ if(is_dir($path))
+ {
+ $d = @dir($path);
+
+ while (false !== ($entry = $d->read()))
+ {
+ //echo $entry." ";
+ if(substr($entry,0,1) != '.'
+ && $this->isThumbDir($entry) == false
+ && $this->isTmpFile($entry) == false
+ && $this->isThumb($entry) == false)
+ {
+ $total++;
+ }
+ }
+ $d->close();
+ }
+ return $total;
+ }
+
+ /**
+ * Get image size information.
+ * @param string $file the image file
+ * @return array of getImageSize information,
+ * false if the file is not an image.
+ */
+ function getImageInfo($file)
+ {
+ Return @getImageSize($file);
+ }
+
+ /**
+ * Check if the file contains the thumbnail prefix.
+ * @param string $file filename to be checked
+ * @return true if the file contains the thumbnail prefix, false otherwise.
+ */
+ function isThumb($file)
+ {
+ $len = strlen($this->config['thumbnail_prefix']);
+ if(substr($file,0,$len)==$this->config['thumbnail_prefix'])
+ Return true;
+ else
+ Return false;
+ }
+
+ /**
+ * Check if the given directory is a thumbnail directory.
+ * @param string $entry directory name
+ * @return true if it is a thumbnail directory, false otherwise
+ */
+ function isThumbDir($entry)
+ {
+ if($this->config['thumbnail_dir'] == false
+ || strlen(trim($this->config['thumbnail_dir'])) == 0)
+ Return false;
+ else
+ Return ($entry == $this->config['thumbnail_dir']);
+ }
+
+ /**
+ * Check if the given file is a tmp file.
+ * @param string $file file name
+ * @return boolean true if it is a tmp file, false otherwise
+ */
+ function isTmpFile($file)
+ {
+ $len = strlen($this->config['tmp_prefix']);
+ if(substr($file,0,$len)==$this->config['tmp_prefix'])
+ Return true;
+ else
+ Return false;
+ }
+
+ /**
+ * For a given image file, get the respective thumbnail filename
+ * no file existence check is done.
+ * @param string $fullpathfile the full path to the image file
+ * @return string of the thumbnail file
+ */
+ function getThumbName($fullpathfile)
+ {
+ $path_parts = pathinfo($fullpathfile);
+
+ $thumbnail = $this->config['thumbnail_prefix'].$path_parts['basename'];
+
+ if($this->config['safe_mode'] == true
+ || strlen(trim($this->config['thumbnail_dir'])) == 0)
+ {
+ Return Files::makeFile($path_parts['dirname'],$thumbnail);
+ }
+ else
+ {
+ if(strlen(trim($this->config['thumbnail_dir'])) > 0)
+ {
+ $path = Files::makePath($path_parts['dirname'],$this->config['thumbnail_dir']);
+ if(!is_dir($path))
+ Files::createFolder($path);
+ Return Files::makeFile($path,$thumbnail);
+ }
+ else //should this ever happen?
+ {
+ //error_log('ExtendedFileManager: Error in creating thumbnail name');
+ }
+ }
+ }
+
+ /**
+ * Similar to getThumbName, but returns the URL, base on the
+ * given base_url in config.inc.php
+ * @param string $relative the relative image file name,
+ * relative to the base_dir path
+ * @return string the url of the thumbnail
+ */
+ function getThumbURL($relative)
+ {
+ $path_parts = pathinfo($relative);
+ $thumbnail = $this->config['thumbnail_prefix'].$path_parts['basename'];
+ if($path_parts['dirname']=='\\') $path_parts['dirname']='/';
+
+ if($this->config['safe_mode'] == true
+ || strlen(trim($this->config['thumbnail_dir'])) == 0)
+ {
+ Return Files::makeFile($this->getImagesURL(),$thumbnail);
+ }
+ else
+ {
+ if(strlen(trim($this->config['thumbnail_dir'])) > 0)
+ {
+ $path = Files::makePath($path_parts['dirname'],$this->config['thumbnail_dir']);
+ $url_path = Files::makePath($this->getImagesURL(), $path);
+ Return Files::makeFile($url_path,$thumbnail);
+ }
+ else //should this ever happen?
+ {
+ //error_log('ExtendedFileManager: Error in creating thumbnail url');
+ }
+
+ }
+ }
+
+ /**
+ * For a given image file, get the respective resized filename
+ * no file existence check is done.
+ * @param string $fullpathfile the full path to the image file
+ * @param integer $width the intended width
+ * @param integer $height the intended height
+ * @param boolean $mkDir whether to attempt to make the resized_dir if it doesn't exist
+ * @return string of the resized filename
+ */
+ function getResizedName($fullpathfile, $width, $height, $mkDir = TRUE)
+ {
+ $path_parts = pathinfo($fullpathfile);
+
+ $thumbnail = $this->config['resized_prefix']."_{$width}x{$height}_{$path_parts['basename']}";
+
+ if( strlen(trim($this->config['resized_dir'])) == 0 || $this->config['safe_mode'] == true )
+ {
+ Return Files::makeFile($path_parts['dirname'],$thumbnail);
+ }
+ else
+ {
+ $path = Files::makePath($path_parts['dirname'],$this->config['resized_dir']);
+ if($mkDir && !is_dir($path))
+ Files::createFolder($path);
+ Return Files::makeFile($path,$thumbnail);
+ }
+ }
+
+ /**
+ * Check if the given path is part of the subdirectories
+ * under the base_dir.
+ * @param string $path the relative path to be checked
+ * @return boolean true if the path exists, false otherwise
+ */
+ function validRelativePath($path)
+ {
+ $dirs = $this->getDirs();
+ if($path == '/')
+ Return true;
+ //check the path given in the url against the
+ //list of paths in the system.
+ for($i = 0; $i < count($dirs); $i++)
+ {
+ $key = key($dirs);
+ //we found the path
+ if($key == $path)
+ Return true;
+
+ next($dirs);
+ }
+ Return false;
+ }
+
+ /**
+ * Process uploaded files, assumes the file is in
+ * $_FILES['upload'] and $_POST['dir'] is set.
+ * The dir must be relative to the base_dir and exists.
+ * @return null
+ */
+ function processUploads()
+ {
+ if($this->isValidBase() == false)
+ return;
+
+ $relative = null;
+
+ if(isset($_POST['dir']))
+ $relative = rawurldecode($_POST['dir']);
+ else
+ return;
+
+ //check for the file, and must have valid relative path
+ if(isset($_FILES['upload']) && $this->validRelativePath($relative))
+ {
+ Return $this->_processFiles($relative, $_FILES['upload']);
+ }
+ }
+
+ /**
+ * Process upload files. The file must be an
+ * uploaded file. Any duplicate
+ * file will be renamed. See Files::copyFile for details
+ * on renaming.
+ * @param string $relative the relative path where the file
+ * should be copied to.
+ * @param array $file the uploaded file from $_FILES
+ * @return boolean true if the file was processed successfully,
+ * false otherwise
+ */
+ function _processFiles($relative, $file)
+ {
+
+ if($file['error']!=0)
+ {
+ Return false;
+ }
+
+ if(!is_file($file['tmp_name']))
+ {
+ Return false;
+ }
+
+ if(!is_uploaded_file($file['tmp_name']))
+ {
+ Files::delFile($file['tmp_name']);
+ Return false;
+ }
+
+ $valid_extensions = $this->mode == 'image' ? $this->config['allowed_image_extensions'] : $this->config['allowed_link_extensions'];
+ $max_size = $this->mode == 'image' ? $this->config['max_filesize_kb_image'] : $this->config['max_filesize_kb_link'];
+ $afruext = strtolower(substr(strrchr($file['name'], "."), 1));
+
+ if(!in_array($afruext, $valid_extensions))
+ {
+ Files::delFile($file['tmp_name']);
+ Return 'Cannot upload $extension='.$afruext.'$ Files. Permission denied.';
+ }
+
+ if($file['size']>($max_size*1024))
+ {
+ Files::delFile($file['tmp_name']);
+ Return 'Unble to upload file. Maximum file size [$max_size='.$max_size.'$ KB] exceeded.';
+ }
+
+ if(!empty($this->config['max_foldersize_mb']) && (Files::dirSize($this->getImagesDir()))+$file['size']> ($this->config['max_foldersize_mb']*1048576))
+ {
+ Files::delFile($file['tmp_name']);
+ Return ("Cannot upload. Maximum folder size reached. Delete unwanted files and try again.");
+ }
+
+ //now copy the file
+ $path = Files::makePath($this->getImagesDir(),$relative);
+ $result = Files::copyFile($file['tmp_name'], $path, $file['name']);
+
+ //no copy error
+ if(!is_int($result))
+ {
+ Files::delFile($file['tmp_name']);
+ Return 'File "$file='.$file['name'].'$" successfully uploaded.';
+ }
+
+ //delete tmp files.
+ Files::delFile($file['tmp_name']);
+ Return false;
+
+ }
+
+
+ function getDiskInfo()
+ {
+ if (empty($this->config['max_foldersize_mb']))
+ return '';
+
+ $tmpFreeSize=($this->config['max_foldersize_mb']*1048576)-Files::dirSize($this->getImagesDir());
+
+ if(!is_numeric($tmpFreeSize) || $tmpFreeSize<0) $tmpFreeSize=0;
+
+ Return 'Total Size : $max_foldersize_mb='.$this->config['max_foldersize_mb'].'$ MB, Free Space: $free_space='.Files::formatSize($tmpFreeSize).'$';
+ }
+
+
+
+ /**
+ * Get the URL of the relative file.
+ * basically appends the relative file to the
+ * base_url given in config.inc.php
+ * @param string $relative a file the relative to the base_dir
+ * @return string the URL of the relative file.
+ */
+ function getFileURL($relative)
+ {
+ Return Files::makeFile($this->getImagesURL(),$relative);
+ }
+
+ /**
+ * Get the fullpath to a relative file.
+ * @param string $relative the relative file.
+ * @return string the full path, .ie. the base_dir + relative.
+ */
+ function getFullPath($relative)
+ {
+ Return Files::makeFile($this->getImagesDir(),$relative);;
+ }
+
+ /**
+ * Get the default thumbnail.
+ * @return string default thumbnail, empty string if
+ * the thumbnail doesn't exist.
+ */
+ function getDefaultThumb()
+ {
+ if(is_file($this->config['default_thumbnail']))
+ Return $this->config['default_thumbnail'];
+ else
+ Return '';
+ }
+
+
+ /**
+ * Checks image size. If the image size is less than default size
+ * returns the original size else returns default size to display thumbnail
+ */
+ function checkImageSize($relative)
+ {
+ $fullpath = Files::makeFile($this->getImagesDir(),$relative);
+
+ $afruext = strtolower(substr(strrchr($relative, "."), 1));
+
+ if(!in_array($afruext,$this->config['thumbnail_extensions']))
+ {
+ $imgInfo=array(0,0);
+ Return $imgInfo;
+ }
+ else
+ {
+ $imgInfo = @getImageSize($fullpath);
+ //not an image
+ if(!is_array($imgInfo))
+ {
+ $imgInfo=array(0,0);
+ Return $imgInfo;
+ }
+ else
+ {
+ if($imgInfo[0] > $this->config['thumbnail_width'])
+ $imgInfo[0] = $this->config['thumbnail_width'];
+
+ if($imgInfo[1] > $this->config['thumbnail_height'])
+ $imgInfo[1] = $this->config['thumbnail_height'];
+
+ Return $imgInfo;
+ }
+ }
+
+ }
+
+
+ /**
+ * Get the thumbnail url to be displayed.
+ * If the thumbnail exists, and it is up-to-date
+ * the thumbnail url will be returns. If the
+ * file is not an image, a default image will be returned.
+ * If it is an image file, and no thumbnail exists or
+ * the thumbnail is out-of-date (i.e. the thumbnail
+ * modified time is less than the original file)
+ * then a thumbs.php?img=filename.jpg is returned.
+ * The thumbs.php url will generate a new thumbnail
+ * on the fly. If the image is less than the dimensions
+ * of the thumbnails, the image will be display instead.
+ * @param string $relative the relative image file.
+ * @return string the url of the thumbnail, be it
+ * actually thumbnail or a script to generate the
+ * thumbnail on the fly.
+ */
+ function getThumbnail($relative)
+ {
+ global $IMConfig;
+
+ $fullpath = Files::makeFile($this->getImagesDir(),$relative);
+
+ //not a file???
+ if(!is_file($fullpath))
+ Return $this->getDefaultThumb();
+
+ $afruext = strtolower(substr(strrchr($relative, "."), 1));
+
+ if(!in_array($afruext,$this->config['thumbnail_extensions']))
+ {
+ if(is_file('icons/'.$afruext.'.gif'))
+ Return('icons/'.$afruext.'.gif');
+ else
+ Return $this->getDefaultThumb();
+ }
+
+ $imgInfo = @getImageSize($fullpath);
+
+ //not an image
+ if(!is_array($imgInfo))
+ Return $this->getDefaultThumb();
+
+
+ //Returning original image as thumbnail without Image Library by Afru
+ if(!$this->config['img_library']) Return $this->getFileURL($relative);
+
+
+ //the original image is smaller than thumbnails,
+ //so just return the url to the original image.
+ if ($imgInfo[0] <= $this->config['thumbnail_width']
+ && $imgInfo[1] <= $this->config['thumbnail_height'])
+ Return $this->getFileURL($relative);
+
+ $thumbnail = $this->getThumbName($fullpath);
+
+ //check for thumbnails, if exists and
+ // it is up-to-date, return the thumbnail url
+ if(is_file($thumbnail))
+ {
+ if(filemtime($thumbnail) >= filemtime($fullpath))
+ Return $this->getThumbURL($relative);
+ }
+
+ //well, no thumbnail was found, so ask the thumbs.php
+ //to generate the thumbnail on the fly.
+ Return $IMConfig['backend_url'] . '__function=thumbs&img='.rawurlencode($relative)."&mode=$this->mode";
+ }
+
+ /**
+ * Delete and specified files.
+ * @return boolean true if delete, false otherwise
+ */
+ function deleteFiles()
+ {
+ if(isset($_GET['delf']))
+ return $this->_delFile(rawurldecode($_GET['delf']));
+ return false;
+ }
+
+ /**
+ * Delete and specified directories.
+ * @return boolean true if delete, false otherwise
+ */
+ function deleteDirs()
+ {
+ if(isset($_GET['deld']))
+ return $this->_delDir(rawurldecode($_GET['deld']));
+ else
+ Return false;
+ }
+
+ /**
+ * Delete the relative file, and any thumbnails.
+ * @param string $relative the relative file.
+ * @return boolean true if deleted, false otherwise.
+ */
+ function _delFile($relative)
+ {
+ $fullpath = Files::makeFile($this->getImagesDir(),$relative);
+
+ $afruext = strtolower(substr(strrchr($relative, "."), 1));
+
+ $valid_extensions = $this->mode == 'image' ? $this->config['allowed_image_extensions'] : $this->config['allowed_link_extensions'];
+
+ if(!in_array($afruext,$valid_extensions))
+ {
+ return false;
+ }
+
+ //check that the file is an image
+ if(is_array($this->getImageInfo($fullpath)))
+ {
+ $thumbnail = $this->getThumbName($fullpath);
+ Files::delFile($thumbnail);
+ }
+
+ Return Files::delFile($fullpath);
+ }
+
+ /**
+ * Delete directories recursively.
+ * @param string $relative the relative path to be deleted.
+ * @return boolean true if deleted, false otherwise.
+ */
+ function _delDir($relative)
+ {
+ $fullpath = Files::makePath($this->getImagesDir(),$relative);
+ // if($this->countFiles($fullpath) <= 0)
+ return Files::delFolder($fullpath,true); //delete recursively.
+ //else
+ //Return false;
+ }
+
+ /**
+ * Create new directories.
+ * If in safe_mode, nothing happens.
+ * @return boolean true if created, false otherwise.
+ */
+ function processNewDir()
+ {
+ if($this->config['safe_mode'] == true)
+ Return false;
+
+ if(isset($_GET['newDir']) && isset($_GET['dir']))
+ {
+ $newDir = rawurldecode($_GET['newDir']);
+ $dir = rawurldecode($_GET['dir']);
+ $path = Files::makePath($this->getImagesDir(),$dir);
+ $fullpath = Files::makePath($path, Files::escape($newDir));
+ if(is_dir($fullpath))
+ Return false;
+
+ Return Files::createFolder($fullpath);
+ }
+ }
+
+ /**
+ * Renames files if certain GET variables are set
+ * @return bool
+ */
+ function processRenames()
+ {
+ if(!empty($_GET['rename']) && !empty($_GET['renameTo']))
+ {
+ // new file name (without path and extension)
+ $newName = Files::escape(rawurldecode($_GET['renameTo']));
+ $newName = str_replace('.', '', $newName);
+
+ // path to file (from base images directory)
+ $oldName = rawurldecode($_GET['rename']);
+
+ // strip parent dir ("..") to avoid escaping from base directiory
+ $oldName = preg_replace('#\.\.#', '', $oldName);
+
+ if (is_dir($oldPath = Files::makeFile($this->getImagesDir(), $_GET['dir'].$oldName)))
+ {
+ $newPath = Files::makeFile($this->getImagesDir(), $_GET['dir'].$newName);
+ return Files::rename($oldPath,$newPath);
+ }
+ else
+ {
+ // path to old file
+ $oldPath = Files::makeFile($this->getImagesDir(), $oldName);
+
+ $ret = Files::renameFile($oldPath, $newName);
+ if ($ret === true) {
+ // delete old thumbnail
+ Files::delFile($this->getThumbname($oldPath));
+ }
+ }
+ return $ret;
+ }
+
+ return null;
+ }
+
+ function processPaste()
+ {
+ switch ($_GET['paste'])
+ {
+ case 'copyFile':
+ $src = Files::makeFile($this->getImagesDir(), $_GET['srcdir'].$_GET['file']);
+ $file = $_GET['file'];
+ $dest = Files::makeFile($this->getImagesDir(), $_GET['dir']);
+ return Files::copyFile($src,$dest,$file);
+ break;
+ case 'copyDir':
+ $basePath = $this->getImagesDir();
+ $src = $_GET['srcdir'].$_GET['file'];
+ $dest = $_GET['dir'].$_GET['file'];
+ return Files::copyDir($basePath,$src,$dest);
+ break;
+ case 'moveFile':
+ $src = Files::makeFile($this->getImagesDir(), $_GET['srcdir'].$_GET['file']);
+ $dest = Files::makeFile($this->getImagesDir(), $_GET['dir'].$_GET['file']);
+ return Files::rename($src,$dest);
+ break;
+ case 'moveDir':
+ $src = Files::makeFile($this->getImagesDir(), $_GET['srcdir'].$_GET['file']);
+ $dest = Files::makeFile($this->getImagesDir(), $_GET['dir'].$_GET['file']);
+ return Files::rename($src,$dest);
+ break;
+ }
+ }
+}
+
+?>
diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/Readme.txt b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/Readme.txt
new file mode 100755
index 000000000..ea19a87eb
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/Readme.txt
@@ -0,0 +1,111 @@
+Package : Extended File Manager EFM 1.1.1
+
+Version 1.1 created from 1.0 beta by Krzysztof Kotowicz
+
+Overview :
+----------
+
+Extended File Manager is an advanced plugin for Xinha
+
+It works in two different modes.
+1). Insert Image Mode and
+2). Insert File Link Mode.
+
+In Insert Image Mode, it replaces the basic insert image functionality of Xinha with its advanced image manager.
+
+If Insert File Link Mode is enabled, a new icon will be added to the toolbar with advanced file linking capability.
+
+
+
+Complete Features :
+-------------------
+* Easy config.inc file that enables individual options for both modes.
+* Thumnail View
+* List View
+* Nice icons for both views
+* Create Folders
+* Vertical Scrolling
+* Allowed extensions to view or upload.
+* File Uploads
+* Max File upload limit
+* Max Upload Folder size (Including all subfolders and files. A must see option.)
+* Dynamic display of available free space in the Upload Folder
+* Dynamic Thumbnails using Image libraries or browser resize
+* Image Editor (Actually done by Wei...a great addon)
+* Can be used to insert images along with properties.
+* Can be used to insert link to non-image files like pdf or zip.
+* You can specify image margin / padding / background and border colors
+* You may edit Alt/title tags for inserted images
+
+(Most of the features can be enabled/disabled as needed)
+
+Installation :
+--------------
+
+Installing involves extracting the archive to 'plugins' subdirectory of Xinha
+and selecting the plugin in appropriate xinha_plugins list.
+
+Plugin may be configured via xinha_config.ExtendedFileManager object.
+Look into ImageManager plugin documentation as this plugin uses almost identical
+settings. All available options can be found in the file config.inc.php.
+
+// only snippets of code from initializing file shown below
+
+
+ xinha_plugins = xinha_plugins ? xinha_plugins :
+ [
+ 'ContextMenu',
+ 'SuperClean',
+ 'CharacterMap',
+ 'GetHtml',
+ 'ExtendedFileManager',
+ /*'ImageManager',*/ // replace image manager with EFM
+ 'Linker'
+ ];
+
+...
+
+//If you don't want to add a button for linking files and use only the advanced ImageManager
+xinha_config.ExtendedFileManager.use_linker = false;
+// pass the configuration to plugin
+if (xinha_config.ExtendedFileManager) {
+ with (xinha_config.ExtendedFileManager)
+ {
+ ';
+ $IMConfig['images_url'] = '';
+ $IMConfig['files_dir'] = '';
+ $IMConfig['files_url'] = '';
+ $IMConfig['thumbnail_prefix'] = 't_';
+ $IMConfig['thumbnail_dir'] = 't';
+ $IMConfig['resized_prefix'] = 'resized_';
+ $IMConfig['resized_dir'] = '';
+ $IMConfig['tmp_prefix'] = '_tmp';
+ $IMConfig['max_filesize_kb_image'] = 2000;
+ // maximum size for uploading files in 'insert image' mode (2000 kB here)
+
+ $IMConfig['max_filesize_kb_link'] = 5000;
+ // maximum size for uploading files in 'insert link' mode (5000 kB here)
+
+ // Maximum upload folder size in Megabytes.
+ // Use 0 to disable limit
+ $IMConfig['max_foldersize_mb'] = 0;
+
+ $IMConfig['allowed_image_extensions'] = array("jpg","gif","png");
+ $IMConfig['allowed_link_extensions'] = array("jpg","gif","pdf","ip","txt",
+ "psd","png","html","swf",
+ "xml","xls");
+
+ require_once '/path/to/xinha/contrib/php-xinha.php';
+ xinha_pass_to_php_backend($IMConfig);
+
+ ?>
+ }
+}
+
+=====
+afrusoft@gmail.com - author of EFM 1.0 beta
+koto@webworkers.pl - EFM 1.1 (most of the code taken from Xinha codebase)
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/EditorContent.js b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/EditorContent.js
new file mode 100644
index 000000000..2a74bf44b
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/EditorContent.js
@@ -0,0 +1,662 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/ExtendedFileManager/assets/EditorContent.js */
+function MM_findObj(n,d){
+var p,i,x;
+if(!d){
+d=document;
+}
+if((p=n.indexOf("?"))>0&&parent.frames.length){
+d=parent.frames[n.substring(p+1)].document;
+n=n.substring(0,p);
+}
+if(!(x=d[n])&&d.all){
+x=d.all[n];
+}
+for(i=0;!x&&i-1&&navigator.appVersion.indexOf("Mac")>-1)){
+ox=0;
+oy=0;
+if(g.style.left){
+x=parseInt(g.style.left);
+y=parseInt(g.style.top);
+}else{
+var w1=parseInt(el.style.width);
+bx=(a<0)?-5-w1:-10;
+a=(Math.abs(a)<1000)?0:a;
+b=(Math.abs(b)<1000)?0:b;
+if(event==null){
+x=document.body.scrollLeft+bx;
+}else{
+x=document.body.scrollLeft+event.clientX+bx;
+}
+if(event==null){
+y=document.body.scrollTop;
+}else{
+y=document.body.scrollTop+event.clientY;
+}
+}
+}
+}else{
+if(document.layers){
+x=g.x;
+y=g.y;
+var q0=document.layers,dd="";
+for(var s=0;s4){
+xx+="px";
+yy+="px";
+}
+if(navigator.appVersion.indexOf("MSIE 5")>-1&&navigator.appVersion.indexOf("Mac")>-1){
+xx+=parseInt(document.body.leftMargin);
+yy+=parseInt(document.body.topMargin);
+xx+="px";
+yy+="px";
+}
+e.left=xx;
+e.top=yy;
+}
+pic_x=parseInt(xx);
+pic_y=parseInt(yy);
+}
+}
+}
+var ie=document.all;
+var ns6=document.getElementById&&!document.all;
+var dragapproved=false;
+var z,x,y,status,ant,canvas,content,pic_width,pic_height,image,resizeHandle,oa_w,oa_h,oa_x,oa_y,mx2,my2;
+function init_resize(){
+P7_Snap("theImage","ant",0,0);
+if(canvas==null){
+canvas=MM_findObj("imgCanvas");
+}
+if(pic_width==null||pic_height==null){
+image=MM_findObj("theImage");
+pic_width=image.width;
+pic_height=image.height;
+}
+if(ant==null){
+ant=MM_findObj("ant");
+}
+ant.style.left=pic_x;
+ant.style.top=pic_y;
+ant.style.width=pic_width;
+ant.style.height=pic_height;
+ant.style.visibility="visible";
+drawBoundHandle();
+jg_doc.paint();
+}
+initEditor=function(){
+init_crop();
+init_resize();
+var _a=MM_findObj("markerImg",window.top.document);
+if(_a.src.indexOf("img/t_white.gif")>0){
+toggleMarker();
+}
+var _b=document.getElementById("theImage");
+_b._width=_b.width;
+_b._height=_b.height;
+};
+function init_crop(){
+P7_Snap("theImage","ant",0,0);
+}
+function setMode(_c){
+mode=_c;
+reset();
+}
+function reset(){
+if(ant==null){
+ant=MM_findObj("ant");
+}
+ant.style.visibility="hidden";
+ant.style.left=0;
+ant.style.top=0;
+ant.style.width=0;
+ant.style.height=0;
+mx2=null;
+my2=null;
+jg_doc.clear();
+if(mode!="measure"){
+showStatus();
+}
+if(mode=="scale"){
+init_resize();
+}
+P7_Snap("theImage","ant",0,0);
+}
+function toggleMarker(){
+if(ant==null){
+ant=MM_findObj("ant");
+}
+if(ant.className=="selection"){
+ant.className="selectionWhite";
+}else{
+ant.className="selection";
+}
+if(jg_doc.getColor()=="#000000"){
+jg_doc.setColor("#FFFFFF");
+}else{
+jg_doc.setColor("#000000");
+}
+drawBoundHandle;
+jg_doc.paint();
+}
+function move(e){
+if(dragapproved){
+var w=ns6?temp1+e.pageX-x:temp1+event.clientX+document.body.scrollLeft-x;
+var h=ns6?temp2+e.pageY-y:temp2+event.clientY+document.body.scrollTop-y;
+if(ant!=null){
+if(w>=0){
+ant.style.left=x;
+ant.style.width=w;
+}else{
+ant.style.left=x+w;
+ant.style.width=-1*w;
+}
+if(h>=0){
+ant.style.top=y;
+ant.style.height=h;
+}else{
+ant.style.top=y+h;
+ant.style.height=-1*h;
+}
+}
+showStatus();
+return false;
+}
+}
+function moveContent(e){
+if(dragapproved){
+var dx=ns6?oa_x+e.clientX-x:oa_x+event.clientX-x;
+var dy=ns6?oa_y+e.clientY-y:oa_y+event.clientY-y;
+ant.style.left=dx;
+ant.style.top=dy;
+showStatus();
+return false;
+}
+}
+function moveHandle(e){
+if(dragapproved){
+var w=ns6?e.clientX-x:event.clientX-x;
+var h=ns6?e.clientY-y:event.clientY-y;
+var _16=MM_findObj("constProp",window.top.document);
+var _17=document.theImage.height;
+var _18=document.theImage.width;
+rapp=_18/_17;
+rapp_inv=_17/_18;
+switch(resizeHandle){
+case "s-resize":
+if(oa_h+h>=0){
+ant.style.height=oa_h+h;
+if(_16.checked){
+ant.style.width=rapp*(oa_h+h);
+ant.style.left=oa_x-rapp*h/2;
+}
+}
+break;
+case "e-resize":
+if(oa_w+w>=0){
+ant.style.width=oa_w+w;
+if(_16.checked){
+ant.style.height=rapp_inv*(oa_w+w);
+ant.style.top=oa_y-rapp_inv*w/2;
+}
+}
+break;
+case "n-resize":
+if(oa_h-h>=0){
+ant.style.top=oa_y+h;
+ant.style.height=oa_h-h;
+if(_16.checked){
+ant.style.width=rapp*(oa_h-h);
+ant.style.left=oa_x+rapp*h/2;
+}
+}
+break;
+case "w-resize":
+if(oa_w-w>=0){
+ant.style.left=oa_x+w;
+ant.style.width=oa_w-w;
+if(_16.checked){
+ant.style.height=rapp_inv*(oa_w-w);
+ant.style.top=oa_y+rapp_inv*w/2;
+}
+}
+break;
+case "nw-resize":
+if(oa_h-h>=0&&oa_w-w>=0){
+ant.style.left=oa_x+w;
+ant.style.width=oa_w-w;
+ant.style.top=oa_y+h;
+if(_16.checked){
+ant.style.height=rapp_inv*(oa_w-w);
+}else{
+ant.style.height=oa_h-h;
+}
+}
+break;
+case "ne-resize":
+if(oa_h-h>=0&&oa_w+w>=0){
+ant.style.top=oa_y+h;
+ant.style.width=oa_w+w;
+if(_16.checked){
+ant.style.height=rapp_inv*(oa_w+w);
+}else{
+ant.style.height=oa_h-h;
+}
+}
+break;
+case "se-resize":
+if(oa_h+h>=0&&oa_w+w>=0){
+ant.style.width=oa_w+w;
+if(_16.checked){
+ant.style.height=rapp_inv*(oa_w+w);
+}else{
+ant.style.height=oa_h+h;
+}
+}
+break;
+case "sw-resize":
+if(oa_h+h>=0&&oa_w-w>=0){
+ant.style.left=oa_x+w;
+ant.style.width=oa_w-w;
+if(_16.checked){
+ant.style.height=rapp_inv*(oa_w-w);
+}else{
+ant.style.height=oa_h+h;
+}
+}
+}
+showStatus();
+return false;
+}
+}
+function drags(e){
+if(!ie&&!ns6){
+return;
+}
+var _1a=ns6?e.target:event.srcElement;
+var _1b=ns6?"HTML":"BODY";
+while(_1a.tagName!=_1b&&!(_1a.className=="crop"||_1a.className=="handleBox"||_1a.className=="selection"||_1a.className=="selectionWhite")){
+_1a=ns6?_1a.parentNode:_1a.parentElement;
+}
+if(_1a.className=="handleBox"){
+if(content!=null){
+if(content.width!=null&&content.height!=null){
+content.width=0;
+content.height=0;
+}
+}
+resizeHandle=_1a.id;
+x=ns6?e.clientX:event.clientX;
+y=ns6?e.clientY:event.clientY;
+oa_w=parseInt(ant.style.width);
+oa_h=parseInt(ant.style.height);
+oa_x=parseInt(ant.style.left);
+oa_y=parseInt(ant.style.top);
+dragapproved=true;
+document.onmousemove=moveHandle;
+return false;
+}else{
+if((_1a.className=="selection"||_1a.className=="selectionWhite")&&mode=="crop"){
+x=ns6?e.clientX:event.clientX;
+y=ns6?e.clientY:event.clientY;
+oa_x=parseInt(ant.style.left);
+oa_y=parseInt(ant.style.top);
+dragapproved=true;
+document.onmousemove=moveContent;
+return false;
+}else{
+if(_1a.className=="crop"&&mode=="crop"){
+if(content!=null){
+if(content.width!=null&&content.height!=null){
+content.width=0;
+content.height=0;
+}
+}
+if(status==null){
+status=MM_findObj("status");
+}
+if(ant==null){
+ant=MM_findObj("ant");
+}
+if(canvas==null){
+canvas=MM_findObj("imgCanvas");
+}
+if(content==null){
+content=MM_findObj("cropContent");
+}
+if(pic_width==null||pic_height==null){
+image=MM_findObj("theImage");
+pic_width=image.width;
+pic_height=image.height;
+}
+ant.style.visibility="visible";
+obj=_1a;
+dragapproved=true;
+z=_1a;
+temp1=parseInt(z.style.left+0);
+temp2=parseInt(z.style.top+0);
+x=ns6?e.pageX:event.clientX+document.body.scrollLeft;
+y=ns6?e.pageY:event.clientY+document.body.scrollTop;
+document.onmousemove=move;
+return false;
+}else{
+if(_1a.className=="crop"&&mode=="measure"){
+if(ant==null){
+ant=MM_findObj("ant");
+}
+if(canvas==null){
+canvas=MM_findObj("imgCanvas");
+}
+x=ns6?e.pageX:event.clientX+document.body.scrollLeft;
+y=ns6?e.pageY:event.clientY+document.body.scrollTop;
+dragapproved=true;
+document.onmousemove=measure;
+return false;
+}
+}
+}
+}
+}
+function measure(e){
+if(dragapproved){
+mx2=ns6?e.pageX:event.clientX+document.body.scrollLeft;
+my2=ns6?e.pageY:event.clientY+document.body.scrollTop;
+jg_doc.clear();
+jg_doc.setStroke(Stroke.DOTTED);
+jg_doc.drawLine(x,y,mx2,my2);
+jg_doc.paint();
+showStatus();
+return false;
+}
+}
+function setMarker(nx,ny,nw,nh){
+if(isNaN(nx)){
+nx=0;
+}
+if(isNaN(ny)){
+ny=0;
+}
+if(isNaN(nw)){
+nw=0;
+}
+if(isNaN(nh)){
+nh=0;
+}
+if(ant==null){
+ant=MM_findObj("ant");
+}
+if(canvas==null){
+canvas=MM_findObj("imgCanvas");
+}
+if(content==null){
+content=MM_findObj("cropContent");
+}
+if(pic_width==null||pic_height==null){
+image=MM_findObj("theImage");
+pic_width=image.width;
+pic_height=image.height;
+}
+ant.style.visibility="visible";
+nx=pic_x+nx;
+ny=pic_y+ny;
+if(nw>=0){
+ant.style.left=nx;
+ant.style.width=nw;
+}else{
+ant.style.left=nx+nw;
+ant.style.width=-1*nw;
+}
+if(nh>=0){
+ant.style.top=ny;
+ant.style.height=nh;
+}else{
+ant.style.top=ny+nh;
+ant.style.height=-1*nh;
+}
+}
+function max(x,y){
+if(y>x){
+return x;
+}else{
+return y;
+}
+}
+function drawBoundHandle(){
+if(ant==null||ant.style==null){
+return false;
+}
+var ah=parseInt(ant.style.height);
+var aw=parseInt(ant.style.width);
+var ax=parseInt(ant.style.left);
+var ay=parseInt(ant.style.top);
+jg_doc.drawHandle(ax-15,ay-15,30,30,"nw-resize");
+jg_doc.drawHandle(ax-15,ay+ah-15,30,30,"sw-resize");
+jg_doc.drawHandle(ax+aw-15,ay-15,30,30,"ne-resize");
+jg_doc.drawHandle(ax+aw-15,ay+ah-15,30,30,"se-resize");
+jg_doc.drawHandle(ax+max(15,aw/10),ay-8,aw-2*max(15,aw/10),8,"n-resize");
+jg_doc.drawHandle(ax+max(15,aw/10),ay+ah,aw-2*max(15,aw/10),8,"s-resize");
+jg_doc.drawHandle(ax-8,ay+max(15,ah/10),8,ah-2*max(15,ah/10),"w-resize");
+jg_doc.drawHandle(ax+aw,ay+max(15,ah/10),8,ah-2*max(15,ah/10),"e-resize");
+jg_doc.drawHandleBox(ax-4,ay-4,8,8,"nw-resize");
+jg_doc.drawHandleBox(ax-4,ay+ah-4,8,8,"sw-resize");
+jg_doc.drawHandleBox(ax+aw-4,ay-4,8,8,"ne-resize");
+jg_doc.drawHandleBox(ax+aw-4,ay+ah-4,8,8,"se-resize");
+jg_doc.drawHandleBox(ax+aw/2-4,ay-4,8,8,"n-resize");
+jg_doc.drawHandleBox(ax+aw/2-4,ay+ah-4,8,8,"s-resize");
+jg_doc.drawHandleBox(ax-4,ay+ah/2-4,8,8,"w-resize");
+jg_doc.drawHandleBox(ax+aw-4,ay+ah/2-4,8,8,"e-resize");
+}
+function showStatus(){
+if(ant==null||ant.style==null){
+return false;
+}
+var _27=100/parseInt(window.parent.document.getElementById("zoom").value,10);
+if(mode=="measure"){
+mx1=x-pic_x;
+my1=y-pic_y;
+mw=mx2-x;
+mh=my2-y;
+md=parseInt(Math.sqrt(mw*mw+mh*mh)*100)/100;
+ma=(Math.atan(-1*mh/mw)/Math.PI)*180;
+if(mw<0&&mh<0){
+ma=ma+180;
+}
+if(mw<0&&mh>0){
+ma=ma-180;
+}
+ma=parseInt(ma*100)/100;
+if(m_sx!=null&&!isNaN(mx1)){
+m_sx.value=mx1*_27+"px";
+}
+if(m_sy!=null&&!isNaN(my1)){
+m_sy.value=my1*_27+"px";
+}
+if(m_w!=null&&!isNaN(mw)){
+m_w.value=mw*_27+"px";
+}
+if(m_h!=null&&!isNaN(mh)){
+m_h.value=mh*_27+"px";
+}
+if(m_d!=null&&!isNaN(md)){
+m_d.value=md*_27+"px";
+}
+if(m_a!=null&&!isNaN(ma)){
+m_a.value=ma+"";
+}
+if(r_ra!=null&&!isNaN(ma)){
+r_ra.value=ma;
+}
+return false;
+}
+var ah=parseInt(ant.style.height);
+var aw=parseInt(ant.style.width);
+var ax=parseInt(ant.style.left);
+var ay=parseInt(ant.style.top);
+var cx=ax-pic_x<0?0:ax-pic_x;
+var cy=ay-pic_y<0?0:ay-pic_y;
+cx=cx>pic_width?pic_width:cx;
+cy=cy>pic_height?pic_height:cy;
+var cw=ax-pic_x>0?aw:aw-(pic_x-ax);
+var ch=ay-pic_y>0?ah:ah-(pic_y-ay);
+ch=ay+ah0&&s_sh.value.indexOf("%")>0){
+sw=cw/pic_width;
+sh=ch/pic_height;
+}
+if(s_sw!=null){
+s_sw.value=sw*_27;
+}
+if(s_sh!=null){
+s_sh.value=sh*_27;
+}
+}
+}
+}
+function dragStopped(){
+dragapproved=false;
+if(ant==null||ant.style==null){
+return false;
+}
+if(mode=="measure"){
+jg_doc.drawLine(x-4,y,x+4,y);
+jg_doc.drawLine(x,y-4,x,y+4);
+jg_doc.drawLine(mx2-4,my2,mx2+4,my2);
+jg_doc.drawLine(mx2,my2-4,mx2,my2+4);
+jg_doc.paint();
+showStatus();
+return false;
+}
+var ah=parseInt(ant.style.height);
+var aw=parseInt(ant.style.width);
+var ax=parseInt(ant.style.left);
+var ay=parseInt(ant.style.top);
+jg_doc.clear();
+if(content!=null){
+if(content.width!=null&&content.height!=null){
+content.width=aw-1;
+content.height=ah-1;
+}
+}
+if(mode=="crop"){
+jg_doc.fillRectPattern(pic_x,pic_y,pic_width,ay-pic_y,pattern);
+var h1=ah;
+var y1=ay;
+if(ah+ay>=pic_height+pic_y){
+h1=pic_height+pic_y-ay;
+}else{
+if(ay<=pic_y){
+h1=ay+ah-pic_y;
+y1=pic_y;
+}
+}
+jg_doc.fillRectPattern(pic_x,y1,ax-pic_x,h1,pattern);
+jg_doc.fillRectPattern(ax+aw,y1,pic_x+pic_width-ax-aw,h1,pattern);
+jg_doc.fillRectPattern(pic_x,ay+ah,pic_width,pic_height+pic_y-ay-ah,pattern);
+}else{
+if(mode=="scale"){
+document.theImage.height=ah;
+document.theImage.width=aw;
+document.theImage.style.height=ah+" px";
+document.theImage.style.width=aw+" px";
+P7_Snap("theImage","ant",0,0);
+}
+}
+drawBoundHandle();
+jg_doc.paint();
+showStatus();
+return false;
+}
+document.onmousedown=drags;
+document.onmouseup=dragStopped;
+
diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/ImageEditor.css b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/ImageEditor.css
new file mode 100755
index 000000000..7cefe46cd
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/ImageEditor.css
@@ -0,0 +1,76 @@
+.icons {
+ font: 11px Tahoma,Verdana,sans-serif;
+ color: #666699;
+ text-align: center;
+ text-decoration: none;
+ border: 1px solid #EEEEFF;
+ -Moz-Border-Radius: 6px 6px 6px 6px;
+}
+
+body, td, p {
+ font: 11px Tahoma,Verdana,sans-serif;
+}
+.iconsOver {
+ font: 11px Tahoma,Verdana,sans-serif;
+ color: #666699;
+ text-align: center;
+ text-decoration: none;
+ background-color: #F9F9FF;
+ border: 1px solid #666699;
+ -Moz-Border-Radius: 6px 6px 6px 6px;
+}
+.topBar {
+ font: 11px Tahoma,Verdana,sans-serif;
+ color: #666699;
+}
+.iconsSel {
+ font: 11px Tahoma,Verdana,sans-serif;
+ color: #666699;
+ text-align: center;
+ text-decoration: none;
+ border: 1px solid #666699;
+ -Moz-Border-Radius: 6px 6px 6px 6px;
+}
+.iconText {
+ font: 11px Tahoma,Verdana,sans-serif;
+ color: #666699;
+ text-decoration: none;
+ text-align: center;
+}
+.measureStats{
+ width: 50px;
+}
+
+#slidercasing {
+ /*border:1px solid #CCCCCC;
+ background-color:#FFFFFF;*/
+ width:100px;
+ height:5px;
+ position:relative;
+ z-index:4;
+ padding:10px;
+}
+
+
+#slidertrack {
+ position:relative;
+ border:1px solid #CCCCCC;
+ background-color:#FFFFCC;
+ z-index:5;
+ height:5px;
+}
+
+
+#sliderbar {
+ position:absolute;
+ z-index:6;
+ border:1px solid #CCCCCC;
+ background-color:#DDDDDD;
+ width:15px;
+ padding:0px;
+ height:20px;
+ cursor: pointer;
+ top:2px;
+}
+
+select, input, button { font: 11px Tahoma,Verdana,sans-serif; }
diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/dialog.js b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/dialog.js
new file mode 100644
index 000000000..0a09c00ad
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/dialog.js
@@ -0,0 +1,83 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/ExtendedFileManager/assets/dialog.js */
+function Dialog(_1,_2,_3){
+if(typeof _3=="undefined"){
+_3=window;
+}
+if(typeof window.showModalDialog=="function"){
+Dialog._return=_2;
+var r=window.showModalDialog(_1,_3,"dialogheight=10;dialogwidth=10;resizable=yes");
+}else{
+Dialog._geckoOpenModal(_1,_2,_3);
+}
+}
+Dialog._parentEvent=function(ev){
+setTimeout(function(){
+if(Dialog._modal&&!Dialog._modal.closed){
+Dialog._modal.focus();
+}
+},50);
+if(Dialog._modal&&!Dialog._modal.closed){
+Dialog._stopEvent(ev);
+}
+};
+Dialog._return=null;
+Dialog._modal=null;
+Dialog._arguments=null;
+Dialog._geckoOpenModal=function(_6,_7,_8){
+var _9="hadialog"+_6;
+var _a=/\W/g;
+_9=_9.replace(_a,"_");
+var _b=window.open(_6,_9,"toolbar=no,menubar=no,personalbar=no,width=10,height=10,"+"scrollbars=no,resizable=yes,modal=yes,dependable=yes");
+Dialog._modal=_b;
+Dialog._arguments=_8;
+function capwin(w){
+Dialog._addEvent(w,"click",Dialog._parentEvent);
+Dialog._addEvent(w,"mousedown",Dialog._parentEvent);
+Dialog._addEvent(w,"focus",Dialog._parentEvent);
+}
+function relwin(w){
+Dialog._removeEvent(w,"click",Dialog._parentEvent);
+Dialog._removeEvent(w,"mousedown",Dialog._parentEvent);
+Dialog._removeEvent(w,"focus",Dialog._parentEvent);
+}
+capwin(window);
+for(var i=0;i10)?_13:10)+"px";
+return true;
+};
+dragTableCols.addEvent=function(obj,_15,fn){
+if(obj.addEventListener){
+obj.addEventListener(_15,fn,true);
+}else{
+if(obj.attachEvent){
+obj.attachEvent("on"+_15,fn);
+}else{
+return false;
+}
+}
+};
+dragTableCols.removeEvent=function(obj,_18,fn){
+if(obj.addEventListener){
+obj.removeEventListener(_18,fn,true);
+}else{
+if(obj.detachEvent){
+obj.detachEvent("on"+_18,fn);
+}else{
+return false;
+}
+}
+};
+dragTableCols.getElementTopLeft=function(_1a){
+var _1b=curtop=0;
+if(_1a.offsetParent){
+_1b=_1a.offsetLeft;
+curtop=_1a.offsetTop;
+while(_1a=_1a.offsetParent){
+_1b+=_1a.offsetLeft;
+curtop+=_1a.offsetTop;
+}
+}
+return {top:curtop,left:_1b};
+};
+dragTableCols.getPageX=function(e){
+if(e.pageX){
+return e.pageX;
+}else{
+if(document.documentElement&&document.documentElement.scrollTop){
+return document.documentElement.scrollLeft+e.clientX;
+}else{
+if(document.body){
+return document.body.scrollLeft+e.clientX;
+}
+}
+}
+};
+
diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/editor.css b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/editor.css
new file mode 100755
index 000000000..6779dcf7d
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/editor.css
@@ -0,0 +1,184 @@
+ body
+ {
+ margin: 0; padding: 0;
+ font: 11px Tahoma,Verdana,sans-serif;
+ }
+ select, input, button { font: 11px Tahoma,Verdana,sans-serif; }
+
+ #indicator
+ {
+ width: 20px;
+ height: 20px;
+ background-color: #eef;
+ padding: 15px 20px;
+ }
+ * html #indicator
+ {
+ padding: 14px 22px;
+ }
+ #tools
+ {
+ background-color: #eef;
+ padding: 0;
+ border-left: 1px solid white;
+ border-bottom: 1px solid white;
+ }
+ #toolbar
+ {
+ background-color: #eef;
+ text-align: center;
+ padding: 5px;
+ border-top: 1px solid white;
+ border-right: 1px solid white;
+ vertical-align: top;
+ width:50px;
+ }
+
+ #contents
+ {
+ position: relative;
+ }
+
+ #editor
+ {
+ width: 100%;
+ height: 100%;
+ }
+
+ #toolbar a
+ {
+ padding: 5px;
+ width: 40px;
+ display: block;
+ border: 1px solid #eef;
+ text-align: center;
+ text-decoration: none;
+ color: #669;
+ margin: 5px 0;
+ }
+ #toolbar a:hover
+ {
+ background-color: #F9F9FF;
+ border-color: #669;
+ }
+
+ #toolbar a.iconActive
+ {
+ border-color: #669;
+ }
+
+ #toolbar a span
+ {
+ display: block;
+ text-decoration: none;
+
+ }
+ #toolbar a img
+ {
+ border: 0 none;
+ }
+
+ #tools .textInput
+ {
+ width: 3em;
+ vertical-align: 0px;
+
+ }
+ * html #tools .textInput
+ {
+ vertical-align: middle;
+ }
+ #tools .measureStats
+ {
+ width: 4.5em;
+ border: 0 none;
+ background-color: #eef;
+ vertical-align: 0px;
+ }
+ * html #tools .measureStats
+ {
+ vertical-align: middle;
+ }
+ #tools label
+ {
+ margin: 0 2px 0 5px;
+ }
+ #tools input
+ {
+ vertical-align: middle;
+ }
+ #tools .tool_inputs
+ {
+ padding-top: 10px;
+ float: left;
+ }
+ #tools .div
+ {
+ vertical-align: middle;
+ margin: 0 5px;
+ }
+ #tools img
+ {
+ border: 0 none;
+ }
+ #tools a.buttons
+ {
+ margin-top: 10px;
+ border: 1px solid #eef;
+ display: block;
+ float: left;
+ }
+ #tools a.buttons:hover
+ {
+ background-color: #F9F9FF;
+ border-color: #669;
+ }
+ #slidercasing {
+ /*border:1px solid #CCCCCC;
+ background-color:#FFFFFF;*/
+ width:100px;
+ height:5px;
+ position:relative;
+ z-index:4;
+ padding:10px;
+ top: 6px;
+ margin: 0 -5px 0 -10px;
+
+
+}
+
+
+#slidertrack {
+ position:relative;
+ border:1px solid #CCCCCC;
+ background-color:#FFFFCC;
+ z-index:5;
+ height:5px;
+}
+
+
+#sliderbar {
+ position:absolute;
+ z-index:6;
+ border:1px solid #CCCCCC;
+ background-color:#DDDDDD;
+ width:15px;
+ padding:0px;
+ height:20px;
+ cursor: pointer;
+ top:2px;
+}
+
+* html #slidercasing
+{
+ top:0;
+}
+
+
+#bottom
+{
+ position: relative;
+ top: 490px;
+}
+
+#save_filename {width: 100px;}
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/editor.js b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/editor.js
new file mode 100644
index 000000000..114da8c6a
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/editor.js
@@ -0,0 +1,192 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/ExtendedFileManager/assets/editor.js */
+var current_action=null;
+var actions=["crop","scale","rotate","measure","save"];
+var orginal_width=null,orginal_height=null;
+function toggle(_1){
+if(current_action!=_1){
+for(var i in actions){
+if(actions[i]!=_1){
+var _3=document.getElementById("tools_"+actions[i]);
+_3.style.display="none";
+var _4=document.getElementById("icon_"+actions[i]);
+_4.className="";
+}
+}
+current_action=_1;
+var _3=document.getElementById("tools_"+_1);
+_3.style.display="block";
+var _4=document.getElementById("icon_"+_1);
+_4.className="iconActive";
+var _5=document.getElementById("indicator_image");
+_5.src="img/"+_1+".gif";
+editor.setMode(current_action);
+if(_1=="scale"){
+var _6=editor.window.document.getElementById("theImage");
+orginal_width=_6._width;
+orginal_height=_6._height;
+var w=document.getElementById("sw");
+w.value=orginal_width;
+var h=document.getElementById("sh");
+h.value=orginal_height;
+}
+if(_1=="save"){
+var _9=document.getElementById("save_format");
+var _a=document.getElementById("save_filename").value.match(/\.(gif|png|jpe?g)/i)[1].toLowerCase();
+switch(_a){
+case "png":
+_9.selectedIndex="3";
+break;
+case "gif":
+_9.selectedIndex="4";
+break;
+default:
+_9.selectedIndex="0";
+break;
+}
+_9.onchange();
+}
+}
+}
+function toggleMarker(){
+var _b=document.getElementById("markerImg");
+if(_b!=null&&_b.src!=null){
+if(_b.src.indexOf("t_black.gif")>=0){
+_b.src="img/t_white.gif";
+}else{
+_b.src="img/t_black.gif";
+}
+editor.toggleMarker();
+}
+}
+function toggleConstraints(){
+var _c=document.getElementById("scaleConstImg");
+var _d=document.getElementById("constProp");
+if(_c!=null&&_c.src!=null){
+if(_c.src.indexOf("unlocked2.gif")>=0){
+_c.src="img/islocked2.gif";
+_d.checked=true;
+checkConstrains("width");
+}else{
+_c.src="img/unlocked2.gif";
+_d.checked=false;
+}
+}
+}
+function checkConstrains(_e){
+var _f=document.getElementById("constProp");
+if(_f.checked){
+var w=document.getElementById("sw");
+var _11=w.value;
+var h=document.getElementById("sh");
+var _13=h.value;
+if(orginal_width>0&&orginal_height>0){
+if(_e=="width"&&_11>0){
+h.value=parseInt((_11/orginal_width)*orginal_height);
+}else{
+if(_e=="height"&&_13>0){
+w.value=parseInt((_13/orginal_height)*orginal_width);
+}
+}
+}
+}
+updateMarker("scale");
+}
+function updateMarker(_14){
+if(_14=="crop"){
+var _15=document.getElementById("cx");
+var _16=document.getElementById("cy");
+var _17=document.getElementById("cw");
+var _18=document.getElementById("ch");
+editor.setMarker(parseInt(_15.value),parseInt(_16.value),parseInt(_17.value),parseInt(_18.value));
+}else{
+if(_14=="scale"){
+var _19=document.getElementById("sw");
+var _1a=document.getElementById("sh");
+editor.setMarker(0,0,parseInt(_19.value),parseInt(_1a.value));
+}
+}
+}
+function rotateSubActionSelect(_1b){
+var _1c=_1b.options[_1b.selectedIndex].value;
+var _1d=document.getElementById("rotate_preset_select");
+var _1e=document.getElementById("flip");
+var _1f=document.getElementById("ra").parentNode;
+switch(_1c){
+case "rotate":
+_1d.style.display="";
+_1e.style.display="none";
+_1f.style.display="";
+break;
+case "flip":
+_1d.style.display="none";
+_1e.style.display="";
+_1f.style.display="none";
+break;
+}
+}
+function rotatePreset(_20){
+var _21=_20.options[_20.selectedIndex].value;
+if(_21.length>0&&parseInt(_21)!=0){
+var ra=document.getElementById("ra");
+ra.value=parseInt(_21);
+}
+}
+function updateFormat(_23){
+var _24=_23.options[_23.selectedIndex].value;
+var _25=_24.split(",");
+if(_25[0]!="jpeg"){
+document.getElementById("slider").style.display="none";
+}else{
+document.getElementById("slider").style.display="inline";
+}
+if(_25.length>1){
+updateSlider(parseInt(_25[1]));
+}
+}
+function zoom(){
+var _26=editor.window.document.getElementById("theImage");
+var _27=document.getElementById("zoom").value;
+_26.width=_26._width*parseInt(_27,10)/100;
+_26.height=_26._height*parseInt(_27,10)/100;
+editor.reset();
+editor.pic_width=null;
+editor.pic_height=null;
+}
+function addEvent(obj,_29,fn){
+if(obj.addEventListener){
+obj.addEventListener(_29,fn,true);
+return true;
+}else{
+if(obj.attachEvent){
+var r=obj.attachEvent("on"+_29,fn);
+return r;
+}else{
+return false;
+}
+}
+}
+var init=function(){
+if(window.opener){
+__xinha_dlg_init();
+__dlg_translate("ExtendedFileManager");
+}
+addEvent(window,"resize",winOnResize);
+try{
+window.moveTo(0,0);
+}
+catch(e){
+}
+window.resizeTo(window.screen.availWidth,window.screen.availHeight);
+winOnResize();
+};
+function winOnResize(){
+if(typeof editor.reset=="function"&&typeof editor.ant!="undefined"){
+editor.reset();
+}
+var win=Xinha.viewportSize(window);
+document.getElementById("contents").style.height=win.y-parseInt(document.getElementById("indicator").offsetHeight,10)-5+"px";
+}
+Xinha.addOnloadHandler(init,window);
+
diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/editorFrame.css b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/editorFrame.css
new file mode 100755
index 000000000..d0d841b57
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/editorFrame.css
@@ -0,0 +1,17 @@
+body { margin: 0; padding: 0; background-color: #eee; }
+table { width: 100%; }
+table td { text-align: center; }
+.crop{cursor:crosshair;}
+.selection { border: dotted 1px #000000; position:absolute; width: 0px; height: 1px; z-index:5; }
+.selectionWhite{ border: dotted 1px #FFFFFF; position:absolute; width: 0px; height: 1px; z-index:5; }
+.handleBox{ z-index:105; }
+.error { font-size:large; font-weight:bold; color:#c00; font-family: Helvetica, sans-serif; }
+
+#n-resize {cursor: n-resize }
+#s-resize {cursor: s-resize }
+#w-resize {cursor: w-resize }
+#e-resize {cursor: e-resize }
+#nw-resize {cursor: nw-resize }
+#sw-resize {cursor: sw-resize }
+#ne-resize {cursor: ne-resize }
+#se-resize {cursor: se-resize }
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/editorFrame.js b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/editorFrame.js
new file mode 100644
index 000000000..161830cef
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/editorFrame.js
@@ -0,0 +1,91 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/ExtendedFileManager/assets/editorFrame.js */
+var topDoc=window.top.document;
+var t_cx=topDoc.getElementById("cx");
+var t_cy=topDoc.getElementById("cy");
+var t_cw=topDoc.getElementById("cw");
+var t_ch=topDoc.getElementById("ch");
+var m_sx=topDoc.getElementById("sx");
+var m_sy=topDoc.getElementById("sy");
+var m_w=topDoc.getElementById("mw");
+var m_h=topDoc.getElementById("mh");
+var m_a=topDoc.getElementById("ma");
+var m_d=topDoc.getElementById("md");
+var s_sw=topDoc.getElementById("sw");
+var s_sh=topDoc.getElementById("sh");
+var r_ra=topDoc.getElementById("ra");
+var pattern="img/2x2.gif";
+function doSubmit(_1){
+if(_1=="crop"){
+var _2=_backend_url+"__function=editorFrame&img="+currentImageFile+"&action=crop¶ms="+parseInt(t_cx.value)+","+parseInt(t_cy.value)+","+parseInt(t_cw.value)+","+parseInt(t_ch.value);
+location.href=_2;
+}else{
+if(_1=="scale"){
+var _2=_backend_url+"__function=editorFrame&img="+currentImageFile+"&action=scale¶ms="+parseInt(s_sw.value)+","+parseInt(s_sh.value);
+location.href=_2;
+}else{
+if(_1=="rotate"){
+var _3=topDoc.getElementById("rotate_sub_action");
+if(_3.value=="flip"){
+location.href=_backend_url+"__function=editorFrame&img="+currentImageFile+"&action=flip¶ms="+topDoc.getElementById("flip").value;
+}else{
+if(isNaN(parseFloat(r_ra.value))==false){
+location.href=_backend_url+"__function=editorFrame&img="+currentImageFile+"&action=rotate¶ms="+parseFloat(r_ra.value);
+}
+}
+}else{
+if(_1=="save"){
+var _4=topDoc.getElementById("save_filename");
+var _5=topDoc.getElementById("save_format");
+var _6=topDoc.getElementById("quality");
+var _7=_5.value.split(",");
+if(_4.value.length<=0){
+alert(i18n("Please enter a filename to save."));
+}else{
+var _8=encodeURI(_4.value);
+var _9=parseInt(_6.value);
+var _7=_5.value.split(",");
+var _2=_backend_url+"__function=editorFrame&img="+currentImageFile+"&action=save¶ms="+_7[0]+","+_9+"&file="+_8;
+location.href=_2;
+}
+}else{
+if(_1=="preview"){
+var _5=topDoc.getElementById("save_format");
+var _6=topDoc.getElementById("quality");
+var _9=parseInt(_6.value);
+var _7=_5.value.split(",");
+var _2=_backend_url+"__function=editorFrame&img="+currentImageFile+"&action=preview¶ms="+_7[0]+","+_9+"&file="+_8;
+location.href=_2;
+}
+}
+}
+}
+}
+}
+function addEvent(_a,_b,fn){
+if(_a.addEventListener){
+_a.addEventListener(_b,fn,true);
+return true;
+}else{
+if(_a.attachEvent){
+var r=_a.attachEvent("on"+_b,fn);
+return r;
+}else{
+return false;
+}
+}
+}
+var jg_doc;
+init=function(){
+jg_doc=new jsGraphics("imgCanvas");
+jg_doc.setColor("#000000");
+initEditor();
+if(window.parent.document.getElementById("zoom").value!="100"){
+window.parent.zoom();
+}
+reset();
+window.parent.document.getElementById("filesize").innerHTML=fileSize;
+};
+addEvent(window,"load",init);
+
diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/hover.htc b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/hover.htc
new file mode 100755
index 000000000..4e81af4e3
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/hover.htc
@@ -0,0 +1,34 @@
+
+
+
+
diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/imagelist.css b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/imagelist.css
new file mode 100755
index 000000000..abd247d90
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/imagelist.css
@@ -0,0 +1,55 @@
+body { margin: 0; padding: 0;}
+.edit,.dir_holder .fileName, .thumb_holder .fileName { font-size: 8pt; font-family: small-caption, sans-serif; padding-top: 3px;}
+.edit a { border: none; padding: 0; text-decoration:none; }
+.edit a:hover { background-color: ButtonHighlight; }
+.edit a img { border: none; vertical-align: bottom; }
+.noResult { font-size:large; font-weight:bold; color:#ccc; font-family: Helvetica, sans-serif; text-align: center; padding-top: 60px; }
+.error { color:#c00; font-weight:bold; font-size: medium; font-family: Helvetica, sans-serif; text-align: center; padding-top: 65px;}
+
+.dir_holder, .thumb_holder
+{
+ width:106px; height:132px;
+ float:left;
+ margin:6px 4px;
+ background-color:ButtonFace;
+ border: 1px outset;
+}
+
+.thumb_holder.active
+{
+ background:Highlight;
+ color:HighlightText;
+ border:1px dashed Highlight;
+}
+
+.dir_holder a.dir, .thumb_holder a.thumb
+{
+ height:85px;
+ display:block;
+ text-align:center;
+ padding:5px;
+ text-decoration:none;
+ overflow:hidden;
+}
+
+.thumb_holder a.thumb img
+{
+ border:1px solid black;
+}
+
+.dir_holder a.dir img
+{
+ border:none;
+}
+
+.listview { width:100%; }
+.listview td, .listview th { text-align:left; font-size:small; }
+.listview td.actions { text-align: right;width:111px }
+.listview td.actions img { border:0; }
+
+.listview thead th {background-color: ButtonFace; border: 1px solid threedface; border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight; padding-top:2px; padding-bottom:2px; padding-left: 5px; padding-right: 5px; font-size: 9pt; font-family: "MS Sans Serif", "Bitstream Vera Sans", Geneva, Sans, sans-serif;font-weight:normal}
+.listview tbody td, .listview tbody th {overflow:hidden; padding-top:2px; padding-left: 3px; font-size: 9pt; font-family: "MS Sans Serif", "Bitstream Vera Sans", Geneva, Sans, sans-serif;}
+.listview tbody a, listview tbody a:visited { font-weight: normal; text-decoration: none; color: #000; border:0px; padding:2px;}
+.listview tbody a:hover { background-color:#0B256B; color:#fff;}
+
+.listview tbody tr:hover {background-color: rgb(221,221,255)};
diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/images.js b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/images.js
new file mode 100644
index 000000000..09b95390b
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/images.js
@@ -0,0 +1,245 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/ExtendedFileManager/assets/images.js */
+function i18n(_1){
+return Xinha._lc(_1,"ExtendedFileManager");
+}
+function changeDir(_2){
+showMessage("Loading");
+var _3=window.top.document.getElementById("manager_mode").value;
+var _4=window.top.document.getElementById("viewtype");
+var _5=_4.options[_4.selectedIndex].value;
+location.href=_backend_url+"__function=images&mode="+_3+"&dir="+_2+"&viewtype="+_5;
+document.cookie="EFMStartDir"+_3+"="+_2;
+}
+function newFolder(_6,_7){
+var _8=window.top.document.getElementById("manager_mode").value;
+var _9=window.top.document.getElementById("viewtype");
+var _a=_9.options[_9.selectedIndex].value;
+location.href=_backend_url+"__function=images&mode="+_8+"&dir="+_6+"&newDir="+_7+"&viewtype="+_a;
+}
+function renameFile(_b){
+var _c=_b.replace(/.*%2F/,"").replace(/\..*$/,"");
+var _d=function(_e){
+if(_e==""||_e==null||_e==_c){
+alert(i18n("Cancelled rename."));
+return false;
+}
+var _f=window.top.document.getElementById("manager_mode").value;
+var _10=window.top.document.getElementById("dirPath");
+var dir=_10.options[_10.selectedIndex].value;
+_10=window.top.document.getElementById("viewtype");
+var _12=_10.options[_10.selectedIndex].value;
+location.href=_backend_url+"__function=images&mode="+_f+"&dir="+dir+"&rename="+_b+"&renameTo="+_e+"&viewtype="+_12;
+};
+if(Xinha.ie_version>6){
+popupPrompt(i18n("Please enter new name for this file..."),_c,_d,i18n("Rename"));
+}else{
+var _13=prompt(i18n("Please enter new name for this file..."),_c);
+_d(_13);
+}
+}
+function renameDir(_14){
+function rename(_15){
+if(_15==""||_15==null||_15==_14){
+alert(i18n("Cancelled rename."));
+return false;
+}
+var _16=window.top.document.getElementById("manager_mode").value;
+var _17=window.top.document.getElementById("dirPath");
+var dir=_17.options[_17.selectedIndex].value;
+_17=window.top.document.getElementById("viewtype");
+var _19=_17.options[_17.selectedIndex].value;
+location.href=_backend_url+"__function=images&mode="+_16+"&dir="+dir+"&rename="+_14+"&renameTo="+_15+"&viewtype="+_19;
+}
+if(Xinha.ie_version>6){
+popupPrompt(i18n("Please enter new name for this folder..."),_14,rename,i18n("Rename"));
+}else{
+var _1a=prompt(i18n("Please enter new name for this folder..."),_14);
+rename(_1a);
+}
+}
+function copyFile(_1b,_1c){
+var _1d=window.top.document.getElementById("dirPath");
+var dir=_1d.options[_1d.selectedIndex].value;
+window.top.pasteButton({"dir":dir,"file":_1b,"action":_1c+"File"});
+}
+function copyDir(_1f,_20){
+var _21=window.top.document.getElementById("dirPath");
+var dir=_21.options[_21.selectedIndex].value;
+window.top.pasteButton({"dir":dir,"file":_1f,"action":_20+"Dir"});
+}
+function paste(_23){
+var _24=window.top.document.getElementById("manager_mode").value;
+var _25=window.top.document.getElementById("dirPath");
+var dir=_25.options[_25.selectedIndex].value;
+_25=window.top.document.getElementById("viewtype");
+var _27=_25.options[_25.selectedIndex].value;
+location.href=_backend_url+"__function=images&mode="+_24+"&dir="+dir+"&paste="+_23.action+"&srcdir="+_23.dir+"&file="+_23.file+"&viewtype="+_27;
+}
+function updateDir(_28){
+var _29=window.top.document.getElementById("manager_mode").value;
+document.cookie="EFMStartDir"+_29+"="+_28;
+var _2a=window.top.document.getElementById("dirPath");
+if(_2a){
+for(var i=0;i<_2a.length;i++){
+var _2c=_2a.options[i].text;
+if(_2c==_28){
+_2a.selectedIndex=i;
+showMessage("Loading");
+break;
+}
+}
+}
+}
+function emptyProperties(){
+toggleImageProperties(false);
+var _2d=window.top.document;
+_2d.getElementById("f_url").value="";
+_2d.getElementById("f_alt").value="";
+_2d.getElementById("f_title").value="";
+_2d.getElementById("f_width").value="";
+_2d.getElementById("f_margin").value="";
+_2d.getElementById("f_height").value="";
+_2d.getElementById("f_padding").value="";
+_2d.getElementById("f_border").value="";
+_2d.getElementById("f_borderColor").value="";
+_2d.getElementById("f_backgroundColor").value="";
+}
+function toggleImageProperties(val){
+var _2f=window.top.document;
+if(val==true){
+_2f.getElementById("f_width").value="";
+_2f.getElementById("f_margin").value="";
+_2f.getElementById("f_height").value="";
+_2f.getElementById("f_padding").value="";
+_2f.getElementById("f_border").value="";
+_2f.getElementById("f_borderColor").value="";
+_2f.getElementById("f_backgroundColor").value="";
+}
+_2f.getElementById("f_width").disabled=val;
+_2f.getElementById("f_margin").disabled=val;
+_2f.getElementById("f_height").disabled=val;
+_2f.getElementById("f_padding").disabled=val;
+_2f.getElementById("f_align").disabled=val;
+_2f.getElementById("f_border").disabled=val;
+_2f.getElementById("f_borderColor").value="";
+_2f.getElementById("f_backgroundColor").value="";
+_2f.getElementById("constrain_prop").disabled=val;
+}
+function selectImage(_30,alt,_32,_33){
+var _34=window.top.document;
+if(_34.getElementById("manager_mode").value=="image"){
+var obj=_34.getElementById("f_url");
+obj.value=_30;
+obj=_34.getElementById("f_alt");
+obj.value=alt;
+obj=_34.getElementById("f_title");
+obj.value=alt;
+if(_32==0&&_33==0){
+toggleImageProperties(true);
+}else{
+toggleImageProperties(false);
+var obj=_34.getElementById("f_width");
+obj.value=_32;
+var obj=_34.getElementById("f_height");
+obj.value=_33;
+var obj=_34.getElementById("orginal_width");
+obj.value=_32;
+var obj=_34.getElementById("orginal_height");
+obj.value=_33;
+update_selected();
+}
+}else{
+if(_34.getElementById("manager_mode").value=="link"){
+var obj=_34.getElementById("f_href");
+obj.value=_30;
+var obj=_34.getElementById("f_title");
+obj.value=alt;
+}
+}
+return false;
+}
+var _current_selected=null;
+function update_selected(){
+var _36=window.top.document;
+if(_current_selected){
+_current_selected.className=_current_selected.className.replace(/(^| )active( |$)/,"$1$2");
+_current_selected=null;
+}
+var _37=_36.getElementById("f_url").value;
+var _38=_36.getElementById("dirPath");
+var _39=_38.options[_38.selectedIndex].text;
+var dRe=new RegExp("^("+_39.replace(/([\/\^$*+?.()|{}[\]])/g,"\\$1")+")([^/]*)$");
+if(dRe.test(_37)){
+var _3b=document.getElementById("holder_"+asc2hex(RegExp.$2));
+if(_3b){
+_current_selected=_3b;
+_3b.className+=" active";
+}
+}
+showPreview(_37);
+}
+function asc2hex(str){
+var _3d="";
+for(var i=0;i=0;){
+var op=_3[i];
+op.selected=(op.value==_2);
+}
+c.value=_2;
+}
+function i18n(_6){
+return Xinha._lc(_6,"ExtendedFileManager");
+}
+function setAlign(_7){
+var _8=document.getElementById("f_align");
+for(var i=0;i<_8.length;i++){
+if(_8.options[i].value==_7){
+_8.selectedIndex=i;
+break;
+}
+}
+}
+function onTargetChanged(){
+var f=document.getElementById("f_other_target");
+if(this.value=="_other"){
+f.style.visibility="visible";
+f.select();
+f.focus();
+}else{
+f.style.visibility="hidden";
+}
+}
+function init(){
+if(typeof imgManager=="undefined"){
+setTimeout(init,10);
+return;
+}
+var w=650;
+var h=600;
+window.resizeTo(w,h);
+var _d=Xinha.pageSize(window);
+window.resizeTo(w,h);
+var _e=Xinha.viewportSize(window);
+window.resizeBy(0,_d.y-_e.y+5);
+_e=Xinha.viewportSize(window);
+if(!Xinha.is_ie){
+var x=opener.screenX+(opener.outerWidth-_e.x)/2;
+var y=opener.screenY+(opener.outerHeight-_e.x)/2;
+}else{
+var x=(self.screen.availWidth-_e.x)/2;
+var y=(self.screen.availHeight-_e.y)/2;
+}
+window.moveTo(x,y);
+__xinha_dlg_init();
+__dlg_translate("ExtendedFileManager");
+var _11=document.getElementById("uploadForm");
+if(_11){
+_11.target="imgManager";
+}
+var _12=window.dialogArguments.editor;
+var _13=window.dialogArguments.param;
+var _14=null;
+if(manager_mode=="image"&&_13){
+var _15=new RegExp("^https?://");
+if(_13.f_url.length>0&&!_15.test(_13.f_url)&&typeof _13.baseHref=="string"){
+_13.f_url=_13.baseHref+_13.f_url;
+}
+var _16=new RegExp("(https?://[^/]*)?"+base_url.replace(/\/$/,""));
+_13.f_url=_13.f_url.replace(_16,"");
+var rd=(_resized_dir)?_resized_dir.replace(Xinha.RE_Specials,"\\$1")+"/":"";
+var rp=_resized_prefix.replace(Xinha.RE_Specials,"\\$1");
+var _19=new RegExp("^(.*/)"+rd+rp+"_([0-9]+)x([0-9]+)_([^/]+)$");
+var _1a=_13.f_url.match(_19);
+if(_19.test(_13.f_url)){
+_13.f_url=RegExp.$1+RegExp.$4;
+_13.f_width=RegExp.$2;
+_13.f_height=RegExp.$3;
+}
+document.getElementById("f_url").value=_13["f_url"];
+document.getElementById("f_alt").value=_13["f_alt"];
+document.getElementById("f_title").value=_13["f_title"];
+document.getElementById("f_border").value=_13["f_border"];
+document.getElementById("f_width").value=_13["f_width"];
+document.getElementById("f_height").value=_13["f_height"];
+document.getElementById("f_margin").value=_13["f_margin"];
+document.getElementById("f_padding").value=_13["f_padding"];
+document.getElementById("f_borderColor").value=_13["f_borderColor"];
+document.getElementById("f_backgroundColor").value=_13["f_backgroundColor"];
+setAlign(_13["f_align"]);
+document.getElementById("f_url").focus();
+document.getElementById("orginal_width").value=_13["f_width"];
+document.getElementById("orginal_height").value=_13["f_height"];
+var _19=new RegExp("^(.*/)([^/]+)$");
+if(_19.test(_13["f_url"])){
+_14=RegExp.$1;
+}
+document.getElementById("f_preview").src=_backend_url+"__function=thumbs&img="+_13.f_url;
+}else{
+if(manager_mode=="link"&&_13){
+var _1b=document.getElementById("f_target");
+var _1c=true;
+var _15=new RegExp("^https?://");
+if(_13.f_href.length>0&&!_15.test(_13.f_href)&&typeof _13.baseHref=="string"){
+_13.f_href=_13.baseHref+_13.f_href;
+}
+var _1d=new RegExp("(https?://[^/]*)?"+base_url.replace(/\/$/,""));
+_13.f_href=_13.f_href.replace(_1d,"");
+var _19=new RegExp("^(.*/)([^/]+)$");
+if(_19.test(_13["f_href"])){
+_14=RegExp.$1;
+}else{
+_14=document.cookie.match(/EFMStartDirlink=(.*?)(;|$)/);
+if(_14){
+_14=_14[1];
+}
+}
+if(_13){
+if(typeof _13["f_usetarget"]!="undefined"){
+_1c=_13["f_usetarget"];
+}
+if(typeof _13["f_href"]!="undefined"){
+document.getElementById("f_href").value=_13["f_href"];
+document.getElementById("f_title").value=_13["f_title"];
+comboSelectValue(_1b,_13["f_target"]);
+if(_1b.value!=_13.f_target){
+var opt=document.createElement("option");
+opt.value=_13.f_target;
+opt.innerHTML=opt.value;
+_1b.appendChild(opt);
+opt.selected=true;
+}
+}
+}
+if(!_1c){
+document.getElementById("f_target_label").style.visibility="hidden";
+document.getElementById("f_target").style.visibility="hidden";
+document.getElementById("f_other_target").style.visibility="hidden";
+}
+var opt=document.createElement("option");
+opt.value="_other";
+opt.innerHTML=i18n("Other");
+_1b.appendChild(opt);
+_1b.onchange=onTargetChanged;
+document.getElementById("f_href").focus();
+}else{
+if(!_13){
+_14=document.cookie.match(new RegExp("EFMStartDir"+manager_mode+"=(.*?)(;|$)"));
+if(_14){
+_14=_14[1];
+}
+}
+}
+}
+if(_14){
+iframeUrl+="&dir="+_14;
+var _1f=document.getElementById("dirPath");
+for(var i=0;i<_1f.options.length;i++){
+if(_1f.options[i].value==encodeURIComponent(_14)){
+_1f.options[i].selected=true;
+break;
+}
+}
+}
+imgManager.location.replace(iframeUrl);
+if(manager_mode=="image"&&typeof Xinha.colorPicker!="undefined"&&document.getElementById("f_backgroundColor")&&document.getElementById("f_backgroundColor").type=="text"){
+var _21={cellsize:_12.config.colorPickerCellSize,granularity:_12.config.colorPickerGranularity,websafe:_12.config.colorPickerWebSafe,savecolors:_12.config.colorPickerSaveColors};
+new Xinha.colorPicker.InputBinding(document.getElementById("f_backgroundColor"),_21);
+new Xinha.colorPicker.InputBinding(document.getElementById("f_borderColor"),_21);
+}
+setTimeout(function(){
+resize();
+addEvent(window,"resize",resize);
+},500);
+}
+function pasteButton(_22){
+var _23=document.getElementById("pasteBtn");
+if(!_23.firstChild){
+var a=document.createElement("a");
+a.href="javascript:void(0);";
+var img=document.createElement("img");
+img.src=window.opener.Xinha.getPluginDir("ExtendedFileManager")+"/img/edit_paste.gif";
+img.alt=i18n("Paste");
+a.appendChild(img);
+_23.appendChild(a);
+}
+_23.onclick=function(){
+if(typeof imgManager!="undefined"){
+imgManager.paste(_22);
+}
+if(_22.action=="moveFile"||_22.action=="moveDir"){
+this.onclick=null;
+this.removeChild(this.firstChild);
+}
+};
+switch(_22.action){
+case "copyFile":
+_23.firstChild.title=i18n("Copy \"$file="+_22.file+"$\" from \"$dir="+decodeURIComponent(_22.dir)+"$\" here");
+break;
+case "copyDir":
+_23.firstChild.title=i18n("Copy folder \"$file="+_22.file+"$\" from \"$dir="+decodeURIComponent(_22.dir)+"$\" here");
+break;
+case "moveFile":
+_23.firstChild.title=i18n("Move \"$file="+_22.file+"$\" from \"$dir="+decodeURIComponent(_22.dir)+"$\" here");
+break;
+break;
+case "moveDir":
+_23.firstChild.title=i18n("Move folder \"$file="+_22.file+"$\" from \"$dir="+decodeURIComponent(_22.dir)+"$\" here");
+break;
+}
+}
+function onCancel(){
+__dlg_close(null);
+return false;
+}
+function onOK(){
+if(manager_mode=="image"){
+var _26=["f_url","f_alt","f_title","f_align","f_border","f_margin","f_padding","f_height","f_width","f_borderColor","f_backgroundColor"];
+var _27=new Object();
+for(var i in _26){
+var id=_26[i];
+var el=document.getElementById(id);
+if(id=="f_url"&&el.value.indexOf("://")<0&&el.value){
+_27[id]=makeURL(base_url,el.value);
+}else{
+_27[id]=el.value;
+}
+}
+var _2b={w:document.getElementById("orginal_width").value,h:document.getElementById("orginal_height").value};
+if((_2b.w!=_27.f_width)||(_2b.h!=_27.f_height)){
+var _2c=Xinha._geturlcontent(window.opener.Xinha.getPluginDir("ExtendedFileManager")+"/"+_backend_url+"&__function=resizer&img="+encodeURIComponent(document.getElementById("f_url").value)+"&width="+_27.f_width+"&height="+_27.f_height);
+_2c=eval(_2c);
+if(_2c){
+_27.f_url=makeURL(base_url,_2c);
+}
+}
+__dlg_close(_27);
+return false;
+}else{
+if(manager_mode=="link"){
+var _2d={};
+for(var i in _2d){
+var el=document.getElementById(i);
+if(!el.value){
+alert(_2d[i]);
+el.focus();
+return false;
+}
+}
+var _26=["f_href","f_title","f_target"];
+var _27=new Object();
+for(var i in _26){
+var id=_26[i];
+var el=document.getElementById(id);
+if(id=="f_href"&&el.value.indexOf("://")<0){
+_27[id]=makeURL(base_url,el.value);
+}else{
+_27[id]=el.value;
+}
+}
+if(_27.f_target=="_other"){
+_27.f_target=document.getElementById("f_other_target").value;
+}
+__dlg_close(_27);
+return false;
+}
+}
+}
+function makeURL(_2e,_2f){
+if(_2e.substring(_2e.length-1)!="/"){
+_2e+="/";
+}
+if(_2f.charAt(0)=="/"){
+}
+_2f=_2f.substring(1);
+return _2e+_2f;
+}
+function updateDir(_30){
+var _31=_30.options[_30.selectedIndex].value;
+changeDir(_31);
+}
+function goUpDir(){
+var _32=document.getElementById("dirPath");
+var _33=_32.options[_32.selectedIndex].text;
+if(_33.length<2){
+return false;
+}
+var _34=_33.split("/");
+var _35="";
+for(var i=0;i<_34.length-2;i++){
+_35+=_34[i]+"/";
+}
+for(var i=0;i<_32.length;i++){
+var _37=_32.options[i].text;
+if(_37==_35){
+_32.selectedIndex=i;
+var _38=_32.options[i].value;
+changeDir(_38);
+break;
+}
+}
+}
+function changeDir(_39){
+if(typeof imgManager!="undefined"){
+imgManager.changeDir(_39);
+}
+}
+function updateView(){
+refresh();
+}
+function toggleConstrains(_3a){
+var _3b=document.getElementById("imgLock");
+var _3a=document.getElementById("constrain_prop");
+if(_3a.checked){
+_3b.src="img/locked.gif";
+checkConstrains("width");
+}else{
+_3b.src="img/unlocked.gif";
+}
+}
+function checkConstrains(_3c){
+var _3d=document.getElementById("constrain_prop");
+if(_3d.checked){
+var obj=document.getElementById("orginal_width");
+var _3f=parseInt(obj.value);
+var obj=document.getElementById("orginal_height");
+var _40=parseInt(obj.value);
+var _41=document.getElementById("f_width");
+var _42=document.getElementById("f_height");
+var _43=parseInt(_41.value);
+var _44=parseInt(_42.value);
+if(_3f>0&&_40>0){
+if(_3c=="width"&&_43>0){
+_42.value=parseInt((_43/_3f)*_40);
+}
+if(_3c=="height"&&_44>0){
+_41.value=parseInt((_44/_40)*_3f);
+}
+}
+}
+}
+function showMessage(_45){
+var _46=document.getElementById("message");
+var _47=document.getElementById("messages");
+if(_46.firstChild){
+_46.removeChild(_46.firstChild);
+}
+_46.appendChild(document.createTextNode(i18n(_45)));
+_47.style.display="block";
+}
+function addEvent(obj,_49,fn){
+if(obj.addEventListener){
+obj.addEventListener(_49,fn,true);
+return true;
+}else{
+if(obj.attachEvent){
+var r=obj.attachEvent("on"+_49,fn);
+return r;
+}else{
+return false;
+}
+}
+}
+function doUpload(){
+var _4c=document.getElementById("uploadForm");
+if(_4c){
+showMessage("Uploading");
+}
+}
+function refresh(){
+var _4d=document.getElementById("dirPath");
+updateDir(_4d);
+}
+function newFolder(){
+function createFolder(_4e){
+var _4f=document.getElementById("dirPath");
+var dir=_4f.options[_4f.selectedIndex].value;
+if(_4e==thumbdir){
+alert(i18n("Invalid folder name, please choose another folder name."));
+return false;
+}
+if(_4e&&_4e!=""&&typeof imgManager!="undefined"){
+imgManager.newFolder(dir,encodeURI(_4e));
+}
+}
+if(Xinha.ie_version>6){
+popupPrompt(i18n("Please enter name for new folder..."),i18n("Untitled"),createFolder,i18n("New Folder"));
+}else{
+var _51=prompt(i18n("Please enter name for new folder..."),i18n("Untitled"));
+createFolder(_51);
+}
+}
+function resize(){
+var win=Xinha.viewportSize(window);
+var m=document.getElementById("messages");
+var _54=(m&&m.style.display!="none")?parseInt(document.getElementById("messages").offsetHeight,10):0;
+document.getElementById("imgManager").style.height=parseInt(win.y-130-document.getElementById("controls").offsetHeight,10)-_54+"px";
+return true;
+}
+Xinha.addOnloadHandler(init,window);
+
diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/popup.js b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/popup.js
new file mode 100644
index 000000000..76f545e45
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/popup.js
@@ -0,0 +1,71 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/ExtendedFileManager/assets/popup.js */
+function __dlg_onclose(){
+if(opener.Dialog._return){
+opener.Dialog._return(null);
+}
+}
+function __dlg_init(_1,_2){
+__xinha_dlg_init(_2);
+}
+function __xinha_dlg_init(_3){
+if(window.__dlg_init_done){
+return true;
+}
+if(window.opener._editor_skin){
+var _4=document.getElementsByTagName("head")[0];
+var _5=document.createElement("link");
+_5.type="text/css";
+_5.href=window.opener._editor_url+"skins/"+window.opener._editor_skin+"/skin.css";
+_5.rel="stylesheet";
+_4.appendChild(_5);
+}
+if(!window.dialogArguments&&opener.Dialog._arguments){
+window.dialogArguments=opener.Dialog._arguments;
+}
+Xinha.addDom0Event(document.body,"keypress",__dlg_close_on_esc);
+window.__dlg_init_done=true;
+}
+function __dlg_translate(_6){
+var _7=["span","option","td","th","button","div","label","a","img","legend"];
+for(var _8=0;_8<_7.length;_8++){
+var _9=document.getElementsByTagName(_7[_8]);
+for(var i=_9.length;--i>=0;){
+var _b=_9[i];
+if(_b.firstChild&&_b.firstChild.data){
+var _c=Xinha._lc(_b.firstChild.data,_6);
+if(_c){
+_b.firstChild.data=_c;
+}
+}
+if(_b.title){
+var _c=Xinha._lc(_b.title,_6);
+if(_c){
+_b.title=_c;
+}
+}
+if(_b.alt){
+var _c=Xinha._lc(_b.alt,_6);
+if(_c){
+_b.alt=_c;
+}
+}
+}
+}
+document.title=Xinha._lc(document.title,_6);
+}
+function __dlg_close(_d){
+opener.Dialog._return(_d);
+window.close();
+}
+function popupPrompt(_e,_f,_10,_11){
+Dialog("prompt.html",function(_12){
+if(!_12){
+return false;
+}else{
+_10(_12.value);
+}
+},{prompt:_e,value:_f,title:_11});
+}
+
diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/slider.js b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/slider.js
new file mode 100644
index 000000000..ccb27b0c5
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/assets/slider.js
@@ -0,0 +1,87 @@
+/* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */
+/* This file is part of version 0.95 released Mon, 12 May 2008 17:33:15 +0200 */
+/* The URL of the most recent version of this file is http://svn.xinha.webfactional.com/trunk/plugins/ExtendedFileManager/assets/slider.js */
+var ie=document.all;
+var ns6=document.getElementById&&!document.all;
+document.onmouseup=captureStop;
+var currentSlider=null,sliderField=null;
+var rangeMin=null,rangeMax=null,sx=-1,sy=-1,initX=0;
+function getMouseXY(e){
+x=ns6?e.clientX:event.clientX;
+y=ns6?e.clientY:event.clientY;
+if(sx<0){
+sx=x;
+}
+if(sy<0){
+sy=y;
+}
+var dx=initX+(x-sx);
+if(dx<=rangeMin){
+dx=rangeMin;
+}else{
+if(dx>=rangeMax){
+dx=rangeMax;
+}
+}
+var _3=(dx-rangeMin)/(rangeMax-rangeMin)*100;
+if(currentSlider!=null){
+currentSlider.style.left=dx+"px";
+}
+if(sliderField!=null){
+sliderField.value=parseInt(_3);
+}
+return false;
+}
+function initSlider(){
+if(currentSlider==null){
+currentSlider=document.getElementById("sliderbar");
+}
+if(sliderField==null){
+sliderField=document.getElementById("quality");
+}
+if(rangeMin==null){
+rangeMin=3;
+}
+if(rangeMax==null){
+var _4=document.getElementById("slidertrack");
+rangeMax=parseInt(_4.style.width);
+}
+}
+function updateSlider(_5){
+initSlider();
+var _6=parseInt(_5)/100*(rangeMax-rangeMin);
+if(_6<=rangeMin){
+_6=rangeMin;
+}else{
+if(_6>=rangeMax){
+_6=rangeMax;
+}
+}
+if(currentSlider!=null){
+currentSlider.style.left=_6+"px";
+}
+var _7=_6/(rangeMax-rangeMin)*100;
+if(sliderField!=null){
+sliderField.value=parseInt(_7);
+}
+}
+function captureStart(){
+initSlider();
+initX=parseInt(currentSlider.style.left);
+if(initX>rangeMax){
+initX=rangeMax;
+}else{
+if(initX ";
+}
+function _mkDivIe(x,y,w,h){
+this.htm+="%%"+this.color+";"+x+";"+y+";"+w+";"+h+";";
+}
+function _mkDivPrt(x,y,w,h){
+this.htm+="
";
+}
+var _regex=/%%([^;]+);([^;]+);([^;]+);([^;]+);([^;]+);/g;
+function _htmRpc(){
+return this.htm.replace(_regex,"
\n");
+}
+function _htmPrtRpc(){
+return this.htm.replace(_regex,"
\n");
+}
+function _mkLin(x1,y1,x2,y2){
+if(x1>x2){
+var _x2=x2;
+var _y2=y2;
+x2=x1;
+y2=y1;
+x1=_x2;
+y1=_y2;
+}
+var dx=x2-x1,dy=Math.abs(y2-y1),x=x1,y=y1,yIncr=(y1>y2)?-1:1;
+if(dx>=dy){
+var pr=dy<<1,pru=pr-(dx<<1),p=pr-dx,ox=x;
+while(dx>0){
+--dx;
+++x;
+if(p>0){
+this._mkDiv(ox,y,x-ox,1);
+y+=yIncr;
+p+=pru;
+ox=x;
+}else{
+p+=pr;
+}
+}
+this._mkDiv(ox,y,x2-ox+1,1);
+}else{
+var pr=dx<<1,pru=pr-(dy<<1),p=pr-dy,oy=y;
+if(y2<=y1){
+while(dy>0){
+--dy;
+if(p>0){
+this._mkDiv(x++,y,1,oy-y+1);
+y+=yIncr;
+p+=pru;
+oy=y;
+}else{
+y+=yIncr;
+p+=pr;
+}
+}
+this._mkDiv(x2,y2,1,oy-y2+1);
+}else{
+while(dy>0){
+--dy;
+y+=yIncr;
+if(p>0){
+this._mkDiv(x++,oy,1,y-oy);
+p+=pru;
+oy=y;
+}else{
+p+=pr;
+}
+}
+this._mkDiv(x2,oy,1,y2-oy+1);
+}
+}
+}
+function _mkLin2D(x1,y1,x2,y2){
+if(x1>x2){
+var _x2=x2;
+var _y2=y2;
+x2=x1;
+y2=y1;
+x1=_x2;
+y1=_y2;
+}
+var dx=x2-x1,dy=Math.abs(y2-y1),x=x1,y=y1,yIncr=(y1>y2)?-1:1;
+var s=this.stroke;
+if(dx>=dy){
+if(dx>0&&s-3>0){
+var _s=(s*dx*Math.sqrt(1+dy*dy/(dx*dx))-dx-(s>>1)*dy)/dx;
+_s=(!(s-4)?Math.ceil(_s):Math.round(_s))+1;
+}else{
+var _s=s;
+}
+var ad=Math.ceil(s/2);
+var pr=dy<<1,pru=pr-(dx<<1),p=pr-dx,ox=x;
+while(dx>0){
+--dx;
+++x;
+if(p>0){
+this._mkDiv(ox,y,x-ox+ad,_s);
+y+=yIncr;
+p+=pru;
+ox=x;
+}else{
+p+=pr;
+}
+}
+this._mkDiv(ox,y,x2-ox+ad+1,_s);
+}else{
+if(s-3>0){
+var _s=(s*dy*Math.sqrt(1+dx*dx/(dy*dy))-(s>>1)*dx-dy)/dy;
+_s=(!(s-4)?Math.ceil(_s):Math.round(_s))+1;
+}else{
+var _s=s;
+}
+var ad=Math.round(s/2);
+var pr=dx<<1,pru=pr-(dy<<1),p=pr-dy,oy=y;
+if(y2<=y1){
+++ad;
+while(dy>0){
+--dy;
+if(p>0){
+this._mkDiv(x++,y,_s,oy-y+ad);
+y+=yIncr;
+p+=pru;
+oy=y;
+}else{
+y+=yIncr;
+p+=pr;
+}
+}
+this._mkDiv(x2,y2,_s,oy-y2+ad);
+}else{
+while(dy>0){
+--dy;
+y+=yIncr;
+if(p>0){
+this._mkDiv(x++,oy,_s,y-oy+ad);
+p+=pru;
+oy=y;
+}else{
+p+=pr;
+}
+}
+this._mkDiv(x2,oy,_s,y2-oy+ad+1);
+}
+}
+}
+function _mkLinDott(x1,y1,x2,y2){
+if(x1>x2){
+var _x2=x2;
+var _y2=y2;
+x2=x1;
+y2=y1;
+x1=_x2;
+y1=_y2;
+}
+var dx=x2-x1,dy=Math.abs(y2-y1),x=x1,y=y1,yIncr=(y1>y2)?-1:1,drw=true;
+if(dx>=dy){
+var pr=dy<<1,pru=pr-(dx<<1),p=pr-dx;
+while(dx>0){
+--dx;
+if(drw){
+this._mkDiv(x,y,1,1);
+}
+drw=!drw;
+if(p>0){
+y+=yIncr;
+p+=pru;
+}else{
+p+=pr;
+}
+++x;
+}
+}else{
+var pr=dx<<1,pru=pr-(dy<<1),p=pr-dy;
+while(dy>0){
+--dy;
+if(drw){
+this._mkDiv(x,y,1,1);
+}
+drw=!drw;
+y+=yIncr;
+if(p>0){
+++x;
+p+=pru;
+}else{
+p+=pr;
+}
+}
+}
+if(drw){
+this._mkDiv(x,y,1,1);
+}
+}
+function _mkOv(_2b,top,_2d,_2e){
+var a=(++_2d)>>1,b=(++_2e)>>1,wod=_2d&1,hod=_2e&1,cx=_2b+a,cy=top+b,x=0,y=b,ox=0,oy=b,aa2=(a*a)<<1,aa4=aa2<<1,bb2=(b*b)<<1,bb4=bb2<<1,st=(aa2>>1)*(1-(b<<1))+bb2,tt=(bb2>>1)-aa2*((b<<1)-1),w,h;
+while(y>0){
+if(st<0){
+st+=bb2*((x<<1)+3);
+tt+=bb4*(++x);
+}else{
+if(tt<0){
+st+=bb2*((x<<1)+3)-aa4*(y-1);
+tt+=bb4*(++x)-aa2*(((y--)<<1)-3);
+w=x-ox;
+h=oy-y;
+if((w&2)&&(h&2)){
+this._mkOvQds(cx,cy,x-2,y+2,1,1,wod,hod);
+this._mkOvQds(cx,cy,x-1,y+1,1,1,wod,hod);
+}else{
+this._mkOvQds(cx,cy,x-1,oy,w,h,wod,hod);
+}
+ox=x;
+oy=y;
+}else{
+tt-=aa2*((y<<1)-3);
+st-=aa4*(--y);
+}
+}
+}
+w=a-ox+1;
+h=(oy<<1)+hod;
+y=cy-oy;
+this._mkDiv(cx-a,y,w,h);
+this._mkDiv(cx+ox+wod-1,y,w,h);
+}
+function _mkOv2D(_30,top,_32,_33){
+var s=this.stroke;
+_32+=s+1;
+_33+=s+1;
+var a=_32>>1,b=_33>>1,wod=_32&1,hod=_33&1,cx=_30+a,cy=top+b,x=0,y=b,aa2=(a*a)<<1,aa4=aa2<<1,bb2=(b*b)<<1,bb4=bb2<<1,st=(aa2>>1)*(1-(b<<1))+bb2,tt=(bb2>>1)-aa2*((b<<1)-1);
+if(s-4<0&&(!(s-2)||_32-51>0&&_33-51>0)){
+var ox=0,oy=b,w,h,pxw;
+while(y>0){
+if(st<0){
+st+=bb2*((x<<1)+3);
+tt+=bb4*(++x);
+}else{
+if(tt<0){
+st+=bb2*((x<<1)+3)-aa4*(y-1);
+tt+=bb4*(++x)-aa2*(((y--)<<1)-3);
+w=x-ox;
+h=oy-y;
+if(w-1){
+pxw=w+1+(s&1);
+h=s;
+}else{
+if(h-1){
+pxw=s;
+h+=1+(s&1);
+}else{
+pxw=h=s;
+}
+}
+this._mkOvQds(cx,cy,x-1,oy,pxw,h,wod,hod);
+ox=x;
+oy=y;
+}else{
+tt-=aa2*((y<<1)-3);
+st-=aa4*(--y);
+}
+}
+}
+this._mkDiv(cx-a,cy-oy,s,(oy<<1)+hod);
+this._mkDiv(cx+a+wod-s,cy-oy,s,(oy<<1)+hod);
+}else{
+var _a=(_32-(s<<1))>>1,_b=(_33-(s<<1))>>1,_x=0,_y=_b,_aa2=(_a*_a)<<1,_aa4=_aa2<<1,_bb2=(_b*_b)<<1,_bb4=_bb2<<1,_st=(_aa2>>1)*(1-(_b<<1))+_bb2,_tt=(_bb2>>1)-_aa2*((_b<<1)-1),pxl=new Array(),pxt=new Array(),_pxb=new Array();
+pxl[0]=0;
+pxt[0]=b;
+_pxb[0]=_b-1;
+while(y>0){
+if(st<0){
+pxl[pxl.length]=x;
+pxt[pxt.length]=y;
+st+=bb2*((x<<1)+3);
+tt+=bb4*(++x);
+}else{
+if(tt<0){
+pxl[pxl.length]=x;
+st+=bb2*((x<<1)+3)-aa4*(y-1);
+tt+=bb4*(++x)-aa2*(((y--)<<1)-3);
+pxt[pxt.length]=y;
+}else{
+tt-=aa2*((y<<1)-3);
+st-=aa4*(--y);
+}
+}
+if(_y>0){
+if(_st<0){
+_st+=_bb2*((_x<<1)+3);
+_tt+=_bb4*(++_x);
+_pxb[_pxb.length]=_y-1;
+}else{
+if(_tt<0){
+_st+=_bb2*((_x<<1)+3)-_aa4*(_y-1);
+_tt+=_bb4*(++_x)-_aa2*(((_y--)<<1)-3);
+_pxb[_pxb.length]=_y-1;
+}else{
+_tt-=_aa2*((_y<<1)-3);
+_st-=_aa4*(--_y);
+_pxb[_pxb.length-1]--;
+}
+}
+}
+}
+var ox=-wod,oy=b,_oy=_pxb[0],l=pxl.length,w,h;
+for(var i=0;i>1,b=(++_3c)>>1,wod=_3b&1,hod=_3c&1,hodu=hod^1,cx=_39+a,cy=top+b,x=0,y=b,aa2=(a*a)<<1,aa4=aa2<<1,bb2=(b*b)<<1,bb4=bb2<<1,st=(aa2>>1)*(1-(b<<1))+bb2,tt=(bb2>>1)-aa2*((b<<1)-1),drw=true;
+while(y>0){
+if(st<0){
+st+=bb2*((x<<1)+3);
+tt+=bb4*(++x);
+}else{
+if(tt<0){
+st+=bb2*((x<<1)+3)-aa4*(y-1);
+tt+=bb4*(++x)-aa2*(((y--)<<1)-3);
+}else{
+tt-=aa2*((y<<1)-3);
+st-=aa4*(--y);
+}
+}
+if(drw&&y>=hodu){
+this._mkOvQds(cx,cy,x,y,1,1,wod,hod);
+}
+drw=!drw;
+}
+}
+function _mkRect(x,y,w,h){
+var s=this.stroke;
+this._mkDiv(x,y,w,s);
+this._mkDiv(x+w,y,s,h);
+this._mkDiv(x,y+h,w+s,s);
+this._mkDiv(x,y+s,s,h-s);
+}
+function _mkRectDott(x,y,w,h){
+this.drawLine(x,y,x+w,y);
+this.drawLine(x+w,y,x+w,y+h);
+this.drawLine(x,y+h,x+w,y+h);
+this.drawLine(x,y,x,y+h);
+}
+function jsgFont(){
+this.PLAIN="font-weight:normal;";
+this.BOLD="font-weight:bold;";
+this.ITALIC="font-style:italic;";
+this.ITALIC_BOLD=this.ITALIC+this.BOLD;
+this.BOLD_ITALIC=this.ITALIC_BOLD;
+}
+var Font=new jsgFont();
+function jsgStroke(){
+this.DOTTED=-1;
+}
+var Stroke=new jsgStroke();
+function jsGraphics(cnv,wnd){
+this.setColor=function(x){
+this.color=x.toLowerCase();
+};
+this.setStroke=function(x){
+this.stroke=x;
+if(!(x+1)){
+this.drawLine=_mkLinDott;
+this._mkOv=_mkOvDott;
+this.drawRect=_mkRectDott;
+}else{
+if(x-1>0){
+this.drawLine=_mkLin2D;
+this._mkOv=_mkOv2D;
+this.drawRect=_mkRect;
+}else{
+this.drawLine=_mkLin;
+this._mkOv=_mkOv;
+this.drawRect=_mkRect;
+}
+}
+};
+this.setPrintable=function(arg){
+this.printable=arg;
+if(jg_fast){
+this._mkDiv=_mkDivIe;
+this._htmRpc=arg?_htmPrtRpc:_htmRpc;
+}else{
+this._mkDiv=arg?_mkDivPrt:_mkDiv;
+}
+};
+this.setFont=function(fam,sz,sty){
+this.ftFam=fam;
+this.ftSz=sz;
+this.ftSty=sty||Font.PLAIN;
+};
+this.drawPolyline=this.drawPolyLine=function(x,y){
+for(var i=x.length-1;i;){
+--i;
+this.drawLine(x[i],y[i],x[i+1],y[i+1]);
+}
+};
+this.setColor=new Function("arg","this.color = arg;");
+this.getColor=new Function("return this.color");
+this.fillRect=function(x,y,w,h){
+this._mkDiv(x,y,w,h);
+};
+this.fillRectPattern=function(x,y,w,h,url){
+this.htm+="
";
+};
+this.drawHandle=function(x,y,w,h,_5f){
+this.htm+="
";
+};
+this.drawHandleBox=function(x,y,w,h,_64){
+this.htm+="
";
+};
+this.drawPolygon=function(x,y){
+this.drawPolyline(x,y);
+this.drawLine(x[x.length-1],y[x.length-1],x[0],y[0]);
+};
+this.drawEllipse=this.drawOval=function(x,y,w,h){
+this._mkOv(x,y,w,h);
+};
+this.fillEllipse=this.fillOval=function(_6b,top,w,h){
+var a=w>>1,b=h>>1,wod=w&1,hod=h&1,cx=_6b+a,cy=top+b,x=0,y=b,oy=b,aa2=(a*a)<<1,aa4=aa2<<1,bb2=(b*b)<<1,bb4=bb2<<1,st=(aa2>>1)*(1-(b<<1))+bb2,tt=(bb2>>1)-aa2*((b<<1)-1),xl,dw,dh;
+if(w){
+while(y>0){
+if(st<0){
+st+=bb2*((x<<1)+3);
+tt+=bb4*(++x);
+}else{
+if(tt<0){
+st+=bb2*((x<<1)+3)-aa4*(y-1);
+xl=cx-x;
+dw=(x<<1)+wod;
+tt+=bb4*(++x)-aa2*(((y--)<<1)-3);
+dh=oy-y;
+this._mkDiv(xl,cy-oy,dw,dh);
+this._mkDiv(xl,cy+y+hod,dw,dh);
+oy=y;
+}else{
+tt-=aa2*((y<<1)-3);
+st-=aa4*(--y);
+}
+}
+}
+}
+this._mkDiv(cx-a,cy-oy,w,(oy<<1)+hod);
+};
+this.fillArc=function(iL,iT,iW,iH,_74,_75){
+var a=iW>>1,b=iH>>1,iOdds=(iW&1)|((iH&1)<<16),cx=iL+a,cy=iT+b,x=0,y=b,ox=x,oy=y,aa2=(a*a)<<1,aa4=aa2<<1,bb2=(b*b)<<1,bb4=bb2<<1,st=(aa2>>1)*(1-(b<<1))+bb2,tt=(bb2>>1)-aa2*((b<<1)-1),xEndA,yEndA,xEndZ,yEndZ,iSects=(1<<(Math.floor((_74%=360)/180)<<3))|(2<<(Math.floor((_75%=360)/180)<<3))|((_74>=_75)<<16),aBndA=new Array(b+1),aBndZ=new Array(b+1);
+_74*=Math.PI/180;
+_75*=Math.PI/180;
+xEndA=cx+Math.round(a*Math.cos(_74));
+yEndA=cy+Math.round(-b*Math.sin(_74));
+_mkLinVirt(aBndA,cx,cy,xEndA,yEndA);
+xEndZ=cx+Math.round(a*Math.cos(_75));
+yEndZ=cy+Math.round(-b*Math.sin(_75));
+_mkLinVirt(aBndZ,cx,cy,xEndZ,yEndZ);
+while(y>0){
+if(st<0){
+st+=bb2*((x<<1)+3);
+tt+=bb4*(++x);
+}else{
+if(tt<0){
+st+=bb2*((x<<1)+3)-aa4*(y-1);
+ox=x;
+tt+=bb4*(++x)-aa2*(((y--)<<1)-3);
+this._mkArcDiv(ox,y,oy,cx,cy,iOdds,aBndA,aBndZ,iSects);
+oy=y;
+}else{
+tt-=aa2*((y<<1)-3);
+st-=aa4*(--y);
+if(y&&(aBndA[y]!=aBndA[y-1]||aBndZ[y]!=aBndZ[y-1])){
+this._mkArcDiv(x,y,oy,cx,cy,iOdds,aBndA,aBndZ,iSects);
+ox=x;
+oy=y;
+}
+}
+}
+}
+this._mkArcDiv(x,0,oy,cx,cy,iOdds,aBndA,aBndZ,iSects);
+if(iOdds>>16){
+if(iSects>>16){
+var xl=(yEndA<=cy||yEndZ>cy)?(cx-x):cx;
+this._mkDiv(xl,cy,x+cx-xl+(iOdds&65535),1);
+}else{
+if((iSects&1)&&yEndZ>cy){
+this._mkDiv(cx-x,cy,x,1);
+}
+}
+}
+};
+this.fillPolygon=function(_78,_79){
+var i;
+var y;
+var _7c,maxy;
+var x1,y1;
+var x2,y2;
+var _7f,ind2;
+var _80;
+var n=_78.length;
+if(!n){
+return;
+}
+_7c=_79[0];
+maxy=_79[0];
+for(i=1;imaxy){
+maxy=_79[i];
+}
+}
+for(y=_7c;y<=maxy;y++){
+var _82=new Array();
+_80=0;
+for(i=0;iy2){
+y2=_79[_7f];
+y1=_79[ind2];
+x2=_78[_7f];
+x1=_78[ind2];
+}else{
+continue;
+}
+}
+if((y>=y1)&&(yy1)&&(y<=y2)){
+_82[_80++]=Math.round((y-y1)*(x2-x1)/(y2-y1)+x1);
+}
+}
+}
+_82.sort(_CompInt);
+for(i=0;i<_80;i+=2){
+this._mkDiv(_82[i],y,_82[i+1]-_82[i]+1,1);
+}
+}
+};
+this.drawString=function(txt,x,y){
+this.htm+=""+txt+"
";
+};
+this.drawStringRect=function(txt,x,y,_89,_8a){
+this.htm+=""+txt+"
";
+};
+this.drawImage=function(_8b,x,y,w,h,a){
+this.htm+=""+"
"+"
";
+};
+this.clear=function(){
+this.htm="";
+if(this.cnv){
+this.cnv.innerHTML="";
+}
+};
+this._mkOvQds=function(cx,cy,x,y,w,h,wod,hod){
+var xl=cx-x,xr=cx+x+wod-w,yt=cy-y,yb=cy+y+hod-h;
+if(xr>xl+w){
+this._mkDiv(xr,yt,w,h);
+this._mkDiv(xr,yb,w,h);
+}else{
+w=xr-xl+w;
+}
+this._mkDiv(xl,yt,w,h);
+this._mkDiv(xl,yb,w,h);
+};
+this._mkArcDiv=function(x,y,oy,cx,cy,_9f,_a0,_a1,_a2){
+var _a3=cx+x+(_9f&65535),y2,h=oy-y,xl,xr,w;
+if(!h){
+h=1;
+}
+x=cx-x;
+if(_a2&16711680){
+y2=cy-y-h;
+if(_a2&255){
+if(_a2&2){
+xl=Math.max(x,_a1[y]);
+w=_a3-xl;
+if(w>0){
+this._mkDiv(xl,y2,w,h);
+}
+}
+if(_a2&1){
+xr=Math.min(_a3,_a0[y]);
+w=xr-x;
+if(w>0){
+this._mkDiv(x,y2,w,h);
+}
+}
+}else{
+this._mkDiv(x,y2,_a3-x,h);
+}
+y2=cy+y+(_9f>>16);
+if(_a2&65280){
+if(_a2&256){
+xl=Math.max(x,_a0[y]);
+w=_a3-xl;
+if(w>0){
+this._mkDiv(xl,y2,w,h);
+}
+}
+if(_a2&512){
+xr=Math.min(_a3,_a1[y]);
+w=xr-x;
+if(w>0){
+this._mkDiv(x,y2,w,h);
+}
+}
+}else{
+this._mkDiv(x,y2,_a3-x,h);
+}
+}else{
+if(_a2&255){
+if(_a2&2){
+xl=Math.max(x,_a1[y]);
+}else{
+xl=x;
+}
+if(_a2&1){
+xr=Math.min(_a3,_a0[y]);
+}else{
+xr=_a3;
+}
+y2=cy-y-h;
+w=xr-xl;
+if(w>0){
+this._mkDiv(xl,y2,w,h);
+}
+}
+if(_a2&65280){
+if(_a2&256){
+xl=Math.max(x,_a0[y]);
+}else{
+xl=x;
+}
+if(_a2&512){
+xr=Math.min(_a3,_a1[y]);
+}else{
+xr=_a3;
+}
+y2=cy+y+(_9f>>16);
+w=xr-xl;
+if(w>0){
+this._mkDiv(xl,y2,w,h);
+}
+}
+}
+};
+this.setStroke(1);
+this.setFont("verdana,geneva,helvetica,sans-serif","12px",Font.PLAIN);
+this.color="#000000";
+this.htm="";
+this.wnd=wnd||window;
+if(!jg_ok){
+_chkDHTM();
+}
+if(jg_ok){
+if(cnv){
+if(typeof (cnv)=="string"){
+this.cont=document.all?(this.wnd.document.all[cnv]||null):document.getElementById?(this.wnd.document.getElementById(cnv)||null):null;
+}else{
+if(cnv==window.document){
+this.cont=document.getElementsByTagName("body")[0];
+}else{
+this.cont=cnv;
+}
+}
+this.cnv=this.wnd.document.createElement("div");
+this.cnv.style.fontSize=0;
+this.cont.appendChild(this.cnv);
+this.paint=jg_dom?_pntCnvDom:_pntCnvIe;
+}else{
+this.paint=_pntDoc;
+}
+}else{
+this.paint=_pntN;
+}
+this.setPrintable(false);
+}
+function _mkLinVirt(_a4,x1,y1,x2,y2){
+var dx=Math.abs(x2-x1),dy=Math.abs(y2-y1),x=x1,y=y1,xIncr=(x1>x2)?-1:1,yIncr=(y1>y2)?-1:1,p,i=0;
+if(dx>=dy){
+var pr=dy<<1,pru=pr-(dx<<1);
+p=pr-dx;
+while(dx>0){
+--dx;
+if(p>0){
+_a4[i++]=x;
+y+=yIncr;
+p+=pru;
+}else{
+p+=pr;
+}
+x+=xIncr;
+}
+}else{
+var pr=dx<<1,pru=pr-(dy<<1);
+p=pr-dy;
+while(dy>0){
+--dy;
+y+=yIncr;
+_a4[i++]=x;
+if(p>0){
+x+=xIncr;
+p+=pru;
+}else{
+p+=pr;
+}
+}
+}
+for(var len=_a4.length,i=len-i;i;){
+_a4[len-(i--)]=x;
+}
+}
+function _CompInt(x,y){
+return (x-y);
+}
+
diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/backend.php b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/backend.php
new file mode 100755
index 000000000..f6c5f3871
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/backend.php
@@ -0,0 +1,110 @@
+
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/config.inc.php b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/config.inc.php
new file mode 100755
index 000000000..ee31d49ca
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/config.inc.php
@@ -0,0 +1,387 @@
+
+ * Package: ExtendedFileManager
+ * http://www.afrusoft.com/htmlarea
+ */
+
+/* Configuration file usage:
+ * There are two insertModes for this filemanager.
+ * One is "image" and another is "link".
+ * So you can assign config values as below
+ *
+ * if($insertMode=="image") $IMConfig['property']=somevalueforimagemode;
+ * else if($insertMode=="link") $IMConfig['property']=somevalueforlinkmode;
+ *
+ * (or) you can directly as $IMConfig['property']=somevalueforbothmodes;
+ *
+ * Best of Luck :) Afru.
+ */
+
+/*
+ * Getting the mode for further differentiation
+ */
+
+if(isset($_REQUEST['mode'])) $insertMode=$_REQUEST['mode'];
+ if(!isset($insertMode)) $insertMode="image";
+
+/**
+* Default backend URL
+*
+* URL to use for unified backend.
+*
+* The ?__plugin=ExtendedFileManager& is required.
+*/
+
+$IMConfig['backend_url'] = "backend.php?__plugin=ExtendedFileManager&";
+
+/**
+* Backend Installation Directory
+*
+* location of backend install; these are used to link to css and js
+* assets because we may have the front end installed in a different
+* directory than the backend. (i.e. nothing assumes that the frontend
+* and the backend are in the same directory)
+*/
+$IMConfig['base_dir'] = getcwd();
+$IMConfig['base_url'] = '';
+
+
+/*
+ File system path to the directory you want to manage the images
+ for multiple user systems, set it dynamically.
+
+ NOTE: This directory requires write access by PHP. That is,
+ PHP must be able to create files in this directory.
+ Able to create directories is nice, but not necessary.
+*/
+$IMConfig['images_dir'] = 'demo_images';
+//You may set a different directory for the link mode; if you don't, the above setting will be used for both modes
+//$IMConfig['files_dir'] = 'demo_files';
+
+/*
+ The URL to the above path, the web browser needs to be able to see it.
+ Please remove scripting capabilities in this directory
+ for this directory (i.e. disable PHP, Perl, CGI; see .htaccess file in demo_images folder).
+*/
+$IMConfig['images_url'] = str_replace( array("backend.php","manager.php"), "", $_SERVER["PHP_SELF"] ) . $IMConfig['images_dir'];
+//$IMConfig['files_url'] = 'url/to/files_dir';
+
+/*
+ Format of the Date Modified in list view.
+ It has to be a string understood by the PHP date() function (for possible values see http://http://php.net/manual/en/function.date.php)
+*/
+$IMConfig['date_format'] = "d.m.y H:i";
+/*
+ Possible values: true, false
+
+ TRUE - If PHP on the web server is in safe mode, set this to true.
+ SAFE MODE restrictions: directory creation will not be possible,
+ only the GD library can be used, other libraries require
+ Safe Mode to be off.
+
+ FALSE - Set to false if PHP on the web server is not in safe mode.
+*/
+$IMConfig['safe_mode'] = false;
+
+/*
+This specifies whether any image library is available to resize and edit images.TRUE - Thumbnails will be resized by image libraries and if there is no library, default thumbnail will be shown.
+FALSE - Thumbnails will be resized by browser ignoring image libraries.
+*/
+$IMConfig['img_library'] = true;
+
+
+/*
+View type when the File manager is in insert image mode.
+Valid values are "thumbview" and "listview".
+*/
+
+
+if ($insertMode == 'image')
+ $IMConfig['view_type'] = "thumbview";
+
+else if($insertMode == "link")
+ $IMConfig['view_type'] = "listview";
+
+$IMConfig['insert_mode'] = $insertMode;
+
+/*
+ Possible values: 'GD', 'IM', or 'NetPBM'
+
+ The image manipulation library to use, either GD or ImageMagick or NetPBM.
+ If you have safe mode ON, or don't have the binaries to other packages,
+ your choice is 'GD' only. Other packages require Safe Mode to be off.
+*/
+define('IMAGE_CLASS', 'GD');
+
+
+/*
+ After defining which library to use, if it is NetPBM or IM, you need to
+ specify where the binary for the selected library are. And of course
+ your server and PHP must be able to execute them (i.e. safe mode is OFF).
+ GD does not require the following definition.
+*/
+define('IMAGE_TRANSFORM_LIB_PATH', '/usr/bin/');
+//define('IMAGE_TRANSFORM_LIB_PATH', 'C:/"Program Files"/ImageMagick-5.5.7-Q16/');
+
+
+/*
+ The prefix for thumbnail files, something like .thumb will do. The
+ thumbnails files will be named as "prefix_imagefile.ext", that is,
+ prefix + orginal filename.
+*/
+$IMConfig['thumbnail_prefix'] = 't_';
+
+
+/*
+ Thumbnail can also be stored in a directory, this directory
+ will be created by PHP. If PHP is in safe mode, this parameter
+ is ignored, you can not create directories.
+
+ If you do not want to store thumbnails in a directory, set this
+ to false or empty string '';
+*/
+$IMConfig['thumbnail_dir'] = 't';
+
+/**
+* Resized prefix
+*
+* The prefix for resized files, something like .resized will do. The
+* resized files will be named _x_
+* resized files are created when one changes the dimensions of an image
+* in the image manager selection dialog - the image is scaled when the
+* user clicks the ok button.
+*/
+
+$IMConfig['resized_prefix'] = '.resized';
+
+// -------------------------------------------------------------------------
+
+/**
+* Resized Directory
+*
+* Resized images may also be stored in a directory, except in safe mode.
+*/
+
+$IMConfig['resized_dir'] = '';
+
+/*
+ Possible values: true, false
+
+ TRUE - Allow the user to create new sub-directories in the
+ $IMConfig['images_dir']/$IMConfig['files_dir'].
+
+ FALSE - No directory creation.
+
+ NOTE: If $IMConfig['safe_mode'] = true, this parameter
+ is ignored, you can not create directories
+*/
+$IMConfig['allow_new_dir'] = true;
+
+/*
+ Possible values: true, false
+
+ TRUE - Allow the user to edit image by image editor.
+
+ FALSE - No edit icon will be displayed.
+
+ NOTE: If $IMConfig['img_library'] = false, this parameter
+ is ignored, you can not edit images.
+*/
+$IMConfig['allow_edit_image'] = true;
+
+/*
+ Possible values: true, false
+
+ TRUE - Allow the user to rename files and folders.
+
+ FALSE - No rename icon will be displayed.
+
+*/
+$IMConfig['allow_rename'] = true;
+
+/*
+ Possible values: true, false
+
+ TRUE - Allow the user to perform cut/copy/paste actions.
+
+ FALSE - No cut/copy/paste icons will be displayed.
+
+*/
+$IMConfig['allow_cut_copy_paste'] = true;
+
+/*
+ Possible values: true, false
+
+ TRUE - Display color pickers for image background / border colors
+
+ FALSE - Don't display color pickers
+*/
+$IMConfig['use_color_pickers'] = true;
+
+/*
+ Possible values: true, false
+
+ TRUE - Allow the user to set alt (alternative text) attribute.
+
+ FALSE - No input field for alt attribute will be displayed.
+
+ NOTE: The alt attribute is _obligatory_ for images, so will be inserted
+ if 'images_enable_alt' is set to false
+*/
+$IMConfig['images_enable_alt'] = true;
+
+/*
+ Possible values: true, false
+
+ TRUE - Allow the user to set title attribute (usually displayed when mouse is over element).
+
+ FALSE - No input field for title attribute will be displayed.
+
+*/
+$IMConfig['images_enable_title'] = false;
+
+/*
+ Possible values: true, false
+
+ TRUE - Allow the user to set align attribute.
+
+ FALSE - No selection box for align attribute will be displayed.
+
+*/
+$IMConfig['images_enable_align'] = true;
+
+/*
+ Possible values: true, false
+
+ TRUE - Allow the user to set margin, padding, and border styles for the image
+
+ FALSE - No styling input fields will be displayed.
+
+*/
+$IMConfig['images_enable_styling'] = true;
+
+/*
+ Possible values: true, false
+
+ TRUE - Allow the user to set target attribute for link (the window in which the link will be opened).
+
+ FALSE - No selection box for target attribute will be displayed.
+
+*/
+$IMConfig['link_enable_target'] = true;
+/*
+ Possible values: true, false
+
+ TRUE - Allow the user to upload files.
+
+ FALSE - No uploading allowed.
+*/
+$IMConfig['allow_upload'] = true;
+
+/* Maximum upload file size
+
+ Possible values: number, "max"
+
+ number - maximum size in Kilobytes.
+
+ "max" - the maximum allowed by the server (the value is retrieved from the server configuration).
+*/
+$IMConfig['max_filesize_kb_image'] = 200;
+
+$IMConfig['max_filesize_kb_link'] = 5000;
+
+/* Maximum upload folder size in Megabytes. Use 0 to disable limit */
+$IMConfig['max_foldersize_mb'] = 0;
+
+/*
+Allowed extensions that can be shown and allowed to upload.
+Available icons are for "doc,fla,gif,gz,html,jpg,js,mov,pdf,php,png,ppt,rar,txt,xls,zip"
+-Changed by AFRU.
+*/
+
+$IMConfig['allowed_image_extensions'] = array("jpg","gif","png","bmp");
+$IMConfig['allowed_link_extensions'] = array("jpg","gif","js","php","pdf","zip","txt","psd","png","html","swf","xml","xls","doc");
+
+
+/*
+ The default thumbnail and list view icon in case thumbnails are not created and the files are of unknown.
+*/
+$IMConfig['default_thumbnail'] = 'icons/def.gif';
+$IMConfig['default_listicon'] = 'icons/def_small.gif';
+
+
+/*
+Only files with these extensions will be shown as thumbnails. All other files will be shown as icons.
+*/
+$IMConfig['thumbnail_extensions'] = array("jpg", "gif", "png", "bmp");
+
+/*
+ Thumbnail dimensions.
+*/
+$IMConfig['thumbnail_width'] = 84;
+$IMConfig['thumbnail_height'] = 84;
+
+/*
+ Image Editor temporary filename prefix.
+*/
+$IMConfig['tmp_prefix'] = '.editor_';
+
+
+// Standard PHP Backend Data Passing
+// if data was passed using xinha_pass_to_php_backend() we merge the items
+// provided into the Config
+require_once(realpath(dirname(__FILE__) . '/../../contrib/php-xinha.php'));
+if($passed_data = xinha_read_passed_data())
+{
+ $IMConfig = array_merge($IMConfig, $passed_data);
+ $IMConfig['backend_url'] .= xinha_passed_data_querystring() . '&';
+}
+// Deprecated config passing, don't use this way any more!
+elseif(isset($_REQUEST['backend_config']))
+{
+ if(get_magic_quotes_gpc()) {
+ $_REQUEST['backend_config'] = stripslashes($_REQUEST['backend_config']);
+ }
+
+ // Config specified from front end, check that it's valid
+ session_start();
+ if (!array_key_exists($_REQUEST['backend_config_secret_key_location'], $_SESSION))
+ die("Backend security error.");
+
+ $secret = $_SESSION[$_REQUEST['backend_config_secret_key_location']];
+
+ if($_REQUEST['backend_config_hash'] !== sha1($_REQUEST['backend_config'] . $secret))
+ {
+ die("Backend security error.");
+ }
+
+ $to_merge = unserialize($_REQUEST['backend_config']);
+ if(!is_array($to_merge))
+ {
+ die("Backend config syntax error.");
+ }
+
+ $IMConfig = array_merge($IMConfig, $to_merge);
+
+ // changed config settings keys in relation to ImageManager
+ $IMConfig['backend_url'] .= "backend_config=" . rawurlencode($_REQUEST['backend_config']) . '&';
+ $IMConfig['backend_url'] .= "backend_config_hash=" . rawurlencode($_REQUEST['backend_config_hash']) . '&';
+ $IMConfig['backend_url'] .= "backend_config_secret_key_location=" . rawurlencode($_REQUEST['backend_config_secret_key_location']) . '&';
+
+}
+if ($IMConfig['max_filesize_kb_link'] == "max")
+{
+ $IMConfig['max_filesize_kb_link'] = upload_max_filesize_kb();
+}
+
+if ($IMConfig['max_filesize_kb_image'] == "max")
+{
+ $IMConfig['max_filesize_kb_image'] = upload_max_filesize_kb();
+}
+// END
+
+?>
diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/demo_images/.htaccess b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/demo_images/.htaccess
new file mode 100755
index 000000000..047113220
--- /dev/null
+++ b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/demo_images/.htaccess
@@ -0,0 +1,2 @@
+php_flag engine off
+AddType text/html .html .htm .shtml .php .php3 .phtml .phtm .pl .py .cgi
\ No newline at end of file
diff --git a/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/demo_images/bikerpeep.jpg b/ccm-cms/web/assets/xinha/plugins/ExtendedFileManager/demo_images/bikerpeep.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..a2e7028eb7f434110d0a71588b724b1273f63c55
GIT binary patch
literal 27684
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